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