CORSO ITP
Informatica Gestionale
Modulo – Le basi di dati
Romeo Pruno
University of Camerino
[email protected]
https://unicam.it/~romeo.pruno
http://blogs.devleap.com/romeopruno
Introduzione
Per comprendere appieno cos'è un Data Base e quali sono i vantaggi
legati al suo impiego, soprattutto nel settore gestionale, è
necessario definire in modo esatto e preciso cosa si intende per:
- Data Base;
- Data Base Management System (DBMS);
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
2
Introduzione
Un Data base può essere definito come un insieme di dati
strettamente correlati, memorizzati su un supporto di memoria di
massa, costituenti un tutt'uno, che possono essere manipolati, da più
programmi applicativi; oppure possiamo dire che è un sistema di
gestione di dati integrati, ricompilati e immagazzinati secondo precisi
criteri, necessari all'attività che si deve svolgere.
I programmi di gestione di Data Base realizzano una serie di
operazioni che consentono l'accesso a dati immagazzinati in un PC e
che ne permettono altresì una certa manipolazione.
Tali operazioni consistono fondamentalmente in:
-immissione e cancellazione di dati;
-modifica di dati già introdotti;
-ricerca di dati attraverso criteri definiti dall'utente;
-ordinamento e classificazione dei dati singolarmente o secondo vari
criteri;
-stampa di rapporti o relazioni.
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
3
Introduzione
Un Data base Management System (DBMS) è un sistema software
per la gestione di basi dati; esso si occupa dell'aggiornamento, della
manutenzione e della consultazione di un insieme di registrazioni
contenute in un supporto di memoria di massa.
Il DBMS, pertanto, è un insieme di programmi, che sono rivolti alla
gestione di dati memorizzati in archivi.
Ovviamente, tra Data Base e DBMS esiste una forte interazione, per
cui spesso si tende a considerarli due parti distinte di un unico
oggetto: il DBMS rappresenta la parte attiva, il Data Base quella
passiva, sulla quale il DBMS opera.
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
4
Introduzione
Tipi di Database
-Gestori di file: Ogni base di dati è rappresentata da un file, che si
divide in record: il record rappresenta uno degli elementi che si
desidera registrare, ed è composto a sua volta da campi, cioè
informazioni elementari che caratterizzano ogni entità da classificare.
- Data Base relazionali: Si presentano in forma tabellare in cui le
righe rappresentano i record e le colonne rappresentano i campi. Le
operazioni realizzate con questo tipo di Data Base riguardano le tabelle
e non i record individuali, come nel caso dei gestori di file.
Oggi i principali Data Base in circolazione sono di tipo relazionale, ciò
perché praticamente tutti gli insiemi di dati che corrispondono a entità
complesse organizzate come imprese, scuole, associazioni varie,…
implicano collegamenti tra i vari dati ad esempio: ai fornitori sono
collegate le merci, agli alunni i corsi, e così via.
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
5
Introduzione
Il campo che permette l'identificazione di ogni record è detto "chiave
primaria" e deve essere comune alle tabelle che si intende correlare.
Si possono stabilire tre tipi di relazione:
- uno a uno: si tratta di relazioni tra elementi che hanno una
corrispondenza univoca: ad un elemento di una tabella ne
corrisponde uno soltanto in un'altra e viceversa;
- uno a molti: sono relazioni che si stabiliscono tra un record di una
tabella e più records di un'altra tabella, ma non il contrario;
- molti a molti: un record può essere relazionato a più di un record
di un'altra tabella e viceversa; questo tipo di relazione è normalmente
definita tramite una terza tabella che costituisce un "ponte" tra le due
da relazionare.
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
6
Progettazione – caso pratico
Si vuole realizzare una base dati per l’Università degli Studi di Camerino, di cui
vogliamo rappresentare i dati degli studenti, gli insegnanti, le materie di
insegnamento e gli esami effettuati per ogni alunno. Per gli studenti, identificati da
un codice, si vuole memorizzare il cognome, nome, l’indirizzo ed il numero di
telefono. Anche le prove effettuate devono poter essere riconducibili allo studente
che le ha superate. Per i docenti si deve tener conto delle loro generalità come ad
esempio la matricola, cognome, nome, e-Mail. I dati delle materie devono essere
prelevati da un’archivio degli insegnamenti attivati presso l’ Università riportando il
titolare della cattedra.
Si vuole determinare il libretto universitario di ogni alunno e le attività di
insegnamento per ogni docente.
…….togliamo le ambiguità 
Termine
Descrizione
Sinonimi
Collegamenti
Studente
Partecipa ai corsi
Alunno
Esame
Docente
Titolare dei corsi
Insegnante
Corso
Corso
Offerta formativa
Insegnamento
Docente, Esame
Esame
Prova finale
Prova
Corso, Studente
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
7
Modalità ER
Costrutti
Rappresentazione Grafica
Entità
Relazioni
Attributo Semplice
Identificatore Interno (chiave)
(1,1) (1,n) (n,n)
Camerino, 26/11/2005
Cardinalità
Dott. Romeo Pruno – [email protected]
8
Modalità ER
Date le seguenti entità, realizziamo un semplice modello ER
Docente
PK,I1
Corso
IdDocente
PK,I1
IdCorso
Cognome
Nome
E-Mail
FK1,I2
IdDocente
Titolo
Materia
Studente
PK,I1
IdStudente
Esame
PK,FK1,I1
PK,FK2,I2
Cognome
Nome
Indirizzo
Telefono
IdCorso
IdStudente
Data
Votazione
Ricordiamo che:
• Le entità rappresentano le “tabelle”
• Le relazioni rappresentano azioni che coinvolgono più entità
• Gli attributi semplici sono rappresentati dai campi delle tabelle
• Gli identificatori rappresentano le chiavi delle tabelle
Non esiste un perfetto modello ER, ognuno può avere una soluzione differente
dall’altro a seconda di come si interpreta il problema dato…….
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
9
Modalità ER
IdCorso
IdStudente
STUDENTE
Cognome
Nome
Indirizzo
Telefono
Sostiene
CORSO
Richiede
Insegna
IdDocente
IdCorso
IdStudente
ESAME
Camerino, 26/11/2005
IdDocente
Titolo
Materia
DOCENTE
Data
Votazione
Dott. Romeo Pruno – [email protected]
Cognome
Nome
E-Mail
10
Tabelle
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
11
Demo
Realizzazione del DB utilizzando Access
Step1
Creazione DB c:\itp.mdb
Step2
Creazione tabelle CORSO, DOCENTE, ESAME , STUDENTE
Step3
Creazione delle relazioni tra le tabelle
Step4
Popolamento tabelle
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
12
SQL Structured Query Language
Definiamo i domini di applicazione del linguaggio:
Interrogazioni
• Interrogazioni semplici
• Interrogazioni con raggruppamento
• Interrogazioni di tipo insiemistico
• Interrogazioni nidificate
Manipolazioni
• Inserimento
• Modifica
• Cancellazione
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
13
INTERROGAZIONI \ semplici
Costruzione
SELECT [ListaAttributi]
FROM [ListaTabelle]
WHERE [Condizione]
Esempio
SELECT Studente.Cognome,Studente.Nome
FROM Studente
WHERE Studente.Cognome = “Severini”
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
14
INTERROGAZIONI \ raggruppamento
Costruzione
SELECT [ListaAttributi]
FROM [ListaTabelle]
GROUP BY [Campo]
Esempio
SELECT Data, Max(Esame.Votazione) AS MaxVotazione
FROM Esame
GROUP BY Esame.Data
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
15
INTERROGAZIONI \ tipo insiemistico
Costruzione
SELECT [ListaAttributi]
FROM [Tabella]
UNION – INTERSECT – MINUS
SELECT [ListaAttributi]
FROM [Tabella]
Esempio
select Cognome
from Studente
union
select Nome
from Studente
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
16
INTERROGAZIONI \ nidificate
Costruzione
SELECT [ListaAttributi]
FROM [Tabella]
WHERE [condizione] = SELECT [ListaAttributi]
FROM [Tabella]
WHERE [condizione]
Esempio
SELECT Votazione
FROM Esame
WHERE IdStudente = (SELECT IdStudente
FROM Studente WHERE nome = "Sandro")
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
17
MANIPOLAZIONI \ inserimento
Costruzione
INSERT INTO NomeTabella [ListaAttributi] VALUES [ListaValori]
Esempio
INSERT INTO esame(idCorso,IdStudente,Data,Votazione)
VALUES('14','4','08/05/2004','29')
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
18
MANIPOLAZIONI \ cancellazione
Costruzione
DELETE FROM NomeTabella
WHERE [Condizioni]
Esempio
DELETE FROM esame WHERE Votazione = '29'
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
19
Demo#2
Scriviamo noi un pò di Queries 
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
20
Question and Answer
Camerino, 26/11/2005
Dott. Romeo Pruno – [email protected]
21
Scarica

Un Data base - Monte Porzio cultura