CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino...
-
Upload
severo-giordano -
Category
Documents
-
view
216 -
download
1
Transcript of CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino...
CORSO ITPCORSO ITPInformatica GestionaleInformatica Gestionale
Modulo – Le basi di dati Modulo – Le basi di dati
Romeo Pruno Romeo Pruno
University of Camerino University of Camerino
[email protected]@unicam.it
https://unicam.it/~romeo.pruno http://blogs.devleap.com/romeopruno
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 2
IntroduzioneIntroduzione
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] 3
IntroduzioneIntroduzione
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] 4
IntroduzioneIntroduzione
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] 5
IntroduzioneIntroduzione
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] 6
IntroduzioneIntroduzione
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] 7
Progettazione – caso praticoProgettazione – 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] 8
Modalità ERModalità ER
Costrutti Rappresentazione Grafica
Entità
Relazioni
Attributo SempliceIdentificatore Interno (chiave)
(1,1) (1,n) (n,n) Cardinalità
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 9
Modalità ERModalità ER
Date le seguenti entità, realizziamo un semplice modello ER
Docente
PK,I1 IdDocente
Cognome Nome E-Mail
Corso
PK,I1 IdCorso
FK1,I2 IdDocente Titolo Materia
Studente
PK,I1 IdStudente
Cognome Nome Indirizzo Telefono
Esame
PK,FK1,I1 IdCorsoPK,FK2,I2 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] 10
Modalità ERModalità ER
IdCorso
STUDENTE
IdStudente
CognomeNomeIndirizzoTelefono
IdCorso
ESAMEIdStudente
DataVotazione
DOCENTE
IdDocente
CognomeNomeE-Mail
CORSO IdDocenteTitoloMateria
Sostiene Richiede Insegna
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 11
TabelleTabelle
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 12
DemoDemo
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] 13
SQL Structured Query LanguageSQL 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] 14
INTERROGAZIONI \ sempliciINTERROGAZIONI \ semplici
SELECT [ListaAttributi]FROM [ListaTabelle]WHERE [Condizione]
Costruzione
Esempio
SELECT Studente.Cognome,Studente.NomeFROM StudenteWHERE Studente.Cognome = “Severini”
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 15
INTERROGAZIONI \ raggruppamentoINTERROGAZIONI \ raggruppamento
SELECT [ListaAttributi]FROM [ListaTabelle]GROUP BY [Campo]
Costruzione
SELECT Data, Max(Esame.Votazione) AS MaxVotazioneFROM EsameGROUP BY Esame.Data
Esempio
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 16
INTERROGAZIONI \ tipo insiemisticoINTERROGAZIONI \ tipo insiemistico
SELECT [ListaAttributi]FROM [Tabella]UNION – INTERSECT – MINUSSELECT [ListaAttributi]FROM [Tabella]
Costruzione
select Cognomefrom Studenteunionselect Nomefrom Studente
Esempio
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 17
INTERROGAZIONI \ nidificateINTERROGAZIONI \ nidificate
SELECT [ListaAttributi]FROM [Tabella]WHERE [condizione] = SELECT [ListaAttributi]FROM [Tabella]WHERE [condizione]
Costruzione
Esempio
SELECT VotazioneFROM EsameWHERE IdStudente = (SELECT IdStudente FROM Studente WHERE nome = "Sandro")
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 18
MANIPOLAZIONI \ inserimentoMANIPOLAZIONI \ inserimento
INSERT INTO NomeTabella [ListaAttributi] VALUES [ListaValori]
Costruzione
Esempio
INSERT INTO esame(idCorso,IdStudente,Data,Votazione) VALUES('14','4','08/05/2004','29')
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 19
MANIPOLAZIONI \ cancellazioneMANIPOLAZIONI \ cancellazione
DELETE FROM NomeTabella WHERE [Condizioni]
Costruzione
DELETE FROM esame WHERE Votazione = '29'
Esempio
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 20
Demo#2Demo#2
Scriviamo noi un pò di Queries
Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 21
Question and AnswerQuestion and Answer