• No se han encontrado resultados

Bases de Datos Avanzadas

N/A
N/A
Protected

Academic year: 2021

Share "Bases de Datos Avanzadas"

Copied!
18
0
0

Texto completo

(1)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia Bases de Datos Avanzadas

Bases de Datos Avanzadas

Tema III: Bases de datos orientadas a objetos (2)

Facultad de Informática Semestre: 9º

Curso: 2000-01

Profesor: Matilde Celma Giménez

2

4.4 Estándares

SGBD orientados a objetos: el estándar ODMG97

basado en un modelo orientado a objetos.

propuesto por el grupo ODMG (Object Database Management Group) creado en 1991 por un grupo de fabricantes de computadores.

SGBD objeto-relacionales: el estándar SQL3

basado en una extensión del modelo relacional con características de la orientación a objetos.

es una extensión de la última versión del lenguaje SQL (1992). propuesto por ANSI e ISO en 1999.

(2)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia Bases de Datos Avanzadas

Componentes de la propuesta ODMG para SGBDOO:

un modelo de datos orientado a objetos (OM)

un lenguaje de definición de datos (ODL): este lenguaje permite la

definición del esquema de la base de datos, este esquema puede ser traducido a declaraciones en algunos lenguajes de programación (C++, Smalltalk y JAVA)

un lenguaje de interrogación (OQL): es un lenguaje declarativo (no es computacionalmente completo)

enlaces con los lenguajes de programación C++, Smalltalk y JAVA

4.4.1 SGBD orientados a objetos: el estándar ODMG97

4

Características del modelo de datos OM:

basado en el concepto de objeto. Los objetos están clasificados en tipos; todos los objetos de un mismo tipo tienen el mismo comportamiento y el mismo rango de estados (valores)

 el comportamientode los objetos se define por medio de operadores que pueden ser ejecutados sobre los objetos de un tipo

 el estado(valor) de un objeto está determinado por el valor de sus propiedades: atributos y relaciones con otros objetos

los objetos tienen asociado un identificador de objeto (identidad de objetos)

la definición de un tipo de objeto consta de dos partes diferenciadas: especificación (interfaz del objeto) e implementación (representación) (abstracción de datos)

los tipos de objetos se pueden organizar en una jerarquía de tipos de objetos. Un subtipo puede tener propiedades y operadores propios. En la definición del subtipo se pueden refinar los elementos heredados cambiando su significado. Se admite la

(3)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia Bases de Datos Avanzadas

Tipos de datos

:

en el modelo se propone un sistema de tipos consistente en un conjunto de tipos básicos (atómicos) y un conjunto de constructores de tipos. Tipos básicos (tipos atómicos):char, string, float, double, boolean, enum N {n1, n2,...nm}, …

Constructores de tipos (tipos estructurados): Colecciones:

-array <T,I>: vector unidimensional de I elementos de tipo T

-set <T>: conjunto finito de elementos de tipo T

-bag <T>: bolsa (multiconjunto) finito de elementos de tipo T

-list <T>: lista finita de elementos de tipo T

-dictionary <K,T>: secuencia de pares (clave, valor) Estructuras:

-struct S {C1T1, C2T2, ...Cn Tn}: tupla de estructura {C1T1, C2T2, ...CnTn}

6

nuevos tipos de datos pueden ser definidos utilizando los constructores anteriores (combinándolos en cualquier orden). Estos tipos pueden definirse explícitamente en el esquema de la base de datos o en la declaración del tipo de los atributos de un tipo de objeto.

tanto los tipos básicos como los tipos definidos con los constructores llevan asociados un conjunto de operadores para manipular valores del tipo.

(4)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia Bases de Datos Avanzadas

Operadores asociados a los tipos colección:

cardinality() (función de tipo unsigned long) is_empty() (función de tipo boolean) is_ordered() (función de tipo boolean) allows_duplicates() (función de tipo boolean) contains-element (in element)

insert_element (in element) remove_element (in element)

create_iterator (in boolean stable) (función de tipo iterator)

8

Especificación de un tipo de objeto: define la interfaz del objeto (propiedades observables y operadores asociados)

