Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se puede ver claramente que hay una gran cantidad de datos repetidos en los ficheros de estos
departamentos, algo que siempre ocurre en los sistemas de ficheros. A raíz de esto, los sistemas
de ficheros presentan una serie de inconvenientes:
Separación y aislamiento de los datos. Cuando los datos se separan en distintos ficheros,
es más complicado acceder a ellos, ya que el programador de aplicaciones de be
sincronizar el procesamiento de los distintos ficheros implicados para asegurar que se
extraen los datos correctos.
Duplicación de datos. La redundancia de datos existente en los sistemas de ficheros hace
que se desperdicie espacio de almacenamiento y lo que es más importante: puede llevar a
que se pierda la consistencia de los datos. Se produce una inconsistencia cuando copias
de los mismos datos no coinciden.
Dependencia de datos. Ya que la estructura física de los datos (la definición de los
ficheros y de los registros) se encuentra codificada en los programas de aplicación,
cualquier cambio en dicha estructura es difícil de realizar. El programador debe
identificar todos los programas afectados por este cambio, modificarlos y volverlos a
probar, lo que cuesta mucho tiempo y está sujeto a que se produzcan errores. A este
problema, tan característico de los sistemas de ficheros, se le denomina también falta de
independencia de datos lógica -física.
Formatos de ficheros incompatibles. Ya que la estructura de los ficheros se define en los
programas de aplicación, es completamente dependiente del lenguaje de programación.
La incompatibilidad entre ficheros generados por distintos lenguajes hace que los
ficheros sean difíciles de procesar de modo conjunto.
Consultas fijas y proliferación de programas de aplicación. Desde el punto de vista de
los usuarios finales, los sistemas de ficheros fueron un gran avance comparados a los
sistemas manuales. A consecuencia de esto, creció la necesidad de realizar distint os tipos
de consultas de datos. Sin embargo, los sistemas de ficheros son muy dependientes del
programador de aplicaciones: cualquier consulta o informe que se quiera realizar debe ser
programado por él. En algunas organizaciones se conformaron con fijar e l tipo de
consultas e informes, siendo imposible realizar otro tipo de consultas que no se hubieran
tenido en cuenta a la hora de escribir los programas de aplicación.
En otras organizaciones hubo una proliferación de programas de aplicación para resolver
todo tipo de consultas, hasta el punto de desbordar al departamento de proceso de datos,
que no daba abasto para validar, mantener y documentar dichos programas.
CAPITULO 2
ORGANIZACIÓN DE FICHEROS
Otra desventaja de la dispersión es que el espacio de almacenamiento es fijo, por lo que es difícil
que el fichero se expanda o se comprima dinámicamente. Si el fichero tiene bloques y en cada
uno caben registros, como máximo se podrán almacenar registros. Si hay menos de registros,
quedará espacio sin utilizar. Si hay más de registros, habrá muchas colisiones y esto hará que el
acceso sea más lento, ya que habrá largas listas de desborde. En este caso, puede ser preferible
ampliar el espacio de almacenamiento y cambiar a otra función de dispersión, lo que implica q ue
habrá que redistribuir todos los registros (reorganizar el fichero). Ya que el espacio de
almacenamiento es fijo, a este tipo de dispersión se la denomina dispersión estática.
Hay varios esquemas que tratan de remediar esta situación: la dispersión dinámica y la
dispersión extensible, que almacenan una estructura de acceso además del fichero, y la
dispersión lineal, que no necesita dicha estructura.
Estas técnicas aprovechan el que las funciones de dispersión dan como resultado un valor entero
no negativo que, por tanto, se puede representar como un número binario. Los registros se
distribuyen entre los bloques teniendo en cuenta los primeros bits de este número, que se
denomina valor de dispersión.
CAPITULO 3
CAPITULO 4
MODELO RELACIONAL
En 1970, el modo en que se veían las bases de datos cambió por completo cuando E. F. Codd
introdujo el modelo relacional. En aquellos momentos, el enfoque existente pa ra la estructura de
las bases de datos utilizaba punteros físicos (direcciones de disco) para relacionar registros de
distintos ficheros. Si, por ejemplo, se quería relacionar un registro con un registro , se debía
añadir al registro un campo conteniendo la dirección en disco del registro . Este campo añadido,
un puntero físico, siempre señalaría desde el registro al registro . Codd demostró que estas bases
de datos limitaban en gran medida los tipos de operaciones qu e los usuarios podían realizar sobre
los datos. Además, estas bases de datos eran muy vulnerables a cambios en el entorno físico. Si
se añadían los controladores de un nuevo disco al sistema y los datos se movían de una
localización física a otra, se reque ría una conversión de los ficheros de datos. Estos sistemas se
basaban en el modelo de red y el modelo jerárquico, los dos modelos lógicos que constituyeron
la primera generación de los SGBD.
El modelo relacional representa la segunda generación de los SG BD. En él, todos los datos están
estructurados a nivel lógico como tablas formadas por filas y columnas, aunque a nivel físico
pueden tener una estructura completamente distinta. Un punto fuerte del modelo relacional es la
sencillez de su estructura lógica . Pero detrás de esa simple estructura hay un fundamento teórico
importante del que carecen los SGBD de la primera generación, lo que constituye otro punto a su
favor.
Dada la popularidad del modelo relacional, muchos sistemas de la primera generación se han
modificado para proporcionar una interfaz de usuario relacional, con independencia del modelo
lógico que soportan (de red o jerárquico). Por ejemplo, el sistema de red IDMS ha evolucionado
a IDMS/R e IDMS/SQL, ofreciendo una visión relacional de los da tos.
En los últimos años, se han propuesto algunas extensiones al modelo relacional para capturar
mejor el significado de los datos, para disponer de los conceptos de la orientación a objetos y
para disponer de capacidad deductiva.
El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos:
Estructura de datos.
Integridad de datos.
Manejo de datos.
4.2. Relaciones
Definiciones informales
El modelo relacional se basa en el concepto matemático de relación, que gráficamente se
representa mediante una tabla. Codd, que era un experto matemático, utilizó una terminología
perteneciente a las matemáticas, en concreto de la teoría de conjuntos y de la lógica de
predicados.
Una relación es una tabla con columnas y filas. Un SGBD sólo necesita que el usuario pueda
percibir la base de datos como un conjunto de tablas. Esta percepción sólo se aplica a la
estructura lógica de la base de datos (en el nivel externo y conceptual de la arquitectura de tres
niveles ANSI-SPARC). No se aplica a la estructura física de la base de datos, que se puede
implementar con distintas estructuras de almacenamiento.
Un atributo es el nombre de una columna de una relación. En el modelo relacional, las
relaciones se utilizan para almacenar informac ión sobre los objetos que se representan en la base
de datos. Una relación se representa gráficamente como una tabla bidimensional en la que las
filas corresponden a registros individuales y las columnas corresponden a los campos o atributos
de esos registros. Los atributos pueden aparecer en la relación en cualquier orden.
El concepto de dominio es importante porque permite que el usuario defina, en un lugar común,
el significado y la fuente de los valores que los atributos pueden tomar. Esto hace que ha ya más
información disponible para el sistema cuando éste va a ejecutar una operación relacional, de
modo que las operaciones que son semánticamente incorrectas, se pueden evitar. Por ejemplo, no
tiene sentido comparar el nombre de una calle con un número de teléfono, aunque los dos
atributos sean cadenas de caracteres. Sin embargo, el importe mensual del alquiler de un
inmueble no estará definido sobre el mismo dominio que el número de meses que dura el
alquiler, pero sí tiene sentido multiplicar los valor es de ambos dominios para averiguar el
importe total al que asciende el alquiler. Los SGBD relacionales no ofrecen un soporte completo
de los dominios ya que su implementación es extremadamente compleja.
Una tupla es una fila de una relación. Los elementos de una relación son las tuplas o filas de la
tabla. En la relación OFICINA, cada tupla tiene seis valores, uno para cada atributo. Las tuplas
de una relación no siguen ningún orden.
El grado de una relación es el número de atributos que contiene. La relación OFICINA es de
grado seis porque tiene seis atributos. Esto quiere decir que cada fila de la tabla es una tupla con
seis valores. El grado de una relación no cambia con frecuencia.
La cardinalidad de una relación es el número de tuplas que contiene. Ya que en las relaciones se
van insertando y borrando tuplas a menudo, la cardinalidad de las mismas varía constantemente.
donde cada atributo corresponde a un único dominio y todos los son distintos, es decir, no
hay dos atributos que se llamen igual. El grado de la relación es .
Una clave candidata es una superclave en la que ninguno de sus subconjuntos es una superclave
de la relación. El atributo o conjunto de atributos de la relación es una clave candidata para si y
sólo si satisface las siguientes propiedades:
PLANTIL
OFICINA : Oficina a la que pertenece el empleado.
LA
INMUEBL PROPIETAR
: Propietario del inmueble.
E IO
INMUEBL
PLANTILLA : Empleado encargado del inmueble.
E
INMUEBL
OFICINA : Oficina a la que pertenece el inmueble.
E
CAPITULO 5
(b)
Eliminar las relaciones entre tres o más entidades, sustituyendo cada una de ellas por una
nueva entidad (débil) intermedia que se relaciona con cada una de las entidades originales.
La cardinalidad de estas nuevas relaciones binarias dependerá de su significado.
(c)
Eliminar las relaciones recursivas, sustituyendo cada una de ellas por una nueva entidad
(débil) y dos relaciones binarias de esta nueva entidad con la entidad original. La
cardinalidad de estas relaciones dependerá de su significado.
(d)
Eliminar las relaciones con atributos, sustituyendo cada una de ellas por una nueva entidad
(débil) y las relaciones binarias correspondientes de esta nueva entidad con las entidades
originales. La cardinalidad de estas relaciones dependerá del tipo de la relación original y de
su significado.
(e)
Eliminar los atributos multievaluados, sustituyendo cada uno de ellos po r una nueva entidad
(débil) y una relación binaria de uno a muchos con la entidad original.
(f)
Revisar las relaciones de uno a uno , ya que es posible que se hayan identificado dos
entidades que representen el mismo objeto (sinónimos). Si así fuera, amba s entidades deben
integrarse en una sola.
(g)
Eliminar las relaciones redundantes . Una relación es redundante cuando se puede obtener la
misma información que ella aporta mediante otras relaciones. El hecho de que haya dos
caminos diferentes entre dos en tidades no implica que uno de los caminos corresponda a una
relación redundante, eso dependerá del significado de cada relación.
Una vez finalizado este paso, es más correcto referirse a los esquemas conceptuales locales
refinados como esquemas lógicos lo cales, ya que se adaptan al modelo de base de datos que
soporta el SGBD escogido.
2. Derivar un conjunto de relaciones (tablas) para cada esquema lógico local
En este paso, se obtiene un conjunto de relaciones (tablas) para cada uno de los esquemas lógic os
locales en donde se representen las entidades y relaciones entre entidades, que se describen en
cada una de las vistas que los usuarios tienen de la empresa. Cada relación de la base de datos
tendrá un nombre, y el nombre de sus atributos aparecerá, a c ontinuación, entre paréntesis. El
atributo o atributos que forman la clave primaria se subrayan. Las claves ajenas, mecanismo que
se utiliza para representar las relaciones entre entidades en el modelo relacional, se especifican
aparte indicando la relación (tabla) a la que hacen referencia.
A continuación, se describe cómo las relaciones (tablas) del modelo relacional representan las
entidades y relaciones que pueden aparecer en los esquemas lógicos.
(a)
Entidades fuertes. Crear una relación para cada e ntidad fuerte que incluya todos sus atributos
simples. De los atributos compuestos incluir sólo sus componentes.
Cada uno de los identificadores de la entidad será una clave candidata. De entre las claves
candidatas hay que escoger la clave primaria; el r esto serán claves alternativas. Para escoger
la clave primaria entre las claves candidatas se pueden seguir estas indicaciones:
Escoger la clave candidata con el mínimo número de caracteres (si es de tipo texto).
Escoger la clave candidata más fácil de utilizar de sde el punto de vista de los
usuarios.
(b)
Entidades débiles. Crear una relación para cada entidad débil incluyendo todos sus atributos
simples. De los atributos compuestos incluir sólo sus componentes. Añadir una clave ajena a
la entidad de la que depen de. Para ello, se incluye la clave primaria de la relación que
representa a la entidad padre en la nueva relación creada para la entidad débil. A
continuación, determinar la clave primaria de la nueva relación.
(c)
Relaciones binarias de uno a uno. Para cada relación binaria se incluyen los atributos de la
clave primaria de la entidad padre en la relación (tabla) que representa a la entidad hijo, para
actuar como una clave ajena. La entidad hijo es la que participa de forma total (obligatoria)
en la relación, mientras que la entidad padre es la que participa de forma parcial (opcional).
Si las dos entidades participan de forma total o parcial en la relación, la elección de padre e
hijo es arbitraria. Además, en caso de que ambas entidades participen de for ma total en la
relación, se tiene la opción de integrar las dos entidades en una sola relación (tabla). Esto se
suele hacer si una de las entidades no participa en ninguna otra relación.
(d)
Relaciones binarias de uno a muchos. Como en las relaciones de uno a uno, se incluyen los
atributos de la clave primaria de la entidad padre en la relación (tabla) que representa a la
entidad hijo, para actuar como una clave ajena. Pero ahora, la entidad padre es la de ``la parte
del muchos'' (cada padre tiene muchos hijos), mientras que la entidad hijo es la de ``la parte
del uno'' (cada hijo tiene un solo padre).
(e)
Jerarquías de generalización. En las jerarquías, se denomina entidad padre a la entidad
genérica y entidades hijo a las subentidades. Hay tres opcione s distintas para representar las
jerarquías. La elección de la más adecuada se hará en función de su tipo (total/parcial,
exclusiva/superpuesta).
1. Crear una relación por cada entidad. Las relaciones de las entidades hijo heredan
como clave primaria la de l a entidad padre. Por lo tanto, la clave primaria de las
entidades hijo es también una clave ajena al padre. Esta opción sirve para cualquier
tipo de jerarquía, total o parcial y exclusiva o superpuesta.
2. Crear una relación por cada entidad hijo, heredando los atributos de la entidad padre.
Esta opción sólo sirve para jerarquías totales y exclusivas.
3. Integrar todas las entidades en una relación, incluyendo en ella los atributos de la
entidad padre, los atributos de todos los hijos y un atributo discriminati vo para indicar
el caso al cual pertenece la entidad en consideración. Esta opción sirve para cualquier
tipo de jerarquía. Si la jerarquía es superpuesta, el atributo discriminativo será
multievaluado.
Una vez obtenidas las relaciones con sus atributos, c laves primarias y claves ajenas, sólo queda
actualizar el diccionario de datos con los nuevos atributos que se hayan identificado en este paso.
3. Validar cada esquema mediante la normalización
La normalización se utiliza para mejorar el esquema lógico, de modo que satisfaga ciertas
restricciones que eviten la duplicidad de datos. La normalización garantiza que el esquema
resultante se encuentra más próximo al modelo de la empresa, que es consistente y que tiene la
mínima redundancia y la máxima estabilid ad.
La normalización es un proceso que permite decidir a qué entidad pertenece cada atributo. Uno
de los conceptos básicos del modelo relacional es que los atributos se agrupan en relaciones
(tablas) porque están relacionados a nivel lógico. En la mayoría de las ocasiones, una base de
datos normalizada no proporciona la máxima eficiencia, sin embargo, el objetivo ahora es
conseguir una base de datos normalizada por las siguientes razones:
Un esquema normalizado organiza los datos de acuerdo a sus dependen cias funcionales,
es decir, de acuerdo a sus relaciones lógicas.
El esquema lógico no tiene porqué ser el esquema final. Debe representar lo que el
diseñador entiende sobre la naturaleza y el significado de los datos de la empresa. Si se
establecen unos objetivos en cuanto a prestaciones, el diseño físico cambiará el esquema
lógico de modo adecuado. Una posibilidad es que algunas relaciones normalizadas se
desnormalicen. Pero la desnormalización no implica que se haya malgastado tiempo
normalizando, ya que mediante este proceso el diseñador aprende más sobre el
significado de los datos. De hecho, la normalización obliga a entender completamente
cada uno de los atributos que se han de representar en la base de datos.
Un esquema normalizado es robusto y care ce de redundancias, por lo que está libre de
ciertas anomalías que éstas pueden provocar cuando se actualiza la base de datos.
Los equipos informáticos de hoy en día son mucho más potentes, por lo que en ocasiones
es más razonable implementar bases de dat os fáciles de manejar (las normalizadas), a
costa de un tiempo adicional de proceso.
La normalización produce bases de datos con esquemas flexibles que pueden extenderse
con facilidad.
El objetivo de este paso es obtener un conjunto de relaciones que se encuentren en la forma
normal de Boyce-Codd. Para ello, hay que pasar por la primera, segunda y tercera formas
normales. El proceso de normalización se describe en el apartado 7.3.
4. Validar cada esquema frente a las transacciones del usuario
El objetivo de este paso es validar cada esquema lógico local para garantizar que puede soportar
las transacciones requeridas por los correspondientes usuarios. Estas transacc iones se
encontrarán en las especificaciones de requisitos de usuario. Lo que se debe hacer es tratar de
realizar las transacciones de forma manual utilizando el diagrama entidad -relación, el diccionario
de datos y las conexiones que establecen las claves ajenas de las relaciones (tablas). Si todas las
transacciones se pueden realizar, el esquema queda validado. Pero si alguna transacción no se
puede realizar, seguramente será porque alguna entidad, relación o atributo no se ha incluido en
el esquema.
5. Dibujar el diagrama entidad -relación
En este momento, se puede dibujar el diagrama entidad -relación final para cada vista de usuario
que recoja la representación lógica de los datos desde su punto de vista. Este diagrama habrá sido
validado mediante la normalización y frente a las transacciones de los usuarios.
6. Definir las restricciones de integridad
Las restricciones de integridad son reglas que se quieren imponer para proteger la base de datos,
de modo que no pueda llegar a un estado inconsistente. H ay cinco tipos de restricciones de
integridad.
(a)
Datos requeridos. Algunos atributos deben contener valores en todo momento, es decir, no
admiten nulos.
(b)
Restricciones de dominios. Todos los atributos tienen un dominio asociado, que es el
conjunto los valores que cada atributo puede tomar.
(c)
Integridad de entidades. El identificador de una entidad no puede ser nulo, por lo tanto, las
claves primarias de las relaciones (tablas) no admiten nulos.
(d)
Integridad referencial. Una clave ajena enlaza cada tupla de la relación hijo con la tupla de la
relación padre que tiene el mismo valor en su clave primaria. La integridad referencial dice
que si una clave ajena tiene un valor (si es no nula), ese valor debe ser uno de los valores de
la clave primaria a la que referencia. Hay varios aspectos a tener en cuenta sobre las claves
ajenas para lograr que se cumpla la integridad referencial.
1. ¿Admite nulos la clave ajena? Cada clave ajena expresa una relación. Si la
participación de la entidad hijo en la r elación es total, entonces la clave ajena no
admite nulos; si es parcial, la clave ajena debe aceptar nulos.
2. ¿Qué hacer cuando se quiere borrar una ocurrencia de la entidad padre que tiene
algún hijo? O lo que es lo mismo, ¿qué hacer cuando se quiere borr ar una tupla que
está siendo referenciada por otra tupla a través de una clave ajena? Hay varias
respuestas posibles:
Restringir: no se pueden borrar tuplas que están siendo referenciadas por otras
tuplas.
Anular: se borra la tupla deseada y todas las referencias que tenía se ponen,
automáticamente, a nulo (esta respuesta sólo es válida si la clave ajena acepta
nulos).
Valor por defecto: se borra la tupla deseada y todas las referencias toman,
automáticamente, el valor por defecto (esta respuesta sólo es válida si se ha
especificado un valor por defecto para la clave ajena).
(e)
Reglas de negocio. Cualquier operación que se realice sobre los datos debe cumplir las
restricciones que impone el funcionamiento de la empresa.
Todas las restricciones de integridad establecidas en este paso se deben reflejar en el diccionario
de datos para que puedan ser tenidas en cuenta durante la fase del diseño físico.
7. Revisar cada esquema lógico local con el usuario correspondiente
Para garantizar que cada esquema lógico local es una fiel representación de la vista del usuario lo
que se debe hacer es comprobar con él que lo reflejado en el esquema y en la documentación es
correcto y está completo.
Relación entre el esquema lógico y los diagramas de flujo de datos
El esquema lógico refleja la estructura de los datos a almacenar que maneja la empresa. Un
diagrama de flujo de datos muestra cómo se mueven los datos en la empresa y los almac enes en
donde se guardan. Si se han utilizado diagramas de flujo de datos para modelar las
especificaciones de requisitos de usuario, se pueden utilizar para comprobar la consistencia y
completitud del esquema lógico desarrollado. Para ello:
Cada almacén de datos debe corresponder con una o varias entidades completas.
Los atributos en los flujos de datos deben corresponder a alguna entidad.
Los esquemas lógicos locales obtenidos hasta este momento se integrarán en un solo esquema
lógico global en la siguiente fase para modelar los datos de toda la empresa.
8. Mezclar los esquemas lógicos locales en un esquema lógico global
En este paso, se deben integrar todos los esquemas locales en un solo esquema global. En un
sistema pequeño, con dos o tres vistas d e usuario y unas pocas entidades y relaciones, es
relativamente sencillo comparar los esquemas locales, mezclarlos y resolver cualquier tipo de
diferencia que pueda existir. Pero en los sistemas grandes, se debe seguir un proceso más
sistemático para llevar a cabo este paso con éxito:
1. Revisar los nombres de las entidades y sus claves primarias.
2. Revisar los nombres de las relaciones.
3. Mezclar las entidades de las vistas locales.
4. Incluir (sin mezclar) las entidades que pertenecen a una sola vista de usuari o.
5. Mezclar las relaciones de las vistas locales.
6. Incluir (sin mezclar) las relaciones que pertenecen a una sola vista de usuario.
7. Comprobar que no se ha omitido ninguna entidad ni relación.
8. Comprobar las claves ajenas.
9. Comprobar las restricciones de i ntegridad.
10. Dibujar el esquema lógico global.
11. Actualizar la documentación.
9. Validar el esquema lógico global
Este proceso de validación se realiza, de nuevo, mediante la normalización y mediante la prueba
frente a las transacciones de los usuarios. Pe ro ahora sólo hay que normalizar las relaciones que
hayan cambiado al mezclar los esquemas lógicos locales y sólo hay que probar las transacciones
que requieran acceso a áreas que hayan sufrido algún cambio.
10. Estudiar el crecimiento futuro
En este paso, se trata de comprobar que el esquema obtenido puede acomodar los futuros
cambios en los requisitos con un impacto mínimo. Si el esquema lógico se puede extender
fácilmente, cualquiera de los cambios previstos se podrá incorporar al mismo con un efecto
mínimo sobre los usuarios existentes.
11. Dibujar el diagrama entidad -relación final
Una vez validado el esquema lógico global, ya se puede dibujar el diagrama entidad -relación que
representa el modelo de los datos de la empresa que son de interés. La doc umentación que
describe este modelo (incluyendo el esquema relacional y el diccionario de datos) se debe
actualizar y completar.
12. Revisar el esquema lógico global con los usuarios
Una vez más, se debe revisar con los usuarios el esquema global y la do cumentación obtenida
para asegurarse de que son una fiel representación de la empresa.
5.5. Normalización
La normalización es una técnica para diseñar la estructura lógica de los datos de un sistema de
información en el modelo relacional, desarrollada por E. F. Codd en 1972. Es una estrat egia de
diseño de abajo a arriba: se parte de los atributos y éstos se van agrupando en relaciones (tablas)
según su afinidad. Aquí no se utilizará la normalización como una técnica de diseño de bases de
datos, sino como una etapa posterior a la correspond encia entre el esquema conceptual y el
esquema lógico, que elimine las dependencias entre atributos no deseadas. Las ventajas de la
normalización son las siguientes:
Evita anomalías en inserciones, modificaciones y borrados.
Mejora la independencia de da tos.