600 likes | 856 Views
Basi di Dati. Concetti e Principi Generali Stefania Costantini. Organizzazione dei Dati. Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati diversi dei dati. Organizzazione dei Dati.
E N D
Basi di Dati Concetti e Principi Generali Stefania Costantini
Organizzazione dei Dati • Archivi o file • Procedure di accesso in qualunque linguaggio di programmazione • Duplicazione dati: • ridondanza • incoerenza • formati diversi dei dati
Organizzazione dei Dati • Sistema di gestione di Basi di Dati • Data Base Management System (DBMS) • Ha un proprio linguaggio basato su un proprio Modello di dati • Evita ridondanza e incoerenza • Base di Dati = Insieme di dati gestiti da un DBMS
DBMS Basi di Dati: • Grandi • Condivise (no ridondanza) • DBMS garantisce: • Persistenza (e fault-tolerance) • Affidabilità • Privatezza • Efficienza • Efficacia = migliore produttività
Modello dei Dati • Insieme di concetti • Descrizione dei Dati • Organizzazione dei Dati • Modello dei dati meccanismi di strutturazione
Modello dei Dati • Modello concettuale dei dati: contenuti struttura significato collegamenti, indipendentemente dall’implementazione • Modello logico: rappresentazione formale dei dati implementabile da un DBMS • Modello fisico: allocazione sui dispositivi
Modello dei Dati • Modelli principali: (Logici) • Gerarchico alberi • Reticolare grafi • Relazionale relazioni • A oggetti relazioni più oggetti • Modelli concettuali: descrizione di alto livello dei dati indipendente dal modello logico E – R Entity – Relationship
Schema BD Descrizione dell’organizzazione dei dati • Invariante nel tempo (salvo riorganizzazione) • Livelli di astrazione • Schema logico: descrizione • Schema fisico: implementazione schema logico • Schema esterno (Vista): astrazione da schema logico
Istanza BD • Definita su un dato schema • Insieme dei valori effettivi dei dati • Cambia nel tempo • Inserzione • Cancellazione • Modifica
Indipendenza dei dati L’utente interagisce con il DB • A un certo livello di astrazione • Senza bisogno di conoscere i livelli sottostanti • Che possono essere modificati
Indipendenza dei dati • Indipendenza logica • Interazione con il livello esterno • Senza conoscere schema logico • Indipendenza fisica • Interazione con il livello logico • Senza conoscere schema fisico (allocazione dei dati su )
Linguaggi per Basi di Dati Data Definition Language (DDL) • Definizione schemi • Definizione autorizzazioni di accesso
Linguaggi per Basi di Dati Data Manipulation Language (DML) • Aggiornamento istanze DB • Inserzione • Cancellazione • Modifica • Estrazione informazioni da DB Interrogazione Query DML Query Language SQL DDL + DML
Linguaggi per Basi di Dati • Classi di Linguaggi: • Interattivi testuali • Interattivi grafici • Immersi in altri linguaggi di programmazione
Linguaggi per Basi di Dati • Interazione con Basi di Dati • Progettisti e programmatori • Amministratore DB Administrator (DBA) • Progetto • Controllo • Amministrazione • Utenti • finali: utilizzano frequentemente la BD con query predefinite • casuali: query non predefinite
Linguaggi per basi di dati • Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce linguaggi 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 Dati • Costrutti 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 logico • Senza riferimenti al livello fisico (struttura realizzativa)
Why Study the Relational Model? • Most widely used model. • “Legacy systems” in older models • e.g., IBM’s IMS • Object-oriented concepts have recently merged in • object-relational model • Informix, IBM DB2, Oracle 8i • Early work done in POSTGRES research project at Berkeley
Relazioni • Insiemi D1, D2,…,Dn • finiti o infiniti, detti domini • Prodotto cartesiano P = D1 x D2 x … x Dn P = (v1, v2, …, vn): i n vi Di n – upla o tupla
Relazioni • Relazione R P • n grado o arità della relazione • m numero delle tuple di R cardinalità della relazione • Nelle Basi di Dati: cardinalità finita
Tabelle • Rappresentazione grafica delle relazioni • D1 = L’Aquila, Roma, Pescara • D2 = Maria, Carlo • D1 x D2 • Una colonna per ogni dominio Di • Una riga per ogni tupla
Tabelle • Relazione R • Cardinalità 2 • Le tuple sono distinte • Le tuple non sono ordinate Residenza
Attributi • I valori all’interno di una tupla sono ordinati • (v1, v2, …, vn)R • v1 D1, v2 D2, …, vn Dn • Ad ogni valore associamo un Nome, detto Attributo Residenza
Attributi • D = D1,…,Dn Domini • x = {A1, A2, …, An} Attributi • DOM: xD associa Ai a Dj • assegna un dominio ad ogni attributo • Tupla: (A1,…,An) (v1,…, vn) vi Di
Basi di Dati Relazionali • Composte da varie relazioni • Sotto forma di tabelle • Collegate fra loro mediante Attributi comuni • non necessariamente con lo stesso nome • ma con lo stesso valore
Basi di Dati Relazionali • Vantaggi: schema logico indipendente dall’implementazione • Comprensibilità • Usabilità • Portabilità • Indipendenza fisica
Orario Chimica Fisica I Basi di dati Sistemi inform. Analisi matem. I Fisica II Insegnamento Piero Rossi Mario Bruni Nicola Mori Piero Rossi Docente Luigi Neri Mario Bruni N1 N1 N3 N3 Aula N1 N2 11:45 9:45 8:00 9:45 9:45 8:00 Ora Esempio di tabella
Orario Chimica Insegnamento Fisica II Fisica I Analisi matem. I Sistemi inform. Basi di dati Docente Luigi Neri Piero Rossi Mario Bruni Nicola Mori Mario Bruni Piero Rossi N3 N3 N1 N2 N1 N1 Aula 8:00 9:45 Ora 11:45 9:45 8:00 9:45 Basi di dati: schema e istanza Lo schema della base di dati L'istanza 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 istanza • In ogni base di dati esistono: • lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale) • es.: le intestazioni delle tabelle • l’istanza, i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale) • es.: il “corpo” di ciascuna tabella Ex
Modello Relazionale • Schema di relazione • Simbolo R: Nome della relazione • Insieme X = A1,…,An: Nomi degli attributi (ognuno legato a un dominio Di • Notazione: R(X) • Schema di base di dati R = R1(X1),R2(X2),…Rk(Xk) Ri distinti
Modello Relazionale • Istanza di Relazione su R(X) • Insieme r di tuple su X • Istanza di Base di dati su R: • Insieme r = r1,…,rk di relazioni, • ri su Ri(Xi), i k
Modello Relazionale • Terminologia Attributi: • lettere finali alfabeto X, Y, Z Insiemi • lettere iniziali alfabeto A, B, C attributi singoli X = A B C X = A, B, C Relazioni: R, S t[Y]: tupla t ristretta agli attributi dell’insieme Y
Modello Relazionale • Valore nullo: • Valore distinto, aggiuntivo rispetto ai domini • NULL = assenza di informazioni • Valore non noto • Valore inesistente (non definito) • Valore non significativo
(super) chiave • Insieme di attributi che identifica univocamente una tupla • In 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 minimale • non esiste K1 K superchiave
Chiavi • Notare che: • Nota1: per relazione R(X), X è sempre superchiave • Nota2: 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 un’unica chiave primaria • non sono ammessi valori nulli sugli attributi di KP
Keys • Keys are a way to associate tuples in different relations • Keys are one form of integrity constraint (IC) Enrolled Students PRIMARY Key FOREIGN Key
Vincoli di Integrità • Proprietà che devono essere soddisfatte dalle istanze • Predicati (valore vero/falso) • Selezionano istanze ammissibili • Introducono • Limitazione sui domini • Collegamenti obbligatori fra tabelle • Proibizione di valori nulli • Limitazioni 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 legalinstance 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!
Keys • Keys are a way to associate tuples in different relations • Keys are one form of integrity constraint (IC) Enrolled Students PRIMARY Key FOREIGN Key
Vincoli di Integrità • Esempio: vincolo di chiave • relazione deve esistere una chiave primaria • No valori coincidenti per tuple diverse • No valori nulli su attributi componenti le chiavi
Classi diVincoli • I vincoli di integrità possono essere • Intrarelazionali (su singole relazioni) • Interrelazionali (coinvolgono varie relazioni)
Classi diVincoli • Classi di vincoli intrarelazionali: • di Tupla: verificabili sulla tupla singola • di Dominio: restrizione sul dominio dell’attributo • Globali: occorre considerare l’intera istanza
Vincoli di Integrità Referenziale • Vincolo interrelazionale: relazioni in correlazione fra loro • Mediante attributi comuni • Modello relazionale: basato su valori
Il modello è basato su valori • i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple