Modelli Logici e Modello Relazionale

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

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?

  • 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?

  • 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?

<p>E.F. Codd nel 1970 (A)</p> Signup and view all the answers

Qual è lo scopo principale del modello relazionale secondo E.F. Codd?

<p>Favorire l'indipendenza dei dati (B)</p> Signup and view all the answers

In quale anno il modello relazionale è diventato disponibile nei DBMS reali?

<p>1981 (C)</p> Signup and view all the answers

Cosa utilizzano i modelli logici gerarchici e reticolari per stabilire relazioni tra i record?

<p>Riferimenti espliciti (puntatori) (D)</p> Signup and view all the answers

Qual è il fondamento matematico del modello relazionale?

<p>Concetto di relazione (C)</p> Signup and view all the answers

Come vengono rappresentate le relazioni nel modello relazionale?

<p>Tabelle (B)</p> Signup and view all the answers

Cos'è l'A.M. Turing Award?

<p>Un premio assegnato annualmente per contributi nel campo dell'informatica (B)</p> Signup and view all the answers

Da chi viene assegnato l'A.M. Turing Award?

<p>ACM (A)</p> Signup and view all the answers

A chi è intitolato il premio Nobel dell'informatica, noto anche come Turing Award?

<p>Alan Mathison Turing (B)</p> Signup and view all the answers

Per quale contributo è noto Edgar Codd, vincitore del Turing Award nel 1981?

<p>Creazione dei database relazionali (C)</p> Signup and view all the answers

Quale proprietà distingue una struttura non posizionale in un modello di dati?

<p>Ogni dominio ha un nome unico (attributo) che descrive il suo ruolo (D)</p> Signup and view all the answers

Cosa rappresenta un 'attributo' in una struttura non posizionale?

<p>Un nome unico che descrive il ruolo di un dominio nella tabella (C)</p> Signup and view all the answers

Nel contesto dei modelli relazionali, cosa si intende quando si afferma che 'il modello relazionale è basato sui valori'?

<p>I riferimenti tra diverse relazioni sono rappresentati tramite i valori dei domini (B)</p> Signup and view all the answers

Cosa rappresenta lo schema di una relazione?

<p>Un simbolo (nome della relazione) e un insieme di attributi (C)</p> Signup and view all the answers

Cos'è lo schema di base di dati?

<p>Un insieme di schemi di relazione con nomi diversi (D)</p> Signup and view all the answers

Cosa denota il simbolo t[A]?

<p>Il valore della n-upla <code>t</code> sull'attributo <code>A</code> (C)</p> Signup and view all the answers

Cosa si intende per 'istanza di relazione'?

<p>Un insieme di n-uple su un determinato schema (D)</p> Signup and view all the answers

Qual è il problema principale delle strutture nidificate nel contesto del modello relazionale?

<p>Violano il principio che i valori devono essere semplici, non relazioni (D)</p> Signup and view all the answers

Cosa significa che il modello relazionale impone una 'struttura rigida' ai dati?

<p>Il formato delle n-uple deve corrispondere esattamente agli schemi di relazione definiti (C)</p> Signup and view all the answers

Qual è una soluzione comunemente adottata per gestire le informazioni incomplete in un database relazionale?

<p>Aggiungere un valore distinto (valore nullo) a tutti i domini (D)</p> Signup and view all the answers

Quali sono almeno tre casi differenti di tipi di valore nullo?

<p>Valore sconosciuto, valore inesistente e valore senza informazione (B)</p> Signup and view all the answers

Cosa si intende per 'vincoli di integrità' in un database relazionale?

<p>Proprietà che, se soddisfatte, esprimono la 'correttezza' dei dati rispetto all'applicazione (C)</p> Signup and view all the answers

A cosa corrispondono i vincoli di integrità?

<p>Proprietà del mondo reale modellato dalla base di dati (B)</p> Signup and view all the answers

Qual è il risultato di un vincolo di integrità?

<p>Vero o falso (B)</p> Signup and view all the answers

Qual è la differenza tra un vincolo intra-relazionale e un vincolo inter-relazionale?

<p>Il primo riguarda una singola relazione, il secondo coinvolge più relazioni (B)</p> Signup and view all the answers

Quale dei seguenti è un esempio di vincolo di dominio?

<p><code>Voto</code> deve essere maggiore o uguale a 18 e inferiore o uguale a 30 (C)</p> Signup and view all the answers

Quale dei seguenti è un esempio di vincolo inter-relazionale?

<p>Un codice corso nella tabella 'Esami' deve esistere nella tabella 'Corsi' (D)</p> Signup and view all the answers

Come vengono identificate univocamente le n-uple in una relazione?

<p>Tramite un insieme di attributi chiamato chiave (C)</p> Signup and view all the answers

Cos'è una superchiave?

<p>Un insieme di attributi che identifica univocamente le n-uple in una relazione (D)</p> Signup and view all the answers

Cos'è una chiave in un database relazionale?

<p>Una superchiave minimale (C)</p> Signup and view all the answers

Se una relazione ha più di una chiave, come viene gestita la scelta della chiave principale?

<p>Viene scelta una delle chiavi e dichiarata chiave primaria (D)</p> Signup and view all the answers

Cosa sono le 'chiavi candidate'?

<p>Le altre chiavi oltre alla chiave primaria (C)</p> Signup and view all the answers

Qual è l'effetto della presenza di valori nulli nelle chiavi?

<p>Impediscono di identificare univocamente le n-uple (D)</p> Signup and view all the answers

Cosa sono le 'dipendenze funzionali'?

<p>Vincoli che specificano come i valori degli attributi sono interdipendenti (C)</p> Signup and view all the answers

Quando si dice che un attributo X 'determina' un attributo Y?

<p>Se, per ogni valore di X, esiste un solo valore corrispondente di Y (C)</p> Signup and view all the answers

Cos'è l'integrità referenziale?

<p>Un vincolo che assicura che i riferimenti tra tabelle siano validi (C)</p> Signup and view all the answers

Cos'è una chiave esterna?

<p>Un attributo in una relazione che corrisponde a una chiave primaria di un'altra relazione (D)</p> Signup and view all the answers

In che modo i valori nulli influenzano i vincoli di integrità referenziale?

<p>I vincoli possono essere resi meno restrittivi (C)</p> Signup and view all the answers

Quali operazioni possono causare violazioni dei vincoli di integrità in un database?

<p>Inserimento, cancellazione e modifica (A)</p> Signup and view all the answers

Quali sono le possibili reazioni a una violazione di un vincolo in un database?

<p>Rifiuto dell'operazione, eliminazione in cascata, introduzione di valori nulli (D)</p> Signup and view all the answers

Flashcards

Modello Relazionale

Un modello logico che rappresenta i dati basandosi su valori, non su puntatori.

Turing Award

Un premio annuale per contributi significativi all'informatica.

Modello relazionale di Codd

Proposto da E. F. Codd nel 1970, favorisce l'indipendenza dei dati e usa tabelle.

Attributo

Un insieme di attributi con nome univoco in una tabella.

Signup and view all the flashcards

Riferimenti nel modello relazionale

I riferimenti tra dati in tabelle diverse si basano sui valori dei domini.

Signup and view all the flashcards

Schema di relazione

Un simbolo e un insieme di attributi (colonne) che descrivono una tabella.

Signup and view all the flashcards

Schema di base di dati

Insieme di schemi di relazione (tabelle) con nomi diversi.

Signup and view all the flashcards

n-upla o tupla

Una funzione che associa un valore a ogni attributo di una tupla.

Signup and view all the flashcards

Istanza di relazione

Insieme di n-uple (righe) che soddisfano lo schema di relazione.

Signup and view all the flashcards

Valore nullo

Un valore aggiunto ai domini per indicare che un dato è sconosciuto o inesistente.

Signup and view all the flashcards

Vincolo di Integrità

Proprietà della base di dati che, se soddisfatte, esprimono la sua correttezza rispetto all'applicazione.

Signup and view all the flashcards

Vincolo Intra-relazionale

Definito rispetto a una singola relazione, come un voto tra 18 e 30.

Signup and view all the flashcards

Vincolo Inter-relazionale

Definito tra più relazioni, come la corrispondenza di una matricola.

Signup and view all the flashcards

Chiave

Insieme di attributi che identificano univocamente ogni riga nella tabella.

Signup and view all the flashcards

Chiave Primaria

Una chiave minimale, scelta tra le chiavi candidate, a identificare univocamente le righe di una tabella.

Signup and view all the flashcards

Integrità Referenziale

Vincolo di integrità che impone ai valori degli attributi di una relazione di comparire come valori della chiave primaria di un'altra.

Signup and view all the flashcards

Dipendenze Funzionali

Particolari categorie di vincoli che esprimono che il valore di un attributo determina il valore di un altro.

Signup and view all the flashcards

Chiave Esterna (Foreign Key)

Un insieme di attributi di una relazione che corrispondono a una chiave primaria di un'altra relazione.

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.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser