Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
CONTENIDO
Sistemas de Bases de Datos Orientados a
Objeto.
Características, ventajas y desventajas.
Implementación del Modelo de Objeto.
Representación de relaciones.
Consultas.
Sistemas de Bases de Datos Relacionales
Extendidos.
Transformación del Modelo de Objetos al
Modelo Relacional.
OBJETIVOS
Conocer los conceptos básicos de los
DBMS’ OO
Cliente
identificacion : int Cuenta
nombre : char*
direccion : char* +$posee NoCuenta : int
saldo : double
telefono : char*
1..*
actualizar()
depositar()
retirar()
Utilizando C++ para lograr una implementación de este modelo conceptual podríamos
tener las siguiente definición para el objeto cliente.
class CLIENTE
{protected:
int identificación;
char nombre[20];
char dirección[30];
char teléfono[15];
public:
void depositar(double monto, int cuenta);
void retirar(double monto, int cuenta);
};
void main()
{ CLIENTE cliente1, cliente2, cliente3; }
En la codificación anterior es fácil percibir que la
palabra class denota una declaración de clase.
CLIENTE es el nombre que se le ha dado ha esta
clase; el cuerpo de la clase “{}” define los
atributos y funciones miembros del objeto que
representa la clase. Observe que en la declaración
del cuerpo de la clase se han incluido las palabras
public y protected que definen el carácter
publico o privado de los datos y métodos de una
clase. Se ha incluido también la función de inicio
estándar de C++ “main” donde se declaran tres
objetos basado en la clase CLIENTE.
Clases derivadas o herencia simple.
Las herencia es el mecanismo mediante el cual se pueden crear
clase nuevas basadas en clases ya existentes. Cuando se
implementa la herencia teniendo como base una clases
existentes (clases abstractas) esta sede todo los atributos y
comportamientos a las clases nuevas (clases derivadas) que se
deriven de ella. Ha esto se conoce también como derivación de
clases.
C l ie n t e
i d e n t i fi c a c i o n : i n t C u e n ta
n o m b re : c h a r*
+ $posee N o C u e n ta : i n t
d ire c c io n : c h a r*
s a l d o : d o u b le
t e l e fo n o : c h a r * 1 .. *
a c tu a li z a r ( )
d e p o s it a r()
re t ira r()
C lie n t e _ P e rs o n a C l i e n t e _ In s t i t u c i ó n
sexo : char e m p l ea d o s : in t
fe c h a _ n a c : c h a r t ip o _ o r g : c h a r
p e r s _ c o n ta c t o : c h a r
void main()
{ CLIENTE_PERSONA CP; CLIENTE_INSTITUCIÓN CI; }
Agregación
Ahora veremos que pasa con las relaciones de
agregación. Comenzaremos el análisis a partir del
modelo de la figura 3. Observemos que el objeto
VENTA esta compuesta por la agregación del objeto
PRODUCTO y el objeto PAIS. En una relación de
agregación los objetos agregados colaboran con el
objeto que los contiene para funcionar como un todo.
En este sentido se podría afirmar que el objeto
VENTA contiene dentro de si a los objetos PAIS Y
PRODUCTO.
Producto
Id_Producto : int Pais
Descripcion : char* Nombre_Pais : char*
Venta
cantidad : int
class PAIS
{protected:
char nombre_pais[30];
};
class VENTA
{protected:
int cantidad;
PAIS p;
PRODUCTO prod;
};
void main()
{ VENTA esta_venta; }
Herencia múltiple
La herencia múltiple establece que se puede derivar una clase a
partir de dos o mas clases padres. Analicemos ahora que sucedería
en el ejemplo del banco si los empleados de este también pueden
ser clientes del banco.
Empleado
Ocupacion Cliente_Institución
Departamento Cliente_Persona empleados : int
Salario sexo : char tipo_org : char
fecha_nac : char pers_c ontac to : char
Empleado_Cliente
class EMPLEADO
{
protected:
char ocupación[8];
char departamento[8];
double salario;
};
Una colección de objeto esta soportada bajo una estructura de datos, estas
pueden ser listas simplemente enlazadas, listas doblemente enlazadas, árboles o
grafos, la particularidad de estas estructuras es que contienen objetos. A la hora
de declarar un enlace múltiple en una clase entonces tendríamos que declarar
un puntero al primer elemento de la colección suponiendo que este tiene
enlazado el resto de los objetos a través de una lista.
EQU IPO
N um eroD eEquipo EQUIPO (NumeroDeEquipo, Descripción,
D es cripción
FechaD eAdquis ición
FechaDeAdquisición, CostoDeCompra)
C os toD eC om pra
SOCIO CASILLERO
CASILLERO
SOCIO ID NúmeroDeCasillero
ID NúmeroDeSocio ID NúmeroDeCasillero
ID NúmeroDeSocio
Nombre Tipo
Tipo
Nombre Combinación
Dirección
Dirección Combinación
Ciudad Ubicación
Ubicación
Ciudad
Estado
Estado
CodigoPostal SOCIO
SOCIO
CodigoPostal 0:1
0:1
CASILLERO
CASILLERO
1:1
1:1
(a)
(b)
Ejemplo de representación relacional de objetos
combinados 1:N
(a) Objetos combinados 1:N y (b) su representación.
EQUIPO
EQUIPO
ID NúmeroDeSerie
REPARACION
REPARACION
ID NúmeroDeSerie
ID NúmeroDeFactura
ID NúmeroDeFactura
Tipo
Tipo
Modelo Fecha
Fecha
Modelo Descripcion
FechaDeAdquisición
FechaDeAdquisición Descripcion
CostoDeAdquisición Costo
Costo
CostoDeAdquisición
Ubicación
Ubicación EQUIPO
EQUIPO
REPARACION 1:N
1:N
REPARACION
0:N
0:N
(a)
(b)
3) Representación de las relaciones uno a muchos y
muchos a uno
Representación relacional del ejemplo de objetos combinados
N:M (a) Objetos LIBRO y AUTOR
(b) Su representación relacional.
LIBRO
LIBRO AUTOR
AUTOR
ID
IDISBN
ID
ISBN IDNúmeroDeSeguroSocial
NúmeroDeSeguroSocial
Titulo Nombre
Titulo Nombre
NumeroDeSolicitud Dirección
NumeroDeSolicitud Dirección
LIBRO
LIBRO
AUTOR 1:N
AUTOR 1:N
1:N
1:N
(a)
(b)
REPRESENTACION DE RELACIONES MUCHOS A MUCHOS
OBJETO1
OBJETO1 OBJETO2
ID O1 OBJETO2
ID O1 ID O2
ID O2
.. ..
.. ..
.. ..
OBJETO2
OBJETO2 OBJETO1
N:N
N:N OBJETO1 O:N
O:N
R1 R2
O1
O1 .. .. .. O2
O2 .. .. ..
R3
O1
O1 02
02 .. .. ..
Ejercicio No. 1 Forma de Suscripción
La figura (a) muestra una forma de suscripción a una revista, muestre
el modelo Orientado a Objetos y el Modelo Relacional
considerando:
a) La compañia tiene una publicación y no tiene planes para
producir revistas adicionales.
b) Si la compañia tiene varias publicaciones y el cliente puede
suscribirse a mas de una de ellas
SUSCRIPCION
NúmeroDesuscripcion FechaInicial FechaFinal CantidadAdeudada Nombre
CLIENTE
CLIENTE SUSCRIPCION
ID
ID NúmeroDeCliente
SUSCRIPCION
NúmeroDeCliente ID
ID NúmeroDeSuscripcion
NúmeroDeSuscripcion
Nombre
Nombre FechaInicial
FechaInicial
Dirección
Dirección FechaFinal
FechaFinal
Ciudad
Ciudad CantidadAdeudada
CantidadAdeudada
Estado
Estado CodigoDePago
CodigoDePago
CodigoPostal
CodigoPostal
CLIENTE
CLIENTE
SUSCRIPCIÓN
SUSCRIPCIÓN 1:N
1:N
1:N
1:N
CLIENTE
NumeroDeCliente Nombre Dirección Ciudad Estado CodigoPostal
SUSCRIPCION
NúmeroDesuscripcion FechaInicial FechaFinal CantidadAdeudada CodigoDePago NumeroDeCliente
Ejercicion No. 2 Citatorio para amonestación vial
X Firma del
conductor
Dirección:
AVISO-DE-INFRACCION CONDUCTOR
ID
ID Número
Nombre
CONDUCTOR 1:1 1:1 Apellido
VEHÍCULO 1:1 1:1 NombreDePila
OFICIAL 1:1
1:1 Inicial 1:1
FechaDeLaFalta Dirección
Mes Ciudad
Dia Estado
Año 1:1 CodigoPostal
Hora ID
ID Licencia
Dist. LicenciaDelConductor 1:1
Destac. Estado
Ubicación Sexo
Distancia FechaDeNacimiento
Sentido Estatura
Ciudad 1:1
Peso
Vialidad Ojos
Falta 1:N
1:N
AcciónRequerida AVISO-DE-INFRACCION 1:N
1:N
VEHICULO
VEHICULO OFICIAL
ID
ID Licencia
Licencia ID
ID NúmeroPersonal
LicenciaDelVehiculo
LicenciaDelVehiculo
Estado Nombre
Estado
Color
Color
Año
Año AVISO-DE-INFRACCION 1:N
1:N
Marca
Marca
Tipo
Tipo
ID
ID NIV
NIV
PropiedadRegistrado
PropiedadRegistrado
Dirección
Dirección
AVISO-DE-INFRACCION
AVISO-DE-INFRACCION 1:N
1:N