PDF de programación - Unidad I. Sesión 4. SGBDOO - Bases de datos avanzadas

Imágen de pdf Unidad I. Sesión 4. SGBDOO - Bases de datos avanzadas

Unidad I. Sesión 4. SGBDOO - Bases de datos avanzadasgráfica de visualizaciones

Publicado el 3 de Septiembre del 2020
658 visualizaciones desde el 3 de Septiembre del 2020
196,9 KB
26 paginas
Creado hace 20a (02/10/2003)
Bases de datos

avanzadas

Universidad de Los Andes
Postgrado en Computación

Prof. Isabel M. Besembel Carrera

Unidad I. Sesión 4. SGBDOO.

1

Introducción …
Características de los SGBDOO {Atkinson, M. et al. The Object-Oriented Database Manifesto.

Proceedings 1st. International Conference on Deductive and Object-Oriented Databases. Elsevier, 1989}
Obligatorias: persistencia, manejo de memoria secundaria, concurrencia,

recuperación, consultas, objetos complejos, identidad del objeto,
encapsulación, tipos o clases, herencia, reescritura combinada con
encadenamiento tardío, extensibilidad y completitud computacional.

Opcionales: herencia múltiple, chequeo e inferencia de tipo, distribución,

diseño de transacciones y versiones.

Abiertas: paradigma de programación, sistema de representación,

sistema de tipos y uniformidad

Objetos complejos: objetos que se construyen a partir de los simples

aplicandoles los constructores

Sep. 2003

Isabel Besembel. ULA-PGCOMP

2

