2.6 Información Derivada

Anuncio
Tema II:
Información Derivada:
Vistas (2.6)
El modelo relacional de datos
Objetivos:






conocer las estructuras de datos del modelo: la
tupla y la relación
conocer básicamente la forma de modelar la
realidad utilizando el modelo relacional
conocer los mecanismos del modelo relacional para
expresar restricciones de integridad
conocer los lenguajes de manipulación propuestos
para este modelo de datos: Álgebra Relacional y
Cálculo Relacional de Tuplas
conocer mecanismos de vistas
conocer el mecanismo de disparadores
1
El modelo relacional de datos







2.1 Modelo relacional de datos (Aproximación
algebraica)
2.2 Esquema relacional: representación de la
realidad
2.3 Modelo relacional de datos (Aproximación
lógica)
2.4 Restricciones de integridad
2.5 El lenguaje estándar SQL
2.6 Vistas
2.7 Disparadores
2.6 Información Derivada: Vistas


Los datos almacenados en la BD se organizan en
relaciones definidas en el esquema de la BD.
La información también puede estar expresada en forma
de reglas generales de conocimiento


Aumenta la capacidad expresiva de la BD



SGBD tiene capacidad deductiva
La información disponible ya no es sólo la almacenada
explícitamente en forma de datos sino también la que se puede
derivar a partir de estos datos por medio de reglas
Las reglas se definen en el esquema de la BD
Se puede utilizar cualquier tipo de lenguaje relacional

El Álgebra Relacional (AR) o un lenguaje de tipo lógico (L).
2
2.6 Ejemplo de Información derivada:

En el sistema de información relativo a la docencia en una
universidad, existen las siguientes reglas de conocimiento:



R1: “se consideran estudios de primer ciclo los tres primeros
años del plan de estudios de una titulación, y estudios de
segundo ciclo los años posteriores (si es que existen)”.
R2: “se considera que una asignatura es aplicada si tiene un
número de créditos prácticos igual o mayor al 75% del total de
créditos”
El conocimiento de estas reglas permite derivar información
implícita que no está almacenada en la base de datos, por
ejemplo: “los datos de las asignaturas aplicadas que son de
primer ciclo”.
2.6 Ejemplo de Información derivada:

Las reglas de conocimiento del Ejemplo podrían
expresarse:

R1:
Álgebra Relacional: PrimerCiclo
←
Asignatura DONDE
semestre IN (“1A”, “1B”, “2A”, “2B”,“3A”, “3B”)
Lógica: PrimerCiclo (AX) ← (AX:Asignatura AX.semestre IN
(“1A”,“1B”,“2A”,“2B”,“3A”,“3B”) )

R2:
Álgebra Relacional: Aplicada ← Asignatura DONDE ((prac /
(teo + prac ))*100) ≥ 75
Lógica: Aplicada (AX) ← (AX: Asignatura ((AX.prac / (AX.teo +
AX.prac ))*100) ≥ 75 )
3
2.6 Ejemplo de Información derivada:
Relaciones
básicas
Relaciones
derivadas
PrimerCiclo
Asignatura
R1
Aplicada
R2
2.6 Ejemplo de Información
derivada:
Relación Básica
Relaciones Derivadas
4
2.6 Información Derivada


Una vez se han definido en el esquema las relaciones
derivadas, ya se puede consultar la información derivada.
Ejemplo de consultas:
1) Obtener todos los datos de las asignaturas de primer ciclo
que tienen más de 5 créditos”
AR: PrimerCiclo DONDE ( teo + prac)>5
L: AX:PrimerCiclo (AX.teo+AX.prac)>5
2) Obtener todos los datos de las asignaturas de primer ciclo
que son aplicadas”
AR: PrimerCiclo ∩ Aplicada
L: AX:PrimerCiclo ∃ AY: Aplicada (AX.codigo=AY.codigo)
2.6 Información Derivada: vistas



En el Modelo Relacional, a las relaciones derivadas se les
domina vistas.
Una vista es una relación derivada definida por una regla de
derivación a partir de relaciones básicas u otras relaciones
derivadas
La regla de derivación se puede representar con una
expresión escrita en un lenguaje relacional



La evaluación de esta expresión devuelve las tuplas que
constituyen la relación derivada.
Las tuplas de una relación básica se almacenan
explícitamente.
Las tuplas de una vista se calculan cuando el usuario hace
una consulta sobre la vista.
5
2.6 Vistas en SQL

