Componenti di un DBMS

Documenti analoghi
Elena Baralis 2007 Politecnico di Torino 1

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

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Pag Politecnico di Torino 1

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Sommario. Introduzione... 13

ARCHITETTURA DI UN DBMS

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

Cap. 1-I 1 I sistemi informatici

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

DBMS (Data Base Management System)

Basi di dati Basi di dati per bioinformatica

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 Modelli e linguaggi di interrogazione

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Caratteristiche dei linguaggi per Database

Progettazione di basi di dati

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

SISTEMA INFORMATIVO E SISTEMA INFORMATICO. Sistema informativo e sistema informatico

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

DBMS. Alice Pavarani

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Elena Baralis 2007 Politecnico di Torino 1

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Requisiti della base di dati. Schema concettuale

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Data Base. Prof. Filippo TROTTA

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

DATABASE PER IL WEB. Programmazione Web 1

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

JDBC versione base. Le classi/interfacce principali di JDBC

REGIONE BASILICATA UFFICIO S. I. R. S.

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Concetti di base. Modulo B.2

2011 Politecnico di Torino 1

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Open Database Connectivity (ODBC)

1. BASI DI DATI: GENERALITÀ

SQL: DDL, VI, Aggiornamenti e Viste

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

SISTEMI INFORMATIVI E DATABASE

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

Le basi di dati. Le basi di dati. dalla teoria all'utilizzo di tutti i giorni. Alessandro Tanasi

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Indice. Ringraziamenti dell Editore

ASP e Database. A cura di Michele Cavalieri

Cap. 1-I 1 I sistemi informatici

Informatica 2 Basi di dati

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

Basi di dati e Sistemi informativi aziendali

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Corso di Basi di Dati

Ciclo di vita di un sistema informativo

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

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

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

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

JDBC di base. Le classi/interfacce principali di JDBC

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Progettazione logica

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Metodologie e modelli di progetto

LABORATORIO di INFORMATICA

Introduzione al data base

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

Informatica e Bioinformatica: Basi di Dati

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Interrogazioni nidificate

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

Recovery manager Gestore della affidabilità

PROGRAMMA DI CLASSE 5AI

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Archivi e database. Dato e gli archivi

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

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

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Interrogazioni nidificate

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

File e cartelle File system Software di utilità Il S.O. e le periferiche Il S.O. e la memoria

FILE E INDICI Architettura DBMS

Traduzione dello schema E-R in modello logico relazionale

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

I database. Introduzione alla teoria delle basi di dati

Transcript:

Componenti di un DBMS Come fa un DBMS a garantire le proprietà ACIDe di una transazione? Vediamo i componenti principali dal più interno a quello di più alto livello: Controllore di Concorrenza Gestore del Buffer Controllore di Affidabilità Gestore degli Accessi (RSS) Ottimizzatore (incluso Compilatore) Componenti di un DBMS Ottimizzatore Gestore degli Accessi Controllo Affidabilità Gestore del Buffer Controllo Concorrenza 1

Componenti di un DBMS Controllore di Concorrenza Problemi da risolvere per transazioni concorrenti: Caso A: Transazione1 legge un campo e lo ricalcola senza aggiornarlo» Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 aggiorna il campo e commit Caso B: Transazione1 legge, ricalcola e aggiorna un campo» Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 rollback Ecc Componenti di un DBMS Controllore di Concorrenza Caso A: Perdita di aggiornamento Transazione1 Read1 (x) x = x+1 Write1 (x) Commit1 Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 2

Componenti di un DBMS Controllore di Concorrenza Caso A: Perdita di aggiornamento Transazione1 legge un campo e lo ricalcola senza aggiornarlo Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 aggiorna il campo e commit Transazione1 Transazione2 Risultato Read1 (x) 10 x = x+1 11 Read2 (x) 10 x=x+1 11 Write2 (x) 11 Commit2 11 Write1 (x) 11 Commit1 11 L aggiornamento della transazione2 è andato perduto! Problema Componenti di un DBMS Controllore di Concorrenza Caso B: Lettura sporca: Transazione1 Read1 (x) x = x+1 Write1 (x) Rollback1 Transazione2 Read2 (x) x=x+1 Write2 (x) Commit2 3

Componenti di un DBMS Controllore di Concorrenza Caso B: Lettura sporca: Transazione1 legge, ricalcola e aggiorna un campo Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 rollback Transazione1 Transazione2 Risultato Read1 (x) 10 x = x+1 11 Write1 (x) 11 Read2 (x) 11 x=x+1 12 Write2 (x) 12 Commit2 12 Rollback1 12 Problema Il valore di partenza per Transazione2 era un valore sbagliato! Componenti di un DBMS Controllore di Concorrenza Problemi da risolvere per transazioni concorrenti: Caso A: Perdita di aggiornamento Transazione1 legge un campo e lo ricalcola senza aggiornarlo» Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 aggiorna il campo e commit L aggiornamento della transazione2 è andato perduto! Caso B: Letture sporche Transazione1 legge, ricalcola e aggiorna un campo» Transazione2 legge, ricalcola e aggiorna il campo e commit Transazione1 rollback Il valore di partenza per Transazione2 era un valore sbagliato! Soluzione può sembrare causare rollback anche di T2 no: si vuole evitare l effetto domino. Ecc 4

Componenti di un DBMS Controllore di Concorrenza Soluzione Il controllore di concorrenza sequenzializza le operazioni di lettura e scrittura bloccando l accesso in scrittura per le transazioni seguenti Problema: due transazioni possono bloccarsi a vicenda su campi diversi: DEADLOCK! Soluzione, vari metodi: Timeout: blocco possibile solo temporaneamente poi scade Anzianità: non consentire attesa per transazione più giovane Rilevazione di blocco: causare rollback Componenti di un DBMS Gestore del Buffer Manager Il Buffer è l area di memoria centrale allocata al DBMS Problema La memoria Centrale di solito non contiene tutto il database perciò l utilizzo dell area deve essere condiviso alternando le pagine dalla Memoria Centrale alla Memoria di Massa Soluzione Politiche di swapping analoghe a Sistemi Operativi. Esempio: Togli dal buffer le pagine meno utilizzate ( 20% dei dati è acceduto dall 80% delle applicazioni) Tieni pagine con accessi pù recenti Ecc 5

Componenti di un DBMS Controllore di Affidabilità Problema Se avviene un guasto i dati in Memoria Centrale vanno perduti! Soluzione Archiviare su memoria stabile (es.:raid) in un file (LOG) le sequenze di modifica, in modo che possano essere rieseguite Archiviare su backup, periodicamente, tutto il database (DUMP) Se avviene Guasto di sistema (SW) ripartire da LOG (warm boot) Guasto di Memoria di Massa (HW) ripartire da DUMP (cold boot) e poi da LOG Componenti di un DBMS Gestore degli Accessi (Relational Storage System) Problema Accedere alla memoria fisica in modo efficiente Soluzione Metodi a seconda della struttura dei record nelle pagine Sequenziale ricerca sequenziale o dicotomica (se ordinata) Hashing ricerca in base ad un calcolo (Hash) Albero ricerca in base ad Indicizzazione della chiave: viene costruita una struttura di puntatori aggiuntiva alla struttura dati per consentire una ricerca efficiente dei record 6

Componenti di un DBMS Ottimizzatore Problema Scegliere i metodi di esecuzione delle operazioni e l ordine migliore in cui eseguirli per minimizzare i tempi Soluzione 1. Analisi delle dimensioni tabelle e attributi (Dizionario Dati) 2. Analisi dei costi dei metodi in base a struttura fisica 3. Costruzione di albero delle alternative con costi 4. Ricerca di una alternativa buona (non ottima) 5. Produzione del codice sorgente e compilazione DBMS: Ottimizzazione Esempio: Quanti impiegati lavorano a Milano? Diverse soluzioni Impiegati Dipartimento 7

Accesso al DBMS Ottimizzatore Gestore degli Accessi Controllo Affidabilità Gestore del Buffer Controllo Concorrenza Program mazione Accesso al DBMS L accesso ai dati può avvenire: 1. con linguaggi testuali interattivi (es. SQL) utilizzati come comandi da una interfaccia testuale 2. con interfacce amichevoli interattive non testuali (es. ACCESS) 3. con linguaggi della quarta generazione (4GL) specifici del DBMS, che permettono di sviluppare complete applicazioni 4. con comandi (del linguaggio interattivo) immersi in un linguaggio ospite di alto livello (Pascal, C, Cobol, Java, etc.) 8

