Investigacion Unidad 7

11
7/23/2019 Investigacion Unidad 7 http://slidepdf.com/reader/full/investigacion-unidad-7 1/11 FUNDAMENTOS DE BASE DE DATOS INVESTIGACION UNIDAD 7

Transcript of Investigacion Unidad 7

Page 1: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 1/11

FUNDAMENTOS DE BASE DE DATOS

INVESTIGACION UNIDAD 7

Page 2: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 2/11

7.1 VISIÓN GENERAL

En una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en la

programación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguaje de

programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos (ODBMS,

Object Database Management Sstem!.

"n ODBMS #ace $ue los objetos de la base de datos apare%can como objetos de un lenguaje de programación en unoo m&s lenguajes de programación a los $ue d' soporte.

as bases de datos orientadas a objetos se dise)an para trabajar bien en conjunción con lenguajes de programación

orientados a objetos como *a+a, C, -isual Basic.E/ C00. os ODBMS usan e1actamente el mismo modelo $ue

estos lenguajes de programación.

os ODBMS son una buena elección para a$uellos sistemas $ue necesitan un buen rendimiento en la manipulación de

tipos de dato complejos.

os ODBMS 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 deprogramación orientado a objetos, al almacenar e1actamente el modelo de objeto usado a ni+el aplicati+o, lo $ue reduce

los costes de desarrollo mantenimiento.

7.2 TIPOS DE DATOS COMPLEJOS.

os modelos de bases de datos tradicionales (relacional, red jer&r$uico! #an sido capaces de satisfacer con '1ito las

necesidades, en cuanto a bases de datos, de las aplicaciones de gestión tradicionales. Sin embargo, presentan algunas

de2ciencias cuando se trata de aplicaciones m&s complejas o so2sticadas como, por ejemplo, el dise)o fabricación en

ingeniería (C3D4C3M, C5M!, los e1perimentos cientí2cos, los sistemas de información geogr&2ca o los sistemas

multimedia.

os re$uerimientos las características de estas nue+as aplicaciones di2eren en gran medida de las típicas

aplicaciones de gestión6 la estructura de los objetos es m&s compleja, las transacciones son de larga duración, se

necesitan nue+os tipos de datos para almacenar im&genes te1tos, #ace falta de2nir operaciones no est&ndar,

especí2cas para cada aplicación. as bases de datos orientadas a objetos se crearon para tratar de satisfacer las

necesidades de estas nue+as aplicaciones.

a orientación a objetos ofrece 7e1ibilidad 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. "na característica cla+e de las bases

de datos orientadas a objetos es la potencia $ue proporcionan al dise)ador al permitirle especi2car tanto la estructura

de objetos complejos, como las operaciones $ue se pueden aplicar sobre dic#os objetos.

Estos son los tipos de datos $ue soporta el S8. os sinónimos son palabras e$ui+alentes al tipo de dato indicado. El

tama)o indica cu&nto ocupar& una columna del tipo indicado.

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 3: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 3/11

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 4: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 4/11

Tipos de d!os "o#p$e%os&

Co$e""io'es& /ambi'n conocidos como conjuntos, este tipo de datos clasifican los arras los conjuntos en $ue los

elementos pueden aparecer +arias +eces.

Tipos es!()"!)(dos& os tipos estructurados permiten representación directa de los atributos compuestos en los

diagramas entidadrelación.

O*%e!os de +(' !#,o& Desde a #ace +arios a)os $ue se necesita almacenar datos con atributos mu grandes

(-arios Mbtes!, como libros, canciones, etc. E incluso an m&s grandesF como mapas de alta resolución, +ideo, etc.

$ue puede llegar f&cilmente a los 9igabtes.

7.- TIPOS ESTRUCTURADOS /ERENCIA EN S0L.

os tipos estructurados permiten representar directamente los atributos compuestos de los diagramas E;. or ejemplo,

se puede definir el siguiente tipo estructurado para representar el atributo compuesto nombre con los atributos

componentes nombreGpila apellidos6

create tpe ombre as(nombreGpila +arc#ar(H?!,apellidos +arc#ar(H?!!

final

De manera parecida, el tipo estructurado siguiente puede usarse para representar el atributo compuesto dirección6

create tpe Direccion as

(calle +arc#ar(H?!,

ciudad +arc#ar(H?!,

codigoGpostal +arc#ar(I!!

not final

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 5: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 5/11

En S8 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. 3#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. or ejemplo, se puede crear una tabla cliente de la siguiente manera6

create table cliente (nombre ombre,direccion Direccion,fec#aGnacimiento date!

O bien, reali%ando una estructura m&s del tipo Cliente generar la tabla a partir de ella6

create tpe /ipoCliente as(nombre ombre,direccion Direccion,fec#aGnacimiento date!not final

create table cliente of /ipoCliente

Se puede tener acceso a los componentes de los atributos compuestos usando la notación JpuntoKF por ejemplo,nombre.nombreGpila de+uel+e el componente nombre de pila del atributo nombre. El acceso al atributo nombrede+ol+ería un +alor del tipo estructurado ombre.a siguiente consulta ilustra la manera de tener acceso a los atributos componentes de los atributos compuestos. aconsulta busca el apellido la ciudad de cada cliente.

select nombre.apellido, direccion.ciudadfrom cliente

/e(e'"i.a #erencia puede #allarse en el ni+el de los tipos o en el ni+el de las tablas. En primer lugar se considerar& la #erenciade los tipos despu's en el ni+el de las tablas6

/e(e'"i de !ipos& os tipos deri+ados #eredan los atributos de superclaseF los m'todos tambi'n se #eredan por sussubtipos, al igual $ue los atributos. Sin embargo, un subtipo puede redefinir el efecto de un m'todo declar&ndolo denue+o, esto ser& lo $ue se conoce como sobre escritura (o+erriding! del m'todo.Supóngase $ue se tiene la siguiente definición de tipo para las personas6

create tpe ersona

(nombre +arc#ar(H?!,direccion +arc#ar(H?!!

uede $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#erencia para definir en S8 los tipos estudiante profesor6

create tpe Estudianteunder ersona

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 6: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 6/11

(grado +arc#ar(H?!,departamento +arc#ar(H?!!

create tpe rofesorunder ersona(sueldo 5nteger,departamento +arc#ar(H?!!

7. /ERENCIA DE TABLAS.Cada tabla almacena la cla+e primaria, $ue se puede #eredar de una tabla padreF los atributos definidos localmente.os atributos #eredados, aparte de la cla+e primaria, no ser& necesario guardarlos, podr&n obtenerse mediante unareunión con la super tabla basada en la cla+e primaria. or lo $ue cada tabla almacena todos los atributos #eredados definidos localmente. Cuando se inserta una tupla, se almacena sólo en la subtabla en la $ue se inserta su presenciase infiere en cada supertabla. El acceso a todos los atributos de una tupla es m&s r&pido, dado $ue no se re$uiere unareunión6

as subtablas de S8 se corresponden con el concepto de especiali%ación4generali%ación de E; or ejemplo,

supóngase $ue se define la tabla personas de la siguiente manera6

create table personas of ersona

3 continuación se puede definir las tablas estudiantes profesores como subtablas de personas, de la manerasiguiente6

create table estudiantes of Estudianteunder personascreate table profesores of rofesorunder personas

os tipos de las subtablas deben ser subtipos del tipo de la tabla madre. or tanto, todos los atributos presentes enpersonas tambi'n est&n presentes en las subtablas.

3dem&s, cuando se declaran estudiantes profesores como subtablas de personas, todas las tuplas presentes enestudiantes profesores pasan a estar tambi'n presentes de manera implícita en personas. or tanto, si una consultausa la tabla personas, no sólo encuentra tuplas directamente insertadas en esa tabla, sino tambi'n tuplas insertadas ensus subtablas, es decir, estudiantes profesores. o obstante, esa consulta sólo puede tener acceso a los atributos $ueest&n presentes en personas.

S8 permite #allar tuplas $ue se encuentran en personas pero no en sus subtablas usando en las consultas JonlpersonasK en lugar de personas. a palabra cla+e onl tambi'n puede usarse en las sentencias delete update. Sin lapalabra cla+e onl, la instrucción delete aplicada a una supertabla, como personas, tambi'n borra las tuplas $ue seinsertaron originalmente en las subtablas (como estudiantes!F por ejemplo, la instrucción

delete from personas L#ere

Borrar& todas las tuplas de la tabla personas, así como de sus subtablas estudiantes profesores, $ue satisfagan . Sise a)ade la palabra cla+e onl a la instrucción anterior, las tuplas $ue se insertaron en las subtablas no se +enafectadas, aun$ue satisfagan las condiciones de la cl&usula L#ere.

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 7: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 7/11

7. TIPOS DE ARREGLOS MULTICONJUNTOS EN S0L

S8 soporta dos tipos de conjuntos6 arras multiconjuntosF los tipos arra se a)adieron en S86=III, mientras $ue lostipos multiconjuntos se agregaron en S86H??>. "n multiconjunto es un conjunto no ordenado, en el $ue cada elementopuede aparecer +arias +eces.

Supóngase $ue se desea registrar información sobre libros, incluido un conjunto de palabras cla+e para cada libro.Supóngase tambi'n $ue se deseara almacenar almacenar el nombre de los autores de un libro en forma de arraF adiferencia de los elementos de los multiconjuntos, los elementos de los arras est&n ordenados, de modo $ue se puededistinguir el primer autor del segundo autor, etc. El ejemplo siguiente ilustra la manera en $ue se puede definir en S8estos atributos como arras como multiconjuntos.

create type Editor as(nombre varchar(20),sucursal varchar(20))

create tpe ibro as(titulo +arc#ar(H?!,arraGautores +arc#ar(H?! arra=?N,fec#aGpublicacion date,editor Editor,conjuntoGpalabrasGcla+e +arc#ar(H?! multiset!

create table libros of ibro

C(e"i3' 4 ""eso $os 5$o(es de $os "o'%)'!osEn S86 =III se puede crear un arra de +alores de esta manera6

array[‘Silberschartz’, ‘Korth’, ‘Sudarshan’ 

De manera parecida, se puede crear un multiconjunto de palabras cla+e de la manera siguiente6

multiset[‘Silberschartz’, ‘Korth’, ‘Sudarshan’ 

or lo tanto, se puede crear una tupla definido por la relación libros como6

insert into libros

+alues

(CompiladoresP, arra9óme%P, SantosPPN,

neL Editor(Mc9raLillP, ue+a QorRP!,

multisetan&lisis sint&cticoP, an&lisisPN!

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 8: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 8/11

Se puede tener acceso a los elementos del arra o actuali%arlos especificando el índice del arra, por ejemplo,

arraGautores.

Consulta de los atributos +alorados como conjuntos

3#ora se considerar& la forma de manejar los atributos $ue se +aloran como conjuntos. as e1presiones $ue se +aloran

como conjuntos pueden aparecer en cual$uier parte en la $ue pueda aparecer el nombre de una relación, como las

cl&usulas from.

Si se desea a+eriguar todos los libros $ue contengan las palabras Jbase de datosK entre sus palabras cla+e, se puede

usar la consulta siguiente6

select titulofrom libros L#ere base de datosP in(unnest(conjuntoGpalabrasGcla+e!!

7.6 IDENTIDAD DE LOS OBJETOS TIPOS DE REFERENCIA EN S0L.os lenguajes orientados a objetos ofrecen la posibilidad de #acer referencia a objetos. os atributos de un tipo dado

pueden ser+ir de referencia para los objetos de un tipo concreto. or ejemplo, en S8 se puede definir el tipo

Departamento con el campo nombre el campo director, $ue es una referencia al tipo ersona, la tabla

departamentos del tipo Departamento, de la manera siguiente6

create tpe Departamento(nombre +arc#ar(H?!,director ref(ersona! scope personas!

create table departamentos of Departamento

En este caso, la referencia est& restringida a las tuplas de la tabla personas. a restricción del &mbito de referencia a lastuplas de una tabla es obligatoria en S8, #ace $ue las referencias se comporten como las cla+es e1ternas.

a tabla a la $ue #ace referencia debe tener un atributo $ue guarde el identificador para cada tupla. Ese atributo,denominado atributo autorreferenciable (selfreferential attribute!, se declara a)adiendo una cl&usula ref is a lainstrucción create table6

create table personas of ersonaref is idGpersona sstem generated

En este caso, idGpersona es el nombre del atributo, no una palabra cla+e, la instrucción sstem generated especifica$ue la base de datos genera de manera autom&tica el identificador.

ara iniciali%ar el atributo de referencia #a $ue obtener el identificador de la tupla a la $ue se +a a #acer referencia. Sepuede conseguir el +alor del identificador de la tupla mediante una consulta. or tanto, para crear una tupla con el +alorde referencia, primero se puede crear la tupla con una referencia nula luego definir la referencia de maneraindependiente6

insert into departamentos

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 9: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 9/11

+alues (CSP, null!update departamentos set director (select p.idGpersonafrom persona as p L#ere nombre MartínP! L#ere nombre CSP

"na alternati+a a los identificadores generados por el sistema es permitir $ue los usuarios generen los identificadores. El

tipo del atributo autoreferencial debe especificarse como parte de la definición de tipos de la tabla a la $ue se #acereferencia, la definición de la tabla debe especificar $ue la referencia est& generada por el usuario (user generated!6

create tpe ersona(nombre +arc#ar(H?!,direccion +arc#ar(H?!!ref using +arc#ar(H?!

create table personas of ersonaref is idGpersona user generated

7.7 IMPLEMENTACIÓN DE LAS CARACTERSTICAS OR.

os sistemas de bases de datos relacionales orientadas a objetos son b&sicamente e1tensiones de los sistemas debases de datos relacionales a e1istentes. as modificaciones resultan claramente necesarias en muc#os ni+eles delsistema de base de datos.

as interfaces de programas de aplicación como ODBC *DBC se #an e1tendido para recuperar almacenar tiposestructuradosF por ejemplo, *DBC ofrece el m'todo getObject(! $ue de+uel+e un objeto *a+a Struct, a partir del cual sepueden e1traer los componentes del tipo estructurado. /ambi'n es posible asociar clases de *a+a con tiposestructurados de S8, *DCB puede reali%ar con+ersiones entre los tipos.

enguajes de programación persistentesos lenguajes de las bases de datos se diferencian de los lenguajes de programación tradicionales en $ue trabajandirectamente con datos $ue son persistentesF es decir, los datos siguen e1istiendo una +e% $ue el programa $ue loscreó #aa concluido. as relaciones de las bases de datos las tuplas de las relaciones son ejemplos de datospersistentes.

El acceso a las bases de datos es sólo un componente de las aplicaciones del mundo real. Mientras $ue los lenguajespara el tratamiento de datos como S8 son bastante efecti+os en el acceso a los datos, se necesita un lenguaje deprogramación para implementar otros componentes de las aplicaciones como las interfaces de usuario o lacomunicación con otras computadoras. a manera tradicional de reali%ar las interfaces de las bases de datos con loslenguajes de programación es incorporar S8 dentro del lenguaje de programación.

os lenguajes de programación persistentes son lenguajes de programación e1tendidos con estructuras para eltratamiento de los datos persistentes. os lenguajes de programación persistentes pueden distinguirse de los lenguajescon S8 incorporado, al menos, de dos maneras6

=. En los lenguajes incorporados el sistema de tipos del lenguaje anfitrión suele ser diferente del sistema de tipos dellenguaje para el tratamiento de los datos. os programadores son responsables de las con+ersiones de tipo entre ellenguaje anfitrión S8. acer $ue los programadores lle+en a cabo esta tarea presenta +arios incon+enientes6

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 10: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 10/11

  El código para la con+ersió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 con+ersión en la base de datos entre el formato orientado a objetos el formato relacional de las tuplas necesitagran cantidad de código. El código para la con+ersión de formatos, junto con el código para cargar descargar datos dela base de datos, puede suponer un porcentaje significati+o del código total necesario para la aplicación.

or 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 labase de datos sin ninguna modificación e1plícita del tipo o del formatoF los cambios de formato necesarios se reali%ande manera transparente.

H. os programadores $ue usan lenguajes de consultas incorporados son responsables de la escritura de códigoe1plícito para la bs$ueda en la memoria de los datos de la base de datos. Si se reali%an actuali%aciones, losprogramadores deben escribir e1plícitamente código para +ol+er a guardar los datos actuali%ados en la base de datos.

or el contrario, en los lenguajes de programación persistentes, los programadores pueden trabajar con datospersistentes sin tener $ue escribir e1plícitamente código para buscarlos en la memoria o +ol+er a guardarlos en el disco.

Sin embargo, los lenguajes de programación persistentes presentan ciertos incon+enientes $ue #a $ue tener presentesal decidir su con+iene usarlos. Dado $ue los lenguajes de programación suelen ser potentes, resulta relati+amentesencillo cometer errores de programación $ue da)en las bases de datos. a complejidad de los lenguajes #ace $ue laoptimi%ación autom&tica de alto ni+el, como la reducción de E4S de disco, resulte m&s difícil. En muc#as aplicaciones elsoporte de las consultas declarati+as resulta de gran importancia, pero los lenguajes de programación persistentes nosoportan bien actualmente las consultas declarati+as (S8 es un ejemplo!.

FUENTES DE INFORMACION&

#ttp644i+analL.blogspot.m14H?=H4=H4unidad@basesdedatosorientadas.#tml

#ttp644fundbdjp.blogspot.m14H?=H4=H4unidad@G@.#tml

#ttp644clasedatos.blogspot.m14p4unidad@basededatosorientadaobjetos.#tml

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S

Page 11: Investigacion Unidad 7

7/23/2019 Investigacion Unidad 7

http://slidepdf.com/reader/full/investigacion-unidad-7 11/11

#ttp644fudamentobditics.blogspot.m14p4unidad@.#tml

DOM59"E: 3;9"EES *OSE <;3C5SCO =>?@?@@A <"D3ME/OS DE ;O9;3M3C5O =>=A;S