El lenguaje de definición de datos del SQL incluye una
sentencia1 para la definición de vistas en el esquema BD
CREATE VIEW nombre_vista [nom_columna1,
nom_columna2, …, nom_columnan]
AS expresión_tabla
[WITH CHECK OPTION]
Donde,
nombre_vista: nombre de la vista
[nom_columna1,....]: nombres de columna de la vista
expresión_tabla: sentencia que define la relación derivada (SELECT)
WITH CHECK OPTION: impide que se realice una actualización sobre la
vista que viole su definición.
1DROP
VIEW nombre_vista, permite eliminar una vista del esquema BD.
2.6 Vistas en SQL

Las vistas del Ejemplo, se definen en SQL de la
siguiente forma:
R1: “Se consideran estudios de primer ciclo los tres primeros años
del plan de estudios de una titulación, y estudios de segundo ciclo
los años posteriores (si es que existen)”.
CREATE VIEW PrimerCiclo
AS SELECT *
FROM Asignatura AX
WHERE AX.semestre IN (‘1A’, ‘1B’, ‘2A’, ‘2B’, ‘3A’, ‘3B’)
WITH CHECK OPTION
6
2.6 Vistas en SQL

Las vistas del Ejemplo, se definen en SQL de la
siguiente forma:
R2: Se considera que una asignatura es aplicada si tiene un número
de créditos prácticos igual o mayor al 75% del total de créditos”
CREATE VIEW Aplicada
AS SELECT *
FROM Asignatura AX
WHERE ( (AX.prac / (AX.teo + AX.prac ))*100) ≥ 75
WITH CHECK OPTION
2.6 Vistas en SQL

La consulta 1 del Ejemplo, se expresaría en SQL:
1) “Obtener todos los datos de las asignaturas de primer ciclo que
tienen más de 5 créditos”
SELECT * FROM PrimerCiclo PX WHERE (PX.teo + PX.prac) > 5

Para evaluarla el SGBD, escribirá la sentencia SELECT del usuario
utilizando la definición de la vista:
SELECT * FROM Asignatura AX WHERE (AX.teo + AX.prac) > 5
AND AX.semestre IN (‘1A’, ‘1B’, ‘2A’, ‘2B’, ‘3A’, ‘3B’)

La opción WITH CHECK OPTION prohibiría la actualización:
INSERT INTO PrimerCiclo VALUES (“PD”, “Programación Declarativa”,
“5A”, 3, 3, “DSIC”)
(La tupla a ser insertada viola la definición de la vista PrimerCiclo, ya
que PD es una asignatura de 5A curso).
7
2.6 Aplicaciones de las Vistas

Definición de esquemas externos


Preparación de consultas


Definir vistas parciales del esquema lógico de la BD para
distintos grupos de usuarios
Definir y almacenar en la BD consultas complejas que son
utilizadas frecuentemente
Criterios de seguridad

Aplicar políticas de seguridad (privacidad) de los datos
2.6 Aplicaciones de las Vistas

Ejemplo: Definición de un esquema externo para el
departamento DSIC sobre la BD de docencia:
CREATE VIEW Asignaturas_DSIC AS
SELECT codigo, nombre, semestre, teo, prac FROM Asignatura
WHERE dep=‘DSIC’
CREATE VIEW Profesor_DSIC AS
SELECT codigo, nombre, telefono, categoria FROM Profesor
WHERE dep=‘DSIC’
CREATE VIEW Docencia_DSIC AS
SELECT cod_pro, cod_asg, gteo, gprac FROM Docencia
WHERE cod_pro IN (SELECT codigo FROM Profesor
WHERE dep=‘DSIC’)
Privacidad: Los usuarios de cada Depto sólo tendrían autorización para
consultar el esquema externo correspondiente a su departamento).
8
Ejercicios sobre Vistas
Considere la tabla CURSO, que contiene la siguiente extensión:
Ejercicios sobre Vistas
1.
Crear una vista denominada CursosS, que contenga las filas
correspondientes a cursos ofrecidos por el departamento
Sistemas. La vista deberá contener todas las columnas de la
tabla CURSO, con la excepción de la columna Depto.
CREATE VIEW CursosS AS
SELECT NombreC,NumC,Creditos,Costo,DescC
FROM CURSO
WHERE DescC=‘Sistemas’;
9
Ejercicios sobre Vistas
2)
Crear una vista denominada CursosCaros, correspondientes a
las filas de la tabla CURSO, donde la tarifa exceda $150, las
columnas de la vista deberán tener los nombres ClaveCurso,
NombreCurso y CostoCaro.
CREATE VIEW
CursosSCaros(ClaveCurso,NombreCurso,CostoCaro) As
SELECT NumC,NombreC, Costo
FROM Curso
WHERE Costo > 150;
10
Descargar