bases de datos ii - unidad 3 - 1 parte
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