Me han dado a la tarea de diseñar una base de datos para almacenar una gran cantidad de información para nuestra empresa. Porque la tarea es bastante grande y contiene varios módulos donde los usuarios deben ser capaces de hacer las cosas, estoy preocupado acerca de cómo diseñar un buen modelo de datos para esto. Yo no quiero acabar con un mal diseño de la base de datos.

Quiero tener algo decente ejemplos de estructuras de base de datos de contratos, cobro, pedidos, etc, para combinarlas en una buena base de datos relacional. Hay recursos que me pueden ayudar con algunos ejemplos respecto a esto?

  • un «grande» de la cuestión, sin embargo, tan poco tiempo antes de aceptar una respuesta?
InformationsquelleAutor Younes | 2010-03-09

5 Comentarios

  1. 10

    Antes de empezar a leer sobre la normalización hasta que usted no tenga preguntas acerca de ella. Si sólo se hizo presente en la escuela, probablemente usted no sabe lo suficiente como para diseñar todavía.

    Reunir los requisitos para cada módulo con cuidado. Usted necesita saber:

    Reglas de negocio (que son específicos para las aplicaciones, y que deben ser aplicadas en la base de datos, ya que deben ser aplicadas en todos los registros, sin importar la fuente),

    No son legales o reglamentarias preocupaciones (HIPAA, por ejemplo, o la ley Sarbanes-Oxley requisitos)
    de seguridad (qué datos deben ser codificados?)

    ¿Qué datos se necesitan para almacenar y por qué? (es que esto de los datos disponibles en cualquier otro lugar)

    Que los pedazos de datos sólo tiene una fila de datos y lo que se necesita para tener varias filas?

    ¿Cómo piensa hacer cumplir la singularidad de la fila de cada tabla? ¿Tiene usted una clave natural o necesitas un sustituto de la clave (se sugiere un sustituto clave en casi todos los casos)?

    ¿Necesita replicación?

    ¿Necesita auditoría?

    Cómo es que los datos van a ser introducidos en la base de datos? Va a venir de la aplicación de un registro a la vez (o incluso de varias aplicaciones)o que algunos de los que vienen de inserciones masivas de una herramienta ETL o de otra base de datos.

    Qué necesita saber que ingresó en el registro y cuando (muy probablemente esto será necesario en un sistema de la empresa.

    Qué tipo de tablas de búsqueda se necesita? La entrada de datos es mucho más precisa cuando se puede utilizar las tablas de búsqueda y restringir a los usuarios de los valores.

    Qué tipo de validación de datos necesita?

    Aproximadamente cuántos registros del sistema? Usted necesita tener una idea para saber cómo de grande para crear tus datos de prueba.

    ¿Cómo vas a la consulta de datos? Va a ser el uso de procedimientos 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 almacenar fechas o números que pretenden hacer de las matemáticas en los campos de cadena. Hacer almacenar los números que no son candidatos para las matemáticas (los números de parte, códigos postales, números de teléfono, etc) como de datos de cadena como usted puede necesitar ceros a la izquierda. No almacenar más de una pieza de información en un campo. Así que no comas concatenación de listas (que indican la necesidad de una tabla relacionada) y mientras estás en ello, si usted se encuentra haciendo algo como phone1, phone2, teléfono 3, pare de inmediato y el diseño de una tabla relacionada. Hacer uso de claves foráneas para la integridad de los datos a los efectos.

    Todo el camino a través de su diseño considere la integridad de los datos. Datos que no tiene integridad es algo sin sentido e inútil. Hacer el diseño para el rendimiento, esto es fundamental en el diseño de base de datos y NO es prematuro optimización. La base de datos no refactorizar fácilmente, por lo que es importante llegar a las partes más críticas de la actuación de la ecuación de la derecha la primera vez. De hecho, todas las bases de datos necesitan ser diseñados para la integridad de los datos, el rendimiento y la seguridad.

    No tener miedo de tener varias combinaciones, indexado adecuadamente estos se realizan bien. No trate de poner todo en una entidad de tipo de valor de la tabla. El uso de estas lo menos posible. Trate de aprender a pensar en términos de manejo de conjuntos de datos, ayudará a su diseño. Las bases de datos están optimizadas para hacer las cosas en grupos.

    Hay más, pero esto es suficiente para empezar a digerir.

  2. 24

    Barry Williams ha publicado una biblioteca de cerca de seiscientos modelos de datos para todo tipo de aplicaciones. Casi sin duda le dará un «motor de arranque durante diez» para todos los subsistemas. El acceso a esta biblioteca es gratuito, así que check it out.

    Parece que esto es una gran «empresa » y» aplicación de su organización quiere, y parece ser un poco de un principiante con bases de datos. Si es posible, usted debe comenzar con un solo sub-sistema – es decir, los Pedidos y conseguir que funcione. No sólo la base de datos de tablas de construir, pero algunos esqueleto de front-end para ello. Una vez que es lo suficientemente bueno agregar otra, relacionadas con el sub-sistema, tales como la Facturación. Usted no quiere terminar con una enorme monstruo.

    También asegúrese de que usted tiene un decente modelado de datos de la herramienta. SQL Power Architect es bastante bueno para una herramienta gratuita.

    • hola, he intentado descargar la herramienta gratuita. googlecode.com dio un error sobre el archivo es demasiado grande y, por tanto, bloqueada. Puede compartir con nosotros lo has descargado ? gracias, Anjan Bacchu
    • +1 para Barry William modelos de datos databaseanswers.org/data_models
  3. 2

    Trate de mantener su preocupación por separado aquí. Los usuarios de ser capaz de actualizar la base de datos es más de un «diseño de la aplicación» problema. Si usted recibe su diseño de base de datos a la derecha, a continuación, debe ser un caso de desarrollo de un buen front-end para él.

    Primera cosa a tener en cuenta es La normalización. Este es el proceso de eliminación de cualquier redundante datos de las tablas. Esto ayudará a mantener su base de datos ordenada, y sólo almacena la información que es relevante para sus necesidades.

    • Gracias por tu respuesta, he ido a la escuela para esto y saber lo que la normalización es. Soy muy cuidado aquí, ya que no quiero que mi primera como proyecto real ahí fuera a fallar :). Es por eso que me gustaría ver algún ejemplo normalizado relacional de base de datos.
    • No se preocupe demasiado acerca de los proyectos que no, le pasa a todos…incluso a los mejores desarrolladores 🙂 Como siempre que se completa en la recopilación de qué información debe se almacenan en la base de datos, el diseño de la base de datos no debería ser demasiado difícil.
    • thx por tu comentario, voy a tratar de no preocuparse demasiado.
  4. 0

    La base de datos no debe ser el modelo. Se utiliza para guardar información entre las sesiones de trabajo.

    Usted no debe construir su aplicación a un modelo de datos, sino en una buena orientado a objetos modelo de que sigue la lógica de negocio.

    Una vez que el modelo de objetos se realiza, a continuación, pensar acerca de cómo usted puede guardar y cargar, con todo el diseño de base de datos que va con ella.

    (pero al parecer, su empresa sólo queremos que el diseño de una base de datos ? no es una aplicación ?)

    • Correcto, pero yo ya lo sabía. No es que yo no sé qué es la base de datos o de nada ;). Sólo quiero una decente db a trabajar.
    • Varias aplicaciones pueden compartir una única base de datos. Además de la integridad de los datos de una empresa puede ser crucial para su supervivencia. Por eso es importante que la base de datos con precisión los modelos de los datos de la empresa.
    • El peor método que se me ocurre de diseño de una empresa-tipo de la base de datos.

Dejar respuesta

Please enter your comment!
Please enter your name here