Basi di dati T2/2006-2007
Indice
- 1 Orari delle lezioni
- 2 Scaglione alfabetico
- 3 Professore
- 4 Sito del corso
- 5 Materiale didattico
- 6 Modalità d'esame
- 7 Diario del corso
- 7.1 Lezioni fino all'11/10/2006
- 7.2 Lezione del 12/10/2006
- 7.3 Lezione del 17/10/2006
- 7.4 Lezione del 18/10/2006
- 7.5 Lezione del 19/10/2006
- 7.6 Lezione del 24/10/2006
- 7.7 Lezione del 25/10/2006
- 7.8 Lezione del 26/10/2006
- 7.9 Lezione del 31/10/2006
- 7.10 Lezione del 01/11/2006
- 7.11 Lezione del 02/11/2006
- 7.12 Lezione del 07/11/2006
- 7.13 Lezione del 08/11/2006
- 7.14 Lezione del 09/11/2006
- 7.15 Lezione del 14/11/2006
- 7.16 Lezione del 15/11/2006
- 7.17 Lezione del 16/11/2006
- 7.18 Lezione del 21/11/2006
- 7.19 Lezione del 22/11/2006
- 7.20 Lezione del 23/11/2006
- 7.21 Lezione del 28/11/2006
- 7.22 Lezione del 29/11/2006
- 7.23 Lezione del 30/11/2006
- 7.24 Lezione del 5/12/2006
- 7.25 Lezione del 6/12/2006
- 7.26 Lezione del 7/12/2006
- 7.27 Lezione del 12/12/2006
- 7.28 Lezione del 13/12/2006
- 7.29 Lezione del 14/12/2006
- 7.30 Lezione del 19/12/2006
- 7.31 Lezione del 21/12/2006
- 7.32 Lezione del 09/01/2007
- 7.33 Lezione del 10/01/2007
- 7.34 Lezione del 11/01/2007
- 7.35 Lezione del 16/01/2007
- 7.36 Lezione del 17/01/2007
- 7.37 Lezione del 18/01/2007
Orari delle lezioni
- Martedì, 17:45-19:15, aula Beta
- Mercoledì, 17:45-19:15, aula Beta
- Giovedì, 17:45-19:15, aula Beta
Scaglione alfabetico
Il turno 2 comprende gli studenti nello scaglione H-Z
Professore
Sito del corso
Materiale didattico
Corso
Testo di riferimento:
- Sistemi di basi di dati - Fondamenti (4 ed.)
- (Parte di sicurezza): fotocopie in copisteria di "Database security"
Altri testi utili:
- P.Atzeni, S. Ceri, S. Paraboschi, R. Torlone 'Basi di dati, II Edizione', McGraw-Hill, 1999.
Corrispondenze programma/testi
(Prima parte del corso)
Programma prima prova in itinere
(Seconda parte)
- Capitoli x , y , z di Sistemi di basi di dati - Fondamenti (4 ed.) - da finire
- Capitoli x y e z di Database Security (presumibilmente = fotocopie in copisteria) - da finire
Laboratorio
Testi consigliati:
- L. Welling, L. Thomson 'MySQL Tutorial', Pearson-Addison Wesley, 2004.
- David Sklar 'PHP 5 - Elementi di programmazione', McGraw-Hill, 2005.
- A. Gutmans, S. Bakken, D. Rethans 'PHP 5 Guida Completa', Apogeo, 2005.
Materiale scaricabile
- Programma del corso
- Appelli d'esame
- Database di esempio presente sul libro
- Lucidi su algebra relazionale
- Esercitazione di algebra relazionale
- Alcuni lucidi di laboratorio
- Lucidi dell'esercitazione SQL
- Esempi SQL visti a lezione
- Lucidi su normalizzazione e progettazione fisica
- Testi appelli d'esame(06/2005,07/2005,01/2006,04/2006)
Modalità d'esame
L'esame consiste in una prova scritta, una (eventuale) discussione orale e nello svolgimento di un progetto di laboratorio.
Prova scritta Consiste di una parte A con domande di teoria e di una parte B con esercizi.
Discussione orale Per risultati fino a 24/30, SI CONFERMA DIRETTAMENTE il risultato della prova scritta. Per votazioni superiori a 24/30 OCCORRE SOSTENERE la prova orale per la conferma del voto; in caso contrario si intende confermata la votazione di 24/30.
Svolgimento di un progetto: vedere la sezione Progetto
Svolgimento dell'esame: che cosa bisogna fare Lo studente deve iscriversi OBBLIGATORIAMENTE VIA SIFA all'appello d'esame che intende sostenere. Lo studente che si iscrive ad un appello d'esame per sostenere lo scritto DEVE consegnare anche il progetto il giorno stesso dell'esame. Gli studenti che sostengono l'esame mediante le prove in itinere potranno consegnare il progetto entro e non oltre l'appello di Aprile.
IMPORTANTE. Qualora uno studente non superasse lo scritto, il progetto consegnato verrà corretto. I progetti sufficienti avranno validità un anno a decorrere dall'appello di consegna.
Progetto
Progetti di laboratorio
I progetti per l'Anno Accademico 2006-2007 verranno comunicati durante il corso.
Svolgimento dei progetti
Il progetto può essere svolto in gruppi di non più di 3 studenti. Può essere sviluppato su propri PC o presso i laboratori didattici, ma l'applicazione dovrà essere visionabile su un calcolatore portatile o on-line in sede d'esame. Per la valutazione dell’elaborato avrà luogo un apposito colloquio a cui tutti i membri del gruppo sono tenuti a partecipare. In casi giudicati eccezionali, e' anche possibile proporre un progetto alternativo. In questo caso dovrà essere inviata una email ai docenti allegando una descrizione della proposta di circa 2 pagine. La proposta sarà valutata dai docenti per l'eventuale accettazione.
Consegna dei progetti
Il progetto deve essere consegnato entro la data dell'appello d'esame scritto che lo studente intende sostenere. Il materiale deve essere consegnato entro la scadenza al prof. Ferrara durante il suo orario di ricevimento. In alternativa, il materiale può essere lasciato entro la scadenza nella casella postale del prof. Ferrara accanto alla portineria del dipartimento in via Comelico, 39. I progetti consegnati saranno corretti secondo un calendario di correzione che verrà pubblicato per ogni appello d'esame su questo sito. I progetti sufficienti avranno validità UN ANNO a decorrere dall'appello di consegna.
Diario del corso
Lezioni fino all'11/10/2006
- introduzione al DBMS (è un sistema software che serve per manipolare condividere etc.... basi di dati)
- obbiettivi del DBMS (efficienza, gestione della concorrenza, funzionalità di salvataggio e ripristino dei dati, gestione delle interrogazioni in modo efficiente, garantire protezione dei dati)
- DBMS gestisce dati e metadati
Perchè usare una BD (base di dati)
Varie figure di utenza con accesso al database DBA (database administrator, utenti occasionali, utenti registrati etc...)
- Modello dei dati
- Differenza tra associazione e relazione di dati
Lezione del 12/10/2006
Schema e istanza
- definizione di intensionale estensionale
- insieme delle istanze
- stato della base di dati
Livelli
- livello esterno (sono le viste)
- livello logico (sono le tabelle)
- livello interno (sono i file)
note: quindi DBMS lavora su 3 livelli
Indipendenza
- indipendenza dei dati
- indipendenza logica
I linguaggi
- DDL (scrive il catalogo "metadati" )
- DML (scrive i dati ed interroga la BD) è un linguaggio di query
- UDL viste esterne
note: SQL li incorpora entrambi (DDL e DML)
Classificazione dei DBMS
- In base al modello dei dati:
- relazionali,
- object-oriented,
- reticolari,
- gerarchici,
- object relational
- In base al n° di utenti:
- mono utente (es: access)
- multi utente
- In base al n° di siti in cui la BD è distribuita:
- BD centralizzata (tutto su un solo server)
- BD distribuita (BD su molteplici server) ogni transizione coinvolge più server, c'è da risolvere il problema della concorrenza
Lezione del 17/10/2006
- Il fondamento del modello relazionale è una relazione matematica fra domini + un insieme di domini
- Definizione di schema, attributo, schema di relazione, schema di basi di dati, istanza di relazione, istanza di basi di dati.
- Problema dei dati incompleti: l'operatore NULL
Lezione del 18/10/2006
Vincoli
- Intrarelazionali
- su valori
- di ennupla
- di dominio
- Interrelazionali
Chiave
- Definizione
- Superchiave
- Chiave primaria
Integrità referenziale (definizione)
Tipi di attributo
- semplice (atomico)
- multivalore
- strutturato
Prima forma normale (definizione)
Lezione del 19/10/2006
non ero presente, mi riferiscono
Le operazioni sul database (Theta join, join naturale, selezione, proiezione..)
Lezione del 24/10/2006
- Outer Join
- Regole di trasformazione
- Atomizzazione delle selezioni
- Commutatività della selezione
- Idempotenza delle proiezioni
- Anticipazione della selezione rispetto al Join
- Anticipazione della proiezione rispetto al Join
- Conversione di 1 sequenza
- Esempi (presidenti americani)
Lezione del 25/10/2006
- Esempi (sempre sui presidenti americani)
- Accenno di SQL
- Domini
- CREATE SCHEMA (sintassi)
- CREATE TABLE (sintassi)
- Elementi dello schema
Lezione del 26/10/2006
ESERCITAZIONE
Lezione del 31/10/2006
- SQL
- Vincoli intrarelazionali
- NOT NULL
- UNIQUE
- PRIMARY KEY
- Vincoli interrelazionali
- Integrità referenziale
- FOREIGN KEY
- REFERENCES
- Politiche di risposta alla violazione del vincolo di integrità referenziale
- CASCADE
- SET NULL
- SET DEFAULT
- NO ACTION
- ... ON DELETE
- ... ON UPDATE
- Integrità referenziale
- CHECK
- CREATE DOMAIN
- Vincoli intrarelazionali
Lezione del 01/11/2006
VACANZA
Lezione del 02/11/2006
- DROP
- ALTER TABLE
- ALTER COLUMN
- ADD CONSTRAINT
- DROP CONSTRAINT
- ADD COLUMN
- DROP COLUMN
- Interrogazione: SELECT
- operatori della clausola WHERE
- <
- >
- <>
- =
- AND
- NOT
- OR
- BETWEEN X AND Y
- IN (LISTAVALORI)
- IS NULL
- LIKE
- EXISTS
- ridenominazione attributi: AS
- Alias: AS (nella condizione "FROM")
- operatori della clausola WHERE
Lezione del 07/11/2006
- Interrogazione
- ordinamento risultato: ORDER BY
- JOIN interni ed esterni
- (INNER) JOIN
- NATURAL JOIN
- OUTER JOIN (LEFT,RIGHT,FULL)
- operatori aggregati
- COUNT
- SUM
- MAX
- MIN
- AVG
- sintassi
- GROUP BY
- HAVING
Lezione del 08/11/2006
- Interrogazioni di tipo insiemistico
- UNION (Default/ALL)
- INTERSECT (Default/ALL)
- EXCEPT (Default/ALL)
- Interrogazioni nidificate
- ALL
- ANY
- Interrogazioni correlate
- EXISTS
- NOT EXISTS
Lezione del 09/11/2006
Ripasso lezione precedente
Lezione del 14/11/2006
- TRIGGERS
Ero assente, sorry.
Lezione del 15/11/2006
- Triggers
- SQL: manipolazione dati
- INSERT
- UPDATE
- DELETE
- Viste
- CREATE VIEW
- Problemi aggiornamento viste
Lezione del 16/11/2006
ESERCITAZIONE
Lezione del 21/11/2006
ESERCITAZIONE
Lezione del 22/11/2006
PREPARAZIONE ALLA PROVA IN ITINERE
Lezione del 23/11/2006
PROVA IN ITINERE
Lezione del 28/11/2006
- Progettazione
- Modelli
- concettuali
- logici
- Astrazione
- per classificazione (is-member-of)
- per aggregazione (is-part-of)
- per generalizzazione (is-a)
- Modello E-R
- Concetti Base
- Entità
- Relazione (o associazione)
- Cardinalità della relazione
- Attributo
- Concetti Base
Lezione del 29/11/2006
- Relazoni 1:1 1:n n:n
- Identificatore
- Interno
- Esterno
- Gerarchie di entità
- Specializzazione
- Generalizazione
- Proprietà delle gerarchie
- Totalità
- Disgiunzione
- Attributi composti
Lezione del 30/11/2006
Lezione di laboratorio n.1
- Comandi di PostgreSQL
Lezione del 5/12/2006
- Fasi della progettazione
- Raccolta dei requisiti
- Analisi dei requisiti
- Scegliere liv. astrazione
- Standardizzaz. struttura frasi
- Evitare frasi contorte
- Identificare sinonimi ed omonimi e disambiguare
- unificare sinonimi
- diversificare omonimi
- Costruire un glossario
- Progettaziuone concettuale
- Generazione schema E-R
- top-down
- bottom-up
- inside-out
- mista
- Qualità di 1 schema
- Leggibilità
- nomi comprensibili
- minimizzazione intersezioni
- Minimalità: eliminare la ridondanza
- Correttezza
- semantica
- sintattica
- Leggibilità
- Progettazione di transazioni
Lezione del 6/12/2006
- Gestione di sequenze
- CREATE SEQUENCE
- Nextval
- Curval
- Setval
- Catalogo composto da 3 schemi:
- Pg_catalog (database di sistema)
- Information_schema (metadati)
- Public (schema di default nuovi DB)
- Controllo dell'accesso: pg_hba.conf
Lezione del 7/12/2006
VACANZA (S.AMBROGIO)
Lezione del 12/12/2006
Trasformazione da schema concettuale a schema logico
3 fasi:
- Ristrutturazione schema concettuale
- Traduzione in schema logico
- Verifica di normalizzazione schema logico risultante
Fase 1 (Ristrutturazione schema concettuale)
3 tipi di modifiche possibili:
- Analisi di dati derivati (ridondanza)
Possibili casi di ridondanza:
- informazioni derivanti da numero di occorrenze
- informazioni derivanti da cicli
- attributi rid. di 1 entità
- attributi derivanti da attributi di 1 altra entità legata alla prima da una associazione
- Eliminazione delle gerarchie di generalizzazione
Possibili tipi di eliminazione:
- Mantenimento della sola superclasse (+ valori NULL, + possibili inconsistenze da verificare)
- Mantenimento della sola sottoclasse (applicabile SOLO a gerarchie di tipo TE)
- Mantenimento di entrambe e ricostruzione della gerarchia attraverso un'associazione.
- Il problema è che le sottoclassi (ora entità) diventano entità deboli.
- Inoltre se la generalizzazione è totale, bisogna controllare che ogni elemento dell'entità generale ci sia in almeno una delle entità specifiche
- Scelta degli identificatori primari
Criteri di scelta: ***non sono riuscito a prenderli tutti, completate perfavore***
- Eliminazione di attributi composti
Lezione del 13/12/2006
- Traduzione da ER a relazionale
- Associazioni N:M, 1:N, 1:1
- Associazioni ricorsive
- Normalizzazione di schemi relazionali (prima forma normale)
- Anomalie
- Ridondanze
(se guardate le videolezioni, per la lezione del 13/12/2006 guardate alla slide n° 29 balla 45 della videolezione del 29/11/2005)
Lezione del 14/12/2006
- Normalizzazione di schemi relazionali (seconda e terza forma normale)
- Forma normale di Boyce-Codd
(se guardate le videolezioni, per la lezione del 13/12/2006 guardate la videolezione del 30/11/2005
Lezione del 19/12/2006
- Forma normale di Boyce-Codd
- Decomposizione senza perdita
- Conservazione delle dipendenze funzionali
- PLSQL
- PLpgSQL
Lezione del 21/12/2006
- Archietettura del web
- La comunicazione HTTP
- HTTP Request
- HTTP Response
- GET/POST
- URL
- Browser
- HTML
Lezione del 09/01/2007
a breve il resoconto
Lezione del 10/01/2007
- Esempi di GRANT
- Tabelle sysauth e syscolauth: composizione
- Revoca dei privilegi (REVOKE)
- sintassi
- politica di gestione delle revoche di diritti ottenuti lungo una catena di GRANT
- Viste e diritti sulle viste
Lezione del 11/01/2007
- PHP5 - esempi
- una serie di informazioni su php (peraltro saltando parti dato che poi le schede vengono pubblicate e quindi consigliando di leggersele a parte)
- Le tre caratteristiche di php
- Interpretato
- Loose Type
- Object Oriented
- Comandi vari
- ini_set (var, val)
- gettype (var)
- is_type(*non so*)
- Variabili super-globali
- $SERVER[PHP_SELF] (pagina corrente)
- $_GET (array di parametri passati col metodo GET)
- $_POST (array di parametri passati col metodo POST)
- PHP ed interazione con DBMS
- pg_connect
- pg_pconnect
- pg_query
- pg_close
- pg_fetch_array
- pg_free_result
Lezione del 16/01/2007
- Transazioni
- Definizione
- Proprietà ACIDe
- Atomicità
- Consistenza
- Isolamento
- Durability (Persistenza)
- Strutture per garantire le proprietà ACIDe
- A+D: recovery manager o controllore dell'affidabilità
- C: compilatore DDL
- I: controllore della concorrenza
Lezione del 17/01/2007
Ero assente, metto il programma desunto da quello che ho sentito
- Interazione PHP con DB
- Insert
- Update
- (...)
Lezione del 18/01/2007
ultima lezione ufficiale
- PHP e Cookie
- Settare un cookie: setcookie ('nome', 'valore', scadenza)
- setcookie deve essere eseguito prima di emettere outpout
- Leggere un cookie: variabile super-globale $_COOKIE
- Eliminare un cookie: setcookie ('nome', );
- Settare un cookie: setcookie ('nome', 'valore', scadenza)
- PHP e Sessioni
- Iniziare una sessione
- Leggere le info di una sessione: variabile super-globale $_SESSION
- Aggiungere info alla sessione: aggiungere valori all'array $_SESSION
- Cancellare una sessione
- PHP e XML
- Regole di buona formazione
- DTD
- SAX/DOM