2011-01-27 16 views
6

¿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

0

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.

+2

Woah prácticamente resumió mi curso universitario en Base de datos, especialmente el 'Diagrama E/R comentario' – kjy112

0

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.

0

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.

  1. Intentando normalizar una tabla basada en los nombres de columna en lugar de en datos de muestra representativos.
  2. 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.

+0

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. Rire1979

+0

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. –

0

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.

+3

En el ejército, tuvimos un dicho. "El buen juicio viene con la experiencia. La experiencia proviene del mal juicio". –

0

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.

+1

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

2

una de mis referencias favoritas es Fundamentals of Relational Database Design

+0

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

1

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.

1

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.

+0

"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

Cuestiones relacionadas