Post on 14-Feb-2019
Docen'
• AnnaMonreale– Email:anna.monreale@unipi.it– Ricevimento:Lunedì,14:00-15:45,DiparImentodiInformaIca
• AndreaMarche?– Email:andrea.marche4@iit.cnr.it– Ricevimento:IIT-CNR,Pisa
OrganizzazioneCorso• PrimoModulo:BDD– Primosemestre– Esamescri0o:compiInioappelli
• Agliappellipuoirecuperaresolounaparte– EsameOrale:nonobbligatoriomanecessarioperaverelalode
• SecondoModulo:LPW– Proge0o– Discussionedelproge0o
• Votofinale:mediadeiduemoduli– LodesoloseavetefaMol’oraledelprimomodulo
MaterialeDida?co• Paginacorso:
hMp://didawiki.di.unipi.it/doku.php/bdd-infuma/start
• Slidesdellelezioniealtromaterialenellapaginadelcorso
ATTENZIONE:LESLIDESNONSONOESAUSTIVE!
• Libroditesto:PaoloAtzeni,StefanoCeri,StefanoParaboschi,RiccardoTorlone“Basidida':ModellieLinguaggidiInterrogazione”,McGraw-HillLibriItalia,Nuovaedizione(2006).
Modalitàdiverifica
• BasidiDa'– ProvaScriMa:• CompiInidiverificaintermedi,indipendenI• ScriMoperilrecuperodiuncompiIno,odientrambi
– ProvaOrale:• NellaprovascriMasonoinclusedomandeorali
• LaboratorioProge0azioneWeb– ProgeMoconcordatoconildocente
MailingList
• Spedireunamailaanna.monreale@unipi.itcon– OggeMo:BDD-INFUMA2016– Testo:nome,cognome,matricola
• SareteinseriIinunamailinglistchesaràusataperlecomunicazioniurgenI!
Cisonodeifondamen'dell’informa'cachedovrebberostarenelbagagliodell’umanista?
• Sidannotanterisposteaquestadomanda,moltediIpo
tecnologico-praIco
• Larispostachequestocorsocercadidareèmetodologica
• Lanostraconvinzioneècheun(a)umanistadovrebbepadroneggiareiprincipiperlarappresentazionedell’informazioneedellaconoscenza
Latecnologiaevolverapidamente,ma..
• Latecnologiaavanzatadioggisaràlatecnologiasuperatadidomani
• Percomprendere(emagarigenerare)icambiamenItecnologicioccorreunaprofondaconoscenzametodologicaescienIficadibase
Obie?videlcorso
• Fornireleconoscenzeelecompetenzenecessarieallarappresentazioneealtra0amentoconsapevoledelleinformazioniperInenIallescienzeumane.
• IlcorsoprevedeunmixdifondamenIdiportatageneraleediesercitazionipraIcherelaIveall'usoditecnologieinforma'cheperlarappresentazionedell’informazione.
QualeInformazione?
• Informazione=Contenuto+Stru0ura
• Contenuto:l’oggeMochesiintendecomunicare/rappresentareaMraverso– Testo,linguaggionaturale– Immagine,linguaggiovisuale– Suono,linguaggioaudiovisivo
• Stru0ura:laorganizzazionedellacomunicazione,cheesplicita,aMraversoastrazioni,itra4salienIdellarappresentazione
Informazione=contenuto+stru0ura
• Informazionenonstru0urata– Moltocontenuto,pocastruMura– Unromanzoeilsuoindice(magarisolocapitolinumeraI)
• Informazionestru0urata– MoltastruMura,contenutorigidamentecodificato– IsistemiinformaIvidelleorganizzazioni,lebasididaI
Informazionestru0uratavs.nonstru0urata
• Duesituazioniestreme
• Informazionestru0urata– Rigidaacostruirsieadalimentarsi– AdaMaeflessibileadinterrogarsiperestrarreconoscenza
• Informazionenonstru0urata(testo)– Flessibileacostruirsieadalimentarsi– Difficileadinterrogarsiperestrarreconoscenza
Fraidueestremi
• L’informazionesemi-struMurata– varipossibilicompromessifracontenutoestruMura
• Rappresentazionidell’informazione,deidocumen'mul'mediali,checercanodicombinareivantaggideidueestremi.
• Sullosfondo,ilWeb,unasorgentesterminatadiinformazionesemi-struMurata(astruMuracrescente)dacuièdifficileestrarreconoscenza
BDD–Obie?vi
Formareleconoscenzeelecompetenzedibaseper– larappresentazione– l’organizzazione– l’interrogazioneed– ilrecupero
dell’informazionemediantelatecnologiadellebasidida'
BDD–Contenu'
• LebasididaIrelazionali
• L’algebrarelazionaleeillinguaggiodiinterrogazioneSQL
• IlmodelloenItà-relazionielaprogeMazioneconceMuale
ModellodeiDa'
• Insiemedimeccanismidiastrazioneperlarappresentazionediinformazioni
• L’obie4voèorganizzareidaIedescrivernelastru0urainmodocomprensibiledaunelaboratore
ModelloRelazionaledeiDa'
• IdaIsonoorganizzaIintabelle
• latabellaèuninsiemedirecord(ennuple)
• irecordhannoconuninsiemedia0ribu'diIpiopportuni(numeri,stringhe,date...)
• idaIintabellediversesonocorrelaIsullabasedeivalori
EsempioModelloRelazionale
Matricola Cognome Nome Datadinascita
276545 Rossi Maria 25/11/1991
485745 Neri Anna 23/04/1992
200768 Verdi Fabio 12/02/1992
587614 Rossi Luca 10/10/1991
937653 Bruni Mario 01/12/1991
Studente Voto Corso
276545 28 01
276545 27 04
937653 25 01
200768 24 04
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
STUDENTI
ESAMI CORSI
ModelloConce0ualedeiDa'
• IdaIsonoorganizzaIinclassi
• Ogniclasserappresentauninsiemediogge?conuninsiemediproprietà
• Leclassisonoorganizzateinontologie
• Ogge4diversisonocorrelaIsullabasediiden'ficatori
EsempioModelloConce0uale
Studen'
MatricolaNomeCognomeDatadinascita
Corsi
CodiceTitoloDocente
Esami
VotoHasostenuto Rela'voa
[0…*][1…1] [1…1][0…*]
Modellosemi-stru0urato:XML
• IdaIsonoorganizzaIinstru0uregerarchiche(alberi)
• Ognialberohauninsiemedinodi(elemenI)
• Ogge4diversisonocorrelaIsullabasedirelazionidicontenimento
<xmlversion=“1.0”?><studen'>
<studente> <matricola>276545</matricola> <cognome>Rossi</cognome> <nome>Maria</nome> <dataDiNascita>25/11/1991</dataDiNascita> <esamiSostenu'> <esame> <corso> <codice>01</codice> <'tolo>Analisi</'tolo> <docente>Giani</docente> <voto>28</voto> </corso> </esame> ... </esamiSostenu'>
</studen'>
Componen'Modello
• Inognimodelloesistono– Loschema:ladescrizionedellastru0ura
• stabileneltempo
– L’istanza:ivalori(cioèida')• variabileneltempo
Matricola Cognome Nome Datadinascita
276545 Rossi Maria 25/11/1991
485745 Neri Anna 23/04/1992
200768 Verdi Fabio 12/02/1992
587614 Rossi Luca 10/10/1991
937653 Bruni Mario 01/12/1991
STUDENTI
Linguaggiodiinterrogazione
• LinguaggioperrichiederealDBMS(DatabaseManagementSystem)ilrecuperodiinformazione
• Ognimodellohaisuoilinguaggi– DBMSrelazionali:SQL,QBE– DBMSaogge4:OQL– XML:XPath,XQuery
EsempioQuerySQL
SELECTMatricola,Cognome,AVG(Voto)FROMStudenI,EsamiWHEREMatricola=StudenteGROUPBYMatricola,Cognome
Matricola Cognome AVG(Voto)
276545 Rossi 27,5
937653 Bruni 25
200768 Verdi 24
Sommario
• Introduzione– SistemaInformaIvoeSistemaInformaIco
• DefinizionediDBMS• Modellologicoemodellofisico– Panoramicasuimodelli– SchemaeIstanza– LinguaggiperbasididaI
• Indipendenzadeida'
SistemaOrganizza'vo
• Organizzazionecomplessa(es:azienda,banca,entepubblico,...maanchefantacalcio...)
• SistemaOrganizza'vo– complessodellestruMure,dellerisorse,delleregoleedelleprocedurecheregolanolosvolgimentodellea4vità• Es:banca–regolamentoaperturac/c• Es:anagrafe–procedureperlaregistrazionenascite
Risorse
• Lerisorsediunaorganizzazione(ente,amministrazione,azienda)sono:– persone– denaro– materiali– informazioni
SistemaInforma'vo
• Componentediunaorganizzazionecheges'sceleinformazioniuIliaifinidell’organizzazionestessa– acquisisce,elabora,conserva,produceinformazioni
• OgniorganizzazionehaunsistemainformaIvo,eventualmentenonesplicitatonellastruMura
• IlsistemainformaIvoèdisupportoadaltriso0osistemi,evaquindistudiatonelcontestoincuièinserito
Sistemainforma'voeautomazione
• IlconceModisistemainforma'voèindipendentedaqualsiasiautomaIzzazione
• Esistonoorganizzazionilacuiragiond’essereèlagesIonediinformazionicomeservizianagraficiebanche,echeoperanodasecoli
BibliotecarealediAlessandriad’Egi0oIV-Isecoloa.C-400000rotolipresenI.
Sistemainforma'voeautomazione
• IlconceModisistemainforma'voèindipendentedaqualsiasiautomaIzzazione
• Esistonoorganizzazionilacuiragiond’essereèlagesIonediinformazionicomeservizianagraficiebanche,echeoperanodasecoli
Censimen'eRegistroAnagrafe
Nell’AnIcaRoma,icensimen'venivanoeffeMuaIdallafinedelIVsecoloa.c.Glielenchideicensi',disInIsecondoilpossessoomenodeidiri4civiliepoliIci,laclassepatrimonialeel'età,venivanouIlizzaIcomelisteeleMoralieperdeterminarelaruoliperl’esenzionedeitribuIelelistedileva.
SistemaInforma'co
• Laporzioneinforma'zzatadelsistemainformaIvo
• Collezionediapplicazionicheges'sconoida'eiflussiinforma'vi
• • InpraIca,inmolIcasi:– sistemainforma'vo=sistemainforma'co– manonèsemprecosì
SistemaInforma'coSistema azienda
Sistema organizzativo
Sistema informativo
Sistema informatico
DBMS
obie?vodeiDBMS:iltraMamentodeidaIperoMenereinformazione
DatovsInformazione
• Nei sistemi informaIci (e non solo) le informazionivengonorappresentateaMraversoida'
• Informazione (def): noIzia, o elemento che consente diavereconoscenzapiu’omenoesaMadifa4,situazioniemodid’essere.
• Dato(def):elemenIdiinformazioneconsItuiIdasimbolichedevonoessereelaboraI.
FERRARI,8
NOTA:Senzainterpretazione,ildatonone’moltou'le!
BasediDa'
• Insiemeorganizzatodida'uIlizzaIperilsupportoallosvolgimentodia4vitàdi– enI– aziende– uffici– Persone
• InsiemedidaIgesItodaunDBMS
DatabaseManagementSystems
• SistemidiGesIonediBasidiDaIo“DatabaseManagementSystems”(DBMS)
• SonoIpicamenteuIlizzaInelleorganizzazionicomplesse– molIdaIdagesIre– processicomplessi– idaIsonocrucialiperlosvolgimentodellea4vità
DatabaseManagementSystems
• DBMSsonounacomponentefondamentaledelsistemainforma'codiunagrandeorganizzazione
• DBMSsonounacomponentefondamentaledelsistemainforma'vo
• DBMSsonounacomponentefondamentaledelsistemaorganizza'vo
Archite0uradeisistemiinforma'ci
• IsistemiinformaIcisonoprestostaIconsideraIfondamentalinellegrandiorganizzazioni
• EsistonodaprimacheesistesseroiDBMS
• EranobasaIsuun’architeMuradiversarispeMoaquellaaMuale
Archite0uraTradizionale• SistemainformaIco
organizzatoinpiùarchivi(files)disgiunI
• Problemi:– DimensionedeidaI– Ridondanza– Rischiodiincoerenza– Efficienza– Condivisione– Sicurezza
Archite0urabasatasuDBMS• DBMS:Sistemaperges're
grandicollezionididaIpersistenI,condivisi
• inmodo– efficiente– efficace
• egarantendoservizidi:– Condivisione– Affidabilità– Sicurezza
ServizidiunDBMS
• Condivisione:– riduzionediridondanze(inconsistenze)– gesIonedellaconcorrenzanell’accesso
• Esempio:– un’unicacollezionedidaI(“ciMadini”)acuiaccedonotuMeleapplicazioni
ServizidiunDBMS
• Affidabilità– RecuperodeidaIincasodiguasI
• Esempio:– incasodimalfunzionamento(alimentazione,roMuradeldisco)idaIpossonoessererecuperaI
ServizidiunDBMS
• Sicurezza– meccanismidiprotezionedell’accesso– meccanismidiautorizzazione
• Esempio:– l’accessoaidaIdeiciMadinièproteMoagliutenInonautorizzaI
– gliutenIautorizzaI(impiegaI)hannodiversilivellidiautorizzazione
Cara0eris'chediunDBMS
• Efficienza– uIlizzodirisorsedicalcolorelaIvaallacomplessitàdeiservizi
• Efficacia– centralizzazionedeiservizimiglioramentodellaprodu4vità
– semplicitàdellascriMuradiapplicazioni
AlcuniesempidiDBMS
• Commerciali,Fasciaalta– IBMDB2,Oracle,MicrosouSQLServer,Sybase
• Commerciali,Fasciabassa– MicrosouAccess,FileMaker
• OpenSource– MySQL(www.mysql.com)– PostgreSQL(www.postgresql.org)
Descrizionideida'neiDBMS
• Neiprogrammitradizionalicheaccedonoafile,ogniprogrammaconIeneunadescrizionedellastruMuradelfilestesso– rischidiincoerenzafraledescrizioni(ripetuteinciascunprogramma)
• NeiDBMS,esisteunaporzionedellabasedidaI(catalogoodizionario)checonIeneunadescrizionecentralizzatadeidaI,chepuòessereuIlizzatadaivariprogrammi
Descrizionideida'neiDBMS
• RappresentazionideidaIalivellidiversi– permeMonol’indipendenzadeida'dallarappresentazionefisica:• iprogrammifannoriferimentoallastruMuraalivellopiùalto• lerappresentazionisoMostanIpossonoesseremodificatesenzanecessitàdimodificadeiprogrammi
– precisiamoaMraversoilconceModi• modellodeida'
55
InterazionetraDBMSeApplicazioni
• ComefannoleapplicazioniegliutenIainteragireconilDBMS?
– Devonoconoscerel’organizzazionedeida'
– DevonosaperecomecomunicareconilDBMS
– Devonoconoscere:• Ilmodellodeida'delDBMS• IllinguaggiodelDBMS
Modellodeida'• InsiemedistruMureeregoleperlarappresentazionediinformazioni
• L’obie4voèorganizzareida'edescrivernelastru0urainmodocomprensibiledaunelaboratore
• Modellologicodeida'– astrazioneperilprogrammatore– adoMaIneiDBMSesistenIperl’organizzazionedeidaI– uIlizzaIdaiprogrammi– indipendenIdallestruMurefisiche
• Modellofisicodeida'– allivellodellamacchina– StruMurefisichedimemorizzazione
Modellodeida'
• Esempidimodellologico– InlinguaggioC
• Ipibase,array,struMure,puntatori– InlinguaggioJava
• Ipibase,array,classi,ogge4,ereditarieta
• Esempidimodellofisico– struMureperlarappresentazionedeibit(registridellamemoria,filesudisco)
ModellidiDa'inunDBMS
• OgniDBMSèbasatosuprecisimodelli
• Modellologico– descrizionedeidaIvisibilialleapplicazioni
• Modellofisico– struMureperlagesIonedellapersistenzasudisco
DBMSRelazionale
• ModelloLogico– IdaIsonoorganizzaIintabelle– latabellaèuninsiemedirecord(ennuple)– irecordhannoconuninsiemedia0ribu'diIpiopportuni(numeri,stringhe,date...)
– idaIintabellediversesonocorrelaIsullabasedeivalori
• ModelloFisico– file,pagineerecord
EsempioModelloRelazionale
Matricola Cognome Nome Datadinascita
276545 Rossi Maria 25/11/1991
485745 Neri Anna 23/04/1992
200768 Verdi Fabio 12/02/1992
587614 Rossi Luca 10/10/1991
937653 Bruni Mario 01/12/1991
Studente Voto Corso
276545 28 01
276545 27 04
937653 25 01
200768 24 04
Codice Titolo Docente
01 Analisi Giani
03 Chimica Melli
04 Chimica Belli
STUDENTI
ESAMI CORSI
DBMSOrienta'agliOgge?
• ModelloLogico– idaIsonoorganizzaIinclassi – ogniclassegenerauninsiemediogge?– conuninsiemediproprietàedimetodi– ogge4diversisonocorrelaIsullabasediiden'ficatori
• ModelloFisico– file,pagine,record,puntatori
Esempio
Studen'
MatricolaNomeCognomeDatadinascita
Corsi
CodiceTitoloDocente
Esami
VotoHasostenuto Rela'voa
[0…*][1…1] [1…1][0…*]
DBMSOrienta'agliOgge?
• SonouncompromessotraDBMSrelazionalieDBMSaogge?
• IdaIsonoorganizzaIintabelle...ma– LimitatefunzionalitàperladefinizionediIpi(classi)– Limitatefunzionalitàperladefinizionediogge4(idenIficatori)
– Limitatefunzionalitàperlacreazionedigerarchie
Sistemibasa'suXML
• ModelloLogico– IdaIsonoorganizzaIinstru0uregerarchiche(alberi)
– Ognialberohauninsiemedinodi(elemenI)– Ogge4diversisonocorrelaIsullabasedirelazionidicontenimento
• ModelloFisico– varipossibilimodellistandard:fileditestobasatosumarcatori
<xmlversion=“1.0”?><studen'>
<studente> <matricola>276545</matricola> <cognome>Rossi</cognome> <nome>Maria</nome> <dataDiNascita>25/11/1991</dataDiNascita> <esamiSostenu'> <esame> <corso> <codice>01</codice> <'tolo>Analisi</'tolo> <docente>Giani</docente> <voto>28</voto> </corso> </esame> ... </esamiSostenu'>
</studen'>
ModelliStorici
• Modellogerarchico– Basatosull’usodistruMureadalbero– Definitoneglianni’60– IBMIMS– COBOL,Pascal
• Modellore'colare– Basatosull’usodigrafi– Definitoneglianni’70– IDS,IDMS– Codasyl,COBOL
SchemaeIstanza
• Checosadelmodellodeveconoscerelosviluppatoredell’applicazione?– ilmodellologico(enonilmodellofisico)– lastru0uradeida'enonnecessariamenteidaIveriepropri
• Inaltritermini– Loschema– enonnecessariamentel’istanza
SchemaeIstanza
• Inognimodelloesistono– Loschema:ladescrizionedellastru0ura
• stabileneltempo
– L’istanza:ivalori(cioèida')• variabileneltempo
Matricola Cognome Nome Datadinascita
276545 Rossi Maria 25/11/1991
485745 Neri Anna 23/04/1992
200768 Verdi Fabio 12/02/1992
587614 Rossi Luca 10/10/1991
937653 Bruni Mario 01/12/1991
STUDENTI
SchemidiunDBMS• IngranpartedeiDBMSmoderni,idaIsonoarIcolaIsutrelivellidiastrazione:
– Schemalogico• descrizionedellestruMuresecondocuiidaIsonoorganizzaInelmodellologico(es:tabelle)
– Schemafisico• descrizionedellestruMuresecondocuiidaIsonomemorizza6sudisco
– Schemaesterno• descrizionediunaporzionedellabasedidaIcheprevedeorganizzazionideidaIdiverserispeMoaquelledelloschemalogico
• relaIvoallagesIonedellasicurezza
SchemiEsterni
• Nontu4gliutenIhannoglistessiprivilegi• Schemaesternoperunutente– porzionedellabasedidaIchel’utenteèautorizzatoavedere
• Viste:strumentoaMraversocuisidefinisceloschemaesterno
• Es:basedidaIcomunaledeiciMadini– tabella“ciMadino”,aMributo“imponibileafinifiscali”– vista“CiMadinoSenzaDaIFiscali”
Indipendenza
• E’lacaraMerisIcafondamentaledeiDBMS
• Indipendenzafisica– InteragireconDBMSinmodoindipendentedallastruMurafisicadeidaI
– ModificarelestruMurefisichesenzainfluiresulladescrizionedeidaIesuiprogrammicheliusano
• Indipendenzalogica– InteragireconillivelloesternodellaBDinmodoindipendentedalloschemalogico
– Modificareloschemaesternosenzamodificareloschemalogicoeviceversa
Indipendenza
• IndipendenzadeidaIrispeMoallaapplicazioni
• IndipendenzadelloschemalogicorispeMoalloschemafisico
• IndipendenzadeglischemiesternirispeMoalloschemalogico
Linguaggiperbasidida'
• L’accessoaidaIpuòavveniremediante:1. linguaggitestualiintera?vi(es.SQL)2. comandi(comequellidellinguaggiointera4vo)
immersiinunlinguaggioospite(Pascal,C,Cobol,etc.)
3. comandi(comequellidellinguaggiointera4vo)immersiinunlinguaggioadhoc,conanchealtrefunzionalità(es.pergraficiostampestruMurate),ancheconl’ausiliodistrumenIdisviluppo(p.es.perlagesIonedimaschere)
4. interfacceamichevoli(es.linguaggigrafici)
Due'pidilinguaggi
• DataManipula'onLanguage(DML)– perl’interrogazioneel’aggiornamentodi(istanzedi)basididaI
• DataDefini'onLanguage(DDL)– perladefinizionedischemi(logici,esterni,fisici)ealtreoperazionigenerali
• AlcunilinguaggicomeSQLintegranolefunzionalitàdientrambi
Un'operazioneDDL(sulloschema)
CREATETABLEorario(insegnamento CHAR(20),docente CHAR(20),aula CHAR(4),ora CHAR(5))
EsempioQuerySQL
SELECTMatricola,Cognome,AVG(Voto)FROMStudenI,EsamiWHEREMatricola=StudenteGROUPBYMatricola,Cognome
Matricola Cognome AVG(Voto)
276545 Rossi 27,5
937653 Bruni 25
200768 Verdi 24
Linguaggiperbasidida'
• Ognimodellohaisuoilinguaggi– DBMSrelazionali:SQL,QBE– DBMSaogge4:OQL– XML:XPath,XQuery
VantaggideiDBMS• DaIcomerisorsacomune
• BasedidaIcomemodellodellarealtà
• GesIonecentralizzataconpossibilitàdistandardizzazioneed“economiadiscala”
• DisponibilitàdiserviziintegraI
• Riduzionediridondanzeeinconsistenze
• IndipendenzadeidaI(favoriscelosviluppoelamanutenzionedelleapplicazioni)
SvantaggideiDBMS• Prestazioni– Inalcunisistemiconrichiestediefficienzasull’elaborazione(es.real-Ime),l’overheadcomputazionaleintrodoModalDBMSpuòessereeccessivo…
• Costo– Speseperl’acquistodiDBMS,formazionedelpersonale,amministrazionedelDB,etc
• Complessità– Applicazioni/sistemididimensioniridoMe,single-usereconpochidaIdagesIre…