Download modelo relacional - Universidad Nacional de Colombia : Sede

Document related concepts

Base de datos relacional wikipedia , lookup

Modelo relacional wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Álgebra relacional wikipedia , lookup

Transcript
El Modelo Relacional
Francisco Moreno
09/08/2017
Curso Bases de Datos
1
Antecedentes
• El artículo que inició todo:
Edgar Frank Codd, “A Relational Model of
Data for Large Shared Data Banks”, 1970.
• Modelo lógico basado en teoría de conjuntos:
operaciones sobre conjuntos de datos.
• Es sencillo comparado con otros modelos
lógicos (red, jerárquico).
09/08/2017
Curso Bases de Datos
2
Introducción
• Los datos se almacenan en relaciones.
• El concepto de relación en el modelo
relacional es diferente del concepto de
relación en el modelo E-R.
• Informalmente, en el modelo relacional:
relación = tabla
• Se apoya en el álgebra y en el cálculo de
relaciones
• Originó los RDBMS (SGBD Relacionales).
09/08/2017
Curso Bases de Datos
3
Introducción
Modelo lógico
(Relacional)
Modelo
conceptual (E-R)
Transformación
ERROR FRECUENTE:
CONFUNDIR LOS CONCEPTOS DEL MODELO E-R CON
LOS DEL MODELO RELACIONAL.
Ej: el concepto de clave primaria no hace parte del modelo E-R
09/08/2017
Curso Bases de Datos
4
Ventajas
•
•
•
•
Separación clara del nivel lógico y el físico.
Sencillo y maduro.
Fácil modificación de datos y del esquema.
Operadores con gran poder de manipulación de
los datos  álgebra y cálculo relacional
• Fundamentación teórica sólida (teoría de
conjuntos).
• Compatibilidad y estandarización.
09/08/2017
Curso Bases de Datos
5
Ventajas
• Garantiza la independencia de los datos.
• Soportado por numerosos sistemas
comerciales que garantizan conectividad
con los lenguajes de programación más
usados (Java, C#, PHP, Visual Basic, etc.)
• Muy difundido: se consigue fácilmente
apoyo técnico.
09/08/2017
Curso Bases de Datos
6
Desventajas
• No incluye comportamiento a diferencia de los
modelos objetual y objeto relacional.
• Dificultad o imposibilidad para representar
– reglas complejas de negocio
– reglas de conocimiento (inferencia)*.
• Dificultad para manejar herencia (se trata de simular).
• Descompone un elemento de interés en varias tablas*.
• El manejo de datos “complejos” (cf. con los atributos
grupales y multivaluados del modelo conceptual
semántico) podría llevar a diseños complejos.
* Por medio de vistas se puede suplir en parte este aspecto.
* Esto implica que hay que reconstruir el elemento de interés.
09/08/2017
Curso Bases de Datos
7
Elementos del modelo relacional
• Relación (tabla):
– Concepto abstracto. Estructura: filas (tuplas) y
columnas (atributos).
– Se pueden definir por comprensión y por
extensión*:
• Ej.: Por comprensión: Estudiante = {x | x (carné,
nombre, teléfono) es estudiante de la Universidad
Nacional de Colombia}
*Implica listar individualmente, los elementos de la relación.
09/08/2017
Curso Bases de Datos
8
Elementos del modelo relacional
• Relación: Conjunto de tuplas
– Propiedades:
• Cada “celda” (intersección de una fila con una
columna) es atómica* o univaluada.
• Cada columna tiene un nombre único dentro de la
relación.
• Las columnas no tienen orden.
• Las tuplas no tienen orden.
• No hay tuplas repetidas.
* Desde el punto de vista del modelo, aunque es un concepto muy elusivo.
09/08/2017
Curso Bases de Datos
9
Las relaciones en:
Matemáticas
Modelo relacional
Sin restricciones en el tipo de Valores atómicos (de nuevo, el
valores.
concepto “atómico” es muy elusivo).
Columnas sin nombre.
Columnas con nombre.
Distinción de columnas por
su posición.
Distinción de columnas por su
nombre.
Constantes en el tiempo.
Variables en el tiempo (aunque
algunos autores diferencian entre
relación y variable de relación (varrel)).
09/08/2017
Curso Bases de Datos
10
Elementos del modelo relacional
• Tupla: Una relación es un conjunto de tuplas:
– Cada instancia (fila o registro) de una relación.
– Sirve para representar la instancia de una entidad del
modelo E-R.
– Cardinalidad o extensión de una relación: número de
tuplas.
09/08/2017
Curso Bases de Datos
11
Elementos del modelo relacional
• Atributo:
– Cada campo o columna de una relación.
– Grado o aridad de una relación: número de
atributos.
– El conjunto de atributos forman la cabecera de
la relación.
– Cada atributo está valuado o basado sobre un
dominio.
09/08/2017
Curso Bases de Datos
12
Elementos del modelo relacional
• Dominio:
–
–
–
–
Colección, lista de valores.
Un dominio es un tipo de datos.
Pueden valuar a varios atributos.
Una definición formal de relación:
Es el subconjunto del producto cartesiano de los
dominios D1, D2, …, Dn. (no necesariamente
diferentes): R  D1  D2  …  Dn
09/08/2017
Curso Bases de Datos
13
Claves (Keys)*
• Clave candidata de una relación:
– Atributo (puede ser compuesto) cuyos valores
diferencian a una tupla de las demás.
– Debe cumplir unicidad y minimalidad
(irreducibilidad).
– ¿Por qué toda relación tiene al menos una clave
candidata?
*Algunos autores usan el término “llaves”.
09/08/2017
Curso Bases de Datos
14
Claves
• Clave primaria de una relación:
– Elegida a partir de las claves candidatas de la
relación. Las no elegidas (si las hay) se
denominan claves alternativas o secundarias.
– Equivale al identificador único (#, |) del modelo
E-R y al identificador único (ID) del modelo
semántico.
¡No confundir clave primaria (modelo relacional) e
identificador único (modelo E-R y semántico)!
09/08/2017
Curso Bases de Datos
15
Claves
Regla de integridad de una clave primaria:
“Ningún componente de la clave primaria
acepta nulos”
¿Qué son? Algunos autores ni siquiera los
consideran como parte del modelo relacional…
09/08/2017
Curso Bases de Datos
16
Claves
• Clave foránea (ajena o externa):
– Atributo (puede ser compuesto) en una relación
R1 que referencia a la clave primaria (o
alternativa) de una relación R2 (R1 y R2 no
necesariamente diferentes).
– Especifica de forma explícita la forma en que
dos relaciones* se relacionan**.
* Relaciones en el sentido del modelo relacional.
La clave foránea es
** Relacionan en el sentido del modelo E-R.
09/08/2017
Curso Bases de Datos
un concepto del
17
modelo relacional
NO del modelo E-R.
Claves
Regla de integridad referencial:
“Ningún componente de una clave foránea puede
contener valores que no están presentes en la clave
primaria (o alternativa) a la que referencia”.
• ¿Puede una clave foránea aceptar nulos?
• ¿Cómo es el dominio de una clave foránea con
respecto al dominio de la clave primaria (o
alternativa) a la que referencia?
09/08/2017
Curso Bases de Datos
18
Claves
• ¿Qué sucede si se pretende borrar el valor al que
referencia (“padre”) una clave foránea?
• Posibles cursos (políticas) de acción:
- Cascada.
- Restringido.
- Nulificación (no siempre es posible ¿cuándo lo es?).
- Programada.
• ¿Qué pasa si se actualiza el valor al que referencia
(“padre”) una clave foránea?
09/08/2017
Curso Bases de Datos
19
Otros tipos de claves
•
•
•
•
•
Superclave.
Natural.
Inteligente.
Artificial o surrogada.
Solapadas.
09/08/2017
Curso Bases de Datos
20
Comparativo de términos
Relacional formal
Informal
Sistema de archivos
Relación
Tabla
Archivo
Tupla
Fila
Registro
Atributo
Columna
Campo
Instancia de una
relación
Conjunto de filas de
una tabla
Conjunto de registros
de un archivo
Cardinalidad
Número de filas
Número de registros
Grado o aridad
Número de columnas
Número de campos
Clave primaria
Llave, identificador
Sin equivalente
Clave foránea
Llave externa o ajena,
interrelación
Sin equivalente
Dominio
Conjunto de valores
válidos
Conjunto de valores
válidos
09/08/2017
Curso Bases de Datos
21
Una
relación
CURSO:
Cabecera
CP
Cuerpo
código
nombre profesor
hora
semestre
667 BD 1
Megan
Fox
MJ 6-8
2011-1
201 BD 2
Megan
Fox
WV 6-8
2011-1
333 Álgebra
en chino
666 BD 1
Björk
López
Angelina
Demonia
WV 2-4
2010-2
S 8-12
2010-2
Tuplas
09/08/2017
Cardinalidad: 4
Grado: 5
Curso Bases de Datos
22
• En la relación anterior, ¿hay claves
alternativas?
• ¿Qué pasaría si hubiese dos profesores con
el mismo nombre y apellido? Ej. Dos
Megan Fox  Colocar mejor el número de
identificación del profesor en CURSO y en
otra relación cada profesor con sus atributos
(identificación, nombre, etc.)
09/08/2017
Curso Bases de Datos
23
Relación CURSO:
CP
código
nombre
car_prof
667 BD 1
201 BD 2
hora
semestre
1 MJ 6-8
1 WV 6-8
2011-1
2011-1
…
Clave foránea
hacia PROFESOR
Relación
PROFESOR:
identificación
CP
nombre
1 Megan Fox
2 Björk López
…
09/08/2017
Curso Bases de Datos
24