8 Diseño de BD

Anuncio
Capítulo 8 – Diseño de base de datos
Bases de Datos
Generalidades
Cuando se crea una base de datos, es necesario considerar cuidadosamente sus componentes. Los siguientes
conceptos, ayudan al diseño:
Ciclo de Desarrollo del Sistema
Estrategia y Análisis
 Estudiar y analizar los requerimientos de la empresa. Identificar los requerimientos de información.
Incorporar las reglas del negocio y de la aplicación.
 Construir modelos del sistema. Confirmar y refinar el modelo.
Diseño
 Diseñar la base de datos. El modelo entidad-relación traduce entidades a tablas, atributos a columnas,
relaciones a claves externas (foreign keys) y reglas del negocio a restricciones (constraints).
Construcción y Documentación
 Construir el prototipo del sistema. Escribir y ejecutar los comandos para crear las tablas y proveer los
objetos para la base de datos.
 Confeccionar la documentación para el usuario, los textos para la ayuda en pantalla y manuales de operación
para soporte al usuario y operación del sistema.
Transición
 Redefinir el prototipo. Llevar una aplicación a la producción con el test de aprobación del usuario,
conversión de los datos existentes y operaciones paralelas. Realizar las modificaciones que se requieran.
Producción
 Entregarle el sistema a los usuarios. Operar el sistema en producción. Monitorear su performance, mejorarlo
y refinarlo.
Diseño de la Base de Datos
Diseñar una base relacional implica convertir un modelo en una representación de software sobre la que se pueda
trabajar. Las entidades (u objetos) percibidos por el usuario se transforman en tablas de la base de datos. Todas
las formas del diseño involucran una mezcla de reglas, juicios y sentido común. Lo mismo es válido para el
diseño relacional.
Durante la etapa de diseño, el objetivo es lograr sistemas con un diseño confiable y de alta performance, usando
los resultados de la etapa de análisis. Los siguientes factores son claves y describen en detalle por qué debe
tomarse la molestia de diseñarlo todo.
Performance
El diseño inicial de un sistema tiene un impacto enorme sobre su performance final. Generalmente este impacto
es mucho más grande que cualquier tuning o ajuste posterior.
Integración de la Aplicación
Las aplicaciones de sistemas son creadas, típicamente, por equipos de desarrolladores. Sin alguna especificación
de diseño sobre la cual trabajar, cada desarrollador puede construir su parte con su propio estilo. Un buen diseño
no sólo da una buena apariencia al producto, sino que también permite asegurar que todos los componentes de la
aplicación resultante se encuentren bien integrados entre sí.
Integración con Otros Sistemas
Con frecuencia, existen requerimientos que hacen que un sistema nuevo se integre con uno ya existente o con
sistemas que no se han construído aún. Un buen diseño extiende los beneficios de integración antes
mencionados a los sistemas corporativos o globales.
8 -1
Capítulo 8 – Diseño de base de datos
Bases de Datos
Documentación y Comunicación
Una parte importante de la tarea del diseñador es comunicarle a otros las decisiones del diseño. Esas decisiones
necesitan. Como mínimo, documentarse.
Escalabilidad
Las cuestiones de performance se deben abordar durante el diseño en lugar de hacerlo cuando el sistema se
encuentra en producción. Por ejemplo, el desarrollo de una aplicación en un ambiente pequeño y controlado no
permite testear situaciones del mundo real o grandes volúmenes de datos, factores que pueden revelar defectos o
fallas en el diseño.
Evitar “reinventar la rueda”
Muchos de los problemas con los que uno se encontrará, ya han sido encontrados por otros anteriormente. En la
medida de lo posible, utilizar soluciones existentes y exitosas.
Modelo Entidad-Relación
El modelo entidad-relación es derivado de las especificaciones del negocio o narrativas. Este modelo es una
representación gráfica de las necesidades de información y reglas del negocio.
El modelo entidad-relación separa la información requerida por la empresa de las actividades dentro de la
misma. Aunque los negocios puedan cambiar sus actividades, el tipo de información tiende a mantenerse
constante. Por lo tanto, las estructuras de datos también tienden a mantenerse constantes.
Beneficios del Modelo Entidad-Relación





