Академический Документы
Профессиональный Документы
Культура Документы
Su finalidad es servir a una aplicación o más y los datos se almacenan de modo que resultan
independientes de los programas que los usan (James Martín).
En el enfoque de BD se mantiene un único almacén de datos que se define una sola vez y al cual tienen
acceso muchos usuarios.
• Las BD son un único almacén al que tienen acceso varios usuarios y toman la información que
necesitan, lo cual da la ventaja de evitar la redundancia.
1
La característica que hace posible la independencia con respecto a los programas y datos se
denomina abstracción de los datos. Un SGBD ofrece a los usuarios una representación conceptual
de los datos que no incluye muchos de los detalles de cómo se almacenan.
De todas estas características, las más importantes son las tres primeras.
2
Manipular: acceder a la información
Al conjunto formado por la base de datos y el software lo llamamos sistema de base de datos.
Usuarios/Programadores
Sistema de
Base de datos
Programas de aplicación
3
archivo en el que se registren los datos de los estudiantes por ejemplo. Esto implica una duplicación
del trabajo.
En segundo lugar, se desperdicia espacio de almacenamiento al guardar los mismos datos en varios
lugares, y este problema puede ser grave si las bases de datos son grandes.
En tercer lugar, es posible que los archivos que representan los mismos datos se tornen inconsistentes
tal vez porque una actualización se haya aplicado a ciertos archivos pero no a otros.
Para conservar la consistencia, debe crearse un diseño que almacene cada dato lógico en un solo lugar
de la Base de dato. Ello evita la inconsistencia y ahorra espacio de almacenamiento. En algunos casos
puede convenir la redundancia controlada.
Restricción de los accesos no autorizados: cuando muchos usuarios comparten una misma base
de datos, es probable que no todos tengan la autorización para tener acceso a toda la información
que contiene. Puede ser que algunos usuarios tengan permiso para recuperar datos solamente,
mientras que a otros se les permita obtenerlos y actualizarlos. A los usuarios o grupos de usuarios
se les asignan números de cuentas protegidos por contraseña, los mismos sirven para tener acceso a
la BD. El SGBD debe contar con un subsistema de seguridad y autorización que permita al DBA
crear cuentas y especificar restricciones para ellas.
Suministro de múltiples interfaces con los usuarios : en vista de que muchos tipos de usuarios
con distintos niveles de conocimientos técnicos utilizan las Bases de Datos, el SGBD debe ofrecer
diferentes interfaces.
Representación de vínculos complejos entre los datos: una BD puede contener numerosos
conjuntos de datos que estén relacionados entre sí de muchas maneras. Es necesario que el SGBD
pueda representar diversos vínculos complejos de los datos y también obtener y actualizar con
eficiencia datos que estén mutuamente relacionados.
Respaldo y recuperación: todo SGBD debe contar con recursos para recuperarse de fallos de
hardware o software. Para ello está el subsistema de respaldo y recuperación del SGBD. Por
ejemplo, si el sistema falla mientras se está ejecutando un programa de actualización, el subsistema
de recuperación se encargará de asegurarse de que la BD se restaure al estado en el que estaba
antes de que comenzara la ejecución del programa. Como alternativa el subsistema de recuperación
puede asegurarse de que el programa reanude su ejecución en el punto en que fue interrumpido, de
modo que su efecto completo se registre en la BD.
4
UNIDAD Nº 2: ARQUITECTURA DE UN SISTEMA DE BASE DE DATOS
- De alto nivel o conceptuales: definen conceptos muy cercanos a como el usuario percibe la
información.
- De bajo nivel o físicos: permiten describir detalles de cómo se almacenan los datos en el
computador, dando información como los formatos y ordenamientos de los registros y los
caminos de acceso.
- De representación o implementación: son modelos intermedios entre los dos anteriores.
Pueden ser entendidos por los usuarios finales aunque no sean demasiado alejados de la
forma en que los datos se organizan dentro del computador, ocultan algunos detalles de
cómo se almacenan los datos, pero pueden implementarse de manera directa en un sistema
de computador.
De alto nivel o conceptuales: definen conceptos muy cercanos a como el usuario percibe la
información.
• Entidades: objeto del cual queremos obtener información. Las del mismo tipo se
agrupan en tipos de entidades. Representan un objeto o concepto del mundo real almacenado
en la BD, como un empleado o un proyecto.
El objeto puede ser:
- abstracto como por ejemplo una cuenta bancaria o
- real como por ejemplo alumnos.
• Atributos: son características que nos permiten describir e identificar una entidad.
Representa alguna propiedad de interés que da una descripción más amplia, como el nombre o
el salario del empleado. ALUMNO
entidad
Nro. De legajo
DNI
atributos
Apellido y nombre
Fecha de nacimiento
Carrera
5
Los atributos pueden ser:
- de identificación unívoca: distinguen a uno de otro. Ej. Nro. Legajo, DNI. Puede haber más
de uno. Si hay dos y selecciono uno como clave principal, el otro queda como clave
alternativa.
Los atributos pueden separarse en dos grupos, de acuerdo al “rol” que desempeñan: por
ejemplo si hablamos de la entidad automóvil, algunos atributos son:
Los atributos pueden tomar un valor o múltiples valores, de un conjunto de valores posibles,
que se denomina dominio de valores. Por ejemplo, el dominio del atributo color es el conjunto
cerrado: rojo, azul, verde, amarillo, blanco. Para cada atributo se define un dominio de valores.
O sea que el atributo legajo debe tener un valor entre 100 y 3000. Esta es una restricción de
integridad.
Los dominios de diferentes atributos pueden parecer idénticos, cuando en realidad no lo son,
debido a que representan distintos roles. Por ejemplo el color interior y exterior de un
automóvil.
6
Uno de los identificadores únicos se elige como clave de la entidad.
• Vínculos: describen una interacción entre dos o más entidades, por ejemplo el vínculo de trabajo,
“trabaja en”, entre un empleado y un proyecto.
- Vínculos incondicionales
- Vínculos condicionales
UNO A UNO: cuando una instancia de A se relaciona con una y solo una instancia de B, y a cada
instancia de B una y solo una de A.
A B
1:1
UNO A MUCHOS: cuando a cada instancia de A le corresponde una o más de una instancia de B, y
cada instancia de B se relaciona con una instancia de A.
A B
1:M
MUCHOS A MUCHOS: cuando cada instancia de A se relaciona con una o más instancias de B y
cada instancia de B se relaciona con una o más instancias de A.
A B
M:M
7
VÍNCULOS CONDICIONALES: un vínculo binario es condicional cuando hay instancias en alguna
de las dos entidades que no participan en el vínculo.
UNO A UNO CONDICIONAL: cuando una instancia de A se relaciona con cero o una instancia de
B, y a cada instancia de B una y solo una de A.
A B
1:1c
UNO A MUCHOS CONDICIONAL: cuando cada instancia de A se relaciona con cero, una o
muchas instancias de B. Cada instancia de B se relaciona con una instancia de A.
A B
1:Mc
UNO CONDICIONAL A MUCHOS: cuando una instancia de A se relaciona con una o más
instancias de B y cada instancia de B se relaciona con cero o una instancia de A.
A B
1c:M
MUCHOS A MUCHOS CONDICIONAL: cuando cada instancia de A se relaciona con cero, una o
muchas instancias de B y cada instancia de B se relaciona con una o muchas instancias de A.
A B
M:Mc
8
VÍNCULOS BICONDICIONALES: cuando hay instancias de las dos entidades del vínculo que no
participan del vínculo.
UNO CONDICIONAL A UNO CONDICIONAL: cuando cada instancia de A se relaciona con cero
o una instancia de B, y cada instancia de B se relaciona con cero o una instancia de A.
A B
1c:1c
A B
1c:Mc
A B
Mc:Nc
La cardinalidad representa las instancias (1:M, 1:M, etc.). La condición va siempre del lado del que
participa.
9
Vimos hasta ahora:
- ENTIDADES
- ATRIBUTOS
- VÍNCULOS
- VALORES
- DOMINIOS
- n-ários
- binarios
- ternarios
- Individuales
- Condicionales
- Bicondicionales
1:1
1:M
M:M
Esquemas y ejemplares:
Los datos reales de la BD pueden cambiar con mucha frecuencia. Los datos que la BD contiene
en un determinado momento se denomina estado de la BD, conjunto de ocurrencias o ejemplares.
Cada vez que se inserta o elimina un registro, o que se modifica el valor de un elemento de
información, transformamos el estado de la BD en otro.
10
- Esquema de una Base de Datos
ALUMNO MATERIA
* Nro. Leg. DNI Apellido Nombre * Cod. Mat. Nombre Reg. Prom Otro
ALUMNO MATERIA
* Nro. Leg. DNI Apellido Nombre * Cod. Mat. Nombre Reg. Prom Otro
30110/03 32132055 Escobar Romina 020 Algebra I 0 --
30115/03 30256421 López Jorge 050 Sistemas I 1 --
30117/03 35042126 Morales Carlos 060 Lógica II 1 --
ALUMNO
* Nro. Leg. DNI Apellido Nombre
MATERIA
* Cod. Mat. Nombre Reg. Prom Otro
Entidades Atributos
Arquitectura de un SGBD:
• Uso de un catálogo para definir datos. O sea que los datos se definen aparte.
• Empleo de múltiples vistas de usuarios. Una BD no satisface los requerimientos de una
única aplicación.
• Independencia entre datos – programas, que se da al emplear el catálogo.
Estas tres características son posibles con una estructura de tres niveles.
El objetivo de la arquitectura de tres esquemas consiste en formar una separación entre las
aplicaciones del usuario y la BD física.
Los esquemas se pueden definir en los tres niveles siguientes:
11
- Nivel Interno: Se refiere al almacenamiento, equipo, etc. Tiene un esquema interno, que
describe la estructura física de almacenamiento de la BD. El esquema interno emplea un
modelo físico de los datos y describe todos los detalles para su almacenamiento, así como
los caminos de acceso para la BD.
- Nivel Conceptual: tiene un esquema conceptual, el cual oculta los detalles de las
estructuras físicas de almacenamiento y se concentra en describir entidades, tipos de datos,
vínculos, operaciones de los usuarios y restricciones.
- Nivel Externo: incluye varios esquemas externos o vistas de usuario. Cada esquema
externo describe la parte de la BD que interesa a un grupo de usuarios determinado, y
oculta a ese grupo el resto de la BD.
Debe existir una transformación o mapeo entre el nivel externo al nivel conceptual y otro
mapeo entre el nivel conceptual y el nivel interno.
ESQUEMA CONCEPTUAL
NIVEL
CONCEPTUAL
Correspondencia conceptual/interna
ESQUEMA INTERNO
NIVEL
INTERNO
Base de Datos
almacenada
Los tres esquemas no son más que descripciones de los datos, los únicos datos que existen
realmente están en el nivel físico.
En un SGBD basado en la arquitectura de tres esquemas, cada grupo de usuarios hace
referencia exclusivamente a su propio esquema externo, por lo tanto el SGBD debe transformar una
solicitud expresada en términos de un esquema externo o una solicitud expresada en términos del
esquema conceptual, y luego a una solicitud en el esquema interno que se procesará sobre la base de
datos almacenada.
El proceso de transformar solicitudes y resultados de un nivel a otro se denomina
correspondencia, transformación, o “mupping”.
Esta arquitectura nos permite dar dos conceptos muy importantes en una Base de Datos.
12
Independencia lógica
Independencia física
La independencia con respecto a los datos se logra porque, al modificarse el esquema en algún
nivel, el esquema del nivel inmediato superior permanece sin cambios; solo se modifica la
correspondencia entre dos niveles. No es preciso modificar los programas de aplicación que hacen
referencia al esquema del nivel superior. Por lo tanto, la arquitectura de tres niveles puede facilitar el
logro de la verdadera independencia con respecto a los datos, tanto física como lógica.
En muchos SGBD en los que no se mantiene una separación estricta de niveles, el ABD y los
diseñadores de la BD utilizan un mismo lenguaje, el lenguaje de Definición de Datos (DDL).
Cuando en los SGBD se mantenga una clara separación entre los niveles conceptual e interno, el
DDL servirá solamente para especificar el esquema conceptual. Se utiliza otro lenguaje, el Lenguaje de
Definición de Almacenamiento (SDL) para especificar el esquema interno.
Para una verdadera arquitectura de tres esquemas necesitaríamos un tercer lenguaje, el Lenguaje de
Definición de Vistas (VDL), para especificar las vistas del usuario y sus correspondencias con el
esquema conceptual.
Además los usuarios requieren de algún mecanismo para manipular la BD, el SGBD ofrece un
Lenguaje de Manipulación de Datos (DML).
En los SGBD actuales no se acostumbra distinguir entre los tipos de lenguajes mencionados, más
bien, se utiliza un amplio lenguaje integrado que cuenta con elementos para definir esquemas
conceptuales, definir vistas, manipular datos y definir su almacenamiento.
Un ejemplo representativo es el Lenguaje de BD relacionales SQL, que representa una
combinación de DDL, VDL, DML, y SDL.
• Interfaces de SGBD
Entre las interfaces amables con el usuario que pueden ofrecer los SGBD están las siguientes:
- Interfaces basadas en menús, las cuales presentan al usuario listas de opciones llamadas
menús, que guían al usuario para formular solicitudes. Los menúes hacen innecesario
memorizar las órdenes y la sintaxis específicas de un lenguaje de consulta, pues permiten
construir la solicitud paso por paso eligiendo las opciones de los menús que el sistema
presenta.
13
- Interfaces gráficas: suelen presentar al usuario los esquemas en forma de diagrama, y éste
puede entonces especificar una consulta manipulando el diagrama. Casi todas estas
interfaces se valen de un dispositivo apuntador, como el ratón para escoger ciertas partes
del diagrama de esquemas que se exhibe.
- Interfaces basadas en formas: presentan una forma para cada usuario. Este puede
entonces llenar todos los espacios de la forma para insertar datos nuevos, o bien llenar sólo
ciertos espacios, en cuyo caso el SGBD obtendrá los registros que coincidan con los datos
especificados.
- Interfaces de lenguaje natural: estas interfaces aceptan solicitudes escritas en inglés o en
algún otro idioma e intentan “entenderlas”. Suelen tener su propio esquema, similar al
esquema conceptual de la BD. La interfaz consulta las palabras de su esquema, y también
un conjunto de palabras estándar, para interpretar la solicitud. Si la interpretación tiene
éxito, la interfaz genera una consulta de alto nivel que corresponde a la solicitud en
lenguaje natural y la envía al SGBD para su procesamiento, en caso contrario, se inicia un
diálogo con el usuario para esclarecer la solicitud.
- Interfaz para usuarios paramétricos: los usuarios paramétricos a menudo tienen un
conjunto pequeño de operaciones que deben realizar repetidamente. Casi siempre se incluye
un conjunto reducido de ordenes abreviadas, con el fin de reducir al mínimo el número de
digitaciones. Con esto el usuario paramétrico puede trabajar con el menor número de
digitaciones posible.
El principal criterio que suele utilizarse para clasificar los SGBD es el modelo de datos en que se
basan.
Los SGBD se clasifican como:
- Relacionales
- De Red
- Jerárquicos
- Orientados a Objetos
- Otros
Un segundo criterio para clasificar los SGBD, es el número de usuarios a los que da servicio el
Sistema.
- Los Sistemas monousuario solo atiende a un usuario a la vez
- Los Sistemas multiusuario atienden a varios usuarios al mismo tiempo
Un tercer criterio es el número de sitios en los que está distribuida la BD, se clasifican en:
- Centralizados, es decir sus datos se almacenan en un solo computador.
- Descentralizados
Los SGBD pueden atender a varios usuarios pero el SGBD y la BD real y el software del SGBD
pueden estar distribuidos en varios sitios, conectados por una red de computadoras.
El modelo de datos relacional representa una BD como una colección de tablas, cada una de las cuales
se puede almacenar en forma de archivo individual.
El modelo de datos de Red representa los datos como tipos de registros y también represena un tipo
limitado de vínculos 1:N, llamado tipo de conjunto.
El modelo Jerárquico representa los datos como estructuras jerárquicas de árbol. Cada jerarquía
representa varios registros relacionados entre sí.
14
El modelo orientado a objetos define una BD en término de objetos, sus propiedades y sus
operaciones. Los objetos con la misma estructura y comportamiento pertenecen a una clase, y las
clases se organizan en jerarquías o grafos acíclicos. Las operaciones de cada clase se especifican en
términos de procedimientos predefinidos llamados métodos.
15
UNIDAD Nº 3 : MODELO RELACIONAL
Modelo de representación:
• MODELO RELACIONAL:
Conceptos Básicos:
El modelo relacional se define a través de los elementos que lo forman. Podemos distinguir tres
tipos de elementos dentro del modelo.
a) Elementos estructurales:
La estructura fundamental de datos es una RELACIÓN que no es más que una tabla estructurada y
ordenada de datos.
Cada una de las filas de la relación se denomina TUPLA y representa a un determinado concepto u
objeto perteneciente al entorno de datos en uso.
Cada columna de la tabla se denomina ATRIBUTO y representa una propiedad que caracteriza a
cada objeto del entorno.
A1 A2 ... ... An
La estructura es una relación, es una tabla plana de doble entrada, en donde las filas se denominan
tuplas y las columnas atributos.
Los atributos son monovaluados y simples. Que sean monovaluados quiere decir que pueden
tomar un único valor (ej. Un solo color) y que sean simples quiere decir que tienen valores atómicos.
16
DNI Apellido Nombre Edad Puesto
laboral
32132055 Escobar Romina 20 Director
30256421 López Jorge 22 Ingeniero
35042126 Morales Carlos 25 Secretario
tuplas
atributo
Esta tabla o relación representa al conjunto de empleados de una empresa. Cada fila de la tabla
se corresponde con un empleado y cada columna con una característica de los empleados.
R = EMPLEADO
Grado = 5, Cardinalidad = 4.
Una tupla ti es una transformación de R a D, siendo D = a la unión con el dominio A1, unión
dominio A2, en general con el dominio An.
Las tuplas no necesariamente deben estar ordenadas, pero cuando se hace la implementación si,
de acuerdo a la clave que se elija.
17
b) Elementos semánticos:
Tiene que ver con el significado que tienen los datos. Están formados por las Dependencias entre
datos y por un conjunto de restricciones semánticas. Estos elementos proporcionan un mayor
contenido semántico a la relación, principalmente las dependencias de datos, al definir una serie de
restricciones existentes entre los datos que forman una relación.
Dependencia funcional
Restricciones de Integridad
Dependencias funcionales:
Una dependencia funcional es una sentencia de la forma X Y, que se lee “X implica Y”, o “Y
depende de X”, siendo X e Y subconjuntos del conjunto de atributos de la relación en la que se
incluyen las dependencias funcionales, llamados descriptores.
Si una dependencia funcional se cumple para una relación r, quiere decir que, independientemente
de las tuplas existentes en r, en un momento determinado, el valor de X determina unívocamente el
valor de Y. O dicho de otro modo, a cada valor de X le corresponde un único valor de Y.
Apellido nombre
dni leg/apell/nom/fnac/cod.dpto.
(fig. 1)
DNI Apellido Nombre Edad Puesto
laboral
32132055 Escobar Romina 20 Director
30256421 López Jorge 22 Ingeniero
35042126 Morales Carlos 25 Secretario
(fig. 2)
DNI Apellido Nombre Edad Puesto
laboral
32132055 Escobar Romina 20 Director
30256421 López Jorge 22 Ingeniero
32132055 Morales Carlos 25 Secretario
18
Las dependencias funcionales no se pueden interpretar como funciones, sino como restricciones
entre datos.
La dependencia dni edad, no se puede leer como “a partir del dni se obtiene la edad”,
sino que se debe interpretar exclusivamente como “para un valor de dni solo existe una edad asociada”
o “cada dni representa una sola persona y por lo tanto una sola edad”.
Esquema de Relación:
A partir de un conjunto de dependencias funcionales se pueden deducir otras dependencias, las que
permiten deducir unas dependencias a partir de otras se denominan Axiomas y son las siguientes.
• Axioma de Reflexividad: V X, X Y
• Axioma de Aumentatividad: Si X Y, X’ Y V X’ ⊇ X
• Axioma de Proyectividad: Si X Y, X Y’ V Y’ ⊇ Y
• Axioma de Aditividad: Si X Y, U W entonces X U V YUW
• Axioma de Transitividad: Si X Y, Y Z entonces X Z
Un conjunto de dependencias inicial L, junto con todas las dependencias que de él se deducen,
por la aplicación de los Axiomas de Ammstrong se denomina cierre de L y se representa por L+.
R = AUTOMOTOR
L= Pat Titular/Marca/Mod/Color
19
Restricciones de Integridad:
T1 {nro-leg, nom, apell, fnac, cd} ≠ T2 {nro-leg, nom, apell, fnac, cd}
Superclave
Ejemplo:
Ejemplo:
20
En este ejemplo, al ser DNI la única clave, será la clave primaria, y además es simple. Por lo
tanto, de acuerdo a la restricción de integridad de entidad, no podrá existir ninguna fila en la tabla con
valor desconocido para el atributo DNI.
Para ejemplificar la restricción de integridad referencial se necesita plantear una situación
ligeramente más compleja. Imagínese una BD que almacena todos los hombres y mujeres de una
determinada organización, así como las parejas establecidas entre ellos. Una posible representación en
la BD se realizaría a través de tres tablas o relaciones. Una para los hombres, cuya clave sería el DNI
(DNI-H), otra para las mujeres, cuya clave sería también su DNI (DNI-M), y otra tabla para
representar a los matrimonios, que almacenaría los DNI correspondientes a cada pareja, como se
muestra en la sig. Figura
DNI-H DNI-M
1723 4567
1934 2345
En esta tabla se pueden observar los datos correspondientes a dos parejas, la primera de las
cuales estaría formada por las personas con DNI 1723 y 4567.
Para este ejemplo, aplicando la definición de integridad referencial, se obtendría la siguiente
situación. La tabla de matrimonios estaría formada por los dos atributos que la integran DNI-H y DNI-
M.
Se tiene una clave primaria compuesta, donde cualquiera de los atributos, por ejemplo DNI-H
(equivale al A de la definición), está definido sobre un dominio primario, al ser clave simple (B) de la
tabla de hombres (s). Por tanto, todo valor de atributo DNI-H, tiene que aparecer en la tabla Hombres
como un valor del atributo DNI-H en esa tabla.
Esto parece lógico, si se piensa que no se podría definir un matrimonio si previamente no
hemos definido sus integrantes.
Restricciones de integridad:
Incondicional.
A B
1:1
Cómo se representa?
Esposo Esposa
dni-esposo dni-esposa
... ...
... dni-esposo
21
Atributo de vinculación o clave externa. Se puede poner en cualquiera de las dos.
10.000.000 20.000.000
Juan ...
... ...
... 10.000.000
A B
1:M
DUEÑO AUTOS
dni 10.000.000 nro.-pat.
nom modelo
apell color
... dni 10.000.000
A B
M:N
En este caso no se puede representar la relación muchos a muchos. Lo que se hace es reducir el vínculo
en dos relaciones 1:M y crear una nueva relación.
PROFESOR MATERIAS
*nro.leg. *cod.mat.
nombre nom.mat.
apell. ...
domic. nro.leg.
22
10 Algebra 100 A
Juan Análisis I 101 B
Pérez Análisis II 102 C
10
Algebra 20
30
tuplas
10 10 10
100-A 101-B 102-C
Hemos visto:
- Elementos estructurales
- Elementos semánticos
- Elementos de manipulación
- Elementos semánticos:
• Restricciones de dominio
• Restricciones en la clave
• Integridad de entidades
• Integridad referencial
La restricción referencial establece que una tupla de una relación que haga referencia a otra
relación deberá referirse a una tupla existente en la misma.
Para dar una definición más formal de integridad referencial, debemos definir primero el
concepto de Clave Externa. Las condiciones que debe satisfacer una clave externa especifican una
restricción de integridad referencial entre dos esquemas de relación R1 y R2.
Se utiliza entonces el concepto de clave externa que es el atributo de vinculación.
Si existe una vinculación entre dos relaciones R1 y R2, el conjunto de atributos CE en R1 es
una clave externa de R1 si satisface:
1º Los atributos CE tienen el mismo dominio de la clave primaria CP de otra relación R2; se
dice que los atributos CE hacen referencia o se refieren a la relación R2.
2º Un valor de CE en una tupla t1 del estado actual r1(R1) coincide con un valor de CP en
alguna tupla t2 del estado actual r2(R2), o bien es nulo. En el primer caso t1{CE} = t2 {CP} y decimos
que la tupla t1 hace referencia a la tupla t2.
Una clave externa puede hacer referencia a su propia relación.
23
1:1c ASIENTO PASAJERO
*codas *codpas
... ...
codas (CE)
Otros
Son los elementos manipuladores de la información, es decir los operadores que dan acceso a la
información contenida en la BD. Son los operadores que permiten el acceso a la información
contenida en la BD.
El modelo relacional define un conjunto de operadores que forman el álgebra relacional.
Esta Algebra permite la realización de cualquier acceso a la información contenida en la BD. Los
operadores de esta Algebra, denominados operadores relacionales, toman como entrada una o más
relaciones y proporcionan como resultado otra relación.
UNIÓN:
La unión toma dos relaciones R y S como entradas y obtiene como resultado una única relación
denominada R U S constituida por el conjunto de tuplas que pertenecen a R, a S o a ambas. Solo se
aplica a relaciones del mismo grado y definidas sobre los mismos atributos, relaciones que tienen la
misma cabecera, que además será la de la relación unión.
R U S es una relación que incluye todas las tuplas de R y todas las tuplas de S. R y S deben tener
definidos sus atributos en el mismo dominio.
24
S (B1, B2, ..., Bn)
Dom (A1) = Dom (B1)
Dom (A2) = Dom (B2)
...
...
Dom (An) = Dom (Bn)
R S RUS
A B C A B C A B C
1 2 3
1 2 3 3 5 8
4 5 6
4 5 6 1 2 3
9 5 1
9 5 1 3 5 8
INTERSECCIÓN:
R ∩ S es una relación que incluye las tuplas que están tanto en R como en S.
R S R∩S
A B C A B C A B C
1 2 3 1 2 3
3 5 8
4 5 6 1 2 3
9 5 1
DIFERENCIA:
R – S es una relación que incluye todas las tuplas que están en R pero no en S.
R S R-S
A B C A B C A B C
1 2 3 3 5 8 4 5 6
9 5 1
4 5 6 1 2 3
9 5 1
25
PRODUCTO CARTESIANO:
R x S es una operación binaria donde R y S no necesitan ser compatibles. Se usa para combinar
tuplas de 2 relaciones. R x S se define como una relación de grado m+n constituida por todas las
combinaciones de tuplas de R y S, es decir, por todas las tuplas de grado m+n en las que los
primeros m valores coinciden con una tupla de R y los n últimos con una tupla de S. Se asume que
al menos un atributo es común entre R y S.
R S RxS
A B C C D A B CR CS D
7 2 3 3 8 7 2 3 3 8
4 1 8 1 4 7 2 3 1 4
8 5 1 4 1 8 3 8
4 1 8 1 4
8 5 1 3 8
8 5 1 1 4
Operaciones relacionales:
SELECCIÓN:
Sea R una relación y F una fórmula que puede incluir los siguientes elementos:
• Operandos que son nombres de atributos de la relación R.
• Operadores aritméticos de comparación (<, >, =)
• Operadores lógicos (and, or, not)
R ϑ (A>4, D<8)
R
A B C D A B C D
7 2 3 4 7 2 3 4
4 1 6 9 8 5 1 0
2 6 8 3
8 5 1 0
Otro ejemplo
26
EMPLEADO
Apellido Nombre Salario Año Ingreso
Pérez Carlos 1.000 94
Azar Juan 2.000 95
Vera José 1.500 95
Sánchez Manuel 1.800 93
ϑ (EMPLEADOS)
salario < 2.000 and año ingreso < 95
PROYECCIÓN:
La proyección de una relación R sobre un descriptor (conjunto de atributos) X ∏ x(R), donde R es una
relación definida sobre un conjunto de atributos T y X ⊆ T, es una relación constituida por las columnas
de R correspondientes a los atributos de X. Por lo tanto, la proyección es un operador que no cambia el
número de tuplas de la relación resultado, eliminando simplemente algunos atributos de la relación
inicial. Junto con el operador de selección forman el grupo de operadores más genuinamente
relacionales.
Pérez Carlos 94
Azar Juan 95
Vera José 95
Sánchez Manuel 93
UNIÓN NATURAL:
También llamada reunión, o JOIN, la unión natural de R y S, R*S se utiliza para combinar tuplas
relacionadas de dos relaciones en una única relación.
R de grado m
S de grado n
Definidas sobre un conjunto de atributos cuya intersección es no vacía, la unión natural R*S es una
relación de grado m+n que tiene una tupla por cada combinación de tuplas de R y de S, siempre que la
combinación satisfaga la condición de reunión.
Ejemplo:
Sean R y S
27
R
S
A B C
C D
7 2 3
3 8
4 1 8
1 4
8 5 1
RxS
A B CR CS D
7 2 3 3 8
7 2 3 1 4
4 1 8 3 8
4 1 8 1 4
8 5 1 3 8
8 5 1 1 4
Luego selecciono las tuplas donde los valores de los atributos CR y CS coincidan.
RxS
A B CR CS D
7 2 3 3 8
R*S
A B C D
7 2 3 8
28
UNIDAD Nº 4: NORMALIZACIÓN
Conceptos introductorios:
Procedimiento de Normalización:
La normalización de los datos puede considerarse como un proceso durante el cual los
esquemas de relación insatisfactorios se descomponen repartiendo sus atributos entre esquemas de
relación más pequeños que poseen propiedades deseables.
Los diseñadores de BD no deben normalizar hasta la FN más alta posible. Las relaciones
pueden dejarse en FN inferiores por razones de rendimiento.
EMPLEADO
NombreE NSS FechaNac Dirección NumD
CP CE
DEPARTAMENTO
NombreD NumD NSSGteD
CP CE
EMP-DEPTO
NombreE NSS FechaNac Dirección NumD NombreD NSSGteD
Silva, José 12345 ... ... 5 Investig 33344
Vizcarra, Federico 33344 ... ... 5 Investig 33344
Zapata, Alicia 99988 ... ... 4 Administ 98765
Valdéz, Jazmín 98755 ... ... 4 Administ 98765
Nieto, Ramón 66688 ... ... 5 Investig 33344
Si una consulta requiere información relativa al departamento de un simple conjunto con los
atributos del empleado, el esquema EMP-DEPTO, puede servir como relación base (aún con las
anomalías de actualización).
29
Es el proceso con el cual una relación en cierta forma normal (ej. 2FN) se puede convertir en
un conjunto de relaciones en una forma más deseable (ej. 3FN). Este proceso es reversible porque
siempre es posible tomar la salida del proceso (por ejemplo el conjunto de relaciones en 3FN) y
convertirlo otra vez en la entrada (relación en 2FN por ejemplo).
Esa reversibilidad es importante porque significa que no se pierde información durante el
proceso de normalización.
La normalización es útil para el proceso de diseño de BD. La idea general de normalización es
que el diseñador de la BD deberá poner su mira en relaciones en forma normal “final” (3FN). Sin
embargo en ocasiones hay buenas razones para descartar los principios de normalización. El
requerimiento rígido es que las relaciones estén por lo menos en 1FN.
Esta técnica comenzó a usarse con BD relacionales, pero se puede trabajar con otras.
Tomamos como base 3 formas normales que se llaman:
- Primera forma normal 1FN
- Segunda forma normal 2FN
- Tercera forma normal 3FN
La aplicación de la 2FN supone la aplicación primero de la 1FN, y la 3FN de la 2FN.
FACTURA (nrofac, fecha, codprov, nomprov, direcprov, monto, productos: codp, desc, cant, precio)
El problema en este caso que no es una tabla plana. Tiene datos multivaluados.
PRODUCTO
nro.fac. ... 1 2 5 9
nro.fac. producto
100 1
100 2
100 5
100 9
Ahora no tiene datos multivaluados, es una tabla plana pero existe redundancia.
UNA RELACIÓN ESTA EN 1FN si no contiene items repetitivos y los dominios de todos sus
atributos son simples y contienen valores atómicos.
30
Hay mucha redundancia. Si tengo que dar de baja 500, borro la información del producto, esto es por
la dependencia de inserción, eliminación, etc.
PRIMERA FORMA NORMAL: Una relación está en 1FN si incluye solo valores atómicos (simples,
indivisibles) y que el valor de cualquier atributo en una tupla es un valor individual proveniente del
dominio de ese atributo.
Así la 1FN prohibe tener conjuntos de valores, una tupla de valores o una combinación de
ambos como valor de un atributo para una tupla individual. Prohibe las “relaciones dentro de
relaciones” o las “relaciones como atributo de tuplas”.
Ejemplos:
- Cuando uno de los atributos es un conjunto de valores:
DEPARTAMENTO (NomD/NumD/NSSGteD/LugaresD)
El dominio de LugaresD contiene conjuntos de valores, porque cada departamento puede tener varios
lugares, entonces no está en 1FN. Para normalizar sería:
- Cuando un atributo es un atributo compuesto que por si mismo es multivaluado. Este tipo
de atributos se denominan relaciones anidadas porque cada tupla puede tener una relación
dentro de sí.
EMP-PROY (NSS/NomE/Proy:(NumP/Horas))
Proy, es un atributo multivaluado, es una relación dentro de otra relación, entonces EMP-PROY no
está en 1FN.
NSS es la clave primaria de EMP-PROY y NumP es la clave primaria parcial de cada relación anidada,
es decir que en cada tupla, la relación anidada debe tener valores únicos de NumP. Para normalizar
hacemos:
EMP-PROY (Nss/NomE)
EMP-PROY1(NSS/NumP/Horas)
Se pasan los atributos de la relación anidada a otra relación. La clave primaria de la nueva relación
combinaría la clave parcial con la clave primaria original.
UNA RELACIÓN ESTA EN 2FN si y solo si está en 1FN y todo atributo no primo de dicha relación
depende funcionalmente de manera total de la clave primaria de la relación.
Dependencia Funcional:
Dada una relación R y siendo X e Y subconjuntos del conjunto de atributos de R, se dice que el
atributo Y de R depende funcionamente del atributo X de R (X Y), si y solo sí:
31
X
100 1 yerba
200 1 yerba
en este caso la dependencia es solo de una parte de la clave, ya que descripción, cantidad y precio
dependen de cod.prod.
Ejemplo: si se determina la dependencia funcional DNI Nombre, las tuplas de la siguiente tabla
no serían válidas
Si el atributo X es una clave candidata de R (en particular si es clave primaria), entonces todos los
atributos Y de R deben por fuerza depender funcionalmente de X.
Dada una relación R, el atributo Y de R depende funcionalmente del atributo X de R si y solo sí,
siempre que dos tuplas de R concuerden en su valor de X, deben por fuerza concordar en su
valor de Y.
Aplicamos la 2FN cuando la relación ya está en 1FN y tiene clave doble. Si tiene clave simple
no aplicamos 2FN porque ya está en 2FN.
Los atributos no primos, es decir los que no son parte de la clave, dependen de la clave
completa.
FACTURA PROD
FACT-PRODUCTO
FACTURA
nro.fact. Fecha cod.prov. nom.prov. domic.prov. monto
100 10-11-05 A001 Juan Pérez Salta 285 100
200 12-10-05 A001 Juan Pérez Salta 285 1000
300 05-10-05 A002 Carlos Paz Jujuy 300 800
500 04-07-05 A001 Juan Pérez Salta 285 300
32
SEGUNDA FORMA NORMAL:
Si una entidad está en 1FN y tiene una clave simple, entonces está en 2FN.
Una relación está en 2FN si y sólo sí está en 1FN y todos los atributos no clave dependen por completo
de la clave primaria.
- Un atributo no clave es cualquier atributo que no participa en la clave primaria de la
relación en cuestión.
- Dependencia funcional completa o total: una dependencia funcional X Y es una
dependencia funcional total si la eliminación de cualquier atributo A ∈X, hace que la
dependencia deje de ser válida, es decir para cualquier atributo A ∈ Y, (X – {A}) Y.
- Una dependencia funcional X Y es una dependencia funcional parcial si es posible
eliminar un atributo A ∈X de X y la dependencia sigue siendo válida, es decir para algún A
∈X, (X – {A}) Y.
Ejemplo:
EMP-PROY
NSS Nro.Proy Horas NomE NombreP LugarP
Df1
Df2
Df3
{NSS, Nro.Proy} Horas es una dependencia funcional total porque no se cumple que
NSS Horas ni
Nro.Proy Horas
{NSS, Nro.Proy} NomE es una dependencia funcional parcial porque NSS NomE.
Si un esquema de relación no está en 2FN, se lo puede normalizar a varias relaciones en 2FN en la que
los atributos no clave estén asociados solo a la parte de la clave primaria de la que dependan
funcionalmente de manera total.
Ejemplo: así las dependencias funcionales Df1, Df2 y Df3 originan la descomposición de EMP-PROY
en los tres esquemas de relación EP1, EP2 y EP3.
EP1
NSS Nro.Proy Horas
EP2
NSS NomE
EP3
Nro.Proy NombreP LugarP
Demuestre con un ejemplo la importancia de trabajar con una relación que NO VIOLA LA 2FN
33
NSS, Nro.Pro Horas
EMP-PROY
NSS Nro.Proy Horas NomE NombreP LugarP
1234 1 10 Silva, José X Belén
1034 1 20 Estero, José X Belén
2037 1 15 Caceres, Juan X Belén
6001 1 100 Paz, Mario X Belén
Al trabajar con esta relación que viola la 2FN, hay redundancia de datos (para cuatro empleados
distintos se repiten todos los datos del mismo Proyecto).
Además, al presentar las anomalías de actualización: de inserción (si se quiere insertar un nuevo
empleado que aún no pertenece a ningún proyecto, o un nuevo proyecto que aún no tiene empleado),
de eliminación (si se quiere eliminar la tupla de un empleado que es el último empleado de un cierto
proyecto) y de modificación(si se quiere modificar el valor de uno de los atributos de un proyecto
dado, tendrá que actualizar las tuplas de todos loe empleados de ese proyecto).
Luego, es importante trabajar con relaciones que no violen la 2FN.
El proceso de reducción de 1FN a 2FN consiste en sustituir la relación en 1FN por proyecciones
apropiadas (se descompone la relación aplicando el operador de proyección). El conjunto de
proyecciones obtenido es equivalente a la relación original, ya que la relación original se puede
recuperar efectuando la “unión natural” de esas proyecciones, de manera que no se pierde información
con la reducción.
UNA RELACIÓN ESTA EN 3FN si y solo sí está en 2FN y todo atributo no primo es dependiente
no transitivamente de la clave primaria.
A B y B C ⇒ A C
34
FACTURA
PROD
PROVEEDOR FACT-PRODUCTO
Ejercicio:
Dada la siguiente relación, aplique la o las formas normales que sean necesarias para que la misma esté
normalizada.
EMPLEADO (legajo, apellido, nombre, domicilio, proyecto: cod.proy, nom.proy, direct.proy, descrip,
horas.proy)
- Aplico 1FN
EMPLEADO PROYECTO
EMP-PROY
Es decir que no existe un subconjunto propio de atributos componentes de X tales que Y sea
funcionalmente dependiente de ese subconjunto.
Ejemplo:
• PARTES
cod.part / nom.part. / color.part. / ciudad
• PROV-PARTES
nro.prov / cod.part / cant.
35
Si consideramos:
• PROV-PARTES
nro.prov / cod.part / cant. / ciudad
en este caso (nro.prov, cod.part) ciudad de una dependencia funcional pero no es completa
ya que nro.prov ciudad.
Se hará un análisis de algunos criterios para distinguir los esquemas de relación buenos y
malos. Son 4 medidas informales de la calidad para el diseño de esquemas de relación. Estas medidas
son:
a) Semántica de los atributos
b) Reducción de los valores redundantes en las tuplas
c) Reducción de los valores nulos en las tuplas
d) Prohibición de tuplas espurias
Ejemplo:
EMPLEADO
NombreE NSS FechaNac Dirección NumD
CP CE
El significado del esquema de relación EMPLEADO, es muy sencillo. Cada tupla representa un
empleado, con valores para su nombre (NombreE), número de seguro social (NSS), fecha de
nacimiento (FechaNac) y domicilio (Dirección) y para el número de Departamento al que
pertenece (NumD), el cual es una clave externa que representa un vínculo implícito entre
EMPLEADO y DEPARTAMENTO.
DEPARTAMENTO
NombreD NumD NSSGteD LugaresD
CP CE
PROYECTO
NombreP NumP LugarP NumD
CP CE
LUGARES-DEPTOS
NumD LugarD
CE
CP
36
TRABAJA_EN
NSS NumP Horas
CE CE
CP
La semántica de LUGARES-DEPTOS y TRBAJA_EN, es un poco más compleja, cada tupla de
LUGARES-DEPTOS contiene un número de departamento y una de las ubicaciones del departamento.
Cada tupla de TRABAJA_EN contiene el número de seguro social de un empleado, el número de uno
de los proyectos en los que ese empleado trabaja, y el número de horas por semana que el empleado
trabaja en el proyecto.
No obstante ambos esquemas tienen su significado bien definido. LUGARES-DEPTOS representa un
atributo multivaluado de DEPARTAMENTO, en tanto que TRABAJA_EN, representa un vínculo de
M:N entre EMPLEADO y PROYECTO.
EMPLEADO
NombreE NSS FechaNac Dirección NumD
Silva, José 12345 ... ... 5
Vizcarra, Federico 33344 ... ... 5
Zapata, Alicia 99988 ... ... 4
Valdéz, Jazmín 98755 ... ... 4
Nieto, Ramón 66688 ... ... 5
DEPARTAMENTO
NombreD NumD NSSGteD
Investig 5 33344
Administ 4 98765
Direc 1 88866
EMP-DEPTO
NombreE NSS FechaNac Dirección NumD NombreD NSSGteD
Silva, José 12345 ... ... 5 Investig 33344
Vizcarra, Federico 33344 ... ... 5 Investig 33344
Zapata, Alicia 99988 ... ... 4 Administ 98765
Valdéz, Jazmín 98755 ... ... 4 Administ 98765
Nieto, Ramón 66688 ... ... 5 Investig 33344
Uno de los objetivos del diseño es minimizar el espacio de almacenamiento que ocupan las relaciones
base (archivos). La agrupación de archivos en esquemas de relación tiene un efecto significativo sobre
el espacio de almacenamiento.
Por ejemplo, basta con comparar el espacio de almacenamiento utilizado por las relaciones base
EMPLEADO y DEPARTAMENTO con el espacio de la relación base EMP-DEPTO que es el
resultado de la reunión natural entre EMPLEADO y DEPARTAMENTO.
En EMP-DEPTO, los valores de los atributos pertenecientes a un departamento en particular se repiten
para cada empleado que trabaja en ese departamento, en cambio la información de cada departamento
aparece solo una vez en la relación DEPARTAMENTO. Solo el número de departamento se repite en
la relación EMPLEADO, para cada empleado que pertenece al departamento.
El problema grave que surge al emplear relaciones como EMP-DEPTO como relaciones base, es el de
las anomalías de actualización. Estas pueden clasificarse en:
37
- Anomalías de Inserción
- Anomalías de Eliminación
- Anomalías de Modificación
• Anomalías de Inserción:
- Si queremos insertar la tupla de un nuevo empleado en EMP-DEPTO, debemos incluir los
valores de los atributos del departamento al que pertenece o bien nulos (si el empleado no
pertenece a ningún departamento todavía). Para insertar una nueva tupla de un empleado
que pertenece al departamento 5, debemos introducir correctamente los valores del
departamento 5 para que sean congruentes con los valores del departamento 5 en otras
tuplas de EMP-DEPTO. En los esquemas EMPLEADO y DEPARTAMENTO no tenemos
este problema de congruencia ya que solo introduciremos el número de departamento en la
tupla del empleado, todos los demás atributos del departamento 5 se registrarán una sola
vez en la BD de la relación DEPARTAMENTO.
- Sería difícil insertar en la relación EMP-DEPTO un nuevo departamento que todavía no
tenga empleados. La única forma de hacerlo sería colocando valores nulos en los atributos
de empleado y esto es un problema porque el NSS es la clave primaria y se supone que cada
tupla representa a un empleado y no a un departamento.
• Anomalías de Eliminación:
- Si eliminamos de EMP-DEPTO una tupla de empleado que sea el último empleado
perteneciente a un cierto departamento, la información concerniente a ese departamento se
perderá de la BD.
• Anomalías de Modificación:
- En EMP-DEPTO, si alteramos el valor de uno de los atributos de un departamento dado,
debemos actualizar las tuplas de todos los empleados que pertenecen a ese departamento, de
lo contrario, la BD se volverá inconsistente.
Pauta 2: diseñar los esquemas de las relaciones básicas de modo que no haya anomalías de
inserción, eliminación y modificación. Sin embargo hay ocasiones en que es necesario violar esta
pauta para mejorar el rendimiento de ciertas consultas, en ese caso hay que señalarlas con
claridad para que los programas de actualización de BD operen correctamente y no se
produzcan inconsistencias.
En ocasiones se agrupan muchos atributos para formar una relación “gruesa”. Si muchos de los
atributos no se aplican a todas las tuplas de la relación acabaremos con un gran número de nulos en
las tuplas. Esto puede originar un gran desperdicio de espacio en el nivel de almacenamiento y
posiblemente dificulte el entendimiento del significado de los atributos. Además los nulos pueden
tener múltiples interpretaciones como:
- el atributo no se aplica a esta tupla
- se desconoce el valor del atributo para esta tupla
- el valor se conoce pero está ausente, es decir aún no se ha registrado
38
d) Prohibición de tuplas espurias:
EMP-PROY
NSS Nro.Proy Horas NomE NombreP LugarP
1234 1 32 Silva, José PX Belén
1234 2 7 Silva, José PY Sacra
4533 3 40 Nieto, Tomás PZ Higueras
4534 1 20 Estero, José PX Belén
4334 2 30 Estero, José PY Sacra
3334 2 10 Vizgarra, Fer PY Sacra
3334 3 10 Vizgarra, Fer PZ Higueras
LUGARES-EMP
NomE LugarP
Silva, José Belén
Silva, José Sacra
Nieto, Tomás Higueras
Estero, José Belén
Estero, José Sacra
Vizgarra, Fer Sacra
Vizgarra, Fer Higueras
EMP-PROY1
NSS Nro.Proy Horas NombreP LugarP
1234 1 32 PX Belén
1234 2 7 PY Sacra
4533 3 40 PZ Higueras
4534 1 20 PX Belén
4334 2 30 PY Sacra
3334 2 10 PY Sacra
3334 3 10 PZ Higueras
Consideremos los dos esquemas de relación LUGARES-EMP y EMP-PROY1, que podríamos usar en
vez de la relación EMP-PROY. Una tupla de LUGARES-EMP significa que el empleado con el
nombre “NomE” trabaja en algún proyecto ubicado en LugarP.
Una tupla en EMP-PROY1 significa que el empleado con el número de seguro social NSS trabaja
“Horas” por semana en el proyecto cuyo nombre, número y ubicación son: NombreP, Nro.Proy, y
LugarP.
EMP-PROY1
39
NSS Nro.Proy Horas NombreP LugarP NomE
1234 1 32 PX Belén Silva, José
*1234 1 32 PX Belén Estero, José
1234 2 7 PY Sacra Silva, José
*1234 2 7 PY Sacra Estero, José
*1234 2 7 PY Sacra Vizgarra, Fer
4533 3 40 PZ Higueras Nieto, Tomás
*4533 3 40 PZ Higueras Vizgarra, Fer
4534 1 20 PX Belén Estero, José
*4534 1 20 PX Belén Vizgarra, Fer
*4334 2 30 PY Sacra Silva, José
4334 2 30 PY Sacra Estero, José
*3334 2 10 PY Sacra Vizgarra, Fer
*4334 2 30 PY Sacra Silva, José
3334 3 10 PY Sacra Vizgarra, Fer
*3334 3 10 PZ Higueras
3334 3 10 PZ Higueras Vizgarra, Fer
* tuplas espurias
Un esquema de relación está en 3FN si y solo sí está en 2FN y ningún atributo no clave
depende transitivamente de la clave primaria.
Es decir elimina la repetición innecesaria de datos.
Una dependencia funcional X Y en un esquema de relación R, es una dependencia
transitiva si existe un conjunto de atributos Z que no sea un subconjunto de cualquier clave de R y se
cumplen tanto X Z como Z Y.
EMP-DEPTO
NombreE NSS FechaNac Dirección NumD NombreD NSSGteD
La dependencia NSS NSSGteD es transitiva a través de NumD, porque se cumplen las dos
dependencias NSS NumD y NumD NSSGteD, y NumD no es un subconjunto de la
clave de EMP-DEPTO.
La dependencia NSS NombreD también es transitiva a través de NumD.
Para normalizar EMP-DEPTO se descompone en dos esquemas de relación ED1 y ED2 que están en
3FN y representan hechos independientes acerca de las entidades EMLEADOS y
DEPARTAMENTOS. Si se aplica unión natural a ED1 y ED2 se recupera la relación original EMP-
DEPTO.
ED1
NombreE NSS FechaNac Dirección NumD
ED2
NumD NombreD NSSGteD
40
Las relaciones que violan la 3FN como EMP-DEPTO, se presenta el inconveniente de la redundancia
de datos y la anomalías de actualización. Con ED1 y ED2 ya no existe redundancia ni anomalías de
actualización.
41
UNIDAD Nº 5: DISEÑO DE BASES DE DATOS
DISEÑO IMPLEMENTACIÓN
CONCEPTUAL CONCEPTUAL (3)
Independiente de la Dependiente de la
implementación (1) implementación (SGBD,
computador, etc.)
MODELO
CONCEPTUAL (2)
(1) Independiente de cómo los datos van a ser procesados y de los mecanismos de hardware y software
que se utilizarán para el almacenamiento y tratamiento de los datos.
(2) Compuesto de los siguientes modelos: modelo de datos, modelo de eventos y modelo de
transacciones.
(3) Incluye el diseño e implementación de la BD, los programas, los procedimientos.
42
Diseño conceptual:
- Esquema conceptual
- Esquema de Implementación
Se representa
MODELO CONCEPTUAL
Se describe a través de
MAPA DE INFORMACIÓN
Modelo de Datos
Modelo de Transacciones
Modelo de Eventos
DISEÑO CONCEPTUAL:
La construcción del modelo conceptual es una de las etapas más importantes en el diseño del
Sistema de Información de una organización.
En el diseño del modelo conceptual es conveniente partir de un conjunto de “visiones de usuario”
y “visiones de contexto” expresadas en nuestro lenguaje natural (castellano).
El problema principal del diseño conceptual del modelo de datos se encuentra en la identificación
de la entidades, sus atributos, sus vinculaciones, etc.
Para resolverlo se hace uso de visiones de usuario y de visiones de contexto, y del conocimiento
general del diseñador.
Visiones de usuario: es una descripción lógica de la información requerida para contestar una
pregunta, tomar una decisión y/o proveer conocimiento. Un usuario puede tener múltiples visiones y
múltiples usuarios pueden compartir sus visiones.
Visiones de contexto: se refiere a una serie de sentencias que describen a la organización, sus
recursos y su modo de operación. Complementan a las visiones de usuario, aportando
fundamentalmente conocimiento sobre la estructura de datos, ya que explican las vinculaciones entre
los mismos.
43
El Modelo Conceptual involucra tanto aspectos estáticos como dinámicos de la realidad. Se
construye con un propósito preestablecido. Para el logro de ese propósito no es necesaria toda la
información del sistema real, sino solo la parte relevante de ella.
Es justamente el propósito quien controla el proceso de abstracción (selección de la información a
incorporar en el modelo).
Interviene un modelo de datos de alto nivel que manejan conceptos muy parecidos al lenguaje del
usuario, independiente del SGBD para poder interactuar con el usuario y poder ver si se satisfacen sus
necesidades.
El Modelo de Datos captura principalmente los aspectos “estáticos” del Modelo Conceptual,
aunque se ocupa también de algunos aspectos “dinámicos” del mismo.
Los Modelos de Datos pueden ser:
- semánticos
- no semánticos
Modelo de Datos Semántico: reconoce los roles que desempeñan en el sistema real las entidades y
asociaciones.
Modelo de Datos No Semántico: tiene una capacidad limitada de captura de información sobre el
significado de los datos. Reconoce las siguientes clases de objetos en el sistema real.
- entidades y asociaciones
- atributos
- vinculaciones
- valores de atributos
- dominio de valores
Un dato elemental es la pieza mas elemental de información, no puede ser subdividida en elementos
más pequeños sin perder su significado para los usuarios. No es de gran utilidad por si solo. Es útil
solo cuando está “vinculado” con otros datos elementales.
Un dato o elemento de información tiene sentido en la medida en que se relaciona con un objeto
calificándolo o especificándolo. No se puede concebir información independiente de un objeto. El
conjunto de información relacionada con un objeto está definida por una serie de atributos, cada uno
con un determinado valor. Genéricamente se llama entidad a una familia de objetos con los mismos
atributos, no necesariamente con el mismo valor.
ENTIDADES: es algo sobre lo que nos interesa obtener y almacenar información. Pueden ser tangibles
o intangibles. Ej. Clientes, proveedores, ordenes de compra, etc.
44
ATRIBUTOS: son datos elementales de interés para el usuario y forman parte de la entidad. Son
propiedades de la entidad. Los atributos pueden separarse en grupos de acuerdo al rol que desempeñan:
1 – Los que identifican la entidad: Atributos de identificación
2 – Los que describen la entidad: Atributos descriptivos
3 – Los que vinculan entidades: Atributos de vinculación
IDENTIFICADOR ÚNICO: atributo que puede identificar unívocamente a cada miembro de una
entidad. Una entidad puede tener uno, varios (o ningún) identificadores únicos. Si no tiene ninguno se
lo crea artificialmente (Ej. El número de empleado o código de identificación) y recibe el nombre de
“tag” o “etiqueta”. El valor del tag para cada miembro de una entidad puede ser asignado manualmente
o automáticamente por el sistema.
CLAVES: normalmente se usa uno de los identificadores únicos como identificador principal o clave
primaria de la entidad para facilitar la referencia y procesamiento de datos. Cada entidad debe tener
una clave con la cual puedan sus miembros ser identificados. La clave debe poseer dos propiedades:
a) Identificación unívoca: el valor de su clave debe identificar unívocamente
a cada miembro de la entidad.
b) No redundancia: ningún atributo de la clave puede ser desechado sin
destruir la propiedad de identificación unívoca.
CLAVES CANDIDATAS: más de un atributo que cumplen con las propiedades de identificación
única. Conjunto de atributos que cumplen con las propiedades de identificación unívoca y no
redundancia.
Algunas entidades pueden estar vinculadas entre sí conformando una jerarquía. Es posible hablar
entonces de:
a) Entidades primarias o independientes
b) Entidades secundarias o dependientes
• Una entidad dependiente puede tener entidades dependientes de sí (jerarquía de varios niveles).
• Una entidad dependiente no puede existir sin las entidades de mayor nivel jerárquico vinculadas
con ella.
• Una entidad dependiente se vincula con una primaria a través de los atributos de vinculación que
toman valores que se corresponden con valores de identificadores únicos en la entidad superior.
45
• Caracterización Múltiple o Asociación
Caracterización o agregación:
Roles: los miembros de la entidad dependiente caracterizan o describen a los miembros de la entidad
superior. Un miembro de la entidad dependiente se dice que es un componente “part-of” de un
miembro de la entidad superior. Un miembro de la entidad superior se dice que es una composición de
miembros de la entidad dependiente.
Historia
Materias
laboral
Otro ejemplo:
padre PROVEEDOR
DJ1 • nro.fact.
hijo cod.proveedor
FACTURA padre importe total
DJ2
• nro.fact. (AV)
hijo • nro.item
ITEMS - FAC cantidad
En una caracterización se dice que los miembros de la entidad dependiente caracterizan a los
miembros de la entidad superior. EL ATRIBUTO DE VINCULACIÓN FORMA PARTE DE LA
CLAVE.
Clasificación:
Pilotos de
Motores
competición
46
La identificación unívoca de un miembro de la entidad dependiente es propia, es decir, no depende de
la identificación unívoca del miembro vinculado en la entidad superior. Pero para el primer ejemplo, la
clave sería cod.pais (para la entidad superior) y cod.piloto y cod.pais (para la entidad dependiente). Si
bien cod.pais no forma parte de la clave, es un atributo de vinculación, por ello está presente.
cod.piloto
Pilotos de
...
competición
...
...
cod.pais (AV)
En una clasificación los miembros de la entidad dependientes son instancias de los miembros de la
entidad superior.
Generalización:
Cada miembro de la entidad dependiente es también miembro de la entidad superior (es una
extensión de ésta).
Las entidades dependientes, si bien tienen distintas propiedades o atributos, heredan las
propiedades o atributos de la entidad superior. La entidad superior representa la unión de las entidades
dependientes.
Ejemplo:
Empleados
Otro ejemplo:
Persona * dni
47
Clasificación Múltiple: estamos vinculando más de dos entidades. Los atributos de vinculación no
forman parte de la clave de la entidad dependiente. La entidad dependiente tiene un identificador único
propio.
Ejemplo:
Motores * nro.motor
...
...
tipo (AV)
cod.fab. (AV)
Prof-Curso * cod.prof.
* cod.curso
VISIONES DE USUARIO: son los requerimientos de información de los usuarios. Es una descripción
lógica de la información requerida para contestar una pregunta, tomar una decisión y/o proveer
48
conocimiento. Un usuario puede tener múltiples visiones y varios usuarios pueden compartir sus
visiones.
VISIONES DE CONTEXTO: se refiere a una serie de sentencias que describen a la organización, sus
recursos y sus modos de operación. Son un complemento de las visiones de usuario, aportando
fundamentalmente conocimiento sobre la estructura de datos, que explican las vinculaciones entre los
mismos.
Ventajas:
1.- Al usuario le resulta completamente natural la estructuración de la información puesto que el
modelo residente en la BD se corresponde exactamente con el mundo real que se quiere representar.
2.- Permite una mayor velocidad de adaptación cuando es necesaria la reestructuración de la
información para responder a los cambios del negocio.
3.- Minimiza la probabilidad de tener que modificar los programas de aplicación.
4.- La mayoría de las BD implementadas inicialmente en forma no canónica, cuando deben ser
ampliadas para contemplar la incorporación de datos adicionales, tienden naturalmente hacia la forma
canónica.
5.- Posibilita el tratamiento relacional de la BD.
Desventajas:
1.- Una relativamente baja perfomance que podría resultar un problema crítico en algunas
aplicaciones.
2.- Debido a problemas de perfomance en sistemas de alta actividad implementados sobre SGBD sin
esquemas físicos, o con esquemas físicos poco desarrollados, algunas veces es necesario implementar
esquemas lógicos no canónicos que se orientan a maximizar la perfomance del sistema.
3.- Cuando se agreguen nuevas aplicaciones sobre la BD, la nueva perfomance global puede no ser la
óptima.
4.- El alejamiento de la forma canónica debe ser controlado, en caso de que sea necesario.
En el mundo real ocurren cambios constantemente (de estados, de niveles, de flujo, etc.).
Se denomina evento a la ocurrencia de un cambio en un punto del tiempo cuando se satisfacen
ciertas condiciones.
49
En un modelo conceptual, un evento se manifiesta como la ocurrencia de un cambio en los valores
de atributos y/o vinculaciones de los miembros de una o más entidades del modelo de datos.
Los eventos determinan el comienzo, el final, o un cambio en las vinculaciones entre miembros de
las entidades.
Los modelos ponen en movimiento acciones y a su vez las acciones producen eventos en el
sistema real. Las acciones pueden ser observar o cambiar los estados del sistema.
El modelo de eventos es una descripción de las cadenas de eventos que ocurren en el sistema real
y que son relevantes para los propósitos del modelo conceptual.
Cuando un evento, o una secuencia de eventos, en el mundo real requiere un intercambio de
información entre éste y el SI, dicho intercambio se denomina mensaje.
Diseño lógico: El diseño lógico es relativamente complejo porque significa lograr una solución de
compromiso entre diversos factores. Alguno de ellos son:
- Flexibilidad vs. Perfomance: un modelo flexible a los cambios es el que está totalmente
normalizado, pero a mayor reestructuración decrece el rendimiento, se van formando
entidades dependientes.
- Otro aspecto a considerar es el SGBD existente, que puede no ser el más adecuado para el
sistema en cuestión. Por eso a veces se utilizan más de un SGBD.
- En algunos casos puede resultar conveniente descomponer un modelo de información en
varios submodelos de manera de reducir la complejidad operativa del sistema. En estos
casos, cada submodelo debería estar asociado a una función principal de la organización.
- Deben tenerse en cuenta visiones relacionadas con la consulta y la actualización de
información.
Desafortunadamente, con la tecnología actual, existe una incompatibilidad básica de perfomance entre
las consultas a la BD y las actualizaciones (altas y bajas) a la misma.
Por ejemplo, la decisión de beneficiar la perfomance de consulta, sacrificando la perfomance de
actualización, dependerá directamente del grado de volatilidad de la información involucrada.
La primer cuestión que el diseñador del esquema lógico debe verificar es si el SGBD que utilizará
permite implementar un esquema lógico y un esquema físico independientes.
No es posible comenzar el diseño lógico si no se conoce en profundidad el grado de independencia
entre esquemas lógicos y físicos provistos por el SGBD.
Si el SGBD no ofrece un adecuado grado de independencia, el diseñador se verá obligado a unificar las
etapas de diseño lógico y físico, produciendo como resultado un “esquema lógico-físico”. Como
consecuencia de esto, surgirá la necesidad de apartarse de la forma canónica por razones
exclusivamente inherentes al diseño físico.
50
Objetivos del diseño lógico:
La etapa de diseño de modelo de datos concluye con la obtención de la forma canónica. Dicho modelo
es independiente del SGBD y fue realizado sin considerar la frecuencia de los procesos que
interactuarán con la BD, las prioridades, los tiempos de respuesta requeridos para los mismos, etc.
Cuando múltiples usuarios a través de múltiples procesos de diferentes características interactúan con
una misma BD, pueden resultar situaciones de conflicto o de incompatibilidad en los aspectos de
rendimiento, de seguridad y de integridad de datos.
La solución de dichos conflictos es uno de los objetivos del diseño lógico.
Un SGBD puede clasificarse según el tipo de tratamiento para el cual está orientado:
- Tratamiento Navegacional
- Tratamiento Relacional
Como el diseño lógico debe lograr el compromiso de factores, alguno de ellos contrapuestos, es
necesario establecer prioridades.
Un esquema de prioridades generalmente aceptado es:
1.- Satisfacción del usuario final
2.- Satisfacción de las necesidades del negocio
3.- Flexibilidad frente a cambios y crecimiento (normalización)
4.- Integridad (confiabilidad en cuanto a la disponibilidad de información)
5.- Seguridad (confiabilidad de la información)
6.- Perfomance global del sistema costo-operativo
7.- Facilidad de operación
8.- Rendimiento
Esta lista de prioridades apunta a maximizar la usabilidad de la información contenida en la BD.
51
Etapas en el diseño lógico:
1.- Determinar las características físicas de cada atributo (longitud, tipo, etc.)
2.- Determinar la frecuencia de uso de cada visión de usuario.
3.- Determinar la cantidad de miembros que van a componer cada entidad o asociación.
4.- Determinar la cantidad de hijos por padre que contendrá cada vinculación.
5.- Mediante visiones de usuarios y los puntos anteriores, determinar las trayectorias necesarias
y los puntos de entrada a la estructura.
6.- Verificar que los procesos de altas y bajas puedan ser efectuados adecuadamente, mediante
simulación.
7.- Establecer el orden de prioridades para el diseño.
8.- De acuerdo a la prioridades ofrecidas por el sistema de gestión, determinar las trayectorias
que podrán ser implementadas.
9.- Simular el acceso a cada visión de usuario, determinando si el tiempo de respuesta es el
adecuado. Si es necesario, apartarse de la forma canónica.
10.- Al finalizar el diseño verificar que se han respetado las prioridades previamente
establecidas.
Se consideran:
- tiempo de respuesta
- frecuencia de uso de las vistas de usuario
RESERVACIONES (nombre/Nºvuelo/cant.plazas)
repetitivo
Si la mayor actividad de consulta es por nombre de la persona, podríamos violar la 1FN introduciendo
grupos repetitivos.
PERS-RESER(nombre/otros datos/Nºvuelo/cant.plazas)
VUELOS(Nºvuelo/origen/destino/fecha/...)
Puede verse que al orientar el esquema lógico se ha perdido la posibilidad de acceder en forma directa
a todas las personas que tienen reservas para un determinado vuelo. Para poder responder a este
interrogante con el último esquema será necesario realizar una búsqueda sobre toda la relación
personas reservas.
52
Para solucionar este problema sería posible introducir un grupo repetitivo en VUELOS conteniendo
los nombres de las personas que tienen reservas efectuadas.
Si este es el caso podríamos observar que mediante la introducción de información redundante
podemos lograr mejorar los accesos de consulta pero estaremos deteriorando la perfomance de
actualización (estamos introduciendo una anomalía de actualización).
Una decisión de este tipo sería apta para un sistema de alta actividad y baja volatilidad de la
información almacenada.
También podríamos violar la 2FN introduciendo una dependencia funcional incompleta.
VUELOS(Nºvuelo/origen/destino/fecha/...)
En general puede verse que cuando nos apartamos de las formas normales nos encontramos con
anomalías tanto en las altas como en las bajas de información.
Una desnormalización provocará, en la mayoría de los casos, que al usuario le resulte menos
“natural” su interacción con la Base.
Es conveniente consultar con los usuarios aquellas soluciones de compromiso que puedan
afectar, la facilidad de uso, los tiempos de respuesta, etc.
VUELOS(Nºvuelo/origen/destino/fecha/...)
En este esquema es necesario que las consultas a PERS-RESER se hagan mediante la clave doble
nombre+NºVuelo, lo cual puede resultar un inconveniente. Sería posible crear un índice secundario
para PERS-RESER que permita el acceso por nombre (recordar que una persona puede tener varias
reservaciones para diferentes vuelos).
Otro ejemplo:
PROYECTO
EMPLEADOS
a) “Dado un empleado, el nombre del proyecto en el que trabajó”
b) “Dado un proyecto, el nombre de los empleados”
PROYECTO Cod.Proy./Nom.Proy./LugarProy.
EMPLEADOS Dni/apell/nom/Cod.Proy.(AV)
53
Violando la 2FN
PROYECTO Cod.Proy./ LugarProy.
EMPLEADOS Dni/Cod.Proy/apell/nom/Nom.Proy.
Violando la 1FN
PROYECTO Cod.Proy./Nom.Proy./LugarProy./Empleados:dni
EMPLEADOS Dni/apell/nom/Cod.Proy.(AV)
Se entiende por costo de accesos lógicos al número de accesos a registros lógicos para realizar
una operación en la BD, mediante una “navegación” a través de trayectorias lógicas potencialmente
disponibles.
Determinar este costo:
- ayuda a determinar potenciales situaciones de baja perfomance o de tiempos de respuesta
inadecuados
- posibilita comparar el funcionamiento de diseños alternativos
Para determinar trayectorias a implementar hay que encontrar las vinculaciones utilizadas por
cada visión de usuario y las trayectorias a través de las que hay que navegar para acceder a la
información requerida.
Cuando para satisfacer a una visión de usuario hay más de una alternativa posible, es decir más
de una entrada a la estructura, es conveniente tomar aquella que corresponde a la navegación más
corta, es decir la que resulta tener un menor costo de accesos lógicos.
DISEÑO FÍSICO:
54
2) Minimizar la cantidad de accesos requeridos al almacenamiento secundario mediante un adecuado
dimensionamiento de buffers en el almacenamiento principal.
3) Optimizar el uso de almacenamiento secundario por la BD. Esta optimización puede resultar
parcialmente anulada cuando múltiples BD comparten un mismo eje de discos y son procesados
concurrentemente por varios programas.
El diseño físico supone también lograr un compromiso entre factores contrapuestos. No es posible
definir una forma óptima, en términos absolutos de organización física.
El diseñador tratará de optimizar el diseño físico para la mezcla de procesos considerada también
en la etapa de diseño lógico.
El diseño físico termina con un LDA (lenguaje de descripción de almacenamiento).
El problema de diseño de bases de datos puede expresarse así: diseñar la estructura lógica y física
de una o más bases de datos para atender las necesidades de información de los usuarios en una
organización para un conjunto definido de aplicaciones.
Podemos identificar seis fases principales del proceso de diseño de bases de datos:
1. Recolección y análisis de requerimientos.
2. Diseño conceptual de la base de datos.
3. Elección de un SGBD.
4. Transformación al modelo de datos (llamado también diseño lógico de la base de datos).
5. Diseño físico de la base de datos.
6. Implementación del sistema de base de datos.
Antes de poder diseñar eficazmente una base de datos, debemos conocer las expectativas de los
usuarios y los usos que se piensa dar a la base de datos con el mayor detalle posible. El proceso de
identificar y analizar los usos propuestos se denomina recolección y análisis de requerimientos. Para
especificar los requerimientos, primero debemos identificar las demás partes del sistema de
información que van a interactuar con el sistema de base de datos. Entre ellas están los usuarios y las
aplicaciones nuevas y ya existentes. Una vez hecho esto, se reunirán y analizarán los requerimientos de
dichos usuarios y aplicaciones.
Diseño del esquema conceptual: El esquema conceptual que resulta de esta fase suele estar contenido
en un modelo de datos de alto nivel independiente del SGBD, de modo que no puede usarse
directamente para implemenar la base de datos.
La meta del diseño del esquema conceptual es un entendimiento completo de la estructura, el
significado (semántica), los vínculos y las restricciones de la base de datos. Lo mejor es lograr esto
independientemente de un SGBD específico porque todos los SGBD suelen tener peculiaridades y
restricciones que no deben influir sobre el diseño del esquema conceptual.
55
El esquema conceptual es muy valioso como una descripción estable del contenido de la base
de datos. La elección del SGBD y las decisiones de diseño posteriores pueden cambiar sin alterar el
esquema conceptual independiente del SGBD.
Un buen entendimiento del esquema conceptual es decisivo para los usuarios de la base de
datos y los diseñadores de aplicaciones. Por ello es sumamente importante el empleo de un modelo de
datos de alto nivel que sea más expresivo y general que los modelos de datos de los SGBD
individuales.
Enfoque para el diseño de esquemas conceptuales: Para diseñar un esquema conceptual
debemos identificar los componentes básicos del esquema: los tipos de entidades, los tipos de vínculos
y sus atributos. También debemos especificar los atributos clave, la cardinalidad y las restricciones de
participación en vínculos.
La elección del SGBD depende de varios factores, algunos de ellos técnicos, otros económicos
y otros más relativos a las políticas de la organización. Los factores técnicos tienen que ver con la
idoneidad del SGBD para la tarea en cuestión. Lo que debemos considerar aquí son el tipo de SGBD
(relacional, de red, jerárquico, orientado a objetos, o de otra clase), las estructuras de almacenamiento
y caminos de acceso que maneja el SGBD, las interfaces de usuario y programador disponibles, los
tipos de lenguajes de consulta de alto nivel, etc.
Esta etapa consiste en crear un esquema conceptual y esquemas externos en el modelo de datos
del SGBD elegido. Esto se logra transformando los esquemas conceptual y externos producidos en la
fase 2 del modelo de datos de alto nivel al modelo de datos del SGBD.
La transformación puede hacerse en dos etapas:
1. Transformación independiente del sistema: EN este paso, la transformación al modelo de
datos del SGBD no considera las características específicas o casos especiales que se
aplican a la forma como el SGBD implementa el modelo de datos. Realizamos la
transformación del ER a un esquema relacional, orientado a objetos, jerárquico o de red,
independiente del SGBD.
2. Adaptación de los esquemas a un SGBD específico: Los diferentes SGBD implementan un
modelo de datos con características y restricciones de modelado específicas. Tal vez sea
preciso ajustar los esquemas obtenidos en el paso 1 para adaptarlos a las características de
implementación específicas de un modelo de datos en el SGBD seleccionado.
El resultado de esta fase debe consistir en enunciados DDL escritos en el lenguaje del SGBD
elegido que especifiquen los esquemas a nivel conceptual y externo del sistema de base de datos. Sin
embargo, si los enunciados DDL contienen algunos parámetros de diseño físico, la especificación
completa en DDL deberá esperar hasta que se haya concluido la fase de diseño físico.
56
Fase 5 – Diseño Físico de la base de datos:
Una vez completados los diseños lógico y físico, podemos implementar el sistema de base de
datos. Se compilan los enunciados escritos en el DDL (lenguaje de definición de datos) y en el SDL
(lenguaje de definición de almacenamiento) del SGBD seleccionado, y con ellos se crean los esquemas
de la base de datos y sus archivos (vacíos). En seguida ya puede cargarse la base de datos.
57
UNIDAD Nº 7 : MODELO DE DATOS JERÁRQUICO
Registro: es una colección de valores de campos que proporcionan información sobre una entidad o un
ejemplar de vínculo. Los registros del mismo tipo se agrupan en Tipos de Registros. Cada Tipo de
Registro recibe un nombre y su estructura se define en términos de una colección de campos. Cada
campo tiene un cierto tipo de datos, como entero, real o cadena.
Tipo de Vínculos Padre-Hijo: es una vinculación 1:N entre dos tipos de registros. El tipo de registros
del lado 1 se denomina tipo de registros Padre y el del lado N se llama tipo de registro Hijo del tipo
VPH. Una ocurrencia del tipo de VPH consiste en un registro del tipo de registros Padre y varios
registros (0 o más) del tipo de registros Hijo.
DEPARTAMENTO
NOMD NUMD NOMGTE FECH
EMPLEADO PROYECTO
NOME NSS FECHAN DIRE NOMP NUMP LUGARP
1. La raíz del esquema jerárquico, no participa como tipo de registros hijo en ningún tipo de VPH.
2. Todo tipo de registros, con excepción de la raíz, participa como tipo de registros hijo en uno y
sólo un tipo de VPH.
3. Un tipo de registro puede participar como tipo de registros padre en cualquier cantidad (0 o
más) de tipos de VPH.
4. Un tipo de registros que no participa como tipo de registros padre en ningún tipo de VPH se
denomina hoja del esquema jerárquico.
5. Si un tipo de registros participa como padre en más de un tipo de VPH, entonces sus tipos de
registros hijo están ordenados. Por convención se ordenan de izquierda a derecha.
58
Estas propiedades significan que “todos los nodos excepto la raíz tienen uno y solo un nodo padre.
No obstante un nodo puede tener varios nodos hijo, y en tal caso están ordenados de izquierda a
derecha”.
Estas propiedades limitan los tipos de vínculos que se pueden presentar en un esquema jerárquico.
Los vínculos M:N no pueden representarse directamente porque los vínculos padre-hijo son 1:N y
un tipo de registros no puede participar como hijo en dos o más VPH distintos.
En el modelo jerárquico es posible manejar los vínculos M:N si se pueden duplicar los ejemplares
de registros hijo.
Por ejemplo consideremos un vínculo M:N entre EMPLEADO Y PROYECTO, donde un proyecto
puede tener varios empleados que trabajan en él, y un empleado puede trabajar en varios proyectos.
Podemos representar el vínculo como un tipo de VPH (PROYECTO, EMPLEADO) como se
muestra en la figura b. En este caso, un registro que describa al mismo empleado puede duplicarse si
aparece una vez debajo de cada uno de los proyectos en los que ese empleado trabaje. Como
alternativa, podemos representar el vínculo como un tipo de VPH (EMPLEADO, PROYECTO) como
se muestra en la figura c, en cuyo caso podremos duplicar los registros de proyectos.
59
nodo padre más uno. Un nodo descendiente de un nodo N es un nodo conectado a N a través de uno o
más arcos, de tal modo que el nivel de D es mayor que el de N. Un nodo N y todos sus nodos
descendientes forman un subárbol del nodo N. Ahora podemos definir un árbol de ocurrencia como el
subárbol de un registro cuyo tipo es del tipo de registros raíz.
La raíz de un árbol de ocurrencia es una sola ocurrencia de registro del tipo de registros raíz. Puede
haber un número variable de ocurrencias de cada tipo de registros no raíz, y cada una de ellas debe
tener un registro padre en el árbol de ocurrencia, es decir cada una de esas ocurrencias debe participar
en una ocurrencia de VPH.
Nivel 0: D
DEPARTAMENTO
NOMD NUMD NOMGTE FECH
T TRABAJADOR
Nivel 2: N DEPENDIENTE S SUPERVISADO
NOM NSS HORAS
NOMDE SEX FECHNAC NOM NSS
D Administración
E Zapata
E Valdéz
N Abdiel
S Zapata
S Jabbar
E Jabbar
P Automatización
T Vizcarra
T Zapata
T Jabbar
P Nuevasprestaciones
T Zapata
T Valdéz
T Jabbar
Fig. f. Secuencia jerárquica del árbol de ocurrencia de la fig. e.
60
Vínculos virtuales padre-hijo
El caso 1 puede representarse como un tipo de VPH a expensas de duplicar ocurrencias de registros del
tipo de registros hijo.
El caso 2 puede representarse en forma similar, con más duplicación de registros.
El caso 3 es problemático porque el VPH es un vínculo binario.
Fig. g Fig. h
APUNTE APUNTP
Cada registro del tipo de registro HV contiene un apuntador a un registro del tipo de registro PV. Cada
ocurrencia del registro Hijo Virtual apunta a una y solo una ocurrencia del registro Padre Virtual.
En vez de duplicar el registro P en el árbol de ocurrencias, se incluye el registro virtual h que tiene un
apuntador a P. Varios registros virtuales pueden apuntar a P, pero solo se almacenan una copia de P en
la BD.
Solución:
- incluir más de un esquema jerárquico en la BD y usar apuntadores de los nodos de un
esquema al otro para apuntar los vínculos.
Beneficios:
- una sola copia de cada registro hijo y varios registros pueden apuntar al nuevo registro hijo.
61
Restricciones de integridad en el Modelo Jerárquico
1. Ninguna ocurrencia de registro, con excepción de los registros raíz, pueden existir si no está
relacionada con una ocurrencia de registro padre. Esto implica:
a. Ningún registro hijo puede insertarse si no está enlazado a un registro padre.
b. Un registro hijo se puede eliminar independientemente de su padre; pero la eliminación de un
padre causa automáticamente la eliminación de todos sus hijos.
c. Las reglas anteriores no se aplican a los registros hijo y padres virtuales. La regla en este caso
es que un apuntador en un registro hijo virtual debe apuntar a una ocurrencia real de un registro
padre virtual. No debe permitirse la eliminación de un registro en tanto existan apuntadores a él
en registros hijo virtuales, lo que lo convierte en un registro padre virtual.
2. Si un registro hijo tiene dos o más registros padre del mismo tipo de registros, el registro hijo debe
duplicarse una vez bajo cada registro padre.
3. Un registro hijo que tenga dos o más registros padre de diferentes tipos de registros solo puede
tener un padre real, todos los demás deben representarse como padres virtuales.
P A
Y EP7 Y EP8 E3 E
P D
E4 E
E6 E
Aquí solo hay una copia de cada registro EMPLEADO, varios registros virtuales pueden apuntar al
mismo registro EMPLEADO. Así la información almacenada en dicho registro no se duplicará. La
información que dependa tanto de los registros pare como hijo, como las horas por semana que un
trabajador dedica a un proyecto se incluirá en el registro apuntador virtual.
62
Hay dos estructuras de datos básicas en el modelo de Red:
- Registros
- Conjuntos
Los datos se almacenan en registros, cada registro consiste en un grupo de valores de datos
relacionados entre sí. Los registros se clasifican en tipos de registros, cada uno de los cuales describe
la estructura de un grupo de registros que almacenan el mismo tipo de información. Damos un nombre
a cada tipo de registro y también damos un nombre y un tamaño (tipo de datos) a cada elemento de
información (atributo) del tipo de registros.
La fig. (a) muestra un tipo de registros ESTUDIANTE con los elementos de información: NOM, NSS,
DIR, DPTOCA y FENAC, y también el tipo de datos de cada elemento de información.
Conjuntos:
Tipos de Conjuntos:
Un tipo de conjuntos es una descripción de un vínculo 1:N entre dos tipos de registros. Cada
definición de tipo de conjuntos consta de tres elementos básicos:
- un nombre para el tipo de conjuntos
- un tipo de registros propietario
- un tipo de registros miembro
63
Fig. (b)
DEPARTAMENTO
NOMD ... ... ... ...
DEPTO-CARRERA
ESTUDIANTE
NOM NSS DIR DPTOCA FENAC
DEPARTAMENTO
registro propietario Ciencias de la computación ... Matemáticas ...
64
Ramón Paredes ...
Tipos especiales de Conjuntos:
• Conjuntos SINGULARES o PROPIEDAD del Sistema: son conjuntos sin tipo de registros
propietario, en este caso, el sistema es el propietario. Podemos considerar al Sistema como un tipo
de registro propietario “virtuales” especial en el que sólo hay una ocurrencia de registro. Se
denomina conjunto singular porque sólo hay una ocurrencia en ese conjunto.
Los conjuntos propiedad del sistema tienen dos funciones principales en el modelo de red:
- Proveen puntos de entrada a la BD a través de los registros del tipo de registros miembro
especificado.
- Pueden servir para ordenar los registros de un tipo de registros dado mediante las
especificaciones de ordenamiento del conjunto. Si un usuario especifica varios conjuntos
propiedad del sistema para el mismo tipo de registros, puede tener acceso a sus registros en
diferentes órdenes.
Conjunto Singular SISTEMA
DEPARTAMENTO
NOM NSS DIR DPTOCA FENAC
Esta es una representación diagramática del conjunto propiedad del sistema TODOS-DEPTOS, que
permite tener acceso a los registros DEPARTAMENTO en orden según cierto campo, por ejemplo
NOM, con una especificación apropiada de ordenamiento de conjunto.
65
• Conjuntos RECURSIVOS: es un tipo de conjuntos en el que el mismo tipo de registros desempeña
el papel tanto de propietario como de miembro.
Un ejemplo de vínculo recursivo 1:N que se puede representar con un conjunto recursivo es el
vínculo SUPERVISIÓN, que relaciona un empleado supervisor con la lista de empleados a los que
supervisa directamente. El registro EMPLEADO sesempeña ambos papeles, el de tipo de registro
propietario (el empleado supervisor) y el de tipo de registros miembros (los empleados
supervisados).
En el caso de los conjuntos recursivos, el mismo registro puede ser propietario de una ocurrencia
de conjunto y miembro de otra, si ambas ocurrencias de conjunto son del mismo tipo de conjuntos.
Por este problema, se acostumbra representar los conjuntos recursivos en el modelo de red con un
tipo de registros de enlace (o ficticio) adicional. La misma técnica se utiliza para representar
vínculos M:N.
PROYECTO EMPLEADO
SUPERVISOR SUPERVISADO
APUNTE
Fig. (h) – Representación prohibida
de un conjunto recursivo
Fig. (g) – Conjunto recursivo SUPERVISIÓN representado mediante un
tipo de registro de enlace.
Casi ninguna implementación de SGBD de red permite al mismo tipo de registros participar como
propietario y como miembro en el mismo tipo de conjuntos.
Un tipo de conjuntos representa un vínculo 1:N entre dos tipos de registros. Esto significa que
un registro del tipo de registros miembro solo puede aparecer en una ocurrencia del conjunto.
Si queremos representar un vínculo 1:1 entre dos tipos de registros con un tipo de conjuntos,
debemos hacer que cada ocurrencia de conjunto solo pueda tener un registro miembro. El modelo de
red no cuenta con mecanismos para imponer automáticamente esta restricción, por lo que el
programador debe comprobar que no se viole esta restricción cada vez que se inserta un registro
miembro en una ocurrencia de conjunto.
Si queremos representar un vínculo M:N entre dos tipos de registros no puede representarse con
un solo tipo de conjuntos. El método correcto para representar éste vínculo es utilizar dos tipos de
conjuntos y un tipo de registros adicional denominado tipo de registros de enlace o ficticio. Cada
registro del tipo de registros enlace sirve para relacionar dos registros propietarios.
EMPLEADO PROYECTO
NOME NSS FECHAN DIRE NOMP NUMP LUGARP
P_T
E_T
TRABAJA EN
66
HORAS
Fig. (i) – Representación de un vínculo M:N mediante conjuntos, empleando un tipo de registros de enlace.
TRABAJA_EN
EMPLEADOS T1 PROYECTOS
(E2,P1,30)
T2
(E2,P1,30)
P1
E1 T3
(E2,P1,30)
P2
E2 T4
(E2,P1,30)
T5
E3 (E2,P1,30) P3
T6
(E2,P1,30)
E4 P4
T7
(E2,P1,30)
Fig. (j) – Representación de algunas ocurrencias de un vínculo M:N con ocurrencias enlazadas.
67
Las restricciones de retención especifican si un registro de un tipo de registros miembro pueden
existir en la BD por sí solo o si siempre debe estar relacionado con un propietario como miembro de
algún ejemplar de conjunto. Hay tres opciones de retención:
- Opcional: un registro miembro puede existir por si solo sin ser miembro de ninguna
ocurrencia del conjunto. Se le puede conectar y desconectar de las ocurrencias de conjuntos
a voluntad con las órdenes connect y disconnect.
- Obligatoria: ningún registro miembro puede existir por si solo, siempre debe ser miembro
de una ocurrencia de conjunto del tipo de conjuntos. Se le puede reconectar en una sola
operación de una ocurrencia de conjunto a otra mediante la orden reconnect.
- Fija: al igual que en la obligatoria, ningún registro miembro puede existir por si solo. Por
añadidura, una vez insertado en una ocurrencia de conjunto queda fijo, no se le puede
reconectar a otra ocurrencia de conjunto.
68
Una BDOO es una base de datos que incorpora los conceptos importantes del paradigma de
objetos:
En una BDOO, los usuarios pueden definir operaciones sobre los datos como parte de una
definición de la base de datos.
Los programas de aplicación de los usuarios pueden operar sobre los datos invocados a dichas
operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han
implementado. Esto se denomina independencia entre los programas y operaciones.
Está diseñada para ser eficaz, desde el punto de vista físico, para almacenar objetos complejos.
Evita el acceso a los datos; esto es mediante los métodos almacenados en ella. Es más segura ya que no
permite tener acceso a los datos (objetos); esto debido a que para poder entrar se tiene que hacer por
los métodos que haya utilizado el programador.
Una BDOO almacena objetos. Los datos se almacenan junto a los métodos que procesan dichos
datos. Las BDOO toman la idea de bases inteligentes de datos a su conclusión lógica. No se tiene
acceso a dato alguno si no es a través de los métodos almacenados en la base de datos. Estos métodos
están listos para entrar en acción al momento en que reciben una solicitud. Los datos de todos los
objetos quedan entonces encapsulados, esto es porque todas las operaciones que un usuario pueda
aplicar están predefinidas.
Además las BDOO combinan las mejores cualidades de los archivos planos, las bases
jerárquicas y relacionales; proporcionan una estructura flexible con acceso ágil, rápido, con gran
capacidad de modificación. Estás permiten el desarrollo y mantenimiento de aplicaciones complejas ya
que se puede utilizar un mismo modelo conceptual y así aplicarlo al análisis, diseño y programación,
esto reduce el problema entre los diferentes modelos a través de todo el ciclo de vida, con un costo
significativamente menor.
Ofrecen un mejor rendimiento de la máquina que las bases de datos por relación, para
aplicaciones ó clases con estructuras complejas de datos. Sin embargo, las BDOO coexistirán con las
bases de datos por relación como una forma de estructura de datos dentro de una BDOO.
La diferencia principal respecto a las otras bases de datos es la no positividad de los datos. En
efecto, con una base de datos tradicional las operaciones que se tienen que efectuar en los datos se les
piden a las aplicaciones que los usan. Con una BDOO los objetos memorizados en la base de datos
contienen tanto los datos como las operaciones posibles con tales datos. En cierto sentido, se podrá
pensar en los objetos como en datos a los que se les ha puesto una inyección de inteligencia que les
permite saber cómo comportarse, sin tener que apoyarse en aplicaciones externas.
69
CARACTERISTICAS
En una base de datos orientada a objetos, cualquier cosa es un objeto y se manipula como tal.
Un objeto es una instancia que responde a mensajes activando un método.
Las clases son una colección de objetos con propiedades similares, compartimiento común,
relaciones comunes a otras clases.
La instancia es un objeto con propiedades definidas en su descripción de la clase.
El mensaje es una clase que debe tener un método correspondiente. Un mensaje puede ser
enviado a un objeto a ejecutar una acción.
El método es una lista de instrucciones detalladas que definen cómo responde un objeto a un
mensaje en particular.
La superclase es la clase que deriva a otra clase.
La subclase es la clase derivada de una superclase.
La liga expresa compatibilidad de relaciones entre las clases.
Los objetos heredan las características de su clase y de todas las clases de nivel superior a la
que pertenecen.
Estos principios y técnicas hacen que las BDOO estén adecuadas a aplicaciones que implican
tipos de datos complejos, tales como documentos compuestos o de diseño asistidos por computadora
que combinan texto, gráficos y hojas de cálculo.
Las Bases de Datos proporcionan un modo natural de representar las jerarquías que aparecen en
los datos complejos. La jerarquía de clases permite a la Base de Datos seguir la pista del tipo de cada
objeto en el documento. Finalmente, el mecanismo de mensajes ofrece soporte natural para una
interfaz de usuarios gráfica.
PROPIEDADES
70
• El objetivo principal es el encapsulado, que permite almacenar datos y métodos. Los datos solo
pueden utilizarse mediante los métodos, los datos están diseñados para ser utilizados por esos
métodos.
• Los objetos son activos, las solicitudes hacen que los objetos ejecuten sus métodos, algunos
pueden ser complejos como aquellos que utilizan un motor de inferencias.
• Las clases son diseñadas para una alta utilización y son rara vez modificadas, pudiendo ser
reorganizadas sin modificar su forma de uso.
• Las estructuras de datos son complejas, esto es transparente al usuario, debido a que estos están
encapsulados.
• Los datos están ligados entre si, de modo que los métodos logren un mejor entendimiento.
• No se busca obtener datos no redundantes, sino métodos no redundantes utilizando el
encapsulado y la herencia.
• Las solicitudes al objeto provocan la ejecución de sus métodos.
Las BDOO se pueden construir mediante alguno de los tres enfoques siguientes:
El Segundo: considera a la BDOO como una extensión de la tecnología de las bases de datos
por relación. De este modo, las herramientas, técnicas, y vasta experiencia de la tecnología por
relación se utilizan para construir un nuevo SABD. Se pueden añadir apuntadores a las tablas
de relación para ligarlas con objetos binarios de gran tamaño. La base de datos también debe
proporcionar a las aplicaciones clientes un acceso aleatorio y por partes a grandes objetos, con
el fin de que sólo sea necesario recuperar a través de la red la parte solicitada de los datos.
El Tercero: reflexiona sobre la arquitectura de los sistemas de bases de datos y produce una
nueva arquitectura optimizada, que cumple las necesidades de la tecnología OO. Las
compañías como Versant, Objectivity, Itasca, etc. Utilizan esté enfoque y afirman que la
tecnología de relación es un subconjunto de una capacidad más general. Además que las
BDOO no de relación son aproximadamente dos veces más rápidas que las bases de datos por
relación para almacenar y recuperar la información compleja. Por lo tanto, son esenciales en
aplicaciones como CAD y permitirían que un depósito CASE fuera una facilidad de tiempo real
en vez de una facilidad por lotes.
ARQUITECTURA
Las primeras BDOO se diseñaron como una extensión de los LOO como C++ o Smalltalk,
donde el DML y el DDL constituyen un lenguaje OO común.
Muchos de los elementos de bases relacionales son importantes en BDOO, entre ellos el
bloqueo para acceso concurrente, recuperación, compromiso de dos fases, seguridad, integridad de
datos, distribución de datos y herramientas de bases de datos.
DESARROLLO UNIFICADO
71
El desarrollo tradicional de sistemas, utiliza cuatro modelos conceptuales diferentes. El análisis
genera matrices que asocian funciones con entidades. El diseño utiliza diagramas de flujo, tablas de
estructura y diagramas de acción. Los lenguajes tienen un modelo conceptual del código distinto. Y las
bases de datos relacionales utilizan otro modelo conceptual diferente a los anteriores.
Por el contrario el enfoque OO utiliza el mismo modelo de objetos en las fases de análisis,
diseño, programación y BDOO.
POSIBLES DESVENTAJAS
- Al considerar la adopción de la tecnología orientada a objetos, la inmadurez del mercado de
BDOO constituye una posible fuente de problemas por lo que debe analizarse con detalle la
presencia en el mercado del proveedor para adoptar su producto en una línea de producción
sustantiva.
- El segundo problema es la falta de estándares en la industria orientada a objetos.
RENDIMIENTO
Las BDOO permiten que los objetos hagan referencia directamente a otro mediante
apuntadores suaves. Esto hace que las BDOO pasen más rápido del objeto A al objeto B que las BDR,
las cuales deben utilizar comandos JOIN para lograr esto. Incluso el JOIN optimizado es más lento que
un recorrido de los objetos. Así, incluso sin alguna afinación especial, una BDOO es en general más
rápida en esta mecánica de caza-apuntadores.
Una Base de Datos Distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente
relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de
comunicaciones.
Un Sistema de Manejo de Base de Datos Distribuida (SMBDD) es aquel que se encarga del
manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribución sea
transparente a los usuarios. Transparente significa que la aplicación trabajaría como si un solo SMBD
ejecutado en una sola máquina, administrara esos datos.
72
Un Sistema de Base de Datos Distribuida (SBDD) es entonces el resultado de la integración
de una base de datos distribuida con un sistema para su manejo.
Dada la definición anterior, es claro que algunos sistemas no se pueden considerar como
SBDD. Por ejemplo, un sistema de tiempo compartido no incluye necesariamente un sistema de
manejo de base de datos y, en caso de que lo haga, éste es controlado y administrado por una sola
computadora. Un sistema de multiprocesamiento puede administrar una base de datos pero lo hace
usualmente a través de un solo sistema de manejo de base de datos.
Finalmente una base de datos la cual reside en un solo sitio de una red de computadoras y que
es accesada por todos los nodos de la red, no es una base de datos distribuida. Este caso se trata de una
base de datos cuyo control y administración esta centralizada en un solo nodo pero se permite el
acceso a ella a través de la red de computadoras.
PRINCIPIOS FUNDAMENTALES
Es posible expresar lo que podría considerarse como el principio fundamental de las BDD.
Desde el punto de vista del usuario, un sistema distribuido deberá ser idéntico a un sistema no
distribuido. Los usuarios del sistema distribuido deberán comportarse exactamente como si el sistema
no estuviera distribuido. A esto es lo que llamamos “la regla cero” de los sistemas distribuidos. Esta
conduce a varios objetivos o reglas secundarias; ellas son:
CARACTERÍSTICAS
• Los datos se pueden colocar físicamente en el lugar donde se accesan más frecuentemente,
haciendo que los usuarios tengan control local de los datos con los que interactúan. Esto resulta en
una autonomía local de datos permitiendo a los usuarios aplicar políticas locales respecto al tipo de
accesos a sus datos.
• Mediante la replicación de información, las bases de datos distribuidas pueden presentar cierto
grado de tolerancia a fallas haciendo que el funcionamiento del sistema no dependa de un solo
lugar como el caso de las bases de datos centralizadas.
VENTAJAS
• Los datos son localizados en un lugar más cercano, por lo que el acceso es más rápido.
73
• El procesamiento es rápido debido a que varios nodos intervienen en el procesamiento de una
carga de trabajo.
• Nuevos nodos se pueden agregar fácil y rápidamente.
• La comunicación entre nodos se mejora.
• Los costos de operación se reducen.
• Son amigables al usuario.
• La probabilidad de que una falla en un solo nodo afecte al sistema es baja y existe una autonomía e
independencia entre los nodos.
DESVENTAJAS
• La principal desventaja se refiere al control y manejo de los datos. Dado que éstos residen en
muchos nodos diferentes y se pueden consultar por nodos diversos de la red, la probabilidad de
violaciones de seguridad es creciente si no se toman las precauciones debidas.
• Mayor tiempo extra de procesamiento: el intercambio de mensajes y los cálculos adicionales son
una forma de tiempo extra que no existe en los sistemas centralizados.
Cuando se trabaja con BDD se tienen que considerar los siguientes problemas:
1. El Diseño de la fragmentación. Este se determina por la forma en que las relaciones globales
se subdividen en fragmentos horizontales, verticales o mixtos.
74
los fragmentos en los sitios, creando las imágenes físicas. Luego, se completa ejecutando en cada
sitio, “el diseño físico” de los datos, que se localizan en éste.
El diseño de una Base de Datos Distribuida, cualquiera sea el enfoque que se siga, debe
responder satisfactoriamente las siguientes preguntas: ¿Porqué hacer una fragmentación de datos?,
¿cómo realizar la fragmentación?, ¿qué tanto se debe fragmentar?, ¿cómo probar la validez de una
fragmentación?, ¿cómo realizar la asignación de fragmentos?, ¿cómo considerar los requerimientos de
la información?
75