Está en la página 1de 13

Unidad 3

diciembre 02, 2019

UNIDAD 3 " MODELO RELACIONAL"

3.1 Introducción al modelo relacional

El modelo de datos relacional es hoy el modelo de mayor uso y difusión en los


distintos tipos de organizaciones, aunque con importantes cambios y
adecuaciones realizados a través del tiempo.
El objetivo principal del modelo relacional es proteger al usuario de la obligación
de conocer la estructura física de los datos, es decir, con la representación de
ellos a nivel físico dentro de la base de datos. Esto permite generar un diseño que
sea capaz de implementarse en diferentes gestores de bases de datos.
Sus características son:

1.    La relación es el elemento fundamental del modelo, las cuales se pueden


manipular con el álgebra relacional.

2.    Es independiente de la forma en que se almacenan los datos y su representación,


por lo que se puede implementar en cualquier SGBD.

3.    Está fundamentado en una base matemática, por lo que al hacer uso de


operaciones de conjuntos lo hace eficaz.
En una base de datos relacional, los datos son recolectados mediante relaciones,
y estas a su vez son generalmente representadas mediante tablas.

Se define una relación como un conjunto de atributos, cada uno de los cuales
pertenece a un dominio, y que posee un nombre que identifica la relación. Se
representa gráficamente mediante una tabla con columnas (ATRIBUTOS) y filas
(TUPLAS). El conjunto de TUPLAS de una relación representa el CUERPO de la
relación y el conjunto de atributos y el nombre representan el ESQUEMA. Las filas
o tuplas contienen datos reales.

CONCEPTOS BÁSICOS:
a)    Atributo (Columna): Características que describen a una entidad o relación.

b)    Dominio: Conjunto de valores permitidos para un atributo, por ejemplo, cadenas de


caracteres, números para la edad, valores como SI o NO, Masculino-Femenino,
etc.

c)    Cabecera: Conjunto de atributos de una relación conforma la cabecera de la


relación.

d)    Dato: Es la unidad mínima de información e indivisible, ejemplo el valor que


representa la edad de una persona.

e)    Grado: Es el número de columnas que conforman la relación, este valor no cambia


por lo que se dice es estático, solo puede ser modificado por necesidad de la
organización.

f)     Cardinalidad: Es el número de tuplas o filas de una relación, este valor cambia de


manera constante por lo que es dinámico, y que depende del agregado o
eliminación de relaciones o tuplas.

g)    Clave: Una clave es un conjunto de atributos que identifican de forma única una
ocurrencia de entidad. En este caso las claves pueden ser simples (atómicas) o
compuestas. Existen varios tipos de clave, entre estas encontramos:

a.    Superclave: Identifican a una entidad, pueden ser no mínimas, como el número-


seguridad-social, CURP, o bien, compuestas como RFC+Número-seguridad-
social.

b.    Clave Candidata: Es la mínima superclave, por ejemplo, puede ser solo el RFC,
CURP, entre otros.

c.     Clave Primaria (PK): Es la clave candidata elegida por el diseñador como clave
definitiva para una entidad o relación.
d.    Clave foránea (FK): Es un atributo de una entidad, que es la CLAVE en otra
entidad.

3.2 Conversión de Modelo E-R a Modelo relacional

3.2.1 Introducción

El modelo es una representación visual que gráficamente nos da una perspectiva


de cómo se encuentran los datos involucrados en un proyecto u organización.
Pero el modelo no nos presenta propiamente una instancia de los datos, un
ejemplo que muestre con claridad algunos datos de muestra y como se relacionan
en realidad. Por eso es conveniente crear un "esquema", el cual consiste de tablas
las cuales en sus renglones (tuplas) contienen instancias de los datos.

3.2.2 Conversión a tablas desde un modelo con relaciones (1-1, 1-m, m-m)

Las tablas siguientes muestran las reglas que se deben seguir para poder crear
dicho esquema.

modelo e-r conversión a tablas

 una tabla por cada conjunto de entidades


o nombre de tabla = nombre de conjunto de entidades
 una tabla por cada conjunto de relaciones m-m
o nombre de tabla = nombre de conjunto de relaciones
 definición de columnas para cada tabla
o conjuntos fuertes de entidades
 columnas = nombre de atributos
o conjuntos débiles de entidades
 columnas = llave_primaria (dominante) U
atributos(subordinado)
o conjunto de relaciones R (m-m) entre A, B
 columnas (R) = llave_primaria (A) U llave_primaria (B) U
atributos(R)
o conjunto de relaciones R (1-1) entre A y B
 columnas (A) = atribs(A) U llave primaria(B) U atributos(R)
o conjunto de relaciones R (1-m) entre A y B
 columnas (B) = atribs(B) U llave primaria(A) U atributos(R)
El diagrama anterior se convertiría al siguiente esquema:

Débil
atribs_Debil LLP_A atribs_rel_0
A
LLP_A atribs_A
B1
LLP_B1 atribs_B1
B2
LLP_B2 atribs_B2 LLP_A attribs_rel_2
B3
LLP_B3 atribs_B3 LLP_A atribs_rel_3
A_B1
LLP_A LLP_B1 atribs_rel_1
donde:

