1 / 65

Basi di Dati e Sistemi Informativi

Basi di Dati e Sistemi Informativi. 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 /. Docente. Dr. Marco Di Felice Dipartimento di Scienze dell’Informazione

zuriel
Download Presentation

Basi di Dati e Sistemi Informativi

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. Basi di Dati e SistemiInformativi 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. 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

  3. Orari del Corso • Mercoledi’, ore 15.30-18.30, Aula Ercolani 2 • Giovedi’, ore 16.30-18.30, Aula Ercolani 2 • Venerdi’, ore 10.30-13.30, Aula Ercolani 2 Duratacorso: 26 Settembre – 20 Dicembre 2012 (80 ore circa di lezionifrontali) – 12c.f.u

  4. Obiettivi del Corso • Fornirele basidell'utilizzo e dellaprogettazione di basi di datibasatesulmodellorelazionale. • Introdurrele caratteristicheprincipalideimodernisoftware di gestionedellebasi di dati (DBMS) • Introdurreglistrumenti e le metologie per l'integrazione di basi di datiall'interno di un sistemainformatico.

  5. Contenuti del Corso Un SistemaInformativo(SI) e’ unacomponente di un’organizzazioneil cui scopo e’ quello di gestire le informazioniutili ad ifinidell’organizzazionestessa. Organizzazione Azienda, Ufficio, Ente, Universita’, etc

  6. Obiettivi del Corso “ Ogni due giorniproduciamotanteinformazioniquante ne abbiamoprodotte in tutta la nostra storiafino al 2003” Eric Schmidt (Presidenteesecutivo di Google)

  7. Contenuti del Corso L’esistenza di un SistemaInformativoe’ indipendentedallasuaautomatizzazione. Bibliotecareale di Alessandria d’Egitto IV-I secoloa.C 400000 rotolipresenti.

  8. Contenuti del Corso L’esistenza di un SistemaInformativoe’ indipendentedallasuaautomatizzazione. Censimenti e RegistroAnagrafe. Nell’Antica Roma, icensimentivenivanoeffettuatidalla fine del IV secoloa.c. Glielenchideicensiti, distintisecondo ilpossesso o menodeidiritticivili e politici, la classepatrimoniale e l'età, venivanoutilizzati come listeelettorali, ruoli per l’esazionedeitributi e liste di leva.

  9. Contenuti del Corso • La porzioneautomatizzata di un sistemainformativoprendeilnome di SistemaInformatico. • All’interno di un sistemainformatico, le informazionisonorappresentate da dati, chehannobisogno di essereinterpretati per fornireinformazioni. SISTEMA SISTEMA INFORMATIVO SISTEMA INFORMATICO DATI

  10. Contenuti del Corso • Informazione (def): notizia, dato, elementocheconsente di avereconoscenzapiu’ o menoesatta di fatti, situazioni e modid’essere. • Dato (def): elementi di informazioneconstituiti da simbolichedevonoessereelaborati. • NOTA: Senzainterpretazione, ildato non e’ molto utile! FERRARI, 8

  11. Contenuti del Corso Unabase di datie’ unacollezione di daticherappresentano le informazioni di un’organizzazione. • Approccioconvenzionale: files per memorizzareidati in modopersistente le informazioninellamemoria di massa. • Approcciodel corso: datigestitiattraversosistemi software specificinoti come Data Base Management System (DBMS). Da qui in avantinelcorso Una base di dati e’ unacollezione di datigestita da un DBMS.

  12. Contenuti del Corso Un DBMS e’ un sistema software che e’ in grado di gestirecollezioni di datichesonograndi, condivise e persistenti, assicurando la loroaffidabilita’ e privatezza. • DB grandi dipendedall’organizzazione, ma sipuo’ arrivareall’ordinedeigiga/tera-bytes edoltre. • DB condivisi  applicazioniedutentidiversidevonopoteraccedere a daticomuni, in manieraconsistentetragliaccessi. • DB persistenti  memorizzazionesumemoriasecondaria. • DB affidabili  altatolleranza ad iguasti, con funzionalita’ avanzate di ripristino e backup. • DB sicuri meccanismi di autenticazionedegliutenti. • DB efficienti  performance accettabili per l’utente.

  13. Contenuti del Corso • Solo nel 2011, ilmercatodeiDMBS ha avutounacrescita del 6.5% con ricavicomplessivipari a 33.9 billioni di dollari. • Il mercatodei DBMS e’ dominato da 4 vendor, che da soli occupanounapercentuale di ricavipari al 75% del totale: • Oracle (10 billioni di dollari di ricavinel 2011). • IBM • Microsoft • SAP • Oltre a queste 4 aziende, 14 altri vendor hannoricavatoprofittipari a 100 milioni di dollari (ciascuno). Fonte: IDC

  14. Contenuti del Corso Java DB Empress Embedded Database EnterpriseDB eXtremeDB FileMaker Pro Firebird Greenplum GroveSite H2 Helix database HSQLDB IBM DB2 IBM Lotus Approach Infobright Informix Ingres InterBase InterSystems Caché GT.M Linter MariaDB MaxDB Microsoft Access Microsoft Jet Database Engine (part of Microsoft Access) Microsoft SQL Server 4th Dimension Adabas D Alpha Five Apache Derby Aster Data Altibase BlackRay CA-Datacom Clarion Clustrix CSQL CUBRID Daffodil database DataEase Database Management Dataphor Lista (parziale) dei DBMS piu’ utilizzati.

  15. Contenuti del Corso Microsoft SQL Server Express Microsoft Visual FoxPro Mimer SQL MonetDB mSQL MySQL Netezza NonStop SQL Openbase OpenLink Virtuoso OpenLink Virtuoso Server OpenOffice.org Base Oracle Oracle Rdb for OpenVMS Panorama PostgreSQL Progress Software RDM Server SAND CDBMS Sav Zigzag ScimoreDB SmallSQL SQLBase SQLite Sybase SQL AdvantageServer Teradata TimesTen txtSQL Unisys RDMS 2200 UniData UniVerse Vertica VMDS VISTADB Lista (parziale) dei DBMS piu’ utilizzati.

  16. Contenuti del Corso Numero di righepresentinel data-base … Fonte: Winter Corporation, 2005

  17. Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodeiSistemiInformativi e delleBasi di dati (DB) da quattropunti di vista differenti: Utente come usare un DB (aggiungere/modificareinformazioni, recuperareinformazioni da un DB, etc). Progettista  come progettare un DB. Programmatore  come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Progettista di DBMS  come e’ fatto un DBMS [CENNI].

  18. Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodeiSistemiInformativi e delleBasi di dati (DB) da quattropunti di vista differenti: Utente come usare un DB (aggiungere/modificareinformazioni, recuperareinformazioni da un DB, etc). Progettista  come progettare un DB. Programmatore  come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Progettista di DBMS  come e’ fatto un DBMS [CENNI].

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

  20. Contenuti del Corso Per conseguiretalicompetenze, e’ necessariostudiare due aspetticomplementari: Come sonostrutturatiidatiall’interno di un DBMS, ossiailmodellologicodeidati. Come siinteragisce con ilmodellologico per eseguireoperazioni di accessoaidati/modifica/ricerca/etc, ossiaillinguaggio per la specificadelleoperazioni sui dati.

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

  22. ModelloRelazionale: overview In pratica, unabase di datidi medio/grandidimensionipuo’ esserecostituita da moltetabelle… CORSI ESAMI STUDENTI

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

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

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

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

  27. Programma del Corso • Parte I: Modellie Linguaggi per Basi di Dati • Il modellorelazionale: concetti di base, vincoli di integrita' e chiavi. • Algebra e calcolorelazionali(cenni): operatorialgebrici, calcolorelazionalesudomini • Il linguaggio SQL: definizionedeidati, modificadeidati, interrogazioni, definizione di viste, transazioni.

  28. Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodeiSistemiInformativi e delleBasi di dati (DB) da quattropunti di vista differenti: Utente come usare un DB (aggiungere/modificareinformazioni, recuperareinformazioni da un DB, etc). Progettista  come progettare un DB. Sviluppatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Progettista di DBMS  come e’ fatto un DBMS [CENNI].

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

  30. Contenuti del Corso PROBLEMA: Progettazione di un sistemainformativoper un’organizzazione(es. progettareilsistemainformativo di un ente di formazionecheerogacorsi). Q. Come procedere? A. L’implementazionedipende dal casospecifico, tuttaviaesistonoaspettimetodologicidi naturageneralechepossonoessereadottatiper progettareuna “buona base di dati”.

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

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

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

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

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

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

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

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

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

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

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

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

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

  44. Contenuti del Corso Nelcorso, forniremoun’introduzione al mondodeiSistemiInformativi e delleBasi di dati (DB) da quattropunti di vista differenti: Utente come usare un DB (aggiungere/modificareinformazioni, recuperareinformazioni da un DB, etc). Progettista  come progettare un DB. Sviluppatore come sviluppareapplicazioniWeb/stand-alone chesiinterfaccino con un DB [CENNI]. Progettista di DBMS  come e’ fatto un DBMS [CENNI].

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

  46. Programma 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)

  47. Programma del Corso • IlWebMeta-Tier (MT) contiene un interprete di linguaggi di scripting server side. Talilinguaggidispongono di librerie per: • Interfacciarsi con un DBMS, edinserirecodice SQL all’interno di uno script. • Generaredinamicamenteilcodice HTML, chedeveessere poi visualizzatosul browser del client.

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

  49. Programma del Corso In maniera simile, e’ possibilescrivereapplicazioni stand-alone chesiinterfacciano con DB gestiti da un DBMS relazionale. SQL query Codice Java DBMS Dati Libreria Java Database Connection (JDBC)

  50. Programma del Corso In questocaso, ilcodice SQL e’ immersonelcodice del linguaggioospite (es. Java). String url = "jdbc:mysql://hostname/database”; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection c = DriverManager.getConnection(url, properties); … intid = ... get ID from somewhere ... String sql = "SELECT Name FROM Users WHERE Id = " + id; ResultSetrs = st.executeQuery(sql);

More Related