modelo relacional

Anuncio
MODELO RELACIONAL
DIEGO FERNANDO PATARROYO BARAJAS
INSTITUTO TECNICO GONZALO SUARES RENDON
SISTEMAS
TUNJA
2014
3. MODELO RELACIONAL
3.1 DEFINICIÓN
El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la
lógica de predicado y
en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas
reales y administrar
datos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los
laboratorios IBM en San
José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de
datos.
Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma
lógica como
conjuntos de datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos
relacionales creadas por
Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar,
esto es,
pensando en cada relación como si fuese una tabla que está compuestas por registros (cada fila de
la tabla sería un
registro o tupla), y columnas (también llamadas campos).
3.2 CARACTERISTICAS
Independencia física: es decir, el modo en el que se almacenan los datos no influya en su
manipulación lógica y, por tanto, los usuarios que acceden a esos datos no tienen que
modificar sus programas por cambios en el almacenamiento físico.
Independencia lógica: esto es, que el añadir, eliminar o modificar objetos de la base de datos no
repercuta en los
programas y/o usuarios que están accediendo a subconjuntos parciales de los mismos (vistas).
Flexibilidad: en el sentido de poder presentar a cada usuario los datos de la forma en que éste
prefiera.
Uniformidad: las estructuras lógicas de los datos presentan un aspecto uniforme, lo que facilita la
concepción y
manipulación de la base de datos por parte de los usuarios.
Sencillez: las características anteriores, así como unos lenguajes de usuario muy sencillos,
producen como resultado
que el modelo de datos relacional sea fácil de comprender y de utilizar por parte del usuario
final.Desarrollado por: Ing. Zulma Patricia Salas Página 3
3.3 COMPONENTE MODELO RELACIONAL
3.3.1 Esquemas (Nombre de la Relación)
Es el nombre que se le da a una relación y el conjunto de atributos en ella.
Ejemplo
Películas (título, año, duración, tipo)Desarrollado por: Ing. Zulma Patricia Salas Página 4
En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce
como "esquema
relacional de base de datos" (relational database schema) o simplemente "esquema de base de
datos" (database
schema)
3.3.2 Relaciones(Tabla)
El modelo relacional proporciona una manera simple de representar los datos: una tabla
bidimensional llamada
relación.
Título año duración Tipo
Star Wars 1977 124 Color
Mighty Ducks 1991 104 Color
Wayne's World 1992 95 Color
Relación Películas
La relación Películas tiene la intención de manejar la información de las instancias en la entidad
Películas, cada
renglón corresponde a una entidad película y cada columna corresponde a uno de los atributos de
la entidad. Sin
embargo las relaciones pueden representar más que entidades, como se explicará más adelante.
3.3.3 Atributos (Columnas)
Los atributos son las columnas de un relación y describen características particulares de una
relación(relación)
Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que no sea
divisible.Desarrollado por: Ing. Zulma Patricia Salas Página 5
3.3.4 Tuplas (Filas)
Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos.
(Star Wars, 1977, 124, color)
3.3.5 Cardinalidad
El número de filas (tuplas) es el cardinalidad de la relación.
3.3.6 Grado
El número de columnas es el grado de la relación.
3.3.7 Dominio
Entero, cadena de caracteres, etc.
Patricia Salas Página 6
Los dominios pueden ser:
Booleano (Falso, Verdadero)
Numérico(enteros, reales): números de 0 - 9
Texto: palabras que contienen letras de A-Z y a - z
Alfanuméricos cadena de caracteres: contienen letras de A-Z , a – z, números de 0 – 9, símbolos
3.3.8 Clave o llaves
LLAVES – CLAVES
Es un subconjunto del conjunto de atributos comunes en una colección de entidades, que permite
identificar
unívocamente cada una de las entidades pertenecientes a dicha colección. Asimismo, permiten
distinguir entre sí las
relaciones de un conjunto de relaciones.
Claves (Llaves): Atributos que identifican una entidad dentro de un conjunto de entidades.
Superclave: Conjunto de atributos no vacío, que identifica en forma única una entidad dentro de
un
conjunto de entidades. Cualquier superconjunto de una superclave también es superclave.
Clave candidata: Es una superclave para la cual ningún subconjunto es superclave, excepto el
mismo.
Clave primaria (Llave Primaria): Es la clave candidata escogida por el diseñador. Atributo o
conjunto de
atributos que permiten identificar en forma única una tupla en la tabla (una entidad en un
conjunto de
entidades) y ningún subconjunto de ella posee esta propiedad.
Llave foránea: Es un atributo que es llave primaria en otra entidad con la cual se relaciona. Las
llaves
foráneas son en últimas las que permiten relacionar las tablas en las bases de datos.Desarrollado
por: Ing. Zulma Patricia Salas Página 7
Las relaciones (tablas) se vinculan, unen o separan a través de los identificadores o campos
comunes.(LLAVES)
es el principal de la tabla se llama Llave primaria (primary Key o
PK)
En teoría, todos los atributos de una misma entidad se podrían almacenar en una misma tabla
facilitando la búsqueda
y se minimiza el riesgo de redundancia de datos. Pero tablas de muchas columnas saturan al
usuario y se dividen
desde el identificador principal
LLAVE PRIMARIA
Es un campo o a una combinación de campos que identifica de forma única a cada fila de una
tabla. Una clave
primaria comprende de esta manera una columna o conjunto de columnas. No pueden haber dos
filas en una tabla
que tengan la misma clave primaria.
Una llave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a
las filas que se
encuentran en un momento determinado. Ejemplos de claves primarias son DNI (asociado a una
persona) o ISBN
(asociado a un libro).
La cardinalidad entre relaciones indica la cantidad de ocurrencias entre atributos.
Se representa por medio de o escribiendo PK
LLAVE FORANEA
Es una limitación referencial entre dos tablas. La llave foránea identifica una columna o grupo de
columnas en una
tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla
(tabla maestra o
referenciada). Las columnas en la tabla referendo deben ser la llave primaria u otra clave
candidata en la tabla
referenciada.
Se representa por medio de * o escribiendo FK
Ningún componente de una clave foránea puede contener valores que no están presentes en la
clave primaria
(alternativa) a la que referencia”
Ejemplo
*Desarrollado por: Ing. Zulma Patricia Salas Página 8
3.4. INTERRELACION
Relaciones uno a varios
Una relación uno a varios es el tipo más habitual de relación. En este tipo de relación, una fila de la
tabla A puede
corresponderse con muchas filas de la tabla B, pero una fila de la tabla B sólo puede
corresponderse con otra de la
tabla A. Por ejemplo, en las tablas publishers (editoriales) y titles (títulos) se da una relación uno a
varios: una
editorial publica muchos títulos, pero a cada título le corresponde sólo una editorial.
Cree una relación uno a varios si solamente una de las columnas relacionadas es la clave principal
o tiene una
restricción unique.
El lado de la clave principal de una relación uno a varios se indica mediante un símbolo de clave. El
lado de la clave
externa de una relación se indica mediante un símbolo de infinito.
Relaciones Varios a Varios
En una relación varios a varios, una fila de la tabla A puede tener muchas filas coincidentes en la
tabla B y viceversa.
Este tipo de relaciones se crea definiendo una tercera tabla, denominada tabla de unión, cuya
clave principal esté
constituida por las claves externas de las tablas A y B. Por ejemplo, entre las tablas authors
(autores) y titles (títulos)
existiría una relación varios a varios definida por una relación uno a varios entre cada una de ellas
y la tabla
titleauthors (títuloautor). La clave principal de la tabla titleauthors es la combinación de la
columna au_id (la clave
principal de la tabla authors) y la columna title_id (la clave principal de la tabla titles).
Relaciones uno a uno
En una relación uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en la
tabla B y viceversa.
Se crea una relación uno a uno si las dos columnas relacionadas son claves principales o tienen
restricciones
UNIQUE.
Este tipo de relación no es habitual, ya que la mayor parte de la información relacionada de esta
manera estaría toda
en una tabla. Puede utilizar una relación uno a uno para:
una tabla por razones de seguridad.
eliminación de la
tabla.
El lado de la clave principal de una relación uno a uno se indica mediante un símbolo de clave . El
lado de la clave
externa también se indica mediante un símbolo de clave.Desarrollado por: Ing. Zulma Patricia
Salas Página 9
3.5 LA REPRESENTACIÓN DE INTERRELACIONES ENTRE RELACIONES ES:
Forma 1
Uno a uno
Uno a varios
Varios a Varios
Forma 2
Uno a uno
Uno a varios
Varios a Varios
Forma 3Desarrollado por: Ing. Zulma Patricia Salas Página 10
3.6. CONVERSIÓN DEL MODELO E-R A UN ESQUEMA DE BASE DE DATOS (CONVERSIÓN A
RELACION(TABLAS))
TRANSFORMACION DE MODELO ER(CONCEPTUAL) A MODELO RELACIONAL
(LOGICO)
Una vez obtenido el modelo conceptual (representado en el diagrama E/R) debe ser transformado
a un modelo lógico
es decir Modelo Relacional. La secuencia de pasos a aplicar para dicha transformación son:
Reducción de diagramas E-R a Modelo Relacional
Un diagrama Modelo E-R, puede ser representado también a través de una colección de tablas
Modelo Relacional.
Para cada una de las entidades y relaciones existe una tabla única a la que se le asigna como
nombre el del conjunto
de entidades y de las relaciones respectivamente, cada tabla tiene un número de columnas que
son definidas por la
cantidad de atributos y las cuales tienen el nombre del atributo. La transformación de nuestro
ejemplo Venta en la
que intervienen las entidades de Vendedor con los atributos RFC, nombre, puesto, salario y
Artículo con los atributos
Clave, descripción, costo.
Cuyo diagrama E-R es el siguiente:
Entonces las tablas resultantes siguiendo la descripción anterior son:
Nótese que en la tabla de relación - Venta -, contiene como atributos a las llaves primarias de las
entidades que
intervienen en dicha relación, en caso de que exista un atributo en las relaciones, este atributo es
anexado como una
fila más de la tabla; Por ejemplo si anexamos el atributo fecha a la relación venta, o valor la tabla
que se originaría
sería la siguiente:
Pasos para trasformar un MER en MR
Consultar archivo Desarrollado por: Ing. Zulma Patricia Salas Página 11
Notación para RELACIÓN
El esquema de una relación R se denota R(A1,A2, …An) donde R es el nombre de la relación y
A1,A2, …An son los
atributos de R
MODELO ENTIDAD RELACIÒN MODELO RELACIONAL
Notación No 1
R(A1,A2, …An)
PK
PRODUCTO(ID_PRODUCTO,
NOMBRE, PRECIO, STOCK )
Notación No 2
Ejemplo de paso de Modelo Entidad Relación a Modelo Relacional
Modelo Entidad Relación (MER)Desarrollado por: Ing. Zulma Patricia Salas Página 12
Modelo Relacional (MR)
Nomenclatura No 1
Nomenclatura No 2
Ingreso de datos en un Modelo relacional
Teniendo en cuenta que el Modelo Relacional una Relación es equivalente a una tabla para
ingreso de datos reales se representa la relación en forma de tabla como se muestra a
continuación.Desarrollado por: Ing. Zulma Patricia Salas Página 13
3.7. RESTRICCIONES
En el modelo relacional, existen restricciones, es decir, estructuras u ocurrencias no permitidas,
siendo preciso
distinguir entre restricciones inherentes y restricciones de usuario.
Restricciones inherentes
Además de las derivadas de la definición matemática de "relación" como eran que:
No hay dos tuplas iguales.
· El orden de las tuplas no es significativo.
· El orden de los atributos (columnas) no es significativo.
· Cada atributo sólo puede tomar un único valor del dominio, no admitiéndose por tanto los
grupos repetitivos.
Tenemos que la regla de integridad de entidad establece que "Ningún atributo que forme parte de
la clave primaria
de una relación puede tomar un valor nulo"; esto es, un valor desconocido o inexistente. Esta
restricción debería
aplicarse también a las claves alternativas, pero el modelo no lo exige.
Restricciones de usuarioDesarrollado por: Ing. Zulma Patricia Salas Página 14
Podemos considerar la restricción de usuario, dentro del contexto relacional, como un predicado
definido sobre un
conjunto de atributos, de tuplas o de dominios, que debe ser verificado por los correspondientes
objetos para que
éstos constituyan una ocurrencia válida del esquema.
Dentro de las restricciones de usuario destaca la restricción de integridad referencial que dice que
los valores de
clave ajena deben coincidir con los de clave primaria asociada a ella o ser nulos.
La integridad referencial es una restricción de comportamiento ya que viene impuesta por el
mundo real y es el
usuario quien la define al describir el esquema relacional; es también de tipo implícito, ya que se
define en el
esquema y el modelo la reconoce (o así algunos productos) sin necesidad de que se programe ni
de que se tenga
que escribir ningún procedimiento para obligar a que se cumpla.
EDITORIAL (NOMBRE_E, DIRECCION, CIUDAD, PAIS)
LIBRO (CODIGO, TITULO, IDIOMA, ..., NOMBRE_E)
En este ejemplo el atributo nombre_e de la relación LIBRO es clave ajena que referencia a
EDITORIAL, de modo que
debe concordar con la clave primaria de la relación EDITORIAL o bien ser nulo, porque los libros de
nuestra base de
datos deberán pertenecer a una editorial existente, o si se desconoce la editorial, no se tendrá
ningún valor para este
atributo.
AUTOR (NOMBRE, NACIONALIDAD, INSTITUCION, ..)
LIBRO (CODIGO, TITULO, IDIOMA, EDITORIAL, ...)
ESCRIBE (NOMBRE, COD LIBRO)
En este ejemplo la relación ESCRIBE posee dos claves ajenas: nombre, que referencia a la relación
AUTOR, y
cod_libro, que referencia a la relación LIBRO; en este caso ninguna de las dos claves ajenas puede
tomar valores
nulos, ya que forman parte de la clave primaria de la relación ESCRIBE.
Además de definir las claves ajenas, hay que determinar las consecuencias que pueden tener
ciertas operaciones
(borrado y modificación) realizadas sobre tuplas de la relación referenciada; pudiéndose distinguir,
en principio, las
siguientes opciones:
Operación restringida: esto es, el borrado o la modificación de tuplas de la relación que
contiene la clave primaria referenciada; sólo se permite si no existen tuplas con dicha clave
en la relación que contiene la clave ajena. Esto nos llevaría, por ejemplo, a que para poder
borrar una editorial de nuestra base de datos no tendría que haber ningún libro que
estuviese publicado por dicha editorial, en caso contrario el sistema impediría el borrado.
Operación con transmisión en cascada: esto es, el borrado o la modificación de tuplas de la
relación que
contiene la clave primaria referenciada lleva consigo el borrado o modificación en cascada de las
tuplas de la
relación que contienen la clave ajena. En nuestro ejemplo, equivaldría a decir que al modificar el
nombre de una
editorial en la relación EDITORIAL, se tendría que modificar también dicho nombre en todos los
libros de nuestra
base de datos publicados por dicha editorial.
Operación con puesta a nulos: esto es, el borrado o la modificación de tuplas de la relación que
contiene la
clave primaria referenciada lleva consigo poner a nulos los valores de las claves ajenas de la
relación que
referencia. Esto nos llevaría a que cuando se borra una editorial, a los libros que ha publicado
dicha editorial y Desarrollado por: Ing. Zulma Patricia Salas Página 15
que se encuentran en la relación LIBROS se les coloque el atributo nombre_e a nulos. Esta opción,
obviamente,
sólo es posible cuando el atributo que es clave ajena admite el valor nulo.
Operación con puesta a valor por defecto: esto es, el borrado o la modificación de tuplas de la
relación que
contiene la clave primaria referenciada lleva consigo poner el valor por defecto a la clave ajena de
la relación que
referencia.
Operación que desencadena un procedimiento de usuario: en este caso, el borrado o la
modificación de
tuplas de la tabla referenciada pone en marcha un procedimiento definido por el usuario.Q
Descargar