¿Cuáles son sus pasos y pautas para la normalización de la base de datos? Si se le da un grupo de personas con buenas habilidades informáticas y lógicas, ¿cómo les explicas cómo normalizar el diseño de una base de datos? ¿Cuál es su proceso de pensamiento para tomar una lista de atributos (campos) y convertir esa lista en una base de datos en 1NF? 2NF? 3NF?¿Cómo se enseña la normalización de la base de datos?
Respuesta
retirar algunos de estos recursos:
o conseguir su gente el mejor libro que he encontrado para el aprendizaje de diseño de base de datos:
Database Design for Mere Mortals(R): A Hands-On Guide to Relational Database Design (2nd Edition) por Mike Hernandez
Solo elija 3nf y concéntrese en los datos redundantes y todo será muy sencillo. O puede ir por el camino equivocado y usar diagramas E/R solo para confundirlos.
La forma en que me enseñaron fue construir desde 1NF, 2NF 3NF BCNF, etc., como una especie de viaje de aprendizaje de tipo de lección de historia.
Realmente depende de su audiencia, ir directamente a 3NF tal vez un poco de un salto.
Una de las primeras lecciones, y una de las más importantes, es que los formularios normales se aplican a tablas individuales, no a bases de datos. Tiene sentido decir, "La mesa 'wibble' está en BCNF", pero no tiene sentido decir "Esta base de datos está en 3NF".
Veo dos grandes problemas con mucha frecuencia al tratar con desarrolladores de bases de datos.
- Intentando normalizar una tabla basada en los nombres de columna en lugar de en datos de muestra representativos.
- No entendiendo las dependencias funcionales.
Esos dos están interrelacionados, en que las dependencias funcionales se definen en términos de valores, no en términos de nombres de columna.
Una base de datos relacional se normaliza en BCNF si todas las relaciones en la base de datos se normalizan en BCNF. Funciona de manera similar para 1NF, 2NF, etc.
Admitiré que tiene sentido decir "Todas las tablas de esta base de datos están en 3NF". Pero eso es porque todavía estás hablando de tablas. No hay un proceso lógico de preservación de la información que pueda aplicar a una base de datos para cambiarlo de 2NF a 3NF. * Hay * un proceso lógico que preserva la información que puede aplicar a una tabla para cambiarlo de 2NF a 3NF. Tanto 2NF como 3NF se definen en términos de dependencias funcionales. No existe una dependencia funcional en el nivel de la base de datos, solo en el nivel de la tabla. –
Asegúrese de que entienden que las reglas de normalización sirven como una inversión a largo plazo, y esas reglas se crearon sobre la experiencia de tener que mantener una base de datos desnormalizada.
En el ejército, tuvimos un dicho. "El buen juicio viene con la experiencia. La experiencia proviene del mal juicio". –
Me parece mucho más importante enseñar un buen diseño (usar tablas de combinación cuando sea apropiado, saber cuándo usar NULL, cuándo usar claves de sustitución, ...) y cuando este concepto sea claro, decirles: Lo que hizo es en realidad 1,2,3, ... NF debido a ...
De esta manera, la teoría no te bloquea y puedes diseñar bases de datos bien y saber más tarde, qué NF era.
Uhm, ¿así que quieres que enseñe lo que está enseñando? Eso es bueno. Le diré a mi profesor de álgebra lineal que empiece a enseñar álgebra lineal. Quién sabe qué enseñaría de otra manera. – stefan
una de mis referencias favoritas es Fundamentals of Relational Database Design
lol - ¡es gratis, no tienes que comprarlo! y aunque las imágenes pueden ser antiguas, solo enfatizan que la filosofía detrás de las imágenes todavía es válida y ha sido válida por mucho tiempo. – Leslie
Suponiendo que ya saben sobre los conceptos fundamentales (Relaciones, claves candidatas y dependencias funcionales) y luego comenzar con BCNF. BCNF es de lejos el más fácil de explicar y es mucho más importante que 2NF, 3NF, que es mejor ignorar por completo en esta etapa. Luego explica Join Dependency y 5NF.
Solía enseñar esto a los programadores en la década de 1980. Muchos de ellos nunca habían usado una base de datos, aunque habían estado programando en COBOL, BASIC o C durante diez años o más.
Solía enseñar primero la programación de bases de datos, con cierto detalle antes de entrar en el diseño de la base de datos. Y yo solía enseñar modelado de datos conceptuales, usando ER, antes de entrar en el diseño de la base de datos. Luego, al enseñar la composición de la mesa, la normalización surgió con bastante naturalidad. Solo enseñé 1NF, 2NF y 3NF, aunque si pudiera regresar y volver a hacerlo, probablemente incluiría BCNF.
Fantástico, no enseñes en como si fuera una especie de religión. Enseñe lo que sucede cuando no sigue las reglas de normalización y bríndeles una idea de las situaciones en las que violar la normalización podría tener sentido. Demasiados principiantes se les enseña esto como una violación es una especie de pecado mortal. No es.
"Demasiados principiantes se les enseña esto como una violación es una especie de pecado mortal. No es así". En realidad, votaría Rooks por mal en esto. Es un pecado mortal diseñar por elección una base de datos no normalizada. Está a la altura de la osadía y los programadores con bajo V02_max – stefan
- 1. Normalización de base de datos
- 2. ¿La normalización de la base de datos sigue siendo necesaria?
- 3. ¿En qué punto la normalización de datos se vuelve absurda?
- 4. ¿Comprobador de normalización de esquema de base de datos?
- 5. SQL: La normalización de la base de datos, manteniendo las restricciones
- 6. ¿Qué tan lejos tomar la normalización en el diseño de la base de datos?
- 7. columnas de base de datos y normalización clave externa
- 8. Normalización de la base de datos para el Sistema de gestión escolar
- 9. Corrección de ortografía para la normalización de datos en Java
- 10. Actualización de la base de datos sqlite cuando la base de datos del servidor se actualiza
- 11. conjunto de datos La normalización con el rubí
- 12. Normalización/validación para conjuntos de datos internacionales en una base de datos?
- 13. La estructura de diseño/normalización de la base de datos debe contener AND, OR, elementos opcionales y sus relaciones
- 14. En Oracle, ¿cómo se cambia la base de datos 'predeterminada'?
- 15. SQLiteOpenHelper: ¿cómo se crea la base de datos?
- 16. ¿Cómo se modelan las etiquetas en la base de datos?
- 17. Python y la normalización de caracteres
- 18. columnas de la normalización de Weka
- 19. Ayuda de normalización de diseño de base de datos necesaria (5nf)
- 20. Cómo eliminar la base de datos, la base de datos de error 5030 no se puede bloquear
- 21. ¿Cómo se maneja la gestión de la configuración de las tablas de la base de datos?
- 22. Esquema de la base de datos para la ACL
- 23. Copia de datos relacionales de la base de datos a la base de datos
- 24. ¿Cómo se puede ocultar la salida de la base de datos en la consola de Rails?
- 25. ¿Cómo volcar la base de datos mysql?
- 26. Heroku - Cómo cifrar la base de datos
- 27. neo4j: ¿Cómo cambiar la base de datos?
- 28. cómo abandonar la base de datos
- 29. cómo reducir la base de datos sqlite?
- 30. ¿Cómo sabes cuando una base de datos SQL necesita más normalización?
Woah prácticamente resumió mi curso universitario en Base de datos, especialmente el 'Diagrama E/R comentario' – kjy112