¿Son estos conceptos SQL para principiantes, intermedios o desarrolladores avanzados? [cerrado]
16
He estado aprendiendo SQL recientemente y practicando con MySQL / Postgres y pronto Oracle DB. También busqué en la web un estudio de 'mapa de ruta' de bases de datos, pero desafortunadamente no pude encontrar uno.
Quiero entender dónde y por qué conceptos particulares de bases de datos caen en la escala de principiante a intermedio y avanzado. Estoy pensando en bases de datos relacionales en su mayor parte.
Explique cómo diseñar las habilidades enumeradas a continuación en una progresión de Principiante -> Intermedio -> Avanzado para el nivel de desarrollador que debe conocerlas:
Yo diría que hay dos tipos de cosas que debe saber con respecto a SQL (esto es cierto para muchas tecnologías realmente), hay cosas técnicas específicas como uniones, subconsultas, uniones, etc. que usted comprende o no, y luego hay cosas como el diseño de bases de datos y el modelado de datos que tiene un gradiente de habilidad, como el arte. Mejora con el tiempo con esas cosas más suaves, pero nunca las "conoce" porque no hay "funcionan de esta manera" con ellas.
Dicho esto, aquí hay un diseño general con el que iría, y estoy absolutamente abierto a comentarios / pensamientos de otros en los que pueda estar equivocado.
Principiante
Donde cláusulas (en, entre, etc.)
Actualizar sintaxis
Comprensión interna y izquierda versus derecha unir comprensión y uso
Sintaxis para alterar y crear estructuras
Tablas temporales y su uso.
Cursores
Idea básica para qué sirven los índices, aunque no cómo funcionan
Comprender para qué sirven las claves externas y cómo solucionarlas (eliminaciones en cascada, etc.)
Comprende los conceptos básicos de las transacciones.
Comprende las restricciones
Intermedio
Cómo funcionan los índices, la diferencia entre agrupados, no agrupados, etc., qué es una página y cómo se distribuyen
Comprensión de las subconsultas, y puede pensar en usarlas en uniones y dónde
Pivotes
Puede pensar uniéndose a una tabla en sí mismo cuando sea relevante
Puede generar informes de datos complejos a través de grupos bys con funciones agregadas
Puede hacer perfiles básicos solo en una capacidad de monitoreo / depuración como leer un registro
Entiende la diferencia entre OLAP y OLTP y cuándo / dónde usar estructuras OLAP
Sabe usar disparadores y no usarlos
Entiende las transacciones y puede superponerlas manejando fallas en la pila
Avanzado
Puede leer un plan de ejecución y comprender cómo las diferentes partes de la consulta lo afectan
Puede ajustar las consultas con sugerencias de ejecución sin arruinar el rendimiento (sugerencias de paralelismo, sugerencias de índice, sugerencias de bucle, etc.)
Puede perfilar y usar trazas para identificar y comprender estadísticas de ejecuciones bajo carga del mundo real
Sabe cuáles son las estructuras de datos en el disco.
Puede usar contadores de rendimiento y comprender cuál es la carga y el comportamiento de la base de datos al monitorearlos
Sabe cómo diseñar un cubo OLAP y hacer minería de datos avanzada con uno
Sabe cómo usar desencadenantes y cómo usarlos de manera segura, con un riesgo mínimo
Sabe usar transacciones distribuidas incluso con capas
Eso es todo lo que se me ocurrió en la cabeza. Por favor, deje comentarios mencionando a otros que extrañé o si puse algo en el lugar equivocado No estoy lo suficientemente avanzado como para saber una gran lista de técnicas avanzadas para sofocar je
Es curioso, tu lista es bastante similar a la mía; aunque puse los planes de ejecución un paso adelante, de lo contrario tenemos básicamente lo mismo. Casi pongo la tercera forma normal en intermedia, pero realmente creo que el modelado de datos no puede atribuirse a principiante / intermedio / avanzado, es simplemente un talento artístico demasiado gris. Saber hacer 3º normal es una habilidad, saber cuándo es un arte. Sin embargo, el cómo es relevante y casi lo pongo en intermedio también para eso je
Aquí está la escala que uso al entrevistar candidatos. Obviamente, esta es mi opinión personal, las escalas pueden variar fácilmente:
Primero, estoy buscando habilidades de base de datos, no específicamente "SQL".
Principiante:
Intermedio:
Avanzado:
fuente