Jasmine
Manejo de objetos complejos y multimedia {http://www.cai.com/products/fdb/jasmine}
Clases, métodos, instancias con identificador único y atributos

transientes o persistentes

Métodos almacenados con la clase, modificación dinámica
Herencia simple y múltiple
Encapsulamiento y polimorfismo
Concurrencia, recuperación y facilidades de consultas ad-hoc
Distribución: intranet, extranet e Internet
Lenguajes: C++, Java, Jasmine Studio
Procesamiento de consultas: con ODQL

Sep. 2003

Isabel Besembel. ULA-PGCOMP

3

Poet

Objetos complejos y multimedia {http://www.poet.com/products/documentation}
Clases, métodos, instancias con identificador único y atributos

transientes o persistentes
Herencia simple y múltiple
Encapsulamiento y polimorfismo
Completitud computacional soportada por C++
Concurrencia, transacciones anidadas, recuperación y facilidades de

consultas ad-hoc
Versionamiento
Procesamiento de consultas: OQL o PoetQL
Lenguajes: C++, Java, VisualBasic

Sep. 2003

Isabel Besembel. ULA-PGCOMP

4

O2

Un tipo de objeto se define usando los tipos atómicos del O2 y aplicando sus
constructores de tipo. {Deux, O. The story of O2. IEEE transactions on knowledge and data engineering.
Vol. 2. Nro. 1. Marzo, 1990}

Tipos atómicos o simples: boolean, integer, string, real, character y bit.
Constructores de tipos complejos: tuple, set, unique set y list.
Un objeto tiene identidad única (oid) y un valor actual (estado).
Un valor no tiene identidad. Los objetos tienen identidad.
Los objetos son persistentes o transitorios. Los valores son transitorios a

menos que formen parte de un objeto persistente.

Las clases se definen anteponiendo la palabra class y los métodos con

method

La herencia de clases se define con la palabra inherit. Se puede cambiar el

nombre de los atributos o métodos heredados con rename atrib as
nuevoNombre

Sep. 2003

Isabel Besembel. ULA-PGCOMP

5

class Persona

type tuple (

nss: string,
nombre: tuple (

dirección: tuple (

fechaNac: Fecha,
sexo: character )

method edad: integer

end
type Fecha: tuple (

año: integer,
mes: integer,
dia: integer );

nomPila: string,
paterno: string,
materno: string),
número: integer,
ubic: string,
ciudad: string,
estado: string,
codPostal: string ),

Ejemplo O2

Encapsulamiento, reescritura

y encadenamiento tardío

Tipos y clases
Herencia simple y múltiple
Extensibilidad soportada por

los cambios de esquema

Manejo de memoria

secundaria y persistencia

Concurrencia y recuperación
en caso de fallas con puntos
de chequeo

Distribución soportada por
Ethernet y TCP/IP. Cliente-
servidor.

Chequeo e inferencia de tipo
Tipos son componentes de

las clases

Sep. 2003

Isabel Besembel. ULA-PGCOMP

6

class Estudiante inherit Persona

type tuple (

clase: string,

carreraEn: Departamento,
especialidadEn: Departamento,
inscritoEn: set ( Sección ),
boleta: set ( tuple (

nota: character,
nnota: real,
sección: Sección ) ) )

method

promedioDeNotas: real,
cambiarClase: boolean,
cambiarCarrera ( nc: Departamento ): boolean

end
class EstudianteDePostgrado inherit Estudiante
grados: set ( tuple (

type tuple (

end

asesor: Profesor )

colegio: string,
grado: string,
año: integer ) )

Ejemplo O2

Manejo de transacciones
Sin versiones
Manejador de mensajes
Lenguajes: CO2 y BasicO2
Manejo de cluster y de buffer
Implementado en C bajo

Unix (SunOS4.0)

Manejo de espacio de

trabajo

Indexación basada en

objetos complejos y herencia

No permite cambios de la
estructura de la clase. Una
clase se puede eliminar si
ella no tiene instancias y
ninguna otra clase depende
de ella

Sep. 2003

Isabel Besembel. ULA-PGCOMP

7

Implementación de los métodos

method body edad: integer in class Persona
{

int a;
Fecha f;
f = today():
a = f->año – self ->fechaNac ->año;
if ( f->mes < self ->fechaNac -> mes || ( ( f->mes == self->fechaNac-
>mes) && ( f->dia < self->fechaNac->dia ) )

- - a;
return a;

}

Sep. 2003

Isabel Besembel. ULA-PGCOMP

8

Consultas en O2

select tuple ( nombre: e.nombre.nomPila, apellido: e.nombre.paterno )
from e in Estudiante
where e.carreraEn.nombreD = “Ciencias de la computación”

Declaración de la raíz persistente:
name Estudiantes: set ( Estudiante )

Una consulta regresa un objeto o un valor
El lenguaje de consulta es un subconjunto del lenguaje de

programación, funcional y con cálculo de predicados de primer
orden

Sep. 2003

Isabel Besembel. ULA-PGCOMP

9

ObjectStore

Usa las declaraciones de C++ extendido con elementos

adicionales para bases de datos. {Lamb et al., 1991}.

Constructores de tipos: os_Set, os_Bag, os_List
Tipos básicos, los mismos de C: char, int, long int, unsigned int, float,

double, char*

Declaración de relaciones: tipo atributo inverse_member

tipo::atributo;

Sep. 2003

Isabel Besembel. ULA-PGCOMP

10

Ejemplo ObjectStore

struct Fecha { int año, mes, dia };

class Persona
{

sexo;

nomPila, paterno, materno: } nombre;
número;

char nss[10];
struct { char*
struct { int
char* ubic, ciudad, estado, codPostal } dirección;
Fecha fechaNac;
char

public:
void
nombre
dirección
Fecha
char
int
};

Persona();
getNombre();
getDirección();
getFechaNac();
getSexo();
edad();

// Constructor vacío

Sep. 2003

Isabel Besembel. ULA-PGCOMP

11

class Estudiante: public Persona
{ char*
clase;

Departamento *carreraEn;
Departamento *especialidadEn;
os_Set<Sección*> inscritoEn;
os_Set<Boleta*>
public:
void Estudiante();
float promedioDeNotas();
int
int

boleta;

Ejemplo ObjectStore

struct Boleta { char
float
Sección *sección;

nota;
nnota;

}

struct Grado { char* colegio;
char* grado;
int
}

año;

cambiarClase();
cambiarCarrera ( Departamento *nd );

}

Sep. 2003

Isabel Besembel. ULA-PGCOMP

12

Ejemplo ObjectStore

class EstudianteDePostgrado: public Estudiante
{

os_Set<Grado*> grados;
Profesor

asesor;

}

extern database *bdUniversidad;
class Profesor: public Persona
{
salario;
rango;
oficinaP;

float
char*
char*
os_Set<Departamento*>
Departamento *preside inverse_member Departamento::director;
os_Set<Estudiante*>
public:
Profesor(char s[10]) {nss = new(bdUniversidad) char[10]; strcpy(nss, s); };
void ascenso();

}

perteneceA inverse_member Departamento::miembros;

asesora inverse_member Estudiante::asesoradoPor;

Sep. 2003

Isabel Besembel. ULA-PGCOMP

13

Implementación de los métodos

Manipulación de los objetos en C++.
Se incluye la instrucción: foreach(c, colección)

main( )
{ database bdUniversidad = database::open(“/bases/univ”);

transaction::begin();
os_Set<Departamento*> &departamentos =
os_Set<Departamento*>::create(bdUniversidad);
departamentos.insert(d);
transaction::commit();

}

Sep. 2003

Isabel Besembel. ULA-PGCOMP

14

ORION

Objetos complejos, compuestos y multimedia. {W. Kim. Introduction to Object-Oriented Databases. The

MIT Press, 1991}.

Identificador del objeto: compuesto del identificador de la clase y de la

instancia, eventualmente uno del lugar

Encapsulación de datos y comportamiento
Extensiones de clases
Herencia simple y múltiple
Reescritura y encadenamiento tardío
Complejidad computacional soportada por C
Extensibilidad que soporta cambios de esquema
Persistencia y recolector de basura por alcanzabilidad
Agrupamiento simple por clases y manejo de buffers

Sep. 2003

Isabel Besembel. ULA-PGCOMP

15

Clase

NombreDeLaClase
Atributos
Superclases
Subclases
Métodos

Atributo

Clase
Dominio
HeredadaDe

Clases del sistema

subsistema de transacciones

Manejador de
interbloqueo

Manejador de

bloqueos

ORION

Método

Clase
NombreDelMétodo
Código
HeredadoDe

Objeto

versionable

Versión 1

versiónDe

Manejador de
transacciones

Manejador de
recuperación

Manejador de

bitácoras

Versión 2

derivadaDe

Versión 3

Versión 4

Sep. 2003

Isabel Besembel. ULA-PGCOMP

16

ORION

Manejo de espacio en disco e indexación asociativa con árboles_B+ sobre la

jerarquía de clases

Manejo de concurrencia y recuperación sólo para fallas no catastróficas
Distribución solo en la versión 2. TCP/IP.
Transacciones seriales con dos tablas: de bloqueos y de transacciones

bloqueadas

Versiones: objetos versionados transientes y versiones de trabajo
Métodos son objetos que se comunican por pase de mensajes
Lenguaje de definición de datos: Lisp Statice extensión de LISP
(
  • Links de descarga
http://lwp-l.com/pdf18166

Comentarios de: Unidad I. Sesión 4. SGBDOO - Bases de datos avanzadas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad