Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni,...

22
Come contattarmi… Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano) Telefono : 0521 / 90 5731 Email : [email protected] Sito del corso : http://www.ce.unipr.it/people/cagnoni/didattica/basidati oppure su Elly https://elly.dia.unipr.it/2018/enrol/index.php?id=342 https://elly.dia.unipr.it/2018/enrol/index.php?id=577

Transcript of Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni,...

Page 1: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Come contattarmi…

Ricevimento: dopo la lezione (in aula)

o su appuntamento

(Sede Scientifica Pal. 1 Primo Piano)

Telefono : 0521 / 90 5731

Email : [email protected]

Sito del corso :

http://www.ce.unipr.it/people/cagnoni/didattica/basidati

oppure su Elly

https://elly.dia.unipr.it/2018/enrol/index.php?id=342

https://elly.dia.unipr.it/2018/enrol/index.php?id=577

Page 2: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Teoria dei DBMS e SQL (I prova scritta):

• Dati e DBMS

• DBMS relazionali

• SQL

Progettazione di basi di dati (II prova scritta)

• Progettazione di una base di dati

• Normalizzazione

Cenni di programmazione web: (Progetto)

• HTML e PHP

• Interazione fra pagine web e basi di dati

Programma del Corso

Page 3: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Testi Consigliati

Libro di testo • Atzeni, Ceri, Fraternali, Paraboschi, Torlone

Basi di Dati: modelli e linguaggi di interrogazione, 4a ed.

McGraw-Hill, 2013

(o, degli stessi autori, Basi di Dati, testo completo, McGraw-Hill 2014)

Alcuni testi utilizzabili per consultazione • Dorbolò, Guidi

Guida a SQL

2a ed., McGraw-Hill, 2004

• Welling, Thomson Kofler

MySQL Tutorial MySQL 5 - Guida Completa

Pearson Education Italia, 2004 Apogeo, 2006

• Yank

Sviluppare applicazioni con PHP e MySQL

Apogeo, 2012

Page 4: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Calendario e modalità esame

Martedì 15.30-17.30 Mercoledì 10.30-12.30 Aula B

Giovedì 8.30-10.30 Laboratorio Informatica (Aula I)

Modalità di esame: due prove scritte e un breve progetto

Prima prova scritta - SQL + Teoria

Seconda prova scritta - Progettazione

Voto complessivo Media delle due prove con voto

minimo pari a 15 per ciascuna prova

(voto max. 33).

Completamento esame Breve progetto di una base di dati

interrogabile da web: punteggio

«bonus» da -2 (non realizzato) a +3.

NB La media oltre 30 conta solo per la lode. Anche con media 33

ma senza progetto, voto finale = 28 !

Prove intermedie: circa fine novembre e fine dicembre

Page 5: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Il WWW (Worldwide Web)

si basa su un’architettura

client-server, basata

essenzialmente sul

protocollo HTTP

(HyperText Transfer

Protocol)

1. L’utente, tramite il browser (client), specifica l’indirizzo (Uniform

Resource Locator, URL) dell’oggetto/pagina di interesse

2. Il server web, che gira sulla macchina specificata dalla URL,

elabora la richiesta e restituisce al client un flusso di

informazioni codificate in HTML (Hypertext Markup Language)

3. Il client interpreta il codice HTML e genera la pagina.

WWW

Page 6: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Il risultato fornito dal

server può essere una

pagina statica o dinamica.

1. La pagina statica ha un contenuto fisso, totalmente specificato

da un file scritto in linguaggio HTML che si trova sul server e il

cui codice viene inviato direttamente al client.

2. Una pagina dinamica è l’output, espresso in linguaggio HTML,

di un processo attivato da uno script scritto in un opportuno

linguaggio (PHP, Python, Perl, ecc.) ma anche da un

tradizionale programma eseguibile.

WWW

Page 7: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Molti dei servizi web

(motori di ricerca, ecc.)

implicano la generazione

di pagine dinamiche che

richiedono l’interazione

remota fra l’utente e una

base di dati.

1. L’utente, tramite una «widget» di input o direttamente nella

URL, specifica i parametri di una interrogazione.

2. Lato server, uno script che sfrutta una opportuna API

(Application Programming Interface) formula l’interrogazione al

database che restituisce il risultato.

3. Il risultato dell’interrogazione viene poi inserito nel codice

HTML che il server invia al browser.

WWW

Page 8: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Nel corso vedremo (parzialmente in parallelo):

1. Come progettare una base di dati sulla base delle

specifiche che vengono fornite.

(progettazione concettuale e progettazione logica)

2. Come interrogare la base di dati, una volta che è stata

realizzata e «popolata».

(linguaggio SQL, modello relazionale)

3. Come utilizzare (interrogare) il database dall’interno di

applicazioni web, per generare contenuti dipendenti dalle

scelte dell’utente.

(HTML e PHP)

NB Quello che si applica a DB/Web si applica anche a DB/App

Scopo (pratico) del corso

Page 9: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Cronologia degli argomenti

Pratica (aula/laboratorio, gio)

HTML

PHP

SQL

PHP SQL

Teoria (in aula, mar/mer)

DBMS+Modello Relazionale

Progettazione Concettuale

SQL

Progettazione Logica

Normalizzazione

Page 10: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Strumenti di studio/esercitazione

Pratica in laboratorio

Client MySQL (es. MySQL Workbench)

Server MySQL / Web didattico (versione Web accessibile solo in

laboratorio)

Teoria

Testo di Atzeni (teoria ed esercizi)

Esercizi e materiale aggiuntivo disponibile online https://www.mheducation.it/9788838668005-italy-basi-di-dati--modelli-e-linguaggi-di-interrogazione-4ed

Pratica a casa (da installare sul proprio PC)

Client MySQL (es. MySQL Workbench)

Server MySQL (utilizzabile da remoto anche quello didattico)

Server web con supporto PHP (es. APACHE)

XAMPP, LAMP, EasyPHP, ecc. integrano tutti questi strumenti

Page 11: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Basi di Dati

Informazione: notizia, dato o elemento che

consente di avere conoscenza più o meno esatta di

fatti, situazioni, modi di essere.

Dato: ciò che è immediatamente presente alla

conoscenza, prima di ogni elaborazione; (in

informatica) elemento di informazione costituito da

simboli che devono essere elaborati. (dal Vocabolario della Lingua Italiana, Istituto dell’Enciclopedia Italiana)

Base di Dati: collezione di dati, utilizzati per

rappresentare le informazioni di interesse per un

sistema informativo.

Page 12: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

DBMS

Un Database Management System (DBMS) è un

sistema software che si interpone fra le

applicazioni e la memoria di massa in cui si

trovano collezioni di dati

La finalità di un DBMS è l’estensione delle

funzionalità del file system, in modo da offrire:

• nuove modalità di accesso ai dati

• condivisione dei dati

• gestione più sofisticata dei file

Page 13: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Il nuovo strato che il DBMS viene a creare fra

memoria di massa e applicazioni consente di

conservare e gestire i dati in modo indipendente

dalle applicazioni stesse.

Normalmente le applicazioni accedono a dati locali

gestendoli attraverso file che appartengono alle

applicazioni stesse.

In presenza di un DBMS, i dati non appartengono

ad una specifica applicazione, ma le diverse

applicazioni vi accedono attraverso di esso.

DBMS: indipendenza dei dati

Page 14: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Le basi di dati gestite dai DBMS sono collezioni di dati: • Grandi

possono avere notevoli dimensioni (fino a centinaia di Terabyte) e devono quindi necessariamente risiedere nella memoria secondaria

• Condivise applicazioni ed utenti diversi devono potere accedere ai dati

• Persistenti Il tempo di vita dei dati va oltre la durata dell’esecuzione delle singole applicazioni

DBMS

Page 15: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Un DBMS deve garantire:

• Affidabilità

• Privatezza dei dati

• Efficienza

• Efficacia

DBMS

Page 16: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Affidabilità

Un DBMS deve garantire di poter mantenere

intatto il suo contenuto, anche in caso di

malfunzionamento.

L’integrità dei dati è affidata a procedure di backup

(salvataggio) e recovery (recupero) dei dati, o alla

loro duplicazione nei casi più critici.

DBMS

Page 17: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Privatezza dei dati

Ogni utente, abilitato a utilizzare la base di dati

attraverso una procedura di riconoscimento, può

accedere ad insiemi limitati di dati e compiere solo

certe operazioni su di essi.

DBMS

Page 18: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Efficienza

Un DBMS deve operare e fornire risposte agli utenti

in tempi accettabili, utilizzando una quantità il più

possibile limitata di risorse.

L’efficienza dipende essenzialmente dalle tecniche

utilizzate per l’implementazione del DBMS e dalla

buona progettazione della base di dati.

Si misura (come in tutti i sistemi informatici) in termini

di tempo di esecuzione (tempo di risposta) e spazio di

memoria (principale e secondaria) occupato.

DBMS

Page 19: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Efficacia

Capacità di un DBMS di rendere produttive le

attività degli utenti, cioè di consentire la

realizzazione di basi di dati che risolvano in modo

efficace i problemi degli utenti.

Concetto generico, qualitativo e non legato a

specifiche funzionalità del DBMS. Non esistono

criteri oggettivi per valutarla.

DBMS

Page 20: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Un modello di dati è costituito dai concetti sulla base dei

quali i dati sono strutturati e codificati. Ogni modello di dati

fornisce meccanismi di strutturazione dati, analoghi ai

costruttori di tipo dei linguaggi di programmazione.

I modelli concettuali descrivono la realtà mediante

concetti astratti, ma soggetti a precise regole. Non sono

finalizzati alla rappresentazione dei dati, ma ai concetti del

mondo reale di cui i dati sono istanze.

Si usano in fase di progettazione.

Nel corso useremo i diagrammi Entità/Relazione

Modelli dei dati

Page 21: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

Esempio (molto semplice) di diagramma Entità/Relazione,

modello di tipo concettuale.

Si esprimono i concetti che devono essere rappresentati

dai dati come concetti indipendenti (entità) e relazioni

logiche che li collegano (relazioni) e che esistono solo in

presenza delle entità.

Modelli dei dati

Studente Insegnamento Esame

(0,N) (0,N)

Page 22: Programma del Corso di Basi di Dati - ce.unipr.it · Testi Consigliati Libro di testo •Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: modelli e linguaggi di interrogazione,

I DBMS si differenziano in base al modello logico che

utilizzano. I modelli logici, seppure astratti, riflettono la

struttura con cui i dati sono organizzati.

• Relazionale Il più diffuso, basato su un modello tabellare dei dati

• Gerarchico Utilizzato nei primi DBMS (anni 60), tuttora utilizzato, basato su

strutture ad albero

• Reticolare Estensione del modello gerarchico, basato su grafi

• A oggetti Estensione del modello relazionale basato sui paradigmi OOP.

• XML

(semistrutturato) Deriva dal modello gerarchico, ma è più flessibile

Modelli dei dati