2. Bases de datos relacionales
• Codd propone el modelo relacional para bases
de datos en 1970.
• Ésta es la base para la construcción de los
SGBDR.
• El modelo relacional consiste en:
Conjunto de objetos o relaciones
Conjunto de operadores que actúan sobre los objetos
Reglas para asegurar la integridad y consistencia del
propio modelo.
3. Bases de datos relacionales
Una relación consta de:
•Un esquema: conjunto de pares (atributo,dominio).
•Un cuerpo: conjunto de tuplas de pares (atributo,valor).
Definición de una Base de Datos Relacional Una base de datos relacional
es un conjunto de relaciones (o tablas) de dos dimensiones.
4. Bases de datos relacionales
Un modelo relacional de datos es considerado teóricamente desde varios
aspectos.
1. Aspecto estructural: El usuario percibe la información de la base de
datos como tablas y nada más que tablas.
2. Aspecto de integridad: Estas tablas satisfacen ciertas restricciones
de integridad .
3. Aspecto de manipulación: Los operadores disponibles para que el
usuario manipule estas tablas, por ejemplo, para fines de recuperación
de datos. En particular hay tres operadores : restringir, proyectar y juntar
(este último operador también es conocido como combinar
o reunir).
6. Algunas reglas
Propiedad de la llave principal
Primera Regla de Integridad (de la Entidad): Las componentes de una
llave primaria no pueden ser nulos.
Propiedad de la llave foránea
Segunda Regla de Integridad (de Referencia): Las componentes de una
llave foránea son nulas o son iguales que el valor de alguna llave primaria
en una tabla del modelo.
7. Operaciones restringir, proyectar y juntar
■ La operación restringir (también conocida
como seleccionar) extrae las filas
especificadas de una tabla.
■ La operación proyectar extrae las columnas
especificadas de una tabla.
■ La operación juntar reúne dos tablas con
base en valores comunes de una columna
común.
9. Bases de Datos Orientadas a
Objetos
Cada objeto representa una entidad del mundo real con la capacidad de
actuar consigo misma y de interactuar con otros objetos. Teniendo en
cuenta este concepto, las bases de datos orientadas a objetos (OODB)
están diseñadas para capturar los datos de un sistema de negocio, que
puede ser considerado como un conjunto de objetos que interactúan entre
sí.
Objeto, entidad y tupla
Un objeto OODM tiene características adicionales a las de las entidades o
tuplas, como comportamiento, herencia y encapsulado. Tales características
OODM hacen que el modelado OO sea más natural que el modelado E-R y
relacional.
Atributos
Los objetos son descritos por sus atributos, conocidos como variables de
instancia en un ambiente OO. Cada atributo tiene un nombre único y un tipo
de datos asociado a él. Los atributos también tienen un dominio. El dominio
10. Modelado orientado a objetos
Identidad del objeto
La identidad del objeto está representada por el ID de objeto (OID), el cual es
único de ese objeto. El OID es asignado por el sistema al momento de la
creación del objeto y no puede ser cambiado en ninguna circunstancia.
Clase, conjunto de entidades y tabla
El concepto de clase puede ser asociado con los conceptos de conjunto de
entidades y tabla de los modelos E-R y relacional, respectivamente. No
obstante, clase es un concepto más poderoso que permite no sólo la
descripción de la estructura de datos sino también la descripción del
comportamiento de los objetos clase.
Encapsulado y herencia
El encapsulado es la capacidad de ocultar los detalles internos del objeto
(atributos y métodos). Esta capacidad deriva de que la estructura interna de
un objeto no puede ser accedida directamente por otro objeto, garantizando
la integridad del estado del objeto.
11. Modelado orientado a objetos
Relaciones
La principal propiedad de cualquier modelo de datos se encuentra en su
representación de relaciones entre los componentes de datos. Las relaciones
en un OODM pueden ser de dos tipos: relación interobjeto o herencia de
jerarquía de clases.
Relaciones interobjeto: Una relación atributo-clase o relación interobjeto, se
crea cuando el atributo de un objeto hace referencia a otro objeto de la misma
o diferente clase. Existen dos tipos de relaciones interobjeto: relaciones 1:M y
M:N.
Relaciones de herencia de jerarquía de clases
Las relaciones de herencia de jerarquía de clases se utilizan para describir la
relación entre las clases de la jerarquía.
12. Relaciones entre clases
•uno o muchos: 1..* (1..n)
•0 o muchos: 0..* (0..n)
•número fijo: m (m denota el
número).
Especialización/Generalización:
Indica que una subclase hereda los
métodos y atributos especificados por
una SuperClase, por ende la
Subclase además de poseer sus
propios métodos y atributos, poseerá
las características y atributos visibles
de la SuperClase (public y protected).
13. Relaciones entre clases
Agregación:
Cuando se requiere componer objetos que son instancias de clases definidas por
el desarrollador de la aplicación, tenemos dos posibilidades:
Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del
objeto incluido esta condicionado por el tiempo de vida del que lo incluye.
Este tipo de relación es comúnmente llamada Composición (el Objeto base
se construye a partir del objeto incluido, es decir, es "parte/todo"). ROMBO
RELLENO
Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida
del objeto incluido es independiente del que lo incluye. Este tipo de relación es
comúnmente llamado Agregación (el objeto base utiliza al incluido para su
funcionamiento). Un Almacén posee Clientes y Cuentas (los
rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacén también
son destruidos los objetos Cuenta asociados, en
cambio no son afectados los objetos Cliente
asociados.
14. Relaciones entre clases
Asociación:
La relación entre clases conocida como Asociación, permite asociar objetos
que colaboran entre si. Cabe destacar que no es una relación fuerte, es
decir, el tiempo de vida de un objeto no depende del otro.
Un cliente puede tener asociadas muchas Ordenes de Compra, en
cambio una orden de compra solo puede tener asociado un cliente.
15. Relaciones entre clases
Dependencia o Instanciación (uso): -------- >
Representa un tipo de relación muy particular, en la que una clase es
instanciada (su instanciación es dependiente de otro objeto/clase). Se
denota por una flecha punteada.
El uso más particular de este tipo de relación es para denotar la
dependencia que tiene una clase de otra, como por ejemplo una aplicación
grafica que instancia una ventana (la creación del Objeto Ventana esta
condicionado a la instanciación proveniente desde el objeto Aplicación):