Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Previo
La implementación del diseño de una base de datos requiere un
modelo lógico, como el modelo relacional, donde se utilicen
determinadas estructuras de datos para representar los distintos
elementos de información.
Por tanto, es necesario que el modelo conceptual resultado de la
abstracción de diseño sea traducido al conjunto de estructuras
de datos que utilice el Sistema de Gestión de Base de Datos
(SGBD) elegido para su implementación.
Actualmente, los Sistemas de Gestión de Bases de Datos
Relacionales (SGBDR) son los más ampliamente utilizados para la
implementación de bases de datos. Estos sistemas se basan en el
concepto de relación que establece el Álgebra de la Teoría de
Conjuntos como estructura para la representación lógica de la
información.
Previo
Dada la importancia que tienen en el panorama actual las bases
de datos relacionales resulta imposible no dedicarles una unidad
completa para su adecuado estudio.
En esta unidad se van estudiar los conceptos relacionados con el
modelo relacional. Este modelo sigue, en el desarrollo de bases
de datos, al diseño realizado mediante la herramienta que
proporciona el modelo conceptual que se ha tratado.
El modelo relacional es un modelo lógico en que puede
concretarse el diseño de una base de datos realizado a través de
la herramienta que proporciona el modelo conceptual tratado en
la Unidad anterior.
Previo
Así pues, esta Unidad profundizará en la obtención del modelo
lógico relacional a partir del modelo conceptual que constituye
el modelo Entidad/Relación. De esta forma, se estudiarán las
estrategias para llevar a cabo este paso y, sobre todo, para
realizarlo de forma que no exista pérdida semántica en la
traducción o que esta sea mínima.
Previo
En la presente unidad vamos a tratar en profundidad los
siguientes temas:
El concepto algebraico de relación que constituye el
fundamento de las bases de datos relacionales.
Las propiedades más importantes de las relaciones y sus
restricciones semánticas, incluida la integridad referencial.
La representación de entidades y asociaciones entre ellas a
través del grafo relacional.
Finalmente, y de gran importancia, se tratarán las distintas
técnicas para llevar a cabo la transformación del Modelo
Entidad/Relación al Modelo Relacional.
Introducción
En la Unidad 3 se trató ampliamente el modelo Entidad/Relación
como modelo conceptual que proporciona una herramienta de
abstracción para el diseño de bases de datos.
El modelo Entidad/Relación, y el modelo Entidad/Relación
Extendido, ofrecen un robusto modelo formal para la
representación de la información considerada de interés así
como de su estructura de interrelaciones. De esta forma, el
modelo Entidad/Relación permite reflejar gran parte, sino toda,
de la semántica propia del universo de discurso a modelar.
Sin embargo, el modelo Entidad/Relación es un modelo
netamente conceptual y como tal no es directamente soportado
por ningún Sistema de Gestión de Base de Datos (SGBD).
Introducción
Sin embargo, el modelo Entidad/Relación es un modelo
netamente conceptual y como tal no es directamente soportado
por ningún Sistema de Gestión de Base de Datos (SGBD).
Como se ha podido ver, hay algunos elementos que no se
trasladan directamente desde el modelo de datos conceptual
(realizado mediante por ejemplo la herramienta Dia) al modelo
lógico (realizado mediante por ejemplo la herramienta MySQL
Workbench. Un ejemplo de estos elementos, son las relaciones
M:N que existen en el modelo de datos conceptual pero en
MySQL Workbench, se convierten automáticamente a relaciones
1:N con una entidad auxiliar.
Introducción
Así pues, para llevar a cabo la implementación de una
determinada base de datos será necesario desarrollar un modelo
de datos lógico que, utilizando determinadas estructuras de
datos, permita representar la misma información que el modelo
conceptual.
El modelo lógico será parte del Sistema de Gestión de la Base de
Datos (SGBD) que proporcionará las herramientas adecuadas para
su definición y gestión.
Además, será el mismo Sistema de Gestión de Base de Datos el
que traslade el modelo lógico generado a un modelo físico que
permita el almacenamiento de los datos en un sistema
informático.
Introducción
En función del tipo de estructura de datos utilizada, existen
distintas formas de presentar la información y, por tanto,
distintos modelos lógicos. En nuestro caso, nos centraremos en el
modelo relacional que es casi hegemónico en el panorama actual
de las bases de datos corporativas.
Bases de datos relacionales
Las bases de datos relacionales, como su nombre indica, utilizan
un modelo lógico de datos basado en el concepto de relación.
Según la Teoría de Conjuntos, una relación viene dada por grupos
de valores (denominados tuplas) que se toman de los
correspondientes dominios.
El concepto de dominio es completamente similar al utilizado en
el modelo Entidad/Relación y especifica una colección completa
de posibles valores para un determinado elemento. Ejemplos de
dominios serían: los números naturales, los números enteros
(positivos y negativos), las cadenas de caracteres de longitud 6,
etc.
Bases de datos relacionales
De esta forma, en cada tupla de la relación cada valor se indica
como perteneciente al dominio del que se ha tomado.
Así:
Tupla 1
Tupla 2
Dominio 1: Dominio 2:
Proveedores Apellidos
https://yanoquiero.com/c-tecnologia/que-es-una-tabla-en-base-de-datos/
Bases de datos relacionales
Por supuesto, todas las tuplas de la relación mantendrán el
mismo número y ordenación de sus valores que se tomarán de los
mismos dominios. Por ejemplo, el primer valor de todas las
tuplas corresponderá siempre al dominio D1.
Como puede apreciarse, incluso visualmente, una sucesión de
tuplas forma una matriz o tabla de valores donde las filas
(elementos horizontales) corresponden a las distintas tuplas de
valores y las columnas (elementos verticales) a los
correspondientes dominios.
Bases de datos relacionales
Por esta razón, normalmente se dice que las bases de datos
relacionales estructuran la información mediante tablas.
El modelo relacional fue propuesto por E. F. Codd a finales de los
años 60 en un artículo denominado “A Relational Model for Large
Shared Data Banks” basándose en conceptos de la Teoría de
Conjuntos y de las Relaciones algebraicas.
El modelo Relacional persigue los siguientes objetivos:
Bases de datos relacionales
El modelo Relacional persigue los siguientes objetivos:
Independencia física: De manera que la representación lógica
de la información se mantenga separada de su
almacenamiento físico.
Flexibilidad: Para poder recoger los esquemas de información
de los distintos usuarios (perfiles de usuarios).
Uniformidad: De forma que se utilice un único tipo de
estructura de datos para la representación tanto de las
distintas entidades consideradas de interés como de las
interrelaciones entre ellas.
Sencillez: Para que su manejo y comprensión resulten
sencillos.
Bases de datos relacionales
Aunque en algunas ocasiones sería posible obtener el modelo
relacional directamente a partir de las condiciones del
problema, se seguirá la metodología basada en obtenerlo como
refinamiento del modelo conceptual de diseño plasmado en un
diagrama Entidad/Relación.
De esta forma, se utilizará un conjunto tipificado de reglas para
pasar del modelo Entidad/Relación al Modelo Relacional.
Como todo modelo, incluye una parte estática y otra dinámica.
Se introduce el concepto de relación como estructura básica de
la parte estática del modelo.
Como parte dinámica se proponen un conjunto de operadores
sobre las relaciones que dan lugar a la denominada Álgebra
Relacional.
Relaciones o tablas
La estructura básica de las relaciones quedará representada
como se indica a continuación:
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Restricciones del modelo relacional
Grupo repetitivo a través de columnas: Definir varias columnas
del número telefónico con el mismo dominio (cadenas de 12
caracteres de longitud). En este caso se generan valores nulos
que no se pueden permitir como se vio anteriormente (regla de
integridad de entidad).
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Restricciones del modelo relacional
Repetición de grupos dentro de columnas: Conservar una sola
columna de número de teléfono, pero alterando su dominio,
haciendo una cadena de suficiente longitud para acomodar
múltiples números telefónicos. Se genera un error semántico: ¿se
representa un teléfono o una lista de teléfonos? Cómo se
solucionaría el caso de obtener pares de clientes con el mismo
teléfono?
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Restricciones del modelo relacional
Se podría solucionar con dos relaciones/tablas: Cliente y
Teléfono de cliente como se indica a continuación:
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Restricciones del modelo relacional
Las restricciones semánticas permiten expresar normas presentes
en el Universo del Discurso de forma que éste pueda ser
modelado con más fidelidad. Las principales son:
Clave primaria (PRIMARY KEY): Permite declarar uno o varios
atributos como clave primaria por lo que sus valores no podrán
repetirse dentro del conjunto de tuplas ni tampoco ser nulos.
Unicidad (UNIQUE): Indica que no puede haber valores
duplicados de ese atributo en todo el conjunto de tuplas.
Permite valores nulos y permite definir claves alternativas.
Obligatoriedad (NOT NULL): Indica que un atributo no admite
valores nulos.
Restricciones del modelo relacional
Integridad referencial (FOREIGN KEY): Si en una relación R2
existen uno, o varios atributos que constituyen una clave
candidata en otra relación R1, su valor tendrá que coincidir
con el de alguna de las tuplas de R1 para ese conjunto de
atributos o ser nulo. El atributo (o atributos) en cuestión
cumple así con el principio de integridad referencial y de esta
forma se evitan referencias nulas o vacías. A continuación se
ve un ejemplo donde se incumple esto:
Restricciones del modelo relacional
La relación Teléfono del cliente tiene el atributo ID Cliente que
es clave candidata en la relación Cliente, pero en el caso del
valor 456, no coincide con ninguna tupla de Cliente y no es nulo:
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Integridad referencial
Siendo que una relación R2 que incluye uno o varios atributos
que actúan como clave externa hacia R1, podemos considerar
que
R2 es la relación que referencia ya que es la relación que
incluye a la clave externa.
R1 es la relación referenciada. Es decir, R1 es la relación que
contiene la clave candidata cuyos valores deben coincidir con
los de la clave externa.
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Integridad referencial
La integridad referencial persigue que todas las ocurrencias de
asociación entre las tuplas (que se corresponden a ocurrencias
de entidad) de distintas tablas sean válidas. Esto se traduce en
que todo valor incluido en el atributo que actúa como clave
externa en una tabla exista para el atributo que actúa como
clave candidata en la otra tabla.
Integridad referencial
De esta forma, junto con las claves externas es necesario definir
unas reglas de integridad referencial, es decir, el
comportamiento deseado cuando se intente eliminar una tupla
de R1 cuya valor de clave candidata se incluye en el atributo o
atributo que actúa como clave externa en R2:
Relación referenciada Relación que referencia
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Integridad referencial
Además del borrado, también es posible que se modifique el
valor de la clave candidata en alguna tupla de R1, lo que violaría
la integridad referencial si el valor se incluye entre los de la
clave externa de R2:
Relación referenciada Relación que referencia
621
https://es.wikipedia.org/wiki/Primera_forma_normal#Grupos_repetidos
Integridad referencial
Así, si se borran tuplas de una relación R1 con claves
referenciadas desde una relación R2 o los valores de las claves
de R1 son modificados, se puede establecer la realización de una
de las siguientes acciones:
Operación restringida (NO ACTION): Sólo es posible el
borrado/modificación de las tuplas de R1 si NO existen tuplas
en R2 que contengan esos valores para los atributos que hacen
de claves externas.
Operación en cascada (CASCADE): El borrado/modificación de
las tuplas de R1 desencadena el borrado/modificación de las
tuplas de la relación R2 que tengan esos mismos valores para
los atributos que estén actuando como claves externas.
Integridad referencial
Operación puesta a nulo (SET NULL) o a valor por defecto (SET
DEFAULT): El borrado/modificación de las tuplas de R1 hace
que los valores de los atributos que actúan como clave externa
en la tabla R2 que las referencian se pongan a NULL (si es
posible) o al valor establecido por defecto.
Se elimina Teléfono
de PERSONAL y pasa
a ser clave principal
PERSONAL (DNI, Nombre) de TELEFONOS en
TELEFONOS (DNI, Teléfono) combinación con DNI.
Reglas básicas
Los atributos obligatorios del Modelo Entidad/Relación pasan a
ser atributos con la restricción NOT NULL.
Los atributos opcionales (que pueden tener valores NULL) se
indican acompañados por un asterisco.
Los atributos compuestos se transformarán en los atributos que
los componen: