Sunteți pe pagina 1din 11

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

Introduccin a las Bases de Datos Relacionales


Resumen acerca del Modelo Relacional
Una base de datos relacional es una base de datos que es percibida por el usuario como una coleccin de relaciones o de tablas de dos dimensiones. Las tablas de bases de datos relacionales son sencillas pero disciplinadas Una base de datos relacional debe tener integridad de datos, es decir, sus datos deben ser precisos y consistentes. El Instituto Nacional Americano de Estndares ANSI ha establecido a SQL como el lenguaje estndar para operar sobre bases de datos relacionales. Una base de datos relacional puede soportar un conjunto completo de operaciones relacionales. Las operaciones relacionales manipulan conjuntos de valores de datos. Las tablas pueden ser utilizadas en la creacin de otras tablas. Las operaciones relacionales pueden ser anidadas. Una llave primaria (PK) es una columna o grupo de columnas que identifican de manera nica a cada fila en una tabla. Cada tabla debe tener una llave primaria y una llave primaria debe ser nica. El valor de una llave primaria generalmente no se puede cambiar. Una llave primaria que consta de mltiples columnas se lama llave primaria compuesta. Las columnas de una llave primaria compuesta debe ser nicas en combinacin. Las columnas pueden tener duplicados en forma individual, pero en combinacin no se permiten duplicados. Ninguna parte de la llave primaria puede ser nula. Una tabla puede tener ms de una columna o combinacin de columnas que pueden servir como la llave primaria de la tabla. Cada una de estas es llamada llave candidata o alterna. Todas las llaves alternas deben ser nicas y no nulas. Una llave fornea es una columna o combinacin de columnas en una tabla que se refieren a una llave primaria en otra tabla o en la misma tabla. Las llaves forneas se utilizan para combinar tablas en consultas. Slo si una llave fornea es parte de una llave primaria no puede ser nula. Una llave fornea puede ser repetida y nula. Un dato es inconsistente si existen mltiples copias de un registro y no todas las copias han sido actualizadas. Una base de datos inconsistente puede proveer informacin incorrecta o contradictoria a los usuarios. Las reglas del negocio tambin pueden determinar el estado correcto de una base de datos. Estas reglas de negocio son llamadas restricciones de integridad de datos definidas por el usuario y pueden incluir mltiples columnas y tablas.

Diseo inicial de la base de datos relacional Mapa de Instancias


Consideraciones de nomenclatura: a. b. Los tipos vlidos de llaves con PK para una columna llave primaria, y FK para la columna llave fornea. Usar sufijos para distinguir entre mltiples columnas FK en una tabla, por ejemplo, FK1 y FK2. Etiquetar mltiples columnas en el mismo sufijo.
1

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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

PASO 1. MAPEAR LAS ENTIDADES A TABLAS RELACIONALES


Mapear la tabla relacional para cada entidad. Crear una mapa de instancias para la nueva tabla. Registrar nicamente el nombre de la tabla.

INSTRUCTOR
INSTRUCTOR Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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.

PASO 2. MAPEAR ATRIBUTOS A COLUMNAS y DOCUMENTAR TIPOS SIMPLES


Mapear cada atributo de la entidad a una columna en su tabla correspondiente. Establecer los atributos obligatorios para columnas No Nulas (NN)

# id * nombre * apellidos o numero telefonico

INSTRUCTOR

INSTRUCTOR Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

InstId Nmero NN 10 18 73 301

Nombre Cadena NN Nancy Mara Katty Eric

Apellido Cadena NN Gonzles Hall Lpez Vega

NoTelef Cadena

987-5874 514-5587 365-5547 965-7844

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.

PASO 3. MAPEAR CLAVES A LLAVES PRIMARIAS O ALTERNAS


INSTRUCTOR

# id * nombre * apellidos o numero telefonico

INSTRUCTOR Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

InstId Nmero PK NN, U 10 18 73 301

Nombre Cadena NN Nancy Mara Katty Eric

Apellido Cadena NN Gonzles Hall Lpez Vega

NoTelef Cadena

987-5874 514-5587 365-5547 965-7844


3

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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.

ESTUDIANTE # id * nombre * apellidos o numero telefonico

Registrado en

Para

CURSO # codigo * nombre o cuota o duracion

Tomado por Para

MATRICULA * fecha de inicio o fecha de terminacin o grado

MATRICULA Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

fechaReg Fecha-Hora NN 12-05-2006 16-06-2006 13-02-2006 22-05-2006

fechaTerm Fecha-Hora

Grado Cadena

23-05-2006 28-06-2006 15-02-2006 04-06-2006

A B A C

CodigoCurso Cadena PK, FK1 NN, U1 CL254 AB447 CN502 CL587

EstId Cadena PK, FK2 NN, U2 587455A 254785D 225401G 230107B

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.

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

PASO 4. MAPEAR RELACIONES A LLAVES FORANEAS


Para una relacin de entidades 1 a Muchos tomar el PK de la tabla (1) y ponerla en la tabla (Muchos)

INSTRUCTOR # id * nombre * apellidos o numero telefonico

Maestro de

Enseado por

CURSO # codigo * nombre o cuota o duracion

CURSO Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

CodigoCurso Cadena PK NN, U CL320 AD201 EC584 MM547

Nombre Cadena NN Computacin Administracin Economa Matemtica

Cuota Nmero

Duracion Nmero

InstId Nmero FK 22 45 78 103

1200 500 850 360

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.

COMPUTADORA # Nmero de inventario * tipo * poder

Incluye a

Incorporada dentro

PLACAMADRE # Numero de serie * procesador * velocidad o coprocesador

COMPUTADORA Columna NumInv Tipo de dato Cadena Tipo de llave PK No Nulo / NN, U nico Ejemplo 1045 0437 1458 1223

Tipo Cadena NN AT TOWER TOWER TOWER

Poder Nmero NN 150 220 220 200

IdPlaca Cadena FK NN, U 4579 4517 0254 2547

PLACAMADRE Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

IdPlaca Cadena PK NN, U 4517 0245 4517 4579

Proc Numero NN 486 486 586 386

VelProc Numero NN 3.3 4.8 2.1 2.8


5

Copro Lgico NN Si No Si No

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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

BARCO # Numero de registro # Ciudad de registro * nombre o tipo

MUELLE Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

MNum Cadena PK NN, U 344 075 554

Longit Nmero NN 100 1000 500

BARCO Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

NumReg Cadena PK NN, U1 134X89 00445578 T25474

CiuReg Cadena PK NN, U1 Panam Callao Panam

Nombre

Tipo

MNum FK U2

NN Sun King Runner Doullos Crucero Yate Crucero

344 075 341

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.

EMPLEADO # DNI * nombre * apellido

Jefe de

Bajo rdenes de

EMPLEADO Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

DNI Cadena PK NN, U 16754122 22547844 10225493 32501238

nombre Cadena NN Juan Cristina Pedro Alberto

apellido Cadena NN Lpez lvarez Fernndez Quiroga

DNIJefe Cadena FK

10225493 16754122 16754122


6

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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.

# DNI * nombre * apellido

PERSONA

Esposo de

Casado con

PERSONA Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

DNI Cadena PK NN, U1 16754122 22547844 10225493 32501238

nombre Cadena NN Juan Cristina Carla Alberto

apellido Cadena NN Lpez lvarez Fernndez Quiroga

DNIEsp Cadena FK U2 10225493 32501238 16754122 22547844

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.

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

PASO 5. ELEGIR OPCIONES DE ARCO


Los arcos representan un tipo de llave fornea de alternativa mltiple. Escoger entre dos alternativas de diseo para mapear arcos a llaves forneas. Alternativas de diseo: Diseo de arco explcito. Diseo de arco genrico.

OFICINA

Arrendatario de Rentada por

# id

INDIVIDUAL

# id de edificio # numero de oficina

Arrendatario de Rentada por

SOCIEDAD # cdigo

Arrendatario de Rentada por

COMPAIA # numero

El Diseo de Arco Explcito crea una columna de llave fornea para cada relacin que incluye el arco.

OFICINA Columna Tipo de dato Tipo de llave No Nulo / nico Ejemplo

IdEdificio Nmero PK NN, U1 1024 512 977 3041

NumOficina Numero PK NN, U1 201 101 204 510

IdIndiv Nmero FK1 30045

CodSoc Cadena FK2

NumCia Nmero FK3

A4431 54322 10811

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)

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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

IdEdificio Nmero PK NN, U1 1024 512 977 3041

NumOficina Numero PK NN, U1 201 101 204 510

RentadoPor Cadena FK NN 30045 A4431 54322 10811

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.

PASO 6. ELEGIR OPCIONES DE SUBTIPO


Opciones de mapeo de subtipos: Diseo de una sola tabla. Diseo de tablas separadas. Implementacin de arco.

EMPLEADO
# DNI * nombre * apellido

* salario

EMPLEADO ASALARIADO

EMPLEADO POR HONORARIOS


* pago por hora * pago por hora extra
Miembro de

Asignado a Compuesto por Compuesto por

# 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

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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.

Nombre Cadena NN Juan Luis Ana Mara

Apellido Cadena NN Lpez Calle Vega Torres

Tipo Cadena NN AS HO HO AS

Salario Nmero

CostoHR Nmero

CostoHE Nmero

NroSind Nmero FK1

CodDep Cadena FK2 NN 05 07 11 13

1250 25 20 2500 9 7 201 201

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

Nombre Cadena NN Juan Mara

Apellido Cadena NN Lpez Torres

Salario Nmero NN 1250 2500

CodDep Cadena FK NN 05 13

Apellido Cadena NN Calle Vega

CostoHR Nmero NN 25 20

CostoHE Cadena NN 9 7

NroSind Nmero FK1 NN 201 201

CodDep Cadena FK2 NN 07 11

Ing. Jorge Martn Rodrguez Castro

EPCI UNPRG (Base de Datos, Ciclo 2006-I)

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.

Ing. Jorge Martn Rodrguez Castro

11

S-ar putea să vă placă și