Gianluca Della Vedova. Basi di Dati. Dati - Informazioni. Obiettivi. Dati. Basi di dati. Schemi. Schemi - Istanze. Basi di Dati Ufficio U7-244

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gianluca Della Vedova. Basi di Dati. Dati - Informazioni. Obiettivi. Dati. Basi di dati. Schemi. Schemi - Istanze. Basi di Dati Ufficio U7-244"

Transcript

1 28 febbraio 2012 Ufficio U Revisione 6ac2fc1del 28 febbraio 2012 Obiettivi Dati - Informazioni Concetti fondamentali di basi di dati Basi di dati relazionali Progettazione concettuale Progettazione logica SQL Dati: elementi di informazione che devono essere elaborati Dati strutturati: elementi aggregati in maniera ordinata Informazione: elemento che consente di avere conoscenza di fatti. Dati Basi di dati Memorizzare dati in file: problemi dimensione condivisione persistenza, affidabilità privatezza, efficienza, efficacia Basi di dati (database): dati organizzati secondo un modello predeterminato DBMS (Data Base Management System), strumenti che gestiscono le basi di dati. Schemi - Istanze Schemi Istanze: dati memorizzati nel database Schemi: caratteristiche dell istanza che usualmente non cambiano nel tempo. Matricola Cognome = Schema Rossi Verdi = Istanza schema logico: si utilizza il modello logico per descrivere l intero DB. schema interno: si specificano le strutture dati schema esterno: riguarda la specifica di porzioni del DB. Indipendenza fisica

2 Progettazione concettuale Raccolta informazioni Obiettivi: costruzione di uno schema di DB Partenza: specifiche informali, elenco delle richieste. Problemi: ottenere un giusto livello di astrazione ed essere aderente alle specifiche di partenza. Indagine conoscitiva Passaggio da descrizione informale a descrizione precisa e non ambigua Esplicitazione degli utilizzi massimi e medi previsti. Schema concettuale Esempio 1: DB Universitario Desiderata: Correttezza Completezza Chiarezza Minimalità Obiettivo: disegnare un DB che permetta di gestire tutte le informazioni rilevanti per un università. In particolare anagrafica studenti, docenti e personale non docente, gestione esami e crediti, gestione stipendi. Esempio 2: e-commerce Esempio 3: trasporti locali Obiettivo: disegnare un DB che permetta di gestire tutte le informazioni rilevanti per un azienda che riceve le ordinazioni esclusivamente via Internet. Ad esempio Obiettivo: disegnare un DB che permetta di gestire tutte le informazioni rilevanti per un azienda che gestisce un sistema di trasporti terrestri da/per aereoporti. Ad esempio dovranno essere memorizzati i mezzi a disposizione, gli autisti e tutti i viaggi effettuati. Richieste Primi passi Necessità degli utenti Cercare di adattarsi alla situazione preesistente Principio della minima sorpresa Scegliere il livello di astrazione Scegliere uno standard Semplificare il più possibile ma non troppo Porre le basi per una documentazione chiara e duratura.

3 Principi della progettazione Principi della progettazione Semplicità: il disegno deve essere semplice, sia l implementazione che l interfaccia. Correttezza: il disegno deve esser corretto in tutti i suoi aspetti. Non sono ammessi errori. Completezza: il disegno deve coprire tutti i casi ragionevolmente attesi. La semplicità non può influenzare troppo la completezza. Consistenza: il disegno deve essere consistente. Il disegno può essere leggermente più complesso o meno completo al fine di evitare incosistenze. La consistenza è importante come la correttezza. [Richard Gabriel] Principi della progettazione Tecniche di progettazione Se un concetto ha proprietà significative o descrive oggetti con esistenza autonoma, allora deve essere chiaramente distinto Se possibile descrivere un concetto semplice come attributo di un altro concetto Se un concetto lega due concetti distinti, si crea una associazione. Top-down = dal generale al particolare Bottom-up = dal particolare al generale Top-down Top-down Notare che un concetto (complesso) è formato da più concetti (più semplici) legati fra loro. Notare che un concetto (complesso) è formato da più concetti (più semplici) distinti. Notare che un associazione è formata da più associazioni. Notare che un associazione è meglio descritta da un concetto autonomo. Individuare nuove caratteristiche dei concetti o delle associazioni. Bottom-up Bottom-up Notare che alcuni oggetti condividono un concetto. Notare che esiste un associazione fra alcune classi di oggetti. Notare che alcune classi di oggetti distinti condividono delle caratteristiche comuni, ma continuano ad averne altre non condivise. Notare che alcune caratteristiche possono essere raggruppate in un concetto oppure in un associazione.

