Estratto del documento

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

Anteprima
Vedrai una selezione di 20 pagine su 133
Appunti Informatica medica Pag. 1 Appunti Informatica medica Pag. 2
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 6
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 11
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 16
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 21
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 26
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 31
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 36
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 41
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 46
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 51
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 56
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 61
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 66
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 71
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 76
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 81
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 86
Anteprima di 20 pagg. su 133.
Scarica il documento per vederlo tutto.
Appunti Informatica medica Pag. 91
1 su 133
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher alexia0508 di informazioni apprese con la frequenza delle lezioni di Informatica medica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Politecnica delle Marche - Ancona o del prof Morettini Micaela.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community