Basi di Dati
date post
15-Mar-2016Category
Documents
view
69download
0
Embed Size (px)
description
Transcript of Basi di Dati
Basi di Dati
Concetti ePrincipi Generali
Stefania Costantini
Organizzazione dei Dati
Archivi o fileProcedure di accesso in qualunque linguaggio di programmazioneDuplicazione dati:ridondanzaincoerenzaformati diversi dei dati
Organizzazione dei Dati
Sistema di gestione di Basi di DatiData Base Management System (DBMS)Ha un proprio linguaggio basato su un proprio Modello di datiEvita ridondanza e incoerenza
Base di Dati = Insieme di dati gestiti da un DBMS
DBMSBasi di Dati:GrandiCondivise (no ridondanza)DBMS garantisce:Persistenza (e fault-tolerance)Affidabilit Privatezza EfficienzaEfficacia = migliore produttivit
Modello dei DatiInsieme di concetti Descrizione dei DatiOrganizzazione dei DatiModello dei dati meccanismi di strutturazione
Modello dei DatiModello concettuale dei dati: contenuti struttura significato collegamenti, indipendentemente dallimplementazioneModello logico: rappresentazione formale dei dati implementabile da un DBMSModello fisico: allocazione sui dispositivi
Modello dei DatiModelli principali: (Logici)GerarchicoalberiReticolaregrafiRelazionalerelazioniA oggettirelazioni pi oggettiModelli concettuali:descrizione di alto livello dei dati indipendente dal modello logicoE R Entity Relationship
Schema BDDescrizione dellorganizzazione dei datiInvariante nel tempo (salvo riorganizzazione)Livelli di astrazioneSchema logico: descrizioneSchema fisico: implementazione schema logicoSchema esterno (Vista): astrazione da schema logico
Istanza BDDefinita su un dato schemaInsieme dei valori effettivi dei datiCambia nel tempoInserzione CancellazioneModifica
Indipendenza dei datiLutente interagisce con il DBA un certo livello di astrazioneSenza bisogno di conoscere i livelli sottostantiChe possono essere modificati
Indipendenza dei datiIndipendenza logicaInterazione con il livello esternoSenza conoscere schema logicoIndipendenza fisicaInterazione con il livello logicoSenza conoscere schema fisico (allocazione dei dati su)
Linguaggi per Basi di DatiData Definition Language (DDL)Definizione schemiDefinizione autorizzazioni di accesso
Linguaggi per Basi di DatiData Manipulation Language (DML)Aggiornamento istanze DBInserzione Cancellazione Modifica Estrazione informazioni da DB Interrogazione QueryDML Query Language SQL DDL + DML
Linguaggi per Basi di Dati
Classi di Linguaggi:Interattivi testualiInterattivi graficiImmersi in altri linguaggi di programmazione
Linguaggi per Basi di Dati
Interazione con Basi di DatiProgettisti e programmatoriAmministratore DB Administrator (DBA)Progetto ControlloAmministrazione Utentifinali: utilizzano frequentemente la BD con query predefinitecasuali: query non predefinite
Linguaggi per basi di dati Un altro contributo allefficacia: disponibilit di vari linguaggi e interfaccelinguaggi testuali interattivi (SQL)comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C ...) comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalit (p.es. per grafici o stampe strutturate) con interfacce amichevoli (senza linguaggio testuale)
Basi di Dati
Il Modello
Relazionale
Concetti Generali
Modello dei Dati
Schema di rappresentazione dati: visione dei dati secondo un certo formalismo (ad es. alberi, grafi, tabelle) Modello dei dati: costrutti e linguaggi per descrivere e manipolare lo schema
Modello dei DatiCostrutti e linguaggi per descrivere:Conceptual and external schema Data definition language (DDL)Integrity constraints, domains (DDL)Operations on data Data manipulation language (DML)Directives that influence the physical schema (affects performance, not semantics)Storage definition language (SDL)
Modello Relazionale
Introdotto nel 1970
Si affermato negli anni 80
Si basa sul concetto matematico di relazione (teoria degli insiemi)
Descrive in modo efficace il livello logicoSenza riferimenti al livello fisico (struttura realizzativa)
Why Study the Relational Model? Most widely used model.
Legacy systems in older models e.g., IBMs IMSObject-oriented concepts have recently merged inobject-relational modelInformix, IBM DB2, Oracle 8iEarly work done in POSTGRES research project at Berkeley
Relazioni
Insiemi D1, D2,,Dnfiniti o infiniti, detti dominiProdotto cartesianoP = D1 x D2 x x DnP = (v1, v2, , vn): i n vi Din upla o tupla
Relazioni
Relazione R Pn grado o arit della relazionem numero delle tuple di R cardinalit della relazioneNelle Basi di Dati: cardinalit finita
TabelleRappresentazione grafica delle relazioniD1 = LAquila, Roma, PescaraD2 = Maria, CarloD1 x D2Una colonna per ogni dominio DiUna riga per ogni tupla
LAquilaMariaLAquilaCarloRomaMariaRomaCarloPescaraMariaPescaraCarlo
TabelleRelazione R Cardinalit 2Le tuple sono distinteLe tuple non sono ordinate
Residenza
LAquilaMariaPescaraCarlo
AttributiI valori allinterno di una tupla sono ordinati(v1, v2, , vn)Rv1 D1, v2 D2, , vn DnAd ogni valore associamo un Nome, detto AttributoResidenza
CITTAPERSONALAquilaMariaPescaraCarlo
Attributi
D = D1,,DnDominix = {A1, A2, , An}AttributiDOM: xD associa Ai a Djassegna un dominio ad ogni attributoTupla: (A1,,An) (v1,, vn) vi Di
Basi di Dati Relazionali
Composte da varie relazioniSotto forma di tabelleCollegate fra loro mediante Attributi comuninon necessariamente con lo stesso nomema con lo stesso valore
Basi di Dati Relazionali
Vantaggi: schema logico indipendente dallimplementazioneComprensibilit Usabilit Portabilit Indipendenza fisica
Esempio di tabella
Basi di dati: schema e istanzaL'istanza della base di datiLo schema della base di dati
Instance of Students Relation Cardinality = 3, arity = 5 , all rows distinct Do all values in each column of a relation instance have to be distinct?
Schema e istanzaIn ogni base di dati esistono:lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale)es.: le intestazioni delle tabelle listanza, i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale)es.: il corpo di ciascuna tabella Ex
Modello RelazionaleSchema di relazioneSimbolo R: Nome della relazioneInsieme X = A1,,An: Nomi degli attributi (ognuno legato a un dominio DiNotazione: R(X)Schema di base di dati R = R1(X1),R2(X2),Rk(Xk)Ri distinti
Modello RelazionaleIstanza di Relazione su R(X)Insieme r di tuple su XIstanza di Base di dati su R:Insieme r = r1,,rk di relazioni, ri su Ri(Xi), i k
Modello RelazionaleTerminologia Attributi: lettere finali alfabeto X, Y, Z Insiemilettere iniziali alfabeto A, B, C attributi singoli X = A B C X = A, B, CRelazioni: R, S
t[Y]: tupla t ristretta agli attributi dellinsieme Y
Modello RelazionaleValore nullo:Valore distinto, aggiuntivo rispetto ai dominiNULL = assenza di informazioni Valore non notoValore inesistente (non definito)Valore non significativo
(super) chiave
Insieme di attributi che identifica univocamente una tuplaIn generale, esistono varie superchiavi
Insieme K di attributi di una relazione R:K superchiave se non esiste t1,t2 r tali che t1[K] = t2[K]K chiave se una superchiave minimalenon esiste K1 K superchiave
Chiavi
Notare che:Nota1: per relazione R(X), X sempre superchiaveNota2: una superchiave perde di significato se le tuple contengono valori nulli sui suoi attributi
Chiave Primaria (Primary key)
Chiave primaria KP: viene scelta fra le chiavi possibili (dette chiavi candidate)si pu (e si deve) definire ununica chiave primarianon sono ammessi valori nulli sugli attributi di KP
KeysKeys are a way to associate tuples in different relationsKeys are one form of integrity constraint (IC)
EnrolledStudentsPRIMARY KeyFOREIGN Key
Vincoli di IntegritPropriet che devono essere soddisfatte dalle istanzePredicati (valore vero/falso)Selezionano istanze ammissibiliIntroducono Limitazione sui dominiCollegamenti obbligatori fra tabelleProibizione di valori nulliLimitazioni sui valori degli attributi
Integrity Constraints (ICs)IC: condition that must be true for any instance of the database; e.g., domain constraints.ICs are specified when schema is defined.ICs are checked when relations are modified.A legal instance of a relation is one that satisfies all specified ICs. DBMS should not allow illegal instances.If the DBMS checks ICs, stored data is more faithful to real-world meaning.Avoids data entry errors, too!
KeysKeys are a way to associate tuples in different relationsKeys are one form of integrity constraint (IC)
EnrolledStudentsPRIMARY KeyFOREIGN Key
Vincoli di IntegritEsempio: vincolo di chiave relazione deve esistere una chiave primariaNo valori coincidenti per tuple diverseNo valori nulli su attributi componenti le chiavi
Classi diVincoli
I vincoli di integrit possono essereIntrarelazionali (su singole relazioni)Interrelazionali (coinvolgono varie relazioni)
Classi diVincoli
Classi di vincoli intrarelazionali:di Tupla: verificabili sulla tupla singoladi Dominio: restrizione sul dominio dellattributoGlobali: occorre considerare lintera istanza
Vincoli di Integrit Referenziale
Vincolo interrelazionale: relazioni in correlazione fra loroMediante attributi comuniModello relazionale: basato su valo