Linguaggi per DBMS Introduzione ai Linguaggi per DBMS: Schemi e Istanze In ogni base di dati esistono: lo Schema: che ne descrive la struttura le intestazioni delle tabelle, i legami l Istanza, costituita dai valori il corpo di ciascuna tabella Linguaggi per DBMS Nei DBMS esistono linguaggi separati per la definizione e per la manipolazione delle strutture: Data Definition Language (DDL) per la definizione di Schemi (la struttura): le intestazioni delle tabelle, i legami Data Manipulation Language (DML) : per l interrogazione e l aggiornamento di Istanze (valori): il corpo di ciascuna tabella 9

SQL ( 74) SQL è un linguaggio sia DDL che DML Data Definition Language (DDL) : per la definizione di schemi Data Manipulation Language (DML) : per l interrogazione e l aggiornamento di istanze SQL Primitive DDL: Create, Alter, Drop Domain (tipo di dato) utente Table con Attributi Vincoli Index (campi indicizzati) Assertion (vincoli generici) View (viste tabelle temporanee) 10

SQL Primitive DML principali di interrogazione: Select EspressioneAttributi From tabelle Where condizioni Group by attributi Order by attributi Union, Intersect,Except SQL Primitive DML principali di manipolazione: Insert (valori nei campi o righe nella tabella) Delete (righe nella tabella) Update (valori nei campi) 11

SQL Primitive DML principali di manipolazione: Sintassi: Inserimento Di valori nei campi: insert into tabella (attributi) values (valori) Di righe nella tabella insert into tabella SelectSQL Cancellazione Di righe dalla tabella: delete from tabella where (condizione) Modifica Di valori nei campi : update tabella set attributo = <espressione SelectSQL null default > [where condizione] Accesso al DBMS 12

Interfaccia di Accesso ai Dati Applicazione Fonte dati propria dell applicazione DB appl Interfaccia di Accesso ai Dati Applicazione Fonti dati diverse su vari elaboratori: molte interfacce! DB appl File System Elaboratore B Elaboratore A Leggenda: Elaboratore emails DB Applicazione Data Source DB DB Elaboratore C Elaboratore C 13

Interfaccia di Accesso ai Dati E necessaria una libreria (Driver) per ogni specifica tripla: DBMS Sistema Operativo Protocollo di Rete ODBC: Open Database Connectivity ( 91) Supporta un SQL ristretto definito da c.a 50 grandi utenti (aziende, enti, ) Interfaccia di Accesso ai Dati Applicazione Fonti dati diverse su vari elaboratori: una sola interfaccia ODBC DB appl Elaboratore A Leggenda: Elaboratore Driver Manager Driver 4 Driver 5 Driver 2 Driver 1 Driver 3 File System emails DB Elaboratore B Applicazione Data Source DB DB Elaboratore C Elaboratore C 14

Interfaccia di Accesso ai Dati E necessaria una libreria (Driver) per ogni specifica tripla: DBMS Sistema Operativo Protocollo di Rete ODBC: Open Database Connectivity ( 91) Supporta un SQL ristretto definito da c.a 50 grandi utenti (aziende, enti, ) Problema: Interfaccia solo verso Database (relazionali): di DBMS diversi su Sistemi Operativi diversi con Protocolli di Rete diversi Interfaccia di Accesso ai Dati Evoluzione verso fonti eterogenee (non solo DB) fonti non connesse (tecnologia Web Services) Microsoft: ODBC DAO RDO OLE DB ADO ADO.NET Java JDBC XML 15

Progettazione di Basi di Dati La progettazione di una base di Dati si divide in tre fasi: 1. Progettazione Concettuale 2. Progettazione Logica 3. Progettazione Fisica Progettazione di Basi di Dati Schemi nell architettura del DBMS Schema Fisico 16

Progettazione di Basi di Dati Progettazione Concettuale Utilizza un modello concettuale per rappresentare i dati in modo indipendente da ogni sistema, cercando di descrivere i concetti del mondo reale il più noto è il modello Entity-Relationship Produce lo Schema Concettuale Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship Entity: concetto che descrive una classe di oggetti che ha proprietà comuni ed esistenza autonoma Es.: Impiegato, Dipartimento, Progetto Relationship: concetto che associa due o più Entity Es.: Direzione (tra Impiegato e Dipartimento), Appartenenza (tra Impiegato e Dipartimento), Partecipazione (tra Impiegato e Progetto) Attribute: concetto con struttura semplice rappresentabile come attributo di un altro concetto Es.: Cognome di un Impiegato, Budget di un Progetto 17

Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship Direzione Cognome Stpendio Impiegato Appartenenza Dipartimento Città Data appartenenza Partecipazione Budget Data consegna Progetto Data inizio Entità, Relazioni e Attributi Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 1 Direzione Cognome Stpendio Impiegato Appartenenza Dipartimento Città Data appartenenza Budget Data consegna Partecipazione Progetto Data inizio Cardinalità delle relazioni: Quante volte una occorrenza di una relazione può essere legata a occorrenze di un altra relazione Massima Relazione 1 a 1 18

Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 1 Direzione Cognome Stpendio Impiegato 1 N Appartenenza Dipartimento Città Data appartenenza Budget Data consegna Partecipazione Progetto Data inizio Cardinalità delle relazioni: Quante volte una occorrenza di una relazione può essere legata a occorrenze di un altra relazione Massima Relazione 1 a N Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship 1 1 Direzione Cognome Stpendio Budget Data consegna Impiegato N Partecipazione N Progetto 1 N Appartenenza Dipartimento Data inizio Data appartenenza Città Cardinalità delle relazioni: Quante volte una occorrenza di una relazione può essere legata a occorrenze di un altra relazione Massima Relazione N a N 19

Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship ( 0, 1 ) ( 1, 1 ) Direzione Cognome Stpendio Budget Data consegna Impiegato Partecipazione Progetto ( 0, N) ( 1, N) ( 1, 1 ) ( 1, N) Appartenenza Dipartimento Data inizio Data appartenenza Città Cardinalità delle relazioni: Quante volte una occorrenza di una relazione può essere legata a occorrenze di un altra relazione Minima Progettazione di Basi di Dati Progettazione Concettuale Modello Entity-Relationship ( 0, 1 ) ( 1, 1 ) Direzione Cognome Stpendio Budget Data consegna Impiegato Partecipazione Progetto ( 0, N) ( 1, N) ( 1, 1 ) ( 1, N) Appartenenza Dipartimento Data inizio Data appartenenza Identificatori delle entita: Concetto che permette di identificare in maniera univoca una entità Città 20

Progettazione di Basi di Dati Progettazione Logica Utilizza Schema Concettuale e lo traduce nel Modello di Dati scelto esempi: relazionale, reticolare, gerarchico, a oggetti indipendente dalla struttura fisica dei dati produce uno Schema Logico Progettazione di Basi di Dati Progettazione Logica La Progettazione Logica avviene in due fasi 1. Ristrutturazione dello Schema Concettuale di Entity- Relationship Analisi ed eliminazione delle ridondanze Normalizzazione Scelta Identificatori Principali Chiavi Primarie 2. Traduzione verso il modello Logico 21

Progettazione di Basi di Dati Normalizzazione Impiegati Informazione Ridondante Progettazione di Basi di Dati Normalizzazione Impiegati Informazione Ridondante 22

Progettazione di Basi di Dati Normalizzazione Impiegati Problemi: 1. aggiornamento 2. cancellazione 3. inserimento Informazione Ridondante Vantaggi: meno accessi Progettazione di Basi di Dati Normalizzazione Impiegati Dipartimento DB Normalizzato 23

Progettazione di Basi di Dati Normalizzazione L eliminazione delle ridondanze (dati derivabili) è una scelta opzionale di progettazione Vantaggi Maggiore efficienza nel mantenere i dati aggiornati Consistenza Risparmio memoria Svantaggio Aumento degli accessi necessari per derivare il dato Si parla di 1ª (Boyce-Codd), 2ª e 3ª Forma Normale Progettazione di Basi di Dati Progettazione Fisica Utilizza Schema Logico per determinare parametri prestazionali del DBMS Dimensioni iniziali ed espansione dei file Contiguità di allocazione Dimensioni aree di swapping e caratteristiche della tabelle Individuazione Indici da definire per ciascuna tabella Tipo e dimensione degli attributi Produce uno Schema Fisico 24