Documenta los requerimientos de información de la empresa, en una forma precisa y clara.
Provee una representación gráfica de fácil comprensión para el diseño de la base de datos.
Es fácil de desarrollar y refinar.
Define claramente el alcance de los requerimientos de información.
Ofrece un ambiente de trabajo efectivo para la integración e múltiples aplicaciones, desarrollo de proyectos
y paquetes de aplicaciones ya adquiridos.
Componentes Básicos
Componente
Entidad
Atributo
Relación
Descripción
Un elemento relevante acerca del cual se
necesita conocer información.
Algo que describe o califica una entidad y
contiene información específica que se
requiere conocer acerca de ella.
Una asociación entre entidades, con un
nombre, que muestra grado y opcionalidad.
Ejemplos
Clientes, Vendedores, Pedidos
Nombre, Teléfono, Nro. De Documento,
Fecha de Nacimiento.
Pedidos y Productos, Clientes y
vendedores.
Modelo Entidad-Relación: Conceptos
Un modelo entidad-relación se compone de entidades, atributos y relaciones.
Entidades
Una entidad es algo relevante para la empresa o una categoría o conjunto discreto de datos relacionados.
Algunos ejemplos son cñientes, órdenes y empleados.
Las convenciones para representar a una identidad en el modelo son:
 Cajas con bordes redondeados de cualquier tam,año
 Nombre de la entidad singular y único
 El nombre de la entidad debe ir en mayúsculas
 Sinónimos opcionales par el nombre pueden ir con mayúsculas y encerrados entre paréntesis ( ).
8 -2
Capítulo 8 – Diseño de base de datos
Bases de Datos
Atributos
Los atributos describen las entidades y contienen información específica que se quiere conocer acerca de ella.
Por ejemplo, para la entidad cliente, los atributos serían número del cliente, número telefónico y dirección.
Si una entidad no tiene atributos relevantes desde la óptica de la empresa, entonces no está dentro del alcance de
los requerimientos del sistema y no debe aparecer en el modelo.
Cada uno de los atributos puede ser obligatorio u opcional. Este estado se denomina opcionalidad.
Las convenciones ara representar un atributo en un modelo son:
 Usar nombres singulares en minúscula
 Marcar los atributos obligatorios o valores que deben conocerse, con un asterisco “*”
 Marcar los atributos opcionales o valores que pueden conocerse, con una “o”
Identificadores Unicos
Un identificador único (UID) es cualquier combinación de atributos, relaciones o ambos, que sirven para
distinguir cada ocurrencia de una entidad. Cada una de esas ocurrencias debe ser identificable unívocamente.
 Marcar cada atributo que es parte del UID con un signo numeral “#”.
 Marcar los identificadores únicos con un signo numeral entre paréntesis “(#)”.
Relaciones
Cada entidad debe tener una relación que represente los requerimientos de información y reglas del negocio. La
relación es una asociación bidireccional entre dos entidades, o entre una entidad y sí misma.
Cuando una tabla tiene una relación consigo misma, esa relación se define como recursiva.
Cada dirección de la relación contiene
 Nombre, por ejemplo, enseñado por o asignado a.
 Opcionalidad, o bien puede estar o bien debe estar.
 Grado o cardinalidad, puede ser uno y solo uno, o uno a muchos.
Relaciones: Sintaxis
entidad origen {puede estar | debe estar } nombre de la relación {uno y sólo uno | uno o más } entidad destino
Convenciones para la Diagramación de Relaciones
Símbolo
Línea punteada
Línea Sólida
Pata de gallo
Línea simple
Descripción
Elemento indicando opcionalidad. “puede estar”
Elemento indicando obligatoriedad. “debe estar”
Elemento indicador de grado “uno o más”
Elemento indicador de grado “uno y sólo uno”
Identificador Unico a lo largo de la Relación
Una entidad puede estar identificada de manera unívoca a lo largo de toda la relación.
Usar una barra de UID para indicar que una relación es parte del identificador único de la entidad. La relación
incluída en un UID debe ser mandatoria y de uno y sólo uno en la dirección que participa en la UID.
Ejemplo
Cuando se ordenan ítems, se obtiene un número de orden y un ítem con una línea e número de ítem única. Pero
cuando se ingresa otra orden, ese ítem ya deja de ser único. Por lo tanto, el ítem es definido unívocamente por su
atributo número y por el número de orden específico con el cual el ítem se relaciona.
Número de Orden
100
100
100
101
101
Número de Item
Número de Producto
209
399
876
630
297
1
2
3
1
2
8 -3
Capítulo 8 – Diseño de base de datos
Bases de Datos
Relaciones Recursivas
Una relación entre una entidad y sí misma se denomina relación recursiva. Esto se representa con un “rulo”, es
decir una flecha curva que tiene origen y destino en la misma tabla.
Tipos de Relación
Tipo
Uno-a-uno
Muchos-a-uno
Muchos-a-muchos
Descripción
Grado de uno y sólo uno en ambas direcciones. Esos tipos no son frecuentes y en
realidad puede tratarse de la misma entidad o de un atriburo de la entidad.
Grado de uno o más en un sentido y grado de uno y sólo uno en el sentido contrario.
Es muy común.
Grado de uno o más en ambos sentidos. Muy común. Se resuelven con una entidad
intersección.
Normalización
Antes de diseñar la base de datos, se normaliza el modelo de datos para eliminar los problemas de redundancia
de datos. Modificar el modelo de datos para que pueda soportar diferentes requerimientos funcionales y diseños
alternativos, normalizando el esquema de los datos antes de crear la base de datos.
Beneficios de la Normalización



Minimiza la redundancia de datos
Reduce los problemas de integridad
Identifica entidades, relaciones y tablas faltantes.
Formas Normales
Forma
Primera (1FN)
Segunda (2FN)
Tercera
(3FN)
Descripción
Los atributos no deben tener estructuras repetitivas o agrupamientos.
Un atributo debe depender de la totalidad del identificador único de su identidad.
Ningún atributo que no pertenezca al identificador único puede depender de otro
atributo que no pertenezca al identificador único.
Claves y Restricciones de Identidad (Constraints)
Aseguran que la base de datos conserve siempre un estado consistente y correcto al aplicar restricciones de
integridad a los datos. El servidor de la base de datos o el software de aplicación deben garantizar el
cumplimiento de todos los datos. Las claves corresponden a las restricciones de integridad. Los tres tipos de
claves son: primary key (claves primarias), unique key (claves únicas) y foreign key (claves externas)
Tipo de Restricción de Identidad
Entidad
Referencial
Columna
Definido por el Usuario
Descripción
Ningún componente de una primary key puede ser NULL y el valor de
la misma deber ser único.
Los valores de las foreign key deben corresponderse con el de una
primary key o debe ser NULL.
Los valores en una columna deben ser del tipo definido para dicha
columna
Los valores deben ser compatibles con las reglas del negocio.
Ejemplos de Restricciones de Integridad definidas por el usuario



Un empleado del departamento de finanzas no puede tener un cargo de programador
La comisión de un vendedor no puede exceder el 50% de su sueldo base.
Los clientes pueden tener solamente una calificador de crédito Excelente, Buena o Mala
8 -4
Capítulo 8 – Diseño de base de datos
Bases de Datos
Claves Primarias
Cada fila en una tabla es unívocamente identificada por una columna o conjunto de ellas denominado primary
key (PK). La primary key se define para no permitir que los valores sean duplicados ni NULL.
Una primary key que se encuentra formada por varias columnas se denomina una primary key compuesta o
primary key mixta. Las columnas de una primary key compuesta deben ser únicas en combinación, aunque las
columnas, individualmente puedan tener duplicados. Ninguna componente de una primary key puede contener
valores nulos.
Claves Candidatas
Una tabla puede tener varias claves candidatas. Una clave candidata es una columna o combinación de éstas que
puede servir como la primary key para la tabla.
Seleccionar una clave candidata para que sea la primary key de la tabla. Las otras candidatas se convierten en
claves alternativas o claves únicas. Ellas deben ser UNIQUE (UK) y NOT NULL.
Foreign Keys
Una foreign key (FK) es una columna o combinación de ellas de una tabla que hacen referencia a una primary
key o unique key en la misma tabla o en otra. Las foreign keys se basan en valores de los datos y son puramente
lógicas, no son punteros físicos. El valor de una foreign key debe coincidir con el de la primary key o unique key
relacionada o bien puede ser NULL. Si una foreign key es parte de una primary key, no puede contener un valor
nulo porque el valor de ninguna parte de una PK puede ser NULL.
Ejemplo
En la tabla S_ITEM, el campo ORD_ID no puede contener un valor nulo porque es parte de la PK.
Foreign Key
ORD_ID
100
100
101
101
ITEM_ID
1
2
1
3
Tabla S_ITEM
Primary Key
PRODUCT_ID
10011
10013
30421
41010
....
Primary Key
ID
100
101
102
CUSTOMER_ID
204
205
206
Tabla S_ORD
DATE_ORDERED
31/08/92
31/08/92
01/09/92
....
Diseño de la Base de Datos
La etapa de diseño de la base de datos produce las especificaciones para una base de datos relacional, incluyendo
las definiciones de las tablas, índices, vistas y espacio de almacenamiento.
Llevar el Modelo Entidad-Relación a un Cuadro de Instancias de Tablas.
1.
2.
3.
4.
Llevar las entidades simples a tablas.
Llevar los atributos a columnas. Definir con claridad los nombres de las columnas y sus tipos de datos
genéricos; por ejemplo, caracter, número o fecha.
Llevar los identificadores únicos a primary key. Asegurarse de incluir todas las foreign key que son
componentes de la primary key.
Llevar las relaciones a foreign keys.
8 -5
Capítulo 8 – Diseño de base de datos
Bases de Datos
Cuadro de Instancias
1
Tabla S_CUSTOMER
2
Nombre Columna ID
3
Tipo de Clave
PK
NN/UK
NN,U
4
Sales_rep_id
Region_id
FK1
FK2
Tabla de la FK
S_EMP
S_REGION
Columna de la FK
ID
ID
CHAR CHAR
NUM
NUM
25
7
7
Tipo de dato
NUM
Longitud Máxima 7
Name
Phone
Address
NN
20
Símbolos Usados para Documentar el Cuadro de Instancias de Tablas
Símbolo
PK
FK
FK1, FK2
FK1, FK1
NN
U
U1, U1
Definición
Columna perteneciente a la Primary Key
Columna perteneciente a la Foreign Key
Dos Foreign Key dentro de la misma tabla
Dos columnas dentro de la misma foreign key compuesta
Columna no nula
Columna con calores únicos
Dos columnas cuyo valor combinado es único
Guías



Los nombres de las tablas deben ser simples para poder saber sobre qué identidad trata o representa.
Algunas veces se usa el nombre de una entidad en plural, porque la tabla contendrá un conjunto de filas. Es
conveniente ser coherente al respecto y no mezclar en el diseño plurales y singulares.
Los nombres de las columnas deben ubicarse con facilidad en el modelo entidad-relación. Los nombres de
columnas cortos reducen el tiempo requerido para interpretar el comando SQL.
Deben desarrollarse convenciones y standares propios para los nombres de los objetos.
Requerimientos Adicionales




Diseñar los índices, éstos son los objetos que permiten un acceso rápido y directo a las filas. Se pueden crear
índices para claves alternativas, foreign keys y columnas que son usadas con frecuencia en las condiciones
de búsqueda.
Establecer las definiciones de vistas, las cuales son tablas lógicas basadas en una o más tablas o vistas. Las
vistas pueden restringir acceso, proveer una mejor presentación de la información y pueden contener una
consulta compleja predefinida.
Planificar el espacio físico de almacenamiento, es decir, la cantidad de espacio requerido para almacenar los
datos de las tablas en la base de datos.
Redefinir las restricciones de integridad.
8 -6
Descargar