Documente Academic
Documente Profesional
Documente Cultură
[1]
Sistemas Gestores de Bases de Datos
[1.1] datos y archivos
[1.1.1]la necesidad de gestionar informacin
[1.1.3]Sistemas de Informacin
la empresa como sistema
El sistema completo que forma la empresa, por otra parte, se suele dividir en los
siguientes subsistemas:
Hay que hacer notar que cada subsistema se asocia a un departamento concreto
de la empresa.
Sistemas de Informacin
Los sistemas que aglutinan los elementos que intervienen para gestionar la
informacin que manejan los subsistemas empresariales es lo que se conoce como
Sistemas de Informacin. Se suele utilizar las siglas SI o IS (de Information Server)
para referirse a este concepto.
Cada aplicacin almacena y utiliza sus propios datos de forma un tanto catica. La
ventaja de este sistema (la nica ventaja), es que los procesos son independientes
por lo que la modificacin de uno no afecta al resto. Pero tiene grandes
inconvenientes:
En este tipo de sistemas, los datos se centralizan en una base de datos comn a
todas las aplicaciones. Un software llamado Sistema Gestor de Bases de Datos
(SGBD) es el que realmente accede a los datos y se encarga de gestionarlos. Las
aplicaciones que creen los programadores, no acceden directamente a los datos,
de modo que la base de datos es comn para todas las aplicaciones.
De esta forma, hay, al menos, dos capas a la hora de acceder a los datos. Las
aplicaciones se abstraen sobre la forma de acceder a los datos, dejando ese
problema al SGBD. As se pueden concentrar exclusivamente en la tarea de
conseguir una interfaz de acceso a los datos para los usuarios.
Cuando una aplicacin modifica un dato, la modificacin ser visible
inmediatamente para el resto de aplicaciones; ya que todas utilizarn la misma base
de datos.
ventajas
Los SGBD tienen que realizar tres tipos de funciones para ser considerados vlidos.
A continuacin se describen estas tres funciones.
Estructura interna
Estructura conceptual
Estructura externa
Ms adelante se explican estas tres estructuras, relacionadas con las tres formas
(o niveles) de ver la base de datos.
Un metadato nos permite para saber a qu informacin real se refiere cada dato.
Por ejemplo: Snchez, Rodrguez y Crespo son datos. Pero Primer Apellido es un
metadato que, si est correctamente creado, nos permite determinar
que Snchez, Rodrguez y Crespo son primeros apellidos.
Dicho de otra forma, sin los metadatos, no podramos manejar los datos como
informacin relevante. Por ello son fundamentales. Son, de hecho, la base de la
creacin de las bases de datos.
funcin de manipulacin
Aadir datos
Eliminar datos
Modificar datos
Consultar datos
funcin de control
Mediante esta funcin los administradores poseen mecanismos para proteger los
datos. De manera que se permite a cada usuario ver ciertos datos y otros no, o bien
usar ciertos recursos concretos de la base de datos y prohibir otros. Es decir, es la
funcin encargada de establecer los permisos de acceso a los elementos que
forman parte de la base de datos.
Nivel externo. Esta es la visin del software que tienen los usuarios
Nivel interno. Visin de los creadores del software, que determina su forma
de funcionar.
Nivel fsico. Nos permite saber la forma en la que est almacenada la base
de datos. Por ejemplo en qu discos duros, qu archivos utiliza, de qu tipo
son los archivos, bajo qu sistema operativo, Este nivel es el que est ms
cercano a la visin de la base de datos que posee la computadora, por lo que
es absolutamente dependiente del hardware y el software (especialmente del
Sistema Operativo).
Nivel interno. Un poco ms cercano a la visin que tenemos las personas.
Permite observar la base de datos como un conjunto de estructuras que
relacionan la informacin humana con la informacin digital. A este nivel no
se depende del hardware concreto que tengamos; es decir, no se habla de
discos, servidores, archivos, sino de las estructuras que disponemos en
nuestro SGBD en particular para organizar los datos.
Nivel conceptual. Es el nivel de mayor abstraccin y el ms importante. Se
trata de una visin organizativa de los datos independientes tanto del
hardware como del software que tengamos. Es el plano o modelo general de
la base de datos y a este nivel es al que trabajan las o los analistas y
diseadores cuando crean el primer esquema de la base de datos. En ningn
momento queda influido por el SGBD en particular que usemos.
Nivel externo. Se trata de la visin de los datos que poseen los usuarios y
usuarias finales de la base de datos. Esa visin es la que obtienen a travs
de las aplicaciones. Las aplicaciones creadas por los desarrolladores
abstraen la realidad conceptual de modo que el usuario no conoce las
relaciones entre los datos, como tampoco conoce dnde realmente se estn
almacenando los datos. Es la forma en la que cualquier persona desea
manejar una base de datos a travs de formularios, informes, listas,
Este modelo dict que podemos pasar de unos modelos a otros de manera casi
automtica utilizando un software adecuado. El modelo ANSI llama a ese
software procesador de modelosy hoy en da es lo que se conoce
como herramientas CASE (Computer Aided for Software
Engineering, Asistente Computerizado para Ingeniera del Software). Para cada
nivel se realizan esquemas relacionados con ellos. As hay esquemas
externos (varios), esquema conceptual, esquema interno y esquema fsico que
forman todos los aspectos de la base de datos.
Las dos columnas que aparecen en la imagen reflejan dos fronteras a tener en
cuenta:
informticos
fase de manipulacin:
[1]El usuario realiza una operacin sobre la base de datos (una consulta, modifica
o aade un dato, etc.)
[4]EL SGBD se comunica con el Sistema Operativo para pedir que acceda al disco
(estamos, por lo tanto ya en el nivel fsico) y recoja los datos requeridos
(siempre con ayuda del Diccionario de Datos).
[6]El SGBD transforma los datos internos en datos conceptuales y los entrega a la
aplicacin.
[7]La aplicacin muestra los datos habindolos traducido a una forma (externa)
amigable y apta para ser entregada al usuario que hizo la peticin.
[1.3.6]estructura multicapa
El proceso que realiza un SGBD para acceder a los datos est en realidad formado
por varias capas que actan como interface. El usuario nunca accede a los datos
directamente. Estas capas son las que consiguen implementar los niveles de
abstraccin de la base de datos.
Fue el propio organismo ANSI (en su modelo ANSI/X3/SPARC) la que introdujo una
mejora de su modelo de bases de datos en 1988 a travs de un grupo de trabajo
llamado UFTG (User Facilities Task Group, grupo de trabajo para las facilidades de
usuario). Este modelo toma como objeto principal al usuario habitual de la base de
datos y modela el funcionamiento de la base de datos en una sucesin de capas
cuya finalidad es ocultar y proteger la parte interna de las bases de datos.
Desde esta ptica, para llegar a los datos hay que pasar una serie de capas que
desde la parte ms externa poco a poco van entrando ms en la realidad fsica de
la base de datos. Esa estructura se muestra en la Ilustracin 5.
Este marco sigue teniendo vigencia actualmente e indica que el acceso a los datos
no es instantneo, que los datos estn protegidos de los usuarios que pasan (sin
saberlo) por varias capas de proceso antes de que sus peticiones a la base de datos
sean atendidas.
diccionario de datos
Se trata de una estructura interna del SGBD que contiene todos los metadatos. Esta
estructura es la que permite pasar de un nivel a otro.
ncleo
sistema operativo
Es una capa externa al software SGBD pero es la nica capa que realmente accede
a los datos en s. En realidad los SGBD no acceden directamente al disco, sino que
piden al Sistema Operativo que lo haga, ya que es el que maneja el sistema de
discos.
[1]Los usuarios utilizan una aplicacin para acceder a los datos. Estamos en el
nivel externo de la base de datos, por lo que la propia aplicacin traduce la
peticin que hizo el usuario de forma sencilla, a una peticin entendible por la
capa de acceso a los datos.
[6]El SGBD tambin revisa el diccionario de datos (si la peticin es correcta) para
saber con exactitud en qu archivos y en qu parte dentro de ellos, se
encuentran los datos requeridos
[7]Con la informacin sobre dnde estn los datos, el SGBD hace una peticin al
Sistema Operativo, que es el que tiene capacidad realmente de acceder a los
archivos de datos. Por ello la peticin del SGBD se traduce al formato utilizado
por el Sistema Operativo.El Sistema Operativo accede a los datos.
Es un modelo que slo se utiliza con bases de datos pequeas y poca cantidad de
conexiones. La popular Access de Microsoft es considerada un sistema gestor
monocapa (aunque tiene algunas posibilidades para utilizar en dos capas).
SGBD bicapa
Usa un modelo de funcionamiento tipo cliente/servidor. La base de datos y el
sistema gestor se alojan en un servidor al cual se conectan los usuarios desde
mquinas clientes. Un software de comunicaciones se encarga de permitir el acceso
a travs de la red. Los clientes deben instalar el software cliente de acceso segn
las instrucciones de configuracin del administrador.
En este caso entre el cliente y el servidor hay al menos una capa intermedia (puede
haber varias). Esa capa (o capas) se encarga de recoger las peticiones de los
clientes y luego de comunicarse con el servidor (o servidores) de bases de datos
para recibir la respuesta y enviarla al cliente.
El caso tpico es que la capa intermedia sea un servidor web, que recibe las
peticiones a travs de aplicaciones web; de este modo para conectarse a la base
de datos, el usuario solo requiere un navegador web, que es un software muy
habitual en cualquier mquina y por lo tanto no requiere una instalacin de software
adicional en la mquina cliente.
Este modelo es el que ms se est potenciando en la actualidad por motivos de
seguridad y portabilidad de la base de datos.
Como se ha visto en los apartados anteriores, resulta que cada SGBD puede utilizar
un modelo diferente para los datos. Por lo que hay modelos conceptuales diferentes
segn que SGBD utilicemos. Esto da lugar a un diagrama de trabajo para los
profesionales de la base de datos que permite saber qu esquemas hay que realizar
(y en qu orden) para crear una base de datos.
El punto de partida es el uso en el mundo real que tendr la base de datos. Ese
punto es en el que estn los usuarios y es crucial tenerle muy claro. El punto final
es el almacenamiento fsico de la base de datos.
En este esquema aparece el llamado Esquema lgico, que permite pasar de forma
ms gradual del esquema conceptual al esquema interno.
Por lo tanto la diferencia entre los distintos SGBD est en que proporcionan
diferentes modelos lgicos.
Modelo relacional
Modelo Codasyl
Modelo Jerrquico
[1.4.2]modelo jerrquico
Era utilizado por los primeros SGBD, desde que IBM lo defini para su IMS
(Information Management System, Sistema Administrador de Informacin) en 1970.
Se le llama tambin modelo en rbol debido a que utiliza una estructura en rbol
para organizar los datos.
La forma visual de este modelo es de rbol invertido, en la parte superior estn los
padres y en la inferior los hijos.
Este esquema est en absoluto desuso ya que no es vlido para modelar la mayora
de problemas de bases de datos. Su virtud era la facilidad de manejo ya que slo
existe un tipo de relacin (padre/hijo) entre los datos; su principal desventaja es que
no basta para representar la mayora de relaciones. Adems no mantena la
independencia con la fsica de la base de datos.
[1.4.4]modelo relacional
A travs de este concepto se intenta que estas bases de datos consigan arreglar
las limitaciones de las relacionales. Por ejemplo el problema de la herencia (el hecho
de que no se puedan realizar relaciones de herencia entre las tablas), tipos definidos
por el usuario, disparadores (triggers) almacenables en la base de datos, soporte
multimedia...
Se supone que son las bases de datos de tercera generacin (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 son el tipo de base de datos que ms est creciendo en los
ltimos aos.
Sus ventajas estn en el hecho de usar la misma notacin que la de los programas
(lo que facilita la tarea de su aprendizaje a los analistas y desarrolladores) y que el
significado de los datos es ms completo. Lo malo es que no posee un lenguaje tan
poderoso como el modelo relacional para manipular datos y metadatos, que tiene
ms dificultades para establecer reglas a los datos y que al final es ms complejo
para manejar los datos.
Estas bases de datos se basan en el estndar ISO SQL 2000 y los siguientes. En
ese estndar se aade 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,...
Bajo este nombre se agrupan las bases de datos (con arquitecturas muy diversas)
pensadas para grabar los datos de manera veloz para as poder atender a miles y
miles de operaciones DML de escritura de datos. Es decir, es el modelo de las bases
de datos que se utilizan en los grandes servicios de Internet
(como twitter, Facebook, Amazon,).
La razn de su xito actual es que, en las bases de datos que reciben miles de
peticiones por minuto, los modelos anteriores no daran abasto al tener que validar
los datos de forma intensa. Por lo que, la mayora, usan otro tipo de esquemas
conceptuales e internos para poder atender a estas peticiones.
En las bases de datos NoSQL (llamadas as porque rompen con el lenguaje SQL y,
por lo tanto, con el modelo relacional) prima la velocidad. Por ello se almacenan los
datos usando formatos de datos compatibles con los lenguajes XML y/o JSON que
permiten trabajar en modo texto con los datos y facilitar el transporte de los mismos
por la red.
apndices
[a1] archivos
[a1.1]introduccin
Cuando podemos distinguir datos referidos a una misma propiedad real a la que
podemos poner un nombre, hablamos de campos.
As: Snchez, Rodrguez, Serrat y Crespo son datos que perfectamente podran
encajar en un campo llamado Primer Apellido.
Los datos que se refieren al mismo elemento real (una persona, una factura, un
movimiento bancario,) se agrupan en registros. En un fichero de datos
personales, cada registro sera una persona; cada campo sera cada propiedad
distinguible en la persona.
[a1.3]tipos de archivos
ficheros secuenciales
ventajas
Consultas muy lentas al tener que leer todos los registros anteriores en el
orden del archivo respecto al que queremos leer. Es decir, que si queremos
leer el quinto registro, hay que leer los cuatro anteriores.
Algoritmos de lectura y escritura complejos. No es fcil hacer operaciones
avanzadas con los datos
No se pueden eliminar registros del fichero (se pueden marcar de manera
especial para que no sean tenidos en cuenta, pero no se pueden borrar)
El borrado provoca archivos que no son compactos
La ordenacin de los datos requiere leer todos los datos, reorganizarlos en
memoria y volver a grabarles en el archivo en el orden correcto. Se trata de
una operacin excesivamente lenta
ficheros de acceso directo o aleatorio
En estos ficheros se puede leer una posicin concreta directamente; bastar saber
la posicin exacta (normalmente en bytes) del dato a leer para obtenerle. Es decir,
posicionarnos en el quinto registro se hara de golpe, con una sola instruccin. Lo
nico que necesitamos saber el tamao de cada registro, que en este tipo de
ficheros debe de ser el mismo. Suponiendo que cada registro ocupa 100 bytes, el
quinto registro comenzar en la posicin 400. A partir de esa posicin podremos
leer todos los datos del registro.
ventajas
Cuando aparece un nuevo registro, se aade al final del archivo, pero los punteros
se reordenan para que se mantenga el orden.
ventajas
No se borran los registros, sino que se marcan para ser ignorados. Por lo que
se malgasta espacio
Aadir registros o modificar las claves son operaciones que requieren
recalcular los punteros por lo que llevan ms tiempo que en los casos
anteriores
ficheros secuenciales indexados
Se utilizan dos ficheros para los datos, uno posee los registros almacenados de
forma secuencial, pero que permite su acceso aleatorio. El otro posee una tabla con
punteros a la posicin ordenada de los registros. Ese segundo fichero es
el ndice, una tabla con la ordenacin deseada para los registros y la posicin que
ocupan en el archivo.
El archivo de ndices posee unas cuantas entradas slo en las que se indica la
posicin de ciertos valores claves en el archivo (cada 10, 15 ,20,... registros del
archivo principal se aade una entrada en el de ndices). El archivo principal tiene
que estar siempre ordenado y as cuando se busca un registro, se busca su valor
clave en la tabla de ndices, la cual poseer la posicin del registro buscado. Desde
esa posicin se busca secuencialmente el registro hasta encontrarlo.
Para no tener demasiados archivos en overflow (lo que restara velocidad ya que no
utilizaramos el archivo de ndices que es el que da velocidad), cada cierto tiempo
se reorganiza el archivo principal, ordenando los datos en el orden correcto y
recalculando el archivo de ndices. Ejemplo:
ventajas
Para un uso ptimo hay que reorganizar el archivo principal cada cierto
tiempo y esta operacin es muy costosa ya que hay que reescribir de nuevo
y de forma ordenada todo el archivo con el rea primeria, adems de
reorganizar el rea de ndices y eliminar el fichero de desbordamiento. Es tan
costosa que se hace muy poco a menudo, pero en archivos de datos que se
modifican muy a menudo, no reorganizar provocara un rea de
desbordamiento enorme y perderamos las ventajas de este modelo.
ficheros indexado-encadenados
Utiliza punteros e ndices, es una variante encadenada del caso anterior. Hay un
fichero de ndices equivalente al comentado en el caso anterior y otro fichero de tipo
encadenado con punteros a los siguientes registros. La diferencia est en que este
segundo fichero que contiene el rea primaria de los datos, no est ordenado
secuencialmente, sino que el orden se realizara recorriendo un puntero (como en
el caso de los ficheros secuencialmente encadenados).
ventajas
En otros casos los datos antes de ser eliminados del todo pasan a un fichero
especial (conocido como papelera) en el que se mantienen durante cierto tiempo
para su posible recuperacin.
Por ello se requiere compactar los datos. Esta tcnica permite eliminar los huecos
interiores a un archivo. Las formas de realizarla son:
cifrado de datos
Es uno de los aspectos que todava sigue pendiente. Desde la aparicin de los
primeros gestores de base de datos se intent llegar a un acuerdo para que hubiera
una estructura comn para todos ellos, a fin de que el aprendizaje y manejo de este
software fuera ms provechoso y eficiente.
El acuerdo nunca se ha conseguido del todo, no hay estndares aceptados del todo.
Aunque s hay unas cuentas propuestas de estndares que s funcionan como tales.
[a2.1]organismos de estandarizacin
Los intentos por conseguir una estandarizacin han estado promovidos por
organismos de todo tipo. Algunos son estatales, otros privados y otros promovidos
por los propios usuarios. Los tres que han tenido gran relevancia en el campo de
las bases de datos son ANSI/SPARC/X3, CODASYL y ODMG (ste slo para las
bases de datos orientadas a objetos). Los organismos grandes (que recogen
grandes responsabilidades) dividen sus tareas en comits, y stos en grupos de
trabajo que se encargan de temas concretos.
[a2.2]ISO/JTC1/SC21/WG3
Entre los trabajos que realiza el grupo WG3 est la normalizacin de SQL, adems
de otras normas de estandarizacin.
[a2.3]DBTG/Codasyl
[a2.4]ANSI/X3/SPARC
En la actualidad ANSI para Estados Unidos e ISO para todo el mundo son nombres
equivalentes en cuanto a estandarizacin de bases de datos, puesto que se habla
ya de un nico modelo de sistema de bases de datos.
[a2.5]modelo ANSI/X3/SPARC
El esquema interno contiene informacin sobre cmo estn almacenados los datos
en disco. Es el esquema ms cercano a la organizacin real de los datos.
La interfaz 3 permite mostrar los datos del esquema conceptual a los otros dos
administradores: el administrador de la base de datos y el de aplicaciones (el
desarrollador). Mediante esta informacin construyen los esquemas internos y
externos mediante las interfaces 4 y 5 respectivamente, los procesadores de estos
esquemas almacenan la informacin correspondiente a estos esquemas en los
metadatos (interfaces 6 y 7).
En la fase de manipulacin el usuario puede realizar operaciones sobre la base de
datos usando la interfaz 8 (normalmente una aplicacin) esta peticin es
transformada por el transformador externo/conceptual que obtiene el esquema
correspondiente ayudndose tambin de los metadatos (interfaz 9). El resultado lo
convierte otro transformador en el esquema interno (interfaz 10) usando tambin la
informacin de los metadatos (interfaz 11). Finalmente del esquema interno se pasa
a los datos usando el ltimo transformador (interfaz 12) que tambin accede a los
metadatos (interfaz 13) y de ah se accede a los datos (interfaz 14). Para que los
datos se devuelvan al usuario en formato adecuado para l se tiene que hacer el
proceso contrario (observar dibujo).
Manual de Gestin de Bases de Datos
[2]
Modelo Entidad/Relacin
PUBLICIDAD
[1.1] introduccin
Ya hemos visto anteriormente que existen varios esquemas a realizar para poder
representar en forma de base de datos informtica un problema procedente del
ordenador.
En 1976 y 1977 dos artculos de Peter P. Chen detallaron un modelo para realizar
esquemas con la idea de proveer una visin unificada de los datos de un sistema
de base de datos. Este modelo es el modelo
entidad/interrelacin (entity/relationship en ingls) que actualmente se conoce
ms con el nombre de entidad/relacin (Modelo E/R o ME/R, en ingls E/RM).
Hay que insistir en que este modelo no tiene nada (o muy poco) que ver con las
bases de datos relacionales, los esquemas entidad/relacin se pueden utilizar (en
principio) con cualquier SGBD ya que son conceptuales. Puede que nos confunda
el uso de la palabra relacin, ya que est tambin presente en el modelo relacional
de las bases de datos de Edgar F. Codd; pero el concepto de relacin en este
esquema no tiene nada que ver con la idea de relacin expuesta por Codd en su
modelo relacional.
Se trata de cualquier objeto u elemento (real o abstracto) acerca del cual se pueda
almacenar informacin en la base de datos. Es decir cualquier elemento informativo
que tenga importancia para una base de datos.
Ejemplos de entidades son: una persona que se llama Pedro, la factura nmero
32456, el coche matrcula 3452BCW, etc. Una entidad no es un propiedad concreta,
sino un objeto que puede poseer mltiples propiedades (atributos). Es
decir Snchez es el contenido del atributo Primer Apellido de la entidad que
representa a la persona Pedro Snchez Crespo con DNI 12766374,...
Las entidades son objetos completos, con todos los valores de las propiedades de
dicho objeto. Descubrir entidades es la tarea principal del diseo de esquemas
Entidad/Relacin
[1.2.2]conjuntos de entidades
Las entidades que poseen las mismas propiedades, porque se refieren al mismo
tipo de ente, forman conjuntos de entidades. Ejemplos de conjuntos de entidades
son: personas, facturas, coches,...
[1.3] relaciones
[1.3.1]qu es una relacin
Una regla fundamental es que en una relacin no pueden aparecer dos veces
relacionados los mismos ejemplares de cada entidad. Una relacin estable una
asociacin entre un ejemplar de una entidad con un ejemplar de otra entidad, una
vez. Es decir; en el ejemplo anterior, en la relacin no puede aparecer dos veces el
mismo trabajador asociado al mismo trabajo.
Si detectamos que nuestra base de datos requiere asociar dos veces a los mismos
ejemplares y solo hemos hecho una relacin, no hay que dudar: nuestro diseo no
es correcto.
[1.3.2]representacin grfica
[1.3.3]ejemplos de relaciones
Indica el nmero de relaciones en las que una entidad puede aparecer. Se anota en
trminos de:
[1.3.5]roles
A veces en las lneas de la relacin se indican roles. Los roles representan el papel
que juega una entidad en una determinada relacin. Son imprescindibles cuando
las relaciones son complejas, ya que ayudan a entender el sentido de la relacin.
Ejemplo:
[1.4] atributos
mltiples
Otra forma de representar atributos que pueden tomar mltiples valores es sta:
opcionales
Lo son si pueden tener valor nulo (es decir, si pueden quedar vacos, sin valor):
Se trata de uno o ms atributos de una entidad cuyos valores son nicos en cada
ejemplar de la entidad. Es decir todos los elementos de una entidad tienen en ese
(o esos) atributo, un valor diferente (y nunca vaco).
Para que un atributo sea considerado un buen identificador tiene que cumplir con
los siguientes requisitos:
[4]Puede haber varios identificadores candidatos, en ese caso hay que elegir el
que tenga ms importancia en nuestro sistema (el resto pasan a
ser alternativos).
[1.4.3]identificador alternativo
Se trata de uno o ms atributos en la entidad cuyos valores son nicos para cada
ejemplar de una entidad, pero que no son identificadores ya que hay atributos que
resultan ser mejores identificadores. Los identificadores alternativos se marcan con
un subrayado discontinuo (ejemplo de subrayado discontinuo)
[1.4.4]eleccin de buenos identificadores principales
Como hemos visto en los dos puntos anteriores, es habitual disponer de varios
identificadores candidatos para la misma entidad. Por ello cul elegir como
identificador principal?
[1]Siempre debemos elegir el candidato que tenga ms que ver con el problema
que estamos resolviendo. Es decir entre un documento nacional de identidad y
un cdigo que slo se usa en la empresa (cdigo cliente, cdigo de socio, n
de personal,), hay que elegir la segunda opcin. La razn es que seguro que
en la empresa se tienen ms en consideracin este segundo nmero. Como
razn tcnica : los cdigos internos siempre son ms cortos que los generales.
[3]En todo caso, cuando pasemos el modelo E/R a su forma lgica (por ejemplo
utilizando el modelo relacional) podemos cambiar de idea respecto al
identificador; por lo que lo dicho en el apartado anterior puede no ser tenido en
cuenta.
[1.5.1]entidades dbiles
Se dice que una entidad dbil es aquella cuya existencia depende de otra
(considerada su entidad fuerte). Se trata de entidades totalmente supeditadas a
otras, de modo que si un ejemplar de la entidad fuerte desaparece, todos los
ejemplares de la entidad dbil relacionados, desparacern tambin del sistema.
Las entidades dbiles ocurren cuando hay una entidad ms fuerte de la que
dependen, en el sentido de que la propia existencia de la entidad dbil est
supeditada a la existencia de su entidad fuerte. Lgicamente tienen relacin con esa
entidad, y es esa relacin es la que marca el hecho de que una entidad es dbil y
la otra fuerte.
En la Ilustracin 27, la relacin entre las tareas y los trabajos es 1 a n (cada trabajo
se compone de n tareas). Una tarea obligatoriamente est asignada a un trabajo,
es ms no tiene sentido hablar de tareas sin hablar del trabajo del que forma parte.
La relacin que tienen las tareas con los trabajos es de debilidad, puesto que no
podemos referirnos a una tarea de forma independiente.
Son relaciones que indican relaciones que permiten distinguir tipos de entidades,
es decir tendremos entidades que son un (is a, en ingls) tipo de entidad respecto
a otra entidad ms general.
Las cardinalidades que aparecen en el esquema anterior son las habituales (de
hecho no se suele indicar ya que se sobrentiende), pero cualquier cardinalidad sera
vlida.
Cuando los diseadores principiantes conocen las relaciones ISA, suele ocurrir un
exceso de uso de ellas en los diseos. No es conveniente abusar de este tipo de
relaciones, ya que aumentan en exceso el nmero de entidades.
[1.5.4]exclusividad
Por ejemplo:
En la Ilustracin anterior, solo puede ocurrir a ala vez una de las dos
relaciones: Participar o Competir. Significa que en las competiciones o participan
personas o compiten equipos. Es verdad, que en este caso a lo mejor se podra
generalizar indicando una superentidad llamada Competidores para las personas y
los equipos, que sera mucho ms clarificadora.
Realmente lo que hay que matizar bien en las relaciones ISA es la forma de
relacionarse la superentidad con la subentidad. Eso se matiza en base a dos
conceptos:
Las herramientas CASE actuales no suelen utilizar la forma de dibujar del modelo
clsico. Las razn fundamental est en la dificultad de dibujar los atributos ya que
ocupan un excesivo espacio en el diagrama. Como, adems, los analistas estn
acostumbrados a representar diagramas lgicos basados en el modelo relacional
de bases de datos, se usan diagramas entidad relacin en los que la representacin
de entidades y relaciones se hace de esta forma:
Las entidades son rectngulos en los que la primera fila se dedica al nombre
de la entidad y las siguientes filas a cada uno de sus atributos.
Las relaciones son rombos y sus atributos cuelgan en una caja que contiene
el nombre de dichos atributos. En algunos casos ni siquiera se representa la
relacin con un rombo, sino que simplemente se indica su nombre.
Ejemplo:
En las entidades dbiles es el rombo de la relacin el que se dibuja con borde
doble y la lnea que va hacia la entidad dbil, tambin se dibuja doble.
Finalmente las relaciones de tipo ISA (relaciones de herencia o
generalizaciones) se representan de la misma forma, con un tringulo
(aunque en estos diagramas el vrtice est al revs)
Sin embargo, Edgar Frank Codd defini las bases del modelo relacional a finales
de los 60. En 1970 publica el documento A Relational Model of data for Large
Shared Data Banks (Un modelo relacional de datos para grandes bancos de datos
compartidos). Actualmente se considera que ese es uno de los documentos ms
influyentes de toda la historia de la informtica. Lo es porque en l se definieron las
bases del llamado Modelo Relacional de Bases de Datos. Anteriormente el nico
modelo terico estandarizado era el modelo Codasyl que se utiliz masivamente
en los aos 70 como paradigma del modelo en red de bases de datos.
Codd se apoya en los trabajos de los matemticos Cantor y Childs (cuya teora de
conjuntos es la verdadera base del modelo relacional). Segn Codd, los datos se
agrupan en relaciones(actualmente llamadas tablas), las cuales son una
estructura que aglutina datos referidos a una misma entidad de forma organizada.
Las relaciones, adems, estructuran los datos de forma independiente respecto a
su almacenamiento real en la computadora. Es decir, es un elemento conceptual,
no fsico.
No hay que confundir la idea de relacin segn el modelo de Codd, con lo que
significa una relacin en el modelo Entidad/Relacin de Chen. No tienen nada que
ver
Puesto que una relacin se representa como una tabla; podemos entender que las
columnas de la tabla son los atributos; y las filas, las tuplas.
[3.2.2]tupla
Se llama tupla a cada uno de los elementos de una relacin. Hablando en trminos
de tabla, una tupla es una fila. Las tuplas, en el modelo relacional, cumplen estas
premisas:
Un dominio contiene todos los posibles valores que puede tomar un determinado
atributo. Dos atributos distintos pueden tener el mismo dominio.
Un dominio esta formado por un conjunto finito de valores del mismo tipo. A los
dominios se les asigna un nombre y as podemos referirnos a ese nombre en ms
de un atributo, facilitando la aplicacin de los mismos.
Por ejemplo si tenemos un atributo llamado Fecha_nac que sirve para almacenar
fechas de nacimiento, podremos entender que el valor Hola no tiene sentido en
ese atributo. Tcnicamente se dice que Hola no pertenece al dominio de las fechas.
S pertenece el valor: 3/9/1982. Una expresin como 34/3/1982 tampoco pertenece
al dominio, no es vlida (no hay meses de 34 das). Es decir, un dominio expresa
de forma inequvoca los valores posibles dentro de un atributo.
Se confunde la idea entre tipo de datos y dominio. Lo cierto es que son conceptos
semejantes, pero no iguales. La diferencia es que el dominio impone ms
restricciones que los tipos de datos.
Por ejemplo, el texto Hola, est claro que no puede ser un valor para el
atributo fecha_nac, porque no es una fecha. Sin embargo si tuviramos un atributo
llamado pas el texto Holatampoco forma parte de los valores posibles para ese
atributo, porque Hola no es un pas; y, sin embargo, tanto la expresin Hola como
el nombre de los pases pertenecen al mismo tipo de datos (son textos).
Otro ejemplo de dominio: el que hace que un valor para el atributo dni slo se
considere perteneciente a su dominio si tiene ocho nmeros, una letra y adems la
letra cumple una regla matemtica concreta sobre los nmeros.
[3.2.5]cardinalidad
Nmero de tuplas de una relacin, o nmero de filas de una tabla. Hay tablas que
pueden tener una enorme cardinalidad: cientos, miles e incluso millones de filas.
[3.2.6]sinnimos
Persistentes. Son las tablas que crean los usuarios (normalmente los
administradores). Slo pueden ser borradas por los usuarios Se dividen en
tres tipos:
o Bases. Son tablas independientes. Se crean indicando su estructura
y despus se les aaden los datos. Cuando alguien habla de tablas,
se refiere a este tipo de tablas.
Las tablas base contienen tanto datos como metadatos. Por ello
(debido a los datos) pueden ocupar mucho espacio en disco. Son el
fundamento del modelo relacional
Hay tablas temporales de tipo base, vista o instantneas; al igual que ocurre
con las persistentes.
[3.2.9]claves
clave candidata
clave primaria
Clave candidata que se escoge como identificador de la tabla (para identificar cada
fila de la misma). Se elige como primaria la candidata que identifique mejor a cada
tupla en el contexto de la base de datos. Adems se debe dar prioridad a atributos
cuyos dominios sean ms eficientes de cara al tamao que ocupan en disco y a la
facilidad de proceso por parte de la mquina.
Buenos tipos de datos para claves primarias son las fechas, nmeros enteros y
textos, si son cortos y de tamao fijo.
clave alternativa
Cualquier clave candidata que no es elegida como primaria. Hay que tenerlas en
cuenta para, al menos, aplicar las restricciones correspondientes (se explican ms
adelante).
Son los datos de atributos de una tabla cuyos valores estn relacionados con
atributos de otra tabla. Por ejemplo en la tabla equipos tenemos estos datos:
Equipo N Equipo
Real Madrid 1
F.C. Barcelona 2
Athletic Bilbao 3
Ese significado tambin se usa en las bases de datos pero, en este caso, para
indicar la ausencia de valor en un atributo. Un atributo null, es un atributo vaco.
Para Codd el nulo era un valor fundamental ya que otorga de significado al atributo
tanto como si tuviera un valor numrico o textual.
Por ejemplo, un valor null puesto en una clave secundaria, indica que la fila que
donde se ha puesto ese valor, no tiende ninguna clave principal asociada. En un
atributo para indicar el telfono de una persona, significara que esa persona no
tiene telfono.
Es importante indicar que el texto vaco , no significa lo mismo que el valor nulo.
Tampoco el valor numrico cero (0) significa nulo.
Puesto que los nulos se utilizan continuamente, resulta imprescindible saber cmo
acta cuando se emplean operaciones lgicas sobre ellos. Eso significa definir un
tercer valor en la lgica booleana, adems de los clsicos verdadero y falso. Un
valor nulo no es ni verdadero ni falso (se suele interpretar como un quizs, o usando
la aritmtica clsica en valores lgicos, el 1 es verdadero, el 0 falso y el 0,5 nulo).
Se utiliza un operador en todas las bases relacionales llamado es nulo (is null) que
devuelve verdadero si el atributo con el que se compara tiene valor nulo.
[3.3] restricciones
Se trata condiciones de obligado cumplimiento para que un dato forme parte de una
tabla
[3.3.1]inherentes
Son aquellas que no requieren que se establezcan de forma explcita, sino que son
definidas por el propio hecho de que la base de datos sea relacional. Las ms
importantes son:
Esta restriccin (adems de marcar los datos identificativos de una tabla) prohbe
que las columnas que forman la clave primaria puedan contener valores repetidos
en distintas filas o que queden vacas (nulos) en alguna fila. Es decir el contenido
de las claves primarias es nico y distinto de nulo.
Prohbe que el atributo marcado de esta forma quede vaco (es decir impide que
pueda contener el valor nulo, null) en alguna fila. Tambin se debe de indicar en las
columnas que son clave alternativa.
Salvo en algunas bases de datos (muy pocas), no es posible marcar esta restriccin,
que indicara sobre una o ms columnas, el hecho de que no pueden repetir valores
ni quedar vacas en cada fila. Es decir, restringen igual que las claves principales,
pero, en este caso, no son las idneas para identificar cada fila y por ello habr otra
clave principal.
Un conjunto de atributos que forman una clave alternativa poseern las restricciones
de unicidad (unique) y obligatoriedad (not null)
Sirve para indicar una clave externa (tambin llamada secundaria o fornea) sobre
uno o ms atributos. Los atributos marcados de esta forma slo podrn contener
valores que estn relacionados con la clave principal de la tabla que relacionan
(llamada tabla principal). Dichos atributos s podrn contener valores nulos.
Alquileres
Cod_alquiler Fecha cod_cliente
1 12/9/2008 121
2 12/9/2008 121
3 15/9/2008 97
4 16/9/2008 113
5 16/9/2008 129
Clientes
Nombre Apellidos Cod_cliente
Arturo Crespo 97
Sara lvarez 113
Josu Lopetegi 121
Alba Pereira 123
Gonzalo Prez 129
Para solventar esta situacin se puede hacer uso de estas polticas al crear la
restriccin:
No todas las bases de datos admiten todas estas posibles polticas a aplicar en
operaciones de actualizar o eliminar. Adems podemos indicar una poltica al
actualizar y otra al eliminar.
A veces las reglas implican a varias columnas, como por ejemplo que la fecha de
inicio sea mayor que la fecha final.
disparadores o triggers
Son restricciones ms complejas presentes en sistemas avanzados de bases de
datos. Se trata de cdigo almacenado en la base de datos, cuyas instrucciones se
ejecutan automticamente cuando ocurre un determinado evento (aadir una fila,
modificar filas, iniciar sesin por parte del usuario,...).
Los triggers permiten realizar restricciones muy potentes, pero son las restricciones
ms complejas de definir ya que implican conocimientos de programacin.
Preocupado por los productos que decan ser sistemas gestores de bases de datos
relacionales (RDBMS) sin serlo, Codd publica 12 reglas que debe cumplir todo
Sistema Gestor de Bases de Datos para ser considerado relacional ; lo hace en el
ao 1985.
Las doce reglas en la prctica las cumplen pocos sistemas relacionales, pero s los
mejores. El inters actual de estas reglas, cuando el propio modelo relacional se
est revisando, es que permiten detallar la manera de funcionar de un sistema de
bases de datos relacional.
Disear bases de datos es un proceso metdico que parte del esquema conceptual.
Pero que luego requiere realizar al menos dos esquemas ms para acercarnos a la
forma final en la que el ordenador representar la base de datos. El diagrama
comentado en los apartados anteriores es el siguiente:
TABLA(Columna1, Columna2,.)
Ejemplo:
En ese tipo de esquemas es difcil ver las relaciones en los datos, algo que s se
ve muy bien en los esquemas entidad relacin. Por ello se suelen complementar
los esquemas clsicos con lneas y diagramas que representan esa informacin.
[4.2.2]grafos relacionales
Es un esquema relacional en el que hay lneas que enlazan las claves principales
con las claves secundarias para representar mejor las relaciones. A veces se
representa en forma de nodos de grafos y otras se complementa el clsico.
Ejemplo:
Hay quien los llama esquemas entidad/relacin relacionales por su similitud con
los esquemas entidad/relacin. Lo cierto es que intentan representar todo lo que los
esquemas conceptuales son capaces de representar y adaptarlo a las premisas del
Modelo Relacional.
En cualquier caso tampoco hay un estndar unnimemente aceptado para este tipo
de notacin.
completando esquemas
Sin duda los esquemas ms completos son los que reflejan no slo las
cardinalidades sino tambin todas las restricciones (e incluso los tipos de datos,
aunque esto ya es una competencia del esquema interno). Vase el esquema de
la Ilustracin 43. En ese esquema los smbolos funcionan de esta forma:
Adems los campos que estn el final de una flecha son claves secundarias.
En el esquema anterior las flechas representan cardinalidades n y los crculos
cardinalidades de tipo cero. Las de tipo uno no tienen ningn smbolo asignado. A
este tipo de diagramas (los de flechas y ceros) se les llama diagramas en notacin
Bachman.
[4.3.2]transformacin de relaciones
Hay que diferenciar cada tipo de relacin. Por ello se estudian a continuacin todos
los casos
Hay que tener cuidado con las cardinalidades mnimas. La razn, es que en el dibujo
final, lo que era una sola relacin se convierte en dos relaciones, ya que lo que se
indican en un diagrama relacional son las relaciones entre las tablas y ahora habr
tres tablas.
relaciones de orden n
Las relaciones ternarias, cuaternarias y n-arias que unen ms de dos entidades, se
transforman en una tabla que contiene los atributos de la relacin, ms los
identificadores de las entidades relacionadas. La clave principal la forman todos los
identificadores juntos.
Las relaciones binarias de tipo uno a varios (slo una cardinalidad mxima vale n)
no requieren ser transformadas en una tabla en el modelo relacional. En su lugar la
tabla del lado varios(tabla relacionada) incluye como clave externa3 el identificador
de la entidad del lado uno(tabla principal).
La cardinalidad mnima hay que revisarla bien ya que en caso de que la clave
externa se relacione obligatoriamente con la principal (cardinalidad mnima de uno),
habr que indicar una restriccin de tipo NOT NULL para indicar esa situacin.
Colocar la clave de una de las entidades como clave externa de la otra tabla
(da igual cul), teniendo en cuenta que dicha clave ser clave
alternativa adems de ser clave secundaria.
Generar una nica tabla con todos los atributos de ambas entidades
colocando como clave principal cualquiera de las claves de las dos
entidades. La otra clave ser marcada como clave alternativa. El nombre de
la tabla sera el de la entidad ms importante desde el punto de vista
conceptual.
La solucin pasa por generar dos tablas: una para cada entidad. En la tabla con
cardinalidad 0, se coloca como clave secundaria, la clave principal de la otra (dicha
clave secundaria ser, adems, clave alternativa de esa tabla):
relaciones recursivas
Las relaciones recursivas se tratan de la misma forma que las otras, slo que hay
que imaginar que la tabla se divide en dos, una por cada rol. Teniendo en cuenta
eso, la solucin es idntica a lo ya resuelto en los casos anteriores slo que es una
sola tabla la participante.
Es fcil confundirse en este tipo de relaciones por lo que hay que imaginarse esta
situacin:
Visto de esa forma se trabaja como si la entidad en realidad fueran dos distintas (en
realidad no lo es), una por cada rol. De esa forma es ms fcil considerar la
transformacin.
[4.3.3]entidades dbiles
Toda entidad dbil incorpora una relacin implcita con una entidad fuerte de tipo 1
a n. Por ello simplemente se pasa como tabla la entidad fuerte y la dbil, bastar
con aadir como atributo y clave fornea en la entidad dbil, el identificador de la
entidad fuerte.
[2]Si las subentidades no tienen clave propia, se colocar como clave, la clave de
su superentidad. Esta clave heredada ser clave externa (foreign key), adems
de clave principal.
[3]En el caso de que las subentidades tengan clave principal propia. Se colocar
en las subentidades el identificador de la superentidad como clave externa que
adems ser clave alternativa.
[4]Que la relacin ISA sea exclusiva o no, no cambia el esquema relacional, pero
s habr que tenerlo en cuenta para las restricciones futuras en el esquema
interno (casi siempre se realizan mediante triggers), ya que en las exclusivas
no puede haber repeticin de la clave de la superentidad en ninguna subentidad
(por ello si es posible se sigue dibujando el arco en este esquema).
[5]No vara el resultado porque la relacin ISA sea total o parcial; el modelo
relacional no tiene capacidad para marcar esa posibilidad. Pero es interesante
tenerlo en cuenta (se suele aadir un comentario al diseo relacional para
posibles restricciones, nuevamente mediante triggers, a crear)
[4.3.5]notas finales
Sin embargo el modelo relacional concreta aspectos de los datos muy importantes,
como son las restricciones. Tiene adems la virtud de que se entiende muy bien
(sigue siendo muy conceptual) ya que es ms simple
1 Vase http://www.entitymodelling.org/
2Structured systems analysis and design method, Anlisis de sistemas estructurado
y mtodo de diseo
3 Clave externa, clave ajena, clave fornea, clave secundaria y foreign key son
sinnimos