4 Confronto Metodologia Top-down: si può iniziare anche se non si conoscono tutti i dettagli, ma è necessaria una visione d insieme. Bottom-up: può essere fatto anche da più persone. Analisi dei requisiti Individuare i concetti più importanti. Decomporre i concetti sulla base delle specifiche raccolte. Aggiungere nuovi concetti. Assicurarsi che le modifiche siano consistenti con lo schema. Verificare la qualità del disegno ottenuto. Modello logico Progettazione Gerarchico: esiste una gerarchia fra i vari concetti da rappresentare. Relazionale Orientato agli oggetti: ogni singolo fatto da rappresentare è un oggetto, che gode di proprietà specifiche e sui cui possono agire alcune azioni. Progettazione concettuale: modello formale del problema, indipendente dalla soluzione computazionale Progettazione logica: soluzione computazionale indipendente dal modello fisico dei dati. Progettazione fisica: schema fisico dei dati. Entità-Relazione Entità È modello concettuale dei dati Permette il progetto logico Entità = oggetti Relazioni = associazioni fra oggetti Classi di oggetti Occorrenza di una entità = singolo oggetto Entità Relazioni Relazioni Associazioni concettuali fra classi di oggetti Occorrenza di una relazione = tupla contenente un oggetto per ogni entità coinvolta Studente Esame Corso Relazione

5 Attributi Attibuti composti Componenti elementari di un entità. Corso Componenti non elementari di un entità. Attributo Composto Corso Generalizzazioni Generalizzazioni totale se ogni occorrenza dell entità generale è occorrenza di una delle entità particolari. esclusiva se ogni occorrenza dell entità generale è occorrenza di al più una delle entità particolari. Particolare 1 Particolare 1 Generale Esercizio 1: versione 1 Esercizio 1: versione 2 sostiene Corso Corso tiene Studente Studente Sostiene Persona Docente registra Esame Docente tiene Bisogna distinguere il concetto di corso da quello di esame. Si nota che docente e studente sono generalizzate da persone. Iniziamo a mettere gli attributi. Ogni corso viene ripetuto negli anni, ma con delle modifiche. Esercizio 1: versione 3 Esercizio 1: versione 4 Nome Cognome Data di nascita Persona Codice Orario ricevimento Ufficio Matricola Studente Docente frequenta Sostiene Iscritto registra tiene Corso Occerrenza del corso Esame Data Voto Durata Nome Crediti Nome Anno Aula si riferisce a Orario Corso di studio Introduciamo il concetto di Dipartimento e Facoltà, oltre a quello di prova finale per l ottenimento del titolo. Nome Cognome Data di nascita Dipartimento Nome Matricola frequenta Sostiene Studente Persona Iscritto Codice Docente registra Orario ricevimento Relatore Ufficio relatore afferisce afferisce Tesi locata in Facolta Titolo Stage Nome organizza correlatore Corso Nome si riferisce a tiene Crediti Anno Occerrenza del corso Aula Orario Esame Data Voto Nome Durata si riferisce a Corso di studio Titolo si riferisce a Titolo Data Voto Responsabile ha portato a ha portato a porta a

6 Chiave Chiave con più attibuti Chiave Corso Chiave 1 Corso Non chiave Chiave 2 Chiave esterna Cardinalità delle relazioni Chiave che coinvolge un altra entità, collegata tramite una relazione. Nome Corso crediti Anno Una relazione può coinvolgere un numero prestabilito di occorrenze di una entità. Un docente afferisce ad un dipartimento e insegna almeno un corso. Un dipartimento è formato da almeno 15 docenti. Occ. corso Aula Orario Cardinalità delle relazioni Cardinalità delle relazioni Docente (1,1) (15,N) Afferisce Dipartimento Relazione uno ad uno (1, 1) (1, 1) Relazione uno a molti (1, 1) (1, N) Relazione molti a molti (0, N) (0, N) Esercizio 2: versione 1 Commenti Cliente Libro Fattura Vendita Potrebbe essere interessante effettuare delle interrogazioni che riguardino l autore (o gli autori) dei libri. Devono essere tenuti in considerazione anche gli acquisti vendita

7 Esercizio 2: versione 2 Commenti Cliente Autore acquisto Persone Fattura Vendita Libro vendita Determinare gli attributi. Scegliere i nomi delle relazioni. Fornitore Fattura Acquisto Esercizio 2: versione 3 Esercizio 3: versione 1 Cliente Persone Autore ha scritto Casa editrice Q.ta ISBN Libro Costo unit. acquisto Automezzi Viaggiatori Codice Nome Fattura Vendita vendita Cognome Num. Fattura venduto a (1,1) Data Consegna Dati Data acquistato da (1,1) Coidce Fornitore Num. Fattura Q.ta Costo unit. Fattura Acquisto percorre Percorsi viaggia Commenti Esercizio 3: versione 2 Modello Autista Un viaggio inizia o termina in un aereoporto, ed è formato da una sequenza di luoghi di raccolta (o rilascio). Automezzi autorizzato Viaggiatori Autisti diversi hanno abilitazioni diverse percorre Tappe viaggia adiacente Commenti Relazione Mancano gli attributi. Associazione fra oggetti Relazione matematica Siano A, B due insiemi, una relazione binaria è R A B. A, B: domini della relazione.