• atributos:la definición de un atributo indica el nombre del atributo y su tipo. El tipo de un atributo puede ser un tipo de datos atómico o estructurado, o bien un tipo de objeto o una estructura de objetos (definida con los constructores array,

set, bag, list y struct aplicados sobre tipos de objetos ya definidos)

• relaciones:las relaciones entre objetos se especifican explícitamente por medio de definiciones de relaciones:

sólo se pueden definir relaciones binarias (sin atributos propios).

en la definición de una relación se indica el nombre de la relación, el tipo del objeto relacionado, la cardinalidad de la relación (uno, muchos) y una referencia inversa.

el SGBDOO vela por la integridad referencial.

existen operadores genéricos para manipular las relaciones entre objetos:

form (crea una ocurrencia de una relación) y drop (borra una ocurrencia de

una relación)

(5)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia Bases de Datos Avanzadas

•operadores:

pueden definirse operadores de tipo función y de tipo procedimiento. la definición de un operador indica: el nombre del operador, los argumentos:tipo (entrada, salida), nombre y tipo de datos, el tipo del valor devuelto (en caso de función), y el nombre de cualquier excepción asociada.

se contempla el polimorfismo de operadores.

• excepciones:activadas por los operadores en caso de error

Definición de un tipo de objeto

:

especificación e implementación

1 0

Implementaciónde un tipo de objeto: define en un lenguaje de programación una representación (estructura de datos) para las instancias del tipo y una implementación (procedimiento) para sus operadores.

(6)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

1

Bases de Datos Avanzadas

se pueden dar nombres significativosa un objeto en el momento de su creación; el objeto tiene una identidad única pero puede poseer varios nombres significativos.

los objetos de un tipo pueden ser identificados externamente por el valor de uno (o varios) atributos a los que se denomina clave; un objeto puede tener definidas varias claves.

el modelo propone un conjunto de operadores genéricospara cualquier tipo de objeto: new (creación), delete (borrado), copy (copia), ….

Definición de un tipo de objeto

:

especificación e implementación

1 2

CLASS Departamento

( extent departamentos)

{ key string código

attribute string nombre attribute LIST <string> teléfono relationship Dirección director

inverse Dirección::dpto relationship LIST < Profesor> prof

inverse Profesor::dpto

relationship LIST <Asignatura> asg inverse Asignatura::dpto number nro_prof ( ) number nro_asg ( )} atributos relaciones operadores

El lenguaje ODL:

(7)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

3

Bases de Datos Avanzadas CLASS Profesor

( extent profesores)

{ key string código

attribute string nombre

attribute string dirección

attribute string teléfono

attribute enum {‘CEU’, ‘CU’, ‘TEU’, ‘TU’} categoría

relationship Dirección director

inverse Dirección::prof

relationship LIST < Docencia> docencia inverse Docencia::prof

relationship Departamento dpto

inverse Departamento::prof number nro_asg ( )} 1 4 CLASS Asignatura ( extent asignaturas)

