Basi di Dati Concetti e Principi Generali Stefania
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 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 Data Definition Language (DDL) • Definizione schemi • Definizione autorizzazioni di accesso
Linguaggi per Basi di 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 DB 2, Oracle 8 i • Early work done in POSTGRES research project at Berkeley
Relazioni § Insiemi D 1, D 2, …, Dn finiti o infiniti, detti domini § Prodotto cartesiano P = D 1 x D 2 x … x Dn P = (v 1, v 2, …, 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 D 1 = L’Aquila, Roma, Pescara D 2 = Maria, Carlo D 1 x D 2 • Una colonna per ogni dominio Di • Una riga per ogni tupla L’Aquila Maria L’Aquila Carlo Roma Maria Roma Carlo Pescara Maria Pescara Carlo
Tabelle § Relazione R • Cardinalità 2 • Le tuple sono distinte • Le tuple non sono ordinate Residenza L’Aquila Maria Pescara Carlo
Attributi § § I valori all’interno di una tupla sono ordinati (v 1, v 2, …, vn) R v 1 D 1, v 2 D 2, …, vn Dn Ad ogni valore associamo un Nome, detto Attributo Residenza CITTA’ PERSONA L’Aquila Maria Pescara Carlo
Attributi • D = D 1, …, Dn Domini • x = {A 1, A 2, …, An} Attributi • DOM: x D associa Ai a Dj assegna un dominio ad ogni attributo • Tupla: (A 1, …, An) (v 1, …, 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
Esempio di tabella Orario Insegnamento Docente Aula Ora Analisi matem. I Luigi Neri N 1 8: 00 Basi di dati Piero Rossi N 2 9: 45 Chimica Nicola Mori N 1 9: 45 Fisica I Mario Bruni N 1 11: 45 Fisica II Mario Bruni N 3 9: 45 Sistemi inform. Piero Rossi N 3 8: 00
Basi di dati: schema e istanza Lo schema della base di dati Orario Insegnamento Docente Aula Ora Analisi matem. I Luigi Neri N 1 8: 00 Basi di dati Piero Rossi N 2 9: 45 Chimica Nicola Mori N 1 9: 45 Fisica I Mario Bruni N 1 11: 45 Fisica II Mario Bruni N 3 9: 45 Sistemi inform. Piero Rossi N 3 8: 00 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 = A 1, …, An : Nomi degli attributi (ognuno legato a un dominio Di • Notazione: R(X) § Schema di base di dati R = R 1(X 1), R 2(X 2), …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 = r 1, …, 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 t 1, t 2 r tali che t 1[K] = t 2[K] • K chiave se è una superchiave minimale non esiste K 1 K superchiave
Chiavi § Notare che: • Nota 1: per relazione R(X), X è sempre superchiave • Nota 2: una superchiave perde di significato se le tuple contengono valori nulli 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 FOREIGN Key Students PRIMARY 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 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!
Keys • Keys are a way to associate tuples in different relations • Keys are one form of integrity constraint (IC) Enrolled FOREIGN Key Students PRIMARY 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 di. Vincoli § I vincoli di integrità possono essere • Intrarelazionali (su singole relazioni) • Interrelazionali (coinvolgono varie relazioni)
Classi di. Vincoli • 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
Vincoli di Integrità Referenziale § Stesso nome? Non necessariamente § Stessi valori? Si, è necessario che i valori che l’attributo comune assume nelle relazioni correlate siano consistenti § Come assicurarlo? I valori dell’attributo comune devono essere significativi e univoci
Un esempio di incroci su valori Corso Docente Aula Basi di dati Rossi DS 3 Neri N 3 Sistemi Bruni N 3 Reti Bruni G Controlli Aule Nome DS 1 N 3 G Edificio OMI Pincherle • Aula DS 3 non compare fra le Aule: – vincolo intra-relazionale violato Piano Terra Primo
studenti Matricola Cognome 6554 Rossi 8765 Neri 9283 Verdi 3456 Rossi esami Studente 3456 9283 6554 corsi Codice 01 02 04 Nome Mario Paolo Luisa Maria Voto 30 24 28 26 Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Corso 04 02 01 01 Titolo Docente Analisi Mario Chimica Bruni Chimica Verdi
studenti Matricola Cognome 6554 Rossi 8765 Neri 9283 Verdi 3456 Rossi esami Studente corsi Codice 01 02 04 Nome Mario Paolo Luisa Maria Voto 30 24 28 26 Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Corso Titolo Docente Analisi Mario Chimica Bruni Chimica Verdi
Foreign Keys, Referential Integrity • Foreign key : Set of fields in one relation that is used to `refer’ to a tuple in another relation. – Must correspond to the primary key of the other relation. – Like a `logical pointer’. • If all foreign key constraints are enforced, referential integrity is achieved (i. e. , no dangling references. )
Foreign Keys • E. g. Only students listed in the Students relation should be allowed to enroll for courses. – sid is a foreign key referring to Students: Enrolled 11111 English 102 A Students
Vincoli di Integrità Referenziale FOREIGN KEY § Date le relazioni R 1 ed R 2 § Dato un insieme di attributi X di R 1 § Date due istanze di R 1 ed R 2 Il vincolo impone che: • I valori di X in ciascuna tupla dell’istanza data di R 1 • Compaiano come valori della chiave primaria di una qualche tupla dell’istanza di R 2
Vincoli di Integrità Referenziale § Caso Base: chiave di R 2 unica, con un solo attributo B • X è composto da un solo attributo A tupla t 1 R 1 tupla t 2 R 2: t 1[A] = t 2[B] § Caso generale K = A 1, A 2, …, AR ordinati chiave di R 2 X = B 1, B 2, …, BR ordinati tupla t 1 R 1 tupla t 2 R 2: i r t 1[Bi] = t 2[Ai]
Chiavi: Sommario • Primary key – A unique identifier of a row in a relation – Can be composite • Candidate key – An attribute (or set of attributes) that could be a primary key • Alternate key – A candidate key that is not selected as the primary key • Foreign key – An attribute of a relation that is the primary key of a relation – Can be composite
- Slides: 59