Antes de comenzar la lectura de la normalización hasta que no tenga preguntas al respecto. Si solo hiciste esto en la escuela, probablemente aún no sepas lo suficiente sobre el diseño.
Reúna cuidadosamente sus requisitos para cada módulo.Lo que necesita saber:
Las reglas de negocio (que son propios de las aplicaciones y que deben ser aplicadas enla base de datos robaba que deben aplicarse en todos los registros, sin importar la fuente),
hay una preocupación legales o reglamentarias (HIPAA por ejemplo, o los requisitos de la ley Sarbanes-Oxley) de seguridad (no necesidad de datos a cifrar?)
¿Qué datos se necesitan para almacenar y por qué (está disponible en ninguna otra parte estos datos)
qué partes de los datos sólo se tener una fila de datos y que necesitará tener varios filas
¿Cómo pretende imponer la singularidad de la fila en cada tabla? ¿Tiene una clave natural o necesita una clave sustituta (sugiera una clave sustituta en casi todos los casos)
¿Necesita replicación?
¿Necesita ayuda con la auditoría?
¿Cómo se van a ingresar los datos en la base de datos? ¿Procederá de la aplicación un registro a la vez (o incluso de múltiples aplicaciones) o alguna parte vendrá de inserciones masivas de una herramienta de ETL o de otra base de datos.
¿Es necesario saber que entró en el registro y cuando (muy probable que esto sea necesario en un sistema de la empresa.
¿Qué tipo de tablas de búsqueda se necesita? La entrada de datos es mucho más preciso cuando se puede usar tablas de búsqueda y restringir los usuarios a los valores.
¿Qué tipo de validación de datos se necesitan?
Aproximadamente cuántos registros del sistema tienen? usted necesita tener una idea de saber qué tan grande para crear su prueba datos.
¿Cómo vas a consultar los datos? ¿Estarás usando procs almacenados o un ORM o consultas dinámicas?
Algunas cosas muy básicas para recordar en su diseño. Elija el tipo de datos correcto para sus datos. No almacene fechas o números en los que tenga la intención de realizar cálculos matemáticos en los campos de cadenas. No almacene los números que no son candidatos para matemáticas (números de parte, códigos postales, números de teléfono, etc.) como datos de cadena, ya que puede necesitar ceros a la izquierda. No almacene más de una información en un campo. Entonces, no hay listas concatenadas en coma (esto indica la necesidad de una tabla relacionada) y mientras lo hace, si se encuentra haciendo algo como teléfono1, teléfono2, teléfono 3, deténgase inmediatamente y diseñe una tabla relacionada. Utilice claves externas para fines de integridad de datos.
Durante todo el proceso, tenga en cuenta la integridad de los datos. Los datos que no tienen integridad no tienen sentido y son inútiles. Diseñe para el rendimiento, esto es crítico en el diseño de la base de datos y NO es una optimización prematura. La base de datos no se refactoriza fácilmente, por lo que es importante obtener las partes más críticas de la ecuación de rendimiento la primera vez. De hecho, todas las bases de datos deben estar diseñadas para la integridad, el rendimiento y la seguridad de los datos.
No tenga miedo de tener varias uniones, correctamente indexadas estas funcionarán bien. No intente poner todo en una tabla de tipo de valor de entidad. Úselos con la mayor moderación posible. Intenta aprender a pensar en términos de manejo de conjuntos de datos, esto ayudará a tu diseño. Las pestañas de datos están optimizadas para hacer cosas en conjuntos.
Hay más, pero esto es suficiente para comenzar a digerir.
una pregunta tan "grande", pero tan poco tiempo antes de aceptar una respuesta? –