Ensayo unidad 7

15
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. ENSAYO 7MA UNIDAD ASES DE DATOS RIENTADOS A OBJETOS

Transcript of Ensayo unidad 7

Page 1: Ensayo unidad 7

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

Page 2: Ensayo unidad 7

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)

Page 3: Ensayo unidad 7

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)

Page 4: Ensayo unidad 7

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,

Page 5: Ensayo unidad 7

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))

Page 6: Ensayo unidad 7

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.

Page 7: Ensayo unidad 7

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))

Page 8: Ensayo unidad 7

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=

Page 9: Ensayo unidad 7

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

Page 10: Ensayo unidad 7

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=

Page 11: Ensayo unidad 7

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)

Page 12: Ensayo unidad 7

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

Page 13: Ensayo unidad 7

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.

Page 14: Ensayo unidad 7

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.

Page 15: Ensayo unidad 7

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