2010-08-05 10 views
8

¿Pueden mostrarme cómo obtener este ERD en 5ta forma normal? Ayer hicimos una tarea de clase en la que tuvimos un cliente real y nos explicó su necesidad. Mi grupo ideó este modelo. Estoy tratando de llevarlo un paso más allá y ver si puedo alcanzar la 5ta forma normal para que Podemos entenderlo mejor, ya que la próxima semana haremos otro ERD grupal que tendrá que estar en 5nf. Lo que pasa es que no sé por dónde empezar y el libro no me llega. Pueden ayudarme chicos. Erd Model http://img534.imageshack.us/img534/2118/capturekk.jpgAyuda de normalización de diseño de base de datos necesaria (5nf)

Nueva información "Clientes falsas necesidades"

El cliente tiene 2 departamentos "Laboratorio 1, 2 de laboratorio" que ordenan los artículos médicos de él, como guantes y pi mascotas etc .. los departamentos han crecido y él quiere hacer un seguimiento de lo que está en el inventario lo que los vendedores están vendiendo que tiene el mejor precio y el costo centro que proviene.

La forma en que explicó que se ordena el artículo es que un individuo se acerca a él y le pregunta por suministros luego escribe lo que laboratorio de la persona es de los nombre de las personas y lo que centro de coste a la factura. pero él también quiere rastrear lo que ha sido comprado por fecha y lo que está en stock y lo que tiene que ser comprado. También dio un ejemplo que algunos usuarios quieren artículos de un proveedor específico que posible que no tenga los mejores precios y también recibe algunos catálogos en los electrónicos con precios demasiado que quiere pista.

Pido disculpas si se mezcla pero esto es todo de la memoria.

+0

¿Hay algo que te haga pensar que esto no está ya en 5NF? –

+0

Estudiar las definiciones de estos formularios en Wikipedia me lleva a sospechar que sí lo es, aunque seguiré la discusión con interés. –

+0

Aclare la lógica comercial detrás de este modelo: es un sistema de seguimiento de compras, es una vista del cliente de los pedidos que han realizado con varios proveedores, en lugar del caso más habitual de un proveedor que realiza un seguimiento de los pedidos realizados por los clientes. – APC

Respuesta

4

Voy a sacar el cuello y decir que su esquema actual realmente no tiene ninguna elegibilidad para 5NF. Tomando una cita de Wikipedia, se dice que la mayoría tablas 4nF ya se ajustan a 5NF:

Uso Sólo en raras ocasiones hace una mesa 4NF se ajusta a 5NF. Estos son situaciones en las que una restricción del mundo real que rige las combinaciones válidas de los valores de atributo en la tabla 4NF no está implícita en la estructura de esa tabla. Si una tabla tal no se normaliza a 5NF, la carga de mantener la lógica consistencia de los datos dentro de la tabla debe realizarse en parte por la aplicación responsable de inserciones, supresiones, y cambios a ella; y hay un mayor riesgo de que los datos dentro de la tabla serán se vuelvan inconsistentes. Por el contrario, el diseño 5NF excluye la posibilidad de tales incoherencias.

http://en.wikipedia.org/wiki/Fifth_normal_form

Tal vez el objetivo no es hacer que su 5NF base de datos, pero para entender su estructura en comparación con 5NF y hacer un argumento de por qué podría estar ya en 5NF.

Actualización: leyendo algún tipo de consenso de los comentarios, parece que su diseño ya puede estar en 5NF, ya sea por diseño o por accidente de un pase de normalización anterior.

+0

Pero puede mejorarse aún más es lo que realmente quiero saber, estaba liderando el grupo cuando enloqueció esta tabla y fue principalmente mi entrada la que compuso el ERD, pero fue principalmente por accidente y al referirme a algunas diapositivas que teníamos anteriormente revisado en clase –

+0

Ok, mi pregunta principal es ¿lo hubieras hecho de otra manera? si es así, ¿qué harías para que este sea un diseño sólido de 5nf? –

+0

Se ve lo suficientemente sólido para mí: ha agregado datos relacionados (es decir, una entidad con sus atributos) en sus propias tablas, ha dividido sus muchos a muchos. Creo que necesitas un conjunto de resultados más complicado para demostrar 5NF. Mirando la entrada de la wiki, el ejemplo que se muestra allí fue bastante específico. Creo que el diseño actual es bueno; si no es así, el conferencista puede señalar cualquier deficiencia. –

1

Descargo de responsabilidad: Sin conocer la lógica de su negocio, podría estar completamente equivocado con algunas de las siguientes sugerencias.

Ok algunas cosas que vi en el esquema de su base de datos.

  1. Su tabla de centro de coste parece ser una tabla de búsqueda y de asociación. Entonces, si tiene una cantidad determinada de centros de costo, digamos 5 por ejemplo pero 1000 usuarios, esta tabla tendrá 5000 registros que almacenan el nombre del centro de costo (suponiendo que la asignación del centro de costo no es exclusiva de cada usuario). Es posible que desee dividir la asociación de usuarios en una tabla separada que tenga sus propias PK y FK de costcenterId y userId.
  2. Su tabla de inventarios, que supongo que almacena la cantidad de stock disponible para un artículo, solo debería necesitar un onhand cantidades que no esté seguro para qué es la descripción. Si la descripción no es exclusiva de cada inventario de artículos, es posible que desee dividirla en su propia tabla de búsqueda y hacer referencia a ella en la tabla de inventario.
  3. Está almacenando "lineQuantity" en la tabla del proveedor. Para qué es esta columna Parece que se relaciona de algún modo con una orden específica (¿cantidad de artículos comprados?) En ese caso, querrá dividirla en su propia tabla y asociarla con la orden, no con el proveedor. sin saber exactamente qué LineQuantity es, aunque esta sugerencia podría ser completamente incorrecta.
  4. Última sugerencia no estoy seguro de si esto es importante para su clase. Está definiendo todos sus tipos de datos como CHAR (10), es posible que desee cambiarlos para que sean los tipos de datos reales que usaría para la base de datos.
Cuestiones relacionadas