8 Esempio di relazione Tabelle A={, Verdi, Rossi} B={8 Settembre,, 10 Settembre} R={(, 8 Settembre), (, ), (, 10 Settembre), (Verdi, ), (Rossi, 8 Settembre)} Tabelle: dati organizzati su righe e colonne. 8 Settembre 10 Settembre Verdi Rossi 8 Settembre Tabella Tabelle Una tabella è una relazione se non ci sono righe ripetute. Una riga viene detta tupla Una colonna viene detta attributo. I nomi degli attributi individuano lo schema della relazione. Persona Verdi Rossi Data Appuntamento 8 Settembre 10 Settembre 8 Settembre Modello relazionale Schema flessibile Schema di relazione = nome della relazione + nomi di attributi Schema di DB = schemi di relazioni distinte Istanza di relazione = insieme di tuple conformi allo schema Istanza di DB = insieme di istanze di relazioni conformi allo schema di DB Il modello relazionale consente solo schemi fissati a priori. Talvolta sarebbe preferibile uno schema più flessibile. Valori nulli o mancanti NULL Chiavi Chiave - Superchiave Chiave = insieme di attributi che permettono di identificare univocamente le tuple della relazione. Motivazione: indicizzazione delle tabelle Chiave banale: l insieme di tutti gli attributi. Superchiave (o chiave candidata) = insieme K di attributi tale che t 1, t 2, t 1 [K] = t 2 [K] t 1 = t 2. Chiave = insieme K di attributi tale che: K è superchiave. Ogni insieme K 1 K non è superchiave.

9 Chiavi Vincoli Ogni tabella deve avere una chiave. Definire una chiave per ogni tabella è parte del disegno di un DB. Tale chiave viene detta primaria e non sono ammessi valori nulli. intrarelazionali: riguardano una sola relazione. Su un singolo valore. Su una singola tupla. Interessano l intera relazione (es. esistenza di una chiave primaria). Vincoli Esempio di Vincolo interrelazionali: coinvolgono più relazioni. Vincoli di integrità: riguardano due relazioni R 1, R 2, ed un insieme X di attributi di R 1. Tale vincolo è soddisfatto se t 1 [X] R 1, t 2 R 2, t.c. t 1 [X] = t 2 [K] con K chiave di R 2. Studente Matricola Anagrafica Esame Corso Data Voto Matr. Studente Docente Esame=R 1, Studente=R 2, Matr. Studente=X, Matricola=K. Normalizzazione Ridondanza Il disegno di un database non è unico Ma alcuni disegni sono meglio di altri Corso Data Voto Matr Docente Dipendenza funzionale fra Corso e Docente Problemi Dipendenza funzionale Più tuple devono essere aggiornate per cambiare una informazione. Maggiore rischio di fallimento della transizione. Alcune operazioni non sono possibili singolarmente Sia R una relazione, e siano X, Y due sottoinsiemi degli attributi di R, con X Y = e X, Y, X Y se t 1 (X) = t 2 (X) t 1 (Y ) = t 2 (Y ).

10 Proprietà Forme normali Sia R una relazione, K una chiave di R e Y un sottoinsieme degli attributi di R con Y K =, Y, allora K Y Sia R una relazione e siano X i Y i le sue dipendenze funzionali con X i Y i = R è in forma normale di Boyce e Codd se ogni X i è superchiave di R. Normalizzazione Decomposizione senza perdita È il processo con cui si ottiene un database equivalente, ma dove tutte le relazioni sono in forma normale. Idea: ogni dipendenza funzionale suggerisce una nuova relazione. Realizzazione: spezzare una relazione in più relazioni, in modo da garantire che per ogni dipendenza funzionale X i Y i, X i sia superchiave. Supponendo di decomporre R in R 1 e R 2 Inoltre X, X 1, X 2 sono i rispettivi insiemi di nomi degli attributi delle relazioni. Sia A = X 1 X 2, allora la decomposizione è senza perdita se R = R 1 (A) R 2 (A). Conservazione delle dipendenze Decomposizione Impossibile Per ogni dipendenza funzionale X Y deve esistere una relazione che contenga (come schema) X Y Sia R una relazione e sia X Y. Se lo schema di R è X Y allora R non è decomponibile senza perdita e mantenendo le dipendenze. Forme normali Algebra relazionale Sia R una relazione e siano X i Y i le sue dipendenze funzionali con X i Y i = R è in terza forma normale se, per ogni i X i è superchiave di R oppure ogni attributo di Y i è contenuto in una chiave di R. È sempre possibile decomporre un insieme di relazioni in terza forma normale. Linguaggio imperativo (procedurale) di interrogazioni Argomenti delle operazioni: relazioni Risultati delle operazioni: relazioni Composizione delle interrogazioni

11 Proiezione Proiezione Permette di isolare degli attributi di una relazione Permette di isolare delle colonne di una tabella. Sintassi: π A (R), Pro A (R) Persona Verdi Rossi π Persona (R) Data Appuntamento 8 Settembre 10 Settembre 8 Settembre Selezione Selezione Permette di isolare delle tuple di una relazione Permette di isolare delle righe di una tabella. Sintassi: σ A=valore (R), Sel A=valore (R) dove A è un attributo di R (a livello di schema) e valore è uno dei possibili valori di A. Persona Data Appuntamento 8 Settembre 10 Settembre Verdi Rossi 8 Settembre σ Persona=Rossi (R) Operazioni insiemistiche Unione unione di due insiemi intersezione di due insiemi differenza di due insiemi Permette di fondere due relazioni conformi Due relazioni sono conformi se hanno stesso schema Il risultato ha stesso schema degli argomenti, e come tuple l unione (insiemistica) delle tuple degli argomenti Sintassi R 1 R 2 Unione Unione R 1Persona R 2Persona Verdi Data Appuntamento 8 Settembre Data Appuntamento R 1 R 2 Persona Verdi Data Appuntamento 8 Settembre

12 Intersezione Intersezione Permette di estrarre l informazione comune a due relazioni conformi Due relazioni sono conformi se hanno stesso schema Il risultato ha stesso schema degli argomenti, e come tuple l intersezione (insiemistica) delle tuple degli argomenti Sintassi R 1 R 2 R 1Persona R 2Persona Verdi Data Appuntamento 8 Settembre Data Appuntamento Intersezione Differenza R 1 R 2 Persona Data Appuntamento Permette di estrarre l informazione unicamente presente nella prima di due relazioni conformi Due relazioni sono conformi se hanno stesso schema Il risultato ha stesso schema degli argomenti, e come tuple la differenza (insiemistica) delle tuple degli argomenti Differenza Differenza Sintassi R 1 R 2 La differenza non è commutativa. R 1Persona R 2Persona Verdi Data Appuntamento 8 Settembre Data Appuntamento Differenza Ridenominazione R 1 R 2 Persona Data Appuntamento 8 Settembre Permette di cambiare un nome di attributo. Sintassi ρ A2 A 1 (R), Ridenom A2 A 1 (R).

13 Join Join Permette di esaminare due tabelle, sfruttando informazioni ivi contenute ed eventuali vincoli di integrità. Operatore più importante (e computazionalmente costoso) per la descrizione di interrogazioni. Join interno o naturale (attributi con stesso nome) Join esterno: sinistro, destro, bilaterale Equi Join interno o naturale (attributi scelti) Join Join Date due relazioni R 1, R 2 ed un attributo A 1, A 2 per ogni relazione, si ottiene una nuova relazione ottenuta fondendo R 1 e R 2 dove A 1 e A 2 hanno stesso valore. Sintassi R 1 (A 1 ) R 2 (A 2 ) R 1 (A 1 ) R 2 (A 2 ) = {t 1 t 2 : t 1 R 1, t 2 R 2, t 1 (A 1 ) = t 2 (A 2 )} Schema di R 1 (A 1 ) R 2 (A 2 ) Schema di R 1 Schema di R 2 - {A 1, A 2 } {A} Join Join R 1Matricola Anagrafica 1 Rossi Mario 2 Verdi Giovanni 3 Annalisa R 2Corso Data Voto Matr Docente R 1 (Matricola) R 2 (Matr) M Anagrafica Corso Data Voto Docente 2 Verdi Giovanni Verdi Giovanni Annalisa Join Esterno Join R 1 R R 2 R 1 L R 2 R 1 F R 2 Simile al join naturale, ma vengono tenute tutte le tuple di una relazione (o di entrambe). Join esterno sinistro: si tengono tutte le tuple di R 1. Join esterno destro: si tengono tutte le tuple di R 2. Join esterno completo: si tengono tutte le tuple di R 1 e R 2.

14 Join Esterno Sinistro Join R 1 (Matricola) R 2 (Matr) M Anagrafica Corso Data Voto Docente 1 Rossi Mario NULL NULL NULL NULL 2 Verdi Giovanni Verdi Giovanni Annalisa è commutativa è associativa Interrogazione Passaggio alle relazioni Formula del calcolo relazionale Espressione dell algebra relazionale. Entità = Tabella con stessi attributi Relazione = Tabella con chiavi delle entità coinvolte Esempio Raffinamento schemi Studente Esame Corso matricola cognome nome data voto codice nome Rimozione delle ridondanze Riclassificazione dei concetti (unire o dividere entità/relazioni) Scelta chiave primaria STUDENTE (Matricola, Nome, Cognome) CORSO (Codice, Nome) ESAME (Studente, Corso, Data, Voto) Riclassificazione Scelta delle chiavi Unire delle entità (legate da generalizzazione) Trasformare generalizzazione in relazione Eliminazione attributi multivalore Attributi che non ammettono valori nulli Un attributo che si presume venga utilizzato frequentemente.

15 Progettazione logica Passaggio alle relazioni Schema ER Schema ER raffinato Relazioni Entità = Tabella con stessi attributi Relazione = Tabella con chiavi delle entità coinvolte Ridenominazione per evitare ambiguità Relazione uno a molti = unica tabella con la prima entità Relazione uno a uno = come uno a molti, ma può essere unita sia alla prima che alla seconda entità. SQL SQL Linguaggio di definizione dei dati (DDL): operazioni su schemi Linguaggio di manipolazione dati (DML): operazioni su istanze, interrogazioni Linguaggio procedurale (o imperativo) Vari standard, SQL-89, SQL-92, SQL-99 Domini elementari Domini elementari Carattere: character [varying] (lunghezza) Bit (0/1): bit [varying] (lunghezza) Numeri: numeric, decimal, integer, float Tempo: date, time Dati arbitrari: blob, clob Vero/Falso: boolean Definizione schema Creazione tabella Schema: create schema Tabella: create table Dominio: create domain create table persona ( ID integer primary key, nome char(20), cognome char(40) )

16 Vincoli intrarelazionali Creazione tabella: default variabile not null, variabile unique, unique (variabile1,variabile2) primary key not null, unique create table persona ( ID integer primary key, nome char(20), secondonome char(20) default null, cognome char(40) ) Creazione tabella: not null Vincoli integrità create table persona ( ID integer primary key, nome char(20), secondonome char(20) default null, cognome char(40) not null ) Se non è NULL allora lo stesso valore deve apparire in attributi unique di un altra tabella. Un attributo: references Più attributi: foreign key Vincoli integrità Esercizio on update on delete cascade, set null, set default, no action variabile references var2 on delete cascade Creare le tabelle che seguono, scegliendo opportunamente i domini ed i vincoli: Esame: ID corso, ID studente, ID docente, voto, data Corsi: ID corso, nome corso Soluzione Soluzione create table corsi ( ID integer primary key, nome varchar(100) not null ) create table esame ( ID_corso integer not null references corsi(id), ID_studente integer not null references studente(id), ID_docente integer not null references docente(id), voto integer not null, data date not null, primary key (ID_corso,ID_studente) )

17 Vincoli intrarelazionali Inserimento dati create table esame ( ID_corso integer not null references corsi(id), ID_studente integer not null references studente(id), ID_docente integer not null references docente(id), voto integer not null, data date not null, primary key (ID_corso,ID_studente), check (voto >=18 AND voto<=30) ) INSERT INTO tabella (lista campi) VALUES (lista valori) INSERT INTO corsi (ID, nome) VALUES (1, Inf. Gen. ) Aggiornamento dati Aggiornamento schemi Modifica: update Aggiunta: insert into Rimozione: delete from Modifica: alter domain, alter table Aggiunta: add column Rimozione: drop column, drop table Inserimento dati Indice ALTER TABLE corsi ADD COLUMN anno integer not null CREATE INDEX "nome_indice" ON "tabella(campo)" ALTER TABLE corsi ALTER COLUMN anno integer SET DEFAULT 2000 CREATE INDEX "anagrafica_indice" ON "persone(cognome, nome)" ALTER TABLE corsi RENAME COLUMN anno annoaccademico Interrogazioni in SQL Interrogazioni in SQL: 1 tabella La definizione dello schema e dei dati è stata imperativa. La definizione delle interrogazioni è dichiarativa. select attributi from tabella where condizione

18 Interrogazioni: esempi Interrogazioni: esempi create table esami ( matricola integer, nome varchar(20), cognome varchar(20), corso varchar(20), voto integer, data date not null, primary key (corso,matricola,data) ) Tutte le tuple (e tutti i campi) della tabella: SELECT * Il voto è NULL se l esame è stato fallito. Interrogazioni: esempi Interrogazioni: esempi Tutte le tuple, ma solo nome e cognome, della tabella: SELECT nome, cognome Sono possibili righe ripetute Tutte le tuple, ma solo nome e cognome, della tabella: SELECT DISTINCT nome, cognome Interrogazioni: esempi Interrogazioni: esempi Tutte le tuple, ma solo nome e cognome e voto su 110: SELECT nome, cognome, voto*11/3 AS voto110 Tutte le tuple, ma solo nome e cognome, della tabella: SELECT DISTINCT nome, cognome Interrogazioni: esempi Interrogazioni: esempi Nome e cognome di chi ha sostenuto Inf. Gen. SELECT nome, cognome WHERE corso = Inf. Gen. Quanti hanno sostenuto Inf. Gen. SELECT COUNT(*) WHERE corso = Inf. Gen. Altre funzioni sono: MIN, MAX, SUM, AVG

19 Interrogazioni: esempi Interrogazioni: esempi Nome e cognome di chi ha preso almeno 27 in Inf. Gen. SELECT nome, cognome WHERE corso= Inf. Gen. AND voto>=27 Nome e cognome di chi ha fallito almeno una volta Inf. Gen. SELECT nome, cognome WHERE corso= Inf. Gen. AND voto IS NULL Viste Interrogazioni: 2 tabelle Una vista è una tabella virtuale. CREATE VIEW vista_esami(nome, cognome) AS SELECT nome, cognome WHERE corso = Inf. Gen. AND voto>=27 create table studenti ( matricola integer primary key, nome varchar(20), cognome varchar(20) ) create table esami ( ID_studente integer references studenti(matricola), corso varchar(20), voto integer, data date not null, primary key (corso,matricola,data) ) Interrogazione su 2 tabelle Interrogazione su 2 tabelle Nome e cognome di chi ha sostenuto Inf. Gen. SELECT nome, cognome FROM studenti JOIN esami ON studenti.matricola=esami.id_studente WHERE corso = Inf. Gen. Situazione di ogni studente per quanto riguarda Inf. Gen. SELECT nome, cognome FROM studenti LEFT JOIN esami ON studenti.matricola=esami.id_studente WHERE corso = Inf. Gen. Tipi Join Opzioni aggiuntive query Interno: JOIN Esterno sinistro: LEFT JOIN Esterno destro: RIGHT JOIN Esterno completo: FULL JOIN GROUP BY permette di raggruppare rispetto ad un insieme di attributi HAVING simile a clausola WHERE

20 Esempio Esempio Quanti esami ha sostenuto ogni studente? SELECT matricola, nome, cognome, count(*) FROM studenti JOIN esami ON studenti.matricola=esami.id_studente GROUP BY matricola Chi ha superato almeno 10 esami? SELECT matricola, nome, cognome FROM studenti JOIN esami ON studenti.matricola=esami.id_studente WHERE voto IS NOT NULL GROUP BY matricola HAVING count(*)>=10 Subselect Subselect: any Mostrare ogni esame sostenuto da chi si chiama Rossi La clausola where contiene una o più condizioni. Un membro della condizione può contenere una SELECT Costrutti ANY, NOT IN, EXISTS SELECT ID_studente, voto, corso FROM studenti, esami WHERE ID_studente = ANY (SELECT studenti.matricola FROM studenti WHERE cognome= Rossi ) Subselect: all Subselect: not in Chi ha ottenuto il voto massimo in Inf. Gen.? SELECT nome, cognome FROM studenti JOIN esami ON esami.id_studente = studenti.matricola HAVING esami.voto >= ALL (SELECT max (voto) WHERE corso= Inf.Gen. ) Chi ha superato Inf. Gen., ma non Matematica I? SELECT nome, cognome FROM studenti JOIN esami ON esami.id_studente = studenti.matricola WHERE corso= Matematica I AND voto IS NOT NULL AND esami.id_studente NOT IN (SELECT ID_studente WHERE corso= Matematica I AND voto IS NOT NULL) Alias Select con variabili Chi ha superato Inf. Gen., ma non Matematica I? FROM Tabella T1, Tabella T2 T1, T2 sono due copie distinte di Tabella SELECT nome, cognome FROM studenti S JOIN esami E ON E.ID_studente = S.matricola WHERE corso= Matematica I AND voto IS NOT NULL AND E.ID_studente NOT IN (SELECT ID_studente WHERE corso= Matematica I AND voto IS NOT NULL)

21 Esercizio Esercizio Chi è l autore più venduto dello scorso mese di Novembre? CREATE VIEW vista_autori (id_persona,nome,cognome, copie) AS SELECT DISTINCT id_persona,nome, cognome, sum(numero) FROM autore, ha_scritto, libro, vendite, fatture_vendite WHERE autore.id_persona=ha_scritto.autore AND ha_scritto.libro = libro.isbn AND libro.isbn=vendita.libro AND vendita.fattura=fattura.numero AND fattura.data>= 01/11/2001 AND fattura.data<= 30/11/2001 Chi è l autore più venduto dello scorso mese di Novembre? SELECT id_persona,nome,cognome, copie FROM vista_autori WHERE copie >= ALL (SELECT copie FROM vista_autori) Ordinamento - Ricerca Trigger L opzione ORDER BY ordina L operatore LIKE permette una ricerca testuale Evento: modifica, inserimento o cancellazione Condizione Azione: da intraprendere sulla base di dati Sintassi Trigger Trigger: sintassi II CREATE TRIGGER nome AFTER BEFORE azione ON tabella FOR EACH ROW STATEMENT istruzioni da eseguire AFTER BEFORE: indica se l azione del trigger venga prima o dopo l evento. FOR EACH ROW STATEMENT: l azione del trigger deve essere eseguita una sola volta o per ogni tupla interessata azione può essere INSERT, UPDATE o DELETE. Trigger: variabili Sicurezza Alcune variabili sono predefinite: old: la riga interessata, prima dell evento. new: la riga interessata, dopo l evento. old_table: la tabella interessata, prima dell evento. new_table: la tabella interessata, dopo l evento. Più utenti possono accedere alla base di dati. Il DBMS deve avere il concetto di utente CREATE USER, DROP USER

22 Controllo accesso Transazioni Concedere la possibilità di scrivere o leggere tabelle o database: GRANT Togliere la possibilità di scrivere o leggere tabelle o database: REVOKE Ogni azione considere i permessi di lettura (READ), inserimento (INSERT), aggiornamento (UPDATE), cancellazione (DELETE) Sequenza di operazioni: una operazione virtuale ACID: Atomicità, Consistenza, Isolazione, Persistenza. BEGIN COMMIT Ogni transazione completa con successo o fallisce Transazione Locking Una transazione è una operazione elementare (lettura/scrittura) sulla base di dati Una transazione deve essere Atomica, Consistente, Isolata, Definitiva (Persistente) Si evitano accessi (in scrittura) contemporanei ammettendo un solo client alla scrittura dei dati interessanti. Table locking: ogni volta che bisogna modificare un dato, tutta la tabella viene riservata. Row locking: quando si modifica un dato, la tupla interessata viene riservata. Contronto Lock Stati della transazione Table locking: per scrivere potrebbe essere necessario attendere più a lungo. Row locking: interrrogazioni complesse in lettura potrebbero essere influenzate da una scrittura (es. somma dei valori in una colonna). Due alternative, modificare il risultato dell interrogazione o ritardare la scrittura. Begin: segnala l inizio della transizione Commit: la transazione è stata completata con successo Abort: la transazione non è completabile Gestione transazioni Commit a 2 fasi La transazione può fallire a causa di conflitti o problemi esterni File di log (registro operazioni) Scrivere sul registro prima di iniziare l operazione. Scrivere sul registro prima di completare l operazione. Protocollo di commit a due (o più) fasi Si elegge un coordinatore che: 1 invia a tutti i partecipanti VOTE REQUEST 2 attende i voti dei partecipanti 3 se tutti i voti sono YES allora invia COMMIT a tutti 4 altrimenti invia ABORT a tutti 5 Se si incorre in timeout invia ABORT a tutti

23 Commit a 2 fasi OLTP - OLAP Ogni partecipante: 1 attende VOTE REQUEST 2 invia il proprio voto al coordinatore 3 se il voto è NO allora ABORT 4 altrimenti attende la decisione dal coordinatore 5 esegue la decisione ABORT 6 Se si incorre in timeout ABORT OLTP On Line Transaction Processing: i dati sono aggiornati continuamente, stato attuale dei dati OLAP On Line Analytical Processing: dedicato all analisi dei dati, utilizzo dei dati storici Data Warehouse Data Warehouse Dati integrati, provenienza eterogenea Dati Storici Dati aggregati, più tuple del DB vengono accorpate Separato dal DB, su un altra macchina. Aggiornamento periodico, non in sincronia col DB 1 Sorgente dei dati, i dati ottenuti devono essere puliti 2 Data Warehouse server 3 ETL, Extraction, Transformation, Loading. Come passare dalla sorgente dei dati al DW server 4 Strumenti di analisi Modello multidimensionale Esempio Fatto, cosa si vuole misurare Dimensione, una variabile analizzata Misura, valutazione di un fatto. Numero Dati di vendita di un supermercato, aggregati per punto di vendita e giorno. Fatto: vendite Dimensioni: Giorno, punto di vendita, prodotto, marca,... Misura, valutazione di un fatto. Numero DW nel modello relazionale Licenza d uso Schema a stella tabella dei fatti, centrale e normalizzata, chiave = insiemi vincoli di integrità tabelle delle dimensioni, periferiche, non normalizzate, chiave di un attributo costruzione di tutti gli indici possibili Quest opera è soggetta alla licenza Creative Commons: Attribuzione-Condividi allo stesso modo Sei libero di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire, recitare e modificare quest opera alle seguenti condizioni: Attribuzione Devi attribuire la paternità dell opera nei modi indicati dall autore o da chi ti ha dato l opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l opera. Condividi allo stesso modo Se alteri o trasformi quest opera, o se la usi per crearne un altra, puoi distribuire l opera risultante solo con una licenza identica o equivalente a questa.

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Basi di dati attive Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Tali regole vengono attivate in modo automatico al verificarsi

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

Dettagli

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza Definizione 1 Lezione 2 Le basi di dati Gli archivi di dati Organizzato in modo integrato attraverso tecniche di modellazione di dati Gestiti su memorie di massa Con l obiettivo Efficienza trattamento

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab

Dettagli

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970. Modello Relazionale Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970. } modello dei dati insieme di strutture dati e regole logico ) strutture disponibili

Dettagli

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale. Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1 Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,

Dettagli

Normalizzazione. Definizione

Normalizzazione. Definizione Normalizzazione Definizione Le forme normali 2 Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la qualità, cioè l'assenza di determinati difetti Quando una relazione

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo

Dettagli

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com

Dettagli

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base

Dettagli

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Basi di dati attive : regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Oggi fanno parte dello standard SLQ-99 In passato ogni DBMS li implementava seguendo

Dettagli

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio Relazioni e tabelle Introduzione alle Basi di Dati Relazionali Nelle Basi di Dati relazionali le informazioni sono organizzate in tabelle Le tabelle sono rappresentate mediante griglie suddivise in colonne

Dettagli

Parte III. L algebra relazionale

Parte III. L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

Dettagli

Componenti di un DBMS

Componenti di un DBMS Componenti di un DBMS Come fa un DBMS a garantire le proprietà ACIDe di una transazione? Vediamo i componenti principali dal più interno a quello di più alto livello: Controllore di Concorrenza Gestore

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive Note introduttive Il metodo di lavoro proposto ripercorre il ciclo di vita di un sistema informativo automatizzato attraverso l analisi, il progetto, la realizzazione e il testing. Il sistema informativo

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 26/07/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere

Dettagli

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione Introduzione Modello Relazionale Concetti e definizioni 1 Modello proposto nel 1970 da E.F. Codd A relational model for large shared data banks Communications of the ACM Vol. 13, n. 6, pagg. 377-387 Prime

Dettagli

OR true null false true true true true null true null null false true null false NOT

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

Introduzione. i trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne.

Introduzione. i trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne. Trigger Introduzione L introduzione di trigger all interno di una Base di Dati permette la gestione automatica di particolari procedure in risposta a determinati eventi esterni; Basi di Dati di questo

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

Il linguaggio SQL: le viste

Il linguaggio SQL: le viste Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione

Dettagli

Cap. 1-I 1 I sistemi informatici

Cap. 1-I 1 I sistemi informatici Libro di testo A. Chianese,V. Moscato, A. Picariello, L. Sansone Basi di dati per la gestione dell informazione McGraw-Hill, 2007 Informazioni sul corso http://www.docenti.unina.it/lucio.sansone Ricevimento

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione ModelloEntity-Relationship. E-R E il modello concettuale più diffuso Fornisce costrutti per descrivere le

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

BASI DATI: algebra relazionale

BASI DATI: algebra relazionale BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Basi di Dati prof. Letizia Tanca

Basi di Dati prof. Letizia Tanca Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini

Dettagli

SQL Sintassi Dei Comandi

SQL Sintassi Dei Comandi SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la

Dettagli

Le Basi di Dati Attive

Le Basi di Dati Attive Le Basi di Dati Attive Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 5 Appunti dalle lezioni SQL in Linguaggi di programmazione L uso diretto dell interprete SQL è tipicamente

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

Il linguaggio SQL: DDL di base

Il linguaggio SQL: DDL di base Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,

Dettagli

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti. Tempo a disposizione: un ora e 45 minuti. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la relazione Stipendi(Matricola,StipLordo,Tasse,Netto,OK) Spiegare (sinteticamente ma in modo chiaro) quali

Dettagli

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Domande utili alla preparazione dell orale di Informatica all Esame di Stato Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre

Dettagli

Laboratorio di Basi di Dati Per Bioinformatica

Laboratorio di Basi di Dati Per Bioinformatica Laboratorio di Basi di Dati Per Bioinformatica Laurea in Bioinformatica - A.A. 2010/11 Docente: Carlo Combi Email: carlo.combi@univr.it Lezione 1 SQL Structured Query Language SQL è stato definito nel

Dettagli

Il modello relazionale

Il modello relazionale Il modello relazionale Il modello relazionale Modello logico dei dati Basato sul concetto di relazione o tabella Relazione: da teoria degli insiemi 2 Il modello relazionale Garantisce indipendenza fisica

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 4 Giugno 2007 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta

Dettagli

SQL - Tipi di dato Il linguaggio SQL

SQL - Tipi di dato Il linguaggio SQL SQL - Tipi di dato Il linguaggio SQL I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined ci concentreremo sui tipi predefiniti i tipi predefiniti sono suddivisi

Dettagli

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici Il linguaggio SQL Il linguaggio SQL il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è diventato

Dettagli

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Triggers Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

Dettagli

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog. Compito Sistemi Informativi. Tempo concesso : 90 minuti 10 gennaio 2012 Nome: Cognome: Matricola: Crediti: [6] [9] Esercizio 1 (punti 6+2) Si considerino le seguenti specifiche relative alla realizzazione

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE Dato il seguente schema E/R E la sua traduzione nel seguente schema relazionale: disponibile in http://www.dbgroup.unimo.it/sire/20110513/20110513.bak Viene richiesto di 1) Risolvere la seguente interrogazione

Dettagli

OBIETTIVI DELL'ESERCITAZIONE

OBIETTIVI DELL'ESERCITAZIONE Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2005/2006 Esercitazione su SQL Giuseppe De Giacomo Domenico Lembo OBIETTIVI DELL'ESERCITAZIONE Creare schema

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

Ciclo di vita di un sistema informativo

Ciclo di vita di un sistema informativo Ciclo di vita di un sistema informativo 1) Studio di fattibilità definire, in maniera per quanto possibile precisa, i costi delle varie alternative possibili stabilire le priorità di realizzazione delle

Dettagli

Modello Relazionale. Architettura a tre livelli di un DBMS

Modello Relazionale. Architettura a tre livelli di un DBMS Modello Relazionale Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970. modello dei dati insieme di strutture dati e regole ) logico strutture disponibili su

Dettagli

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011 Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse

Dettagli

SQL Laboratorio di Basi di Dati a.a. 2002/2003

SQL Laboratorio di Basi di Dati a.a. 2002/2003 1 SQL Laboratorio di Basi di Dati a.a. 2002/2003 dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 2 Cos'è SQL? Linguaggio di riferimento per le basi di dati relazionali

Dettagli

Il linguaggio SQL: trigger

Il linguaggio SQL: trigger Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati Microsoft Access Programma applicativo del pacchetto Microsoft Office per la gestione delle basi di dati. Microsoft Access 2 Creazione base di dati Apertura di una base dati Una nuova base dati si crea

Dettagli

Modello Entità-Relazione (E-R)

Modello Entità-Relazione (E-R) Modello Entità-Relazione (E-R) Modello concettuale di dati. Fornisce una serie di strutture (costrutti) per descrivere un problema in modo chiaro e semplice. I costrutti vengono utilizzati per definire

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

Informatica e Bioinformatica: Basi di Dati

Informatica e Bioinformatica: Basi di Dati Informatica e Bioinformatica: Date TBD Bioinformatica I costi di sequenziamento e di hardware descrescono vertiginosamente si hanno a disposizione sempre più dati e hardware sempre più potente e meno costoso...

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Basi di Dati e Sistemi Informativi. Structured Query Language

Basi di Dati e Sistemi Informativi. Structured Query Language Basi di Dati e Sistemi Informativi Structured Query Language Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio

Dettagli

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Algebra Relazionale 1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale supporta LI semplici

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli