Principios
sobre
Bases de Datos
Relacionales
e-mail: mailto:
[email protected]
Autor: Jorge Sánchez (www.jorgesanchez.net) año 2004
Este trabajo está protegido bajo una licencia de Creative Commons del
tipo Attribution-NonCommercial-ShareAlike.
Para ver una copia de esta licencia visite:
http://creativecommons.org/licenses/by-nc-sa/2.0/
o envíe una carta a:
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.
<1>
<2>
Los contenidos de este documento están protegidos bajo una licencia de Creative Commons
del tipo Attribution-Noncomercial-Share Alike. Con esta licencia:
Eres libre de:
• Copiar, distribuir y mostrar este trabajo
• Realizar modificaciones de este trabajo
Bajo las siguientes condiciones:
Attribution (Reconocimiento). Debe figurar siempre el autor
original de este trabajo
Noncommercial (No comercial). No puedes utilizar este trabajo
con propósitos comerciales.
Share Alike (Compartir igual). Si modificas, alteras o construyes
nuevos trabajos a partir de este, debes distribuir tu trabajo con una
licencia idéntica a ésta
• Si estas limitaciones son incompatible con tu objetivo, puedes contactar con
el autor para solicitar el permiso correspondiente
• No obstante tu derecho a un uso justo y legítimo de la obra, así como
derechos no se ven de manera alguna afectados por lo anteriormente
expuesto.
Esta nota no es la licencia completa de la obra, sino una traducción del resumen en formato
comprensible del texto legal. La licencia original completa (jurídicamente válida y pendiente
de su traducción oficial al español) está disponible en
http://creativecommons.org/licenses/by-nc-sa/2.0/legalcode
<3>
íínnddiiccee
índice.............................................................................................. 5
modelos lógicos de datos............................................................... 7
esquema canónico .............................................................................. 7
tipos de base de datos ......................................................................... 7
modelo relacional ........................................................................ 11
introducción...................................................................................... 11
tablas ............................................................................................... 12
dominios........................................................................................... 13
claves ............................................................................................... 13
nulos ................................................................................................ 13
restricciones ...................................................................................... 14
las 12 reglas de Codd ....................................................................... 14
paso del esquema ER al modelo relacional................................. 17
transformaciones de entidades fuertes ................................................. 17
transformación de relaciones.............................................................. 17
entidades débiles............................................................................... 19
generalizaciones y especificaciones..................................................... 20
normalización del esquema relacional ....................................... 23
problemas del esquema relacional...................................................... 23
formas normales................................................................................ 23
apéndice: términos técnicos......................................................... 31
<5>
mmooddeellooss llóóggiiccooss ddee ddaattooss
esquema canónico
Mundo
real
Esquema
Conceptual
Esquema
canónico
Esquema
interno
BD
Físical
Modelo
Lógico
Tiene en cuenta
el tipo de DBMS
a utilizar
Ilustración 1, Posición de esquema canónico dentro de los esquema de creación de
una base de datos
El esquema canónico o lógico global, es un esquema que presenta de forma conceptual la
estructura de una base de datos. Es un esquema que depende del tipo de DBMS que
vayamos a utilizar.
Se crea a partir del modelo conceptual (véase el documento Diseño Conceptual de
Bases de Datos en www.jorgesanchez.net/bd). Y serviría para cualquier base de datos
comercial del tipo elegido en el esquema (hay esquemas relacionales, en red,
jerárquicos,...)
tipos de base de datos
jerárquicas
En ellas se organiza la información se organiza con un jerarquía en la que la relación entre
las entidades de este modelo siempre es del tipo padre / hijo. De esta forma hay una
serie de nodos que contendrán atributos y que se relacionarán con nodos hijos de forma
que puede haber más de un hijo para el mismo padre (pero un hijo sólo tiene un padre).
Las entidades de este modelo se llaman segmentos y los atributos campos. La forma
visual de este modelo es de árbol invertido, en la parte superior están los padres y en la
inferior los hijos.
<7>
Diseño conceptual de bases de datos
modelos lógicos de datos
Departamento
Documentos
Personal
Ilustración 2, Ejemplo de esquema jerárquico
Tareas
en red
Se trata de un modelo que se utilizó durante mucho tiempo. Organiza la información en
registros y enlaces. Los registros representan las entidades del modelo entidad /
relación. En los registros se almacenan los datos utilizando atributos. Los enlaces
permiten relacionar los registros de la base de datos.
El modelo en red más aceptado es el llamado codasyl, que durante mucho tiempo se
ha convertido en un estándar.
Las bases de datos en red son parecidas a las jerárquicas sólo que en ellas puede haber
más de un padre. En este modelo se pueden representar perfectamente relaciones varios a
varios. Pero su dificultad de manejo y complejidad hace que se estén abandonando
completamente.
relacionales
Los datos se muestran en forma de tablas y relaciones. Este es el modelo que se comenta
en el presente documento. De hecho es el claramente más popular.
orientadas a objetos
Desde la aparición de la programación orientada a objetos (POO u OOP) se empezó a
pensar en bases de datos adaptadas a estos lenguajes. En estos lenguajes los datos y los
procedimientos se almacenan juntos. Esta es la idea de las bases de datos orientadas a
objetos.
A través de esta idea se intenta que estas bases de datos consiguen arreglar las
limitaciones de las relacionales. Por ejemplo el problema de la herencia, tipos definidos
por el usuario, disparadores almacenables en la base de datos, soporte multimedia...
Se supone que son las bases de datos de tercera generación (la primera fue las bases de
datos en red y la segunda las relacionales), lo que significa que el futuro parece estar a
favor de estas bases de datos. Pero siguen sin reemplazar a las relacionales (aunque cada
vez hay más).
Su modelo conceptual se suele diseñar en UML y el lógico en ODMG 3.0
objeto relacionales
Tratan de ser un híbrido entre el modelo relacional y el orientado a objetos. El problema
de las bases de datos orientadas a objetos es que requieren reinvertir de nuevo para
convertir las bases de datos. En las bases de datos objeto relacionales se intenta conseguir
una compatibilidad relacional dando la posibilidad de integrar mejoras de la orientación a
objetos.
<8>
Copyright-Copyleft: © Jorge Sánchez 2004
Estas bases de datos se basan en el estándar SQL 99 que dictó las normas para estas
bases de datos. En ese estándar se añade a las bases relacionales la posibilidad de
almacenar procedimientos de usuario, triggers, tipos definidos por el usuario, consultas
recursivas, bases de datos OLAP, tipos LOB,...
Las últimas versiones de la mayoría de las grandes bases de datos relacionales (Oracle,
SQL Server, Informix, ...) son objeto relacionales.
<9>
introducción
mmooddeelloo rreellaacciioonnaall
Edgar Frank Codd a finales definió las bases del modelo relacional a finales de los 60.
Trabajaba para IBM empresa que tardó un poco en implementar sus bases. Pocos años
después el modelo se empezó a implementar cada vez más, hasta ser el modelo de bases de
datos más popular.
En las bases de Codd se definían los objetivos de este modelo:
Independencia física. La forma de almacenar los datos, no debe influir en su
manipulación lógica
Independencia lógica. Las aplicaciones que utilizan la base de datos no deben ser
modificadas por que se modifiquen elementos de la base de datos.
Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de los
usuarios y aplicaciones.
Uniformidad. Las estructuras lógicas siempre tienen una única forma conceptual
(las tablas)
Sencillez.
En 1978, IBM desarrolla el lenguaje QBE. Que aproximaba la idea relacional a sus ficheros
VSAM. En 1979 Oracle se convierte en el primer producto comercial DBMS relacional
(RDBMS). En 1980 aparece Ingres que utilizaba el lenguaje Quel que implementaba el
cálculo relacional.
evolución del modelo relacional
Año
1970
1971-72
1973-78
1978
1979
1980
1981
1982
1986
1987
1990
1992
1998
Hecho
Codd publica las bases del modelo relacional
Primeros desarrollos teóricos
Primeros prototipos
Aparece el lenguaje QBE
Aparece Oracle
Aparece Ingres
Aparece SQL
Aparece DB2
ANSI normaliza el SQL (SQL/ANSI)
SQL de ISO
Versión dos del modelo relacional (RM/V2)
Comentarios de: Principios sobre Bases de Datos Relacionales (0)
No hay comentarios