CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino...

21
CORSO ITP CORSO ITP Informatica Gestionale Informatica Gestionale Modulo – Le basi di dati Modulo – Le basi di dati Romeo Pruno Romeo Pruno University of Camerino University of Camerino [email protected] [email protected] https :// unicam.it / ~romeo .pruno http:// blogs.devleap.com / romeopruno

Transcript of CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino...

Page 1: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 2: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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);

Page 3: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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.

Page 4: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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.

Page 5: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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.

Page 6: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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.

Page 7: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 8: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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à

Page 9: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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…….

Page 10: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 11: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 11

TabelleTabelle

Page 12: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 13: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 14: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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”

Page 15: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 16: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 17: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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")

Page 18: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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')

Page 19: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

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

Page 20: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 20

Demo#2Demo#2

Scriviamo noi un pò di Queries

Page 21: CORSO ITP Informatica Gestionale Modulo – Le basi di dati Romeo Pruno University of Camerino romeo.pruno@unicam.it romeo.pruno@unicam.itromeo.pruno@unicam.it.

Camerino, 26/11/2005 Dott. Romeo Pruno – [email protected] 21

Question and AnswerQuestion and Answer