Download Bases de Datos Avanzadas - Web del Profesor

Document related concepts
no text concepts found
Transcript
Bases de Datos Avanzadas
Clase introductoria
1
Agenda
¾Introducción
¾Objetivos
¾Principales conceptos
¾Tipos y subtipos
¾Lenguajes de definición y de manipulación
¾Conclusiones
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
2
Introducción
9 Un sistema de gestión de bases de
datos (SGBD) es un software que
permite insertar, modificar y
recuperar eficazmente los datos
específicos dentro de una gran masa
de información compartida por
muchos usuarios.
9 Un SGBD asegura la independencia
de datos, lo que lo distingue
claramente de un sistema
manejador de archivos (SMA).
9 Una base de datos es un conjunto
de datos gestionados por un SGBD y
asociados a una misma aplicación.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
3
Introducción
¾ ¿Qué es una base de datos?
organización
abstracción
BD
SGBD
¾ ¿Por qué base de datos?
Porque dicha tecnología permite el mantenimiento y el control de los datos.
¾ ¿Para qué base de datos?
Para soportar eficientemente algunos sistemas de actividades de una
organización
¾ Tipos:
Jerárquica
Redes
Relacional (BDR)
Orientadas por objetos (BDOO)
Objeto-relacional (BDOR)
Sep. 2003
Subtipos: Distribuida
Paralela
Multimedia
Activas
Deductivas
Espacial
Temporal
Espacio temporal
Semi-estructuradas
ULAULA-Postgrado en Computación. I. Besembel
4
Objetivos
9 Independencia física: los cambios en la estructura lógica no implican
cambios en la de almacenamiento, consideraciones sobre el mejor manejo
de los datos quedan a cargo del SGBD y los cambios en la estructura de
almacenamiento no implican cambios en los PA.
9 Independencia lógica: Cierta independencia entre los datos vistos por las
aplicaciones y su estructura lógica en la realidad. Ventajas:soporte de la
evolución de los datos donde cada grupo de trabajo ve esos datos como lo
desea.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
5
Objetivos
9 Manipulación de los datos por personas no especializadas en
computación
9 Eficacidad en el acceso a los datos
9 Administración centralizada de los datos
9 Redundancia de datos controlada
9 Coherencia de los datos
9 Posibilidad de compartir los datos
9 Seguridad de los datos
9 Habilidad para representar y manipular objetos complejos y
compuestos
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
6
Objetivos
9 Posibilidad de almacenar y recuperar datos arbitrariamente
grandes
9 Habilidad para definir y manipular cualquier tipo de dato
9 Posibilidad de representar y manejar los cambio en la base de datos
a través del tiempo
9 Representación y manipulación de varios conceptos de modelado
semántico, útiles en la aplicaciones
9 Posibilidad de especificar reglas y restricciones de integridad para
soportar inferencia en las aplicaciones basadas en conocimiento
9 Habilidad para manejar transacciones cooperativas de larga
duración
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
7
Conceptos básicos
Niveles de descripción
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
8
Jerárquica
¾ Definido (1968) según:
9 Campo: unidad de datos con nombre.
9 Segmento: colección de campos
consecutivos con nombre. Unidad de
intercambio BD - PA.
9 Árbol de segmentos: colección de
segmentos ligados por asociaciones
1:N (padre – hijos), formando una
jerarquía, en el ámbito de tipos o de
ocurrencias.
9 Base de datos jerárquica: BD
compuesta de un bosque de segmentos
(árboles de segmentos) cuyos nodos
son los segmentos y las aristas las
asociaciones 1:N
Sep. 2003
DBD NAME = Publica
SEGM NAME = Tema, BYTES = 44
FIELD NAME = (NumTema, SEQ), BYTES = 4, START = 1
FIELD NAME = NomTema, BYTES = 40, START = 5
SEGM NAME = Publicacion, PARENT = Tema, BYTES = 96
FIELD NAME = (ISBN, SEQ), BYTES = 16, START = 1
FIELD NAME = Titulo, BYTES = 80, START = 17
SEGM NAME = Editorial, PARENT = Pub, BYTES = 40
FIELD NAME = (AñoPub, SEQ), BYTES = 4, START = 1
FIELD NAME = Editorial, BYTES = 34, START = 5
FIELD NAME = NroVolEditados, BYTES = 2, START = 39
SEGM NAME = Autor, PARENT = Pub, BYTES = 256
FIELD NAME = (NomAut, SEQ), BYTES = 20, START = 1
FIELD NAME = Direccion, BYTES = 236, START = 21
ULAULA-Postgrado en Computación. I. Besembel
9
Redes
Definición (1971) según:
¾ Átomo o item de dato: unidad de datos
con nombre.
¾ Agregado de datos: colección de átomos
consecutivos con nombre. Tipos: vectores
(arreglos unidimensionales) y grupos
repetitivos.
¾ Registro: colección de agregados y de
átomos consecutivos. Unidad de
intercambio BD - PA.
¾ Conjunto: asociación entre 1 registro
propietario y N registros miembros.
¾ Limitaciones:
9 un registro o tipo de registro no puede ser
propietario y miembro en el mismo conjunto
9 una ocurrencia de un registro no pueda pertenecer
a varias ocurrencias del mismo conjunto.
Sep. 2003
¾Base de datos en redes: BD compuesta
de registros ligados o asociados entre ellos
por los conjuntos.
¾Representación: grafo de tipos de
registros cuyos nodos son los tipos de
registros y las aristas son los tipos de
conjuntos orientados del propietario hacia los
miembros.
ULAULA-Postgrado en Computación. I. Besembel
10
Relacional
Propuesto por E. Codd en 1970 y
comercialmente disponible 1979
¾ Basado en la teoría de normalización
de las relaciones
¾ Permite eliminar el comportamiento
anormal de las relaciones, luego de
actualizaciones, y el control de la
redundancia de datos
¾ Dominio: conjunto de valores
¾ Relación: subconjunto del producto
cartesiano de una lista de dominios,
no necesariamente disjuntos.
¾ Atributo: columna de una relación
identificada con un nombre.
Sep. 2003
R
color
marca
‘azul’
‘ford’
‘verde’
‘toyota’
‘blanco’
‘renault’
Esquema de una relación o de tabla:
Por intensión
R(color, marca)
Por extensión
Base de datos relacional:
base de datos cuyo esquema es un
conjunto de esquemas de relación de
diferente nombre cada una, y donde sus
ocurrencias son las tuplas de esas
relaciones
ULAULA-Postgrado en Computación. I. Besembel
11
Reglas de formación
¾
¾
¾
¾
¾
¾
¾
¾
¾
¾
¾
Cada relación o tabla contiene un solo tipo de fila o tupla.
Cada tupla tiene un número fijo de atributos o columnas.
No se permiten atributos compuestos o grupos repetitivos.
Cada tupla es única y se identifica con su clave primaria.
Un atributo o grupo de ellos que identifiquen unívoca e inequívocamente cada tupla de
la relación es una clave candidata.
La clave primaria de una relación se selecciona entre las claves candidatas.
Si un atributo A ∈ R1 es también la clave primaria de R2, entonces A es un atributo
foráneo de R1.
El orden de las tuplas en la relación es irrelevante.
Los valores de los atributos deben pertenecer al dominio de cada atributo definido en
ella.
Un mismo dominio puede ser usado por diferentes atributos.
A partir de una o más tablas se pueden producir nuevas tablas diferentes mediante el
uso de las operaciones del álgebra relacional.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
12
Reglas de Integridad
¾ De la relación: ningún componente de un valor de los atributos
que conforman la clave primaria puede ser nulo.
¾ De referencia: sea A la clave primaria de R1 y también un
atributo foráneo de R2, entonces para toda tupla de R2 donde A
≠ nulo debe existir la tupla correspondiente en R1.
¾ De los valores de un atributo: son los predicados definidos por
el administrador de bases de datos sobre los valores de los
atributos usando el lenguaje de definición de datos.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
13
Arquitectura de referencia
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
14
Orientadas por Objetos
¾ Modelo ODMG versión 1.1
(1995)
¾ Primitiva: el objeto.
¾ Los objetos se pueden
categorizar en tipos.
¾ Su estado lo describen los
valores de sus propiedades:
atributos o relaciones entre él
y otros objetos.
¾ Su comportamiento lo define
el conjunto de sus
operaciones.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
15
BDOO
¾ Tipos e instancias:
9 Tipo define estado y comportamiento de sus instancias.
9 Extensión del tipo: conjunto de todas las instancias del tipo.
9 Características del tipo: Estado y comportamiento.
9 Organización de los tipos: en un grafo de subtipos y supertipos.
9 Subtipo: hereda todas las características de sus supertipos, pudiendo
definir nuevas características para él.
9 Tipos abstractos: no tienen instancias ni implementación.
9 Los tipos del sistema se organizan como un árbol
9 Los tipos definidos por el usuario pueden formar un digrafo acíclico
(dag).
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
16
BDOO
¾ Atributos: definen cada tipo de objeto, su valor es literal y no tiene oid.
¾ Relaciones: solo pueden definirse entre tipos mutables.
9 Las relaciones son binarias del tipo 1:1, 1:M y N:M.
9 No tienen nombre pero si sus caminos en cada dirección. Los caminos se declaran
dentro de la interfaz del tipo donde la relación se da.
9 Mantienen la integridad referencial y no tienen oid
¾ Comportamiento: Se representa con un conjunto de operaciones.
9 Cada operación tiene una firma que contiene los nombres y tipos de los argumentos,
excepciones y tipos y valores de regreso.
9 Siempre se aplican sobre un solo objeto.
9 No hay operaciones independientes de un tipo, ni pueden ser definidas para 2 o más
tipos.
9 Las operaciones son únicas dentro de un tipo, pueden tener el mismo nombre para
diferentes tipos
¾ Colecciones: tienen un número variable de elementos del mismo tipo y no tienen
ranuras. Se aceptan subtipos del tipo especificado. Set, Bag, List y Array.
¾ Estructuras: tienen un número fijo de ranuras, cada una conteniendo un objeto o un
literal.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
17
BDOO
Materia
código:Cadena
nombre: Cadena
TPLU: Cadena
fechaCreación: Fecha
programa
prelación *
Persona
CI: Cadena
nombre: Cadena
dirección: Cadena
teléfono: Cadena
fechaNacim: Fecha
Sección
Estudiante
Trabajador
numSec: Entero
horario *
fechaIng: Fecha
cursa *
fechaIng: Fecha
dpto: Cadena
Horario
dia: Dia
horaIni: Hora
horaFin: Hora
salón: Cadena
Sep. 2003
Programa
Preparador
numHoras: Entero
salario: Real
supervisor
prepara *
ULAULA-Postgrado en Computación. I. Besembel
Profesor
categoria: Cadena
dedicación: Cadena
salario: Real
título: Cadena
dicta *
18
Ejemplo
E studio
nom bre : Cadena = 'Indefinido'
fec haFundac ión : Fec ha
direc c ión : Cadena = 'Indefinido'
c iudad : Cadena = 'Indefinido'
país : Cadena = 'Indefinido'
teléfonos : Lis t(Cadena)
dirW eb : Cadena = 'Indefinido'
P elícula
título : Cadena = 'A ún no tiene'
año : A ño = '0000'
durac ión : Real = 0.0
tipo : Tipos DeP elíc ulas
nuevaP elíc ula()
s etTítulo()
getTítulo()
s etA ño()
getA ño()
s etDurac ión()
getDurac ión()
m odific aP elíc ula()
des pliegue()
Sep. 2003
+compañíaP roductora
1..*
+produce
compañ íaD eP rodu cción
1..*
ULAULA-Postgrado en Computación. I. Besembel
nuevoE s tudio()
s etNom bre()
getNom bre()
s etFec haFundac ión()
getFec haFundac ión()
s etDirec c ión()
getDirec c ión()
s etCiudad()
getCiudad()
s etP aís ()
getP aís ()
nuevoTeléfono()
getTeléfonos ()
s etDirW eb()
getDirW eb()
m od ific aE studio()
c ie rreE studio()
des pliegue()
19
Objeto-relacional
Modelo relacional extendido con facilidades de orientación por objetos:
9 Nuevos tipos de datos:
ƒ Creación de nuevos tipos compuestos, pero que deben ser soportados por el
propietario del tipo, esto es debe definir al menos dos métodos transformadores, uno
para convertir el tipo nuevo a ASCII y el otro que convierte de ASCII al nuevo tipo.
ƒ Soporte de tipos complejos: registros, conjuntos, referencias, listas, pilas, colas y
arreglos.
9 Creación de funciones que tengan un código en algún lenguaje de programación,
por ejemplo: SQL, Java, C, etc.
9 Creación de operadores: asignándoles un nombre y asociándoselo a una función
ya definida o creada con anterioridad.
9 Soporte de encadenamiento dinámico y herencia en los tipos tupla o registro.
9 Posibilidad de incluir el chequeo de las reglas de integridad referencial a través de
los gatillos (triggers)
9 Soporte adicional para seguridad y activación de la versión cliente-servidor.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
20
BDR Distribuidas
Lugar 1
Lugar n
Lugar 2
Red
Lugar i
Lugar 3
BD central con acceso a la red
Lugar 1
Lugar n
Lugar 2
Red
Lugar i
Lugar 3
Ambiente de BDD
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
Problemas claves:
Para responder una
consulta, los
datos
residentes en
computadores
separados
deben ser
combinados y
movidos.
Como los datos
están bajo el
control de
computadores
separados, es
necesario
coordinar las Ti
para preservar
la consistencia
de datos.
21
BDR Paralelas
¾ Discos compartidos: Cada
procesador tiene su propia
MP, pero comparte su MS con
todos.
¾ Nada se comparte: Cada
procesador tiene su MP y MS,
pero se comunican con pase
de mensajes.
¾ Todo se comparte: Todos los
procesadores acceden una MP
común y todas las MS (discos)
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
22
BDR Multimedia
¾ Reconocimiento, agrupamiento, tipos y relaciones para
capturar y recuperar la información multimedia.
9 Diferencia entre recuperación en base de datos y en
recuperación de información.
¾ Modelos hipertexto e hipermedia
9 sugieren un método de navegación para recuperar la
información.
¾ Recuperación basada en contenido
9 Entendimiento del lenguaje natural, velocidad de
procesamiento, visión y modelado de usuarios.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
23
BDR Activas
¾ BD convencionales: pasivas, solo ejecutan consultas a petición de un usuario o de un
programa de aplicación.
¾ BD activa: tiene la capacidad de monitorear situaciones de interés y cuando estas
ocurren disparan una respuesta adecuada.
¾ El comportamiento deseado se expresa por medio de reglas de producción o reglas
evento-condición-acción (ECA), las cuales pueden ser definidas y almacenadas en la
BD.
on evento
if condición
then acción
Una regla se dispara cuando el evento ocurre
se considera cuando su condición se evalúa
y se efectúa cuando la acción se ejecuta
¾ Las reglas serán disparadas por eventos de la BD como: un estado particular de la BD
y cambios de estado de la misma, para:
9
9
9
9
9
9
Sep. 2003
asegurar la integridad de datos,
implementar disparadores y alertadores,
mantener datos derivados,
asegurar las restricciones de acceso,
implementar las políticas de control de versiones,
mantener las estadísticas de acceso para la optimización de consultas, etc.
ULAULA-Postgrado en Computación. I. Besembel
24
BDR Deductivas
madreDe
madre
hija
¾ Compuesta de una BD
Ana
Berta
intensional y una BD
Berta
Juana
extensional
Juana
Mariela
¾ BD extensional: base de
Berta
Beatriz
hechos
if madreDe( x, y ) and madreDe( y, z )
¾ BD intensional: conjunto
then abuelaDe( x, z)
de restricciones de integridad
9Se basa en el cálculo de predicados y
y de axiomas deductivos
en la teoría de demostraciones
(reglas)
9Realiza procesamiento de consultas
recursivas
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
25
Bases de datos espaciales
Término para describir los datos que pertenecen al espacio ocupado por los
objetos en la BD.
9Pueden ser geométricos y variados.
9Se aplica a cualquier dato de un fenómeno distribuido en 2-, 3- o n-dimensiones que son
ortogonales y homogéneas (D. Peuquet)
9Consisten del conjunto de objetos espaciales construidos con: puntos, líneas, regiones,
rectángulos, superficies, volúmenes, etc.
DatoGeométrico
idDatoGeometrico : Identificador
color : TipoColor
TipoDatoGeométrico
3..n
{ordenado}
Línea
Punto
x : Real
y : Real
Polígono
numPuntos : Entero
rellenoOsubrayado : Boolean
RectánguloDelimitador
ancho : Real
largo : Real
+de
ArcoUOvalo
+hasta
2..n
+inicio
+inferiorIzquierdo
{ordenado}
Sep. 2003
Polilínea
ánguloInicio : Ángulo
gradoBarrido : Ángulo
rellenoOsubrayado : Boolean
+final
ULAULA-Postgrado en Computación. I. Besembel
26
Bases de datos temporales
¾ Los objetos y sus relaciones existen en
periodos de tiempo definidos, así como
los eventos ocurren en puntos
específicos del tiempo
ObjetoET
Objeto Espacial
Objeto Temporal
escala
granularidad
+geometría 1..n
Representación Espacial
+borde
n
Objeto Gráfico
Punto
Sep. 2003
Línea
Polígono
+t 1..n
Representación Temporal
¾ Tiempo válido: tiempo en el cual el
hecho se dio o se dará en la realidad
independientemente del tiempo en que se
registró en la BD.
9 puede estar o no limitado
(normalmente en el pasado)
¾ Tiempo transaccional: tiempo en que el
hecho se almacenó en la BD
9 Es un intervalo que dice cuando se
insertó el hecho y cuando se eliminó
de la BD.
9 está siempre limitado en el pasado y
en el futuro
ULAULA-Postgrado en Computación. I. Besembel
27
Bases de datos espacio temporales
¾ Tienen al menos tiene una propiedad
espacial y una temporal
¾ Un objeto espacio temporal se puede
representar por una 4-upla (objId, geom,
t, att) donde:
9 objId es el identificador del objeto,
9 geom es su localización y forma
espacial,
9 t es la descripción de sus
características temporales y
9 att es un conjunto de otros
atributos que describen otras
propiedades diferentes de las
espaciales y temporales
Sep. 2003
Grafo
idG : Identificador
Grafo espacial
tNodos
1..n
tArcos
1..n
2
idGET : Identificador
idGT : Identificador
nodos
arcos
Grafo ET
Grafo temporal
idGE : Identificador
Objeto temporal
Objeto espacial
idOE : Identificador
2
escala
idOT : Identificador
regularidad : tipoReg
granularidad
1..n
stNodos
1..n
Relación espac ial
stArcos
Relación temporal
idRT : Identificador
idRE : Identificador
1. .n
1..n
Representación espacial
Representación temporal
idRepT : Identificador
idRepE : Identificador
1. .n
Objeto ET
idOET : Identificador
geometría
n
idOGeo : Identificador
referencia : Georeferencia
ubicacion : GeoUbicacion
idOG : Identificador
Punto
Línea
Polígono
ULAULA-Postgrado en Computación. I. Besembel
1..n
Objeto geográfico ET
Objeto gráfico
HR
2..n
Relación ET
idRET : Ident ificador
Intervalo
idInt : Ident ificador
min : Real
max : Real
28
Bases de datos semiestructuradas
¾ XML: lenguaje de marcas extensible,
diseñado para permitir la
implementación e interoperabilidad
con SGML y HTML
¾ Procesador XML: usado para leer
documentos XML y permitir el
acceso a su contenido (datos) y
estructura (esquema)
¾ Metas:
9 Usable en Internet, compatible con
SGML y soporte de varias aplicaciones
9 Número mínimo de rasgos adicionales y
facilidad de escribir programas que
procesen documentos XML (claros y
legibles)
9 Diseño XML formal, conciso y de fácil
creación
9 No importa la minimalidad del conjunto
de marcas
Sep. 2003
<INVENTARIO>
INVENTARIO>
<LIBRO>
LIBRO>
<TITULO>
TITULO>
>
TITULO>Aprenda XML ya</
ya</TITULO
<AUTOR>
AUTOR>
>
AUTOR>Young, Michael J.</
J.</AUTOR
<EDITORIAL>
EDITORIAL>
>
EDITORIAL>McGrawHillMcGrawHill-Microsoft</
Microsoft</EDITORIAL
<ANO>
ANO>
>
ANO>2000</
2000</ANO
<ISBN>
>
ISBN>0-73567356-10201020-7</ISBN
</ISBN>
<TITULOINGLES>
TITULOINGLES>
>
TITULOINGLES>XML StepStep-byby-step</
step</TITULOINGLES
</LIBRO
>
</LIBRO>
<LIBRO>
LIBRO>
<TITULO>
>
TITULO>Precálculo</TITULO
Precálculo</TITULO>
<AUTOR>
AUTOR>Faires,
Faires, J. Douglas y DeFranza,
DeFranza, James</AUTOR>
James</AUTOR>
<EDITORIAL>
EDITORIAL>
>
EDITORIAL>International Thomson</
Thomson</EDITORIAL
<ANO>
ANO>
>
ANO>2001</
2001</ANO
<ISBN>
>
ISBN>970970-686686-032032-0</ISBN
</ISBN>
<TITULOINGLES>
TITULOINGLES>
>
TITULOINGLES>Precalculus</
Precalculus</TITULOINGLES
</LIBRO
>
</LIBRO>
<LIBRO>
LIBRO>
<TITULO>
TITULO>
>
TITULO>Multimedia.
Multimedia. Manual de referencia</
referencia</TITULO
<AUTOR>
AUTOR>
>
AUTOR>Vaughan, Tay</
Tay</AUTOR
<EDITORIAL>
EDITORIAL>
>
EDITORIAL>MaGrawMaGraw-Hill Osborne Media</
Media</EDITORIAL
<ANO>
ANO>
>
ANO>2002</
2002</ANO
<ISBN>
>
ISBN>8484-481481-36263626-8</ISBN
</ISBN>
<TITULOINGLES>
TITULOINGLES>Multimedia:
Multimedia: Making it
work</
TITULOINGLES>
>
work</TITULOINGLES
</LIBRO
>
</LIBRO>
</INVENTARIO
>
</INVENTARIO>
ULAULA-Postgrado en Computación. I. Besembel
29
XML
Gráficas
y multimedia
SMIL
SVG
Tecnología
inalámbrica
y voz
WML
XML Info set
DOM
Sep. 2003
XML-RPC
SOAP
Web y la
publicación
tradicional
XHTML
DocBook
Aplicaciones
VoxML
Enlazamiento
y señales
Elemen
tos de
base y
modelos de
objetos
Llamadas
remotas y
B2B
Xlink
Xpointer
XPath
XSLT
XSL
XML
Estilo y
transformación
XML 1.0 + espacio de nombres Esquema XML
SAX
Modelado complejo
Interfaces de programación
de información
ULAULA-Postgrado en Computación. I. Besembel
30
Lenguajes
SQL (Structured Query Language)
9 Versión comercial del lenguaje SEQUEL creado por IBM para el sistema R
(1976) bajo DOS y VM.
9 Lenguaje declarativo, interactivo, de programación, de definición de
esquemas y de comunicación con servidores a través de redes.
9 Primera versión: SQL-89 contiene tres partes:
ƒ Lenguaje de definición de datos (LDD): contiene todas las instrucciones para
definir el esquema de una BD, como son: create, alter y drop.
ƒ Lenguaje de manipulación de datos (LMD): tiene las instrucciones de manejo de
las tablas como son: select, insert, delete y update, y para control de
concurrencia como: commit y rollback.
ƒ Lenguaje de control de datos (LCD): para dar y revocar permisos de acceso a los
datos de la BD, como son: grant y revoke.
9 Las instrucciones pueden ir embebidas en programas escritos en otros
lenguajes de programación, como: Cobol, Fortran, Pascal y PL/I
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
31
SQL
¾ Segunda versión SQL-92 o SQL2, incluye:
9
9
9
9
9
9
9
9
Uso de agentes de software,
Nuevos tipos básicos de datos como: Date, Time, Timestamp, BLOB, Varchar,
Se establecen conexiones cliente-servidor en sesiones concurrentes,
SQL dinámico,
Mayor granularidad a nivel de transacciones,
Nuevas versiones de la operación producto o conjunción,
Usa un catálogo y maneja códigos de error estandarizados y
Uso de nuevos lenguajes de programación como: C, ada y mumps.
¾ Última versión SQL3 amplía o extiende el SQL2 para contener:
9
9
9
9
9
9
Tipos abstractos de datos definidos por el diseñador de la BD,
Manejo de roles de usuarios,
Consultas recursivas,
Gatillos, disparadores o triggers,
Procedimientos almacenados y encadenamiento tardío,
Manejo de interoperabilidad a través de un API u ODBC para acceso a bases de datos
basado en el estándar SAG(SQL Access Group) y
9 Manejo de transacciones anidadas.
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
32
SQL
¾ LDD
ƒ create table nombreTabla ( nombreAt tipoAt default valorPorOmisión
[null | not null | identity],... [ constraint nombreRestricción ] check ( Q
), [ constraint nombreRestricción ] primary key ( at1 [, at2, ... ]), [
constraint nombreRestricción ] unique ( at1 [, at2, ... ]), [ constraint
nombreRestricción ] foreign key ( listaAt) references nombreTabla ( listaAt
))
ƒ drop table nombreTabla
ƒ create view nombreVista [( at1 [, at2 ...] ) as instrucciónSelect [ with
opciónVerificación ]
ƒ Etc.
¾ LCD
ƒ grant { select | insert | update | delete | all } on { nombreTabla |
nombreVista } to listaCódigosUsuario
ƒ revoke { select | insert | update | delete | all } on nombreTabla from
listaCódigosUsuario
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
33
SQL
¾ LMD
ƒ select {listaAt | *}[ into nombreTabla ] from listaTablas
[ where Q’ ]
[ group by listaAt]
[ having Q ]
[ order by listaAt ]
ƒ insert [into] nombreTabla [( listaAt ) ] {values ( listaValores ) |
instrucciónSelect }
ƒ delete {[ from ] nombreTabla [ where Q ] | from listaTablas [
where Q’ ] }
ƒ update nombreTabla set at1 = {expresión | instrucciónSelect } [,
at2 = {expresión | instrucciónSelect}...] [ from listaTablas ] [
where Q’ ]
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
34
QUEL
¾ Basado en el Cálculo Relacional de Tuplas
¾ Presentado por Zook en 1977
¾ Lenguaje del Ingres
¾ LMD
ƒ Range of <listaVariables> is <listaTablas>
ƒ Retrieve [ [into] <nombreTabla>]<listaAtributosVariable>
[ where <condición> ]
ƒ
ƒ
ƒ
Sep. 2003
Append [to] <variable> ( at = valor, ... ) [ where <condición>]
Replace <variable> ( <listaDeAtributos>) [ where <condición>]
Delete <variable> [ where <condición> ]
ULAULA-Postgrado en Computación. I. Besembel
35
QBE
¾ Basado en el Cálculo Relacional de Dominios
¾ Lenguaje del Sistema R, DB2, Informix, Oracle, etc.
¾ LMD no es computacionalmente completo
Relación
col1
col2
P.
col3
_x
_x
I.
126
D.
Sep. 2003
coln
P.AO._y
>=14
P.
P.SUM._s
‘5101’
28
230
>30
=45
U.
…
_w
_w+5
ULAULA-Postgrado en Computación. I. Besembel
36
OQL
¿Cuáles son los estudiantes de la sección Nro. 2 de la materia de
nombre “Simulación”, cuál es su preparador y su profesor?
¾ LMD
9 SELECT DISTINCT STRUCT(Cédula: e.CI, nombre: e.nombre), p.nombre,
pr.nombre
FROM e IN Estudiantes, p IN Preparadores, pr IN Profesor, s IN Secciones
WHERE s.nombre = ‘Simulación’ AND s.numSec = 2
¾ LDD
ƒ interface Materia ( extent Materias keys código, nombre ): persistent
Sep. 2003
{ attribute String código;
attribute String nombre;
attribute String tipo;
attribute String tplu;
tplu;
attribute String objetivos;
attribute String contenidos;
relationship List<
List< Curso> seOfrecen inverse Curso::esSecciónDe
Curso::esSecciónDe {order_by Curso::sección };
relationship Set<
Set< Materia> prela inverse Materia::esPreladaPor
Materia::esPreladaPor;;
relationship Set<
Set< Materia> esPreladaPor inverse Materia::prela
Materia::prela;;
Boolean nuevaMateria(
nuevaMateria( ) raises (yaEstá);
yaEstá);
Boolean cambioDeNombre(
cambioDeNombre( ) raises (repetido);
Boolean cambioDeObjetivos(
cambioDeObjetivos( ) raises (repetido);
Boolean cambioDeContenido(
cambioDeContenido( ) raises (repetido);
};
ULAULA-Postgrado en Computación. I. Besembel
37
OSQL
¿Cuáles son los estudiantes de la sección Nro. 2 de la materia de
nombre “Simulación”, cuál es su preparador y su profesor?
¾ LMD
9 SELECT DISTINCT CI(e), nombre(e), nombre(p),
nombre(pr)
FOR EACH Estudiante e, Preparador p, Profesor pr, Sección s
WHERE nombre(s) = ‘Simulación’ AND numSec(s) = 2
ORDER BY CI(e);
¾ LDD
ƒ create type Estudiante subtype of Persona functions ( CI Char (var
10));
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
38
SQL espacial
¾ Inclusión de operadores de manejo espacial en
SQL
¾ Ejemplo:
SELECT e.dpto, e.dpto.ciudad
FROM e : empleado, p : proyecto
WHERE e.nombre = ‘Carlos’ AND
e.dpto.ciudad.NORTE(p.ciudad) AND
p.nombre=‘SMBDOO’ IN e.proyecto
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
39
SQL temporal
¾ En el modelo de datos: Algunos lenguajes
incluyen cláusulas y/o operadores para manejar
el tiempo.
¾ Ejm: TOSQL, TOOSQL y OOSTSQL.
SELECT e.dpto, e.dpto.vt
FROM e : empleado, p : proyecto
WHERE e.nombre = ‘Carlos’
WHEN e.dpto.vt.DURING(e.proyectos.vt) AND
p.nombre=‘SMBDOO’ IN e.proyecto
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
40
Conclusiones
¾ Tecnología básica para el mantenimiento y
control de los datos soportada por los SGBD
¾ Disponibilidad de uso a través de Web
¾ Base para la integración de aplicaciones
¾ Diversidad de tipos y posibilidad de mezclarlos
¾ Uso extendido actualmente
¾ Evolución continua
Sep. 2003
ULAULA-Postgrado en Computación. I. Besembel
41