Está en la página 1de 18

INSTITUTO TECNOLGICO SUPERIOR DE LA

MONTAA
EXTENSIN ILIATENCO

Ingeniera en Sistemas Computacionales

MATERIA:
FUNDAMENTOS DE BASES DE DATOS

DOCENTE:
ING. ADRIN NAVA SNCHEZ

PRESENTA:
JULIO CESAR DAMIN HERNNDEZ

S12122006

Iliatenco, Gro., a 29 de Mayo de 2014


1

NDICE
UNIDAD 7 BASES DE DATOS ORIENTADAS A OBJETOS
INTRODUCCIN ....................................................................................................... 1
BASES DE DATOS ORIENTADAS A OBJETOS ....................................................... 2
7.1 VISIN GENERAL ............................................................................................... 3
7.2 TIPOS DE DATOS COMPLEJOS ........................................................................ 4
7.2.1 COLECCIONES ......................................................................................... 4
7.2.2 OBJETOS DE GRAN TAMAO (LOB) ...................................................... 4
7.2.3 TIPOS ESTRUCTURADOS ....................................................................... 4
7.2.4 CONSTRUCTORES ................................................................................... 4
7.3 TIPOS ESTRUCTURADOS Y HERENCIA EN SQL ............................................ 5
7.4 HERENCIA DE TABLAS ...................................................................................... 6
7.5 TIPOS DE ARREGLO MULTICONJUNTO EN SQL ............................................ 8
7.5.1 CREACIN Y ACCESO A LOS VALORES DE LOS CONJUNTOS ......... 8
7.5.2 CONSULTA DE LOS ATRIBUTOS VALORADOS COMO CONJUNTOS .. 9
7.5.3 MULTISET ................................................................................................. 9
7.5.4 TIPOS DE ELEMENTOS MULTISET ........................................................ 9
7.5.5 MULTISET DECLARACIN ....................................................................... 9
7.6 IDENTIDAD DE LOS OBJETOS Y TIPOS DE REFERENCIA EN SQL ............. 11
7.7 IMPLEMENTACIN DE LAS CARACTERSTICAS OR .................................... 13
CONCLUSIN ........................................................................................................ 14
BIBLIOGRAFA ........................................................................................................ 15

NDICE DE FIGURAS
Figura 1 Herencia de Tablas ...................................................................................... 6

INTRODUCCIN
Se utilizan en aplicaciones ms complejas donde no llegan las bases de datos
tradicionales y son adecuados cuando se necesita un buen rendimiento en la
manipulacin de datos complejos y la informacin se representa mediante objetos
como los utilizados en la programacin orientada a objetos
Cuando se integran las caractersticas de una base de datos con las de un lenguaje
de programacin orientado a objetos resulta un sistema gestor de base de datos
orientada a objetos (OBDMS).

BASES DE DATOS ORIENTADAS A OBJETOS


De igual forma que los sistemas de bases de datos fueron aplicados a rangos ms
amplios de aplicaciones, incluyendo, por ejemplo, diseo asistido por computadora,
las limitaciones impuestas por el modelo relacional han surgido como obstculos.
En consecuencia, los investigadores de bases de datos inventaron nuevos modelos
de datos que resuelven las limitaciones del modelo de datos relacional.
Una base de datos es una coleccin de datos que puede constituirse de forma que
sus contenidos puedan permitirse el encapsular, tramitarse y renovarse
sencillamente, elementos de datos, sus caractersticas, atributos y el cdigo que
opera sobre ellos en elementos complejos llamados objetos. Las base de datos
estn constituida por objetos, que pueden ser de muy diversos tipos, y sobre los
cuales se encuentran definidas unas operaciones donde interactan y se integran
con las de un lenguaje de programacin orientado a objetos, es decir, que los
componentes de la base de datos son objetos de los lenguajes de programacin
adems que este tipo de base de datos estn diseadas para trabajar con lenguajes
orientados a objetos tambin manipulan datos complejos de forma rpida y segura.

7.1 VISIN GENERAL


Los modelos de bases de datos tradicionales (relacional, red y jerrquico) han sido
capaces de satisfacer con xito las necesidades, en cuanto a bases de datos, de
las aplicaciones de gestin tradicionales. Sin embargo, presentan algunas
deficiencias cuando se trata de aplicaciones ms complejas o sofisticadas CAD,
CAM, SISTEMAS DE INFORMACIN GEOGRFICA.
La estructura de los objetos es ms compleja, las transacciones son de larga
duracin, se necesitan nuevos tipos de datos para almacenar imgenes y textos, y
hace falta definir operaciones no estndar.
La orientacin a objetos ofrece flexibilidad para manejar algunos de estos requisitos
y no est limitada por los tipos de datos y los lenguajes de consulta de los sistemas
de bases de datos tradicionales.

