Principale limitazione di AR e SQL-92: interrogazioni ricorsive

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Ricorsione in SQL-99.
Calcolo Relazionale.
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Stazione 1 Stazione 2 R1 R2 IN OUT Descrizione del sistema Stazione 1 Stazione 2 R1 R2 IN OUT Partenza da vuoto
Algebra e calcolo relazionale (parte 2)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.
SQL Dati i seguenti schemi relazionali:
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Luglio 2004Memorie Tradizionali1 MEMORIE TRADIZIONALI Luglio 2004.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Istruzione SELECT (versione base)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Basi di Dati II Sara Romano
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
Esercitazione.
Equivalenza di espressioni
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Daniel Stoilov Tesi di Laurea
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
MODELLO LOGICO DEI DATI
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
SQL.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Esercitazione 7.
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Raggruppamento in SQL Esempio di raggruppamento
Microsoft Access Query (III).
Ordinamenti nelle query di ricerca. verso crescente e decrescente.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Introduzione a SQL Server 2000 LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Transcript della presentazione:

Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOME NOMECAPO Rossi Verdi Neri DeSio Tucci DeLuca Lazio Query NOMECAPO Verdi DeSio Lazio selezionare tutti i capi di “Rossi” Questa interrogazione è riconducibile ad un caso di chiusura transitiva di una relazione binaria In SQL-3 (SQL-1999) si possono esprimere interrogazioni ricorsive In DB2 WITH CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT CAPO.NOME, IMPIEGATO.NOMECAPO FROM CAPO, IMPIEGATO WHERE CAPO.NOMECAPO = IMPIEGATO.NOME ) SELECT NOMECAPO FROM CAPO WHERE NOME = 'Rossi' AND NOMECAPO IS NOT NULL; Access non accetta interrogazioni ricorsive

Interrogazioni Ricorsive in SQL In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Impiegato(Nome,NomeCapo) non è possibile esprimere l’interrogazione che ritrova “tutti i capi di un impiegato”, con un numero arbitrario di livelli intermedi per risolvere queste interrogazioni con SQL2, è necessario utilizzare SQL da programma (o stored procedure) in SQL-99 c’è la possibilità di esprimere interrogazioni ricorsive base teorica: basi di dati deduttive Capo(Nome,NomeCapo)  Capo(Nome,NomeCapo) Capo(Nome,NomeCapo) Impiegato(Nome,impiegato1), Capo(impiegato1,NomeCapo) Capo è una vista ricorsiva: nella sua definizione usa se stessa

SQL-99 - comando WITH il comando WITH consente di definire delle tabelle temporanee che non diventano parte dello schema ma rappresentano solo dichiarazioni di relazioni da utilizzare nel contesto dell’interrogazione associata a WITH WITH R1 AS <definizione di R1>, ... Rn AS <definizione di Rn>, <interrogazione che coinvolge R1, …, Rn> ogni definizione può essere ricorsiva e mutuamente ricorsiva ogni relazione coinvolta in una ricorsione deve essere preceduta dalla parola chiave RECURSIVE la definizione per la relazione Ri consiste in parola chiave opzionale RECURSIVE il nome della relazione che si sta definendo (seguita da AS) interrogazione che definisce Ri e può fare riferimento a R1 ,…, Ri-1 l’interrogazione finale che può far riferimento a tutte le relazioni definire in precedenza la ricorsione deve essere lineare nella definizione di una relazione R, R può comparire una sola volta

Esempi Esempio di ricorsione lineare (nota RECURSIVE rispetto a DB2) WITH RECURSIVE CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT CAPO.NOME, IMPIEGATO.NOMECAPO FROM CAPO, IMPIEGATO WHERE CAPO.NOMECAPO = IMPIEGATO.NOME ) SELECT * FROM CAPO; Esempio di ricorsione non lineare : non accettata dallo standard WITH RECURSIVE CAPO (NOME, NOMECAPO) AS ( SELECT NOME, NOMECAPO FROM IMPIEGATO UNION SELECT R1.NOME, R2.NOMECAPO FROM CAPO R1, CAPO R2 R1.NOMECAPO = R2.NOME ) SELECT * FROM CAPO; La forma della query deriva dalla semantica, ovvero dal modo con la quale CAPO viene calcolata

SQL-99 - semantica della ricorsione La semantica delle interrogazioni ricorsive è definita mediante la nozione di punto fisso (più precisamente minimo punto fisso) Se R è Binaria (es. R(A,B)) si parla anche di chiusura transitiva R+ : è la più piccola (rispetto alla inclusione) relazione tale che Contiene R+ Se (x,y) e (y,z) sono in R+ allora anche (x,z) è in R+ si costruisce una sequenza Ri di relazioni tali che: R0 è la relazione vuota Ri, 1  i, viene ottenuta applicando la definizione della relazione a Ri-1 quando, per un certo i, si ha che Ri = Ri-1 ci si ferma e tale relazione è il minimo punto fisso e costituisce il risultato dell'interrogazione ricorsiva Esempio: CAPO è la chiusura transitiva di IMPIEGATO

SQL-99 - semantica della ricorsione La semantica delle interrogazioni ricorsive è definita mediante la nozione di punto fisso (più precisamente minimo punto fisso) si costruisce una sequenza Ri di relazioni tali che: R0 è la relazione vuota Ri, 1  i, viene ottenuta applicando la definizione della relazione a Ri-1 quando, per un certo i, si ha che Ri = Ri-1 ci si ferma e tale relazione è il minimo punto fisso e costituisce il risultato dell'interrogazione ricorsiva Se R è Binaria si parla anche di chiusura transitiva R+ : è la più piccola (rispetto alla inclusione) relazione tale che Contiene R+ Se (x,y) e (y,z) sono in R+ allora anche (x,z) è R+ Esempio: CAPO è la chiusura transitiva di IMPIEGATO

Esempio Determinare i cammini di un grafo dati gli archi WITH RECURSIVE Cammino(da,a) AS (SELECT da,a FROM Arco) UNION (SELECT R1.da, R2.a FROM Arco AS R1, Cammino AS R2 WHERE R1.a = R2.da); SELECT * FROM Cammino;

Esempio (continua) Arco Cammino0 = ; Cammino1 =

Esempio - semantica Cammino2 = Cammino1  Cammino3 = Cammino2  Cammino4 = Cammino3 punto fisso e risultato