Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCCIÓN
Desde tiempos remotos los datos han sido registrados por el hombre en algún tipo
de soporte (papel, piedra, madera, etc.) a fin de que quedara constancia de un
fenómeno e idea. Los datos han de ser interpretados (incorporándoles significado)
para que se conviertan en información útil. Cuando utilizamos el lenguaje natural
y decimos, por ejemplo, que una persona nació en 1965, el dato (1965) va
acompañado de su interpretación (año de nacimiento de una cierta persona), sin
embargo en la informática, se separó el dato de su significado. Por ello, a fin de
facilitar la interpretación de los datos, surgen los modelos de datos como
instrumentos que ayudan a incorporar significado a los datos.
Según FLORY (1982), “modelar consiste en definir un mundo abstracto y teórico
tal que las conclusiones que se pueden sacar de él coincidan con las
manifestaciones aparentes del mundo real”. Siendo un modelo, “un conjunto de
conceptos que permiten construir una representación organizacional de la
empresa”.
Los modelos de datos proporcionan mecanismos de abstracción que permiten la
representación de aquella parcela del mundo real cuyos datos nos interesa
registrar, lo que habitualmente se denomina universo del discurso o mini-mundo
según DITTRICH (1994). Dicha representación se concibe en dos niveles: el de
las estructuras que hacen posible la representación de la información, y el de la
información en sí misma. Estos dos niveles dan lugar, en el ámbito de la base de
datos, a la distinción entre esquema y base de datos; conceptos que DITTRICH
(1994) define como: “La descripción específica de un mini-mundo determinado, en
términos de un modelo de datos, recibe el nombre de esquema (esquema de
datos o esquema de una base de datos) de dicho mini-mundo. La colección de
datos que en sí misma representa la información del mini-mundo da lugar a la
base de datos”.
Asociados a los modelos de datos están los lenguajes de datos que permiten
definir y manipular (consultar, actualizar) la base de datos.
En la arquitectura de una base de datos propuesta por ANSI (American Nacional
Standard Institute) (1975) se suelen diferenciar tres niveles de abstracción
Conceptual, Externo e Interno. El nivel global contiene una representación del
conjunto de los datos de una organización; en el nivel externo, los datos (en
general solo una parte de los mismos) se describen para atender las necesidades
de uno o varios procesos o de un grupo de usuarios en particular; el nivel interno
describe las características de los datos tal como han de encontrarse
almacenados físicamente, siendo sus elementos de descripción punteros, índices,
agrupamientos, etc..
Existen, por tanto, en una base de datos tres clases de esquemas: el esquema
global, los esquemas externos (tantos como necesiten las aplicaciones), y el
esquema interno que, en un momento determinado, es único, aunque un mismo
esquema global admite distintos tipos de esquemas internos entre los cuales se
seleccionará aquel que cumpla mejor los requisitos de eficiencia, seguridad, etc.
Los modelos globales se clasifican, a su vez, en conceptuales y convencionales.
Los modelos conceptuales (también denominados de alto nivel) facilitan la
descripción global del conjunto de información de la empresa al nivel más próximo
al usuario, por los que sus conceptos son cercanos al mundo real (entidades,
atributos, interrelaciones, etc.); los modelos convencionales se encuentran
instrumentados en los SGBD y están orientados a describir los datos a nivel lógico
para el SGBD, por lo que sus conceptos son tablas o relaciones en el caso del
modelo relacional, redes en el Codasyl, jerarquías en el jerárquico, etc. En la
figura 1 se muestra la clasificación de los modelos de datos globales.
CONCEPTUALES
Enfocados a describir el mundo real
MODELO DE DATOS
GLOBALES
CONVENCIONALES O
LÓGICOS Jerárquicos
Implementados en SGBD Codasyl
Realacional
La descripción de un cierto mundo real (por ejemplo una universidad) por medio
de un modelo de datos da como resultado un esquema.
Mundo Real
MODELO
DE
DATOS
Esquema
El esquema es la descripción de la estructura de la base de datos, y ejemplar del
esquema, son los datos que en un determinado momento se encuentran
almacenados en el esquema.
La relación entre los conceptos modelo, esquema y ejemplar se representa en la
figura 2, donde un modelo determinado (entre todos los existentes), como
instrumento que ayuda a interpretar la realidad, permite obtener distintos
esquemas al aplicarlo a realidades distintas. Cada uno de estos esquemas será
una determinada percepción de una cierta realidad, y podrá tener múltiples
ejemplares en el transcurso del tiempo; en un momento determinado, habrá un
único ejemplar de dicho esquema.
El esquema en sí mismo tiene que estar descrito en términos de datos, por lo que
a estos datos se les llama a veces metadatos, es decir, datos acerca de los datos.
Percepción de una
determinada realidad
interpretada de acuerdo
con un cierto modelo Esquema 1 Esquema i Esquema n
RESTRICCIONES DE INTEGRIDAD.
En el mundo real ciertas reglas que deben cumplir los elementos en él existentes;
por ejemplo, una persona solo puede tener un número de cédula. Cuando se
diseña una base de datos se desea que esta refleje lo más fielmente posible el
universo del discurso que estamos tratando de recoger en nuestro sistema de
información, por lo que en el esquema de la base de datos, junto con los objetos,
las asociaciones y las propiedades de los mismos, debemos describir también
estas reglas llamadas restricciones semánticas o de integridad , las cuales pueden
ser definidas como condiciones que limitan el conjunto de ejemplares válidos de
un esquema.
La semántica y la integridad son conceptos que en las bases de datos suelen ir
asociados, aunque no son idénticos. El término semántica se refiere al significado
de los datos y el de integridad a la corrección de los mismos y a su consistencia
respecto al mundo real del cual proceden. Cuando en el esquema de una base de
datos se encuentra descrita la semántica del mundo real, será posible comprobar
si los valores de los datos se atienen o no a ésta semántica previamente definida,
comprobándose la integridad de los mismos.
El modelo relacional es importante por dos razones. Primero, debido a que las
estructuras del modelo relacional son amplias y generales y pueden utilizarse para
expresar diseños independientes de DBMS. Segundo, el modelo relacional es la
base de una importante categoría de productos DBMS.
El Modelo Relacional.
Una afinidad es una tabla de dos dimensiones. Cada hilera de la tabla tiene datos
que pertenecen a alguna cosa o a una parte de alguna cosa. Cada columna de la
tabla contiene datos referentes a un atributo. Las hileras se denominan tupla y las
columnas se llaman atributos.
La siguiente tabla muestra la terminología relacional
Para que una tabla sea una afinidad debe cumplir ciertas restricciones. Primero,
las celdas de la tabla deben ser de valor único; no se permite repetir grupos ni
tener arreglos como valores. Todos los ingresos en cualquier columna (atributo)
deben ser del mismo tipo. Si una columna contiene números de empleados debe
haber números de empleado para cada hilera de la tabla. Cada columna posee un
nombre único y no es importante el orden de las columnas en la tabla. En una
tabla no pueden ser idénticas dos hileras (tuplas) y no es importante el orden de
las hileras.
La siguiente figura es un ejemplo de una tabla (Afinidad EMPLEADO). El formato
generalizado EMPLEADO (Nombre, Edad, Sexo, NumerodeEmpleado) se llama
estructura de la afinidad y es lo que la mayor parte de la gente quiere decir
cuando usa el término afinidad.
Atributo 1 Atributo 2 Atributo Atributo 4
Nombre Edad 3 NumerodeEmplea
Sexo do
Tupla 1 Araujo 21 F 010110
Tupla 2 Dávila 22 M 010100
. García 22 M 101000
. Jerez 21 F 201100
. Moreno 19 M 111100
. Nuñez 20 F 111101
Tupla 7 Salas 19 M 111111
Dependencia Funcional.
Una dependencia funcional es una relación entre uno o más atributos. Suponga
que si se da el valor de un atributo se puede obtener (o buscar) el valor de otro. Si
se conoce el valor de NumeroDeCuentaDeCliente se puede hallar el valor de
EstadoDeCuentaDeCliente. Si esto es cierto, se puede decir que
EstadoDeCuentaDeCliente es funcionalmente dependiente de
NumeroDeCuentaDeCliente. En términos más generales, el atributo Y es
dependiente del atributo X si el valor de X determina el valor de Y. O, puesto de
otro modo, si se conoce el valor de X, se puede obtener el valor de Y.
Suponga que los estudiantes tienen un número de identificación único (ID de
estudiante o SID) y que cada alumno tiene una y solo una especialidad. Dado el
valor de un SID se puede encontrar la especialidad del estudiante y así la
especialidad depende del SID.
Las dependencias funcionales se escriben usando la siguiente notación:
SID Especialidad
Esta expresión se lee como: "SID determina funcionalmente Especialidad", "SID
determina Especialidad" o "Especialidad es dependiente de SID". Los atributos del
lado izquierdo de la flecha se llaman determinantes.
Como se ha señalado, una dependencia funcional es una relación entre valores de
atributos. Si SID determina Especialidad, un valor particular de SID hará pareja
sólo con un valor de Especialidad. En sentido inverso, un valor de Especialidad
puede hacer pareja con uno o más valores diferentes de SID.
Suponga que informática es la especialidad del estudiante cuyo SID es 123. Cada
vez que SID y Especialidad se encuentren juntos en una afinidad, el valor de SID
para 123 hará pareja con el valor Informática de Especialidad. Sin embargo lo
opuesto no es cierto, pues la especialidad de Informática puede hacer pareja con
varios valores de SID (diversos estudiantes pueden tener especialidad en
Informática). se puede decir que la relación de SID con Especialidad es muchos a
uno (N:1). En general se puede decir que si A determina a B, la relación de los
valores de A a B es N:1.
Las dependencias funcionales pueden involucrar grupos de atributos. Considere la
afinidad CALIFICACIONES(SID, NombreDeClase, Calificación). La combinación
de un SID y un NombreDeClase determina una calificación, una dependencia
funcional que se escribe así:
(SID, NombreDeClase) Calificación
Observe que tanto SID como NombreDeClase son necesarios para determinar
una calificación. No se puede subdividir la dependencia funcional porque SID no
determina la calificación por sí mismo.
Claves.
Una clave es un grupo de uno o más atributos que identifican de modo único a una
hilera. Considere la afinidad ACTIVIDAD de la siguiente figura, cuyos atributos son
SID, Actividad y Cuota. El significado de una hilera es que un estudiante se apunta
en la actividad designada por una cuota especificada. Suponga que a un
estudiante se le permite participar sólo en una actividad a la vez. Un valor de SID
determina una hilera única, de modo que es una clave.
Las claves también pueden estar compuestas por un grupo de atributos tomados
en conjunto. Si a los estudiantes se les permitiera inscribirse en distintas
actividades al mismo tiempo, sería posible que un valor de SID apareciera en dos
o más hileras de la tabla y, por lo tanto, SID no identificaría una sola hilera.
Algunas combinaciones de atributos, tal vez (SID, Actividad) pueden ser
requeridas.
Hay un sutil pero importante punto en el párrafo anterior. Si los atributos son o no
son claves y si son, o no, dependencias funcionales, no lo determina una serie
abstracta de reglas sino, mas bien, las hipótesis, es decir, los modelos mentales
del usuario y las reglas del negocio de las organizaciones que desarrollan las
bases de datos. En el ejemplo anterior, si SID (SID, Actividad) o alguna otra
combinación es la clave, lo determina por completo la semántica fundamental de
la base de datos. Se debe interrogar a los usuarios para resolver tales preguntas.
Recuerde que todas las hipótesis hechas acerca de las dependencias funcionales,
claves y similares, están determinadas por los modelos mentales del usuario.
NORMALIZACION.
Anomalías de Modificación.
No todas las afinidades son deseables. Una tabla que cumple la definición mínima
de una afinidad tal vez no tenga una estructura efectiva o apropiada. Para algunas
afinidades, el cambiar los datos puede tener consecuencias no deseables,
llamadas anomalías de modificación. Las anomalías pueden eliminarse
volviendo a definir la afinidad en dos o más afinidades. En la mayor parte de las
circunstancias, se prefieren las afinidades redefinidas o normalizadas.
Considere de nuevo ACTIVIDAD de la figura anterior. Si se elimina la tupla para
estudiante 100, no solo se perderá el hecho de que es un esquiador, sino también
el hecho de que esquiar cuesta $200. Esto se denomina anomalía de
eliminación; esto es, eliminando los hechos acerca de una entidad (que
Estudiante 100 es esquiador) de manera inadvertida se eliminan los hechos
acerca de otra entidad (que esquiar cuesta $200). Con una eliminación se pierden
hechos acerca de dos entidades.
Puede usarse la misma afinidad para ilustrar una anomalía de inserción. Suponga
que se quiere almacenar el hecho de que Buceo Autónomo cuesta $175, pero no
se pueden acceder estos datos en la afinidad ACTIVIDAD hasta que un estudiante
tome Buceo Autónomo. Esta restricción se llama una anomalía de inserción. No se
puede insertar un hecho acerca de una entidad, hasta que se posea un hecho
adicional acerca de una entidad.
Se pueden eliminar las anomalías de inserción y eliminación, dividiendo la afinidad
ACTIVIDAD en dos afinidades, cada una concerniente a un tema distinto. Se
pueden poner atributos de SID y de Actividad en una afinidad, la nueva afinidad se
llamará ESTU-ACT (estudiante-actividad); y se pueden obtener los atributos para
Actividad y Cuota en una afinidad llamada ACT-COST (actividad-costo). La
siguiente figura muestra los mismos datos de muestra almacenados en estas dos
nuevas afinidades.
Sin embargo, separar una afinidad en dos afinidades tiene una desventaja.
suponga que un estudiante trata de inscribirse en una actividad que no existe. Por
ejemplo, Estudiante 250 quiere enrolarse en Racquetbol. Se puede insertar esta
nueva tupla en EST-ACT (la hilera contendría 250, RACQUETBOL) pero ¿debe
hacerse?. ¿Debería permitirse que un estudiante se inscriba en una actividad que
no está en la afinidad ACT-COST?. Puesto de otra forma ¿Las aplicaciones de la
base de datos deben prevenir de alguna forma que se agreguen hileras de
estudiantes si el valor de ACTIVIDAD no está en la tabla ACT-COST?.
La respuesta a esta pregunta se encuentra en los requerimientos del usuario. Esta
restricción se llama restricción de integridad referencial. si la acción debe
prohibirse, esta restricción debe documentarse como parte del diseño del
esquema. Durante la implementación, se definirá la restricción para el DBMS si el
producto en uso proporciona tales restricciones de verificación. Si no, la restricción
debe imponerse a través de programas de aplicación.
Clases de Afinidades.
Las afinidades pueden clasificarse por los tipos de anomalías de modificación a
las cuales son vulnerables. En los años setenta, los teóricos relacionales
investigaron estos tipos. Alguien encontraba una anomalía, la clasificaba y
pensaba en la forma de prevenirla. Cada vez que esto ocurría, mejoraban los
criterios para diseñar las afinidades. Estas clases de afinidades y las técnicas para
prevenir las anomalías son llamadas formas normales.
La Síntesis de Afinidades
Anteriormente se estudió el diseño relacional desde una perspectiva analítica. A
continuación estudiaremos el diseño relacional desde un punto de vista sintético.
Para esto se pregunta: dados una serie de atributos con ciertas dependencias
funcionales ¿qué afinidades se deberán formar?.
Observe primero que dos atributos (por ejemplo A y B) pueden relacionarse en
tres formas:
1. Se determinan entre sí:
A ByB A
Por lo tanto A y B tienen una relación de atributos uno a uno
2. Uno determina al otro
A B pero B no A
Por lo tanto, A y B tiene una relación de muchos a uno.
3. No están relacionados funcionalmente.
A no B y B no A
Por lo tanto, A y B tiene una relación de atributos muchos a muchos.
En la siguiente tabla se muestran los tres tipos de relaciones de atributos.
Tipo de relación del atributo
Uno-a-uno Muchos-a- Muchos-a-
uno muchos
Definición de la R(A,B) S(C,D) T(E,F)
afinidad*
Dependencias A B C D E/ F
B A D C F/ E
Clave AoB C (E,F)
Regla para agregar
otro atributo. AOB C C E (E,F) G
* Las letras usadas en estas definiciones de afinidades son iguales para la
siguiente tabla.
Relaciones de atributos uno-a-uno.
Este caso se ilustra mediante FID y NombreF en los ejemplos 2 y 3 de la forma
normal dominio/clave. Cada uno de estos atributos identifica de modo único a una
persona de la facultad. En consecuencia, el valor de FID corresponde a un valor
de nombreF y viceversa.
Pueden derivarse tres enunciados equivalentes a partir del ejemplo de FID y
NombreF.
Si dos atributos se determinan funcionalmente entre sí, la relación de sus
valores de datos es uno-a-uno.
Si dos atributos identifican de manera única la misma cosa (entidad u objeto),
la relación de sus valores de datos es uno-a-uno.
Si dos atributos tienen una relación uno-a-uno se determinan funcionalmente
entre sí.
Cuando se crea una base datos con atributos que tiene una relación uno-a-uno,
los dos atributos deben aparecer juntos cuando menos en una afinidad.
Relaciones de atributos muchos-a-uno
En la relación del asesor del ejemplo 2, SID determina a FID. Varios estudiantes
(SID) son asesorados por un miembro de la facultad. esta es una relación muchos
a uno.
Si A, B y C están en la misma afinidad y si A determina B, entonces A debe ser la
clave ( lo cual significa que también determina C).
Este enunciado se aplica en el diseño de la base de datos de la siguiente forma:
cuando se construye una afinidad, si A determina B los únicos atributos que se
pueden agregar a la afinidad, también deben estar determinados por A.
Relaciones de atributos muchos-a-muchos.
Si A no determina a B y B no determina a A entonces su relación a muchos-a-
muchos. En el ejemplo 2, NombreF y Clase tiene una relación de mucho a
muchos. Un profesor enseña muchas clases y una clase es impartida por varios
profesores.
Cuando se construyen afinidades que tienen atributos múltiples como claves, se
pueden agregar nuevos atributos que sean funcionalmente dependientes de todas
las claves. CantidadDeVecesEnseñadas es funcionalmente dependiente de
(NombreF, Clase) y puede agregarse a la afinidad. Sin embargo
OficinaDeFacultad no puede incluirse porque solo sería dependiente de NombreF,
no de clase. Si fuera necesario almacenar OficinaDeFacultad en la base de datos,
debe agregarse a la afinidad relacionada con la facultad, no a la que se refiere a
preparaciones.
Reglas para construir afinidades.
Referentes a las afinidades uno-a-uno.
Los atributos que tienen una relación uno-a-uno deben aparecer juntos, cuando
menos en una afinidad. Llame a esta afinidad R y a los atributos A y B.
A o B deben ser la clave de R.
Un atributo puede agregarse a R si está determinado funcionalmente por A o
B.
Un atributo que no está determinado funcionalmente por A o B no puede
agregarse a R.
A y B deben aparecer juntos en R, pero no deberán aparecer juntos en otras
afinidades.
A o B deben usarse consistentemente para representar el par en las afinidades
diferentes a R.
Referentes a relaciones muchos-a-uno
Los atributos que tienen una relación muchos-a-uno pueden existir juntos en
una afinidad. Suponga que C determina D en la afinidad S.
C debe ser la clave de S.
Un atributo puede agregarse a S si está determinado por C.
Un tributo que no esta determinado por C no puede agregarse a S.
Referente a las relaciones muchos-a-muchos.
Los atributos que tienen una relación muchos-a-muchos pueden existir juntos
en una afinidad. Suponga que dos de tales atributos, E y F, residen juntos en la
afinidad T.
La clave de T debe ser (E,F).
Un atributo puede agregarse a T, si está determinado por la combinación (E,F).
Un atributo no puede agregarse a T, si no está determinada por la combinación
(E,F).
Si agregar un nuevo atributo, G, expande la clave a (E,F,G), entonces el tema
de la afinidad ha sido cambiado. G no pertenece a T o el nombre de T debe
cambiarse para reflejar el nuevo tema.