Parte I Introduzione

Documenti analoghi
Basi di dati. Base di dati

Fondamenti di Teoria delle Basi di Dati

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1

Corso di Basi di Dati/Laboratorio di Basi di Dati

Basi di dati. Maurizio Lenzerini. Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Introduzione. Basi di Dati. Testo: Azteni e altri. Basi di Dati (II ed.). McGraw Hill. Maurizio Gabbrielli Ricevimento Martedi 14.

Basi di dati. Elena Baralis Politecnico di Torino

LINGUAGGI E UTENTI DI UN DBMS

Introduzione alle Basi di Dati

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Sistema informativo 20/02/2012. Copyright The McGraw-Hill Companies, srl

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Punti di vista. Base di dati. Contenuti. Metodo di studio. Sistema informativo, commenti. Sistema informativo

Corso di. Basi di Dati I. 1. Introduzione

Corso di. Basi di Dati I. 1. Introduzione

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Introduzione. Base di dati. Punti di vista. Che cos'è l'informatica? Sistema informativo. Contenuti

Introduzione. Base di dati. Punti di vista. Che cos'è l'informatica? Metodo di studio. Contenuti

Che cos è l informatica?

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

Introduzione. Obiettivi del corso. Libro di testo, esercitazioni. Punti di vista. Base di dati

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

Basi di dati Introduzione

Basi di dati INTRODUZIONE

record a struttura fissa

Basi di dati Basi di dati per bioinformatica

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO)

D. Gubiani Introduzione alle Basi di Dati 3. La porzione automatizzata di un sistema informativo viene in

SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Basi di dati. Introduzione. Docente: Stefano Paraboschi Corso di Basi di dati AA 2002/2003

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Corso di Basi di Dati e Laboratorio Progettazione Web

Corso di Basi di Dati e Laboratorio Progettazione Web

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

BASI DI DATI INTRODUZIONE

Basi di Dati Concetti Introduttivi

Introduzione alle Basi di Dati

Sistema azienda. Sistema azienda (o sistema della organizzazione) uno o più obiettivi, o fini istituzionali

INTRODUZIONE. Prof. Fabio A. Schreiber. Dipartimento di Elettronica e Informazione Politecnico di Milano PROGRAMMA DEL CORSO

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Introduzione alle basi di dati. A. Ferrari

Basi di Dati prof. Letizia Tanca Politecnico di Milano. Introduzione al corso

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

record a struttura fissa

Prof. Pagani corrado SISTEMI INFORMATIVI E DATABASE

INFORMATICA PER LE SCIENZE UMANE a.a. 2017/2018

Corso di Sviluppi dell Informatica e della Telematica a.a (ultima edizione v.o. 509)

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

Bibliografia e strumenti. Obiettivi del corso. Comunicazione docente

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

Sistemi Informativi Corso di Laurea in Ingegneria dell Integrazione d Impresa (E-Business)

Informatica Introduzione alle basi di dati

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso Informatica di Base. Basi di Dati

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo

Basi di Dati Concetti Introduttivi

ARCHITETTURA DI UN DBMS

Liceo Scientifico V. Volterra Fabriano. Informatica Basi di dati Anno C Scienze Applicate Prof. Amedeo De Amicis

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Sistemi Informativi. Contenuti della lezione del 28/02/2004. L Informazione nelle Organizzazioni. L Informazione nelle Organizzazioni

Prof. Giancarlo Fortino

BASE DI DATI. collezione di dati, utilizzati per rappresentare le. (accezione specifica) collezione di dati gestita da un DBMS. (accezione generica)

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Progettazione Concettuale/1

Ciclo di vita di un sistema informativo

Informatica e Tecnologie per la Produzione del Software Crediti formativi 9

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Basi di Dati. Corso di Laurea in Informatica Corso B A.A. 2015/16. Dr. Claudia d'amato. Dipartimento di Informatica, Università degli Studi Bari

ITI M. FARADAY. Programmazione a. s

Basi di Dati. Prof.ssa Rosalba Giugno

Informatica Introduzione alle basi di dati

DBMS. Alice Pavarani

Informatica per le Scienze Umane. Introduzione al corso: programma

Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.

Sistemi Informativi e Basi di Dati. Sistemi Informativi

Cap. 1-I 1 I sistemi informatici

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Informatica per l Ambiente e il Territorio

Informatica per l Ambiente e il Territorio

Università degli Studi di Enna Kore Facoltà di Ingegneria ed Architettura

INTRODUZIONE AL MODULO DI BASI DI DATI. Patrizio Dazzi a.a

Basi di Dati: Introduzione

Sistemi Informativi e Basi di Dati

Anno Accademico 2007/2008. Sistemi Informativi. Corso di Laurea in Ingegneria della Gestione Industriale

Transcript:

Parte I Introduzione Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 1

Docente Prof. Silvio Salza Dipartimento di Ingegneria informatica, automatica e gestionale Via Ariosto 25, II piano stanza B209 salza@diag.uniroma1.it (usare con criterio) http://www.diag.uniroma1.it/~salza/ Ricevimento orari annunciati su web Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 2

Orario Mercoledì 16.00-19.00 aula 12 Giovedì 14.00-16.00 aula 12 Di norma la seconda metà della lezione del mercoledì (e non solo) sarà dedicata alle esercitazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 3

Materiale didattico Testo di riferimento Atzeni, Ceri, Fraternali, Paraboschi, Torlone, Basi di dati: modelli e linguaggi di interrogazione, McGraw-Hill, 4ed, 2013. (ma vanno bene anche altri testi di Basi di Dati) Copia delle trasparenze del docente, e altro materiale: sul sito web http://www.diag.uniroma1.it/~salza/ Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 4

Contenuti del corso Modelli per la rappresentazione e la gestione efficiente di insiemi complessi ed estesi di dati Linguaggi e formalismi per la definizione, la manipolazione e l interrogazione delle basi di dati Architettura dei Sistemi di Gestione di Basi di Dati (DBMS) Metodologie sistematiche per il progetto di basi di dati, sia dal punto di vista della completezza e correttezza della rappresentazione, che da quello dell efficienza Amministrazione delle basi di dati Sviluppo di applicazioni su basi dati, basi di dati e Web Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 5

Organizzazione del corso 1. Introduzione Concetti fondamentali Basi di dati e DBMS Linguaggi di accesso 2. Il Modello relazionale Relazioni, tabelle, attributi, domini Vincoli di integrità Chiavi e valori nulli 3. L algebra relazionale Operatori dell algebra L algebra come linguaggio di interrogazione Equivalenza delle espressioni 4. Il linguaggio SQL Definizione dei dati Interrogazioni e manipolazioni dei dati Embedding nei linguaggi applicativi Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 6

Organizzazione del corso 5. Progettazione concettuale Il modello Entità-Relazione (ER) Costrutti del modello: entità e associazioni Documentazione di schemi ER Progettazione di schemi concettuale 6. Progettazione logica Ristrutturazione degli schemi ER Traduzione di schemi ER 7. Architettura del DBMS Transazioni e gestione della concorrenza Gestione del buffer Controllo di affidabilità 8. Progettazione fisica Strutture di accesso Ottimizzazione delle interrogazioni Tuning delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 7

Organizzazione del corso 9. Basi di dati distribuite Strutture di accesso Ottimizzazione delle interrogazioni Tuning delle applicazioni 10. Basi di dati e Web Accesso a basi di dati da interfacce web Scripting lato server e lato client, i linguaggio PHP Sviluppo di applicazioni ESERCITAZIONI Coprono la maggior parte delle ore Progettazione di basi di dati Programmazione in linguaggio SQL Esercitazioni pratiche su piattaforma MySQL-Apache Sviluppo di interfacce Web Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 8

