850 likes | 1.16k Views
Corso di Basi di Dati. Corso di Laurea in Informatica per il Management Universita ’ di Bologna Docente : Marco Di Felice Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. INDICE. Presentazione Obiettivi del corso Contenuti del corso
E N D
Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita’ di Bologna Docente: Marco Di Felice Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …
Docente Dr. Marco Di Felice Dipartimento di Scienzedell’Informazione Via M. Anteo Zamboni 7, 40126 Bologna Email: difelice@cs.unibo.it Sito web: http://www.cs.unibo.it/~difelice Orario di ricevimento: • Martedi’, ore 9.30-13.30
Orari del Corso • Martedi’, ore 15.30-18.30, Aula Ercolani 2 • Giovedi’, ore 9.30-12.30, Aula Ercolani 2 Duratacorso: 24 Settembre –19 Dicembre 2013 (60 ore circa di lezionifrontali) – 9c.f.u Esame: Scritto + Progetto
INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …
Obiettivi del Corso • Fornirele basidell'utilizzo e dellaprogettazione di basi di datibasatesulmodellorelazionale. • Introdurrele caratteristicheprincipalideimodernisoftware di gestionedellebasi di dati (DBMS) • Introdurreglistrumenti e le metodologieper l'integrazione di una base di datiall'interno di un sistemainformatico.
Contenuti del Corso • Informazione: notizia, dato, elementocheconsente di avereconoscenzapiu’ o menoesatta di fatti, situazioni e modid’essere. • Dato: rappresentazionedigitaledi elementi di informazione … Es. Daticontenutinelmio PC (all’interno di file/cartelle) Es. Daticontenuti sul Web
Contenuti del Corso Perche’ idatisonoimportanti? • I daticostituisconounarisorsaaziendale, allastessamaniera del capitale, degliimpanti di produzione, dellepersone, e deibeniprodottidall’azienda. • In alcunicasi, idati SONO ilbeneprodottodall’azienda e la suafonte di profitto!
Contenuti del Corso ATTIVITA’ STRATEGICHE PianificazioneStrategica Lead Direzione ATTIVITA’ TATTICHE Programmazione e Controllo Personale ATTIVITA’ OPERATIVE Operativita’ Corrente PIRAMIDE di ANTHONY Un esempio (classico) di organizzazioneaziendale …
Contenuti del Corso Gran parte delleaziendedispongono di un sistemainformativo per la gestionedeidati. Dati di sintesisull’andamentoaziendale Lead Direzione Datidi sintesi di supporto al processodecisionale Personale Dati di dettaglio: ordini, datifatturazioni, bilancio, contabilita’, etc PIRAMIDE di ANTHONY
Contenuti del Corso Gran parte delleaziendedispongono di un sistemainformativo per la gestionedeidati. Dati di sintesisull’andamentoaziendale Necessita’ ad ognilivello di strumenti software per custodire, manipolare, analizzareidati! Lead Direzione Datidi sintesi di supporto al processodecisionale Personale Dati di dettaglio: ordini, datifatturazioni, bilancio, contabilita’, fatturazione, etc PIRAMIDE di ANTHONY
Contenuti del Corso Conoscenze sui datidaicorsiprecedenti … • SistemiOperativi algoritmi e tecniche per rappresentareidatidigitaliedorganizzarliall’internodellamemoriasecondaria (file system). • Reti di calcolatori algoritmi e tecniche per transmettereidati in unasistema di comunicazione. • Programmazione linguaggi e metodi per realizzaresistemi software in grado di gestiredatipersistentimemorizzatisu file esterniall’applicazione.
Contenuti del Corso APPLICAZIONE LOGICA di CONTROLLO Lettura/Scrittura LOGICA di GESTIONE DATI FILE • Nessunadistinzionetradatiedapplicazioni. • L’applicazionecontiene al suointerno la logica di controllo e la logica di gestionedeidati. • Il sistemaoperativo(es. Linux)fornisce le operazioni di base per lettura/scrittura di file sumemoriasecondaria.
Contenuti del Corso • L’approccioallagestionedeidatibasatosu file funzionabenenelcaso di sistemi di piccoledimensioni, prevalentemente single-user, o con scarsanecessita’ di condivisionedeidati. • … Non funziona (o funziona male) nelcaso di sistemi con volumiconsistenti, con accessoconcorrente e/o condivisotrautenti/applicazioni. UN ESEMPIO ESTREMO (di dimensionedati) • World Data Centre for Climate (WDCC) • Max Planck Institute for Meteorology • 1142 TB di dati, di cui 600 sul web! http://www.dkrz.de/daten-en/wdcc
Contenuti del Corso • L’approccioallagestionedeidatibasatosu file funzionabenenelcaso di sistemi di piccoledimensioni, prevalentemente single-user, o con scarsanecessita’ di condivisionedeidati. • … Non funziona (o funziona male) nelcaso di sistemi con volumiconsistenti, con accessoconcorrente e/o condivisotrautenti/applicazioni. UN ESEMPIO ESTREMO (di concorrenza) • 1 bilione di visite al mese • 100 ore di video uploadate al minuto!
Contenuti del Corso • L’approccioallagestionedeidatibasatosu file funzionabenenelcaso di sistemi di piccoledimensioni, prevalentemente single-user, o con scarsanecessita’ di condivisionedeidati. • … Non funziona (o funziona male) nelcaso di sistemi con volumiconsistenti, con accessoconcorrente e/o condivisotrautenti/applicazioni. UN ESEMPIO PIU’ COMUNE … • Vetrinadeiprodottidisponibili • Vendite/prenotazioni Sito Web aziendale
Contenuti del Corso FOCUS sui DATI • In questocorso, studieremo: • modelli, linguaggi, e strumenti software • al fine di: progettare, implementareedanalizzarecollezioni (Basi) di Dati (DB)chesiano: • Persistenti • Potenzialmentegrandi • Potenzialmentecondivise(trautenti/applicazioni)
INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …
Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodelleBasi di dati (DB) da quattropunti di vista: Utente come interagire con un DB (aggiungere/modificareinformazioni, recuperareinformazioni, etc). Progettista come progettare un DB. Programmatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Analista come reperireinformazioni da un DB attraversotecniche di data-mining [CENNI].
Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodelleBasi di dati (DB) da quattropunti di vista: Utente come interagire con un DB (aggiungere/modificareinformazioni, recuperareinformazioni, etc). Progettista come progettare un DB. Programmatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Analista come reperireinformazioni da un DB attraversotecniche di data-mining [CENNI].
Contenuti del Corso • Esistonoappositistrumenti software, sviluppati fin daglianni ‘60, per la gestionedellebasi di dati. DataBase Management System (DBMS) sistema software chee’ in grado di gestireBD grandi, condivise e persistenti, in manieraefficiente e sicura. • Da qui in avanti, per noiuna base di dati e’ unacollezione di datigestitada un DBMS …
Contenuti del Corso • Dato un DB gestito da un DBMS (es. DB chegestisceidati di studenti/docentidell’universita’ di Bologna), vedremo come siimplementanooperazioni di: • Inserimento/modifica(es. inseriscinuovostudente). • Ricerca(es. trovatuttiidocenti di un certodipartimento). • Creazione/modificadello schema(es. estendiil DB in modo da gestireanche le informazionideitecnici) • Creazione di un nuovo DB • …
Contenuti del Corso • PROBLEMA:Molti DBMS disponibili in commercio! • Oracle, DB2, Microsoft SQL Server, MySQL, etc • Non vedremoneldettaglioisingoli tool (trannequalcheeccezione), ma studieremoaspettigeneralicomuniallamaggior parte dei DBMS: • ModelloLogico Come sonoorganizzatiidatiall’interno di un DBMS? • Linguaggiorientatiaidati Come sipossonospecificareoperazioni sui dati?
Contenuti del Corso Un modello di datie’ un insieme di concettiutilizzati per organizzareidatidi interesse e descriverne la strutturain modocheessarisulticomprensibile ad un elaboratore. ModelloRelazionale consente di organizzareidati in record di dimensionefissamediantetabelle. Colonne=Campi del record { Righe= Record
Contenuti del Corso In pratica, unabase di datidi medio/grandidimensionipuo’ esserecostituita da moltetabelle… CORSI ESAMI STUDENTI
Contenuti del Corso Ogni DBMS mette a disposizionedegliappositilinguaggi per le operazioni di definizionedello schema e di manipolazione/accessoaidatistessi. • Linguaggitestualiad hoc, specifici del DBMS in uso. • Interfaccegrafiche(es. Access). • LinguaggioSQL (Structured Query Language) standard di riferimento per ilmodellodatirelazionale.
Contenuti del Corso Esempio di operazioni sui dati: data la tabella con le informazioni relative aicorsiattivi per il primo semestre, implementareunaprocedura per recuperare in manieraautomaticailcodice del corso di “Basi di Dati”. CORSI
Contenuti del Corso Con glistrumentitradizionali (Java+file): String s; BufferedReader reader=new BufferedReader(new FileReader(“myfile”)); while (s=reader.readLine()) ! =null) { StringTokenizer token=new StringTokenizer(s); if (token.nextToken().equals(“Basi di dati”)) System.out.println(token.nextToken()); } reader.close(); • PROBLEMI: • - Codicealquantoelaborato • Necessarioconoscereil path del file • Accessosequenziale al file …
Contenuti del Corso Usando DBMS edillinguaggio SQL Select CodiceCorso From CORSI Where (NomeCorso=“Basi di dati”); Completaastrazione da come/dove idatisonomemorizzatisu disco!
Programma del Corso • Parte I: Modellie Linguaggi per Basi di Dati • CaratteristichedeiDBMS • Il modellorelazionale: concetti di base, vincoli di integrita' e chiavi. • Algebra relazionale(cenni): operatorialgebrici, interrogazioni. • Il linguaggio SQL: definizionedeidati, modificadeidati, interrogazioni, definizione di viste, transazioni.
Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodelleBasi di dati (DB) da quattropunti di vista: Utente come interagire con un DB (aggiungere/modificareinformazioni, recuperareinformazioni, etc). Progettista come progettare un DB. Programmatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Analista come reperireinformazioni da un DB attraversotecniche di data-mining [CENNI].
Contenuti del Corso • PROBLEMA: Progettazione di un sistemainformativoper un’organizzazione… • (Es. progettareilsistemainformativo di un ente di formazionecheerogacorsi). • Progettazionedell’applicazione. • Progettazionedellabase di dati.
Contenuti del Corso PROBLEMA: Progettazione di un sistemainformativoper un’organizzazione.. Q. Come procedere? A. L’implementazionedipende dal casospecifico, tuttaviaesistonoaspettimetodologicidi ingeneria del sotwarechepossonoessereadottatiper progettareuna “buona base di dati”.
Contenuti del Corso Studio di fattibilita’ Oggetto di studio del modulo corrente { Raccolta/analisirequisiti Progettazione Ciclo di vita di un sistemaInformativo Modulo precedente Implementazione Validazione Funzionamento
Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica
Contenuti del Corso Esempio: Progettazione di una base di dati per un entecheerogacorsi di formazione. SPECIFICA deiREQUISITI sui DATI Si vuoleprogettareuna base di dati per unasocieta’ cheerogacorsi, di cui sivoglionorappresentareidatideidocenti e dglistudenti. Per glistudenti, identificati da un codice, sivuoleteneretraccia del codicefiscale, cognome, eta’, sesso, e corsichestannoseguendo/hannoseguito. I corsihanno un codice, un titolo e possonoaverevarieedizioni con date di inizio/fine e numerodeglistudenti. Per gliinsegnanti, sivuolememorizzareilcodice, ilcognome, l’afferenza, ilnome del corsocheinsegnano/hannoinsegnato.
Contenuti del Corso Esempio: Progettazione di una base di dati per un entecheerogacorsi di formazione. SPECIFICA delleOPERAZIONI sui DATI • Inserimento di un nuovostudente (in media, ognimese) • Inserimento di un nuovodocente (in media, ogni anno) • Inserimento di un nuovocorso (in media, ogni anno) • Stampa di tuttiicorsiattivi (ognigiorno) • Stampa di tuttiiglistudentidell’ultimo anno • … • …
Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica
Contenuti del Corso Passo1: Produrreunoschema concettualedeidati e dellerelazionitradatichecompongonoilsistemainformativo. Codice Studente … ModelloEntita’-Relazione(ER) Inscrizione Docenza Corso Docente … Codice … Nome
Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica
Contenuti del Corso Passo2: Traduzione del modelloconcettualenelmodellologicorelazionale… • Piu’ soluzionisonopossibili … Quale scegliere? • Soluzione 1 (pessima). Utilizzo di una sola tabella …
Contenuti del Corso Passo3: Analizzarela qualita’ dello schema DB prodotto, edottimizzarlo/ristrutturarlo … Ridondanzedeidaticostiaggiuntivi (memoriautilizzata)
Contenuti del Corso • Passo3: Specificareivincoli sui datichedevonoessererispettatidallo schema. • Il codicedellostudentedeveessereunivoco. • Il codice del docentedeveessereunivoco. • Il codicefiscale di unostudentepuo’ non esserespecificato. • Per un datocorso, identificato dal codice, data inizio e data fine, deveesistere solo un docente. • …
Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica
Contenuti del Corso Q. Come memorizzareidati di unatabellasumemoriasecondaria? Qualistrutturedatie metodologieutilizzare? FILE1.dat 0001000 111010 101110 • Strutturasequenziale • Strutturaad accessocalcolato(hash) • Strutturaad albero
Programma del Corso • Parte II: Progettazionedi Basi di Dati • Progettazioneconcettuale: ilmodello E/R, raccoltaedanalisi di requisiti, strategie di progettazioneconcettuale, verifica di qualita'. • Progettazionelogica: ristrutturazionedeglischemi E/R, traduzionenelmodellorelazionale. • Tecniche di normalizzazione: formenormali (Boyce-Codd, terza forma normale), decomposizione in forma normale. • Progettazionefisica[CENNI].
Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodelleBasi di dati (DB) da quattropunti di vista: Utente come interagire con un DB (aggiungere/modificareinformazioni, recuperareinformazioni, etc). Progettista come progettare un DB. Programmatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Analista come reperireinformazioni da un DB attraversotecniche di data-mining [CENNI].
Contenuti del Corso NelWeb, gran parte deisiti di organizzazioniedaziendegestisconoidatiattraverso un DBgestito da un DBMS(Sito web Applicazione web).
Contenuti del Corso • Componenti di un’applicazione web: • Web-server (HTTP-based) • Linguaggio di scripting server-side • DBMS (relazionale) 2. Parametri MT 3. SQL Query 1. HTTP request Web-server DBMS 4. Dati 5. Pagina Web (dinamica) 6. HTTP response Browser (client)
Contenuti del Corso Linguaggi/Tecnologie di scripting server-side • ASP.NET • PHP • Python + Django • Ruby on Rails • Java Server Pages (JSP) and Java Servlet • Common Gateway Interface (CGI) • …