Va bene che ai programmatori venga assegnato il compito di delineare i requisiti del database?

3

Nel mio attuale lavoro, dba e programmatori sono divisi in compiti. Qualsiasi codice che deve essere scritto nelle procedure di scrittura di dba, e i programmatori fanno solo il codice dell'applicazione.

La cosa strana è che ogni volta che un compito deve essere definito / speculato, i programmatori ottengono il compito, e dobbiamo definire tutte le procedure necessarie e cosa dovrebbero restituire.

Questa è una pratica comune nello sviluppo di software? I programmatori sono generalmente quelli che hanno il compito di costruire i requisiti per il lato del database?

    
posta Candide 02.10.2012 - 16:20
fonte

3 risposte

11

Chi altro suggeriresti dovrebbe farlo?

Pensa in questo modo: la squadra A e la squadra B lavorano per la stessa azienda. Se è richiesta la squadra A per fornire un'API per la squadra B, chi definisce i requisiti? Sicuramente non la squadra A, senza alcuna conoscenza dell'applicazione da costruire su di essa. Deve essere la squadra B.

Il team A decide come implementare l'API e possono insistere sulle limitazioni per la squadra B, ma non possono definire cosa è richiesto.

Questo cambia se i due team scrivono in lingue diverse? No. Allora perché dovrebbe cambiare se la squadra A è un team DBA?

    
risposta data 02.10.2012 - 16:29
fonte
2

Non penso che sia prassi comune per gli amministratori di database scrivere le stored procedure durante lo sviluppo di un programma. Personnamente, ho sempre dovuto scrivere le mie stored procedure, o codice SQL.

Penso che dal momento che conoscono il loro prodotto di database molto più dei programmatori (in teoria, e almeno è vero per me), vengono utilizzati al meglio ogni volta che qualcosa deve essere sottoposto a ulteriori analisi sul database:

  • definizione e ottimizzazione di tabelle, tablespace, indici, ecc.
  • ottimizzazione delle stored procedure
  • piano di migrazione del database
  • ecc. (DBA, sentiti libero di completare questa lista)

" Ottimizzazione " è la chiave che penso.

Alcuni anni fa, ricordo di aver chiesto al mio DBA Oracle di ottimizzare una procedura che stava funzionando molto male (come per più di 10 secondi solo per pochi risultati). È tornato da me con una richiesta che non comprendevo affatto con parole chiave che non avevo mai visto prima in quel momento ( INTERVAL e come usare il partizionamento sono estremamente potenti se messe a frutto) e che stava dando il gli stessi buoni risultati in meno di 25ms ...

Per quanto riguarda i programmatori, devono concettualizzare il database, fornire gli script e collaborare con il DBA in modo che lo schema del database risultante sia più efficiente per le attività richieste. I programmatori e gli amministratori di database dovrebbero collaborare per identificare / risolvere i colli di bottiglia che si verificano tra l'applicazione ei server di database.

    
risposta data 02.10.2012 - 16:36
fonte
1

Is it okay for programmers to be given the task of outlining database requirements?

Se i programmatori sono quelli che hanno bisogno di una certa procedura, tabella, trigger o qualsiasi altra cosa nel database, allora ha senso che diano requisiti agli amministratori di database e li facciano effettivamente fare lavoro, soprattutto se i programmatori non sono molto abili in qualunque lingua di procedura memorizzata venga utilizzata.

Secondo la mia esperienza, molti programmatori scrivono anche stored procedure perché questo particolare sistema viene eseguito principalmente all'interno del database e non ci sono abbastanza DBA da girare. D'altra parte, avere gli amministratori di database effettuare la programmazione (o consultarsi se sono troppo occupati) può essere una buona cosa in quanto potrebbero avere approfondimenti su modi migliori per scrivere codice di procedura critico per le prestazioni.

    
risposta data 02.10.2012 - 16:54
fonte

Leggi altre domande sui tag