BASES DE DATOS AVANZADAS Tema 3, parte b. Univ. Cantabria Fac. de Ciencias
|
|
- Alberto Poblete Ponce
- hace 8 años
- Vistas:
Transcripción
1 BASES DE DATOS AVANZADAS Tema 3, parte b Modelo de Objetos Objetos Puro Univ. Cantabria Fac. de Ciencias Francisco Ruiz, Marta Zorrilla
2 Objetivos Presentar la tecnología de bases de datos OO. Conocer el estándar ODMG 3.0. Mostrar las diferencias con respecto a la tecnología OR. Matisse: un ejemplo de SGBD-OO 3a.2
3 Contenido Bases de Datos Orientadas a Objetos Puras ODMG 3.0 Modelo de Objetos ODL OQL SGBD Objeto-Relacionales vs Orientados a Objetos 3a.3
4 Bibliografía Básica Piattini et al. (2006): Tecnología y Diseño de Bases de Datos. Cap. 19. Connolly y Begg (2005): Sistemas de Bases de Datos. Caps. 27. Complementaria Elmasri y Navathe (2007): Fundamentos de Sistemas de Bases de Datos. Caps a.4
5 Introducción SGBD-R Modelo de datos sencillo. Arquitectura en 3 niveles (programas y datos separados) Bases teóricas sólidas: Relaciones n-arias R D1x D2 x... x Dn. Soporte matemático: álgebra y cálculo relacional. Dependencias funcionales (semántica de la relación). Tecnología madura: Optimización de consultas Indexación Administración de la concurrencia y de transacciones (ACID). Seguridad en el funcionamiento: recuperación. Lenguaje estándar SQL ( SQL 2003) 3a.5
6 Introducción Pero... sólo adecuados para aplicaciones tradicionales de BD. En la actualidad, hay nuevas necesidades: gestión sistemas multimedia, sistemas de información médica o sistemas GIS que requieren manipular información más compleja. Problemas: 1) Convertir objetos y relaciones al modelo relacional supone descomponer los objetos en gran número de tablas errores, y por otra parte gran número de joins para su recuperación rendimiento Solución: SGBD relacionales de objetos 2) Otro problema es que los modelos de datos y las estructuras de datos de los lenguajes de programación está desacoplados Solución: SGBDOO y lenguajes OO siguen el mismo paradigma. Datos + comportamiento. Lenguaje OQL. 3a.6
7 BD Orientadas a Objetos Puras Reglas de oro: MANIFIESTO DE LOS SGBD-OO ATKINSON et al. (1989) 1. Objetos complejos: Construcción de objetos complejos aplicando constructores sobre objetos básicos (set, tuple, list, array, ). 2. Identidad de objetos: cada objeto se identifica por su OID, independiente del valor de sus atributos. 3. Encapsulación: los programadores solo tienen acceso a la interfaz de los métodos, los datos e implementación están ocultos. 4. Tipos o clases: el esquema de BDOO incluye un conjunto de tipos o de clases, no es imprescindible que el sistema mantenga la extensión del tipo. 5. Herencia de tipos o clases (jerarquías). 6. Vinculación dinámica (sobrecarga de métodos). 7. LMD computacionalmente completo 8. Extensibilidad de tipos de datos 3a.7
8 BD Orientadas a Objetos Puras Reglas de oro: 9. Persistencia: MANIFIESTO DE LOS SGBD-OO ATKINSON et al. (1989) Los datos deben mantenerse cuando la aplicación que los generó haya finalizado 10. Gestión de BD grandes. Disponer de mecanismos que proporcionen una clara independencia lógica y física. 11. Usuarios concurrentes 12. Recuperación ante fallos software o hardware 13. Facilidad de consulta ad hoc, de alto nivel (razonablemente declarativo), eficiente e independiente de la aplicación. No necesariamente un lenguaje de programación, podría ser un explorador gráfico. 3a.8
9 BD Orientadas a Objetos Puras MANIFIESTO DE LOS SGBD-OO ATKINSON et al. (1989) No menciona nada acerca de: Mecanismos de seguridad Mecanismos de integridad Vistas Lenguaje de consultas declarativo 3a.9
10 SGBDOO (Parsaye et al., 1989) Un SGBDOO es un SGBD que soporta un modelo basado en el paradigma orientado a objetos. Almacena objetos y su esquema (persistencia) Lenguaje de consulta de alto nivel con capacidades de optimización Por ser gestor: incluye mecanismos para optimizar el acceso (indexación y clustering), el control de concurrencia, seguridad y gestión de usuarios, facilidad de consulta y recuperación ante fallos. Por ser OO: características de identidad, encapsulación, herencia, polimorfismo y control de tipos class myclass2 { int a; class myclass { public: int a; void set_a (int num); public: int get_a (); void set_a (int num); }; int get_a (); }; SGBDOO 3a.10
11 BD Orientadas a Objetos Puras Estrategias para el desarrollo de SGBD-OO Ampliar un lenguaje de programación OO existente con capacidades de BD (caso de GemStone). Proporcionar bibliotecas de clases con las capacidades tradicionales de las bases de datos (persistencia, transacciones, concurrencia, ) Ontos, ObjectStore y Versant Incrustar estructuras de un lenguaje de BD orientado a objetos en un lenguaje host tradicional. Caso de O2, que extiende el C. Ampliar un lenguaje de BD con capacidades OO, caso del SQL 2003 y Object SQL (OQL, propuesto por ODMG) Desarrollar un lenguaje/modelo de datos desde cero. Nadie 3a.11
12 BD Orientadas a Objetos Puras : Identidad Una parte clave de la definición de un objeto es su identidad única. En un SGBD-OO a cada objeto se le asigna un Identificador de Objeto (OID) cuando es creado. El OID es Generado por el sistema. Único para cada objeto y único en el sistema. Mecanismo equivalente a la integridad de entidades. Invariante, es decir, no cambia a lo largo de la vida del objeto. No será utilizado por ningún otro objeto, incluso después de que el objeto sea eliminado. Independiente del estado (valores de los atributos). Dos objetos pueden tener el mismo estado pero no el mismo OID. Invisible para el usuario (idealmente, no se suele cumplir). En los modelos relacionales el OID es por valor de la clave, en OO es la dirección de memoria que ocupa en el proceso, como éste es menor que el espacio físico pues se habla de OID lógicas (independiente del estado y de la ubicación) y físicas. El trabajar con OID, es más eficiente (ocupan menos espacio), rápido e independientes del contenido 3a.12
13 BD Orientadas a Objetos Puras Los SGBDR tienen un modelo en dos niveles: páginas en memoria y en disco Los SGBDOO proporcionan la ilusión de un único nivel, tratando de utilizar la misma representación en memoria que en disco Transformación de OID a punteros de memoria y viceversa. Existen varias estrategias La persistencia, los objetos sobrevivan después de que termine el programa que los creó. Diferentes estrategias 3a.13
14 Modelo 2 niveles BDR vs 1 nivel BDOO Tabla de objetos residentes 3a.14
15 BD Orientadas a Objetos Puras: persistencia Mecanismos para implementar la persistencia en SGBDOO: Puntos de comprobación (checkpoint). El sistema copia todo o parte del espacio de direcciones de trabajo a disco. Prob. el punto de control solo lo puede leer el prog. que lo creó Serialización. Copiar a disco el cierre de una estructura de datos. Prob. no preserva la identidad del objeto Paginación explícita. El programador indica de forma explícita los objetos que quiere que se graben en disco de forma obligatoria e inmediata por el sistema. Persistencia Ortogonal (el mecanismo de persistencia se integre dentro del lenguaje de programación de aplicaciones), basada en tres principios Independencia: la persistencia de un objeto es independiente de cómo el programa lo manipula y al contrario. Ortogonalidad respecto a los tipos: Todos los objetos deben poder ser persistentes sin depender de su tipo (persistente o transitorio). Transitividad: La manera de identificar y proveer persistencia no depende de los tipos de datos del lenguaje. 3a.15
16 BD Orientadas a Objetos Puras Ventajas: Capacidades de modelado enriquecidas Extensibilidad Eliminación del desajuste de impedancia Lenguaje de consulta más expresivo Soporte para la evolución de esquemas Soporte para transacciones de larga duración Apto para aplicaciones de BD avanzadas Rendimiento mejorado Desventajas: Falta de un Modelo de Datos universal Falta de experiencia Falta de estándares Competencia La optimización de consultas hace peligrar la encapsulación Bloqueos a nivel de objeto pueden perjudicar el rendimiento Complejidad Sin soporte para vistas Sin soporte para seguridad 3a.17
17 BD Orientadas a Objetos Puras: ventajas Capacidades de modelado enriquecidas: el modelo OO permite que el mundo real sea modelado mejor. El objeto, que encapsula el estado y el comportamiento, es una manera más natural y real de representar objetos del mundo real. Extensibilidad: permiten que se puedan definir nuevos tipos a partir de los tipos existentes. Eliminación del desajuste de impedancia: Una sola interfaz entre el LMD y el lenguaje de programación. Esto elimina mucha de las ineficiencias que ocurrían al querer corresponder un lenguaje declarativo como SQL y un lenguaje de programación como C. Lenguaje de consulta más expresivo: el acceso navegacional es más adecuado para manejar consultas recursivas, etc Sin embargo, se argumenta que la mayoría del los SGBDOO están ligados a un lenguaje de prog., que en general no es demasiado fácil de usar para los usuarios finales. Por ello el estándar ODMG especifica un lenguaje declarativo basado en una versión OO de SQL. Soporte para la evolución de esquemas: El estrecho acoplamiento entre aplicaciones y datos permite que la evolución de esquemas sea más viable. La generalización y la herencia permiten que los esquemas estén mejor estructurados, que sean más intuitivos, y que capturen más la semántica de la aplicación. 3a.18
18 BD Orientadas a Objetos Puras: ventajas Soporte para transacciones de larga duración: los SGBD actuales obligan la serializabilidad de transacciones concurrentes, para mantener la consistencia. Eso no es útil para transacciones de larga duración, por ello algunos SGBDOO usan otros protocolos para manejar transacciones de larga duración (bloqueos de jerarquías de objetos). Apto para aplicaciones de BD avanzadas: La capacidades de modelado enriquecida en los SGBDOO, hacen que sean adecuados para aplicaciones como CAD, CASE, multimedia, OIS, etc. Rendimiento mejorado: existen varios estudios que manifiestan la mejora en rendimiento con respecto a los SGBDR. Aunque algunos argumentan que tienen mejor rendimiento para aplicaciones más adecuadas a la OO, pero que en aplicaciones tradicionales de SGBD (OLTP) son mejores los SGBDR. 3a.19
19 BD Orientadas a Objetos Puras: desventajas Falta de un Modelo de Datos universal: no existe un modelo de datos universal y la mayoría carece de fundamentos teóricos. Aunque ODMG ha propuesto un modelo de objetos que se ha convertido en el estándar de facto en los SGBDO Falta de experiencia: en comparación con los SGBDR el uso de los SGBOO es todavía limitado. Por ello, no se tiene demasiada experiencia en ellos. Falta de estándares: como no existe un modelo de datos estándar, tampoco existe un lenguaje de consulta estándar. Aunque ODMG ha propuesto un lenguaje de consultas OO, que se ha convertido en de facto. Competencia: los SGBR y los SGBDOR están más difundidos y existen muchas más herramientas desarrolladas para ayudar a los usuarios finales. La optimización de consultas hace peligrar la encapsulación: la optimización de consultas requiere un entendimiento de la implementación subyacente para acceder a la BD eficientemente, eso puede comprometer el concepto de encapsulación. Bloqueos a nivel de objeto pueden perjudicar el rendimiento: muchos SGBDOO usan el bloqueo como la base de los protocolos de concurrencia. Sin embargo, si el bloqueo se aplica a nivel de objeto, el bloqueo de una jerarquía de herencia puede ser problemática, como así también su rendimiento. Complejidad: la gran funcionalidad que proveen los SGBDOO, hace que sean más complejos, y esto lleva a productos más difíciles de usar y más caros. Sin soporte para vistas y restricciones declarativas: dependen de los métodos definidos Sin soporte para seguridad: actualmente los SGBDOO no proporcionan mecanismos adecuados de seguridad, no pueden conceder derechos de acceso a objetos o clases por usuario 3a.20
20 ODMG 3.0 Object Database Management Group: Grupo de desarrollo de SGBD orientados a objetos, ligado a OMG (Object Management Group): Object Design, Sun Microsystems, ONTOS, O2, Technology / Ardent Soft., Objectivity, Versant, Gemstone, Computer Associates, ObjectStore, InterSystems CACHE, etc. Creado a mediados de 1991, a propuesta de Catell, para definir los estándares de las BD orientadas a objetos Asegurar una portabilidad sobre los diferentes productos de estas compañías Normalizar el modelo de datos a objetos y los lenguajes Aparición de The ODMG-93 Standard. Revisiones ODMG 95, 97, 99 (ODMG Java). De Facto Object Model Object Data Definition Language (ODL) Object Query Language (OQL) Interfaces con C++, Smalltalk, Java 3a.21
21 ODMG 3.0 Propuesta de Arquitectura Operativa DECLARACIONES EN ODL O PL ODL CÓDIGO FUENTE DE LA APLICACIÓN EN PL Preprocesador de declaración Compilador PL metadatos BD Runtime SGBDOO CÓDIGO BINARIO APLICACIÓN Enlazador APLICACIÓN EN EJECUCIÓN 3a.22
22 ODMG 3.0 Modelo de Objetos Resumen de Características Los primitivas básicas de modelado son los objetos y los literales. Sólo los objetos tienen OID. Objetos y literales están organizados en tipos. Todos los objetos y literales de un mismo tipo tienen un comportamiento y estado común. Un tipo también es un objeto en sí mismo. Un objeto es una instancia de su tipo. El comportamiento está definido por un conjunto de operaciones que se pueden realizar sobre o por el objeto. Las operaciones pueden tener una lista de parámetros de E/S tipados y pueden retornar un resultado tipado. 3a.23
23 ODMG 3.0 Modelo de Objetos Resumen de Características El estado está definido por los valores que el objeto toma para un conjunto de propiedades. Una propiedad puede ser: Un atributo del objeto. Una interrelación entre el objeto y otro u otros objetos. Los valores de las propiedades suelen cambiar con el tiempo. Un Sistema de Gestión de Datos Objeto (SGDO / ODMS) almacena objetos de forma que pueden compartirse por usuarios y aplicaciones. Un SGDO está basado en un esquema que está definido en el Lenguaje de Definición de Objetos (ODL). Un SGDO contiene instancias de los tipos definidos por su esquema. 3a.24
24 ODMG 3.0 Modelo de Objetos objetos y literales La primitiva fundamental es el objeto: En ODMG todo son objetos Distingue entre objetos mutables e inmutables (literales). Los literales son objetos cuyo valor es constante. Pueden tener estructura compleja. No tienen OID. No pueden ser referenciados de forma individual, sino que siempre se manejan dentro de objetos. Un objeto está descrito por cuatro características: Estructura. Atómicos, Colecciones, Estructurados Identificador. Único para la BD. Nombre. También permite identificar al objeto en la BD. Tiempo de vida (lifetime). Transitorio / Persistente. 3a.25
25 ODMG 3.0 Modelo de Objetos - tipos Los objetos se clasifican en tipos: Todos los objetos de un mismo tipo tienen unas propiedades y un comportamiento común: Comportamiento: conjunto de operaciones que se pueden ejecutar sobre un objeto. Estado: valores que toman sus propiedades (atributos y relaciones). Un tipo tiene una especificación externa y una o más implementaciones. La especificación externa es una descripción abstracta, independiente de la implementación, de los aspectos visibles del tipo: propiedades, operaciones y excepciones. La implementación define los aspectos internos: la implementación de las operaciones y algunos otros detalles. 3a.26
26 ODMG 3.0 Modelo de Objetos interfaces y clases En ODMG hay dos maneras de especificar tipos de objetos: Un interfaz es una especificación que describe sólo el comportamiento abstracto de un tipo de objeto (usando signaturas de operaciones). Los interfaces pueden ser heredados por otros interfaces y clases. Aunque una interfaz pueda incluir propiedades, estas no pueden ser heredadas a partir de la interfaz. Un interfaz no es instanciable (como las clases abstractas). Se usan para especificar operaciones abstractas. Una clase es una especificación que define el comportamiento abstracto y el estado abstracto de un tipo de objeto. Son instanciables. La herencia simple se especifica mediante extends La herencia múltiple no se permite mediante extends, se puede mediante herencia de comportamiento. Extent define la extensión (conjunto de todas las instancias). Key permite establecer la clave para identificar las instancias. 3a.27
27 ODMG 3.0 Modelo de Objetos interfaces y clases Especificación de tipos Comportamiento abstracto Estado abstracto interfaz clase literal 3a.28
28 ODMG 3.0 Modelo de Objetos herencia Se puede hacer herencia del comportamiento o del estado: Relación ISA (:), define la herencia simple o múltiple de comportamiento entre tipos de objetos (interfaces o clases). También denominada generalización Relación EXTENDS (extend), define la herencia simple de estado entre tipos de objetos (clases, no literales). Se hereda tanto el comportamiento como las propiedades. 3a.29
29 ODMG 3.0 Modelo de Objetos supertipos y subtipos En función de lo anterior, los tipos de objetos pueden organizarse formando jerarquías de supertipos y subtipos, de forma que: Un subtipo hereda propiedades (estado) y operaciones (comportamiento) del supertipo. Un subtipo puede añadir propiedades (estado) y operaciones (comportamiento) propias. Un subtipo puede redefinir propiedades (estado) y operaciones (comportamiento) del supertipo. Sobrecarga. Se soporta herencia múltiple (sólo en comportamiento, sólo en operaciones). 3a.30
30 ODMG 3.0 Modelo de Objetos Tipos predefinidos: colecciones Colecciones Número variable de elementos. Los elementos pueden ser objetos o literales. Todos los elementos son del mismo tipo. Tipos de colecciones: LIST<t>: colección ordenada de elementos de tipo t. SET<t>: colección desordenada de elementos de tipo t que no admite duplicados. BAG<t>: colección desordenada de elementos de tipo t que admite duplicados. ARRAY<t>: vector de una dimensión y de longitud variable de elementos de tipo t. DICTIONARY<t,v>: secuencia desordenada de pares <clave, valor> sin claves duplicadas. 3a.31
31 ODMG 3.0 Modelo de Objetos Tipos predefinidos: estructuras Estructuras Número fijo de elementos. Pueden ser de distinto tipo. Tipos de estructuras: DATE. Fecha INTERVAL. Intervalo de tiempo TIME. Hora TIMESTAMP. Fecha y hora 3a.32
32 ODMG 3.0 Modelo de Objetos Tipos predefinidos: literales Tipos de literales: Literales atómicos: LONG, SHORT, UNSIGNED LONG, UNSIGNED SHORT, FLOAT, DOUBLE, BOOLEAN, OCTET, CHAR, STRING, ENUM Literales colecciones: SET, BAG, LIST, ARRAY, DICTIONARY Literales estructuras: DATE, INTERVAL, TIME, TIMESTAMP Literales NULL 3a.33
33 Modelo de objetos: Interfaz ODL para los tipos de objetos definidos por el usuario Nombre del objeto creado por el usuario 3a.34
34 Modelo de objetos: Excepciones: El modelo soporta rutinas para el tratamiento de errores Metadatos: El modelo define un meta-data pero muchos gestores existentes no tratan a los metadatos como objetos en sí mismos Transacciones: El modelo soporta el concepto de transacción como secuencia lineal de tareas que se ejecutan dentro de una hebra de control La concurrencia está basada en bloqueos (pesimista) No soporta transacciones distribuidas Base de datos: Área de almacenamiento para objetos persistentes de un conjunto de tipos determinado. Cada BD es una instancia de tipo Database con operaciones open(), close(), lookup() para buscar un objeto. Módulos: Agrupan información relacionada (símil a schemas) 3a.35
35 ODMG 3.0 ODL Object Definition Language Lenguaje para definir las especificaciones de los tipos de objetos para SGDO. Equivale al DDL en sistemas relacionales. Su principal objetivo es facilitar la portabilidad de esquemas. Define los atributos e interrelaciones de los tipos y especifica la signatura de las operaciones. No es computacionalmente completo: no incluye la implementación de las operaciones, que se deja para lenguajes de programación OO como C++ o Java. La sintaxis está basada en el IDL (Interface Definition Language) de CORBA. Es extensible (nuevas funcionalidades, optimizaciones físicas). 3a.36
36 Ejemplo E/R phones 3a.37
37 Ejemplo UML Movie title year length filmtype {color, blackandwhite} 0..N 1..1 name address Studio President name address float lengthinhours() void starnames (out Set<String>); void othermovies ( in Star, out Set<Movie>) MurderMystery weapon Cartoon name address 1..N 0..N 0..N 1..N name Addr {street, city} Phones(set) Star void enrolled_in (in Star s, Movie m) void drop_enrolled_in (in Star s, Movie m) CartoonMurderMystery adultsonly 3a.38
38 ODMG: Classes Una clase se especifica por : - los atributos (abstractos). - las relaciones con otros tipos de objetos - las operaciones class Movie { attribute string title; attribute integer year; attribute integer length; attribute enum Film {color, blackandwhite} filmtype; } ; class Star { attribute string name; attribute struct Addr {string street, string city} address; attribute set <string> phone; } ;
39 ODMG: Types Atributos Tipo estructurado es un tipo con un número fijo de elementos que pueden ser de diferente tipo. Tipos atómicos: integer, float, character, string, boolean and enumerations; Tipos predefinidos: date, time, interval, timestamp Colección: conjunto de elementos del mismo tipo (set, bag, list, array, dictionary, table). Pueden ser de tipo básico o estructurado. Relaciones El tipo de una relación (relationship) es o bien una interfaz (clase) o una colección de interfaz.
40 ODMG: Relationship Un objeto puede relacionarse con otros objetos a través de relationship Relaciones binarias y bi-direccionales 1-1, 1-N, N-M Establecer inverse para conexión bidireccional en ambas interfaces. En ODL no se puede expresar la integridad referencial Relaciones n-arias: se crean las relaciones binarias necesarias para su implementación class Movie { attribute string title; attribute integer year; attribute integer length; attribute enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; } ; class Star { attribute string name; attribute Struct Addr {string street, string city} address; attribute set <string> phone; relationship set <Movie> starredin inverse Movie::stars; } ; N:M
41 ODMG: Relationship (2) class Star { attribute string name; attribute Struct Addr {string street, string city} address; attribute set <string> phone; relationship Set <Movie> starredin inverse Movie::stars; } ; class Movie { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; } ; class Studio { attribute string name; attribute string address; 1:N relationship Set <Movie> owns inverse Movie::ownedBy; relationship President haspres inverse President::isPresOf; } ; class President { attribute string name; relationship Studio ispresof inverse Studio::hasPres; } 1:1
42 ODMG: Keys class Star (key (name)) { attribute string name; attribute Struct Addr {string street, string city} address; attribute set <string> phone; relationship Set <Movie> starredin inverse Movie::stars; } ; class Movie (key (title, year)) { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; } ; class Studio (keys(name),(address)) { attribute string name; attribute string address; relationship Set <Movie> owns inverse Movie::ownedBy; relationship President haspres inverse President::isPresOf; } ; class President (key(name)) { attribute string name; relationship Studio ispresof inverse Studio::hasPres; } Atributo o conjunto de atributos que identifica unívocamente cada objeto de un tipo. Similar al key del relacional, previene la duplicidad pero admite nulos.
43 ODMG: Keys (2) class Studio (keys(name),(address)) { attribute string name; attribute string address; relationship Set <Movie> owns inverse Movie::ownedBy; relationship President haspres inverse President::isPresOf; relationship Set <Crew> crewsof inverse Crew::partOf; } ; class Crew (key(number,partof)) { attribute string number; relationship Studio partof inverse Studio::crewsOf; } Establecer keys para entidades débiles No puede haber dos trabajadores con el mismo número que trabajen para el mismo estudio
44 ODMG: Subclasses Las subclases heredan los atributos de su superclase. class Movie (key (title, year)) { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; } ; class Cartoon extends Movie { relationship Set<Star> voices inverse Star::speaksIn; } class Star { attribute string name; attribute Struct Addr {string street, string city} address; relationship Set <Movie> starredin inverse Movie::stars; relationship Set<Cartoon> speaksin inverse Cartoon::voices } ;
45 ODMG: Subclasses (2) class Movie (key (title, year)) { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; } ; class Cartoon extends Movie { relationship Set<Star> voices inverse Star::speaksIn; } class MurderMystery extends Movie { attribute string weapon; }; class CartoonMurderMystery extends Cartoon : MurderMystery { attribute integer adultsonly;}
46 ODMG: Methods En ODL un método es una función asociada a una clase Los métodos se declaran mediante el concepto de signature que no es más que el nombre de dicho método junto con los tipos de sus argumentos de entrada y el tipo de salida. El código de un método no forma parte de la declaración y se supone que se escribirá en el lenguaje de implementación La sintaxis de la declaración es similar a la de funciones en C con dos importantes añadidos: 1. Los parámetros de la función se pueden especificar como in, out, inout según sea de entrada, salida o de entrada/salida. 2. Las funciones pueden manejar excepciones que son respuestas especiales. Una excepción indica habitualmente una condición anormal que a su vez se tratará mediante otro método. En ODL una declaración de función puede ser seguida por la palabra raises, seguida por una lista de una o más excepciones que la función puede tratar. 3a.47
47 ODMG: Methods (2) class Movie { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; float lengthinhours() raises (nolengthfound); void starnames (out Set<String>); void othermovies ( in Star, out Set<Movie>) raises (nosuchstar); } ; 3a.48
48 ODMG: Extents Cuando se define una clase se hace necesario diferenciar su definición, del conjunto de objetos que existe de esa clase en la base de datos. En ODL, esta distinción se realiza de forma explícita dando a la clase y a su extent distintos nombres. En general la clase recibe el nombre en singular y el extent en plural. class Movie (extent Movies key (title, year)) { attribute string title; attribute integer year; attribute integer length; attribute Enum Film {color, blackandwhite} filmtype; relationship Set <Star> stars inverse Star::starredIn; relationship Studio ownedby inverse Studio::owns; } ; 3a.49
49 ODMG: Interfaces Las interfaces son básicamente definiciones de clases que no tienen extent asociados (es decir, sin objetos). Son útiles si se necesitan mantener en la base de datos varios conjuntos de objetos que tienen el mismo tipo (interfaz) pero pertenecen a distinta clase. interface Business ( ) { string gettaxpayerid( ); void settaxpayerid( ); integer calctotalincome( );} class Person ( ) { } class Company: Business ( ) { } class SelfEmployedPerson extends Person: Business ( ) { } 3a.50
50 ODMG 3.0 OQL Object Query Language Provee acceso declarativo a una BD de objetos mediante una sintaxis similar a SQL. No provee operadores de modificación explícitos porque esta funcionalidad se deja para las operaciones definidas sobre los objetos. Puede ser usado como un lenguaje autónomo o embebido dentro de otros lenguajes (C++, Smalltalk, Java). Desde OQL se pueden invocar operaciones escritas en estos lenguajes. Permite acceso tanto asociativo como navegacional: Una consulta asociativa devuelve una colección de objetos. Una consulta navegacional accede a objetos individuales y las interrelaciones entre objetos sirven para navegar entre objetos. 3a.51
51 ODMG 3.0 OQL El formato del SELECT es similar al de SQL: SELECT [DISTINCT] <expresión> FROM <lista from> [WHERE <expresión> ] [GROUP BY <atributo1:expresión1,...>] [HAVING <predicado>] [ORDER BY <expresión>] Donde <lista from> ::= { <nombre de variable> IN <expresión> <nombre de variable> IN <expresión>, <lista from> <expresión> AS <nombre de variable> <expresión> AS <nombre de variable>, <lista from> } 3a.52
52 ODMG 3.0 OQL - ejemplo PERSONA atributo nombre atributo fech_nac atributo salario operacion edad EMPLEADO operacion antigüedad subordinados 3a.53
53 ODMG 3.0 OQL - ejemplo select distinct x.edad from x in personas where x.nombre= Ana Edades de todas las personas llamadas Ana? Devuelve un literal del tipo set <integer> Edad y salario de todas las personas llamadas Ana? select distinct struct (a:x.edad, s:x.salario) from x in personas where x.nombre= Ana Devuelve un literal del tipo set <struct (a:integer, s:integer)> 3a.54
54 ODMG 3.0 OQL - ejemplo Nombre de cada empleado y sus subordinados que tienen un salario mayor de 3000? select distinct struct (a:x.nombre, smp: (select y from y in x.subordinados where y.salario>300000) from x in empleados Devuelve un literal del tipo set <struct (nombre:string, smp:bag<empleado>)> 3a.55
55 ODMG 3.0 OQL - ejemplo Utilización del select dentro de la cláusula from: select struct (a:x.edad, s:x.salario) from x in (select y from y in empleados where y.antigüedad=10) Edad y salario de todos los empleados con justo 10 años de antigüedad? Devuelve un literal del tipo bag <struct (a:integer, s:integer)> Efecto del uso de DISTINCT: SELECT > bag (con repetición) SELECT DISTINCT > set (sin repetición) 3a.56
56 ODMG 3.0 OQL creación de objetos Creación de Objetos: Objetos mutables: Para crear un objeto con identificador se debe utilizar un tipo constructor. Persona (nombre: María, fech_nac: 11/2/69, salario:1000) Si no se inicializa alguna de sus propiedades, se les asignará automáticamente un valor por defecto. Literales (objetos inmutables): Para construir un objeto sin identificador se utiliza el constructor struct. STRUCT (a:10, b: María ) 3a.57
57 ODMG 3.0 OQL creación de objetos También es posible crear objetos mutables (no literales) formados por el resultado de una consulta. type bolsaint: bag<integer>; type estado attributes a: integer b: salario end_type; type estados: bag<estado>; bolsaint (select distinct x.edad from x in personas where nombre= Pedro ) Devuelve un objeto mutable de tipo bolsaint estados (select estado (a:x.edad, b:x.salario) from x in personas where nombre= Pedro ) Devuelve un objeto mutable de tipo estados 3a.58
58 ODMG 3.0 OQL definición de vistas Es posible dar nombre al resultado de una consulta y utilizarlo en otras consultas posteriores. define juanes as select distinct x from x in persona where x.nombre= Juan ; select distinct x.salario from x in juanes; Conjunto de personas llamadas Juan? Salarios de las personas llamadas Juan? 3a.59
59 ODMG 3.0 OQL operaciones OPERADORES DE ACCCESO: Ejemplo:. / -> (aplicados a un atributo, una operación o una relación) FIRST / LAST (primero / último elemento de una lista o un vector) personas.nombre personas->nombre juan.subordinado.nombre juan->subordinado->nombre juan.edad juan->edad nombre de todas las personas nombre de los subordinados de Juan edad de juan 3a.60
60 ODMG 3.0 OQL operaciones EXPRESIONES CON COLECCIONES: COUNT, SUM, MIN, MAX, AVG (funciones de agrupamiento) GROUP...IN...BY...WHERE SORT...IN...BY FOR...ALL...IN EXIST...IN IN SELECT...FROM...WHERE Ejemplos: COUNT(personas) FOR ALL e IN empleados:e.salario>3000 EXPRESIONES ARITMÉTICAS: +, -, *, /, - (unario), MOD, ABS Ejemplo: COUNT(personas) COUNT(empleados) 3a.61
61 ODMG 3.0 OQL operaciones OPERADORES DE COMPARACIÓN: =,!=, <, <=, >, >= OPERADORES LÓGICOS: NOT, AND, OR Ejemplo: NOT(true) EXPRESIONES SOBRE COLECCIONES: INTERSEC, UNION, EXCEPT Ejemplo: bag(2,2,3,3,3) EXCEPT bag(2,3,3,3) el resultado es bag(2) 3a.62
62 ODMG 3.0 OQL operaciones Se pueden hacer combinaciones (joins) de forma parecida a SQL: Select p from Persons p, Flowers f where p.nombre = f.nombre; Conjunto de personas que tienen nombre de flor? Conversores de Tipos: LISTTOSET, ELEMENT, FLATTEN Ejemplo: define juan as element( select distinct x from x in empleado where x.nombre= Juan ); 3a.63
63 SGBD Objeto-Relacionales vs OO Comparativa de los Modelos del ODMG y el SQL MODELO OMG MODELO ODMG MODELO OMG MODELO OMG MODELO SQL:1999 MODELO SQL:1999 MODELO ODMG 3a.64
64 SGBD Objeto-Relacionales vs OO Principal Inconveniente Práctico del ODMG LOS PRINCIPALES PROBLEMAS Y DEFICIENCIAS EN EL LENGUAJE DE BASES DE DATOS DEL ODMG SE DEBEN AL HECHO DE QUE NO INCLUYE LAS FACILIDADES DEL SQL (A PESAR DEL HECHO DE QUE EL MODELO DE DATOS DEL ODMG ESTÁ BASADO EN EL MODELO BÁSICO DEL OMG, QUE SÍ INCLUYE TOTALMENTE EL MODELO RELACIONAL) Kim (1994) 3a.65
65 SGBD Objeto-Relacionales vs OO Comparativa modelado de datos Característica Objeto-Relacional (SQL) Orientado a Objetos Puro (ODMG) Identidad de objetos (OID) Soportada mediante el tipo REF Soportada Encapsulación Soportada a través de UDTs Soportada pero se rompe para las consultas Herencia Soportada (jerarquías separadas Soportada para los UDTs y tablas) Polimorfismo Soportada Soportada Objetos complejos Soportada mediante UDTs Soportada Interrelaciones Soporte completo con restricciones de integridad referencial definidas por usuario Soportada (por ejemplo, usando bibliotecas de clases) 3a.66
66 SGBD Objeto-Relacionales vs OO Comparativa acceso a los datos Característica Creación y acceso a datos persistentes Facilidad de consulta ad hoc Objeto-Relacional (SQL) Soportada pero no de forma transparente Orientado a Objetos Puro (ODMG) Soportada, pero el grado transparencia depende del producto concreto SÍ, soportada completamente Soportada a través de ODMG Navegación SÍ (mediante tipo REF) SÍ, soportada completamente Restricciones de integridad Evolución de Esquemas SÍ, soportada completamente NO soportadas Soporte limitado Soportado, pero el grado de soporte depende del producto concreto 3a.67
67 SGBD Objeto-Relacionales vs OO Comparativa compartición de datos Característica Transacciones ACID Recuperación Modelos de transacciones avanzados Seguridad, integridad y vistas Objeto-Relacional (SQL) SÍ, soportada completamente SÍ Orientado a Objetos Puro (ODMG) SÍ, soportada completamente SÍ, pero el grado de soporte depende del producto concreto NO SÍ, pero el grado de soporte depende del producto concreto SÍ, soportada completamente SÍ, pero con limitaciones 3a.68
68 ODMG 3.0 ODL Ejercicio Uno a uno Course: name, number, semester Section: number Salary: base,overtime, bonus Employee: id, name, salary Professor: rank {full, associate, assistant} Student-if: student-id, name, dorm_address {college, room_number} uno a muchos muchos a muchos has_prerequisites SALARY ISA extends is_prerequisite_for COURSE has_sections EMPLOYEE STUDENT-IF TA PROFESSOR is_section_of assists teaches takes STUDENT is_taken_by SECTION has_ta is_taught_by 3a.69
69 Matisse: ejemplo de SGBD-OO Matisse, de ADB Inc., es un SGBDOO con soporte para C, C++, Eiffel y Java Está especialmente orientado a grandes bases de datos con una rica estructura semántica, y puede manipular objetos muy grandes como imágenes películas y sonidos Aunque admite los conceptos básicos de la orientación a objetos, tales como la herencia múltiple, Matisse se abstiene de imponer demasiadas restricciones como lo referente al modelo de datos y sirve en su lugar como un potente motor de base de datos orientadas a objetos. 3a.75
70 Matisse: ejemplo de SGBD-OO Algunas de las ventajas principales: Una técnica de representación original que hace posible fragmentar un objeto, especialmente un objeto grande, en varios discos, para optimizar así el tiempo de acceso. Una ubicación optimizada de los objetos en los discos. Un mecanismo automático de duplicación que proporciona una solución software a los fallos de tolerancia del hardware: los objetos (en lugar de los discos en sí) se pueden duplicar espectacularmente en varios discos, con recuperación automática en caso de fallo del disco. Un mecanismo de versiones de objetos incorporado. Soporte para las transacciones. Soporte para una arquitectura cliente-servidor en la cual un servidor central gestiona los datos para un número posiblemente elevado de clientes, que mantienen una reserva de objetos a los que se haya accedido recientemente. 3a.76
71 Matisse: modelo de objetos Importa ficheros.odl a una BD 3a.77
72 Matisse: objects.odl interface PostalAddress : persistent { attribute String Nullable City; attribute String<16> Nullable PostalCode; }; interface Person : persistent { attribute String firstname; attribute String lastname; attribute String Nullable comment; attribute Integer Nullable age; attribute Date Nullable birthdate; attribute Integer dependents = 0; attribute Image Nullable photo = NULL; relationship PostalAddress Address [0,1]; }; interface Employee : Person : persistent { attribute Date hiredate; attribute Numeric salary; }; Nota: Ver ejemplo.rar para clases en java y programa que gestiona estas clases 3a.78
Modelos de datos. Marta E. Zorrilla Pantaleón Universidad de Cantabria
Modelos de datos Marta E. Zorrilla Pantaleón Universidad de Cantabria Modelo de datos. Definición Conjunto de herramientas conceptuales para describir la representación de la información en términos de
Más detallesCARACTERÍSTICAS DE LOS SGBDOO CARACTERÍSTICAS DE LOS SGBDOO CARACTERÍSTICAS DE LOS SGBDOO CARACTERÍSTICAS DE LOS SGBDOO CARACTERÍSTICAS DE LOS SGBDOO
BASES DE DATOS ORIENTADAS A INTRODUCCIÓN INTRODUCCIÓN.. MODELO DE DATOS ORIENTADO A. COMPLEJOS.. ODL. LENGUAJE DE CONSULTA DE OQL. DISEÑO CONCEPTUAL DE BD DE. ESTÁNDAR CORBA PARA. BD ORIENTADAS A 1 BD
Más detallesBASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón
BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,
Más detallesResumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl
El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesBases de Datos 3º Informática de Sistemas
TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. Concepto y Funciones del SGBD. Lenguajes de los SGBD. Niveles de Abstracción. Arquitectura ANSI/SPARC. Componentes del SGBD. 1. Concepto y Funciones del SGBD.
Más detallesConsultas con combinaciones
UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden
Más detallesINTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS
INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se
Más detallesEstructura de Bases de datos. Leonardo Víquez Acuña
Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Más detallesTEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura
Más detallesTema 1. Conceptos básicos
Conceptos básicos Sistema de Gestión de Bases de Datos, SGBD (DBMS, Database Management System): software diseñado específicamente para el mantenimiento y la explotación de grandes conjuntos de datos 1
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Más detallesCapítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)
Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD) Fernando Cano Espinosa Universidad de Oviedo. Departamento de Informática fcano@uniovi.es Produced with L A T E X seminar style
Más detallesARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Más detallesUNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos
2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven
Más detallesRepaso de Conceptos Básicos de Bases de Datos
escuela técnica superior de ingeniería informática Repaso de Conceptos Básicos de Bases de Datos Departamento de Lenguajes Grupo de Ingeniería del Software Septiembre 2004 Definición Una base de datos
Más detallesPROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
Más detallesGESTIÓN DE REDES PARTE III
PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares
Más detallesBASES DE DATOS OFIMÁTICAS
BASES DE DATOS OFIMÁTICAS Qué es una Bases de Datos Ofimática?. En el entorno de trabajo de cualquier tipo de oficina ha sido habitual tener un archivo con gran parte de la información necesaria para el
Más detallesGLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.
GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.
Más detallesProcedimientos para agrupar y resumir datos
Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro
Más detallesIntroducción a los sistemas de bases de datos
Introducción a los sistemas de bases de datos Bases de datos II: Tema 1 Bases de Datos II: Esther de Ves / Vicente Cerverón - Tema 1 1 Estructura del tema Qué es un sistema SGBD? Por qué utilizar un SGBD?
Más detallesINTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades
INTRODUCCION Uno de los objetivos del curso es modelar a través de un diagrama las estructuras lógicas requeridas para almacenar los datos y resolver las consultas del sistema información que requiera
Más detallesLa interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la
Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes
Más detallesMetadatos en Plataformas ECM
Metadatos en Plataformas ECM understanding documents Ofrece tu sistema soporte para tipos documentales en bases de datos? Por qué debería importarte? Marzo, 2013 Basado en: Manejo de metadatos en plataformas
Más detallesUna base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.
BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando
Más detallesPatrones para persistencia (I) Ingeniería del Software II
Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura
Más detalles1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura
1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesSÍLABO. : Obligatorio : Ingeniería de Sistemas : IS0704. : VII Ciclo : 03 Teoría y 02 Práctica : 04 : Lenguaje de Programación II
SÍLABO I. DATOS GENERALES 1.1. Nombre de la Asignatura 1.2. Carácter 1.3. Carrera Profesional 1.4. Código 1.5. Semestre Académico : 2014-I 1.6. Ciclo Académico 1.7. Horas de Clases 1.8. Créditos 1.9. Pre
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesBase de datos relacional
Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar
Más detallesFICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia
Más detallesBASE DE DATOS QUÉ ES UNA BASE DE DATOS?
BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de
Más detallesLENGUAJES DE CONSULTA ORIENTADOS A OBJETOS
LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS Los lenguajes de consulta constituyen una funcionalidad importante de los SGBDOO. El usuario puede recuperar los datos especificando simplemente las condiciones
Más detallesComponentes de Integración entre Plataformas Información Detallada
Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.
Más detallesDiagrama de Clases. Diagrama de Clases
Diagrama de Clases 1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar
Más detallesCapítulo 5. Cliente-Servidor.
Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor
Más detallesGUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Más detalles2.2.- Paradigmas de la POO
2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier
Más detallesIntroducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de
Más detallesCapitulo III. Diseño del Sistema.
Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje
Más detallesRegistro (record): es la unidad básica de acceso y manipulación de la base de datos.
UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.
Más detalles.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...
.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS Definiciones...2 C# y Java.....3 Similitudes...4 Ventajas...4 Definiciones Sobre J2EE J2EE (Java 2 Platform Enterprise Edition)
Más detallesCurso de Python Inicial
Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos
Más detallesA.1. Definiciones de datos en SQL
A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE
Más detallesSQL (Structured Query Language)
SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesBases de Datos 2. Teórico
Bases de Datos 2 Teórico Structured Query Language (SQL) Características de SQL Standard Opera sobre conjuntos de tuplas: incluso para las operaciones de inserción, borrado y actualización. No elimina
Más detallesUnidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R
índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo
Más detallesEstas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
Más detallesUn nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.
Unidad IV: Seguridad 4.1 Tipos de usuario El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados Para acceder
Más detallesabacformacio@abacformacio.com 1
Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas
Más detallesM III ABSTRACCIÓN Y CLASIFICACIÓN
M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se
Más detallesOracle 12c DISEÑO Y PROGRAMACIÓN
Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo
Más detallesArquitectura de sistema de alta disponibilidad
Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los
Más detallesESPECIALISTA EN BASE DE DATOS
ESPECIALISTA EN BASE DE DATOS EXPERTO ANALISIS Y DISEÑO DE BASE DE DATOS EN MANEJAR BASES DE ACCESS COMPLETO DATOS MYSQL Requisito: Manejo Windows POSTGRESQL DURACION: 3 MESES DE L-V SQL SERVER Cliente-Administración
Más detallesClases y Objetos. Informática II Ingeniería Electrónica
Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),
Más detallesSERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO
SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3
Más detallesBANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1
BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 1. Cuáles de los siguientes enunciados son declaraciones válidas? 2. Cuál de
Más detallesTema 11 Bases de datos. Fundamentos de Informática
Tema 11 Bases de datos Fundamentos de Informática Índice Evolución Tipos de modelos de datos y SGBD El modelo relacional y el Diseño de una Base de Datos Operaciones básicas: consulta, inserción y borrado.
Más detallesLABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER
LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER GUÍA DE LABORATORIO Nº 1O Actividad de Proyecto No. 12: ESTABLECER PLANES DE RESGUARDO, RESTAURACION Y CONTINGENCIA. Estructura de contenidos.
Más detallesRelaciones entre Clases Programación Avanzada Prim. 2009 FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez
Relaciones entre Clases Programación Avanzada Prim 2009 FCC-Buap Profesor: M C Miguel Rodríguez Hernandez Asociación Es una relación binaria general que describe una actividad entre dos clases Se describe
Más detallesMicrosoft SQL Server Conceptos.
Microsoft Conceptos. Microsoft 2005 es una plataforma de base de datos a gran escala de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP). La siguiente tabla muestra
Más detallesCreación y administración de grupos de dominio
Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia
Más detallesBASES DE DATOS TEMA 2. Arquitectura de un Sistema de Gestión de Bases de Datos
BASES DE DATOS TEMA 2 Arquitectura de un Sistema de Gestión de Bases de Datos 2.1 y 2.2 Arquitectura en 3 niveles Independencia -> ANSI/SPARC (1975) Nivel externo (Todas las percepciones de la BD) Visión
Más detallesBASE DE DATOS RELACIONALES
BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya
Más detallesTema 2. Bases de datos orientadas a objetos
Tema 2. Bases de datos orientadas a objetos Diseño de Sistemas de Bases de Datos Merche Marqués 12 de abril de 2002 Índice 1. Introducción 1 2. Conceptos de orientación a objetos 2 3. El modelo de datos
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesVentajas, Características y Aplicaciones de los SGBD Distribuidos.
Ventajas, Características y Aplicaciones de los SGBD Distribuidos. Definición Un SBD Distribuido se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en
Más detallesIntroducción. Componentes de un SI. Sistema de Información:
Introducción. Sistema de Información: Conjunto de elementos relacionados entre sí de acuerdo a ciertas reglas, que aporta a la organización la información necesaria para el cumplimiento de sus fines, para
Más detallesJavaScript como Orientación a Objetos
Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas
Más detallesStructured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011
Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más
Más detallesCURSO DE SQL SERVER 2005
CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear
Más detallesELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS
Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
Más detalles- Bases de Datos - - Diseño Físico - Luis D. García
- Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo
Más detallesBASES DE DATOS TEMA 1. INTRODUCCION
Contenidos generales BASES DE DATOS TEMA 1. INTRODUCCION Bases de datos, Sistemas de gestión de bases de datos y Sistemas de bases de datos Bases de datos vs. Sistemas de archivos Objetivos de los Sistemas
Más detallesSINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]
SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje
Más detallesGestion de archivos. Problemas al almacenar datos sólo en la memoria:
Gestion de archivos Problemas al almacenar datos sólo en la memoria: 1. El tamaño está limitado por el tamaño de la memoria qué pasa con aplicaciones que necesiten acceder a gran cantidad de información?
Más detallesModelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
Más detallesUnidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros
Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia
Más detalles"Módulo OOWS para StarUML" INTRODUCCIÓN
UNA HERRAMIENTA PARA DIAGRAMAS OOWS: "Módulo OOWS para StarUML" Richard Medina Z. Universidad de Concepción, Chile INTRODUCCIÓN Una herramienta CASE (Computer Aided Software Engineering,
Más detallesBases de Datos. Sistemas de Gestión de Bases de Datos
Bases de Datos Sistemas de Gestión de Bases de Datos Banco de datos Conjunto de datos relacionados Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios... La gestión
Más detallesContenido XIII. Capítulo 1. Capítulo 2. Alfaomega. Bases de datos - Reinosa, Maldonado, Muñoz, Damiano, Abrutsky
XIII Contenido Capítulo 1 Estructura y tipos de bases de datos...1 1.1 Introducción... 2 1.2 Definición de base de datos... 3 1.3 Sistema de Gestión de Bases de Datos... 4 1.4 Usuarios de la base de datos...
Más detallesIntroducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)
Diseño Orientado a Objetos. Metodología enfocada a la solución de problemas complejos. Complejidad del software. Problemas difíciles de precisar. Definición de requerimientos vago y cambio en el desarrollo
Más detallesGeneración de código para Hibernate desde modelos UML
Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y
Más detallesUna base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.
Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando cumplir
Más detalles2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.
2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla
Más detallesDEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma
DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La
Más detallesCONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesTELECOMUNICACIONES Y REDES
TELECOMUNICACIONES Y REDES Redes Computacionales I Prof. Cristian Ahumada V. Unidad V: Capa de Red OSI 1. Introducción. 2. Protocolos de cada Red 3. Protocolo IPv4 4. División de Redes 5. Enrutamiento
Más detalles18 y 19 Sistemas de Archivos Distribuidos y Tarea 05
18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)
Más detallesFundamentos del diseño 3ª edición (2002)
Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software
Más detallesArquitectura de Aplicaciones
1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento
Más detalles