esquema E/R de la B.D. Universidad esquema relacional de la B.D. Universidad ejercicios con la B.D. Universidad

Documentos relacionados
esquema E/R de la B.D. Universidad

consultas con álgebra relacional a la B.D. Universidad

Ejemplo de Base de Datos de la Universidad

ejemplos de SQL (Oracle 8)

Ejercicio 2 Enunciado 3 puntos 60 min.

Tema III: El enfoque relacional

Tema III: El enfoque relacional

4 DISEÑO DE BASES DE DATOS UTILIZANDO EL

4 DISEÑO DE BASES DE DATOS UTILIZANDO EL

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

ejercicios de consultas y normalización

ejercicios de consultas y normalización ejercicios de consultas y normalización ejercicios de consultas y normalización

ejercicios de consultas y normalización

Bases de Datos: Structured Query Language (SQL)

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

ÍNDICE PRIMERA PARTE... 17

T07 Opciones de integridad referencial

Bases de Datos SQL - Ejemplos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

SQL: Lenguaje de Interrogación Estructurado

Bases de Datos 1. Teórico: Structured Query Language

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Bases de Datos 2. Teórico

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

APÉNDICE SQL (Structures Query Language)

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

Programa de prácticas:

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Temario. Índices simples Árboles B Hashing

A.1. Definiciones de datos en SQL

EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO

SQLModificaciones a la BD

En este curso se presenta un análisis profundo de la base de datos MySQL para los sistemas operativos Windows y Linux.

EXAMEN DE BASES DE DATOS 11/06/04 Esquema de trabajo

ejemplos de consultas SQL para obtener claves, DF y DMV en la BD de prendas de ropa

BASES DE DATO TO I VISTAS curso 2008

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

INTRODUCCIÓN A LAS BASES DE DATOS. L.I Gerardo Benavides Pérez

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

ejemplos de consultas SQL para obtener claves, DF y DMV en la BD de prendas de ropa

Unidad. Lenguaje SQL. (Structured Query Language)

Tema II: El modelo relacional de datos. (2.7) Automatización

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

BASES DE DATOS. TEMA 7. SQL. EL LENGUAJE DE CONSULTA.

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión).

ÍNDICE INTRODUCCIÓN...17

Departamento de Lenguajes y Sistemas Informáticos

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN

2.5.- El lenguaje estándar SQL

Práctica 3: El lenguaje SQL (1ª parte). (4ª sesión)

SQL (Structured Query Language)- DML

Tema 5. Lenguaje de Definición de Datos

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Ejemplo de gestión de datos con SQL

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Crear BD en. Isis Bonet Cruz, PhD

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

SQL. Orígenes y Evolución

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015

Introducción SQL. Ges2ón y Modelación de Datos María Constanza Pabón

Lenguaje de manipulación de datos

8 SQL SERVER 2008 RA-MA

FUNDAMENTOS DE LAS BASES DE DATOS ( ) Datos Generales

Manual de Sentencias Básicas en SQL

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos

álgebra relacional 2

Laboratorios de BASES DE DATOS. (I.T. Informática)

MATERIAL SOBRE SENTENCIAS SQL

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

Facultad de Informática UCM - Examen Parcial Convocatoria de Febrero Curso 2009/2010 Grupo A Bases de Datos y Sistemas de la Información SOLUCIÓN

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

Diseño de bases de datos

Cuestión: Proceso de consultas en BD Relacionales. Problema 1: Diseño conceptual

Tema II: Información Derivada: Vistas (2.6)

Máster en Data Analytics SQL

1. Dadas las tablas ALUM y NUEVOS, insertar en la tabla ALUM los nuevos alumnos.

ÍNDICE INTRODUCCIÓN...13

Repaso de Conceptos Básicos de Bases de Datos

SQL (Structured Query Language)

FUNDAMENTOS DE BASES DE DATOS TEMA 5

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

Examen de Bases de Datos Curso Grado en Ingeniería del Software Convocatoria de Septiembre. Nombre:

Bases de Datos Relacionales y SQL: Una Introducción

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

