UT3 Modelo Relacional
UT3 Modelo Relacional
UT3 Modelo Relacional
RELACIONAL
- UT3 -
RA6: Diseña modelos relacionales normalizados
interpretando diagramas entidad/relación
En la definición del esquema de la tabla es indiferente tanto el orden de las filas como el
orden de las columnas.
Se pueden repetir los nombres de atributos en distintas tablas (cuidado con esto porque si
se incluyen FK de otras tablas con el mismo nombre puede haber conflictos).
Conceptos básicos
Cero (0,1)
Uno (1,1)
Muchos (0,N)
(1,N)
Conceptos básicos – Notación Crow's feet
NOTACIONES MODELO ER /
RELACIONAL
https://rua.ua.es/dspace/bitstream/
10045/23898/6/T2B-3%20ERnotaci
%C3%B3n.pdf
Transformación de entidades fuertes y sus atributos
Se crea una nueva tabla cuyo nombre coincidirá con el nombre de la entidad y los
atributos de la misma pasarán a ser los campos de la tabla según las siguientes
consideraciones:
Teniendo en cuenta que en el modelo relacional sólo se pueden representar tablas, las
relaciones M:N del modelo E/R se convierten en una nueva tabla cuyos campos son las
PK de las entidades relacionadas. En caso de que la relación tuviera atributos propios,
éstos se añadirían como campos en la tabla. La PK de esta nueva tabla es la
concatenación de las PK de las entidades relacionadas, y además son FK.
Nota: En Workbech, sólo es necesario representar las dos entidades relacionadas y
emplear el conector correcto. El aplicativo genera de forma automática la tabla
resultante. Luego puedes editar el nombre o lo que se requiera.
Transformación de RELACIONES 1:N
1) Cuando el número de ocurrencias de la entidad que propaga la clave es muy pequeño y cabe la
posibilidad de que al propagar la clave quedan muchos valores repetidos o nulos.
3) Cuando la relación tenga atributos propios. En algunos casos se pueden migrar estos atributos junto
con la clave pero, en general, se crea una nueva tabla.
Transformación de RELACIONES 1:N
Las entidades se transforman
CASO 0:1
en tablas con sus atributos
como campos y sus claves
primarias. La relación se
transforma también en otra
tabla cuyos campos son las PK
(que actuarían de FK) de
ambas entidades más los
atributos que tuviera la
relación.
La PK de esta tabla es la PK
de la entidad con cardinalidad
N.
Transformación de RELACIONES 1:1
Se crea una tabla por cada entidad y sus
CASO (1,1) (1,1) campos son los atributos asociados
incluyendo sus PK correspondientes.
Además la PK de una de las tablas debe
pasar como PK de la otra. Da igual qué clave
pasa (puede pasar la PK1 a la tabla de la
entidad 2; o PK2 a la tabla de la entidad 1).
En ambos casos la clave migrada es sólo una
FK (no forma parte de la clave primaria de la
tabla).
Transformación de RELACIONES 1:1
Se crea una tabla por cada entidad
CASO (1,1) (0,1) y sus campos son los atributos
asociados incluyendo sus PK
correspondientes.
Además la PK con cardinalidad
(1,1) migra como FK a la tabla con
cardinalidad (0,1) pero no forma
parte de la clave primaria.
Si la relación tuviera atributos se
añadirían a la tabla con
cardinalidad (0,1)
Transformación de RELACIONES 1:1
Se crea una tabla por cada entidad
CASO (0,1) (0,1) y sus campos son los atributos
asociados incluyendo sus PK
correspondientes.
Además se crea una nueva tabla
correspondiente a la relación cuyos
campos son las PK de las
entidades asociadas. La clave
primaria de esta tabla es la
concatenación de las PK de cada
entidad (que a su vez son FK). Si
la relación tuviera atributos se
incluirían en la tabla.
Transformación de relaciones REFLEXIVAS
La transformación de las relaciones reflexivas se realiza de la misma forma que el resto de
relaciones teniendo en cuenta sus cardinalidades. Lo que ocurre es que en lugar de tener dos
entidades relacionadas, sólo tenemos una y por tanto sólo habrá una tabla en lo que respecta a la
entidad. Eso significa que las FK harán referencia a la PK de la propia tabla.
En este caso se ha elegido como PK trib, est, pero podían haberse elegido las combinaciones (trib,
pro) o (est, pro)
Transformación relación ternaria 1:1:N
Se crea una nueva tabla para la relación que
tiene como PK los atributos que forman la PK
de la entidad del lado N y los atributos que
forman la PK de cualquiera de las dos entidades
que están conectadas con 1.
Crear una tabla para cada una de las entidades, tanto para la superclase como las subclases.
En este caso las subclases tendrían que guardar la clave de la primaria de la superclase.
Crear una tabla sólo para las subclases. En este caso los atributos de la superclase habría que
guardarlos en cada una de las subclases.
Crear una única tabla para la superclase. En este caso todos los atributos de las subclases se
guardarían en la superclase.
RESTRICCIONES SEMÁNTICAS
RESTRICCIÓN DE CLAVE PRINCIPAL (PRIMARY KEY : PK)
Esta restricción (además de marcar los datos identificativos de una tabla) prohíbe que las columnas
que forman la clave primaria puedan contener valores repetidos en distintas filas o que queden
vacías (nulos) en alguna fila. Es decir, el contenido de las claves primarias es único y distinto de
nulo.
RESTRICCIÓN UNIQUE
Impide que los valores de los campos marcados como UNIQUE, puedan repetirse en
distintas filas. Es decir, en esa columna los valores deben ser distintos para cada fila.
Además se permite un solo valor NULL. No es necesario marcar como UNIQUE un
campo que sea PK ya que inherentemente, una PK es UNIQUE.
Si tenemos una columna donde ya hemos insertado valores duplicados y queremos
modificarlo añadiendo la restricción UNIQUE, el SGBD indicará un error y no aplicará tal
modificación.
RESTRICCIONES SEMÁNTICAS
OBLIGATORIEDAD: NOT NULL
Esta restricción prohíbe que el campo macado quede vacío sin ningún valor.
Las claves externas o secundarias es el mecanismo del modelo relacional para poder
asociar datos de diferentes tablas.
Implica que las columnas marcadas como FK no puedan contener valores que no se
puedan relacionar con el campo asociado de la tabla que relacionan; aunque si pueden
contener valores nulos (a no ser que el campo referenciado sea PK).
RESTRICCIONES SEMÁNTICAS
POLÍTICAS DE ACTUALIZACIÓN Y ELIMINACIÓN
Prohibir la operación (NO ACTION). Esto no permitiría hacer en las claves principales
ninguna operación si hay claves secundarias relacionadas con ellas. Suele ser la opción por
defecto. Es muy rígida.
Usar el valor por defecto (DEFAULT). Se coloca un valor por defecto en las claves
externas relacionadas cuando se borre o modifique la clave principal relacionada. Este
valor por defecto se indica al crear la tabla (opción default).
No todas las bases de datos admiten todas estas posibles políticas a aplicar en operaciones de
actualizar o eliminar. Además, podemos indicar una política al actualizar y otra al eliminar.
Es decir podremos, por ejemplo, indicar nulos ante cambios en las claves principales y actuar en
cascada ante eliminaciones en las claves.
RESTRICCIONES SEMÁNTICAS
REGLA DE VALIDACIÓN (CHECK)
Es una restricción que impone una condición lógica que deberá de cumplir una o más
columnas cuando se la añadan o modifiquen los datos. Por ejemplo, podríamos restringir
la columna llamada sueldo para que siempre acepte valores mayores de 1000; no se
permitiría entonces indicar sueldos menores de 1000 en dicha columna.
A veces las reglas implican a varias columnas, como por ejemplo que la fecha de
inicio sea mayor que la fecha final.
RESTRICCIONES SEMÁNTICAS
DISPARADORES (TRIGGERS)