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

Post on 01-May-2015

219 views 1 download

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

romeo.pruno@unicam.itromeo.pruno@unicam.it

https://unicam.it/~romeo.pruno http://blogs.devleap.com/romeopruno

Camerino, 26/11/2005 Dott. Romeo Pruno – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 11

TabelleTabelle

Camerino, 26/11/2005 Dott. Romeo Pruno – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 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 – romeo.pruno@unicam.it 19

MANIPOLAZIONI \ cancellazioneMANIPOLAZIONI \ cancellazione

DELETE FROM NomeTabella WHERE [Condizioni]

Costruzione

DELETE FROM esame WHERE Votazione = '29'

Esempio

Camerino, 26/11/2005 Dott. Romeo Pruno – romeo.pruno@unicam.it 20

Demo#2Demo#2

Scriviamo noi un pò di Queries

Camerino, 26/11/2005 Dott. Romeo Pruno – romeo.pruno@unicam.it 21

Question and AnswerQuestion and Answer