Modalità di esame Prova scritta unica di 90 minuti, e colloquio orale. Prova d esame composta da più parti: 1. Progetto dello schema concettuale di una base di dati a partire dalle specifiche 2. Progetto dello schema relazionale, completo di vincoli 3. Quattro interrogazioni da sviluppare in linguaggio SQL 4. Una domanda aperta su un argomento di teoria Per superare l esame occorre che siano soddisfatte tutte le seguenti condizioni: a. Conseguire un punteggio complessivo sufficiente b. Conseguire la sufficienza nelle parti 1 e 2 c. Conseguire la sufficienza in almeno una delle interrogazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 9

Base di dati (accezione generica) Collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione. (accezione specifica) Collezione di dati in memoria secondaria gestita da un apposito sistema software, chiamato DBMS (Sistema di Gestione di Basi di Dati). Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 10

Archivi e basi di dati ORARIO LEZIONI ARCHIVIO LEZIONI GESTIONE ESAMI ARCHIVIO ESAMI ORARIO LEZIONI GESTIONE ESAMI BASE DI DATI In una base di dati sono integrati, e gestiti unitariamente archivi diversi, condivisi da più applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 11

DataBase Management System (DBMS) Sistema software in grado di gestire in modo efficiente, affidabile e sicuro collezioni di dati (basi di dati) Le basi di dati gestite da un DBMS devono poter essere: Grandi : cioè di dimensioni molto maggiori della memoria centrale dei sistemi di calcolo utilizzati Persistenti : con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano Condivise : utilizzate da applicazioni diverse Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 12

Architettura delle applicazioni CLIENT 1... APPLICAZIONE 1... DBMS BASE DI DATI CLIENT n APPLICAZIONE n APPLICATION SERVER Il DBMS è l unico responsabile della gestione della base di dati: i dati sono accessibili all esterno solo tramite il DBMS Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 13

Condivisione Gestione centralizzata della base di dati Condivisione dei dati da parte di applicazioni e utenti L integrazione e la condivisione permettono di ridurre la ridondanza (evitando ripetizioni) Evitato il verificarsi di fenomeni di inconsistenza La condivisione richiede un opportuno coordinamento degli accessi (controllo della concorrenza) Ripartiti su più applicazioni i costi di progettazione e di mantenimento della base di dati Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 14

Persistenza L organizzazione dei dati ed il loro ciclo di vita sono indipendenti da quelli delle applicazioni I valori assunti dei dati sono preservati anche oltre il termine dell esecuzione delle applicazioni Memorizzazione su dispositivi di memoria permanente (memoria secondaria), o di memoria stabile (RAID) La memorizzazione dei dati è garantita anche in presenza di guasti di dispositivo e di sistema Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 15

Caratteristiche del DBMS Il DBMS è progettato in modo da garantire, al di là di quanto viene gestito a livello delle applicazioni: affidabilità : resistenza a guasti e malfunzionamenti hardware e software sicurezza : controllo degli accessi, e garanzia della riservatezza delle informazioni efficienza : capacità di utilizzare al meglio le risorse del sistema, e di ottimizzare i tempi di risposta efficacia : rendere produttive le attività dei suoi utilizzatori Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 16

Transazioni I DBMS supportano l esecuzione transazioni Insiemi di operazioni sulla base di dati effettuate da un applicazione Ciascuna transazione deve essere considerata come indivisibile (atomica) La correttezza dell esecuzione deve essere garantita anche in presenza di concorrenza Gli effetti della transazione devono essere persistenti Il supporto delle transazioni da parte del DBMS semplifica ed alleggerisce lo sviluppo delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 17

Transazioni: esempio Bonifico bancario dal conto A al conto B 1. Prelievo dal conto A 2. Aggiornamento della lista di operazioni di A 3. Accredito sul conto B 4. Aggiornamento della lista di operazioni di B Va evitata in ogni caso una esecuzione parziale delle operazioni che costituiscono la transazione Una volta che la transazione è stata confermata, la permanenza dei suoi effetti sulla base di dati deve essere garantita L accesso concorrente ai conti A e B da parte di altre transazioni non deve pregiudicare la correttezza Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 18

DBMS e file system I file system offrono alcune funzioni proprie dei DBMS Memorizzazione permanente Controllo degli accessi Strutture di accesso (indici) Particolari ambienti applicativi (TP-monitor) supportano l esecuzione di transazioni Prima dell avvento dei DBMS, le applicazioni sono state sviluppate direttamente sul file system I DBMS offrono enormi vantaggi in termini di costo di di sviluppo e di gestione delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 19

Perché i DBMS: coerenza dei dati I file system non prevedono verifiche sulla coerenza dei dati: diversi file possono essere creati, cancellati e modificati indipendentemente l uno dall altro questo può creare incoerenze rispetto alle informazioni che il contenuto dei file rappresentano Occorre sviluppare i relativi controlli a livello delle applicazioni: aumento dei costi di sviluppo Nei DBMS, sono presenti meccanismi che permettono di garantire che venga mantenuta la coerenza reciproca dei dati Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 20

Perché i DBMS: condivisione dei dati I file system prevedono forme di condivisione: accesso condiviso in lettura accesso esclusivo in scrittura Occorrono controlli ad hoc quando l accesso coinvolge più file: aumento dei costi di sviluppo Occorre coordinare lo sviluppo e la manutenzione di applicazioni diverse che condividono gli stessi dati I DBMS integrano e centralizzano la gestione dei dati, assicurando i controlli in maniera trasparente per le applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 21

Perché i DBMS: catalogo dei dati Nei programmi tradizionali che accedono a file: ogni programma contiene una descrizione della struttura del file stesso nascono rischi di incoerenza fra le descrizioni (ripetute in ciascun programma) e i file stessi I DBMS gestiscono un catalogo, cioè una descrizione centralizzata dei dati il catalogo è utilizzato utilizzato da tutti i programmi che condividono i dati La gestione del catalogo è centralizzata ed integrata Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 22

Perché i DBMS: indipendenza dei dati I DBMS consentono di utilizzare diversi livelli di descrizione e rappresentazione dei dati Organizzazione logica della base di dati (livello alto) : è quella cui i programmi fanno riferimento Organizzazione fisica dei dati (livello basso) : può essere modificata senza necessità di modica dei programmi In questo modo il DBMS garantisce l indipendenza dei dati dalla rappresentazione fisica Gli sviluppatori delle applicazioni vedono solo l organizzazione logica Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 23

Perché i DBMS: interrogazione dei dati Nei programmi tradizionali che accedono a file ogni programma deve realizzare: i meccanismi di accesso ai dati nei file i metodi di composizione di tali dati per ottenere i risultati richiesti I DBMS mettono a disposizioni potenti linguaggi di interrogazione, che: permettono di accedere in modo semplice e flessibile ai dati memorizzati permettono di comporre dati elementari per effettuare la valutazione di interrogazioni complesse Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 24

Modello dei dati Insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica Componente fondamentale: meccanismi di strutturazione (o costruttori di tipo) Come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori Esempio: il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 25

Tabelle Orario Insegnamento Docente Aula Ora Analisi I Luigi Neri N1 8:00 Basi di dati Piero Rossi N2 9:45 Chimica Nicola Mori N1 9:45 Fisica I Mario Bruni N1 11:45 Fisica II Mario Bruni N3 9:45 Sistemi inform. Piero Rossi N3 8:00 Aule Nome Edificio Piano N1 A 1 N2 B 1 N3 A 2 Nel modello relazionale l organizzazione dei dati è di tipo tabellare Una tabella rappresenta un insieme omogeneo di record Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 26

Schemi ed istanze In ogni base di dati distinguiamo due aspetti Lo schema (aspetto intensionale) descrive la struttura della base di dati, cioè l organizzazione dei dati è sostanzialmente invariante nel tempo L istanza (aspetto estensionale) è costituita dai valori attuali, contenuti nella base di dati possono cambiare molto e rapidamente Allo stesso schema corrispondono più istanze Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 27

Schemi ed istanze: esempio In una base di dati relazionale lo schema è costituito dalle intestazioni delle tabelle (più altro): Orario Insegnamento Docente Aula Ora Aule Nome Edificio Piano L istanza è costituita dal corpo di ciascuna tabella, ad un certo istante; ad esempio per la tabella Aula N1 A 1 N2 B 1 N3 A 2 Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 28

Modelli logici e concettuali Modelli logici: utilizzati nei DBMS esistenti per l organizzazione dei dati; ad essi fanno riferimento i programmi; sono indipendenti dalle strutture fisiche Esempi: relazionale, reticolare, gerarchico, a oggetti Modelli concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale; sono utilizzati nelle fasi preliminari di progettazione Esempi : il più noto è il modello Entità-Relazione Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 29

Architettura a tre livelli (ANSI/SPARCS) UTENTE UTENTE UTENTE UTENTE UTENTE SCHEMA ESTERNO SCHEMA ESTERNO SCHEMA ESTERNO SCHEMA LOGICO SCHEMA INTERNO DATI Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 30

Architettura ANSI/SPARCS: schemi Schema logico: descrizione dell intera base di dati nel modello logico adottato dal DBMS Schema esterno: descrizione di una porzione della base di dati di interesse in un modello logico ( viste parziali, derivate, anche in modelli diversi) Schema interno (o fisico): rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 31

Esempio: schema logico Corsi Aule Corso Docente Aula Nome Edificio Piano Analisi Rossi DS3 DS1 OMI Terra Sistemi Neri N3 N3 OMI Terra Reti Bruni N3 G Pincherle Primo Controlli Bruni G CorsiSedi Corso Aula Sistemi N3 Reti N3 Controlli G Edificio Piano OMI Terra OMI Terra Pincherle Primo Rappresenta l organizzazione dell intera base di dati, in questo caso nel modello relazionale Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 32

Esempio: schema esterno Corsi-a Aule Corso Aula Nome Edificio Analisi DS3 DS1 OMI Sistemi N3 N3 OMI Reti N3 G Pincherle Controlli G Rappresenta la parte della base di dati visibile ad una certa applicazione, od insieme di utenti La visibilità è limitata ad un sottoinsieme di tabelle, ed a parte dello schema di alcune tabelle Diverse applicazioni hanno diversi livelli di visibilità Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 33

Indipendenza dei dati Conseguenza diretta della articolazione in livelli L accesso avviene solo tramite il livello esterno (che può coincidere con il livello logico) Si estrinseca a due livelli: Indipendenza fisica: il livello esterno e quello logico sono disaccoppiati da quello fisico Indipendenza logica: il livello esterno è disaccoppiato da quello logico Trasparenza: modifiche apportate ad un livello non necessariamente interessano gli altri Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 34

Indipendenza fisica Il livello logico e quello esterno sono indipendenti da quello fisico Una vista (schema esterno) e una relazione (schema logico) non sono interessate da modifiche all organizzazione fisica della base di dati Modifiche all organizzazione fisica della base di dati possono essere necessarie per motivi di efficienza L organizzazione fisica della base di dati può cambiare senza che debbano essere modificati i programmi Questo semplifica enormemente la manutenzione delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 35

Indipendenza logica Il livello esterno è indipendente da quello logico Aggiunte o modifiche alle viste non richiedono modifiche al livello logico Modifiche allo schema logico che lascino inalterato lo schema esterno sono trasparenti Questo semplifica lo sviluppo di nuove applicazioni, e rende largamente indipendente la manutenzione delle diverse applicazioni Le modifiche al livello logico e fisico possono essere apportate dagli amministratori della base di dati, e non dai responsabili delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 36

Accesso alle basi di dati Le applicazioni, e gli amministratori, con diversi privilegi, accedono alla base di dati, in tre diverse modalità Definizione: per modificare lo schema, esterno, logico, o fisico della base di dati Interrogazione: per effettuare ricerche il cui esito dipende dai valori contenuti nell istanza corrente Manipolazione: per modificare il contenuto della base di dati, e cioè per modificare l istanza corrente Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 37

Data Definition e Data Manipulation Tutti i linguaggi per accesso a basi di dati fanno una chiara distinzione tra il livello intensionale ed il livello estensionale Data Definition Language (DDL) per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali Data Manipulation Language (DML) per l interrogazione e l aggiornamento di (istanze di) basi di dati Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 38

Linguaggi per basi di dati L accesso ai dati può avvenire con diverse modalità: Tramite linguaggi testuali interattivi (ad es. SQL) Tramite comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ospite (Java, C, Cobol, etc.) Tramite comandi (come quelli del linguaggio interattivo) immersi in un linguaggio ad hoc, con anche altre funzionalità (ad es. per grafici o stampe strutturate), anche con l ausilio di strumenti di sviluppo (ad es. per la gestione di maschere) Tramite interfacce amichevoli, tipicamente grafiche (senza ricorso a linguaggi testuali) Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 39

Esempio: creazione di una tabella ESPRESSIONE SQL CREATE TABLE Orario ( Insegnamento CHAR(20), Docente CHAR(20), Aula CHAR(4), Ora CHAR(5) ); SCHEMA DELLA TABELLA Orario Insegnamento Docente Aula Ora Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 40

Esempio: interrogazione BASE DI DATI Corsi Aule Corso Docente Aula Nome Edificio Piano Analisi Rossi DS3 DS1 OMI Terra Sistemi Neri N3 N3 OMI Terra Reti Bruni N3 G Pincherle Primo Controlli Bruni G INTERROGAZIONE (in linguaggio naturale) Trovare i corsi tenuti in aule al piano terra Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 41

Esempio: interrogazione in SQL INTERROGAZIONE IN SQL RISULTATO SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano = "Terra" Corso Sistemi Reti Aula N3 N3 Piano Terra Terra Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 42

Esempio: linguaggio ospite write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ; EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 43

Esempio: interazione non testuale Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 44

Personaggi e interpreti Progettisti e realizzatori di DBMS Progettisti della base di dati Amministratori della base di dati (DBA, Data Base Administrator) Progettisti di applicazioni Utenti Utenti finali (terminalisti): eseguono applicazioni predefinite (transazioni) Utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 45

Il DataBase Administrator (DBA) Persona o gruppo di persone responsabile del controllo centralizzato e della gestione del sistema: Prestazioni Affidabilità Sicurezza Le funzioni del DBA includono quelle di progettazione, anche se in progetti complessi ci possono essere distinzioni I progettisti delle applicazioni, avendo privilegi limitati devono interagire con il DBA Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 46

Vantaggi dei DBMS Dati come risorsa comune, schema dei dati come modello della realtà Gestione centralizzata con possibilità di standardizzazione ed economia di scala Disponibilità di servizi integrati Riduzione di ridondanze e incoerenze Indipendenza dei dati (favorisce lo sviluppo e la manutenzione delle applicazioni) Portabilità delle applicazioni Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 47

Svantaggi dei DBMS Costo dei prodotti e della transizione verso di essi Non scorporabilità delle funzionalità (con riduzione di efficienza) Minore controllo sull efficienza delle applicazioni: Il DBMS nasconde il livello fisico L analisi delle prestazioni è più complessa La capacità di intervento è più limitata La trasparenza, oltre che un vantaggio può essere, in certe situazioni, uno svantaggio Basi di dati - prof. Silvio Salza - a.a. 2017-2018 I - 48