Post on 19-Feb-2018
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 1/15
SSE URIEL LOPEZ LOPEZ
Utilizando la programación orientada
a objetos es más fácil modelar un
roblema de la vida real con objetos.
ENSAYO7MAUNIDAD
ASES DE DATOSRIENTADOS A OBJETOS
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 2/15
INTRODUION
!as bases de datos orientadas a objetos son lo más moderno en este siglo ""I
esto se debe al poder #ue tiene el paradigma de programación orientada a
objetos$ utilizando la programación orientada a objetos es más fácil modelar un
problema de la vida real con objetos % as& lo agrupamos en clases$ es más fácil de
optimizar el problema$ en este ensa%o 'ablaremos sobre la programación
orientada a objetos referente a las bases de datos$ sus caracter&sticas$ tambi(n
'ablaremos sobre los datos complejos % datos básicos % tambi(n 'ablaremos
sobre el concepto de 'erencia en )*! % 'erencia en tablas.
+., -isión general.
n una base de datos orientada a objetos$ la información se representa mediante
objetos como los presentes en la programación orientada a objetos. uando se
integra las caracter&sticas de una base de datos con las de un lenguaje deprogramación orientado a objetos$ el resultado es un sistema gestor de base de
datos orientada a objetos /OD01)$ object database management s%stem2.
Un OD01) 'ace #ue los objetos de la base de datos aparezcan como objetos de
un lenguaje de programación en uno o más lenguajes de programación a los #ue
d( soporte.
!as bases de datos orientadas a objetos se dise3an para trabajar bien enconjunción con lenguajes de programación orientados a objetos como 4ava$ 5$
-isual 0asic.NT % 66. !os OD01) usan e7actamente el mismo modelo #ue
estos lenguajes de programación.
!os OD01) son una buena elección para a#uellos sistemas #ue necesitan un
buen rendimiento en la manipulación de tipos de dato complejos.
!os OD01) proporcionan los costes de desarrollo más bajos % el mejor
rendimiento cuando se usan objetos gracias a #ue almacenan objetos en disco %
tienen una integración transparente con el programa escrito en un lenguaje de
programación orientado a objetos$ al almacenar e7actamente el modelo de objeto
usado a nivel aplicativo$ lo #ue reduce los costes de desarrollo % mantenimiento.
(WIKIPEDIA, 2015)
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 3/15
+.8 Tipos de datos complejos.
!os modelos de bases de datos tradicionales /relacional$ red % jerár#uico2 'an sido
capaces de satisfacer con (7ito las necesidades$ en cuanto a bases de datos$ de
las aplicaciones de
9estión tradicional. )in embargo$ presentan algunas de:ciencias cuando se trata
de aplicaciones más complejas o so:sticadas como$ por ejemplo$ el dise3o %
fabricación en ingenier&a /;D<;1$ I12$ los e7perimentos cient&:cos$ los
sistemas de información geográ:ca o los sistemas multimedia.
!os re#uerimientos % las caracter&sticas de estas nuevas aplicaciones di:eren en
gran medida de las t&picas aplicaciones de gestión= la estructura de los objetos es
más compleja$ las transacciones son de larga duración$ se necesitan nuevos tipos
de datos para almacenar imágenes % te7tos$ % 'ace falta de:nir operaciones no
estándar$ espec&:cas para cada aplicación. !as bases de datos orientadas aobjetos se crearon para tratar de satisfacer las necesidades de estas nuevas
aplicaciones.
!a orientación a objetos ofrece >e7ibilidad para manejar algunos de estos
re#uisitos % no está limitada por los tipos de datos % los lenguajes de consulta de
los sistemas de bases de datos tradicionales. Una caracter&stica clave de las
bases de datos orientadas a objetos es la potencia #ue proporcionan al dise3ador
al permitirle especi:car tanto la estructura de objetos complejos$ como las
operaciones #ue se pueden aplicar sobre dic'os objetos.
(Marqués, 2002)
Tipos de datos complejos:
Colecciones: Tambi(n conocidos como conjuntos$ este tipo de datos clasifican los
arra%s % los conjuntos en #ue los elementos pueden aparecer varias veces.
Tipos estructurados: !os tipos estructurados permiten representación directa de
los atributos compuestos en los diagramas entidad?relación.
Objetos de gran tamaño: Desde %a 'ace varios a3os #ue se necesita almacenar
datos con atributos mu% grandes /-arios 1b%tes2$ como libros$ canciones$ etc.
incluso a@n más grandesA como mapas de alta resolución$ video$ etc. #ue puede
llegar fácilmente a los 9igab%tes.
(WIKIPEDIA, 2015)
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 4/15
7.3 Tipos estructurados y herencia en SQL.
!os tipos estructurados permiten representar directamente los atributos
compuestos de los diagramas ?R. Bor ejemplo$ se puede definir el siguiente tipo
estructurado para representar el atributo compuesto nombre con los atributos
componentes nombreCpila % apellidos=
create type Nombre as
(nombre_pia varchar (20),
apei!os varchar (20))
final
De manera parecida$ el tipo estructurado siguiente puede usarse para representar
el atributo compuesto dirección=
create type Dire""ion as
("ae varchar (20),
"iu!a! varchar (20),
"o!i#o_pos$a varchar (%))
not final
n )*! estos tipos se denominan tipos definidos por el usuario. !as
especificaciones final indica #ue no se puede crear subtipos de nombre$ mientras#ue la especificación not final de dirección indica #ue se pueden crear subtipos
de dirección. ;'ora se pueden usar estos tipos para crear atributos compuestos en
las relaciones$ con sólo declarar #ue un atributo es de uno de estos tipos. Bor
ejemplo$ se puede crear una tabla cliente de la siguiente manera=
create table "ien$e (
nombre Nombre,
!ire""ion Direccion,
&e"'a_na"imien$o date )
O bien$ realizando una estructura más del tipo liente % generar la tabla a partir de
ella=
create type ipoien$e as
(nombre Nombre,
!ire""ion Direccion,
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 5/15
&e"'a_na"imien$o date )
not final
create table "ien$e of ipoien$e
)e puede tener acceso a los componentes de los atributos compuestos usando la
notación puntoEA por ejemplo$ nombre.nombreCpila devuelve el componente
nombre de pila del atributo nombre. l acceso al atributo nombre devolver&a un
valor del tipo estructurado Nombre.
!a siguiente consulta ilustra la manera de tener acceso a los atributos
componentes de los atributos compuestos. !a consulta busca el apellido % la
ciudad de cada cliente.
select nombre*apei!o, !ire""ion*"iu!a!
from "ien$e
Herencia.
!a 'erencia puede 'allarse en el nivel de los tipos o en el nivel de las tablas. n
primer lugar se considerará la 'erencia de los tipos % despu(s en el nivel de las
tablas=
Herencia de tipos: !os tipos derivados 'eredan los atributos de superclaseA los
m(todos tambi(n se 'eredan por sus subtipos$ al igual #ue los atributos. )in
embargo$ un subtipo puede redefinir el efecto de un m(todo declarándolo de
nuevo$ % esto será lo #ue se conoce como sobre escritura /overriding2 del m(todo.
)upóngase #ue se tiene la siguiente definición de tipo para las personas=
create type Persona
(nombre varchar (20),
!ire""ion varchar (20))
Buede #ue se desee almacenar en la base de datos información adicional sobre
las personas #ue son estudiantes % sobre las #ue son profesores. Dado #ue los
estudiantes % los profesores tambi(n son personas$ se puede usar la 'erenciapara definir en )*! los tipos estudiante % profesor=
create type Es$u!ian$e
under Persona
(#ra!o varchar (20),
!epar$amen$o varchar (20))
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 6/15
create type Pro&esor
under Persona
(sue!o nte!er ,
!epar$amen$o varchar (20))
(Abra'am +ibers"'a$, 2002)
7." #erencia de tablas.
ada tabla almacena la clave primaria$ #ue se puede 'eredar de una tabla padreA
% los atributos definidos localmente. !os atributos 'eredados$ aparte de la clave
primaria$ no será necesario guardarlos$ podrán obtenerse mediante una reunión
con la super tabla basada en la clave primaria. Bor lo #ue cada tabla almacena
todos los atributos 'eredados % definidos localmente. uando se inserta una tupla$
se almacena sólo en la subtabla en la #ue se inserta % su presencia se infiere en
cada supertabla. l acceso a todos los atributos de una tupla es más rápido$ dado#ue no se re#uiere una reunión=
!as subtablas de )*! se corresponden con el concepto de
especialización<generalización de ?R Bor ejemplo$ supóngase #ue se define la
tabla personas de la siguiente manera=
create table personas of Persona
; continuación se puede definir las tablas estudiantes % profesores
como subtablas de personas$ de la manera siguiente=
create table es$u!ian$es of Es$u!ian$eunder personascreate table pro&esores of Pro&esor under personas
!os tipos de las subtablas deben ser subtipos del tipo de la tabla madre. Bor tanto$todos los atributos presentes en personas tambi(n están presentes en lassubtablas.
;demás$ cuando se declaran estudiantes % profesores como subtablas depersonas$ todas las tuplas presentes en estudiantes % profesores pasan a estar tambi(n presentes de manera impl&cita en personas. Bor tanto$ si una consulta usala tabla personas$ no sólo encuentra tuplas directamente insertadas en esa tabla$sino tambi(n tuplas insertadas en sus subtablas$ es decir$ estudiantes %profesores. No obstante$ esa consulta sólo puede tener acceso a los atributos #ueestán presentes en personas.
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 7/15
)*! permite 'allar tuplas #ue se encuentran en personas pero no en sussubtablas usando en las consultas only personasE en lugar de personas. !apalabra clave only tambi(n puede usarse en las sentencias delete % update.)in la palabra clave only$ la instrucción delete aplicada a una supertabla$ comopersonas$ tambi(n borra las tuplas #ue se insertaron originalmente en las
subtablas /como estudiantes2A por ejemplo$ la instrucción
delete from personas $here P
0orrará todas las tuplas de la tabla personas$ as& como de sussubtablas estudiantes % profesores$ #ue satisfagan B. )i se a3ade la palabraclave only a la instrucción anterior$ las tuplas #ue se insertaron en las subtablasno se ven afectadas$ aun#ue satisfagan las condiciones de la cláusula where.
(Abra'am +ibers"'a$, 2002)
-*5 ipos !e arre#o mu$i"on.un$o en +/*
)*! soporta dos tipos de conjuntos= arra%s % multiconjuntosA los tipos arra% se
a3adieron en )*!=,FFF$ mientras #ue los tipos multiconjuntos se agregaron en
)*!=8GGH. Un multiconjunto es un conjunto no ordenado$ en el #ue cada elemento
puede aparecer varias veces.
)upóngase #ue se desea registrar información sobre libros$ incluido un conjuntode palabras clave para cada libro. )upóngase tambi(n #ue se deseara almacenar
almacenar el nombre de los autores de un libro en forma de arra%A a diferencia de
los elementos de los multiconjuntos$ los elementos de los arra%s están ordenados$
de modo #ue se puede distinguir el primer autor del segundo autor$ etc. l ejemplo
siguiente ilustra la manera en #ue se puede definir en )*! estos atributos como
arra%s % como multiconjuntos.
"rea$e $pe E!i$or as
(nombre ar"'ar(20),
su"ursa ar"'ar(20))
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 8/15
"rea$e $pe ibro as
($i$uo ar"'ar(20),
arra_au$ores ar"'ar(20) arra3104,
&e"'a_pubi"a"ion !a$e,
e!i$or E!i$or,
"on.un$o_paabras_"ae ar"'ar(20) mu$ise$)
"rea$e $abe ibros o& ibro
reación % acceso a los valores de los conjuntos
n )*!=,FFF se puede crear un arra% de valores de esta manera=
arra3+ibers"'ar$6, Kor$'6, +u!ars'an64
De manera parecida$ se puede crear un multiconjunto de palabras clave de la
manera siguiente=
mu$ise$3+ibers"'ar$6, Kor$'6, +u!ars'an64
Bor lo tanto$ se puede crear una tupla definido por la relación ibros como=
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 9/15
inser$ in$o ibros
aues
(ompia!ores6, arra378me6, +an$os664,
ne9 E!i$or(M"7ra9:;i6, Nuea <or=6),
mu$ise$3an>isis sin$>"$i"o6, an>isis64)
)e puede tener acceso a los elementos del arra% o actualizarlos especificando el
&ndice del arra%$ por ejemplo$ arra_au$ores,J.
onsulta de los atributos valorados como conjuntos
;'ora se considerará la forma de manejar los atributos #ue se valoran como
conjuntos. !as e7presiones #ue se valoran como conjuntos pueden aparecer en
cual#uier parte en la #ue pueda aparecer el nombre de una relación$ como las
cláusulas from.
)i se desea averiguar todos los libros #ue contengan las palabras base de datosEentre sus palabras clave$ se puede usar la consulta siguiente=
see"$ $i$uo
&rom ibros
9'ere base !e !a$os6 in
(unnes$("on.un$o_paabras_"ae))
/;bra'am )ilbersc'atz$ 8GG82
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 10/15
-*? dentidad de los objetos y tipos de referencia en SQL.
!os lenguajes orientados a objetos ofrecen la posibilidad de 'acer referencia a
objetos. !os atributos de un tipo dado pueden servir de referencia para los objetos
de un tipo concreto. Bor ejemplo$ en )*! se puede definir el
tipo Depar$amen$o con el campo nombre % el campo !ire"$or $ #ue es una
referencia al tipo Persona$ % la tabla departamentos del tipo Depar$amen$o$ de la
manera siguiente=
create type Depar$amen$o/
nombre varchar /8G2$
!ire"$or ref /Persona2 scope personas2
create table !epar$amen$os of Depar$amen$o
n este caso$ la referencia está restringida a las tuplas de la tabla personas. !a
restricción del ámbito de referencia a las tuplas de una tabla es obligatoria en
)*!$ % 'ace #ue las referencias se comporten como las claves e7ternas.
!a tabla a la #ue 'ace referencia debe tener un atributo #ue guarde el identificador
para cada tupla. se atributo$ denominado atributo autorreferenciable /self?
referential attribute2$ se declara a3adiendo una cláusula ref is a la
instrucción create table=
create table personas of Persona
ref is i!_persona system generated
n este caso$ i!_persona es el nombre del atributo$ no una palabra clave$ % la
instrucción system generated especifica #ue la base de datos genera de manera
automática el identificador.
Bara inicializar el atributo de referencia 'a% #ue obtener el identificador de la tupla
a la #ue se va a 'acer referencia. )e puede conseguir el valor del identificador de
la tupla mediante una consulta. Bor tanto$ para crear una tupla con el valor de
referencia$ primero se puede crear la tupla con una referencia nula % luego definir
la referencia de manera independiente=
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 11/15
insert into !epar$amen$os
values /K)L$ null2
update !epar$amen$os set !ire"$or M /select p*i!_persona
from persona as p
where nombre M K1art&nL2
where nombre M K)L
Una alternativa a los identificadores generados por el sistema es permitir #ue los
usuarios generen los identificadores. l tipo del atributo autoreferencial debe
especificarse como parte de la definición de tipos de la tabla a la #ue se 'ace
referencia$ % la definición de la tabla debe especificar #ue la referencia
estágenerada por el usuario /user generated2=
create type Persona
/nombre varchar /8G2$
!ire""ion varchar /8G22
ref using varchar /8G2
create table personas of Persona
ref is i!_persona user generated
;l insertar tuplas en personas 'a% #ue proporcionar el valor del identificador=
insert into personas /i!_persona, nombre, !ire""ion2 values
/KG,8PQ+L$ K1art&nL$ K;v del )egura$ 8HL2
(Abra'am +ibers"'a$, 2002)
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 12/15
-*- Impemen$a"i8n !e as "ara"$er@s$i"as B*
!os sistemas de bases de datos relacionales orientadas a objetos son
básicamente e7tensiones de los sistemas de bases de datos relacionales %a
e7istentes. !as modificaciones resultan claramente necesarias en muc'os niveles
del sistema de base de datos.
!as interfaces de programas de aplicación como OD0 % 4D0 se 'an e7tendido
para recuperar % almacenar tipos estructuradosA por ejemplo$ 4D0 ofrece el
m(todo getObject/2 #ue devuelve un objeto 4ava )truct$ a partir del cual se pueden
e7traer los componentes del tipo estructurado. Tambi(n es posible asociar clases
de 4ava con tipos estructurados de )*!$ % 4D0 puede realizar conversiones
entre los tipos.
enguajes de programaci!n persistentes
!os lenguajes de las bases de datos se diferenc&an de los lenguajes de
programación tradicionales en #ue trabajan directamente con datos #ue son
persistentesA es decir$ los datos siguen e7istiendo una vez #ue el programa #ue los
creó 'a%a concluido. !as relaciones de las bases de datos % las tuplas de lasrelaciones son ejemplos de datos persistentes.
l acceso a las bases de datos es sólo un componente de las aplicaciones del
mundo real. 1ientras #ue los lenguajes para el tratamiento de datos como )*!
son bastante efectivos en el acceso a los datos$ se necesita un lenguaje de
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 13/15
programación para implementar otros componentes de las aplicaciones como las
interfaces de usuario o la comunicación con otras computadoras. !a manera
tradicional de realizar las interfaces de las bases de datos con los lenguajes de
programación es incorporar )*! dentro del lenguaje de programación.
!os lenguajes de programación persistentes son lenguajes de programación
e7tendidos con estructuras para el tratamiento de los datos persistentes. !os
lenguajes de programación persistentes pueden distinguirse de los lenguajes con
)*! incorporado$ al menos$ de dos maneras=
".# n los lenguajes incorporados el sistema de tipos del lenguaje anfitrión suele
ser diferente del sistema de tipos del lenguaje para el tratamiento de los datos. !osprogramadores son responsables de las conversiones de tipo entre el lenguaje
anfitrión % )*!. acer #ue los programadores lleven a cabo esta tarea presenta
varios inconvenientes=
l código para la conversión entre objetos % tuplas opera fuera del sistema
de tipos orientado a objetos %$ por lo tanto$ tiene más posibilidades de presentar errores no detectados.
!a conversión en la base de datos entre el formato orientado a objetos % el
formato relacional de las tuplas necesita gran cantidad de código. l código para la
conversión de formatos$ junto con el código para cargar % descargar datos de labase de datos$ puede suponer un porcentaje significativo del código totalnecesario para la aplicación.
Bor el contrario$ en los lenguajes de programación persistentes$ el lenguaje de
consultas se 'alla totalmente integrado con el lenguaje anfitrión % ambos
comparten el mismo sistema de tipos. !os objetos se pueden crear % guardar en la
base de datos sin ninguna modificación e7pl&cita del tipo o del formatoA los
cambios de formato necesarios se realizan de manera transparente.
$.# !os programadores #ue usan lenguajes de consultas incorporados son
responsables de la escritura de código e7pl&cito para la b@s#ueda en la memoria
de los datos de la base de datos. )i se realizan actualizaciones$ los
programadores deben escribir e7pl&citamente código para volver a guardar los
datos actualizados en la base de datos.
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 14/15
Bor el contrario$ en los lenguajes de programación persistentes$ los
programadores pueden trabajar con datos persistentes sin tener #ue escribir
e7pl&citamente código para buscarlos en la memoria o volver a guardarlos en el
disco.
)in embargo$ los lenguajes de programación persistentes presentan ciertos
inconvenientes #ue 'a% #ue tener presentes al decidir su conviene usarlos. Dado
#ue los lenguajes de programación suelen ser potentes$ resulta relativamente
sencillo cometer errores de programación #ue da3en las bases de datos.
!a complejidad de los lenguajes 'ace #ue la optimización automática de alto nivel$
como la reducción de <) de disco$ resulte más dif&cil. n muc'as aplicaciones el
soporte de las consultas declarativas resulta de gran importancia$ pero los
lenguajes de programación persistentes no soportan bien actualmente las
consultas declarativas /)*! es un ejemplo2.
/;bra'am )ilbersc'atz$ 8GG82
ON!U)ION
)abemos #ue las 0DOO representan el siguiente paso en la evolución de las
bases de datos$ para soportar el ;nálisis$ Dise3o % Brogramación OO. !as 0DOO
permiten el desarrollo % mantenimiento de aplicaciones complejas con un costo
)ignificativamente menor.
Bermiten #ue el mismo modelo conceptual se apli#ue al ;nálisis$ dise3o$
programación$ definición % acceso a la base de datos. sto reduce el problema del
operador de traducción entre los diferentes modelos a trav(s de todo el ciclo de
vida. l modelo conceptual debe ser la base de las 'erramientas ;) OO
totalmente integradas$ las cuales a%udan a generar la estructura de datos % los
m(todos.
!as 0DOO ofrecen un muc'o mejor rendimiento de la má#uina #ue las bases de
datos relacionales para aplicaciones o clases con estructuras complejas de datos.)in embargo$ !as 0DOO coe7istirán con las bases de datos relacionales durante
los pró7imos a3os$ puesto #ue a menudo se utilizará un modelo relacional como
una forma de estructura de datos dentro de una 0DOO.
7/23/2019 Ensayo unidad 7
http://slidepdf.com/reader/full/ensayo-unidad-7 15/15
BibliografíaAbraham Silber!ha"#$ %& '& ()**)+& FUNDAMENTOS DE BASES DE DATOS.
Ma,ri,$ E-a.a/ M!0ra12%ill I3!& &
Mar456$ M& ()**)+& Bae ,e Da"o Orie3"a,o a Obe"o& E3 M& Mar456$Diseño de Sistemas de Bases de Datos (-8g& 9:+&
;I<IPEDIA& (=* ,e No>iembre ,e )*=?+& WIKIPEDIA& Ob"e3i,o ,e
h""-/@@e&1ii-e,ia&org@1iSi<0aseCdeCdatosCorientadaCaCobjetos
IIBDI;. /,8 de ;gosto de 8G,P2. WIKIPEDIA. Obtenido de
'ttps=<<es.ViSipedia.org<ViSi<0aseCdeCdatosCobjeto?
relacional5TiposComplejos