bases de datos orientadas a objetos

15
Bases de Datos Orientadas a Objetos FBD Aguilar Soto Christian Alejandro 3-6-2015

Upload: alejandro

Post on 17-Sep-2015

217 views

Category:

Documents


0 download

DESCRIPTION

fundamentos de bases de datos

TRANSCRIPT

Bases de Datos Orientadas a Objetos

Bases de Datos Orientadas a ObjetosFBDAguilar Soto Christian Alejandro

ndice7.1 Visin general.27.2 Tipos de datos complejos.3Colecciones3Objetos de gran tamao (LOB)3Tipos estructurados37.3 Tipos estructurados y herencia en SQL.4Los tipos estructurados4Herencia.57.4 Herencia de tablas.67.5 Tipos de arreglo multi-conjunto en SQL.87.6 Identidad de los objetos y tipos de referencia en SQL.97.7 Implementacin de las caractersticas OR.10Bibliografa11

7.1 Visin general.En unabase de datos orientada a objetos, la informacin se representa mediante objetos como los presentes en laprogramacin orientada a objetos. Cuando se integra las caractersticas de unabase de datoscon las de unlenguaje de programacinorientado a objetos, el resultado es unsistema gestor de base de datos orientada a objetos (ODBMS,object database management system). Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programacin en uno o ms lenguajes de programacin a los que d soporte. Un ODBMS extiende los lenguajes con datospersistentesde forma transparente, control de concurrencia, recuperacin de datos, consultas asociativas y otras capacidades.Las bases de datos orientadas a objetos se disean para trabajar bien en conjuncin con lenguajes de programacin orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo que estos lenguajes de programacin.Los ODBMS son una buena eleccin para aquellos sistemas que necesitan un buen rendimiento en la manipulacin de tipos de dato complejos.Los ODBMS proporcionan los costes de desarrollo ms bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integracin transparente con el programa escrito en un lenguaje de programacin orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento.

7.2 Tipos de datos complejos. ColeccionesLos conjuntos son ejemplares de los tipos coleccin. Otros ejemplares son los arrays y los multi-conjuntos (es decir, colecciones sin orden donde un elemento puede aparecer varias veces). Las siguientes deniciones de atributos ilustran la declaracin de un array:array-autores varchar (20) array [10]array-autores es un array de hasta 10 nombres de autor.Se puede acceder a los elementos del array especicando el ndice del array, por ejemplo, array-autores [1].

Objetos de gran tamao (LOB)Muchas aplicaciones actuales de bases de datos necesitan almacenar atributos grandes (del orden de varios Kbytes), tales como la fotografa de una persona, o muy grandes (del orden de varios Mbytes o incluso Gbytes), tales como imgenes mdicas de alta resolucin o clips de vdeo.Las letras lob en estos tipos de datos son acrnimos de Large OBject (objeto grande).Los objetos grandes se usan normalmente en aplicaciones externas, y tiene poco sentido extraerlos completamente en SQL. En su lugar, una aplicacin conseguira un localizador de un objeto grande y lo usara para manipularlo desde el lenguaje antrion.

Tipos estructuradosLos tipos estructurados permiten la representacin directa de atributos compuestos de los diagramas E-R.Un tipo estructurado puede tener mtodos denidos sobre l.ConstructoresSe deben denir funciones constructoras para crear valores de tipos estructurados. En SQL y en muchos otros lenguajes se utiliza una funcin con el mismo nombre que un tipo estructurado como funcin constructora.De manera predeterminada, cada tipo estructurado tiene un constructor sin argumentos, que establece los atributos a sus valores predenidos

7.3 Tipos estructurados y herencia en SQL.Los tipos estructuradospermiten representar directamente los atributos compuestos de los diagramas E-R. Por ejemplo, se puede definir el siguiente tipo estructurado para representar el atributo compuesto nombre con los atributos componentes nombre_pila y apellidos:

create typeNombreas(nombre_pilavarchar(20),apellidosvarchar(20))final

De manera parecida, el tipo estructurado siguiente puede usarse para representar el atributo compuesto direccin:

create typeDireccionas(callevarchar(20),ciudadvarchar(20),codigo_postalvarchar(9))not final

En SQL estos tipos se denominan tipos definidos por el usuario. La especificacinfinalindica que no se puede crear subtipos de nombre, mientras que la especificacinnot finalde direccin indica que se pueden crear subtipos de direccin. Ahora se pueden usar estos tipos para crear atributos compuestos en las relaciones, con slo declarar que un atributo es de uno de estos tipos. Por ejemplo, se puede crear una tabla cliente de la siguiente manera:

create tablecliente (nombreNombre,direccionDireccion,fecha_nacimientodate)

O bien, realizando una estructura ms del tipo Cliente y generar la tabla a partir de ella:

create typeTipoClienteas(nombreNombre,direccionDireccion,fecha_nacimientodate)not final

create tableclienteofTipoCliente

Se puede tener acceso a los componentes de los atributos compuestos usando la notacin punto; por ejemplo, nombre.nombre_pila devuelve el componente nombre de pila del atributo nombre. El acceso al atributo nombre devolvera un valor del tipo estructuradoNombre.La siguiente consulta ilustra la manera de tener acceso a los atributos componentes de los atributos compuestos. La consulta busca el apellido y la ciudad de cada cliente.

selectnombre.apellido, direccion.ciudadfromclienteHerencia.La herencia puede hallarse en el nivel de los tipos o en el nivel de las tablas. En primer lugar se considerar la herencia de los tipos y despus en el nivel de las tablas:Herencia de tipos:Los tipos derivados heredan los atributos de superclase; los mtodos tambin se heredan por sus subtipos, al igual que los atributos. Sin embargo, un subtipo puede redefinir el efecto de un mtodo declarndolo de nuevo, y esto ser lo que se conoce como sobre escritura (overriding) del mtodo.Supngase que se tiene la siguiente definicin de tipo para las personas:create typePersona(nombrevarchar(20),direccionvarchar(20))

Puede que se desee almacenar en la base de datos informacin adicional sobre las personas que son estudiantes y sobre las que son profesores. Dado que los estudiantes y los profesores tambin son personas, se puede usar la herencia para definir en SQL los tipos estudiante y profesor:create typeEstudianteunderPersona(gradovarchar(20),departamentovarchar(20))create typeProfesorunderPersona(sueldoInteger,departamentovarchar(20))

7.4 Herencia de tablas.Cada tabla almacena la clave primaria, que se puede heredar de una tabla padre; y los atributos definidos localmente. Los atributos heredados, aparte de la clave primaria, no ser necesario guardarlos, podrn obtenerse mediante una reunin con la super tabla basada en la clave primaria. Por lo que cada tabla almacena todos los atributos heredados y definidos localmente. Cuando se inserta una tupla, se almacena slo en la sub-tabla en la que se inserta y su presencia se infiere en cada super-tabla. El acceso a todos los atributos de una tupla es ms rpido, dado que no se requiere una reunin:

Las sub-tablas de SQL se corresponden con el concepto de especializacin/generalizacin de E-R Por ejemplo, supngase que se define la tabla personas de la siguiente manera:

create tablepersonasofPersona

A continuacin se puede definir las tablas estudiantes y profesores comosub-tablasde personas, de la manera siguiente:

create tableestudiantesofEstudianteunderpersonascreate tableprofesoresofProfesorunderpersonas

Los tipos de las sub-tablas deben ser subtipos del tipo de la tabla madre. Por tanto, todos los atributos presentes en personas tambin estn presentes en las sub-tablas.

Adems, cuando se declaran estudiantes y profesores como sub-tablas de personas, todas las tuplas presentes en estudiantes y profesores pasan a estar tambin presentes de manera implcita en personas. Por tanto, si una consulta usa la tabla personas, no slo encuentra tuplas directamente insertadas en esa tabla, sino tambin tuplas insertadas en sus sub-tablas, es decir, estudiantes y profesores. No obstante, esa consulta slo puede tener acceso a los atributos que estn presentes en personas.

SQL permite hallar tuplas que se encuentran en personas pero no en sus sub-tablas usando en las consultas onlypersonas en lugar de personas. La palabra claveonlytambin puede usarse en las sentenciasdeleteyupdate. Sin la palabra claveonly, la instruccindeleteaplicada a una super-tabla, como personas, tambin borra las tuplas que se insertaron originalmente en las subtablas (como estudiantes); por ejemplo, la instruccin

delete frompersonaswhereP

Borrar todas las tuplas de la tablapersonas, as como de sus sub-tablasestudiantesy profesores, que satisfaganP. Si se aade la palabra claveonlya la instruccin anterior, las tuplas que se insertaron en las sub-tablas no se ven afectadas, aunque satisfagan las condiciones de la clusulawhere.

PropiedadDescripcin

Propiedad DiscriminatorLa propiedad (asignada a la columna) que determina a qu clase pertenece el registro actual.

Valor de discriminador de clase baseEl valor (en la columna designada como la propiedad Discriminator) que determina que un registro es de la clase base.

Valor de discriminador de clase derivadaEl valor (en la propiedad designada como Discriminator) que determina que un registro es de la clase derivada.

Predeterminado de herenciaLa clase que se debera rellenar cuando el valor en la propiedad designada como la propiedadDiscriminatorno coincide con elValor de discriminador de clase baseni con elValor de discriminador de clase derivada.

7.5 Tipos de arreglo multi-conjunto en SQL.

SQL soporta dos tipos de conjuntos: arrays y multiconjuntos; los tipos array se aadieron en SQL:1999, mientras que los tipos multiconjuntos se agregaron en SQL:2003. Un multiconjunto es un conjunto no ordenado, en el que cada elemento puede aparecer varias veces.Supngase que se desea registrar informacin sobre libros, incluido un conjunto de palabras clave para cada libro. Supngase tambin que se deseara almacenar almacenar el nombre de los autores de un libro en forma de array; a diferencia de los elementos de los multiconjuntos, los elementos de los arrays estn ordenados, de modo que se puede distinguir el primer autor del segundo autor, etc. El ejemplo siguiente ilustra la manera en que se puede definir en SQL estos atributos como arrays y como multiconjuntos.create typeEditoras (nombrevarchar(20),sucursalvarchar(20))create typeLibroas(titulovarchar(20),array_autoresvarchar(20)array[10],fecha_publicaciondate,editor Editor,conjunto_palabras_clavevarchar(20)multiset)create tablelibros ofLibroCreacin y acceso a los valores de los conjuntosEn SQL:1999 se puede crear un array de valores de esta manera:array[Silberschartz, Korth, Sudarshan]De manera parecida, se puede crear un multiconjunto de palabras clave de la manera siguiente:multiset[Silberschartz, Korth, Sudarshan]Por lo tanto, se puede crear una tupla definido por la relacinlibroscomo:insert intolibrosvalues(Compiladores,array[Gmez, Santos],newEditor(McGraw-Hill, Nueva York),multiset[anlisis sintctico, anlisis]) Se puede tener acceso a los elementos del array o actualizarlos especificando el ndice del array, por ejemplo,array_autores[1].7.6 Identidad de los objetos y tipos de referencia en SQL.La identidad de los objetos es un concepto de identidad ms potente que el que suele hallarse en los lenguajes de programacin o en los modelos de datos que no se basan en la programacin orientada a objetos.Ejemplos de identidad.Valor.Se utiliza un valor de datos como identidad. Esta forma de identidad se utiliza en los sistemas relacionales. Por ejemplo, el valor de la clave primaria de una tupla identifica a la tupla.Nombre.Se utiliza como identidad un nombre proporcionado por el usuario. Esta forma de identidad suele utilizarse para los archivos en los sistemas de archivos. Cada archivo recibe un nombre que lo identifica de manera unvoca, independientemente de su contenido.Incorporada.Se incluye el concepto de identidad en el modelo de datos o en el lenguaje de programacin y no hace falta que el usuario proporcione ningn identificador. Esta forma de identidad se utiliza en los sistemas orientados a objetos. Cada objeto recibe del sistema de manera automtica un identificador en el momento en que se crea.Los lenguajes orientados a objetos proporcionan la posibilidad de hacer referencia a los objetos. El atributo de un tipo puede ser una referencia a un objeto de un tipo especificado. Por ejemplo, en SQL se puede definir un tipoDepartamento, con camposnombreydirector, que es una referencia al tipoPersona,y una tabla departamentosde tipoDepartamento, como sigue:create typeDepartamento(nombrevarchar(20),directorref(Persona)scopepersona)create tabledepartamentosofDepartamento

La referencia en este ejemplo est restringida a tuplasde la tablapersona. La restriccin descopede una referenciaa las tuplas de una tabla es obligatoria enSQL y hace que las referencias se comporten comoclaves externas.La tabla referenciada debe tener un atributo que almacene el identificador de la tupla. Este atributo, denominadoatributo autorreferencial, se declara aadiendo la clusularef isa la instruccincreate table.create tablepersonaofPersonaref isidosystem generatedDondeidoes un nombre de atributo, no una palabra clave. La subconsulta anterior podra usarselectp.idoen lugar deselect ref(p).

7.7 Implementacin de las caractersticas OR.Los sistemas de bases de datos relacionales orientadas aobjetos son bsicamente extensiones de los sistemas de bases de datos relacionales yaexistentes. Las modificaciones resultan claramente necesarias en muchos niveles del sistema de base de datos. Las interfaces de programas de aplicacin como ODBC y JDBC se han extendido para recuperar y almacenar tipos estructurados; por ejemplo, JDBC ofrece el mtodo getObject () que devuelve un objeto Java Struct, a partir del cual se pueden extraer los componentes del tipoestructurado. Tambin es posible asociar clases de Java con tipos estructurados de SQL,y JDCB puede realizarconversiones entre los tipos.Las bases de datos orientadas a objetos pretenden unir la capacidad de manipulacin de datos de los LPOO con la capacidad de almacenamiento y consulta de los SGBD.a)Crear objetosb) Crear clases para organizar objetosc)Llamar mtodos para acceder objetos especficosd) Estructuras jerrquicas de herencia para organizar clases y sub-clases

Bibliografahttp://es.wikipedia.org/wiki/Base_de_datos_orientada_a_objetoshttp://clasedatos.blogspot.mx/p/unidad-7-basede-datos-orientada-objetos.htmlhttp://fundbd-jp.blogspot.mx/2012/12/unidad-7_7.htmlhttp://fudamentobditics.blogspot.mx/p/unidad-7.htmlhttp://ivanalw.blogspot.mx/2012/12/unidad-7-bases-de-datos-orientadas.html

Captulo: 7.1 Visin general.

1