Administración de sistemas informáticos
Sistemas Gestores de Bases de Datos
23/OCT./2001
MODELO RELACIONAL
Creado por E.F. Codd en 1969-1970.
La NORMALIZACIÓN evita:
-
Los comportamientos extraños
-
Las incoherencias
Es independiente de la presentación física de la BD (nivel interno)(La forma de cómo está guardado en disco).
Este modelo representa de forma fiel los objetos y las relaciones del problema que se nos presenta.
· Comprensible
· Modificable, independiente a las aplicaciones y al nivel interno (Si se modifica algún dato no afecta al resto).
· Flexibilidad (El modelo relacional tiene que permitir consultas que puedan responder todo tipo de preguntas, simples o complejas)
DEFINICIONES
-
Las tablas están relacionadas con claves: TABLA = RELACIÓN
-
Una fila se llama tuples: FILA = TUPLA
-
Dominio de una tabla = Conjunto de columnas
-
Grado de una tabla es el número de columnas
-
La cardinalidad es el número de filas.
CARACTERÍSTICAS
-
Todos los valores de una columna tienen el mismo tipo (dominio de un atributo restringe)
-
Todas las filas de una tabla son diferentes (sino habría redundancias)
-
Que nos es igual el orden de filas y columnas.
COMPARATIVA
MODELO ENTIDAD - RELACIÓN | MODELO RELACIONAL | |||||||||
Departamento (cod_dto, nombre, planta) La clave primaria se subraya. | ||||||||||
Genero (id_genero, nombre) Película (cod_pel, titulo, año, cod_genero) Las claves foráneas tienen doble subrayado y pueden tener valor NULL, pero en este caso no por que todas las películas tienen un genero. También se puede hacer: Genero (id_genero, nombre) Película (cod_pel, título, año) Pertenencia (cod_pel, cod_genero) | ||||||||||
Podemos tener pacientes que no están ingresados, no tienen habitación. | Paciente (dni, nombre, dirección, nº hab.) Habitación (nº hab., planta) Las claves primarias no pueden tener valor NULL. Las claves foráneas pueden tener valor NULL. | |||||||||
Relaciones Binarias M:N | ||||||||||
Proyecto (código, nombre) Asignación (cod_proy, dni, categoría) Empleado (dni, nombre) PROYECTO EMPLEADO código Nombre Dni Nombre 1 P1 37 Pepe 3 P2 50 Lola 5 P3 ASIGNACIÓN Cod_proy Dni Categoría 1 37 Jefe proyecto 1 50 Analista 2 50 Jefe proyecto 3 37 Analista | ||||||||||
Relaciones Binarias 1:1 | ||||||||||
Coche _ regalo (matrícula, color, dni) Empleado (dni, nombre) Dni no tiene valores NULL También: Coche_regalo (matrícula, color, dni) Empleado (dni, nombre, matrícula) Matrícula admite valores NULL, porque tiene 0. | ||||||||||
Relaciones Reflexivas 1:N | ||||||||||
Empleado (dni, nombre, id_emp) Id_emp es una clave foránea de dni (de la misma tabla), refleja quien es el jefe y no admite NULL. Un Empleado puede tener mín. 0 y máx. 1 jefe. Un jefe puede tener ningún empleado a su cargo como mín. y N como máx. | ||||||||||
Relaciones Reflexivas 1:1 | ||||||||||
Policía (nº placa, nombre, dirección, id_policia) Id_policia no acepta NULL (nº placa) | ||||||||||
Relaciones Reflexivas M:N | ||||||||||
| Proyecto (cod_proy, nombre) Comunicación (id_proy, cod_proy)
|
DOMINIOS
-
Es un conjunto de valores que puede tener un atributo. Es un tipo de datos.
-
El valor NULL no forma parte del dominio
-
Todos los atributos tienen un solo dominio que nunca cambia
-
Los dominios son diferentes entre ellos
-
Podemos especificar los operadores válidos para manipular los valores del dominio.
Ej.: dominio EDAD
< , > , = , < > not, and, or
validos no validos
-
Hay dos clases de dominios:
-
Simples: atributo simple Entero, string, carácter, boolear (true / falso), real.
-
Compuesto: Combinación de simples.
-
Ningún SGBD lo implementa SQL no tiene dominios
OBJETIVO DEL DOMINIO
Los dominios restringir las comparaciones (entre dominios diferentes. Ej.: entre edades) y las operaciones extrañas.
Ej.:
Deportista.edad es del dominio EDAD
Deportista.peso es del dominio PESO
-
Los dominios se encuentran definidos en el diseño de la BD (Los dominios se han de definir en la base de datos, sino se han de definir aparte. Especificaremos lo máximo posible).
-
Cada dominio tiene un nombre diferente.
Ej.:
TABLA PROVEEDORES DE COCHES
Proveedores (num_prov, nombre, situación, color, peso)
Un proveedor nos envia modelos de un color y un peso determinado.
num_prov 0000 - 9999
nombre como mucho 15 caracteres
situación un carácter: `B' (buena), `R' (regular), `M' (mala)
color string : “rojo”, “amarillo”, “verde”, “azul”, “negro”
peso real
una tabla de dominios para toda la BD.
DOMINIOS SIMPLES
Nombre Dominio | Tipo | Nº Carac. | Nª Decimal | Mínimo | Máximo | Valores |
num_prov | Entero | - | - | 0000 | 9999 | - |
Nombre | String | 15 | - | - | - | - |
situación | carácter | - | - | - | - | `B' (buena), `R' (regular), `M' (mala) |
color | string | 8 | - | - | - | “rojo”, “amarillo”, “verde”, “azul”, “negro” |
peso | real | 2 | 0 (no nº neg.) | - | - |
REGLAS DE INTEGRIDAD
Nombre | Descripción | Dominio | Primaria | Foránea | Referencia a: | Obligatorio |
Num_ prov | Número del proveedor | NUM_PROV | Sí | No | - | Sí |
Nombre | Nombre del proveedor | NOM_PROV | No | No | - | Sí |
Obligatorio Required (has de poner algún valor si es Sí, pero si es No, no es obligatorio ponerlo).
DOMINIOS COMPUESTOS
Dominios compuestos = combinación de dominios simples, antes de especificar el dominio FECHA (día / mes / años) se ha de especificar de cada dato.
Nombre Dominio | Tipo | Nº Carac. | Nª Decimal | Mínimo | Máximo | Valores |
DIA | Entero | - | - | 1 | 31 | - |
MES | Entero | - | - | 1 | 12 | - |
AÑO | Entero | - | - | 0 | 9999 | - |
FECHA | (DIA, MES, AÑO) | - | - | - | - | - |
5
Cod_dto
nombre
DEPARTAMENTO
Planta
GENERO
Se encuentra
(1,1)
1:N
PERTENENCIA
(1,N)
tiene
PELÍCULA
título
Id_genero
nombre
año
Cod_pel
Nº hab.
HABITACIÓN
planta
(0,1)
(0,N)
Se encuentra
1:N
PERTENENCIA
dirección
nombre
DNI
tiene
PACIENTE
PROYECTOS
M:N
EMPLEADOS
ASIGNACIÓN
está asignado
(1,M)
matrícula
categoría
(1,N)
tiene asignado
código
DNI
nombre
nombre
COCHE _ REGALO
M:N
EMPLEADOS
está asignado
(0,1)
color
ASIGNACIÓN
es líder de
DNI
nombre
tiene asignado
(1,1)
(1,1)
1:N
JEFES
EMPLEADO
(1,N)
es liderado por
nombre
DNI
es pareja de
Nº placa
(1,1)
(1,N)
1:N
POLICIA
PAREJA
nombre
es pareja de
dirección
se comunica con
código
(1,1)
(1,N)
M:N
PROYECTO
COMUNICACIÓN
nombre
Se comunica con
(1,1)
(1,1)
COMUNICACIÓN
1:1
PROYECTO
Descargar
Enviado por: | Tatyana |
Idioma: | castellano |
País: | España |