Estándares, lenguajes y diseño de bases de datos de objetos

Slides:



Advertisements
Presentaciones similares
Las aplicaciones requieren datos persistentes
Advertisements

Curso de java básico (scjp)
integridad referencial
TECNICATURA UNIVERSITARIA EN INFORMATICA
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
POLIMORFISMO UNIDAD 4.
Rocío Contreras Águila Primer Semestre 2010
BASE DE DATOS OBJETO RELACIONAL
Lenguaje de programación Java
Tomado de:
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
INTELIGENCIA ARTIFICIAL
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Lenguaje de consulta de Hibernate
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Teoría de lenguajes y compiladores
Oracle, orientado a objetos
UNIDAD II Modelo de Datos.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
BASES DE DATOS ORIENTADAS A OBJETO
HERENCIA.
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
BASES DE DATOS ORIENTADAS A OBJETOS
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Diagramas de Clase Angela Carrillo R..
Viviana Poblete López Módulo: Modelo de Datos
ESTRUCTURA DE DATOS EN JAVA
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Bases de Datos Orientadas a Objetos (BDOO)
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
MODELO ORIENTADO A OBJETOS
Asignatura: Base de datos para aplicaciones Integrantes:
Programación en C para electrónicos
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Facultad de Ingeniería
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
Detalles Generales sobre Java
Lenguaje Estructurado de Consulta
Programación orientada a objetos
Ingeniería de Requisitos
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Modelo entidad-relación extendido EER L.I. José de Jesús Eduardo Barrientos Avalos.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Modelos Entidad – Relación (E-R). El modelo entidad-relación Los MD soportados por los SGBD no suelen ofrecer, dado su bajo nivel de abstracción, los.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Estándares, lenguajes y diseño de bases de datos de objetos Ekaitz Balda & Daniel Artázcoz

Índice OMDG 2.0, el estándar Diferencias diseño conceptual BDO BDR Transformación de un esquema EER en un esquema de BDO

Índice OMDG 2.0, el estándar Diferencias diseño conceptual BDO BDR Transformación de un esquema EER en un esquema de BDO

ODMG 2.0, el estándar Importante tener un estándar para un tipo específico de bases de datos - Da soporte a la portabilidad de las aplicaciones de BD (ejecutar un programa en sistemas diferentes con mínimas modificaciones) - Lograr interoperabilidad (acceder a múltiples sistemas diferentes) - Permite que los clientes comparen productos comerciales más fácilmente

ODMG 2.0, el estándar Esta compuesto de varias partes: - El modelo de objetos El lenguaje de definición de objetos (ODL) El lenguaje de consulta de objetos (OQL) Ligaduras a LPOO (C++, SMALLTALK, JAVA)

ODMG 2.0, el estándar Esta compuesto de varias partes: - El modelo de objetos El lenguaje de definición de objetos (ODL) El lenguaje de consulta de objetos (OQL)

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Objetos y literales Un objeto se describe con 4 características: - Identificador de objeto (OID) único en el sistema - Pueden recibir opcionalmente un nombre único, para hacer referencia al objeto desde un programa - Tiempo de vida: objeto persistente u objeto transitorio - Estructura: objeto atómico u objeto de colección

Objetos y literales Un literal no tiene OID y su estructura puede ser compleja o simple Tres tipos : - Atómicos (tipos de datos básicos: long, short, unsigned long, float, double, boolean, char, string y enum) - Estructurados : son los que se crean mediante el constructor de tuplas Struct - Colección : conjunto de objetos o valores (sin OID)

Objetos y literales Todos los objetos heredan la interfaz básica de Object, y por tanto unas operaciones básicas: - Copy (copiar) - Delete (eliminar) - Same_as (igual a) Las operaciones se aplican a los objetos mediante: - Notación de punto (o.same_as(p), p=o.copy()) - Notación de flechas (o→same_as(p), p→copy())

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Interfaces predefinidas para objetos colección Todo objeto colección hereda la interfaz Collection y sus operaciones: - o.cardinality() - o.is_empty() - o.insert_element(e) - o.remove_element(e) - o.contains_element(e) Con i=o.create_iterator() se crea un objeto iterador y tiene estas operaciones: - i.reset() - i.next_position() - i.get_element()

Interfaces predefinidas para objetos colección Los objetos colección se especializan en Set, List, Bag, Array y Dictionary que heredan las operaciones de la interfaz Collection - Set<t>: conjunto de elementos de tipo t. Se incluyen: o.create_union(s), o.create_intersection(s), o.create_difference(s), o.is_subset_of(s) - Bag<t>: permite la repetición de elementos (unión, intersección y diferencia) y o.ocurrences_of(e): nº de veces que aparece el elemento e

Interfaces predefinidas para objetos colección - List<t>: lista ordenada cuyos elementos son de tipo t o.insert_element_first/last(e), o.insert_element_after/before(e,i), o.remove_first/last_element(), o.remove_element_at(i), o.retieve_first/last_element(), o.retrieve_element_at(i), o.concat(l), o.append(l) - Array<t>: como la lista, pero con nº fijo de elementos o.repalce/remove/retrieve_element_at(i,e), o.resize(n)

Interfaces predefinidas para objetos colección - Dictionary<k,v>: colección de parejas de asociaciones <k,v>, cada K es una clave única asociada con un valor v o.bind(k,v) o.unbind(k,v) o.lookup(k) o.contains_key(k)

Interfaces predefinidas para objetos colección ODMG también utiliza excepciones para informar sobre errores o condiciones concretas: - ElementNotFound - NoMoreElements - InvalidIndex - KeyNotFound

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Objetos atómicos Es cualquier objeto que no sea un objeto colección y se crean utilizando la palabra clave class Pueden ser objetos estructurados y hay que especificar sus propiedades que definen el estado (atributos y relaciones) y las operaciones que definen el comportamiento - Atributo: es una propiedad que describe algún aspecto de un objeto. Los valores suelen ser literales, aunque también pueden ser OIDs e incluso métodos empleados para calcular el valor del atributo

Objetos atómicos Relación: es una propiedad que especifica si dos objetos están relacionados entre sí. Sólo se representan las relaciones binarias mediante referencias inversas (relationship) Operaciones: cada tipo de objetos puede tener varias signaturas de operaciones, que especifican el nombre (único en cada tipo de objeto), tipos de argumentos y el valor devuelto. También se pueden especificar excepciones que pueden darse durante la ejecución de la operación

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Herencia: Interfaces y clases Interfaz: especificación del comportamiento abstracto de un tipo de objetos y no es instanciable Clase: especificación tanto del comportamiento como del estado y sí son instanciables Dos tipos de herencia: Herencia de comportamiento (:) : para heredar sólo operaciones (Interfaz -> Interfaz/Clase) puede ser múltiple Extends (extends): para heredar el estado y el comportamiento (Clase -> Clase)

Modelo de objetos ODMG Objetos y Literales Interfaces predefinidas de construcción para objetos de colección Objetos atómicos (definidos por el usuario) Herencia: Interfaces y clases Extensiones, claves y objetos factoría

Extensiones, claves y objetos factoría Extent: se puede declarar una extensión para cada tipo de objetos - Tiene nombre y contendrá todos los objetos persistentes de la clase (se comporta como un conjunto) y puede tener una o más claves Objetos factoría: heredan la interfaz ObjectFactory (new()) y sirven para generar o crear objetos mediante sus operaciones (proporciona las operaciones constructoras para la creación de nuevos objetos)

Extensiones, claves y objetos factoría Clave: está compuesta por una o más propiedades y sus valores están restringidos a ser únicos Base de datos: como puede crear muchas bases de datos diferentes cada una debe tener - Nombre de base de datos -Bind (ligar) para asignar nombre únicos a objetos persistentes - Lookup (buscar) - Unbind (desligar)

ODMG 2.0, el estándar Esta compuesto de varias partes: - El modelo de objetos El lenguaje de definición de objetos (ODL) El lenguaje de consulta de objetos (OQL)

Lenguaje de Definición de Objetos (ODL) El ODL está diseñado para soportar constructores semánticos de ODMG2.0 y no depende de ningún lenguaje de programación específico No es un lenguaje de programación completo Se pueden utilizar ligaduras específicas para transformar los constructores de ODL en elementos de un LPOO como C++, SMALLTALK o JAVA

ODMG 2.0, el estándar Esta compuesto de varias partes: - El modelo de objetos El lenguaje de definición de objetos (ODL) El lenguaje de consulta de objetos (OQL)

OQL Lenguaje consulta objetos propuesto para el ODMG. Diseñado para operar C++,SMALLTALK y JAVA. Una consulta insertada en uno de estos lenguajes de programación puede obtener como resultado objetos que coinciden con el sistema de tipos de dicho lenguaje.

OQL La implementación de operaciones de clases en un sistema ODMG puede tener su código escrito en uno de estos lenguajes. Sintaxis similar a SQL pero con características adicionales: Identidad de objetos Objetos complejos Operaciones Herencia Polimorfismo Relaciones

CONSULTAS OQL Sigue estructura SELECT d.nombred FROM d in departamentos WHERE d.escuela=‘Ingenieria’; Se necesita un punto de entrada que puede ser cualquier objeto persistente, para muchas es el nombre de extensión de su clase. Cuando usamos como entrada nombre de una extensión se debe definir una variable iterador(d.)

CONSULTAS OQL Una consulta no tiene que seguir la estructura select..from..where… Cualquier nombre constituye una consulta, cuyo resultado es una referencia a dicho objeto. C1: Departamentos; Devuelve referencia a la colección todos objetos persistentes de departamento.

CONSULTAS OQL C2: Departamento_inf; Devuelve referencia a ese objeto individual de tipo departamento. C3:Departamento_inf.director; Devuelve la referencia al objeto profesor q es director del departamento de informática.

OTRAS CARACTERISTICAS OQL Vistas Extracción elementos únicos. Operadores de colección Expresiones de colección ordenadas. El operador agrupación

Vistas Define: especifica el identificador para consultas con nombre, debe ser único entre todos los objetos. Puede tener parámetros V1: DEFINE tiene_asig_secun(nombre_dept) as SELECT a FROM a in alumnos WHEREa.asig_secun_en.nombred=nombre_dept; Esta vista define una consulta con nombre tiene_asig_secun para obtener el conjunto de alumnos con asignaturas en un departamento dado.

Extracción elementos únicos (OQL) Operador ELEMENT que garantiza la obtención de un único elemento e de una colección c que contenga un solo elemento. Si c contiene mas de un elemento o si vacío ELEMENT genera una excepción C4:ELEMENT (SELECT d FROM d in departamentos WHERE d.nombred=‘Informatica’); C4 De vuelve la referencia única al departamento de informática.

Op de colección(OQL) C5:COUNT (a in tiene_asig_secun(‘Informatica’)); C5 obtiene el número de alumnos que tienen asignaturas secundarias de informática. C6: AVG( SELECT a.prom FROM a in alumnos WHERE a.especialidad_en.nombred =‘Informatica’ and a.clase= ‘ultimo curso’ C6 obtiene el valor medio de todos los alumnos de ultimo curso de informática.

Expresiones de colección ordenadas(OQL) C7: FIRST( SELECT STRUCT(profesorado: p.nombre.apellido, salario:p.salario) FROM p in profesorado ORDER BY p.salario desc); C7 obtiene el miembro del profesorado con el salario mas alto.

El operador agrupación (OQL) C8: SELECT STRUCT (nombre_dept, num_alum_con_especialidad:count(partition)) FROM a in alumnos GROUP BY nombre_dept:a.especialidad_en-nombred; C8 obtiene el numero de alumnos con especialidad en cada departamento. Los alumnos se agrupan en la misma partición si tienen la misma especialidad.

Índice OMDG 2.0, el estándar Diferencias diseño conceptual BDO BDR Transformación de un esquema EER en un esquema de BDO

Diferencias diseño conceptual BDO BDR RELACIONES BDO: Se establecen mediante propiedades de relación o atrib de referencia que incluyen OID de los objetos relacionados. Se permiten ref únicas como colecciones de ref. Relación binaria puede declararse en una dirección o ambas dependiendo del acceso.

Diferencias diseño conceptual BDO BDR RELACIONES BDR: Relaciones entre tuplas se establecen mediante atributos con valores coincidentes. Estos se pueden considerar referencias de valores y se especifican mediante claves externas. Ref obligada a tener valor único, no permitido atrib multivaluado. Relaciones M:N no se pueden representar directamente, se debe representar como una relación (tabla) distinta.

Diferencias diseño conceptual BDO BDR HERENCIA BDO Estas estructuras se incorporan al modelo, la correspondencia se consigue mediante la utilización de consultas de herencia. Derived Extends BDR No existe ningún elemento predefinido. Los sistemas Obj-relacionales y relacionales extendidos están incorporando características para modelar estos elementos directamente.

Diferencias diseño conceptual BDO BDR Es necesario especificar las operaciones al comienzo del diseño puesto que forman parte de las especificaciones de las clases. BDR Aunque es importante especificar las operaciones durante la fase de diseño, esto puede retrasarse dado que no es realmente necesario hasta la fase de implementación.

Índice OMDG 2.0, el estándar Diferencias diseño conceptual BDO BDR Transformación de un esquema EER en un esquema de BDO

Transformación de un esquema EER en un esquema de BDO A grandes rasgos, la transformación de EER en ODL es de la siguiente forma: - Paso 1: crear una clase ODL para cada tipo de entidad EER. El tipo de la clase ODL debe incluir todos los atributos de la clase EER Multievaluados : constructores de conjunto, bolsa o lista Compuestos: constructor de tupla

Transformación de un esquema EER en un esquema de BDO Paso 2: añadir las relaciones de EER a las clases ODL Relaciones en ambas direcciones con referencias inversas Relaciones unidirecionales, con el OID como atributo Relaciones M:N combinando 1:N bidireccionales

Transformación de un esquema EER en un esquema de BDO Paso 3: Incluir operaciones apropiadas para cada clase, para conseguir tener las restricciones de integridad del EER Paso 4: una subclase en EER, una clase en ODL que heredará (extends) el tipo y los métodos de su superclase Paso 5: los tipos de entidades débiles pueden transformarse de la misma manera que los tipos de entidad normales (no débiles)

Transformación de un esquema EER en un esquema de BDO Paso 6: las categorías (tipos de unión) EER son difíciles de transformar en ODL. Declarando una clase que represente la categoría y estableciendo relaciones 1:1 con sus superclases Paso 7: una relación n-aria con n>2, una clase con relaciones 1:N a cada una de las clases participantes