Documente Academic
Documente Profesional
Documente Cultură
c. d. e. f. g.
Usar NN para una columna que debe ser definida como NO NULA. Usar U para la columna que debe ser nica. Si mltiples columnas deben ser nicas en combinacin, etiquetar con un sufijo, por ejemplo U1. Etiquetar una columna sencilla PK como NN, U Etiquetar mltiples columnas PF (compuestas) como NN, U1.
Pasos para el diseo inicial de la base de datos: 1. 2. 3. 4. 5. 6. Mapear las entidades a tablas relacionales. Mapear atributos a columnas y documentar tipos simples. Mapear claves a llaves primarias o alternas. Mapear relaciones a llaves forneas. Elegir opciones de arco. Elegir opciones de subtipo.
INSTRUCTOR
# id * nombre * apellidos o numero telefonico
ESTUDIANTE
# id * nombre * apellidos o numero telefonico
Maestro de
Registrado en
Enseado por
Para
CURSO
# codigo * nombre o cuota o duracion
Tomado por Para
MATRICULA
* fecha de inicio o fecha de terminacin o grado
INSTRUCTOR
INSTRUCTOR Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo
Notas: El nombre de la tabla debe ser fcil de identificar con el nombre de la entidad. EL nombre en plural de una entidad se usa algunas veces porque la tabla debe contener un grupo de tuplas. Una entidad simple no es un subtipo ni un supertipo.
INSTRUCTOR
NoTelef Cadena
Notas: Para cada atributo seleccionar un nombre corto pero significativo. El nombre de las columnas debe ser fcil identificar en un modelo entidad-relacin. Evitar el uso de palabras reservadas de SQL para nombres de columnas. Usar abreviaturas consistentes que no causen confusin. Usar datos de ejemplo para las columnas de la tabla.
NoTelef Cadena
Notas: Todas las columnas etiquetadas con PK deben ser etiquetadas tambin con NN y U. Convertir una clave compuesta en una PK compuesta. Etiquetar estas columnas como NN y U1.
Si una entidad incluye una relacin, agregar columnas de llaves forneas para la tabla y sealarlas como parte de la llave primaria.
Registrado en
Para
fechaTerm Fecha-Hora
Grado Cadena
A B A C
Notas: Escoger un nombre nico para cada columna FK y etiquetar las columnas PK, NN y FK. Si existen mltiples columnas FK en una tabla, usar sufijos para distinguirlos, por ejemplo, FK1, FK2. Etiquetar mltiples columnas llave con el mismo sufijo. Las PK compuestas deben de ser nicas en combinacin y deben ser etiquetadas como U. Agregar ejemplos de datos para las columnas FK.
Maestro de
Enseado por
Cuota Nmero
Duracion Nmero
2 3 2 4
Notas: Elegir un nombre nico para la columna FK y etiquetar las columnas FK. Para las relaciones debe (obligatorias) etiquetar la columna como NN. Agregar datos de ejemplo. Si el FK de la tabla incluye una llave fornea (FK), las columnas FK que soportan la relacin, pueden ser agregadas en el Paso 3.
Para una relacin obligatoria 1 a 1, colocar las FK como nica en el mapa de instancias en donde la relacin es obligatoria y usar la restriccin NN para forzar la condicin de obligatoriedad.
Incluye a
Incorporada dentro
COMPUTADORA Columna NumInv Tipo de dato Cadena Tipo de llave PK No Nulo / NN, U nico Ejemplo 1045 0437 1458 1223
Copro Lgico NN Si No Si No
Si la relacin 1 a 1 es opcional en ambas direcciones mover la FK en la tabla en cualquiera de las dos tablas de la relacin.
# numero * longitud
MUELLE
Ocupado por
Desembarca en
Nombre
Tipo
MNum FK U2
Notas: La FK para la relacin 1 a 1 debe ser siempre nica, pero permite NULOS.
Para una relacin 1 a Muchos recursiva, agregar una columna FK a l tabla que referencie valores de la columna PK.
Jefe de
Bajo rdenes de
DNIJefe Cadena FK
Notas: La columna FK hace referencia a una tupla de la misma tabla. El nombre de la columna FK debe reflejar la relacin. Una FK recursiva nunca debe ser NO NULA.
Para una relacin 1 a 1 recursiva, agregar una FK nica a la tabla. Esta columna FK debe hacer referencia a una valor de la columna PK.
PERSONA
Esposo de
Casado con
Notas: La combinacin de columnas PK y FK siempre debe ser nica para asegurar la relacin 1 a 1. Poniendo el PK y el FK como nicos se garantiza que la combinacin ser nica. Una FK recursiva nunca debe ser NO NULA.
OFICINA
# id
INDIVIDUAL
SOCIEDAD # cdigo
COMPAIA # numero
El Diseo de Arco Explcito crea una columna de llave fornea para cada relacin que incluye el arco.
Notas: El diseo de arco explcito soportar llaves forneas mltiples con diferentes formatos y tipos de dato. El SGBD o las aplicaciones deben permitir forzar la exclusividad entre las llaves forneas (en cada fila slo debe existir valor para una sola columna)
El Diseo de Arco Genrico crea una columna de llave fornea nica y una columna adicional para marcar la relacin de arco (discriminante). Como las relaciones son exclusivas, solamente un valor de FK existir por cada fila de la tabla. OFICINA Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo
TipoRenta Cadena NN I S I C
Notas: Si las relaciones debajo del arco son obligatorias, hacer ambas columnas NO NULAS. Las llaves forneas deben compartir el mismo formato para todas las tablas referenciadas. La relacin de exclusividad se fuerza automticamente.
EMPLEADO
# DNI * nombre * apellido
* salario
EMPLEADO ASALARIADO
# cdigo
DEPARTAMENTO
# nmero
SINDICATO
Opcin 1: Diseo de una sola tabla: Se usa el diseo de una sola tabla cuando el subtipo tiene pocas relaciones y atributos propios. Pasos: 1. Crear una sola tabla para el subertipo. 2. Crear una columna para cada uno de los atributos del supertipo.
9
3. 4. 5. 6. EMPLEADO Columna DNI Tipo de dato Cadena Tipo de llave PK No Nulo / NN, U nico Ejemplo 16455201 11478451 11499630 00214501 Ventajas:
Crear una columna TIPO para identificar a qu subtipo pertenece cada fila. Crear una columna para cada uno de los atributos del subtipo. Crear columna FK para cada una de las relaciones del supertipo. Crear columnas FK para cada una de las relaciones del subtipo.
Tipo Cadena NN AS HO HO AS
Salario Nmero
CostoHR Nmero
CostoHE Nmero
El acceso al supertipo es directo. El subtipo puede ser accesado y modificado usando vistas.
Desventajas: Los requerimientos del subtipo NO NULO no se pueden forzar a nivel de base de datos. La lgica del SGBD y de las aplicaciones tendr que manejar diferentes conjuntos de atributos, dependiendo de su tipo.
Opcin 2: Diseo de tablas separadas: Se usa el diseo de tablas separadas creando una tabla para cada subtipo existente. Pasos: 1. Crear una tabla para cada subtipo. 2. En cada tabla subtipo, crear columnas para los atributos del subtipo. 3. En cada tabla subtipo, crear columnas para el atributo del supertipo. 4. En cada tabla subtipo, crear columnas FK para las relaciones del subtipo. 5. En cada tabla subtipo, crear columnas FK para las relaciones del supertipo. EMPLEADO ASALARIADO Columna DNI Tipo de dato Cadena Tipo de llave PK No Nulo / nico NN, U Ejemplo 16455201 00214501 EMPLEADO POR HONORARIOS Columna DNI Nombre Tipo de dato Cadena Cadena Tipo de llave PK No Nulo / nico NN, U NN Ejemplo 11478451 Luis 11499630 Ana Ventajas: La opcionalidad de los atributos del subtipo se fuerza a nivel de la base de datos. La lgica del SGBD o de las aplicaciones no requiere chequeo para los subtipos.
10
CodDep Cadena FK NN 05 13
CostoHR Nmero NN 25 20
CostoHE Cadena NN 9 7
Desventajas: La consulta al supertipo requiere UNIR conjuntos de resultados. La lgica del SGBD o las aplicaciones debe ser especfica para cada tabla individual. El mantenimientos de las llaves de los subtipos el complicada de implementar.
Fuente:
INTRODUCCION a ORACLE
Parte I. Diseo Relacional de Base de Datos. Gua del Participante. Diciembre, 1994.
11