SISTEMAS DE BASES DE DATOS APELLIDOS: NOMBRE: DNI: FECHA:

CONOCIMIENTOS DE CONCEPTOS BASES DE DATOS

Seguridad. Bibliografía: Introducción a los sistemas de bases de datos -C.J. Date

1 2 3 ( /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0)))

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Transcripción:

esquema E/R de la B.D. Universidad esquema relacional de la B.D. Universidad codprof codarea coddpto nombprof clvarea nombarea clvdpto nombdpto (0,N) (1,1) (1,N) (1,1) PROFESOR adscribir AREA_CONOC pertenecer DEPARTAMENTO esquema relacional simplificado de la B.D. (se han omitido algunas restricciones de integridad y los dominios) Departamento(clvDpto: entero; coddpto: tpcadena; nombdpto: tpcadena); AreaConoc (clvarea: entero; codarea: tpcadena; nombarea: tpcadena; clvdpto: entero; (clvdpto) es clave ajena de Departamento y no nulo) Profesor (: entero; codprof: tpcadena; nombprof: tpcadena; clvarea: entero; (clvarea) es clave ajena de AreaConoc y no nulo) (1,N) (1,1) impartir encargar codtitulo HT HP tt_ht tt_hp clvtitulo nombtitulo (0,N) (0,N) ASIGNATURA (0,N) formar (1,N) TITULACION nombasign codasign Asignatura (: entero; codasign: tpcadena; nombasign: tpcadena; tt_ht: entero; tt_hp: entero; clvarea: entero; (clvarea) es clave ajena de AreaConoc y no nulo) Titulacion (clvtitulo: entero; codtitulo: tpcadena; nombtitulo: tpcadena); ImparteAsign(: entero; : entero; HT: entero; HP: entero); () es clave ajena de Profesor; () es clave ajena de Asignatura) AsignTitulo (: entero; clvtitulo: entero; () es clave ajena de Asignatura; (clvtitulo) es clave ajena de Titulación) significa clave alternativa UNICO y NO NULO ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 1 diagrama relacional de la B.D. Universidad ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 2 ejercicios con la B.D. Universidad ImparteAsign HT HP ASIGNATURA codasign nombasign UN, NN tt_ht tt_hp clvarea NN AsignTitulo clvtitulo TITULACION clvtitulo codtitulo nombtitulo UN, NN 1 (álgebra y SQL) 2 listado de los pares de asignaturas (1, 2) que están asignadas a PROFESOR codprof nombprof UN, NN clvarea NN AREACONOC clvarea codarea nombarea UN, NN clvdpto NN DEPARTAMENTO clvdpto coddpto nombdpto UN, NN 3 listado de los profesores del departamento de Informática (clave, nombre y total de horas impartido) que imparten menos de 200 horas 4 El profesor se identificará por el número 357 (codprof='inf054'), y estará asignado al área de la asignatura. Se eliminará esta docencia a los profesores que la impartían. ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 3 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 4

