Cómo diseñar una base de datos SQL
El primer paso para el diseño de cualquier base de datos en SQL es identificar qué incluir y qué no incluir. Los próximos pasos incluyen la decisión de cómo los elementos incluidos se relacionan entre sí y luego la creación de tablas en consecuencia.
Para diseñar una base de datos en SQL, siga estos pasos básicos:
Decida qué objetos que desea incluir en su base de datos.
Determinar cuáles de estos objetos deben ser tablas y que debe ser columnas dentro de esas mesas.
Definir tablas basadas en la forma en que usted necesita para organizar los objetos.
Opcionalmente, es posible que desee designar una columna de tabla o una combinación de columnas como clave.
Paso 1: Definir objetos
El primer paso en el diseño de una base de datos es decidir cuáles son lo suficientemente importantes como para incluir en el modelo de los aspectos del sistema. Tratar a cada aspecto como un objeto y crear una lista de todos los objetos que se pueda imaginar. En esta etapa, no trate de decidir cómo estos objetos se relacionan entre sí. Simplemente tratar de enumerarlos todos.
Cuando usted tiene un conjunto razonablemente completo de objetos, pasar al siguiente paso: decidir cómo estos objetos se relacionan entre sí. Algunos de los objetos son importantes entidades que son cruciales para darle los resultados que desea. Otros objetos son subsidiarias de esas grandes entidades. En última instancia, usted puede decidir que algunos objetos no tienen cabida en el modelo en absoluto.
Paso 2: Identificar las tablas y columnas
Las principales entidades traducir en tablas de bases de datos. Cada entidad principal tiene un conjunto de atributos - las columnas de la tabla. Muchas bases de datos de negocio, por ejemplo, tienen una tabla CLIENTE que realiza un seguimiento de los nombres, direcciones y otra información permanente de los clientes. Cada atributo de un cliente - como su nombre, calle, ciudad, estado, código postal, número de teléfono y dirección de correo electrónico - se convierte en una columna (y un encabezado de columna) en la tabla CLIENTE.
Si usted está esperando para encontrar un conjunto de reglas para ayudarle a identificar qué objetos deben ser tablas y cuáles de los atributos en el sistema pertenecen a las tablas, se equivoca: Puede tener algunas razones para asignar un atributo particular de una tabla y otras razones para asignar el mismo atributo a otra mesa. Usted debe basar su juicio en dos objetivos:
La información que desea obtener de la base de datos
¿Cómo desea utilizar esa información
Al decidir cómo estructurar tablas de bases de datos, involucrar los futuros usuarios de la base de datos, así como las personas que van a tomar decisiones basadas en la información de base de datos. Si usted viene con lo que crees que es una estructura razonable, pero no es consistente con la forma en que la gente va a usar la información, su sistema será frustrante para utilizar en el mejor - y podría incluso producir información errónea, lo que es aún peor .
Echa un vistazo a un ejemplo. Supongamos que VetLab acaba de establecer, un laboratorio de microbiología clínica que pone a prueba las muestras biológicas enviadas por los veterinarios. Usted desea realizar un seguimiento de varias cosas, entre ellas las siguientes:
Clientes
Las pruebas que se realizan
Empleados
Órdenes
Resultados
Paso 3: Definir tablas
Ahora se quiere definir una tabla para cada entidad y una columna para cada atributo.
Mesa | Columnas |
---|---|
CLIENTE | Nombre de Cliente |
Dirección 1 | |
Dirección 2 | |
Ciudad | |
Estado | |
codigo postal | |
Teléfono | |
Fax | |
Persona de contacto | |
PRUEBAS | Nombre de la prueba |
Carga estándar | |
EMPLEADO | nombre de empleado |
Dirección 1 | |
Dirección 2 | |
Ciudad | |
Estado | |
codigo postal | |
Telefono de casa | |
Extensión Oficina | |
Fecha de contratación | |
Clasificación de trabajo | |
Hora / Salario / Comisión | |
PEDIDOS | Número de orden |
Nombre de Cliente | |
Prueba Pedido | |
Vendedor Responsable | |
Fecha de orden | |
RESULTADOS | Número Resultado |
Número de orden | |
Resultado | |
Fecha del informe | |
Preliminar / final |
Puede crear las tablas definidas aquí usando ya sea una herramienta de desarrollo rápido de aplicaciones (RAD) o mediante el uso de SQL Data Definition Language (DDL), como se muestra en el siguiente código:
CREAR CLIENTE MESA (ClientName CHAR (30) NOT NULL, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), FaxCHAR (13), Persona de contacto CHAR (30)) PRUEBAS DE MESA -CREAR (TestName CHAR (30) NOT NULL, StandardCharge CHAR (30)): Para crear EMPLEADO MESA (EmployeeName CHAR (30) NOT NULL, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), PostalCode CHAR (10), HomePhone CHAR (13), OfficeExtension CHAR (4), HireDate FECHA, JobClassification CHAR (10), HourSalComm CHAR (1)) PEDIDOS DE MESA -create (OrderNumber INTEGER NOT NULL, ClientName CHAR (30), TestOrdered CHAR (30), Vendedor de CHAR (30), FechaPedido FECHA) RESULTADOS TABLA -create (ResultNumber INTEGER NOT NULL, OrderNumber INTEGER, Resultado CHAR (50), DateReported FECHA, PrelimFinal CHAR (1 )) -
Estas tablas se relacionan entre sí por los atributos (columnas) que comparten, como la lista siguiente se describe:
Los vínculos de la tabla cliente a la tabla PEDIDOS por la Nombre de Cliente columna.
Los enlaces de mesa pruebas para la tabla PEDIDOS por la TestName (TestOrdered) columna.
Los vínculos de la tabla EMPLEADO a la tabla PEDIDOS por la EmployeeName (Vendedor) columna.
Los enlaces tabla de resultados a la tabla PEDIDOS por la Número de orden columna.
Si quieres una mesa para servir como una parte integral de una base de datos relacional, vincular esa mesa a por lo menos otra tabla en la base de datos, utilizando una columna común.
Los enlaces que ilustran cuatro diferentes uno-a-muchos relaciones. El diamante en el medio de cada relación muestra la cardinalidad máxima de cada extremo de la relación. El número 1 indica la , uno " lado de la relación, y N denota la " a muchos " lado.
Un cliente puede hacer muchos pedidos, pero cada pedido sea hecha por uno, y sólo uno, el cliente.
Cada prueba puede aparecer en muchos pedidos, pero cada orden pide uno, y sólo uno, de prueba.
Cada orden es tomado por uno, y sólo uno, de los empleados (o vendedor), pero cada vendedor puede tener varios pedidos.
Cada orden puede producir varios resultados de la prueba preliminar y el resultado final, pero cada resultado está asociado con uno, y sólo uno, el orden.
El atributo que vincula una tabla a otra puede tener un nombre diferente en cada mesa. Ambos atributos deben, sin embargo, tienen tipos de datos coincidentes.