7.2 TIPOS DE DATOS COMPLEJOS


7.2.1 colecciones
Los conjuntos son ejemplares de los tipos coleccin. Otros ejemplares son los
arrays y los multiconjuntos (es decir, colecciones sin orden donde un elemento
puede aparecer varias veces). Las siguientes definiciones 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 especificando el ndice del array, por ejemplo, arrayautores [1].
7.2.2 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. SQL: 1999 proporciona por tanto
nuevos tipos de datos para objetos de gran tamao para datos de caracteres (clob)
y binarios (blob). 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 conseguir
un localizador de un objeto grande y lo usara para manipularlo desde el lenguaje
anfitrin.
7.2.3 Tipos estructurados
Los tipos estructurados permiten la representacin directa de atributos compuestos
de los diagramas E-R. Un tipo estructurado puede tener mtodos definidos sobre
l. Los mtodos se declaran como parte de la definicin de tipos de un tipo
estructurado.
7.2.4 Constructores
Hay que definir funciones constructoras para crear valores de tipos estructurados.
En SQL-1999 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 predefinidos.
Cualquiera otra funcin constructora tiene que crearse explcitamente. Puede haber
ms de una constructora para el mismo tipo estructurado; aunque tengan el mismo
nombre, solo tienen que ser distinguibles por el nmero de argumentos y sus tipos.

7.3 TIPOS ESTRUCTURADOS Y HERENCIA EN SQL


Los esquemas de las bases de datos orientadas a objetos suelen necesitar gran
nmero de clases. Frecuentemente, sin embargo, varias de las clases son
parecidas entre s. Son parecidas porque deen iguales atributos y mtodos. No
son idnticas porque cada clase denle, adems, atributos y/o mtodos que no
comparte con las dems. Sera conveniente denir una representacin de los
atributos y mtodos comunes en un solo lugar. Esto puede hacerse creando una
nueva clase, que contendr solo las caractersticas comunes, y redeniendo las
clases originales como especializaciones de la nueva clase.
Las clases especializadas adquieren una dependencia de herencia con respecto a
la clase general, ya que heredan los atributos y mtodos denidos en esta. Aparece
por tanto el concepto de jerarqua de clases, que es parecido al
de especializacin del modelo entidad-relacin.
Las relaciones entre una clase mas especica, o clase derivada, con respecto a su
clase genrica o superclase, siempre son de especializacin, es decir, si la clase
A deriva de una superclase B, lo que queremos decir es que A es un tipo particular
de B.
Como ejemplo de estas relaciones, se podran denir las clases Persona, Empleado
y Cajero, donde un Empleado es un tipo especial de Persona, y Cajero es un tipo
especial de Empleado.
Una ventaja importante de la herencia en los sistemas orientados a objetos es el
concepto de posibilidad de sustitucin: cualquier mtodo de una clase dada A
puede ser invocado con cualquier objeto perteneciente a cualquier subclase de A.
De igual forma, los atributos denidos en la superclase son utilizables en cualquiera
de sus derivadas. Si la clase Persona dene el atributo Nombre, las clases
Empleado y Cajero tambin las denen implcitamente, por la herencia.

7.4 HERENCIA DE TABLAS


Las subtablas en SQL: 1999 se corresponden con la nocin del modelo E-R de la
especializacin y la generalizacin.
Por tanto, cada atributo presente en una supertabla debe estar tambin presente
en las subtablas.
Adems, cuando se declaran subtablas derivadas de una supertabla, cada tupla
presente en una subtabla tambin est presente en la supertabla.
En principio, sera posible la herencia mltiple tanto en tipos como en tablas, pero
ANSI SQL: 1999 no lo soporta.
Las subtablas pueden guardarse de manera eficiente -sin rplica de todos los
campos heredados de una de las dos siguientes formas:
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 hacen falta guardarlos y pueden obtenerse mediante
una reunin con la supertabla basada en la clave primaria.
Cada tabla almacena todos los atributos heredados y definidos localmente.
Cuando se inserta una tupla se almacena solo en la subtabla en la que se
inserta y su presencia se infiere en cada supertabla. El acceso a todos los
atributos de una tupla es ms rpido, dado que no se requiere una reunin.
Considere entonces el siguiente ejemplo de herencia:

Figura 1 Herencia de Tablas.


En resumidas cuentas, un Jugador tiene un Nombre. A su vez, un Futbolista y un
Voleibolista son Jugadores, por lo que ya tienen nombres y a su vez el primero
pertenece a un Club y el segundo tiene una Posicin. Finalmente, un Portero es un
Futbolista, por lo que ya tiene un club y a su vez, es un jugador, por lo que tiene un
nombre y adems, cuenta con una cantidad de Bloqueos de gol registrados.
6