LLP_X es la llave primaria de la entidad X (un subconjunto de atribs_X)

Ejemplo:

Para el ejemplo de la figura tendríamos el esquema:

escuela
id url nombre
departamento
clave url nombre id_escuela
curso
clave seccion nombre clave_depto
profesor
id nombre extension
estudiante
id nombre carrera
profesor_curso
id_prof clave_curso seccion_curso
estudiante_curso
id_estud clave_curso seccion_curso
3.2.3 Conversión a tablas desde un modelo con generalización

modelo e-r de generalización a tablas dos posibilidades:

1.  
o crear una tabla para el conjunto de entidades A de mayor nivel
 columnas (A) = atributos(A)

o para cada conjunto de entidades B de menor nivel, crear una tabla


tal que:
 columns (B) = atributos (B) U llave_primaria (A)

2.  

o sí A es un conjunto de entidades de mayor nivel para cada conjunto


de entidades B de menor nivel, crear una tabla tal que:
columnas (B) = atributos (B) U atributos (A)
La generalización se convertiría al siguiente esquema:

Es importante mencionar que a pesar de que existen 2 métodos para convertir una
generalización a tablas, no hay una regla exacta de cual usar en determinado
caso. A continuación, se mencionan algunos consejos útiles para la determinación
de cual método emplear:

1. Si la entidad de nivel superior está relacionada con otra(s) entidades puede


sugerirse emplear el método (1) ya que de esa manera la tabla (A) será la
única involucrada en la relación, de otra forma se tendrían tres tablas
(B1,B2 y B3) formando parte de la relación.
2. Es importante tomar en cuenta la pertenencia de instancias, si se considera
que hablamos de una generalización disjunta, donde no se puede
pertenecer a varias entidades de nivel inferior, quizás sea recomendable el
método (1), en otro caso se podría pensar en el método (2).
3. También es importante analizar ambos casos con respecto a las "consultas"
que se deseen realizar ya que esto también determina en muchos casos el
método a emplear.

3.2.4 Descubrimiento de llaves en las relaciones

Las llaves resultantes en las relaciones de un esquema se pueden inferir de la


siguiente manera:

1) Cada tabla que provenga de una entidad contiene por sí misma una llave.
2) Para las tablas resultado de una relación se toman las llaves primarias de
ambas entidades y éstas conforman la nueva llave primaria, excepto en un caso
como el que sigue:
Podemos observar que existe una relación m-m entre "actor" y "serie",
demostrando que un actor puede actuar en muchas series y que muchas series
tendrán a los mismos actores.

La tabla que se crearía sería:

actor_serie

id_actor id_serie id_personaje


Joaquín Pardavé Génesis Abel hermano bueno
Evita Muñoz (Chachita) Qué bonita familia Dulce abuelita
Joaquín Pardavé Génesis Caín hermano malo
Evita Muñoz (Chachita) Hermelinda linda Bruja Hermelinda
Si se considera "id_actor, id_serie" como la llave primaria caemos en un problema
porque esa combinación no identifica de manera única a la tupla, como es el caso
de "Joaquín Pardavé, Génesis" ya que en la primera tupla tenemos que
determinar a "Abel hermano bueno" y en la tercera a "Caín hermano malo".

La relación es correcta ya que un actor puede representar a varios personajes en la


misma obra, pero entonces la llave "id_actor, id_serie" no es la correcta y en este caso lo
más recomendable sería emplear los tres atributos de la relación "id_actor, id_serie,
id_personaje".

3.3 Esquema de la base de datos

El esquema de una base de datos (en Inglés Database Schema) describe la


estructura de una base de datos, en un lenguaje formal soportado por un sistema
administrador de base de datos (DBMS). En una base de datos relacional, el
esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada
campo y cada tabla.

El esquema es generalmente almacenado en un diccionario de datos. Aunque


generalmente el esquema es definido en un lenguaje de base de datos, el término
se usa a menudo para referirse a una representación gráfica de la estructura de
base de datos.
Niveles de esquema de base de datos
                     Esquema Conceptual, un mapa de conceptos y sus relaciones.
                     Esquema Lógico, un mapa de las entidades y sus atributos y las
relaciones.
                     Esquema Físico, una aplicación de un esquema lógico.
                     Esquema Objeto, base de datos oracle objeto.
El concepto de relación se corresponde con el concepto de variable de los
lenguajes de programación. El concepto de esquema de la relación se
corresponde con el concepto de definición de tipos de los lenguajes de
programación.

Resulta conveniente dar un nombre a los esquemas de las relaciones, igual que
se dan nombres a las definiciones de tipos en los lenguajes de programación. Se
adopta el convenio de utilizar nombres en minúsculas para las relaciones y
nombres que comiencen por una letra mayúscula para los esquemas de las
relaciones. Siguiendo esta notación se utilizará Esquema-cuenta para denotar el
esquema de la relación de la relación cuenta. Por tanto,

Esquema-cuenta = (número-cuenta, nombre-sucursal, saldo)


Se denota el hecho de que cuenta es una relación de Esquema-cuenta mediante
cuenta (Esquema-cuenta)

En general, los esquemas de las relaciones incluyen una lista de los atributos y de
sus dominios correspondientes. La definición exacta del dominio de cada atributo
no será relevante hasta que se discuta el lenguaje SQL.

El concepto de ejemplar de relación se corresponde con el concepto de valor de


una variable en los lenguajes de programación. El valor de una variable dada
puede cambiar con el tiempo; de manera parecida, el contenido del ejemplar de
una relación puede cambiar con el tiempo cuando la relación se actualiza. Sin
embargo, se suele decir simplemente «relación» cuando realmente se quiere decir
«ejemplar de la relación».

Como ejemplo de ejemplar de una relación, considérese la relación sucursal. El


esquema de esa relación es

Esquema-relación = (nombre-sucursal, ciudad-sucursal, activos)

Obsérvese que el atributo nombre de la sucursal aparece tanto en Esquema-


sucursal como en Esquema-cuenta. Esta duplicidad no es una coincidencia. Más
bien, utilizar atributos comunes en los esquemas de las relaciones es una manera
de relacionar las tuplas de relaciones diferentes. Por ejemplo, supóngase que se
desea obtener información sobre todas las cuentas abiertas en sucursales
ubicadas en Arganzuela.
3.3.1 Integridad de entidad

La primera regla de integridad se aplica a las llaves primarias de las relaciones


base: ninguno de los atributos que componen la llave primaria puede ser nulo.

Por definición, una llave primaria es un identificador irreducible que se utiliza para
identificar de modo único las tuplas. Que es irreducible significa que ningún
subconjunto de la llave primaria sirve para identificar las tuplas de modo único. Si
se permite que parte de la llave primaria sea nula, se está diciendo que no todos
sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la
irreductibilidad.

Nótese que esta regla sólo se aplica a las relaciones base y a las llaves primarias,
no a las llaves alternativas.

3.3.2 Integridad referencial

La segunda regla de integridad se aplica a las llaves ajenas: si en una relación hay
alguna llave ajena, sus valores deben coincidir con valores de la llave primaria a la
que hace referencia, o bien, deben ser completamente nulos.

La regla de integridad referencial se enmarca en términos de estados de la base


de datos: indica lo que es un estado ilegal, pero no dice cómo puede evitarse. La
cuestión es ¿qué hacer si estando en un estado legal, llega una petición para
realizar una operación que conduce a un estado ilegal? .
Existen dos opciones: rechazar la operación, o bien aceptar la operación y realizar
operaciones adicionales compensatorias que conduzcan a un estado legal.

Por lo tanto, para cada llave ajena de la base de datos habrá que contestar a tres
preguntas:

Regla de los nulos: ¿Tiene sentido que la llave ajena acepte nulos?

Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la


llave ajena?

o   Restringir: no se permite borrar la tupla referenciada.


o   Propagar (cascada): se borra la tupla referenciada y se propaga el borrado a las
tuplas que la referencian mediante la llave ajena.
o   Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo
la llave ajena (sólo si acepta nulos).

Regla de modificación: ¿Qué ocurre si se intenta modificar el valor dela llave


primaria de la tupla referenciada por la llave ajena?.

o   Restringir: no se permite modificar el valor de la llave primaria de la tupla


referenciada.
o   Propagar (cascada): se modifica el valor de la llave primaria de la tupla
referenciada y se propaga la modificación a las tuplas que la referencian mediante
la llave ajena.
o   Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a
nulo la llave ajena (sólo si acepta nulos)

3.4 Restricciones

Las restricciones en una base de datos se refieren a las condiciones que deben
cumplir los datos para su correcto funcionamiento y almacenamiento. 
Existen varios tipos:

  Restricciones de clave: Es el conjunto de atributos que identifican de forma única a


una entidad.

  Restricciones de valor único (UNIQUE): Es una restricción que impide que tenga un
atributo un valor repetido. TODOS los atributos que son CLAVE cumplen esta
restricción. Aunque es posible que otros atributos que no siendo clave la cumplan.

  Restricción de verificación (CHECK): Esta restricción permite comprobar si un valor


de un atributo es válido de acuerdo a una expresión.

  Restricción de valor NULO (NULL o NOT NULL): Un atributo puede ser obligatorio si
no admite un valor nulo o null, es decir, el valor no tiene información o se
desconoce. Si admite como valor a NULO o NULL, entonces el valor es opcional.
  Disparadores o triggers: Son procedimientos que se ejecutan para hacer una tarea
concreta en el momento de insertar, modificar o eliminar información de una tabla.

3.5 Integridad de dominio

Esta restricción exige que el valor que puede tomar un campo esté dentro del
dominio definido. Por ejemplo, si se establece que un campo NC (número de
control) pertenece al dominio de los números enteros, no es posible insertar un NC
con letra, puesto que la regla indica solo valores enteros. 

También podría gustarte