• Non ci sono risultati.

Come contattarmi…

N/A
N/A
Protected

Academic year: 2022

Condividi "Come contattarmi…"

Copied!
22
0
0

Testo completo

(1)

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/2019/enrol/index.php?id=176 https://elly.dia.unipr.it/2019/enrol/index.php?id=104

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

Un DBMS deve garantire:

Affidabilità

Privatezza dei dati

Efficienza

Efficacia

DBMS

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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 Esame Insegnamento

(0,N) (0,N)

(22)

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

Riferimenti

Documenti correlati

 Tutti i valori di tipo intero (char, int, short e long) possono essere memorizzati come numeri o con segno (tipicamente in. Complemento a 2) o senza segno (in binario puro,

• Costruire una rappresentazione discreta della funzione sin(x) nei valori nodali definiti sull’intervallo discretizzato [0,pi,passo]; passo=0.1.. • Calcolare

Strutture di Dati: Concetti Avanzati >> Limiti della Programmazione

 “Estrarre dalla base di dati una tabella, StudentiTriennio, contenente i dati degli studenti della laurea

• in questa fase ci si deve preoccupare di rappresentare il contenuto informativo della base di dati. • eliminando le ambiguità tipiche delle frasi in

• Le operazioni di inserimento sulla testa della lista, mentre quelle di eliminazione lavorano sulla coda. • Il costo di tutte le operazioni è

finanziario sono detenute da almeno una società sul mercato finanziario (la somma delle percentuali per ogni società deve essere 100). Un agenzia di rating esprime

z Un’istanza di uno schema è un insieme dinamico e variante nel tempo di dati conformi alla struttura dei dati definiti dallo schema.. Relazioni tra modelli, schemi