Date post: | 02-May-2015 |
Category: |
Documents |
Upload: | patrizio-fumagalli |
View: | 226 times |
Download: | 1 times |
1Prof Ing Gaetano La Rosa
Università degli studi di Università degli studi di CataniaCatania
Facoltà di Medicina Facoltà di Medicina Tecnici di Radiologia Medica per Tecnici di Radiologia Medica per
immagini e Radioterapia immagini e Radioterapia
Elaborazione dati Elaborazione dati informaticiinformatici
2Prof Ing Gaetano La Rosa
Elaborazione dati Elaborazione dati informaticiinformatici
Prof Ing Gaetano La RosaProf Ing Gaetano La Rosa
email: email: [email protected]@glrstudio.com
Parte terzaParte terza
3Prof Ing Gaetano La Rosa
Clausola INTO Clausola INTO
Visualizzare tutti i dati per il Visualizzare tutti i dati per il personale con qualifica dirigente personale con qualifica dirigente dall’archivio personale dall’archivio personale
SELECTSELECT * *FROM FROM Personale Personale WHEREWHERE Funzione=“dirigente” Funzione=“dirigente”
4Prof Ing Gaetano La Rosa
Clausola INTO Clausola INTO La precedente SELECT permette di La precedente SELECT permette di
estrarre dei dati dall’archivio personale estrarre dei dati dall’archivio personale senza che questi vengano memorizzati.senza che questi vengano memorizzati.
SELECTSELECT * * INTOINTO manager managerFROM FROM Personale Personale WHEREWHERE Funzione=“dirigente” Funzione=“dirigente”
Se desideriamo creare una nuova tabella Se desideriamo creare una nuova tabella contenente i dati estrapolati usiamo la contenente i dati estrapolati usiamo la clausola INTO con il nome della tabella clausola INTO con il nome della tabella che dvrà contenere i nuovi dati:che dvrà contenere i nuovi dati:
5Prof Ing Gaetano La Rosa
Comandi per la sicurezzaComandi per la sicurezza
Nel caso di DB con accessi multipli alle tabelle Nel caso di DB con accessi multipli alle tabelle l’amministratore può specificare per i vari utenti le l’amministratore può specificare per i vari utenti le singole autorizzazioni:singole autorizzazioni:
GRANT permesso GRANT permesso concessione di permesso concessione di permesso REVOKE permesso REVOKE permesso revoca permesso revoca permesso
ON e TO si utilizzano per specificare rispettivamente su quale archivio si opera e a quale utente (utenti) si desidera attribuire o revocare il permesso
6Prof Ing Gaetano La Rosa
Comandi per la sicurezzaComandi per la sicurezza
Permessi:Permessi:
ALTER: aggiunta, rimozione colonne e ALTER: aggiunta, rimozione colonne e tipi di datitipi di dati
DELETE: rimozione righe tabelleDELETE: rimozione righe tabelleINDEX: creazione indiciINDEX: creazione indiciINSERT: inserimento nuove righeINSERT: inserimento nuove righe
7Prof Ing Gaetano La Rosa
Comandi per la sicurezzaComandi per la sicurezza
Permessi:Permessi:
SELECT: ricerca nelle tabelleSELECT: ricerca nelle tabelleSELECT (campo1, campo2): ricerca SELECT (campo1, campo2): ricerca
ammessa ai soli ammessa ai soli campi indicati campi indicati
UPDATE: modifica valori contenuti nelle UPDATE: modifica valori contenuti nelle tabelletabelle
UPDATE (campo1, campo2): modifica dati UPDATE (campo1, campo2): modifica dati tabelle limitati ai soli campi indicati tabelle limitati ai soli campi indicati
ALL: tutti i precedenti permessiALL: tutti i precedenti permessi
8Prof Ing Gaetano La Rosa
Comandi per la sicurezzaComandi per la sicurezza
Concedere il diritto di modifica agli Concedere il diritto di modifica agli utenti ut1 e ut2utenti ut1 e ut2
GRANT UPDATEGRANT UPDATE
ONON Personale Personale
TOTO ut1, ut2 ut1, ut2
9Prof Ing Gaetano La Rosa
Comandi per la sicurezzaComandi per la sicurezza
Rimuovere il diritto di creazione Rimuovere il diritto di creazione indici agli utenti ut3 e ut4indici agli utenti ut3 e ut4
REVOKE INDEX REVOKE INDEX
ONON Personale Personale
TOTO ut3, ut4 ut3, ut4
10Prof Ing Gaetano La Rosa
VisteViste
Mediante l’utilizzo di viste è possibile Mediante l’utilizzo di viste è possibile consentire ad un utente una visione consentire ad un utente una visione parziale del DB parziale del DB
Le viste rappresentano delle finestre Le viste rappresentano delle finestre dinamiche sul DB: ogni modifica ai dati dinamiche sul DB: ogni modifica ai dati sulla tabella primaria è disponibile sulla tabella primaria è disponibile attraverso la vista, analogamente ogni attraverso la vista, analogamente ogni modifica effettuata sui dati della vista si modifica effettuata sui dati della vista si riflette sui dati della tabella primaria. riflette sui dati della tabella primaria.
11Prof Ing Gaetano La Rosa
VisteViste
Le viste vengono realizzate con SELECT Le viste vengono realizzate con SELECT all’interno di CREATE VIEWall’interno di CREATE VIEW
Creare una vista di nome imp contenente i Creare una vista di nome imp contenente i solo dati degli impiegati: solo dati degli impiegati:
CREATE VIEWCREATE VIEW imp imp
AS SELECTAS SELECT * *
FROMFROM personale personale WHEREWHERE Funzione=“impiegato”;Funzione=“impiegato”;
12Prof Ing Gaetano La Rosa
VisteViste
L’amministratore con GRANT può L’amministratore con GRANT può concedere il diritto di accesso alla concedere il diritto di accesso alla vista creatavista creata
GRANT SELECTGRANT SELECT
ONON imp imp
TOTO user user
13Prof Ing Gaetano La Rosa
VisteViste
Per rimuovere una vista si utilizza Per rimuovere una vista si utilizza DROP VIEWDROP VIEW
DROP VIEWDROP VIEW imp; imp;
14Prof Ing Gaetano La Rosa
Integrità dei datiIntegrità dei dati
LOCK TABLE: limitare accesso ai LOCK TABLE: limitare accesso ai datidati
UNLOCK TABLE: ripristino accesso UNLOCK TABLE: ripristino accesso ai dati ai dati
RECOVER TABLE: recupero di una RECOVER TABLE: recupero di una tabella da una tabella di sicurezza in tabella da una tabella di sicurezza in caso di interruzione anomala del caso di interruzione anomala del processo correnteprocesso corrente
15Prof Ing Gaetano La Rosa
Integrità dei datiIntegrità dei dati
CHECK TABLE: controllo CHECK TABLE: controllo corrispondenza di una tabella con i corrispondenza di una tabella con i suoi indicisuoi indici
REPAIR TABLE: ricostruzione indici REPAIR TABLE: ricostruzione indici tabella qualora il CHECK TABLE tabella qualora il CHECK TABLE non sia andato a buon fine. non sia andato a buon fine.
16Prof Ing Gaetano La Rosa
Gestione transazioniGestione transazioni
Una transazione è una serie di Una transazione è una serie di operazioni eseguite sul DB che devono operazioni eseguite sul DB che devono essere eseguite in modo completo essere eseguite in modo completo affinchè l’elaborazione sia considerata affinchè l’elaborazione sia considerata corretta. corretta.
Per avviare una transazione: Per avviare una transazione: BEGIN TRANSACTIONBEGIN TRANSACTION
Il comando permette di effettuare le Il comando permette di effettuare le modifiche richieste bloccandone la modifica modifiche richieste bloccandone la modifica ad altri utenti ad altri utenti
17Prof Ing Gaetano La Rosa
Gestione transazioniGestione transazioni
Al termine delle modifiche, se le Al termine delle modifiche, se le operazioni hanno prodotto i risultati operazioni hanno prodotto i risultati desiderati si termina la transazione desiderati si termina la transazione con COMMIT, in caso contrario con con COMMIT, in caso contrario con ROLLBACK si ripristina il DB allo ROLLBACK si ripristina il DB allo stato precedente l’inizio del BEGIN stato precedente l’inizio del BEGIN TRANSACTION. TRANSACTION.
18Prof Ing Gaetano La Rosa
Gestione transazioniGestione transazioni
Esempio transazione per accettazione ordini Esempio transazione per accettazione ordini clienticlienti
Le modifiche sul DB modificheranno i dati delle Le modifiche sul DB modificheranno i dati delle tabelle con operazioni di scarico del tabelle con operazioni di scarico del magazzino. Se però dopo le operazioni magazzino. Se però dopo le operazioni richieste le quantità risultano negative non richieste le quantità risultano negative non sarà possibile soddisfare gli ordini e pertanto sarà possibile soddisfare gli ordini e pertanto bisognerà annullare le richieste inserite bisognerà annullare le richieste inserite (ROLLBACK) . Se tutto è ok con COMMIT (ROLLBACK) . Se tutto è ok con COMMIT confermiamo il buon esito della transazione. confermiamo il buon esito della transazione.
19Prof Ing Gaetano La Rosa
Esempio attività sportivaEsempio attività sportiva
Organizzare la base dati per le attività Organizzare la base dati per le attività sportive studentesche. Si consideri che sportive studentesche. Si consideri che
Gli studenti possono partecipare a una Gli studenti possono partecipare a una o più manifestazionio più manifestazioni
Per ogni attività sportiva le scuole Per ogni attività sportiva le scuole individuano un professore con funzioneindividuano un professore con funzione
Ogni professore segue una sola attività Ogni professore segue una sola attività sportiva sportiva
Ogni attività sportiva è seguita da più Ogni attività sportiva è seguita da più professori di scuole diverse professori di scuole diverse
20Prof Ing Gaetano La Rosa
Definire il modello del DB e rappresentare in SQL le Definire il modello del DB e rappresentare in SQL le seguenti interrogazioni:seguenti interrogazioni:
Numero di studenti partecipanti ad una determinata Numero di studenti partecipanti ad una determinata attività sportiva attività sportiva
Elenco anagrafico degli allenatori di una attività Elenco anagrafico degli allenatori di una attività sportiva sportiva
Elenco delle scuole (denominazione) con il numero di Elenco delle scuole (denominazione) con il numero di studenti che partecipano studenti che partecipano
Elenco delle scuole (denomin, telef, indirizzo) che Elenco delle scuole (denomin, telef, indirizzo) che hanno almeno uno studente che partecipa ad una hanno almeno uno studente che partecipa ad una determinata attività sportivadeterminata attività sportiva
Elenco allenatori (cognome e nome) e scuole Elenco allenatori (cognome e nome) e scuole (denominazione) di appartenenza in ordine alfabetico(denominazione) di appartenenza in ordine alfabetico
Numero degli studenti di una determinata scuola che Numero degli studenti di una determinata scuola che partecipano a ciascuna delle manifestazioni sportive. partecipano a ciascuna delle manifestazioni sportive.
21Prof Ing Gaetano La Rosa
RISOLUZIONERISOLUZIONE
Definizione entità – Definizione entità – relazionirelazioni
Modello E/R Modello E/R
22Prof Ing Gaetano La Rosa
Modello E/R – entità- Modello E/R – entità- relazionirelazioni
studente istituto
professore
iscrizione
Presta servizio
N 1
N
1
manifestazione allenamentoN1
Partecipazione
N
N
23Prof Ing Gaetano La Rosa
RISOLUZIONERISOLUZIONE
Definizione attributi Definizione attributi (con formato e (con formato e dimensione)dimensione)
24Prof Ing Gaetano La Rosa
Modello E/R - attributiModello E/R - attributi
studente istituto
professore
Frequenza
Presta servizio
N 1
N
1CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nome, Titolomanifestazione allenamentoN1
Partecipazione
N
NCodMani
Descr, luogo, datainizio
25Prof Ing Gaetano La Rosa
RISOLUZIONERISOLUZIONE
Eliminazione relazioni Eliminazione relazioni N-N con aggiunta nuove N-N con aggiunta nuove entitàentità
26Prof Ing Gaetano La Rosa
Modello E/R – elim N-NModello E/R – elim N-N
studente istituto
professore
Frequenza
Presta servizio
N 1
N
1CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nome, Titolomanifestazione allenamentoN1
N
N
CodMani
Descr, luogo, datainizio
Iscrizione_gara
1
1
Data_iscr
27Prof Ing Gaetano La Rosa
RISOLUZIONERISOLUZIONE
Eliminazione relazioni 1-Eliminazione relazioni 1-NN
28Prof Ing Gaetano La Rosa
Modello E/R – elim 1-NModello E/R – elim 1-N
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
29Prof Ing Gaetano La Rosa
RISOLUZIONERISOLUZIONE
Interrogazioni SQLInterrogazioni SQL
30Prof Ing Gaetano La Rosa
Numero di studenti partecipanti Numero di studenti partecipanti ad una determinata attività ad una determinata attività sportiva sportiva
31Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
32Prof Ing Gaetano La Rosa
Numero di studenti Numero di studenti partecipanti ad una partecipanti ad una
determinata attività sportiva determinata attività sportiva SELECT COUNT (*) SELECT COUNT (*)
FROM manifestazione, iscrizione_garaFROM manifestazione, iscrizione_gara
WHERE WHERE manifestazione.codMani=iscrizione_gara.manifestazione.codMani=iscrizione_gara.CodManiCodMani
AND Descr=[inserire attività sportiva]AND Descr=[inserire attività sportiva]
33Prof Ing Gaetano La Rosa
Elenco anagrafico degli Elenco anagrafico degli allenatori di una attività sportiva allenatori di una attività sportiva
34Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
35Prof Ing Gaetano La Rosa
Elenco anagrafico degli Elenco anagrafico degli allenatori di una attività allenatori di una attività
sportivasportiva
SELECT cogn, nomeSELECT cogn, nomeFROM professore, manifestazioneFROM professore, manifestazioneWHERE professore.CodMani= WHERE professore.CodMani=
manifestazione.CodManimanifestazione.CodManiAND Descr=[indicare attività sportiva]AND Descr=[indicare attività sportiva]ORDER BY cogn, nome; ORDER BY cogn, nome;
36Prof Ing Gaetano La Rosa
Elenco delle scuole Elenco delle scuole (denominazione) con il numero (denominazione) con il numero di studenti che partecipanodi studenti che partecipano
37Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
38Prof Ing Gaetano La Rosa
Elenco delle scuole Elenco delle scuole (denominazione) con il numero di (denominazione) con il numero di
studenti che partecipanostudenti che partecipano
SELECT denominazione, COUNT(DISTINCT SELECT denominazione, COUNT(DISTINCT CodStud) CodStud)
FROM istituto, studente FROM istituto, studente
WHERE istituto.CodIst=studente.CodIstWHERE istituto.CodIst=studente.CodIst
GROUP BY Denominazione; GROUP BY Denominazione;
39Prof Ing Gaetano La Rosa
Elenco delle scuole (denomin, Elenco delle scuole (denomin, telef, indirizzo) che hanno telef, indirizzo) che hanno almeno uno studente che almeno uno studente che partecipa ad una determinata partecipa ad una determinata attività sportivaattività sportiva
40Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
41Prof Ing Gaetano La Rosa
Elenco delle scuole (denomin, telef, Elenco delle scuole (denomin, telef, indirizzo) che hanno almeno uno studente indirizzo) che hanno almeno uno studente che partecipa ad una determinata attività che partecipa ad una determinata attività
sportivasportiva
SELECT denominazione, telef, indirizzoSELECT denominazione, telef, indirizzo
FROM istituto, manifestazione, studente, FROM istituto, manifestazione, studente, iscrizione_garaiscrizione_gara
WHERE Manifestazione.CodMani= WHERE Manifestazione.CodMani= Iscrizione_gara.CodManiIscrizione_gara.CodMani
AND Studente.CodStud=iscrizione_gara.CodstudAND Studente.CodStud=iscrizione_gara.Codstud
AND Studente.CodIst=Istituto.CodIstAND Studente.CodIst=Istituto.CodIst
AND Descr=[inserire attività sportiva]AND Descr=[inserire attività sportiva]
Group BY Denominazione, telef, indirizzoGroup BY Denominazione, telef, indirizzo
HAVING COUNT (*) >0; HAVING COUNT (*) >0;
42Prof Ing Gaetano La Rosa
Elenco allenatori (cognome e Elenco allenatori (cognome e nome) e scuole (denominazione) nome) e scuole (denominazione) di appartenenza in ordine di appartenenza in ordine alfabeticoalfabetico
43Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
44Prof Ing Gaetano La Rosa
Elenco allenatori (cognome e nome) e Elenco allenatori (cognome e nome) e scuole (denominazione) di scuole (denominazione) di
appartenenza in ordine alfabeticoappartenenza in ordine alfabetico
SELECT cogn, nome, denominazioneSELECT cogn, nome, denominazione
FROM professore, istitutoFROM professore, istituto
WHERE WHERE professore.CodIst=istituto.CodIstprofessore.CodIst=istituto.CodIst
ORDER BY cogn, nome;ORDER BY cogn, nome;
45Prof Ing Gaetano La Rosa
Numero degli studenti di una Numero degli studenti di una determinata scuola che determinata scuola che partecipano a ciascuna delle partecipano a ciascuna delle manifestazioni sportive. manifestazioni sportive.
46Prof Ing Gaetano La Rosa
Modello E/RModello E/R
studente istituto
professore
CodStud
cogn, nome, nascita, classe
CodIst
Denominazione, Indirizzo, telefono
CodProf
Cogn, nomemanifestazione
CodMani
Descr, luogo, datainizio
Iscrizione_gara
Data_iscr
CodIst
CodIst
CodStud
CodMani
CodMani
47Prof Ing Gaetano La Rosa
Numero degli studenti di una Numero degli studenti di una determinata scuola che determinata scuola che
partecipano a ciascuna delle partecipano a ciascuna delle manifestazioni sportive. manifestazioni sportive.
SELECT Descr, COUNT(*)SELECT Descr, COUNT(*)FROM manifestazione, istituto, iscrizione_gara, FROM manifestazione, istituto, iscrizione_gara,
studentestudenteWHERE WHERE
manifestazione.Codmani=iscrizione_gara.Codmamanifestazione.Codmani=iscrizione_gara.Codmanini
AND studente.CodIst=istituto.CodIstAND studente.CodIst=istituto.CodIstAND studente.CodStud=iscrizione_gara.CodStudAND studente.CodStud=iscrizione_gara.CodStudAND Denominazione=[inserire istituto]AND Denominazione=[inserire istituto]GROUP BY Descr;GROUP BY Descr;