bases de datos ii - unidad 3 - 1 parte

Upload: matt-anton-raimond

Post on 04-Jun-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    1/25

    Bases de Datos II

    Bases de DatosRelacionales extendidas

    yOrientadas a Objetos

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    2/25

    Modelo RelacionalVentajas de los Sistemas relacionales Tienen una Base terica. Son simples y confiables. Sirven para procesamiento on-line. Implementan la independencia de datos. Modelo de datos se adapta para problemas de negocios. tiles para tipos de datos simples (fechas, strings), gran nmero de instancias (estudiantes, empleados), relaciones bien definidas entre datos, transacciones reducidas, queries simples.

    Sistemas relacionales no son aplicables a: Aplicaciones CAD, CAM porque usan: Objetos complejos y grficos. Gran nmero de tipos pero pocas instancias de cada tipo. Diseo jerrquico pero no esttico.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    3/25

    Modelo RelacionalSistemas relacionales no son aplicables a: Aplicaciones especficas para: Ciclo de vida de desarrollo de software Diseo concurrente Documentacin de cdigo

    Ofimtica y Sistemas Multimedia

    Soporte para e-mail y documentacin Sistemas de Informacin Geogrfica Informacin temporal-espacial (img. satelitales, mapas). Reconocimiento de patrones.

    Otras debilidades del Sistema relacional:

    La Normalizacin puede generar entidades que no se ajustan al mundo real. Ensambles costosos. Sobrecarga semntica. Todos los datos se almacenan como tablas Tablas para entidades y tambin para relaciones Los datos se modelan en filas y columnas, pero no todos los conceptos del

    mundo real pueden representarse as.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    4/25

    Modelo Relacional

    Otras debilidades del Sistema relacional: No permite representar todas las restricciones de integridad y reglas delnegocio. Soporta la integridad referencial, de entidades y reglas del negocio simples.

    No soporta reglas complejas de negocio. Maneja estructura de datos homognea Operaciones limitadas. SQL no permite definir nuevas operaciones.

    No maneja correctamente las consultas recursivas. Incompatibilidad (Impedance mismatch) La completitud computacional se obtiene empotrando SQL en otro lenguaje.

    Los tipos de datos de SQL y de los lenguajes no coinciden. Concurrencia, modificar esquemas y acceso navegacional insuficiente No soporta transacciones de larga duracin. Es difcil modificar los esquemas. Estos sistemas estn basados en acceso por contenido.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    5/25

    Modelo Orientado a ObjetosSistemas orientados a objetos: En la dcada del 80 se pens en sistemas OO ejecutando aplicaciones

    complejas. Estos sistemas comenzaron con auge, pero no cubrieron las expectativas .

    Surgieron as los DBMS objetorelacionales Son una tecnologa que combina lo mejor de los mundos relacional y OO. Sus principales ventajas: Escalabilidad masiva caractersticas OO.

    Bases de Datos de Objetos Surgen motivadas por superar las limitaciones del modelo relacional

    Modelos de datos ms ricos. Mejor integracin con los lenguajes de programacin. BD con objetos -Tipos: Objeto-relacional. Oracle, DB2, PostgreSQL.

    Centradas en Lenguajes de programacin.

    Objectivity, FastObjects, Versant, ObjectStore.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    6/25

    ORDBMS

    Utiliza una forma de SQL extendido llamada SQL3 que soporta TDAs. Su ncleo es relacional ya que los datos estn almacenados en forma detablas, SQL es el lenguaje de consulta utilizado El resultado de una consulta es tambin una tabla.

    Ventajas Lenguaje de queries ms expresivo Soporte para consultas navegacionales. Soporte para mtodos.

    Soporte para evolucin de esquemas. Fuerte acoplamiento entre los datos y las aplicaciones.

    Generalizacin y herencia. Soporte para transacciones de larga duracin. RDBMS fuerza la serializabilidad.

    Aplicaciones avanzadas. CAD, CAM, GIS, etc.

    Mejoras en el desempeo

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    7/25

    ORDBMS

    Ventajas Supera limitaciones de los RDBMS Reusar y Compartir extiende el servidor del DBMS para permitir la ejecucin de la funcionalidad

    estndar en forma centralizada.

    Funcionalidad compartida por todas las aplicaciones. Evolucin SQL99 compatible y superador del SQL92.

    Capacidades para modelar enriquecidas. Puede modelarse estado y comportamiento Modela el mundo real ms naturalmente.

    Extensibilidad. Habilidad para construir nuevos tipos. abstract data types.

    No hay impedance mismatch Se provee interfaz entre DML y lenguajes de programacin. computacionalmente completo.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    8/25

    ORDBMSDesventajas

    La complejidad incrementa los costos asociados. Perdida de simplicidad y pureza del modelo relacional La mayora de las aplicaciones no obtienen una performance optima.

    Diferencia semntica entre la orientacin a objetos y la relacional. Las aplicaciones OO no se centran en los datos, las relacionales si.

    Los objetivos del SQL estndar eran: minimizar el esfuerzo del usuario y ser fcil de aprender

    Falta un modelo de datos universal RDBMSs basada en teora de conjuntos. OODBMSs no tiene una slida base terica.

    Falta de experiencia

    Uso limitado. Orientado ms a programadores que a usuarios tpicos. Falta de estndares ODMG evolucin para modelos de datos estndar y lenguajes de consulta estndar

    Optimizacin de consultas compromete el encapsulamiento Necesidad de abrir el encapsulamiento para optimizar consultas

    acceso a atributos private para acelerar queries

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    9/25

    ORDBMSDesventajas

    Bloqueos a nivel de objetos puede alterar la performance Ej. bloquear cadenas de herencia Complejidad Costosas Difciles de usar

    Falta soporte para vistas Concepto esencial en RDBMSs.

    Falta soporte para seguridad No hay vistas Granularidad primitiva Dificultades para garantizar derechos de acceso sobre clases y objetos individuales

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    10/25

    Manifiestos de Bases de Datos

    de Nueva GeneracinDocumentos fijan fundamentos y direcciones de desarrollo de los DBMSs

    El primero, dedicado a los fundamentos de las bases de datos orientadas aobjetos Atkinson, M.; Bancilhon, F.; DeWitt, D.; Dittrich, K.; Maier, D.;Zdonik, S. (1989). The Object-Oriented Database System Manifesto.

    Proceedings of the First International Conference on Deductive and Object-Oriented Databases, Kyoto, Japan, pp. 223-240.

    Manifiesto de las bases de datos de tercera generacin, elaborado por el

    Comit para la Funcin de DBMSs Avanzados Stonebraker, M.; Rowe, L.;Lindsay, B.; Gray, J.; Carey, M.J.; Brodie, M.; Bernstein, P.; Beech, D.

    (1990). Third-Generation Database System Manifesto - The Committee forAdvanced DBMS Function. SIGMOD Record 19(3). Pp. 31-44.

    En respuesta a la publicacin de los anteriores, surge un documentofundacional elaborado por C. Date y H. Darwen Date, C.; Darwen, H.(1998). Foundation for Object/Relational Databases. The Third Manifesto.Reading, Mass. Addison-Wesley.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    11/25

    Manifiesto BD - 3 Generacin

    Caractersticas que deberan ser satisfechas por los sistemas postrelacionales. Definicin de un sistema de tercera generacin. Provisin de soporte para estructuras de objetos ms ricas. Facilidades para especificar conjuntos de reglas acerca de los datos, registros y

    colecciones.

    PRINCIPIOS1. Las BD de 3 generacin debern soportar estructuras de objetos complejas

    y reglas.a. Sistema rico de tipos: arreglos, secuencias, registros, funciones, recursin.b. Herencia simple y mltiple; subclases sin atributos adicionales, slo con

    restricciones de dominio.c. Encapsulamiento de funciones y procedimientos escritos en lenguajes de altonivel: DBMSs de 2 generacin lo soportan en forma restringida: create, alter,drop

    d. Identificadores nicos: en las BD de 2 generacin claves inteligentes; en las de3 generacin claves surrogantes.

    e. Reglas (triggers y constraints): caractersticas principales de las BD de 3generacin.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    12/25

    Manifiesto BD - 3 GeneracinPRINCIPIOS2. Los DBMSs de 3 generacin deben tener todas las caractersticas y

    facilidades de los de 2 generacin.a. Todo acceso programado a la base de datos debe ser a travs de un lenguaje de

    programacin de alto nivel, no procedural.b. Al menos dos formas de expresar colecciones: por comprensin y por extensin.

    c. Deber contar con vistas actualizables: actualizacin incremental, actualizacionesno ambiguas.d. Indicadores de performance no tienen conexin con el modelo de datos no

    deberan ser parte de l.3. Los sistemas de 3 generacin deben ser abiertos a otros sistemas.

    a. accesibles por mltiples lenguajes de alto nivel DBMSs multilinguales.

    b. persistencia en distintas variedades: modificacin de los compiladores.c. uso del lenguaje SQL.d. consultas y respuestas deberan ser el nivel ms bajo de comunicacin entre

    cliente y servidor.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    13/25

    SQL3 (SQL99, SQL1999) Nuevos tipos

    Constructores de Tipo para tuplas (row), referencias (reference) ycolecciones (arrays, sets, lists, multisets)

    Mecanismos para encapsular operaciones Mecanismos para especificar identidad de objetos Nuevos predicados

    Operadores relacionales Reglas y triggers Tipos definidos por el usuario (UDTs)

    pueden participar en relaciones supertipo/subtipo Herencia Procedimientos definidos por el usuario, funciones y operadores Rutinas almacenadas Capacidades para manejo de Transacciones Soporte para grandes objetos

    BLOBS y CLOBS

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    14/25

    SQL3 (SQL99, SQL1999)

    Constructores de Tipo Tipo

    row: representa tipos de filas en tablas

    Sintaxis CREATE TYPE nombre_tipo_row AS [ROW]

    ()

    Ejemplo:

    CREATE TYPE Direccion AS (calle VARCHAR (45),

    ciudad VARCHAR (25),

    CP CHAR (8));

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    15/25

    SQL3 (SQL99, SQL1999)

    Constructores de Tipo CREATE TABLE Sucursal (

    Domicilio ROW(

    calle VARCHAR(25),

    ciudad VARCHAR(15),

    CP ROW( prov VARCHAR(1)

    id_ciudad VARCHAR(4)

    codigo VARCHAR(3))));

    INSERT INTO SucursalVALUES(B5, (San Martin, Tandil, (B,7000,EHB)));

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    16/25

    SQL3 (SQL99, SQL1999)

    Constructores de Tipo Tipo array especifica que un atributo tendr como valor una coleccin

    de valores.

    Sintaxis

    CREATE TYPE nombre_tipo AS()

    Ejemplo: CREATE TYPE tipo_comp AS (

    nombre_comp VARCHAR (2)

    ubicacion VARCHAR (20) ARRAY [10]);

    Notacin con punto (.) usada para los componentes comp1.nombre_comp es la parte nombre_comp de comp1 (de

    tipo tipo_comp)

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    17/25

    SQL3 (SQL99, SQL1999)Encapsulado de Operaciones

    UDTs Tipos abstractos de datos: usuarios crean UDTs con nombre con sus propios

    mtodos.

    Sintaxis CREATE TYPE (

    lista de atributos

    declaracin de mtodos EQUAL y de LESS THAN

    declaracin de otros mtodos);

    Ejemplo: CREATE TYPE tipo_persona AS (

    PRIVATE

    Fecha_nac DATE CHECK(Fecha_nac > DATE 1970-01-01);PUBLICnombre VARCHAR(15) NOT NULL,apellido VARCHAR(15) NOT NULL,FUNCTION obtener_edad (P tipo_persona) RETURNS INTEGER

    RETURN /* codigo para calcular edad */END; ...

    END) NOT FINAL;

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    18/25

    SQL3 (SQL99, SQL1999) Ejemplo:

    SELECT p.apellido, p.obtener_edadFROM personal pWHERE p.es_director;

    SELECT p.apellido, p.direccionFROM personal p

    WHERE p.obtener_edad > 65;Sintaxis para Mtodos Sintaxis

    METHOD () RETURNS;

    Ejemplo: CREATE TYPE Empleado AS (

    nombre VARCHAR (20),sueldo INTEGER)

    METHOD incrementar (porcentaje integer )

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    19/25

    SQL3 (SQL4) CREATE METHOD incrementar(porcentaje integer)

    for Empleadobegin

    set self.sueldo = self.sueldo + (self.sueldo * porcentaje)/100;end

    User defined routines (UDR)

    Pueden definirse como parte de un UDT o como parte de unesquema.

    Procedure, function o method.

    Pueden escribirse en SQL o en un lenguaje de programacin externo.

    CREATE FUNCTION Empleado(n VARCHAR(20), s INTEGER)RETURNS Empleadobegin

    set nombre = n;set sueldo = s;

    end

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    20/25

    SQL3 (SQL4)

    Subtipos/supertipos No soporta herencia mltiple.

    Tablas Una instancia UDT slo puede persistir si es almacenada como una

    columna en una tabla.

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    21/25

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    22/25

    SQL3 Ejemplo:

    CREATE TYPE Persona (nombre VARCHAR(20) NOT NULL,direccin VARCHAR(20))ref using varchar(20) NOT FINAL;

    CREATE TABLE personas of Personaref is ido system generated;

    INSERT INTO departamentosVALUES (Informtica, null); UPDATE departamentos

    SET jefe = (SELECT P.idoFROM personas as PWHERE nombre = Claudia)

    WHERE nombre = Informtica; Usando un OID generado por el usuario : CREATE TABLE persona of Persona

    ref is ido user generated; INSERT INTO persona

    VALUES (01234567,Claudia, Belgrano y Roca);

    INSERT INTO departamentosVALUES (Informtica, 01234567);

    AtributoautoreferencialRequerido por

    SQL3

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    23/25

    SQL3 Usando un OID derivado de un atributo que es Clave Primaria:

    CREATE TYPE Persona (dni INTEGER primary key,nombre VARCHAR(20) NOT NULL,direccin VARCHAR(20))ref from dni NOT FINAL;

    CREATE TABLE personas of Personaref is ido derived;

    INSERT INTO departamentosVALUES (Informtica, 20530270);

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    24/25

    SQL3

    Tipo Coleccin (Collection) ARRAYs, LISTs, SETs, MULTISETs

    Herencia De Tipos

    CREATE TYPE Persona (dni INTEGER,nombre VARCHAR(20) NOT NULL,direccin VARCHAR(20))NOT FINAL;

    CREATE TYPE Estudianteunder Persona

    (carrera VARCHAR(20) NOT NULL,ingreso DATE)FINAL;

    CREATE TYPE Docenteunder Persona(departamento VARCHAR(20) NOT NULL,

    materia VARCHAR(20))FINAL;

  • 8/13/2019 Bases de Datos II - Unidad 3 - 1 Parte

    25/25

    SQL3

    De Tablas:se corresponde con el concepto de generalizacin y especializacin delmodelo ER CREATE TABLE persona of Persona

    CREATE TABLE estudiantes of Estudiante

    under persona

    CREATE TABLE docentes of Docenteunder persona