Por ejemplo, supngase que se define la tabla personas de la manera siguiente:


create table persona of Persona
Se pueden definir entonces las tablas estudiantes y profesores como subtablas de
persona:
Create table estudiantes of Estudianteunder personacreate
table profesores of Profesorunder persona
Los tipos de las subtablas deben ser subtipos del tipo de la tabla padre. Por tanto,
cada atributo presente en persona debe estar tambin presente en las subtablas.
Adems, cuando se declaran estudiantes y profesores como subtablas de persona,
cada tupla presente es estudiantes o profesores tambin estn presentes
implcitamente en persona. As, si una consulta usa la tabla persona, encontrar no
slo las tuplas insertadas directamente en la tabla, sino tambin en las tuplas
insertadas en sus subtablas estudiantes y profesores. Sin embargo, slo se puede
acceder a los atributos que estn presentes en persona.

7.5 TIPOS DE ARREGLO MULTICONJUNTO 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 type Editor as
(Nombre varchar(20),
sucursal varchar(20))
create type Libro as
(titulo varchar(20),
array_autores varchar(20) array[10],
fecha_publicacion date,
editor Editor,
conjunto_palabras_clave varchar(20) multiset)
create table libros of Libro
7.5.1 Creacin y acceso a los valores de los conjuntos
En 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 relacin libros como:
insert into libros
values
(Compiladores, array[Gmez, Santos],
new Editor(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.5.2 Consulta de los atributos valorados como conjuntos


Ahora se considerar la forma de manejar los atributos que se valoran como
conjuntos. Las expresiones que se valoran como conjuntos pueden aparecer en
cualquier parte en la que pueda aparecer el nombre de una relacin, como las
clusulas from.
Si se desea averiguar todos los libros que contengan las palabras base de datos
entre sus palabras clave, se puede usar la consulta siguiente:
select titulo
form libros
where base de datos in
(unnest(conjunto_palabras_clave))
7.5.3 MultiSET
Un conjunto mltiple es un tipo de coleccin no ordenada que contiene de cero a
una aplicacin definida mxima cantidad de elementos. Todos los elementos
deben ser del mismo tipo. Elemento en la misma se puede producir en las varias
veces multiconjuntos.
7.5.4 Tipos de elementos MultiSET
El tipo de elemento puede ser cualquier tipo SQL. Esto significa elementos en un
conjunto mltiple puede ser cualquiera de los siguientes:

Tipos definidos por el usuario (UDT)


Tipos de fila
Otro MultiSET
Todos los dems tipos de construccin, tales como int, double, varchar, etc.

7.5.5 MultiSET Declaracin


Todo lo que tiene que ver con el fin de declarar un tipo de conjunto mltiple es
aadir MultiSET despus de que el tipo de elemento en la declaracin. A
continuacin se muestra un ejemplo de una tabla que representa las personas y
sus frutas favoritas.
CREATE TABLE mstable (nombre VARCHAR (10), favfruits VARCHAR
(5) MultiSET);
Constructores MultiSet Valor
Hay tres maneras de crear conjuntos mltiples. Haremos uso de nuestra mesa de
fruta favorita definido anteriormente para ilustrar el uso de los constructores de
valor.

Valor por enumeracin


INSERT INTO VALORES mstable ('Wael, MultiSET [' Apple ','
pera ']);
Esto, dice, las frutas favoritas de Wael son manzana y pera.
Alternativamente, el estndar SQL permite tambin la construccin de lo mismo
con los trigramas del soporte.
INSERT INTO VALORES mstable ('Wael, MultiSET ("Apple",
"pera")??);
Tenga en cuenta, aunque puede ser tentador pensar de esta construccin como
un literal, es posible, por ejemplo, tienen un valor de subconsulta en la enumeracin
INSERT INTO VALORES mstable ('Wael, MultiSET ["Apple",
SELECT * FROM frutas donde latin_name =' Pirus malus L. ']);

10

7.6 IDENTIDAD DE LOS OBJETOS Y TIPOS DE REFERENCIA EN SQL


Los lenguajes orientados a objetos ofrecen la posibilidad de hacer referencia a
objetos. Los atributos de un tipo dado pueden servir de referencia para los objetos
de un tipo concreto. Por ejemplo, en SQL se puede definir el tipo Departamento con
el campo nombre y el campo director, que es una referencia al tipo Persona, y la
tabla departamentos del tipo Departamento, de la manera siguiente:
create type Departamento(
nombre varchar(20),
director ref(Persona) scope personas)
create table departamentos of Departamento
En este caso, la referencia est restringida a las tuplas de la tabla personas. La
restriccin del mbito de referencia a las tuplas de una tabla es obligatoria en SQL,
y hace que las referencias se comporten como las claves externas.
La tabla a la que hace referencia debe tener un atributo que guarde el identificador
para cada tupla. Ese atributo, denominado atributo autorreferenciable (selfreferential attribute), se declara aadiendo una clusula ref is a la instruccin
create table:
create table personas of Persona
ref is id_persona system generated
En este caso, id_persona es el nombre del atributo, no una palabra clave, y la
instruccin system generated especifica que la base de datos genera de manera
automtica el identificador.
Para inicializar el atributo de referencia hay que obtener el identificador de la tupla
a la que se va a hacer referencia. Se puede conseguir el valor del identificador de
la tupla mediante una consulta. Por tanto, para crear una tupla con el valor de
referencia, primero se puede crear la tupla con una referencia nula y luego definir
la referencia de manera independiente:
insert into departamentos
values (CS, null)
update departamentos set director = (select p.id_persona
from persona as p
where nombre = Martn)
where nombre = CS
Una alternativa a los identificadores generados por el sistema es permitir que los
usuarios generen los identificadores. El tipo del atributo autorreferencial debe
especificarse como parte de la definicin de tipos de la tabla a la que se hace
referencia, y la definicin de la tabla debe especificar que la referencia est
generada por el usuario (user generated):
create type Persona
(nombre varchar(20),
direccion varchar(20))
ref using varchar(20)

11

create table personas of Persona


ref is id_persona user generated
Al insertar tuplas en personas hay que proporcionar el valor del identificador:
insert into personas (id_persona, nombre, direccion) values
(01284567, Martn, Av del Segura, 23)

12

7.7 IMPLEMENTACIN DE LAS CARACTERSTICAS OR


La orientacin a objetos constituye una nueva forma de pensar acerca de
problemas empleando modelos que se han organizado tomando como base
conceptos del mundo real. Los modelos orientados a objetos son tiles para
comprender problemas, comunicarse con expertos en esa aplicacin, modelar
empresas, preparar documentacin y disear programas y bases de datos.
El beneficio principal no es un tiempo de desarrollo ms reducido, el desarrollo
orientado a objetos puede requerir ms tiempo que el desarrollo convencional
porque se pretende que promueva la reutilizacin futura y la reduccin de los
posteriores errores y el futuro mantenimiento.
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 tipo estructurado.
Las bases de datos orientadas a objetos unen dos tecnologas:
La de las bases de datos y la de los lenguajes orientados a objetos. Los LPOO
aportan gran capacidad en la manipulacin de datos, pero no implementan el
almacenamiento y consulta de grandes volmenes de datos.
Por el contrario, las bases de datos convencionales aportan un dominio de las
tcnicas de almacenamiento y consulta de grandes volmenes de datos, aunque
su capacidad de manipulacin es limitada.
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.
Crear objetos.
Crear clases para organizar objetos.
Llamar mtodos para acceder objetos especficos.
Estructuras jerrquicas de herencia para organizar clases y sub-clases.
Facilidades de bases de datos estndar
Facilidades de queries no procedimentales para recuperar objetos
Procesamiento y optimizacin de queries automticos
Cambios de esquemas dinmicos
Manejo de transacciones automticas
Control de concurrencia

13

CONCLUSIN
La Base de Datos Orientados a Objetos es una adaptacin del paradigma de
programacin orientada a objetos, se basa en el concepto de encapsular los datos
en un objeto y el cdigo que opera sobre ellos.
Trabaja de manera parecida con las clases, las subclases y superclases basadas
en una extensin del concepto ES del modelo entidad-relacin.

14

BIBLIOGRAFA
Abraham Silberschatz, Henry F. Korth y S. Sudarshan, Fundamentos de bases de
datos, 4 Edicin, McGraw-Hill, PRINTED IN SPAIN
Http://fudamentobditics.blogspot.mx/p/unidad-7.html, 04/05/2014
Http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r88163.PDF,
04/05/2014
Http://blearning.itmina.edu.mx/dep/sada/carreras/Ingenieria%20en%20Sistemas%
20Computacionales/4to%20Semestre/Fundamentos%20de%20Bases%20de%20
Datos/fundamentos_bd/BasesDeDatosOrientadasAObjetos.pdf, 04/05/2014
Http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r88165.PDF,
04/05/2014
www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r85676.DOCX?, 04/05/2014
http://alarcos.esi.uclm.es/doc/bbddavanzadas/08-09/Funcionalidad%201.pdf,
04/05/2014

15

También podría gustarte