Informatica generale: basi di dati
Ricapitolando
Oggetto = tupla
Campi = Informazioni di interesse
Oggetto = “Membro dello Staff”
Informazioni di interesse = Codice, Cognome, Nome, Ruolo, Anno di assunzione
| Codice | Cognome | Nome | Ruolo | Assunzione |
|---|---|---|---|---|
| COD1 | Rossi | Mario | Analista | 1995 |
Tabella
Tabella = Insieme di tuple di tipo omogeneo
Tabella STAFF = Insieme di tuple di tipo “Membro dello Staff”
| Codice | Cognome | Nome | Ruolo | Assunzione |
|---|---|---|---|---|
| COD1 | Rossi | Mario | Analista | 1995 |
| COD2 | Bianchi | Pietro | Analista | 1990 |
| COD3 | Neri | Paolo | Amministratore | 1985 |
Il modello è basato su valori
I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple.
| Matricola | Cognome | Nome | Data di nascita |
|---|---|---|---|
| 6554 | Rossi | Mario | 05/12/1978 |
| 8765 | Neri | Paolo | 03/11/1979 |
| 9283 | Verdi | Luisa | 12/11/1979 |
| 3456 | Rossi | Maria | 01/02/1978 |
| Studente | Voto | Corso |
|---|---|---|
| 3456 | 30 | 04 |
| 3456 | 24 | 02 |
| 9283 | 28 | 01 |
| 6554 | 26 | 01 |
| Codice | Titolo | Docente |
|---|---|---|
| 01 | Analisi | Mario |
| 02 | Chimica | Bruni |
| 04 | Chimica | Verdi |
Valori nulli
- Rappresentano mancanza di informazione o il fatto che l’informazione non è applicabile
- Es. numero di telefono:
- La persona non ha il telefono
- Non so se la persona ha il telefono
- La persona ha il telefono ma non ne conosco il numero
- Non possiamo non inserire il campo!
NULL
- Cattiva abitudine: usare valori del dominio “inutilizzati”
- Potrebbero non esserci valori inutilizzati
- Potrebbero essere utilizzati in seguito
- Potrebbero falsare i calcoli (non conosco lo stipendio di un impiegato, ma uno 0 pesa in un calcolo del valore medio come un qualsiasi altro numero)
- NULL non è 0
- Valore speciale: NULL Attenzione! (numero intero)
- NULL: valore polimorfo = non appartiene a nessun dominio ma può sostituire valori in qualsiasi dominio
- Due valori NULL, anche se sullo stesso dominio, sono considerati diversi
Troppi valori nulli
| Matricola | Cognome | Nome | Data di nascita |
|---|---|---|---|
| 6554 | Rossi | Mario | 05/12/1978 |
| 9283 | Verdi | Luisa | 12/11/1979 |
| NULL | Rossi | Maria | 01/02/1978 |
| Studente | Voto | Corso |
|---|---|---|
| NULL | 30 | NULL |
| NULL | 24 | 02 |
| 9283 | 28 | 01 |
| Codice | Titolo | Docente |
|---|---|---|
| 01 | Analisi | Mario |
| 02 | NULL | NULL |
| 04 | Chimica | Verdi |
Una base di dati “scorretta”
| Codice | Cognome | Nome | Ruolo | Dip | Assunzione |
|---|---|---|---|---|---|
| COD1 | Rossi | Mario | Analista | 01 | 1795 |
| COD2 | Bianchi | Pietro | Analista | 05 | 1990 |
| COD2 | Neri | Paolo | Amministratore | 01 | 1985 |
| Numero | Nome |
|---|---|
| 01 | Progettazione |
| 02 | Amministrazione |
Sintatticamente è corretto…
Una base di dati "scorretta"
| Studente | Voto | Lode | Corso |
|---|---|---|---|
| 276545 | 30 | si | 02 |
| 787643 | 27 | si | 03 |
| 739430 | 15 | 04 |
| Matricola | Cognome | Nome |
|---|---|---|
| 276545 | Rossi | Mario |
| 787643 | Neri | Piero |
| 787643 | Bianchi | Luca |
Vincoli di integrità
- Vincolo di integrità: proprietà che deve essere soddisfatta da ogni istanza della base di dati (legata quindi allo schema).
- I vincoli descrivono proprietà specifiche del campo di applicazione, e quindi delle informazioni ad esso relative modellate attraverso la base di dati.
- Una istanza di base di dati è corretta se soddisfa tutti i vincoli di integrità associati al suo schema.
Come evitare le “scorrettezze”
| Codice | Cognome | Nome | Ruolo | Dip | Assunzione |
|---|---|---|---|---|---|
| COD1 | Rossi | Mario | Analista | 01 | 1795 |
| COD2 | Bianchi | Pietro | Analista | 05 | 1990 |
| COD2 | Neri | Paolo | Amministratore | 01 | 1985 |
| Numero | Nome |
|---|---|
| 01 | Progettazione |
| 02 | Amministrazione |
(Assunzione > 1980) COD2 UNIQUE
DIP REFERENCES DIPARTIMENTO.NUMERO
Come evitare le “scorrettezze”
| Studente | Voto | Lode | Corso |
|---|---|---|---|
| 276545 | 30 | si | 02 |
| 787643 | 27 | si | 03 |
| 739430 | 24 | 04 |
| Matricola | Cognome | Nome |
|---|---|---|
| 276545 | Rossi | Mario |
| 787643 | Neri | Piero |
| 787643 | Bianchi | Luca |
Studente references Studenti.Matricola
Matricola unique
(Voto ≥ 18) AND (Voto ≤ 30)
(Voto = 30) OR NOT (Lode = “si”)
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.