A BC, B A, C D
→ → →
si generano gli schemi:
- R1(ABC)
- R2(CD)
con A o B chiave in R1.
A, B, C niranno insieme e la chiave potrebbe essere A o potrebbe essere B
3) Si veri ca che esista uno schema la cui chiave è anche chiave dello schema originario (se non esiste lo
si crea).
Esempio: Supponiamo di avere la relazione R(ABCD), le cui dipendenze sono:
A→C, B →D
si generano gli schemi
- R1(AC)
- R2(BD)
- R3(AB)
4) Si veri ca se lo schema ottenuto è anche in BCNF Si noti che, se una relazione ha una sola chiave allora
le due forme normali coincidono. Se uno schema non è in BCNF si hanno tre alternative:
i. Si lascia così com’è, gestendo le anomalie residue;
ii. Si decompone in BCNF;
iii. Si cerca di rimodellare la situazione iniziale, al ne di permettere di ottenere schemi BCNF.
Esempio:
Esempio: Progetto, Sede Dirigente
Dirigente Sede
Superchiave: chiave che è ridondante.
Progetto e Sede è una superchiave, però Dirigente non lo è non possiamo
portare fuori alla forma BCNF bisogna rimodellare la situazione iniziale,
come aggiungere un ulteriore attributo.
Nell’esempio, introduciamo il concetto di Reparto per distinguere i dirigenti di una stessa sede (ogni dirigente
opera in un reparto di una sede, e viceversa).
Terza Forma Normale (3NF)
Uno schema R(X) è in terza forma normale se e solo se, per ogni dipendenza funzionale (non banale) Y →Z
de nita su di esso,
- Y è una superchiave di R(X) [lo stesso di Boyce-Codd].
Oppure - ogni attributo in Z è primo (cioè, contenuto in almeno una chiave di R(X)) attributo primo: attributi
che fanno parte delle chiavi candidate.
La de nizione è anche equivalente alla seguente:
Uno schema R(X) è in terza forma normale se e solo se ogni attributo non-primo non dipende transitivamente da
nessuna chiave.
Riassumendo:
Il signi cato delle forme normali viene di seguito riassunto:
1. Prima forma normale: una relazione si dice in prima forma normale quando rispetta i requisiti fondamentali
del modello relazionale, in particolare ogni attributo è elementare, non ci sono righe uguali e non ci sono
attributi ripetitivi.
2. Seconda forma normale: quando è in prima forma normale e non ci sono attributi non-chiave che
dipendono parzialmente dalla chiave.
3. Terza forma normale: quando è in seconda forma normale e non ci sono attributi non-chiave che
dipendono transitivamente dalla chiave.
Il modello relazionale richiede come obbligatoria solo la prima forma normale. Tuttavia, il passaggio alle forme
normali superiori consente di distinguere e separare con precisione gli oggetti, senza perdita di informazioni,
anche se viene generata una ridondanza di dati che però è costantemente sotto controllo.
ESEMPIO:
Consideriamo una relazione che descrive l’allocazione delle sale operatorie di un ospedale. Le sale operatorie
sono prenotate, giorno per giorno, in orari previsti, per effettuare interventi su pazienti ad opera dei chirurghi
dell’ospedale. Nel corso di una giornata una sala operatoria è occupata sempre dal medesimo chirurgo che
effettua più interventi, in ore diverse.
Noti i valori di Paziente e DataIntervento, sono noti anche: ora dell’intervento, chirurgo, e sala operatoria utilizzata.
Gli attributi della relazione Interventi sono descritti nello schema:
- Interventi (Paziente, DataIntervento, OraIntervento, Chirurgo, Sala).
In base alla precedente descrizione del caso in esame, nella relazione Interventi valgono le dipendenze funzionali:
A. Paziente, DataIntervento OraIntervento, Chirurgo, Sala
→
B. Chirurgo, DataIntervento, OraIntervento Paziente, Sala
→
C. Sala, DataIntervento, OraIntervento Paziente, Chirurgo
→
D. Chirurgo, DataIntervento Sala
→
Ci sono tre insiemi di attributi che possono svolgere la funzione di chiave:
- Paziente, DataIntervento
- Chirurgo, DataIntervento, OraIntervento
- Sala, DataIntervento, OraIntervento
Scegliamo come chiave primaria la coppia di attributi: Paziente, DataIntervento
Interventi (Paziente%, DataIntervento%, OraIntervento, Chirurgo, Sala)
È in BCNF?
a) Paziente, DataIntervento OraIntervento, Chirurgo, Sala
→
b) Chirurgo, DataIntervento, OraIntervento Paziente, Sala
→
c) Sala, DataIntervento, OraIntervento Paziente, Chirurgo
→
d) Chirurgo, DataIntervento Sala
→
I determinanti in a), b) e c) possono svolgere la funzione di chiave quindi soddisfano la BCNF.
I determinanti di d) invece non costituiscono una chiave quindi violano la BCNF.
INTERVENTI NON È IN BCNF.
È in 3FN?
La 3FN richiede che ogni attributo non chiave dipenda da un insieme di attributi che possono formare una chiave.
La dipendenza funzionale d) viene esclusa dalle dipendenze funzionali considerate dalla terza forma normale,
perché l’attributo Sala è un attributo che fa parte della chiave candidata (Sala, DataIntervento, OraIntervento) e
quindi Sala non è un attributo non chiave.
La tabella Interventi può essere normalizzata, ottenendo i due schemi:
- OccupazioneSale (Chirurgo%, DataIntervento%, Sala)
- Interventi (Paziente%, DataIntervento%, OraIntervento, Chirurgo)
8. SQL (Structured Query Language)
Per operare su una base dati relazionale è stato progettato un linguaggio standard: SQL (Structured Query
Language). È un linguaggio di interrogazione e manipolazione della base dati e delle informazioni in essa
contenute.
Non è un linguaggio imperativo/procedurale, è un linguaggio dichiarativo.
Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad es. i
Linguaggi imperativi), piuttosto di speci care le proprietà logiche delle informazioni ricercate
Mette a disposizione dei sotto linguaggi utili a differenti cose. Esso si divide in:
Data De nition Language (DDL) - permette di creare e cancellare database o di modi carne la struttura;
Data Manipulation Language (DML) - permette di interrogare e aggiornare il database ;
Data Control Language (DCL) - permette di gestire gli utenti e i permessi;
Device Media Control Language (DMCL) - permette di controllare i supporti (memorie di massa) dove
vengono memorizzati i dati.
DDL (Data De nition Language)
Mette a disposizione un set di istruzioni di SQL per la de nizione della struttura della base dati.
Siamo ancora nella fase in cui bisogna creare la nostra base di dati, il DDL non modi ca le informazioni ma le
crea.
I comandi DDL de niscono la struttura del database e quindi dei dati ivi contenuti, ma non forniscono gli strumenti
per modi care i dati stessi per il quale si usa il DML.
L'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono
assegnati tramite il DCL (Data Control Language)
Sono tre le istruzioni principali del DDL:
create: per la creazione di database, tabelle, indici, viste (modalità con cui noi mostriamo ad alcuni utenti
una cossa e ad altri un’altra senza alterare il contenuto della base di dati), ecc.
alter: per la modi ca della struttura di una tabella o di altri oggetti interni ad una base dati.
drop: per l’eliminazione di una tabella, di un intero database o di altri oggetti.
Esempi: - Creazione di un database: create database studenti
- Cancellazione di un database: drop database studenti
Esempio di comandi SQL per la creazione una tabella
CREATE TABLE
Demogra ca (
PazNo Integer NOT NULL default 1,
Nome char(40),
Sesso char(1),
DataN date,
Indirizzo char(50),
Città char(30),
NTel Integer(10) );
Dentro le parentesi troviamo gli attributi, con le caratteristiche che deve avere ciascun attributo (tipo di dato)
Altra informazione che dobbiamo dare è la chiave primaria che deve essere sempre de nita (NOT NULL), vicino
alla chiave primaria troviamo NOT NULL. Deve essere anche unica (unique)
Altro esempio:
Vincoli interlezionali
primary key elegge l’attributo speci cato (o gli attributi speci cati) come chiave primaria per la relazione
(contiene l’informazione not null e unique all’interno)
not null impone che l’attributo abbia sempre un valore de nito
unique impone che non esistano due tuple della relazione con lo stesso valore sull’attributo (o sugli
attributi).
Gli attributi che sono unique sono anche superchiavi per la relazione
- primary key implica il not null e l’unique sugli attributi interessati
Vincoli: chiave primaria
- references dopo l’attributo esprime un vincolo di integrità referenziale
- foreign key ... references per insiemi di attributi (in coda alla create table)
Vincolo di integrità referenziale mi dice come un attributo di una relazione si lega con un altro attributo di un’altra
tabella per poter fare un join che mi restituisce le informazioni della relazione di partenza
Si esprime o vicino all’attributo o a valle (attributi references la tabella)
Mi dice come legare gli attributi di una tabella rispetto agli attributi di un’altra tabella
DCL (Data Control Language)
È il set di istruzioni di SQL per la de nizione dei permessi di accesso sui database e sulle tabelle e per la gestione
degli account utente.
Sono due le istruzioni principali del DCL:
grant: per assegnare un determinato permesso ad un utente
revoke: revocare un determinato permesso ad un utente
Concessione di permessi:
- grant privilegi on risorsa (su quale risorsa stiamo garantendo) to utenti (a quali utenti stiamo
garantendo) with grant option
Esempio: grant select on studenti to Rossi
DML (Data Manipulation Language)
Fornisce i comandi per inserire, modi care ed eliminare i dati all'interno delle tabelle di un database e per
l’esecuzione di query.
La struttura di questi dati deve già essere stata de nita tramite il DDL. Inoltre, il permesso di accedere a tali dati
deve essere precedentemente assegnato all'utente tramite il DCL.
Tutte le interrogazioni sul database (query) vengono effettuate utilizzando in maniera diretta o indiretta il comando
di selezione speci cato mediante l’operazione SELECT
Sono quattro le istruzioni principali del DML:
insert: per inserire dati in una tabella
update: per modi care i dati di una tabella sulla base di un determinato criterio di selezione
delete: per eliminare i record di una tabella corrispondenti ad una determinata condizione
select: per selezionare in base a determinati criteri o condizioni i dati presenti in una o più tabelle
Per inserire in una tabella una tupla con diversi campi si usa insert (corso è il nome della tabella) e gli attributi
sono la sigla, crediti, nome, docente e dopo values i valori degli attributi
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Informatica medica
-
Informatica medica - Appunti
-
Appunti teoria Fondamenti di informatica medica
-
Appunti Matlab fondamenti di informatica medica
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.