Podcast
Questions and Answers
Quale dei seguenti è un modello logico tradizionale per i database?
Quale dei seguenti è un modello logico tradizionale per i database?
- Relazionale (correct)
- NoSQL
- Orientato agli oggetti
- Basato su XML
Quale caratteristica distingue i modelli gerarchici e reticolari rispetto al modello relazionale?
Quale caratteristica distingue i modelli gerarchici e reticolari rispetto al modello relazionale?
- Utilizzano il linguaggio XML per la gestione dei dati
- Sono orientati agli oggetti
- Utilizzano riferimenti espliciti tra i record (correct)
- Si basano su valori anziché su riferimenti espliciti
Su cosa si basa principalmente il modello relazionale per rappresentare i riferimenti tra i dati?
Su cosa si basa principalmente il modello relazionale per rappresentare i riferimenti tra i dati?
- Valori dei dati stessi (correct)
- Puntatori espliciti tra record
- Indici basati sulla posizione dei dati
- Strutture ad albero gerarchiche
Chi ha proposto il modello relazionale e in quale anno?
Chi ha proposto il modello relazionale e in quale anno?
Qual è lo scopo principale del modello relazionale secondo E.F. Codd?
Qual è lo scopo principale del modello relazionale secondo E.F. Codd?
In quale anno il modello relazionale è diventato disponibile nei DBMS reali?
In quale anno il modello relazionale è diventato disponibile nei DBMS reali?
Cosa utilizzano i modelli logici gerarchici e reticolari per stabilire relazioni tra i record?
Cosa utilizzano i modelli logici gerarchici e reticolari per stabilire relazioni tra i record?
Qual è il fondamento matematico del modello relazionale?
Qual è il fondamento matematico del modello relazionale?
Come vengono rappresentate le relazioni nel modello relazionale?
Come vengono rappresentate le relazioni nel modello relazionale?
Cos'è l'A.M. Turing Award?
Cos'è l'A.M. Turing Award?
Da chi viene assegnato l'A.M. Turing Award?
Da chi viene assegnato l'A.M. Turing Award?
A chi è intitolato il premio Nobel dell'informatica, noto anche come Turing Award?
A chi è intitolato il premio Nobel dell'informatica, noto anche come Turing Award?
Per quale contributo è noto Edgar Codd, vincitore del Turing Award nel 1981?
Per quale contributo è noto Edgar Codd, vincitore del Turing Award nel 1981?
Quale proprietà distingue una struttura non posizionale in un modello di dati?
Quale proprietà distingue una struttura non posizionale in un modello di dati?
Cosa rappresenta un 'attributo' in una struttura non posizionale?
Cosa rappresenta un 'attributo' in una struttura non posizionale?
Nel contesto dei modelli relazionali, cosa si intende quando si afferma che 'il modello relazionale è basato sui valori'?
Nel contesto dei modelli relazionali, cosa si intende quando si afferma che 'il modello relazionale è basato sui valori'?
Cosa rappresenta lo schema di una relazione?
Cosa rappresenta lo schema di una relazione?
Cos'è lo schema di base di dati?
Cos'è lo schema di base di dati?
Cosa denota il simbolo t[A]
?
Cosa denota il simbolo t[A]
?
Cosa si intende per 'istanza di relazione'?
Cosa si intende per 'istanza di relazione'?
Qual è il problema principale delle strutture nidificate nel contesto del modello relazionale?
Qual è il problema principale delle strutture nidificate nel contesto del modello relazionale?
Cosa significa che il modello relazionale impone una 'struttura rigida' ai dati?
Cosa significa che il modello relazionale impone una 'struttura rigida' ai dati?
Qual è una soluzione comunemente adottata per gestire le informazioni incomplete in un database relazionale?
Qual è una soluzione comunemente adottata per gestire le informazioni incomplete in un database relazionale?
Quali sono almeno tre casi differenti di tipi di valore nullo?
Quali sono almeno tre casi differenti di tipi di valore nullo?
Cosa si intende per 'vincoli di integrità' in un database relazionale?
Cosa si intende per 'vincoli di integrità' in un database relazionale?
A cosa corrispondono i vincoli di integrità?
A cosa corrispondono i vincoli di integrità?
Qual è il risultato di un vincolo di integrità?
Qual è il risultato di un vincolo di integrità?
Qual è la differenza tra un vincolo intra-relazionale e un vincolo inter-relazionale?
Qual è la differenza tra un vincolo intra-relazionale e un vincolo inter-relazionale?
Quale dei seguenti è un esempio di vincolo di dominio?
Quale dei seguenti è un esempio di vincolo di dominio?
Quale dei seguenti è un esempio di vincolo inter-relazionale?
Quale dei seguenti è un esempio di vincolo inter-relazionale?
Come vengono identificate univocamente le n-uple in una relazione?
Come vengono identificate univocamente le n-uple in una relazione?
Cos'è una superchiave?
Cos'è una superchiave?
Cos'è una chiave in un database relazionale?
Cos'è una chiave in un database relazionale?
Se una relazione ha più di una chiave, come viene gestita la scelta della chiave principale?
Se una relazione ha più di una chiave, come viene gestita la scelta della chiave principale?
Cosa sono le 'chiavi candidate'?
Cosa sono le 'chiavi candidate'?
Qual è l'effetto della presenza di valori nulli nelle chiavi?
Qual è l'effetto della presenza di valori nulli nelle chiavi?
Cosa sono le 'dipendenze funzionali'?
Cosa sono le 'dipendenze funzionali'?
Quando si dice che un attributo X 'determina' un attributo Y?
Quando si dice che un attributo X 'determina' un attributo Y?
Cos'è l'integrità referenziale?
Cos'è l'integrità referenziale?
Cos'è una chiave esterna?
Cos'è una chiave esterna?
In che modo i valori nulli influenzano i vincoli di integrità referenziale?
In che modo i valori nulli influenzano i vincoli di integrità referenziale?
Quali operazioni possono causare violazioni dei vincoli di integrità in un database?
Quali operazioni possono causare violazioni dei vincoli di integrità in un database?
Quali sono le possibili reazioni a una violazione di un vincolo in un database?
Quali sono le possibili reazioni a una violazione di un vincolo in un database?
Flashcards
Modello Relazionale
Modello Relazionale
Un modello logico che rappresenta i dati basandosi su valori, non su puntatori.
Turing Award
Turing Award
Un premio annuale per contributi significativi all'informatica.
Modello relazionale di Codd
Modello relazionale di Codd
Proposto da E. F. Codd nel 1970, favorisce l'indipendenza dei dati e usa tabelle.
Attributo
Attributo
Signup and view all the flashcards
Riferimenti nel modello relazionale
Riferimenti nel modello relazionale
Signup and view all the flashcards
Schema di relazione
Schema di relazione
Signup and view all the flashcards
Schema di base di dati
Schema di base di dati
Signup and view all the flashcards
n-upla o tupla
n-upla o tupla
Signup and view all the flashcards
Istanza di relazione
Istanza di relazione
Signup and view all the flashcards
Valore nullo
Valore nullo
Signup and view all the flashcards
Vincolo di Integrità
Vincolo di Integrità
Signup and view all the flashcards
Vincolo Intra-relazionale
Vincolo Intra-relazionale
Signup and view all the flashcards
Vincolo Inter-relazionale
Vincolo Inter-relazionale
Signup and view all the flashcards
Chiave
Chiave
Signup and view all the flashcards
Chiave Primaria
Chiave Primaria
Signup and view all the flashcards
Integrità Referenziale
Integrità Referenziale
Signup and view all the flashcards
Dipendenze Funzionali
Dipendenze Funzionali
Signup and view all the flashcards
Chiave Esterna (Foreign Key)
Chiave Esterna (Foreign Key)
Signup and view all the flashcards
Study Notes
Modelli Logici
- I tre modelli logici tradizionali sono gerarchico, reticolare e relazionale.
- I modelli più recenti includono quelli a oggetti, basati su XML e NoSQL.
- I modelli gerarchico e reticolare usano riferimenti espliciti (puntatori) tra i record.
- Il modello relazionale è basato su valori.
- Anche i riferimenti tra dati in strutture diverse sono rappresentati per mezzo dei valori stessi.
Esempio di Modello Relazionale
- Il modello relazionale include tabelle come "Studenti," "Esami," e "Corsi."
- La tabella "Studenti" contiene attributi come Matricola, Cognome, Nome e Nascita.
- La tabella "Esami" include Studente, Voto e Corso.
- La tabella "Corsi" comprende Codice, Titolo e Docente.
Modello Relazionale: Origini e Concetti
- E. F. Codd lo ha proposto nel 1970 per favorire l'indipendenza dei dati.
- Divenne disponibile nei DBMS reali nel 1981.
- Si basa sul concetto matematico di relazione.
- È rappresentato naturalmente attraverso tabelle.
Turing Award
- L'ACM assegna annualmente il Turing Award.
- Premia personalità eccellenti per i contributi tecnici all'informatica.
- È spesso chiamato "premio Nobel dell'informatica" ed è intitolato ad Alan Mathison Turing.
Alcuni Vincitori del Turing Award
- 1971: John McCarthy (USA), Padre dell'AI
- 1972: Edsger Dijkstra (NL), Algoritmo del cammino minimo
- 1975: Donald Knuth (USA), Arte della programmazione
- 1977: John Backus (USA), FORTRAN
- 1981: Edgar Codd (USA), Database relazionali
- 1998: Jim Gray (USA), Database transazionali
- 2004: V. Cerf, R. Kahn (USA), TCP/IP
- 2014: M. Stonebaker (USA), Database moderni
- 2016: Tim Berners Lee (UK), World Wide Web
- 2018: Bengio, Hinton, Lecun (CA), Padrini dall'AI
Relazione "Studenti e Caffè Bevuti"
- S = {Alice, Bob, Chiara, Davide} è l'insieme degli studenti universitari.
- C = {1, 2, 3, 4} è l'insieme delle quantità di caffè bevuti al giorno.
- R = { (Alice, 2), (Bob, 3), (Chiara, 1), (Davide, 4) } descrive quanti caffè beve ogni studente al giorno.
Esempio di Relazione Matematica
- D₁ = {a, b} è un insieme.
- D₂ = {x, y, z} è un insieme.
- D₁ × D₂ = {(a, x), (a, y), (a, z), (b, x), (b, y), (b, z)} è il prodotto cartesiano.
- R = {(a, x), (a, z), (b, y)} ⊆ D₁ × D₂ è una relazione.
Relazione Matematica: Concetti Chiave
- Dati n insiemi (anche non distinti) D₁, D₂, ..., Dₙ.
- Il prodotto cartesiano D₁ × D₂ × ... × Dₙ è l'insieme di tutte le n-uple (d₁, d₂, ..., dₙ) tali che d₁ ∈ D₁, d₂ ∈ D₂, ..., dₙ ∈ Dₙ.
- Una relazione (matematica) è un sottoinsieme di D₁ × D₂ × ... × Dₙ.
- Non c'è un ordinamento tra la n-uple, dette anche tuple e non esistono n-uple uguali.
- Ogni n-upla è ordinata: l'i-esimo valore di proviene dall'i-esimo insieme Dᵢ.
- Gli insiemi D₁, D₂, ..., Dₙ sono i domini della relazione.
Esempio di Relazione Matematica
- Partite ⊆ String × String × ℕ × ℕ, dove ℕ rappresenta i numeri naturali.
- Ciascuno dei domini "ripetuti" ha due ruoli diversi, distinguibili attraverso la posizione.
- La struttura è posizionale.
Struttura Non Posizionale
- Ad ogni dominio si associa un nome unico nella tabella, chiamato attributo.
- L'attributo descrive il ruolo del dato.
Il Modello Relazionale: Valori come Fondamento
- I riferimenti fra dati in relazioni diverse sono rappresentati tramite valori dei domini che compaiono nelle n-uple.
Definizioni nel Modello Relazionale
- Schema di relazione: Un simbolo R (nome della relazione) e un insieme di attributi X = {A₁, ..., Aₙ}, indicato come R(X).
- Ogni attributo è associato a un dominio.
- Schema di base di dati: un insieme di schemi di relazione con nomi diversi, indicato come R = {R₁(X₁), ..., Rₘ(Xₘ)}.
Definizioni Chiave
- Una n-upla o tupla su un insieme di attributi X è una funzione che associa a ciascun attributo A ∈ X un elemento, o valore, nel dominio di A.
- Il simbolo t[A] denota il valore della n-upla t sull'attributo A.
- Il simbolo t[Y], con Y ⊆ X, denota il valore della n-upla t sull'insieme di attributi Y.
Definizioni: Istanza di Relazione e Base di Dati
- (Istanza di) relazione su uno schema R(X): insieme r di n-uple su X.
- (Istanza di) base di dati su uno schema R = {R₁(X₁), ..., Rₘ(Xₘ)}: insieme di relazioni r = {r₁, ..., rₘ} dove ogni rᵢ è una relazione sullo schema Rᵢ(Xᵢ).
Esempio di Schema di Base di Dati
- X₁ = {Matricola, Cognome, Nome, Nascita}
- X₂ = {Studente, Voto, Corso}
- X₃ = {Codice, Titolo, Docente}
- R₁ = Studenti
- R₂ = Esami
- R₃ = Corsi
- R = {R₁(X₁), R₂(X₂), R₃(X₃)} = {Studenti(Matricola, Cognome, Nome, Nascita), Esami(Studente, Voto, Corso), Corsi(Codice, Docente, Titolo)}
Dati Incompleti e Valori Nulli
- Non conviene utilizzare valori "particolari" del dominio come 0, stringa nulla, "99".
- È preferibile usare un valore distinto aggiunto a tutti i domini.
- Valore nullo denota l'assenza di un valore del dominio.
- Se i valori dell'attributo A appartengono al dominio DA, t[A] è un valore del dominio oppure il valore nullo NULL.
- Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli in una relazione.
Tipi di Valore Nullo
- Esistono almeno tre casi differenti di valore nullo: valore sconosciuto, valore inesistente, valore senza informazione.
- I DBMS non distinguono i tipi di valore nullo.
Basi di Dati "Scorrette"
- Esistono istanze di basi di dati che non rappresentano informazioni possibili per l'applicazione di interesse, anche se sintatticamente corrette.
Vincoli di Integrità: Definizione e Scopo
- Si devono associare alla base di dati delle proprietà che, se soddisfatte, esprimono la sua "correttezza" rispetto all'applicazione.
- Queste proprietà si chiamano vincoli di integrità.
- Permettono una descrizione più accurata della realtà e contribuiscono alla "qualità dei dati".
- Sono utili nella progettazione e vengono usati dai DBMS nell'esecuzione delle interrogazioni.
Vincoli di Integrità: Corrispondenza e Validità
- I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati e interessano tutte le istanze.
- Le istanze sono considerate corrette se soddisfano tutti i vincoli.
Vincoli di Integrità: Funzione Booleana e Tipi
- Un vincolo di integrità è una funzione booleana (predicato) che associa, a ogni istanza della base dati, il valore vero o falso.
- Se il predicato associa vero, allora la proprietà è soddisfatta.
- Esistono due tipi di vincoli di integrità: intra-relazionali e inter-relazionali.
Vincoli Intra-relazionali
- Il soddisfacimento è definito rispetto a una singola relazione della base di dati.
- Esempio di vincolo di n-upla: (Voto = 30) OR NOT (Lode = "e lode").
- Esempio di vincolo di dominio: (Voto ≥ 18) AND (Voto ≤ 30).
Vincoli Inter-relazionali
- Il soddisfacimento è definito rispetto a più relazioni della base di dati.
- Esempio: "Un numero di matricola può comparire nella relazione Esami solo se compare nella relazione Studenti".
Identificazione delle n-uple
- Ogni n-upla è identificata univocamente
- Non ci sono due n-uple con lo stesso valore sull'attributo Matricola.
- Non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Nascita.
Chiave: Identificazione Univoca
- La chiave è un insieme di attributi che identificano univocamente le n-uple.
- Formalmente, un insieme K di attributi è una superchiave per una relazione r se r non contiene due n-uple distinte t₁ e t₂ con t₁[K] = t₂[K].
- K è una chiave per r se è una superchiave minimale di r (cioè non contiene un'altra superchiave).
Chiave Primaria: Definizione e Funzione
- È una delle chiavi scelte e dichiarate come primaria.
- Le altre chiavi sono chiamate candidate.
- Ogni relazione ha una chiave primaria.
- Gli attributi di una chiave primaria sono solitamente "sottolineati".
Dipendenze Funzionali: Definizione e Uso
- Le dipendenze funzionali sono vincoli in cui, dati due insiemi di attributi X e Y sulla relazione R, X determina Y (X → Y) se e solo se date due n-uple distinte t₁ e t₂, se t₁[X] = t₂[X] allora t₁[Y] = t₂[Y].
- Possono essere usate per garantire opportune proprietà di una base di dati.
Integrità Referenziale: Collegamento tra Tabelle
- In una relazione, un insieme di attributi che corrispondono a una chiave primaria di un'altra relazione è chiamato chiave esterna (foreign key), simile a un "puntatore logico".
- Informazioni in relazioni diverse possono esssere correlate attraverso valori comuni
Vincolo di Integrità Referenziale: Definizoni ed Effetti
- Un vincolo di integrità referenziale fra gli attributi X di una relazione R₁ (chiave esterna di R₁) e un'altra relazione R₂ impone ai valori su X in R₁ di comparire come valori della chiave primaria di R₂.
- L'ordine degli attributi è significativo.
Operazioni di Aggiornamento e Integrità
- Le operazioni di inserimento possono causare violazioni dei vincoli intra-relazionali e dell'integrità referenziale.
- Le operazioni di cancellazione possono causare violazioni dell'integrità referenziale.
- Le operazioni di modifica sono equivalenti a cancellazione + inserimento.
Reazione alla Violazione di Vincoli
- Si cerca di inserire nella base di dati un valore non consentito per quell'attributo
- Sono possibili meccanismi per il supporto alla gestione delle violazioni ("azioni compensative")
Azioni Compensative
- Esempio: viene eliminata una n-upla, causando una violazione
- Le azioni compensative includono:
- Rifiuto dell'operazione
- Eliminazione in cascata
- Introduzione di valori NULL
Esercizio: Tabelle AUTORE e LIBRO
- AUTORE(Nome, Cognome, DataNascita, Nazionalità)
- LIBRO(Titolo, NomeAutore, CognomeAutore, Lingua)
Relazione e Eliminazione a Cascata
- Il primo aggiornamento cancella dalla tabella AUTORE tutte le tuple con Cognome = 'Rossi'.
- A causa della politica a cascata, anche tutte le n-uple di LIBRO con CognomeAutore = 'Rossi' vengono eliminate.
- Il secondo aggiornamento causa una violazione, a meno che la tabella AUTORE contenga già la n-upla "Umberto Eco".
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.