ARCHITETTURA DI UN DBMS ì Modelli di dati ì Unapproccioconbasididatifornisceuncertolivellodi astrazionedeidati ì Nascondeidettaglisullamemorizzazionedeidatistessi ì Unmodellodeidatifornisceimezziperrealizzare questaastrazione GiorgioGiacinto2016 ì Struttura dellabasedidati:tipididati,associazioni, vincoli ì Operazionidibasesuidati:aggiornamenti e interrogazioni ì Operazioni definitedall’utente Categorie di modelli di dati Dueestremi ì Modelli didaticoncettuali (altolivello,semantici) ì Vicinialmodoincuigliutentipercepisconoidati ì Modelli didatifisici (bassolivello,interno) ì Dettaglisulmodoincuiidatisonomemorizzatidal computer Fraidueestremi… ì Modellididatirappresentabili Concettichepossonoesserecompresidagliutentifinali, manonlontanidalmodoincuiidatisonomemorizzatinel computer GiorgioGiacinto2016 ì Modelli didatiautodescrittivi ì Descrizionedeidatiassociataaidati(XML,ealcunimodelli NoSQL) Modelli di dati concettuali ì Entità ì Unoggetto(oconcetto)delmondoreale ì Attributo ì Proprietàdiinteressedelleentità ì Associazionefradueopiùentità ì Rappresentaunainterazionefraleentità GiorgioGiacinto2016 Modelli di dati implementabili Rappresentanoidatiusandostrutturedirecord ì Modellorelazionale ì Oggiilpiùdiffuso ì Modelloreticolare emodellogerarchico ì Moltousatinelpassato ì Modelloaoggetti ì Piùvicinoaimodelliconcettuali GiorgioGiacinto2016 Schemi e istanze ì Loschema descrivelastrutturadellabasedidati (aspettointensionale),sostanzialmenteinvariantenel tempo ì Diagrammadischemarappresentalastrutturadiciascun tipodirecord ì Lo statodellabasedidati èl’insiemedeidatiinuna basedidatiinundeterminatoistante(aspetto estensionale) ì ì ì GiorgioGiacinto2016 Ilprimoinserimentodidativienechiamatopopolamento IlDBMSdevegarantirecheognistatodellabasedidati siavalido spessochiamatoancheistanzaosnapshot Schema di una base di dati Giorgio Giacinto 2016 Architettura a tre livelli Giorgio Giacinto 2016 ì Architettura a tre livelli spessochiamatolivellologico Giorgio Giacinto 2016 Indipendenza logica dei dati ì Èlacapacitàdipotercambiareloschemalogico senzadovercambiareglischemiesternioi programmiapplicativi ì Ilprogettistadevemodificarecoerentementesolola definizionedellavistaeimapping fralivelli ì Iprogrammiapplicativichefannoriferimentoagli schemiesterninondevonoesseremodificati ì Sipossonomodificareivincolinelloschemalogico senzainfluenzareglischemiesternioiprogrammi applicativichefannoriferimentoaglischemiesterni GiorgioGiacinto2016 Indipendenza fisica dei dati ì Èlacapacitàdicambiareloschemainternosenzadover cambiareloschemalogicooglischemiesterni. Cambiamentialloschemainterno ì ì Riorganizzazionefilepercrearestrutturediaccesso addizionali Riorganizzazionefilepermigliorarerecuperoe aggiornamento ì Larealizzazionedell’indipendenzadeidatilogicaefisica puòcausareinefficienze (rallentamenti) ì Lerichiesteaciascunlivellodevonoessere“tradotte” in richiesteallivelloinferiore GiorgioGiacinto2016 Linguaggi per definire gli schemi ì DDL (DataDefinitionLanguage) ì Perdefinireloschemalogico.LamaggiorpartedeiDBMS usaquestolinguaggioancheperladefinizionedello schemainterno ì SDL (StorageDefinitionLanguage) ì UsatodaiDBMSchemantengonounanettadistinzione fralivellologicoeinternoperspecificareloschema interno.Ilmapping fralivellologicoeinternopuòessere specificatoinDDLoSDL ì VDL (View DefinitionLanguage) ì DovrebbeesistereinunDBMSaderenteall’architetturaa trelivelli.NellapraticalevistesonodefinitetramiteDDL GiorgioGiacinto2016 Linguaggi per la manipolazione dei dati ì DML (DataManipulation Language) ì Perrecuperareidati,inserirenuovidati,modificareo cancellaredatiesistenti DMLdialtolivello(non-procedurale) ì ì Leoperazionipossonoesserespecificatedirettamenteal DBMStramiteunterminale Leoperazionipossonoessereincapsulate(embedded) all’internodiunlinguaggiodiprogrammazione(un precompilatoreleestrae) DMLdibassolivello(procedurale) ì Deve essereincapsulatoinunlinguaggiodi programmazione GiorgioGiacinto2016 DML di basso e alto livello ì DMLdibassolivello ì record-at-a-time perchérecuperanounrecordalla volta. Usanoicostruttiiterativitipicideilinguaggidi programmazione ì DMLdialtolivello ì set-oriented perchépossonorecuperaremolti recordinunasingolaistruzione Sonodettilinguaggi dichiarativi perchéspecificano cosa recuperareenoncome GiorgioGiacinto2016 Linguaggi usati dai DBMS ì NeiDBMSattualiDDL,SDL,VDLeDMLnonsono consideratilinguaggidistinti (ladistinzioneèsolo logica) Adesempio,SQL (standard)consentedispecificare operazionidiDDL,VDLeDMLdialtolivello ì Ladefinizionedellamemorizzazionefisicaè tipicamentemantenutaseparata ì LaversioneattualediSQLnonprevedeoperazioni SDL(eranouncomponentediSQLnelleprime versioni) GiorgioGiacinto2016 Linguaggi di programmazione e linguaggi dei DBMS ì Siparladiincapsulamentose,adesempio,si inserisconoistruzioniSQLinC ì Unabasedidatiorientataaglioggettifornisce inveceununicolinguaggiointegratoperlascrittura diapplicazionieperlefunzionalitàdelDBMS ì AdesempioC++conopportuneestensioni ì AlcuniDBMSrelazionalioffronolinguaggiintegrati (adesempio,PL/SQLdiOracle) GiorgioGiacinto2016 Utenti della base di dati e linguaggi ì Utenticasuali ì DMLdialtolivello ì Programmatori ì DMLincapsulato ì Utentinonsofisticati ì Interfacce”amichevoli” GiorgioGiacinto2016 Interfacce dei DBMS ì Interfacceamenu perlanavigazione ì Guidapasso-passonellaformulazione dell’’interrogazione ì Interfacceamoduli(form) ì Perutentinonsofisticati:siriempionoicampiinun modulopre-definito ì Interfaccegrafiche ì L’utentecostruiscel’interrogazionemanipolandoun diagrammadelloschema(ades.usandounmouse) GiorgioGiacinto2016 Interfacce dei DBMS (cont.) ì Interfacceinlinguaggionaturale ì Interfaccevocali ì Interfacceperutentinonesperti ì Vienedefinitounpiccoloinsiemedicomandiabbreviati (adesempio,itastifunzione)perleoperazionipiù frequenti ì Cassieridibanca ì Terminalidiprenotazionevoli ì InterfacceperilDBA ì Comandiprivilegiatidiamministrazione GiorgioGiacinto2016 Ambiente di un DBMS Giorgio Giacinto 2016 ì Moduli di un DBMS GiorgioGiacinto2016 Programmi di utilità di un DBMS ì SonodiausilioalleoperazionidelDBA ì Caricamentodatidafileesistenti(strumentidi conversione) ì Backup:copiadisicurezzadellabasedidatisu nastro ì Riorganizzazionedeifileperincrementarele prestazioni ì Monitoraggiodelleprestazioniperprogrammare eventualioperazionidimanutenzione ì Altristrumentiperordinareifile,gestirela compressionedeidati,controllarel’accessodaparte degliutenti,ecc. GiorgioGiacinto2016 Strumenti, ambienti applicativi e comunicazione ì StrumentiCASE(ComputerAidedSoftware Engineering) ì Perlaprogettazionedibasididati ì Dizionariodeidati(Depositodiinformazioni) ì Perimmagazzinareschemi,vincoli,decisionidi progettazione,standardd’uso,ecc. ì Ambientidisviluppoapplicazioni ì Softwaredicomunicazione GiorgioGiacinto2016 Architettura fisica centralizzata GiorgioGiacinto2016 Architettura logica client/server GiorgioGiacinto2016 Architettura fisica client/server Comunicazioni fraapplicazioni cliente DataBase Server ODBC (Open DataBase Connectivity) GiorgioGiacinto2016 Architettura logica a tre livelli GiorgioGiacinto2016 Classificazione dei DBMS ì Rispettoalmodellologicodeidati ì Relazionale ì Usoditabelle ì Aoggetti ì Usodiclassi,gerarchie,metodi ì Relazionaleeaoggetti ì Modellorelazionaleestesoaglioggetti ì ModelliNoSQL ì key-value,document based,column nased,graph, XML... ì Modellidivecchiagenerazione ì Reticolare,Gerarchico GiorgioGiacinto2016 Classificazione dei DBMS (cont.) ì Rispettoalnumerodiutenti ì Singoloutente(DBMSperusopersonale) ì Multiutente ì Rispettoalnumerodisiti incuièdistribuitalabase didati ì Centralizzato ì Distribuito ì DDBMSomogeneiusanolostessosoftwareinpiùsiti ì DBMSfederati(softwaremiddleware peraccederea diversebasididatisviluppateautonomamente) GiorgioGiacinto2016 Classificazione dei DBMS (cont.) ì Rispettoalcosto ì Open-sourceesupportodaterzeparti ì DBMSperusopersonale ì DBMSEnterprise ì Rispettoalleopzionipericamminidiaccesso aifile ì Rispettoallafinalità ì General-purpose ì Special-purpose (ades.,prenotazioniaeree,elenchi telefonici,ecc.)consentonol’ottimizzazionedelle prestazioni GiorgioGiacinto2016 EVOLUZIONE DEL MERCATO DEI DBMS ì Giorgio Giacinto 2016 Gartner 2013 Magic Quadrant Operational DBMS GiorgioGiacinto2016 Gartner 2014 Magic Quadrant Operational DBMS GiorgioGiacinto2016 Gartner 2015 Magic Quadrant Operational DBMS GiorgioGiacinto2016 Gartner 2016 Magic Quadrant Operational DBMS GiorgioGiacinto2016