Appunti database

download Appunti database

of 49

  • date post

    08-Jun-2015
  • Category

    Education

  • view

    589
  • download

    0

Embed Size (px)

description

prova iniziale

Transcript of Appunti database

  • 1. APPUNTI SUBASI DI DATI Prof. G. Caprioli(marzo 2008)

2. APPUNTI SU BASI DI DATIprogettazione concettuale e logicaSQLimplementazioni 3. APPUNTI SU BASI DI DATI PROGETTAZIONECONCETTUALE ELOGICA 4. PROGETTAZIONE FASI DEL PROGETTO1. Raccolta delle richieste dellutente studio preliminare su convenienza, riflessi e settori coinvolti per lorganizzazione analisi del sistema informativo esistente definizione dei requisiti del nuovo sistema classificazione dei dati individuazione dei vincoli sui dati descrizione delle procedure da automatizzare volume iniziale e tasso di crescita dei dati sicurezza e grado di riservatezza dei dati2. Progetto concettuale schema dei dati e delle relazioni tra essi (diagramma ER) operazioni da implementare vincoli impliciti ed espliciti su dati, procedure, tempi di risposta (vincoli di integrit, di dominio, ecc.)3. Progetto logico strutturazione dei dati (approccio relazionale) stesura delle procedure4. Progetto fisico descrizione dellorganizzazione fisica degli archivi (tabelle, indici ecc.) codifica delle operazioni e delle interfacce (procedure, menu ecc.) 5. PROGETTO CONCETTUALE PROGETTO CONCETTUALE Dato da memorizzare identificatore (sostantivo)ENTIT propriet (attributi) ENTIT ATTRIBUTO intensione, estensione identificatore + dominio entit ISA semplice, composto, multiplo chiave obbligatorio, opzionale costante, variabile derivato Relazione matematica tra entit identificatore (verbo)ASSOCIAZIONE cardinalit ASSOCIAZIONE CARDINALIT intensione, estensione 1:1 diretta, inversa 1:N oppure N:1 totale, parziale N:M univoca, multipla suriettiva, non suriettiva ENTIT + ASSOCIAZIONI = DIAGRAMMI E-R (Entity-Relationship) 6. PROGETTO CONCETTUALE PROGETTO CONCETTUALE(*) 1/2dataPRENOTANM 1 NLETTORE PRENDE LIBROidLettore idLibrocognomecopia datanometitoloindirizzo numPaginetelefono posizionetipo casaEd 7. PROGETTO CONCETTUALE PROGETTO CONCETTUALE(*)2/2OPERAZIONI DA REALIZZARE:Q1. visualizzazione dellelenco di tutti i lettori che hanno preso in prestito libri con i relativi titoliQ2. visualizzazione del cognome e nome dei lettori che hanno preso in prestito un libro in una data assegnataQ3. visualizzazione dellelenco dei libri prenotati con titolo, data, cognome e telefono dei prenotantiQ4. visualizzazione dei dati dei lettori che hanno prenotato almeno un libro(*)Porzione del progetto concettuale della base di dati BIBLIOTECA 8. PROGETTO LOGICO PROGETTO LOGICODEFINIZIONIRELAZIONE R D1X D2 X DN Di : domini SCHEMA DI RELAZIONErJ : tuple nome + lista attributiOPERAZIONI DELLALGEBRA RELAZIONALEtra relazioni compatibili tra relazioni non compatibili RIDENOMINAZIONE BA(R) PRODOTTO CARTESIANO R1 X R2 UNIONE R1 R2 PROIEZIONEA(R) DIFFERENZA R1 - R2 RESTRIZIONE P(R) INTERSEZIONE R1 R2 GIUNZIONE R1 R2 DIVISIONE R1 R2IMPLEMENTAZIONE DEI DIAGRAMMI E-R entitschema di relazione associazione 1:1chiave esterna su uno degli schemi di relazione ATTENZIONE associazione 1:Nchiave esterna su schema di relazione N AI VINCOLI DI associazione N:Mschema di relazione con chiavi esterneINEGRIT 9. PROGETTO LOGICO PROGETTO LOGICO(*)1/2 DEFINIZIONE DEGLI SCHEMI DI RELAZIONE LETTORE(IdLettore: INTERO LUNGO, Cognome: CHAR(20), Nome: CHAR(20), Indirizzo: CHAR(30), Telefono: CHAR(15), Tipo: CHAR) LIBRO(IdLibro: INTERO LUNGO, #Copia: INTERO, Titolo: CHAR(30), NumPagine: INTERO, Posizione: CHAR(8), CasaEd:CHA(30), IdLettore: INTERO LUNGO, Data: DATA) PRENOTA(IdPrenota: INTERO LUNGO, IdLettore: INTERO LUNGO, IdLibro: INTERO LUNGO, Data: DATA) NOTE: I campi sottolineati sono campi chiave primaria I campi in corsivo sono campi chiave esterna che implementano una relazione tra entit di tipo 1:N I campi in carattere non grassetto sono campi esterni allentit (appartenenti alla relazione 1:N) LA RELAZIONE PRENOTA IMPLEMENTA LA CORRISPONDENTE RELAZIONE TRA ENTIT ciascuno schema di relazione indicizzato sulla chiave primaria lo schema di relazione LIBRO contiene due chiavi esterne per le associazioni PRENDE e PRENOTA per brevit vengono omessi i vincoli impliciti ed espliciti (*) Porzione del progetto logico della base di dati BIBLIOTECA 10. PROGETTO LOGICO PROGETTO LOGICO(*)2/2ESEMPI DI ESPRESSIONI DELLALGEBRA RELAZIONALE RELATIVE ALLEOPERAZIONI INDIVIDUATE: Q1.LETTORE LIBRO Q2.cognome, nome( data=[parametro_data]( LETTORE LIBRO)) Q3.LIBRO PRENOTA LETTORE Q4.LETTORE ( idLettore (PRENOTA))(*)Porzione del progetto logico della base di dati BIBLIOTECA 11. PROGETTO LOGICO ANOMALIE PRENOTA idLetto indiriz ca localit idLibr titol datrezop ao o aU1I1 C1L1 L1T1D1U1I1 C1L1 L2T2D1U1I1 C1L1 L3T3D4U2I2 C2L2 L3T3D2U3I3 C3L3 L2T2D3U3I3 C3L3 L4T4D5 inserimento linserimento di un nuovo lettore obbliga ad inserire anche unlibro preso in prestito cancellazione la cancellazione della tupla (U3, L2) ha un effetto diverso dallacancellazione della tupla (U2, L3) aggiornamento dovendo modificare lindirizzo di un lettore si obbligati adaggiornare tutte le tupleLe cause vanno ricercate nella indipendenza e ridondanza di alcuni datiIl rimedio consiste nella NORMALIZZAZIONEprocesso di trasformazione degli schemi di relazione in altri pi piccoli aventi lo stesso contenuto informativo ed esenti da un certo tipi (livelli) prestabiliti di anomalie 12. PROGETTO LOGICO NORMALIZZAZIONE 1/31FNuno schema di relazione si dice in prima forma normale quando tutti gli attributi sono di tipo elementaresoluzioneattributo composto si scompone in pi attributi sempliciattributo multiplp si trasforma in pi righe, una per ogni molteplicit degli attributi multipli,ripetendola parte non multiplaES. Si abbia il seguente insieme di dati riguardante le prenotazioni in una biblioteca PRENOTA idLetto indirizcalocalit idLibrtitoldat idLibrtitol datidLibrtitoldatrezo p a ooao oa oo aU1I1C1L1L1 T1 D1 L2T2 D1L3 T3 D4U2I2C2L2L3 T3 D2U3I3C3L3L2 T2 D3 L4 T4 D5Eliminando gli attributi composti ePRENOTA idLettoindiriz ca localit idLibrtitoldatmultipli si ottiene:reU1 zo I1 pC1 aL1o L1o T1a D1U1 I1 C1L1 L2T2D1U1 I1 C1L1 L3T3D4U2 I2 C2L2 L3T3D2U3 I3 C3L3 L2T2D3U3 I3 C3L3 L4T4D5 13. PROGETTO LOGICO NORMALIZZAZIONE2/32FNuno schema di relazione si dice in seconda forma normale quando 1FN non esistono attributi che dipendono solo da una parte della chiavesoluzionesi estraggono gli attributi che dipendono da una stessa parte di chiave in uno schema di relazione a sstante ed associato allo schema rimanente che avr cardinalit N (la parte di chiave diventa chiaveesterna)ES. Nello schema di relazione Prenota, portato in 1FN nellesempio precente, si ha:idLettore indirizzoidLibro titoloquindi estraendo ad esempio titolo ed editore, si avr:idLettore indirizzo LETTOREPRENOTA LIBROidLettore indirizzo caplocalitaidLettoreidLibrodata idLibro titoloU1 I1C1 L1 U1L1 D1 L1 T1U2 I2C2 L2 U2L3 D2 L2 T2U3 I3C3 L3 U3L2 D3 L3 T3 U1L2 D1 L4 T4 U1L3 D4 U3L4 D5 14. PROGETTO LOGICO NORMALIZZAZIONE3/33FNuno schema di relazione si dice in terza forma normale quando 2FN non esistono attributi non-chiave che dipendono transitivamente dalla chiavesoluzionesi estraggono gli attributi che dipendono da altri attributi non chiave in uno o pi schemi di relazioneassociati allo schema originale (che avr cardinalit N); i campi di transizione diventano rispettivamentechiave esterna nello schema originale e chiave primaria nello schema derivatoES. Nello schema di relazione Lettore, ricavato dalla normalizzazione in 2FN dellesempio precente, siha:idLettore localita cap (il cap non dipende direttamente da idLettore ma transitivamente attraverso localita)quindi: LETTORE LOCALITAPRENOTA LIBRO localit caidLettore indirizzo localitaidLettore idLibrodataidLibrotitoloa p U1I1L1L1 C1U1 L1 D1L1T1 U2I2L2L2 C2U2 L3 D2L2T2 U3I3L3L3 C3U3 L2 D3L3T3U1 L2 D1L4T4U1 L3 D4U3 L4 D5 15. ESERCIZIO 1sportello dello studente (1/2) Dato il seguente schema: idDisponibilitagiorno idInsegnanteorainiziocognome orafine nomeclassemateria materia 1 NINSEGNANTEOFFREDISPONIBILITA11 N NEFFETTUALEZIONE RIFERITAora fine ora inizioallievo data idLezionecostruire gli schemi di relazione del relativo progetto logico 16. ESERCIZIO 1sportello dello studente (2/2) Utilizzando gli schemi di relazione costruiti dal precedente diagramma ER, scriverele espressioni dellalgebra relazionale relative alle seguenti operazioni:Q1: visualizzazione di un insegnanteQ2: visualizzazione di una disponibilitQ3: visualizzazione di una lezioneQ4: elencare le disponibilit per insegnanteQ5: elencare le disponibilit per materiaQ6: elencare le disponibilit per classe 17. ESERCIZIO 2 campionato di calcio (1/2) Dato il seguente schema: idSquadraidStadionome nome allenatore cittagirone capienza N1 SQUADRAGIOCASTADIOMN NINCONTRAdatagiornatagolSquadra1golSquadra2costruire gli schemi di relazione del relativo progetto logico 18. ESERCIZIO 2 campionato di calcio (2/2) Utilizzando gli schemi di relazione costruiti dal precedente diagramma ER, scriverele espressioni dellalgebra relazionale relative alle seguenti operazioni:Q1: elencare le squadre che hanno sede in citt nelle quali lo stadio ha capienzasuperiore a 60000 personeQ2: elencare le citt nelle quali c pi di uno stadioQ3: elencare le quadre che hanno perso almeno unna volta con una difefrenza retisuperiore a 3Q4: elencare gli stadi nei quali nessun incontro terminato con un pareggioQ5: elencare le squadre che hanno vinto tutti i derby disputati 19. APPUNTI SU BASI DI DATISQL Structured Query Language 20. SQLLinguaggio per basi di dati che assolve alle funzioni di definizione,manipolazione e memorizzazione dei datiPu essere utilizzato interattivamente mediante opportune interfacceutente oppure essere ospite di un linguaggio di programmazione, ingenere mediante apposite librerieIn SQL gli schemi di relazione vengono implementati in TABELLE incui ciascuna tupla diviene una RIGA; a differenza delle relazioni, lerighe possono essere duplicateSQL consente una buona indipendenza logica e fisicaLe specifiche attualmente standardizzate son