consultas con álgebra relacional a la B.D. Universidad (ej1) consultas con álgebra relacional a la B.D. Universidad (ej1) 1a 1b Puesto que asignatura determina el área de conocimiento a que está asignada, no es necesario construir las ternas (,, clarea) R1 = clvarea, (Asignatura) asignaturas encargadas a cada área R2 =, (ImparteAsign) profesores que imparten las asignaturas R9 = ( (Profesor) (Asignatura)), (ImparteAsign) profesores y asignaturas que no imparten R3 = R1 (Profesor) todas las posibles imparticiones de las asignaturas, junto con el área a que están asignadas R4 = clvarea,, (R1 R2) imparticiones reales de las asignaturas, junto con el área a que están asignadas R5 = R3 R4 profesores con asignaturas no impartidas y área a que están asignadas R6 =, clvarea (R5) profesores y áreas en las que hay alguna que no es impartida por dicho profesor R7 =, clvarea (R4) profesores y áreas en las que imparten docencia R6 =, clvarea (R9 Asignatura) R7 =, clvarea (ImparteAsign profesores y áreas en las que el profesor no imparte alguna al área Asignatura) profesores y áreas en que imparten docencia R = (R7 R6) R8 = R7 R6 profesores y áreas en que imparte docencia en todas las asignaturas encargadas R = (R8) ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 5 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 6 consultas con álgebra relacional a la B.D. Universidad (ej1) 1c También se pueden contar las asignaturas encargadas a cada área, y las asignaturas de cada área que imparte un profesor... 1a R10 (clvarea, totasign) = AGRUPAR contar (Asignatura; clvarea) áreas y total de asignaturas encargadas R11 =,, clvarea (ImparteAsign Asignatura) imparticiones junto con el área de la asignatura R12 (, clvarea, totasign) = AGRUPAR contar (R11;, clvarea) profesores y áreas en que imparten docencia, junto con el total de asignaturas impartidas en dicha área SELECT DISTINCT FROM Profesor P WHERE EXISTS (SELECT * FROM AreaConoc AC WHERE clvarea IN (SELECT clvarea FROM Asignatura) AND NOT EXISTS WHERE P. = IA. AND A. = IA.))); R = (R12 R10) ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 7 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 8

1b 1c SELECT DISTINCT FROM Profesor P WHERE EXISTS C WHERE P. = IA. AND A. = IA.))); FROM Profesor P, Asignatura AC WHERE P. = IA. AND A. = IA.))); ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 9 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 10 1d 1e Creando dos vistas auxiliares en las que se cuentan las asignaturas: por área y por prof.-área CREATE VIEW totasignarea (clvarea, totasign) AS SELECT clvarea, count(*) FROM Asignatura GROUP BY clvarea; FROM Profesor P, Asignatura AC (SELECT FROM Asignatura A SELECT FROM ImparteAsign IA WHERE P. = IA.); CREATE VIEW proftotasignarea (, clvarea, totasign) AS SELECT, clvarea, count(*) FROM ImparteAsign IA, Asignatura A WHERE IA. = A. GROUP BY, clvarea; FROM proftotasignarea P, totasignarea AC WHERE P.clvArea = AC.clvArea AND P.totAsign = AC.totAsign; DROP VIEW totasignarea; DROP VIEW proftotasignarea; eliminar las vistas creadas ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 11 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 12

consultas en SQL a la B.D. Universidad (ej2) consultas en SQL a la B.D. Universidad (ej2) listado de los pares de asignaturas (1, 2) que están asignadas a listado de los pares de asignaturas (1, 2) que están asignadas a SELECT DISTINCT A1., A2. WHERE A1. < A2. AND NOT EXISTS( (SELECT clvtitulo FROM asigntitulo WHERE = A1. SELECT clvtitulo FROM asigntitulo WHERE = A2.) (SELECT clvtitulo FROM asigntitulo WHERE = A2. SELECT clvtitulo FROM asigntitulo WHERE = A1.)); SELECT DISTINCT A1., A2. WHERE A1. < A2. AND NOT EXISTS(SELECT clvtitulo FROM asigntitulo WHERE = A1. OR = A2. SELECT AT1.clvTitulo FROM asigntitulo AT1, asigntitulo AT2 WHERE AT1. = A1. AND AT2. = A2. AND AT1.clvTitulo = AT2.clvTitulo); ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 13 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 14 consultas en SQL a la B.D. Universidad (ej2) (ej3 a) listado de los profesores del departamento de Informática (clave, nombre y total de horas impartido) que imparten menos de 200 horas listado de los pares de asignaturas (1, 2) que están asignadas a SELECT DISTINCT A1., A2. WHERE A1. < A2. AND NOT EXISTS(SELECT clvtitulo FROM asigntitulo WHERE = A1. OR = A2. ( SELECT clvtitulo FROM asigntitulo WHERE = A1. INTERSECT SELECT clvtitulo FROM asigntitulo WHERE = A2.)); SELECT P., nombprof, sum(ht)+sum(hp) "tot.horas" WHERE P.clvArea = AC.clvArea AND AC.clvDpto = D.clvDpto AND D.nombDpto ='Informática' AND P. = IA. (+) GROUP BY P., nombprof HAVING sum(ht)+sum(hp) < 200 OR sum(ht)+sum(hp) IS NULL; CREATE VIEW horasprof (, tothoras) AS SELECT, sum(ht+hp) FROM ImparteAsign GROUP BY HAVING sum(ht)+sum(hp) < 200 SELECT, 0 FROM profesor WHERE NOT IN (SELECT FROM ImparteAsign); SELECT P., nombprof, tothoras FROM Profesor P, horasprof H, AreaConoc AC, Departamento D WHERE P.clvArea = AC.clvArea AND AC.clvDpto = D.clvDpto AND D.nombDpto ='Informática' AND P. = H. AND H.totHoras < 200; DROP VIEW horasprof; ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 15 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 16

(ej3 b) listado de los profesores del departamento de Informática (clave, nombre y total de horas impartido) que imparten menos de 200 horas SELECT P., nombprof, sum(ht)+sum(hp) "tot.horas" WHERE P.clvArea = AC.clvArea AND AC.clvDpto = D.clvDpto AND D.nombDpto ='Informática' AND P. = IA. GROUP BY P., nombprof HAVING sum(ht)+sum(hp) < 200 SELECT P., nombprof, 0 WHERE P.clvArea = AC.clvArea AND AC.clvDpto = D.clvDpto AND D.nombDpto ='Informática AND P. NOT IN (SELECT FROM ImparteAsign); (ej4 a) INSERT INTO Profesor SELECT 357, 'inf054','luis Pérez', clvarea FROM Asignatura WHERE = 23; DELETE FROM ImparteAsign WHERE = 23; INSERT INTO ImparteAsign SELECT 357, 23, tt_ht, tt_hp FROM Asignatura WHERE = 23; /* Se utilizan instrucciones de inserción de tuplas con los datos conocidos y, después, se añaden instrucciones de actualización. Para ello, hay que desposibilitar temporalmente la restricción NOT NULL de clvarea de Profesor. Además de eliminar y, posteriormente, añadir esta restricción,también se puede hacer: ALTER TABLE Profesor DISABLE CONSTRAINT areaprof_nn;... ALTER TABLE Profesor ENABLE CONSTRAINT areaprof_nn; En vez de eliminar explícitamente la restricción, se podría haber hecho directamente: ALTER TABLE Profesor MODIFY clvarea NULL; */ SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'PROFESOR'; ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 17 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 18 (ej4 b) (ej4 c) ALTER TABLE Profesor DROP CONSTRAINT areaprof_nn; INSERT INTO Profesor VALUES (357, 'inf054','luis PEREZ', null); UPDATE Profesor SET clvarea = (SELECT clvarea FROM Asignatura WHERE = 23) WHERE = 357; ALTER TABLE Profesor MODIFY clvarea CONSTRAINT areaprof_nn NOT NULL; DELETE FROM ImparteAsign WHERE =23; INSERT INTO ImparteAsign VALUES (357, 23, null, null); UPDATE ImparteAsign SET HT = (SELECT tt_ht FROM Asignatura WHERE = 23), HP = (SELECT tt_hp FROM Asignatura WHERE = 23) WHERE = 357 AND = 23; /* La diferencia con versiones anteriores es que la docencia que se asigna al nuevo profesor es la que impartían los profesores que lo sustituían */ ALTER TABLE Profesor DISABLE CONSTRAINT areaprof_nn; INSERT INTO Profesor VALUES (357, 'inf054','luis PEREZ', null); UPDATE Profesor SET clvarea = (SELECT clvarea FROM Asignatura WHERE = 23) WHERE = 357; ALTER TABLE Profesor ENABLE CONSTRAINT areaprof_nn; INSERT INTO ImparteAsign SELECT 357, 23, sum(ht), sum(hp) FROM ImparteAsign WHERE = 23; DELETE FROM ImparteAsign WHERE =23 AND <> 357; ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 19 ejemplos de operaciones con B.D. relacionales Curso 2011/12 S. Velilla. Univ. de Zaragoza 20