{ key string código

attribute string nombre

attribute short cre_teo

attribute short cre_prac

relationship LIST < Docencia> docencia inverse Docencia::asg

relationship Departamento dpto

inverse Departamento::asg

(8)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

5

Bases de Datos Avanzadas CLASS Dirección

( extent directores)

{ attribute date fecha

relationship Profesor prof

inverse Profesor::director relationship Departamento dpto

inverse Departamento::director}

CLASS Docencia

( extent docencias)

{ attribute short créditos

relationship Profesor prof

inverse Profesor::docencia relationship Asignatura asg

inverse Asignatura::docencia}

relaciones binarias con atributos propios

1 6

El lenguaje OQL:

SELECT

struct (nombre: nombre, prof: nro_prof,

prof_CU: (SELECT P.nombre FROM D. prof AS P WHERE P.categoría=‘CU’)) FROM Departamentos AS D

el resultado de esta consulta es de tipo:

set < struct (nombre: string, prof: number, prof_CU: set <string>)>

Obtener el nombre, el número total de profesores y la relación de profesores catedráticos de los departamentos de la Universidad.

(9)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

7

Bases de Datos Avanzadas

− nuevos tipos de datos: BOOLEAN, LOB

− constructores de tipos: escalares y estructurados

− concepto de objeto(tipos estructurados definidos por el usuario)

• identidad de objetos (tablas de un tipo de objeto)

• encapsulación (definición de métodos)

− herencia en jerarquíade tipos de objetos y en jerarquía de tablas

4.4.2 SGBD objeto-relacionales: el estándar SQL3

Características:

1 8

Tipos de datos

nuevos tipos de datos: BOOLEAN, LOB

constructores de tipos:

(utilizables en la definición del tipo de los atributos de una tabla, o en la definición de tipos de usuario) • escalares: REF

• estructurados: ROW, ARRAY

(operadores (consultores y constructores) predefinidos)

tipos de datos definidos por el usuario: CREATE TYPE ... (utilizables en cualquier punto donde se pueda usar otro tipo de datos y como tipo de las tuplas de una tabla)

• escalares: DISTINCT TYPES • estructurados (tipos de objetos)

(10)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

9

Bases de Datos Avanzadas

Nuevos tipos de datos:

BOOLEAN:lógica trivaluada (TRUE, FALSE, UNKNOWN)

LOB: (Large Object):

BLOB (Binary Large Object): almacenamiento de sonido, imagen CLOB (Character Large Object): almacenamiento de texto

- operadores y funciones predefinidas

- atributos de tipo LOB: consultados y actualizados de la forma usual

Tipos de datos

2 0

CREATE TABLE Libro

(título VARCHAR(100),

id INTEGER,

resumen CLOB(32K),

texto CLOB(20M),

video BLOB(2G))

SELECT position (‘Capítulo 1’ IN texto) INTO :variable FROM Libro

(11)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

1

Bases de Datos Avanzadas

Tipos de datos definidos por el usuario

: CREATE TYPE ...

(operadores definidos por el usuario (métodos))

 escalares: DISTINCT TYPES  estructurados (tipos de objetos)

Tipos de datos

2 2

Tipos de datos definidos por el usuario

:

- escalares: DISTINCT TYPES

definición: CREATE TYPE nombre_tipo AS tipo_predefinido

basados en un tipo de datos predefinido (INTEGER, CHAR, ...) definición propia de operadores (métodos)

fuertemente tipados no admiten subtipos

(12)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

3

Bases de Datos Avanzadas

CREATE TYPE metros AS INTEGER; CREATE TYPE metros2 AS INTEGER; CREATE TABLE Habitación

(ID integer, altura metros, superficie metros2)

SELECT *

FROM Habitación

WHERE altura> superficie

¡

error

!

DISTINCT TYPES

2 4

Tipos de datos definidos por el usuario

:

- estructurados: tipos de objetos

definición:

CREATE TYPE nombre_tipo AS (atributo1 tipo 1,..., atributon tipon)

[INSTANTIABLE | NOT INSTANTIABLE]

[FINAL | NOT FINAL]

[METHOD nombre_método (lista_parámetros) RETURN tipo ] ...

CREATE METHOD nombre_método (lista parámetros) FOR tipo_estructurado BEGIN ... END.

especificación

(13)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

5

Bases de Datos Avanzadas

los métodos son funciones con un parámetro implícito del tipo estructurado (tipo de objeto) al que está asociado el método.

especificación de métodos separada de su implementación.

selección de atributos e invocación de métodos con notación de punto. constructores: de instancia vacía y de valor.

2 6

CREATE TYPE dirección_t AS (calle CHAR(30),

ciudad CHAR(20), código INTEGER)

CREATE TYPE Persona AS

(DNI INTEGER,

nombre VARCHAR(60)

dirección dirección_t )

REF (DNI)

METHOD salario() RETURNS DECIMAL(9,2)

(14)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

7

Bases de Datos Avanzadas

dirección()

NEW dirección_t (calle: Jesús 13, ciudad: Valencia, código: 12345)

CREATE TABLE Empleado OF Persona

constructor de instancia nula constructor de valor del tipo

UPDATE Empleado SET dirección =

NEW dirección_t (calle: Jesús 13, ciudad: Valencia, código: 12345)

2 8

Constructores de tipos:

(operadores (constructores y consultores) predefinidos)

Escalares:

REF:

referencia a un objeto a través de su oid

(un valor de un tipo de objeto (tipo estructurado definido por el usuario) tiene oid cuando es una fila de una tabla)

-definición: REF (tipo_objeto)

La representacion interna de los valores del tipo REF asociado a un tipo de objeto puede elegirse:

- generado por el sistema: REF IS SYSTEM GENERATED - derivado de valores de otros atributos: REF (atributo)

- generado por el usuario: REF USING <tipo de datos predefinido>

(15)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

9

Bases de Datos Avanzadas

Constructores de tipos:

Estructurados:

ROW:

tipo tupla

- definición:ROW (campo1 tipo1, campo2 tipo2,

...,

campon tipon)

-selector de campo por notación de punto: expresión.campo

-constructor: (campo1 :..., campo2 :...,...)

3 0

Constructores de tipos:

Estructurados:

ARRAY:

tipo vector (unidimensional)

- definición : tipo_base ARRAY [dimensión]

- tipo base : cualquier tipo de datos excepto ARRAY

- selector de elemento por ordinal: expresión [i ] - constructor: ARRAY[valor1, valor2, .... ]

- operadores : cardinalidad, comparación, concatenación,... -facilidades para seleccionar elementos por contenido

(16)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

1

Bases de Datos Avanzadas

CREATE TABLE Informes

(id INTEGER,

título VARCHAR(100),

autor REF (persona),

claves VARCHAR(10) ARRAY [5 ],

formato ROW (páginas INTEGER, tipo_letra CHAR(10), tamaño INTEGER) )

(autor WITH OPTIONS SCOPEPersona)

CREATE TYPE Persona AS

(DNI INTEGER,

nombre VARCHAR(60) )

REF (DNI)

CREATE TABLE Personas OF Persona

(DNI INTEGER,

nombre VARCHAR(60) )

3 2

SELECT título, formato.páginas FROM Informes I

WHERE I.autor -> nombre =‘Juan García’ AND claves[1]=‘Física’

selector de campo en tipo ROW

manipulación del tipo REF selector de elemento en tipo ARRAY

UPDATE Informes SET claves = ARRAY[‘Física’, ‘Química’ ] WHERE id = 123

(17)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

3

Bases de Datos Avanzadas

Herencia en jerarquía de tipos

los tipos estructurados definidos por el usuario pueden clasificarse en una jerarquía de tipos

un subtipo hereda los atributos y métodos de su supertipo un subtipo puede incluir nuevos atributos y métodos

se admite sólo herencia simple

se admite sobrecarga (overload) y reescritura (overriding) de métodos a través de tipos

se respeta el principio de sustitutabilidad: en el lugar de un valor del supertipo se puede incluir un valor de cualquier subtipo

3 4

CREATE TYPE Empleado AS

(DNI INTEGER,

nombre VARCHAR(60)

dirección dirección_t ) NOT FINAL

REF (DNI)

METHOD salario() RETURNS DECIMAL(9,2)

CREATE TYPE Vendedor UNDER Empleado

(zona CHAR(4))

(18)

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica deValencia

5

Bases de Datos Avanzadas

Herencia en jerarquía de tablas:

una subtabla hereda de la supertabla las columnas, restricciones, disparadores, ....

las consultas sobre la supertabla tienen como alcance las tuplas de todas las subtablas en la jerarquía

CREATE TABLE Empleados OF Empleado PRIMARY KEY (DNI)

Referencias

Documento similar

 Hay complejas dependencias entre los parámetros contextuales, que algunas veces son difíciles de deducir. Para la gestión del contexto, Martinenghi y Torlone [95]

Cuando se realiza una revisión integrativa entorno a un tema como el de la sintomatología presente en los pacientes con enfermedad oncológica avanzada, que motivan el

BASES DE DATOS (IG18 Semipresencial) Diseño Físico de Bases de Datos Relacionales.. Lledó Museros /

Introducción a las Bases de Datos: Sistemas de Bases de Datos frente a Sistemas de Ficheros.. Lledó Museros /

Esto nos deja claro que, dentro de este tipo de terapias, son el Qigong y el Tai Chi las que muestran unos resultados más prometedores a la hora de establecerse

U-Ranking cuenta con la colaboración del Ministe- rio de Universidades, al permitirnos el acceso al Sistema Integrado de Información Universitaria (SIIU). El SIIU es

El valor agregado 6 del indicador por universidad se pre- senta en una escala de 0 (mínimo valor obtenido por una universidad del sistema en ese indicador) a 100 (correspondiente

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas