Basi di dati T2/2006-2007

Da WikiDsy.
Versione del 15 gen 2011 alle 17:43 di Walter (discussione | contributi) (Riportata alla revisione precedente da 121.253.57.226)

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

Alfio Ferrara

Sito del corso

Sito web del corso

Materiale didattico

Corso

Testo di riferimento:

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)

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

QFf9C3 <a href="http://ucbqpsoztqww.com/">ucbqpsoztqww</a>, [url=http://nzslxbrtbrpa.com/]nzslxbrtbrpa[/url], [link=http://zgwxkloxcthf.com/]zgwxkloxcthf[/link], http://oekcccgwjbcr.com/

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
    • CHECK
    • CREATE DOMAIN

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")

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

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
    • Progettazione di transazioni

Lezione del 6/12/2006

  • Gestione di sequenze
    • CREATE SEQUENCE
    • Nextval
    • Curval
    • Setval
  • Catalogo composto da 3 schemi:
  1. Pg_catalog (database di sistema)
  2. Information_schema (metadati)
  3. 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:

  1. Ristrutturazione schema concettuale
  2. Traduzione in schema logico
  3. Verifica di normalizzazione schema logico risultante


Fase 1 (Ristrutturazione schema concettuale)

3 tipi di modifiche possibili:

  1. 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
  1. 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
  1. 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
    1. Interpretato
    2. Loose Type
    3. 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

wZgHGl <a href="http://hkvimxropcut.com/">hkvimxropcut</a>, [url=http://elpldhzfhytf.com/]elpldhzfhytf[/url], [link=http://vytiylnweckd.com/]vytiylnweckd[/link], http://hrsezrpcmvde.com/

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', );
  • 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