Sistemas Gestores de Bases de Datos

Informática. Computación. Bases de datos. Modelo relacional

  • Enviado por: Tatyana
  • Idioma: castellano
  • País: España España
  • 5 páginas
publicidad
publicidad

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

No

-

Nombre

Nombre del proveedor

NOM_PROV

No

No

-

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