1 / 60

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati. Materiale. Teoria: bastano le slide In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi di dati: Modelli e linguaggi di interrogazione Esercizi: bastano le slide Se vi servono altri esercizi Braga Brambilla Campi

mahina
Download Presentation

Introduzione alle Basi di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzionealle Basi di Dati

  2. Materiale • Teoria: bastano le slide • In alternativa: • Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi di dati: Modelli e linguaggi di interrogazione • Esercizi: bastano le slide • Se vi servono altri esercizi • BragaBrambillaCampi Eserciziario basi di dati Editrice Esculapio

  3. Dal dato all’informazione Dato: unità elementare (grezza) di informazione Informazione: elaborazione dei dati per rispondere a esigenze specifiche dell'impresa

  4. Dal dato all’informazione • Dato: <Stefano Ceri, Basi di dati, IIIA, I Sem> • Informazione: • Chi insegna basi di dati? Stefano Ceri • Quando si tiene il corso? Al I semestre del III anno.

  5. PROGRAMMA APPLICATIVO PROGRAMMA APPLICATIVO FILE SYSTEM DBMS PROGRAMMA APPLICATIVO PROGRAMMA APPLICATIVO DATI DATI DATI DATI DATI DATI DATI PROGRAMMA APPLICATIVO PROGRAMMA APPLICATIVO BASE DI DATI E FILE SYSTEM A CONFRONTO

  6. Principali caratteristiche dei DBMS • condivisione dei dati • - assenza di replicazione nei file • - concorrenza • qualità dei dati • - vincoli di integrità • efficienza • - caricamento, query, sort • controllo dell'accesso • - privatezza • robustezza

  7. INTEGRAZIONE DEI DATI OGNI DATO, A PRESCINDERE DALLE APPLICAZIONI DALLE QUALI VENGA UTILIZZATO, COMPARE UNA SOLA VOLTA • ELIMINA INUTILI RIDONDANZE E SPRECHI DI MEMORIA • MIGLIORA LA CONSISTENZA DEI DATI (non è infatti possibile che lo stesso dato abbia contemporaneamente due valori diversi)

  8. schema STRUTTURA DEI DATI SUI CONTI CORRENTI conto corrente di Giorgio Rossi conto corrente di Paolo Bianchi ………………………………………. istanza Come si usa un DBMS ? adefinendo la struttura generale dei dati bdefinendo le specifiche operazioni sui dati

  9. studente CITTA’ Bologna Torino Roma C-DIP Inf Inf Log MATR 123 415 702 NOME Carlo Paola Antonio Esempio : studenti universitari

  10. I linguaggi del DBMS DATA DEFINITION LANGUAGE (DDL) es: CREATE, DROP, ALTER DATA MANIPULATION LANGUAGE (DML) es: SELECT, INSERT, UPDATE, DELETE

  11. Nome Carlo Città Bologna CDip Inf Matr 123 DML: Query Language select *from Studentewhere Città = ’Bologna’

  12. Il modello relazionale

  13. RELAZIONALE RETICOLARE GERARCHICO MODELLI DEI DATI I MODELLI COSTITUISCONO UNA STRUTTURAZIONE SEMPLIFICATA DELLA REALTA’ CHE NE ACCOGLIE ASPETTI SPECIFICI E AIUTA A COMPRENDERLA MEGLIO MONDO REALE MODELLO CONCETTUALE MODELLI LOGICI

  14. Cronologia dei modelliper la rappresentazione dei dati • Modello gerarchico (anni 60) • Modello reticolare (anni 70) • Modello relazionale (anni 80) • Modello a oggetti (anni 90) • Modello XML (anni 00)

  15. GERARCHICO MODELLI LOGICI DEI DATI GERARCHICO • I DATI SONO RAPPRESENTATI COME RECORD • LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE CON PUNTATORI IN UNA STRUTTURA AD ALBERO

  16. RETICOLARE MODELLI LOGICI DEI DATI RETICOLARE (CODASYL) • I DATI SONO RAPPRESENTATI COME RECORD • LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE CON PUNTATORI IN UNA STRUTTURA A GRAFO COMPLESSO

  17. RELAZIONALE MODELLI LOGICI DEI DATI RELAZIONALE • I DATI SONO RAPPRESENTATI COME TABELLE • LE ASSOCIAZIONI TRA I DATI SONO OTTENUTE ASSOCIANDO VALORI DI ATTRIBUTI IN TABELLE DIVERSE

  18. Cronologia del modello relazionale • Inventato da T. Codd, 1970 (IBM Research di Santa Teresa, Cal) • Primi progetti: • SYSTEM R (IBM), Ingres (Berkeley Un.) • Principali scoperte tecnologiche: 1978-1980 • Primi sistemi commerciali: • inizio anni ‘80 (Oracle, IBM-SQL DS e DB2, Ingres, Informix, Sybase) • Successo commerciale: dal 1985.

  19. colonna schema schema schema studente studente studente MATR 123 107 415 702 MATR 123 107 415 702 MATR 123 107 415 702 NOME Carlo Giovanni Paola Antonio NOME Carlo Giovanni Paola Antonio NOME Carlo Giovanni Paola Antonio CITTA’ Bologna Milano Torino Roma CITTA’ Bologna Milano Torino Roma CITTA’ Bologna Milano Torino Roma INDIR Inf Log Inf Log INDIR Inf Log Inf Log INDIR Inf Log Inf Log istanza istanza istanza riga Definizione informale

  20. Relazione: tre accezioni • • relazione matematica: come nella teoria degli insiemi; • • relazione (dall’inglese relationship) che rappresenta una classe di fatti — una relazione matematica fra due entità, nel modello • Entity-Relationship; talvolta tradotto con associazione o correlazione • • relazione secondo il modello relazionale dei dati.

  21. Definizione formale • Dominio D: qualunque insieme di valori D1, D2, …, Dn (n insiemi anche non distinti) • Il prodotto cartesiano D1×D2×…×Dn, è l’insieme di tutte le n-uple ordinate <d1, d2, …, dn> tali che d1D1, d2 D2, …, dn Dn. • Una relazione matematica su D1, D2, …, Dn è un sottoinsieme del prodotto cartesiano D1×D2×…×Dn. • D1, D2, …, Dn sono i domini della relazione. Una relazione su n domini ha grado n . • Il numero di n-uple è la cardinalità della relazione. Nelle applicazioni reali, la cardinalità è sempre finita.

  22. Esempio • D1 = (a,b) • D2 = (1,2,3) • D1 x D2 = ( <a,1>, <b,1>, <a,2>, <b,2>, • <a,3>, <b,3> ) • R1 = ( <a,1>, <b,3> ) • R2 = ( <c,1>, <b,3>, <a,2> ) • R3 = ( ) • R4 = ( <a,1>, <b,1>, <a,2>, <b,2>, • <a,3>, <b,3> )

  23. Proprietà • Grado della relazione: numero di domini (n) • Cardinalita' della relazione: • numero di tuple • Attributo: • nome dato al dominio in una • relazione • [I nomi di attributo in una relazione • devono essere tutti distinti fra loro]

  24. Proprietà • In base alle definizioni, una relazione matematica è un insieme di n-uple ordinate: • <d1, d2, …, dn> tali che d1 D1, d2 D2, …, dn Dn • Una relazione è un insieme; quindi: • non è definito alcun ordinamento fra le n-uple; • le n-uple di una relazione sono distinte l’una dall’altra; • le n-uple sono ordinate: l’ i-esimo valore di ciascuna proviene dall’ i-esimo dominio; è cioè definito un ordinamento fra i domini.

  25. Partite string × string × integer × integer• Ciascuno dei domini ha due ruoli distinti, distinguibili attraverso la posizione: il primo e il terzo dominio si riferiscono a nome e reti della squadra ospitante; il secondo e il quarto a nome e reti della squadra ospitata.• La struttura è posizionaleJuve Lazio 3 1Lazio Milan 2 0Juve Roma 1 2Roma Milan 0 1

  26. Nei DB, invece, associamo a ciascun dominio un nome (attributo), unico nella relazione, che “descrive” il ruolo del dominio. – Nella rappresentazione tabulare, gli attributi possono essere usati come intestazioni delle colonne. – L’ordinamento fra gli attributi è irrilevante: la struttura è non posizionale Casa Fuori RetiCasa RetiFuori Juve Lazio 3 1 Lazio Milan 2 0 Juve Roma 1 2 Roma Milan 0 1

  27. Formalizzando • L’associazione fra domini e attributi è definita da una funzione dom che associa a ciascun attributo un dominio • Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio dom(A) • Una relazione su X è un insieme di ennuple su X

  28. Formalizzando • Se t è una ennupla su X e A X, allora • t[A] (o t. A ) indica il valore di t su A . • Nell’esempio, se t è la prima ennupla della tabella • t[Fuori] = Lazio • La stessa notazione è estesa anche ad insiemi di attributi, nel qual caso denota ennuple: • t[Fuori,RetiFuori] è una ennupla su due attributi e vale <Lazio,1>

  29. Tabelle e relazioni • Una tabella rappresenta una relazione se • i valori di ciascuna colonna sono fra loro omogenei (dallo stesso dominio) • le righe sono diverse fra loro • le intestazioni delle colonne sono diverse tra loro • Inoltre, in una tabella che rappresenta una relazione • l’ordinamento tra le righe è irrilevante • l’ordinamento tra le colonne è irrilevante

  30. DEFINIZIONE FORMALE relazione attributo tupla, n-pla dominio cardinalita' grado DEFINIZIONE INFORMALE tabella colonna riga tipo di dato numero di righe numero di colonne Confronto della terminologia Una differenza significativa DEFINIZIONE FORMALE assenza di duplicati DEFINIZIONE INFORMALE possibili duplicati

  31. Il modello relazionale è basato su valori • I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple.

  32. Perché sui valori? • Indipendenza dalle strutture fisiche (si potrebbe avere anche con puntatori di alto livello) che possono cambiare anche dinamicamente • Si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione (dell’utente); i puntatori sono meno comprensibili per l’utente finale (senza, l’utente finale vede gli stessi dati dei programmatori) • I dati sono portabili più facilmente da un sistema ad un altro • I puntatori sono direzionali

  33. studente MATR 123 415 702 NOME Carlo Paola Antonio CITTA’ Bologna Torino Roma INDIR Inf Inf Log corso esame COD- CORSO 1 2 MATR 123 123 702 COD- CORSO 1 2 2 DATA 7-9-03 8-1-03 7-9-03 VOTO 10 8 5 TITOLO matematica informatica DOCENTE Barozzi Meo Interrogazioni • Quali professori hanno esaminato Carlo?

  34. studente MATR 123 415 702 NOME Carlo Paola Antonio CITTA’ Bologna Torino Roma INDIR Inf Inf Log corso esame COD- CORSO 1 2 MATR 123 123 702 COD- CORSO 1 2 2 DATA 7-9-03 8-1-03 7-9-03 VOTO 10 8 5 TITOLO matematica informatica DOCENTE Barozzi Meo Interrogazioni • Quali studenti hanno preso 10 in matematica?

  35. Riflessioni a differenza fra schema e istanza b due attivita' assai differenti: - progetto dello schema - gestione dell'istanza c passaggio dai dati all'informazione (Query language)

  36. “Da Filippo” Via Roma 23 9100 Chissadove P.I. 012345678 “Da Filippo” Via Roma 23 9100 Chissadove P.I. 012345678 Ricevuta n. 2369 del 12/5/1997 Ricevuta n. 2456 del 16/5/1997 3 coperti 3,15 2 antipasti 6,22 3 primi 12,60 2 bistecche 19,00 Totale 41,98 2 coperti 2,10 1 antipasti 3,11 2 primi 8,40 2 orate 25, 5 2 caffè 1,60 Totale 39,41 UN ESEMPIO DUE ISTANZE DI RICEVUTA FISCALE

  37. NUMERO DATA TOTALE 2369 12/5/1997 41,98 2456 16/5/1997 39,41 ricevute NUMERO QUANTITA’ DESCRIZIONE IMPORTO 2369 3 coperti 3,15 2369 2 antipasti 6,22 2369 3 primi 12,60 2369 2 bistecche 19,00 2456 2 coperti 2,10 2456 1 antipasti 3,11 2456 2 primi 8,40 2456 2 orate 25, 5 2456 2 caffè 1,60 dettaglio RAPPRESENTAZIONE RELAZIONALE, 1

  38. NUMERO DATA TOTALE 2369 12/5/1997 41,98 2456 16/5/1997 39,41 ricevute dettaglio NUMERO RIGA QUANTITA’ DESCRIZIONE IMPORTO 2369 1 3 coperti 3,15 2369 2 2 antipasti 6,22 2369 3 3 primi 12,60 2369 4 2 bistecche 19,00 2456 1 2 coperti 2,10 2456 2 1 antipasti 3,11 2456 3 2 primi 8,40 2456 4 2 orate 25, 5 2456 5 2 caffè 1,60 RAPPRESENTAZIONE RELAZIONALE, 2

  39. Informazione incompleta • ll modello relazionale impone ai dati una struttura rigida: • le informazioni sono rappresentate per mezzo di ennuple • solo alcuni formati di ennuple sono ammessi: • quelli che corrispondono agli schemi di relazione • I dati disponibili possono non corrispondere esattamente al formato previsto, per varie ragioni.

  40. Informazione incompleta • Firenze è provincia, ma non conosciamo l'indirizzo della prefettura • Tivoli non è provincia: non ha prefettura • Prato è “nuova” provincia: ha la prefettura?

  41. Informazione incompleta • Non conviene (anche se spesso si fa) utilizzare valori ordinari del dominio (0, stringa nulla, “99”, etc), per vari motivi: • potrebbero non esistere valori “non utilizzati” • valori “non utilizzati” potrebbero diventare significativi • Risulta necessario ogni volta tener conto del “significato” di questi valori

  42. Informazione incompleta • Si adotta una tecnica rudimentale ma efficace: • valore nullo: denota l’assenza di un valore del dominio (e non è un valore del dominio) • Formalmente, è sufficiente estendere il concetto di ennupla: t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore nullo NULL • Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli

  43. Informazione incompleta

  44. NULL • Tre casi differenti • valore sconosciuto: esiste un valore del dominio,ma non è noto (Firenze) • valore inesistente: non esiste un valore del dominio (Tivoli) • valore senza informazione: non è noto se esista o meno un valore del dominio (Prato) • I DBMS non distinguono i tipi di valore nullo (e quindi implicitamente adottano il valore senza informazione)

  45. Vincoli di integrità • Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse.

  46. Vincoli di integrità Escludono alcune istanze in quanto non rappresentano correttamente il mondo applicativo • - VINCOLI SUI VALORI NULLI • - INTEGRITA' REFERENZIALE • - VINCOLI GENERICI • - CHIAVI

  47. Vincoli di integrità • Definizione • proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione ogni vincolo può essere visto come una funzione booleana (o un predicato) che associa ad ogni istanza il valore vero o falso.

  48. Vincoli di integrità • Tipi di vincoli: • vincoli intrarelazionali; casi particolari: • vincoli su valori (o di dominio) • vincoli di ennupla • vincoli interrelazionali

More Related