Sono questi concetti SQL per sviluppatori principianti, intermedi o avanzati? [chiuso]

11

Ho studiato SQL di recente e pratico con MySQL / Postgres e presto con Oracle DB. Ho anche cercato sul web uno studio dei database "sulla cartina stradale", ma sfortunatamente non sono riuscito a trovarne uno.

Voglio capire dove e perché particolari concetti di database cadono nella scala da principiante a intermedio e avanzato. Sto pensando per lo più a database relazionali.

Per favore spiega come disporre le abilità elencate di seguito in una progressione di Principianti - > Intermedio - > Avanzato per quale livello di sviluppo dovrebbe conoscerli:

  • Dove clausole
  • Aggiorna sintassi
  • entra a far parte
  • Modifica e crea istruzioni
  • Tabelle temporali
  • Cursori
  • Indici
  • Chiavi esterne
  • Vincoli
  • Le transazioni
  • Sottointerrogazioni
  • perni
  • Funzioni aggregate
  • Profiling
  • OLAP e OLTP
  • Trigger
  • Piani di esecuzione
  • Suggerimenti per l'esecuzione
  • Contatori delle prestazioni
  • Normalizzazione
posta Daniel 05.01.2013 - 21:44
fonte

2 risposte

16

Direi che ci sono due tipi di cose da sapere in merito a SQL (questo è vero per molte tecnologie in realtà), ci sono cose tecniche specifiche come join, sottoquery, sindacati, ecc che tu comprendi o no, e poi ci sono cose come la progettazione di database e la modellazione dei dati che ha un gradiente di abilità in esso, come l'arte. Migliora nel tempo con quelle cose più morbide, ma non le "conosci" mai perché non c'è "loro funzionano così" con loro.

Detto questo, ecco un layout generale con cui andrei, e sono assolutamente aperto a commenti / pensieri da altri in cui potrei sbagliarmi.

principianti

  • Clausole Where (in, between, ecc.)
  • Aggiorna sintassi
  • Interno vs sinistra e destra uniscono comprensione e utilizzo
  • Sintassi per la modifica e la creazione di strutture
  • Tabelle temporali e loro utilizzo
  • Cursori
  • Idea di base su quali sono gli indici, anche se non su come funzionano
  • Comprensione delle chiavi esterne e su come aggirarle (eliminazioni a cascata, ecc.)
  • Comprende le nozioni di base sulle transazioni
  • Comprende i vincoli

Intermedio

  • Come funzionano gli indici, differenza tra cluster, non in cluster, ecc. cos'è una pagina e come sono layout
  • Comprensione delle sottoquery e può pensare di utilizzarle in join e in cui
  • perni
  • Puoi pensare di unirti a un tavolo su se stesso quando pertinente
  • Può generare report di dati complessi tramite group by con funzioni aggregate
  • Può eseguire il profiling di base solo in una capacità di monitoraggio / debug come leggere un log
  • Comprende la differenza tra OLAP e OLTP e quando / dove utilizzare le strutture OLAP
  • sa usare i trigger e non usarli
  • Comprende le transazioni e può stratificarle gestendo i fallimenti nello stack

Avanzate

  • È in grado di leggere un piano di esecuzione e capire in che modo le diverse parti della query hanno effetto su
  • È possibile regolare le query con suggerimenti di esecuzione senza compromettere le prestazioni (suggerimenti sul parallelismo, suggerimenti sugli indici, suggerimenti sul loop, ecc.)
  • Può profilare e utilizzare le tracce per identificare e comprendere le statistiche delle esecuzioni sotto carico reale
  • Conosce le strutture dei dati sul disco
  • È possibile utilizzare i contatori delle prestazioni e comprendere il carico e il comportamento del database dal loro monitoraggio
  • Conosce come progettare un cubo OLAP e fare un data mining avanzato con uno
  • Conosce come utilizzare i trigger e come usarli in modo sicuro, con un rischio minimo
  • Sa utilizzare le transazioni distribuite anche con i livelli

Questo è tutto ciò che potrei inventarmi. Si prega di lasciare commenti che menzionino gli altri che ho perso o se ho inserito qualcosa nel posto sbagliato. Non sono abbastanza avanzato da conoscere un enorme elenco di tecniche avanzate per mettere giù heh

    
risposta data 05.01.2013 - 22:27
fonte
10

Ecco la scala che uso mentre intervistano i candidati. Questa è ovviamente la mia opinione personale, le scale possono facilmente variare:

In primo luogo, sto cercando competenze di database, non specificamente "SQL".

Principianti:

  • Conosce la sintassi SQL di base
  • Può selezionare e filtrare i dati su più elementi tavoli
  • Comprende i collegamenti interni / esterni / incrociati
  • Vaga comprensione di normalizzazione, indicizzazione, transazioni, blocco

Intermedio:

  • Comprende le differenze tra gli stili procedurali e dichiarativi per SQL
  • Esperienza con almeno un DB estensioni SQL (PSQL, TSQL, ecc.)
  • Comprende e può progettare un database in, terza forma normale
  • Comprende e può implementare l'indicizzazione
  • Comprende le transazioni e può utilizzarle in un singolo database
  • Conosce quando e come analizzare un piano di esecuzione

Avanzate

  • Capisce quando e come denormalizzare un database
  • Comprende come configurare le transazioni distribuite su un database e sistemi integrati
  • Può impostare un database per l'alta disponibilità, il recupero dei dati, ecc.
  • Profonda ignoranza dei meccanismi interni di ciascun motore DB (almeno due)
  • Punti extra per esposizione significativa a data warehousing e reporting
  • Punti extra per l'esposizione significativa alle varianti di NoSQL e un insieme razionale di criteri per quando utilizzare ciò che
risposta data 05.01.2013 - 22:31
fonte

Leggi altre domande sui tag