Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRASSIERRA
Córdoba
http://www.iestrassierra.com
Departamento de Informática
Llamamos modelo a un instrumento que se aplica a una parcela del mundo real (universo del
discurso) para obtener una estructura de datos a la que denominamos esquema. Modelar
consiste en definir un mundo abstracto de forma que las conclusiones que se puedan sacar de él
coincidan con las manifestaciones del mundo real. Un modelo de datos es un conjunto de
herramientas conceptuales que permiten describir los datos, sus relaciones y las reglas de
integridad que deben cumplir. (ver imagen)
Modelo
de
Datos
Universo Estructura
del de Datos
Discurso (esquema)
También conviene distinguir entre mundo real y universo del discurso, ya que este último es la
visión particular que tiene el diseñador de la BD (figura 2). Así, de un mismo mundo real, como
puede ser este Instituto, podemos definir dos universos del discurso tan distintos como el relativo
a los profesores, con sus especialidades, los alumnos con sus cursos, grupos, optativas,
calificaciones, horarios, aulas, etc., o el concerniente a la gestión económica del Centro,
proveedores, facturas, cheques, ingresos, etc.
U. Mundo
D. Real
Dpto. Informática 1
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
Por lo tanto, podemos observar dos tipos objetos en nuestro modelo: estáticos, o relativamente
invariantes en el tiempo (estructuras), y dinámicos, que varían en el transcurso del tiempo (datos).
Objetos dinámicos: viene representada por los valores que toman los distintos objetos de un
esquema en un momento determinado y que reciben el nombre de ocurrencias del esquema o
base de datos en ese momento.
MODELO JERÁRQUICO
Se le llama también modelo en árbol, ya que utiliza para su representación una estructura de tipo
árbol invertido compuestas de nodos, que representan las entidades, enlazados por arcos, que
representan las asociaciones o interrelaciones entre dichas entidades. En tal estructura el orden
de los nodos es importante. En la imagen se observa una estructura arborescente:
Estructura arborescente
Un árbol está compuesto por elementos llamados nodos. Cada nodo puede tener varios nodos
hijos, y cada uno de éstos solo puede tener un nodo padre. Todo hijo debe tener un padre, salvo
el nodo raíz (el de más alto nivel en la jerarquía). De igual forma todo padre debe tener uno o
más hijos, salvo los nodos terminales (también llamados hojas).
Los nodos forman niveles. Se llama altura al número de niveles de la estructura jerárquica. Se
denomina momento al número de nodos, y peso al número de nodos terminales (hojas). Camino
es el conjunto de líneas que unen dos nodos entre sí. Un camino que termina en una hoja se
denomina rama. El grado de un nodo es el número de sus hijos. El grado de un árbol es el mayor
grado de sus nodos.
Dpto. Informática 2
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
MODELO EN RED
Es un modelo de datos propio de los sistemas comerciales de los años 70. Fue creado para
representar relaciones más complejas y eficientes que las del modelo jerárquico, pero más
flexible, ya que permitía que los nodos tuvieran más de un solo padre.
Estructura de red
MODELO RELACIONAL
Fue desarrollado por Codd para IBM en los años 70 y actualmente es el modelo más utilizado
para modelar problemas reales y administrar datos dinámicamente.
Su principal ventaja es que permite que el usuario y el diseñador operar en un entorno que se
percibe como un conjunto de tablas y los detalles físicos complejos los maneja el sistema.
Características:
• Representa los datos y las relaciones entre ellos como una colección de tablas.
• De manera simple, una relación representa una tabla que no es más que un conjunto de
filas, cada fila es un conjunto de campos y cada campo representa un valor que describe
el mundo real.
• Las tablas son independientes, pero se relacionan mediante un vínculo común.
• Proporciona una redundancia y una inconsistencia mínima.
• La independencia de datos de las aplicaciones y del dispositivo de almacenamiento.
Este modelo utiliza tablas bidimensionales llamadas relaciones para la representación de los
datos y las interrelaciones entre ellos. La forma que tiene de conseguir la relación uno a muchos
entre el registro padre de un fichero y los registros hijos de otro fichero es mediante la utilización
de campos de conexión, esto es, insertando el valor de la clave principal del registro padre en
cada uno de los registros hijos.
Dpto. Informática 3
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
Codd basa su modelo en la teoría de las relaciones en donde los datos se estructuran lógicamente
en forma de relaciones (tablas) marcándose como principal objetivo la independencia de la
estructura lógica respecto al medio de almacenamiento y otras características de tipo físico.
Dpto. Informática 4
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
2.1.- Estructura
El elemento básico del modelo relacional es la relación que puede representarse como una tabla
(ver imagen) en la que se distingue un conjunto de columnas que representan propiedades de la
tabla y que se identifican por un nombre; y un conjunto de filas que representan las ocurrencias
de la relación. Formalmente, una relación es un conjunto de filas, en la terminología relacional.
Hay que insistir en que una relación se suele representar en forma de tabla, aunque tiene una
serie de elementos característicos que la distinguen de las típicas tablas en memoria (arrays):
• No puede haber filas duplicadas, es decir, con todos los valores idénticos.
• El orden de las filas es irrelevante.
• La tabla es plana, es decir, en el cruce de una fila y una columna sólo puede haber un valor
(no se admiten atributos multivaluados).
Toda relación se identifica por un nombre, y en ella se distingue una cabecera (esquema de
relación) que define la estructura de la tabla, es decir, sus atributos con los dominios subyacentes,
y un cuerpo (extensión), que está formado por un conjunto de tuplas.
Dpto. Informática 5
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
2.2.- Objetivos
El modelo propuesto por Codd se marcaba los siguientes objetivos:
• Independencia física. Esto es que el modo de almacenamiento físico de los datos no influya en
su tratamiento o manipulación lógica, de forma que pueda cambiarse el modo de
almacenamiento físico (unidad, ruta de acceso y nombre del fichero) sin que tengan que
cambiarse los programas que manejan esos datos. Para lograr esta independencia física será
necesario asignar a cada nombre lógico de fichero la ubicación física a que corresponde.
• Independencia lógica. Que es la capacidad de variar el esquema conceptual sin que ello
repercuta en los programas que utilizan subconjuntos parciales de ellos. El esquema cambia
cuando se modifica la estructura lógica de la B.D.: añadir, eliminar o modificar campos, por
ejemplo. Para lograr esta independencia lógica es necesario guardar las definiciones de los
ficheros (estructura) en el soporte y eliminarla de los programas.
En los lenguajes de alto nivel la modificación del modo o lugar de almacenamiento (nivel físico)
exige el cambio en el programa de la sentencia de apertura del fichero(s), y la modificación de
la estructura del fichero (nivel lógico o conceptual), requiere la redefinición de las variables de
estructura que los manejan en los programas de aplicación (es necesario modificar todas las
instrucciones que accedan al fichero). Sin embargo, en los SGBD relacionales no se requiere
ninguna de las modificaciones anteriores debido a la independencia física y lógica.
• Flexibilidad. En el sentido de poder presentar los datos a cada usuario de la forma que este
prefiera. La posibilidad de crear vistas de usuario permite que el administrador defina una
visión del fichero, en cuanto al número de campos y el orden de éstos, según los gustos o
necesidades de cada usuario
• Uniformidad. Los datos se estructuran de forma uniforme (los mismos campos y de la misma
longitud) no soportando registros de longitud variable.
Dpto. Informática 6
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
3.1.- Elementos
El modelo relacional utiliza una terminología propia y consta de los elementos que pasamos a ver
y que se ilustran en la figura 9.
• Relación, representada por una tabla de dos dimensiones formada por filas y columnas.
• Tuplas, o filas de la tabla que representan las distintas ocurrencias de la relación (registros).
• Dominio: constituido por el conjunto de valores de donde un atributo toma sus valores en las
distintas tuplas existentes en la relación. Un dominio es un conjunto finito de valores
homogéneos (todos del mismo tipo) e indivisibles en lo que se refiere al modelo (si se
descompusieran perderían la semántica a ellos asociada).
Todo dominio debe tener un nombre identificador del atributo y un tipo de datos; así el tipo
de datos del dominio de país es una serie de caracteres de longitud quince. A un dominio
pueden asociarse unidades de medida (litros, metros, etc.) y ciertas restricciones (no nulo en
un campo clave, solo dígitos en distrito postal, etc.).
Un dominio puede ser definido por extensión o por intensión. Así el atributo edad en una
relación de empleados puede ser definido por intensión como un entero comprendido entre
18 y 65. Sin embargo la definición del atributo país por intensión sería poco exacta
admitiéndose cualquier combinación de 15 letras, en este caso sería mucho más conveniente
definir el dominio por extensión mediante una lista de los nombres de los distintos países que
admitiésemos en la B.D.
Dpto. Informática 7
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
Además de los dominios y atributos simples que acabamos de ver, los trabajos de Codd y Date
publicados en 1990 introducen el concepto de dominio compuesto.
Un dominio compuesto puede definirse como una combinación de dominios simples que
tienen un nombre y a la que pueden aplicársele ciertas restricciones de integridad. Así por
ejemplo el dominio fecha puede estar compuesto por los dominios simples día, mes y año, y
sería más fácil aplicar reglas de validación (integridad) sobre el dominio compuesto que
individualmente sobre los tres dominios simples, además de facilitar el manejo por parte de
los usuarios porque pueden ser tratados como unidades indivisibles de información, es decir
como valores atómicos.
• Claves
Clave candidata: atributo o conjunto de atributos que identifican unívoca y
mínimamente a cada una de las tuplas de la relación. Por la propia definición de
relación, siempre hay al menos una clave candidata (el conjunto de todos los atributos).
Si no se cumpliera la condición de minimalidad se eliminarían de la clave aquellos
atributos que lo impidiesen. Una relación puede tener más de una clave candidata.
Clave principal: clave candidata elegida para identificar cada una de las tuplas. Una
relación solo puede tener una clave principal.
Clave alternativa: clave candidata no elegida como principal.
Clave ajena: clave candidata exportada a otra relación lo que permite relacionar una
tabla con otra.
3.2.- Restricciones
En el modelo relacional, como ocurre en otros, existen estructuras u ocurrencias no permitidas o
restricciones. Los datos almacenados han de cumplir las estructuras del modelo (por ejemplo, no
tener tuplas duplicadas) y han de cumplir las restricciones de usuario para constituir una
ocurrencia válida del esquema.
- La integridad de entidad establece que “Ningún atributo que forme parte de la clave
primaria de una relación puede tomar un valor nulo”; es decir un valor desconocido o
inexistente. A las claves alternativas también debería exigírseles esta integridad, pero el
modelo no lo contempla.
Dpto. Informática 8
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
En la relación PRESTAMO existen dos claves ajenas: dni que referencia a la relación ALUMNO
por una clave alternativa y signatura que referencia a LIBRO por su clave primaria; en este
caso ninguna de esas dos claves ajenas, ni el atributo fechapres puede tomar valores nulos
pues forman parte de la clave primaria compuesta de PRESTAMO.
El modelo relacional, como todo modelo de datos, lleva asociado a su parte estática
(estructura y restricciones) una dinámica que permite mantener actualizados los datos. Esta
actualización se realiza con las sentencias de actualización (inserción, borrado y
modificación de tuplas).
Además de definir las claves ajenas, hay que analizar las consecuencias que pueden
ocasionar las operaciones de modificación o borrado sobre tuplas de la relación
referenciada. Es decir, debemos identificar la acción que el SGBDR debe realizar sobre estas
tuplas. A continuación, se enumeran las principales.
Dpto. Informática 9
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
Operación con puesta a nulos (SET NULL) o a valor por defecto (SET DEFAULT): el borrado
o modificación de tuplas de la relación con clave primaria implica poner a nulos o poner al
valor por defecto los valores de la clave ajena en la otra relación. En nuestro ejemplo: si se
borra un curso, a los alumnos matriculados en dicho curso se les debería poner el atributo
codcurso a nulos, o al valor por defecto declarado al crear la tabla.
BASE DE DATOS
Dpto. Informática 10
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
1. El nivel externo compuesto por vistas. La vista es una tabla ‘virtual’ esto es que no existe
por sí misma, sino que se deriva de una o más tablas de base. Las vistas son ventanas sobre
tablas reales, de las que solo se almacena su definición, y no tienen representación directa
en el almacenamiento. En SQL, las vistas se crean con la sentencia CREATE VIEW.
3. El nivel interno en el que cada tabla de base se representa por un archivo que puede tener
varios índices asociados. CREATE INDEX, en SQL.
El modelo relacional, al ser un modelo lógico, no especifica nada a nivel interno. En general cada
registro del esquema interno se corresponde con una tupla de las tablas de base, pero puede que
un registro esté formado por tuplas de distintas tablas o que una tupla pudiera implementarse en
distintos registros a nivel físico.
Cada producto comercial ofrece unos elementos internos (índices, agrupamientos, particiones,
etc.) para optimizar su rendimiento.
Además de los tres niveles vistos que conforman la parte estática del modelo relacional, existe un
cuarto componente que constituye la parte dinámica del modelo.
El sublenguaje de datos que permita el manejo de los datos del sistema. Estos lenguajes, llamados
de especificación, son muy potentes y tienen sentencias para el procesamiento de una tabla
completa, a diferencia de los lenguajes de navegación que procesan la tabla registro a registro.
Son sublenguajes de especificación los siguientes:
El valor nulo (NULL) puede definirse como un valor o una marca utilizada para representar la
información desconocida, inaplicable, etc. La necesidad de valores nulos se hace evidente por
diversas razones:
Dpto. Informática 11
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
El tratamiento de los valores nulos exige definir operaciones y funciones específicas para valores
nulos, entre otras:
Así, por ejemplo, se plantea el problema de saber si dos valores nulos son iguales. No podemos
decir que es cierto que sean iguales puesto que estaríamos afirmando que no son tan
desconocidos; pero tampoco podríamos decir que es falso que sean iguales; la única solución que
nos queda es decir que quizás sean iguales.
Surge de esta forma una lógica distinta a la habitual, la llamada lógica trivaluada, cuyas tablas de
verdad usan los valores C (cierto), F (falso) y Q (quizás) y se muestran en la siguiente imagen.
A B A AND B A OR B NOT A
C C C C F
C Q Q C F
C F F C F
Q C Q C Q
Q Q Q Q Q
Q F F Q Q
F C F C C
F Q F Q C
F F F F C
Lógica trivaluada: operaciones booleanas con valores nulos
Esta lógica, en cierto modo, atenta contra la intuición. En efecto si un usuario realiza las consultas:
alumnado con 18 o más años de edad y alumnado con menos de 18 años de edad, podríamos
suponer que ha recuperado todos los alumnos y alumnas de la base de datos, pero esto puede
no ser cierto, ya que no habría recuperado los alumnos cuya edad (o fecha de nacimiento) se
desconoce (valor nulo).
Es por ello necesario un nuevo operador unario denominado MAYBE, que corresponde al
predicado IS NULL del lenguaje SQL. Este operador resulta cierto cuando el valor de la expresión
sobre la que se aplica es quizás. Su tabla de verdad es la siguiente.
A MAYBE A
C F
Q C
F F
El operador MAYBE
En cuanto a las operaciones aritméticas con valores nulos, se toma como nulo el resultado de
sumar, multiplicar, restar o dividir un valor nulo con cualquier otro.
Dpto. Informática 12
UT 2: Creación de Bases de Datos Relacionales BASES DE DATOS
Por lo que respecta a los operadores algebraicos, es importante considerar los valores nulos para
evitar pérdidas de información a la hora de realizar consultas, para lo que se han diseñado nuevos
operadores como la combinación externa (outer join) que se estudiarán más adelante.
Además, hay que considerar los valores nulos a la hora de aplicar funciones estadísticas como
frecuencias, varianza, media, etc. En estos casos hay que aclarar si se tendrán o no en cuenta los
valores nulos al realizar los cálculos, o nos podremos llevar sorpresas como que la media de los
valores de un atributo no es igual a la suma de los valores dividido por el número de elementos.
El gran problema de los valores nulos es que ningún producto comercial los ha instrumentado de
forma coherente y satisfactoria; así, por ejemplo, algunos productos relacionales los ignoran para
operaciones de agrupamiento y los tienen en cuenta en operaciones de ordenación y proyección.
El propio Codd (1990) apunta que "esta parte del modelo no tiene un fundamento teórico tan
sólido como las otras". Otros autores como Date (1990) proponen evitar los valores nulos,
mediante valores por defecto hasta que el problema se sistematice y se comprenda mejor. Codd
contesta que esta postura no hace más que enmascarar el problema y lo critica detalladamente.
En resumen, el tema de los valores nulos se encuentra en fase de investigación y no está aún
resuelto. Su importancia radica en las implicaciones que tiene sobre el resto del modelo
relacional, las operaciones algebraicas, la optimización de consultas, la teoría de la normalización.
No obstante, es conveniente conocer el problema y estudiar detenidamente el tratamiento que
nuestro SGBDR da a los valores nulos.
Dpto. Informática 13