1 / 82

Corso di Basi di Dati

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

afia
Download Presentation

Corso di Basi di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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/

  2. INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …

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

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

  5. INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …

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

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

  8. 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!

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

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

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

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

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

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

  15. 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!

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

  17. 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)

  18. INDICE • Presentazione • Obiettivi del corso • Contenuti del corso • Regolamentod’esame • A che serve studiarequestocorso? • Qualchesuggerimento …

  19. 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].

  20. 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].

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

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

  23. 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?

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

  25. Contenuti del Corso In pratica, unabase di datidi medio/grandidimensionipuo’ esserecostituita da moltetabelle… CORSI ESAMI STUDENTI

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

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

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

  29. Contenuti del Corso Usando DBMS edillinguaggio SQL Select CodiceCorso From CORSI Where (NomeCorso=“Basi di dati”); Completaastrazione da come/dove idatisonomemorizzatisu disco!

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

  31. 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].

  32. Contenuti del Corso • PROBLEMA: Progettazione di un sistemainformativoper un’organizzazione… • (Es. progettareilsistemainformativo di un ente di formazionecheerogacorsi). • Progettazionedell’applicazione. • Progettazionedellabase di dati.

  33. 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”.

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

  35. Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica

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

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

  38. Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica

  39. Contenuti del Corso Passo1: Produrreunoschema concettualedeidati e dellerelazionitradatichecompongonoilsistemainformativo. Codice Studente … ModelloEntita’-Relazione(ER) Inscrizione Docenza Corso Docente … Codice … Nome

  40. Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica

  41. Contenuti del Corso Passo2: Traduzione del modelloconcettualenelmodellologicorelazionale… • Piu’ soluzionisonopossibili … Quale scegliere? • Soluzione 1 (pessima). Utilizzo di una sola tabella …

  42. Contenuti del Corso Passo3: Analizzarela qualita’ dello schema DB prodotto, edottimizzarlo/ristrutturarlo … Ridondanzedeidaticostiaggiuntivi (memoriautilizzata)

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

  44. Contenuti del Corso Analisideirequisitie progettazionein dettaglio … Studio/analisideirequisiti Fasidellaprogettazione Risultati SCHEMA CONCETTUALE Progettazioneconcettuale SCHEMA LOGICO Progettazionelogica SCHEMA FISICO Progettazionefisica

  45. Contenuti del Corso Q. Come memorizzareidati di unatabellasumemoriasecondaria? Qualistrutturedatie metodologieutilizzare? FILE1.dat 0001000 111010 101110 • Strutturasequenziale • Strutturaad accessocalcolato(hash) • Strutturaad albero

  46. 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].

  47. 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].

  48. Contenuti del Corso NelWeb, gran parte deisiti di organizzazioniedaziendegestisconoidatiattraverso un DBgestito da un DBMS(Sito web  Applicazione web).

  49. 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)

  50. 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) • …

More Related