Basi di dati distribuite

Documenti analoghi
Architetture distribuite

Parte IX Basi di dati distribuite e parallele

Aspetti avanzati nella definizione degli schemi DDL2 1

Architetture Distribuite

Basi di dati distribuite. BD distribiute 1

Capitolo 6. Esercizio 6.1

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

BASI DI DATI DISTRIBUITE. Esercizio n. 1 Si consideri la base dati:

Basi di Dati Parallele

Interrogazioni in SQL SQL1 1

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato

Basi di Dati Attive. Basi di Dati Attive

Basi di Dati: Corso di laboratorio

Basi di dati Architetture e linee di evoluzione

Architetture Evolute nei Sistemi Informativi. architetture evolute 1

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

SISTEMI INFORMATIVI AZIENDALI

σ data 15/12/2013 data 20/12/2014

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

11. Basi di dati distribuite ed architetture client-server

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

Tabelle esempio: Impiegato/Dipartimento

Interpretazione delle query nidificate

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

Archivi e Basi di Dati. lezione 07 1

Cap. 7 -Trigger e loro uso

Basi di dati attive. Paolo Atzeni. Basi di dati attive

SQL /10/2016 Basi di dati - SQL 1

BASI DI DATI DISTRIBUITE

Vincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1

Corso di Basi di Dati A.A. 2015/2016

Sommario. Introduzione... 13

1) Il sistema automatico di prenotazione dei posti di TicketTwo si basa sul seguente database.

Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Linguaggi per basi di dati e SQL

Interrogazioni nidificate

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Basi di Dati. Esercitazione SQL. 18 maggio 2007

Basi di dati. Gabriella Trucco

La gestione delle interrogazioni

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Interrogazioni nidificate

record a struttura fissa

D B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

Corso sul linguaggio SQL

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2013 Politecnico di Torino 1

Soluzione esercitazione 01

BASI DATI: algebra relazionale

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

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

Architetture Client/Server e World Wide Web

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

Basi di dati: appello 14/07/06

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

SQL Esempi /10/2017 Basi di dati - SQL 1

Linguaggi di interrogazione. linguaggi interrogazione 1

Sommario FONDAMENTI DI INFORMATICA 1. Sistemi informatici e sistemi informativi. Informazioni e dati BASI DI DATI

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)

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

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

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

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

Corso di Basi di Dati

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Appunti su SQL. Query Language. Comando Select

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

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Basi di Dati: Corso di laboratorio

Linguaggio SQL: fondamenti

Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G

SQL - Sottointerrogazioni

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni

IMPIEGATO(Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager)

Interrogare una base di dati: Algebra relazionale e SQL. Gaetano Anastasi Davide Barcelli Massimo Emiliano Ciaramello Giacoma Monreale

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Caratteristiche dei linguaggi per Database

Basi di Dati: Corso di laboratorio

Interrogazioni complesse. SQL avanzato 1

Ogni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.

Basi di Dati Distribuite

DATABASE PER IL WEB. Programmazione Web 1

Basi di dati: appello 11/07/07

Basi di Dati. Esercitazione SQL. 17 novembre 2011

SQL seconda parte 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 2010/11

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Transcript:

Basi di dati distribuite Motivazioni della distribuzione dei dati Natura intrinsecamente distribuita delle organizzazioni Evoluzione degli elaboratori - aumento della capacita' elaborativa - riduzione di prezzo Evoluzione della tecnologia dei DBMS Standard di interoperabilita'

Tipologie di basi di dati distribuite a RETE : LAN (Local( Area Network) WAN (Wide( Area Network) b DBMS : Sistema omogeneo Sistema eterogeneo SYBASE ORACLE DB2 CLIENT Tipici esempi di applicazioni OMOGENEO LAN Applicazioni gestionali e finanziarie WAN Sistemi di prenotazione, applicazioni finanziarie ETEROGENEO Applicazioni gestionali interfunzionali Sistemi di prenotazione integrati, sistemi interbancari

Problemi delle basi di dati distribuite Autonomia e cooperazione Trasparenza Efficienza Affidabilita' Autonomia e cooperazione L'esigenza di autonomia: - Una reazione ai ''Centri EDP'' - Portare competenze e controllo laddove vengono gestiti i dati - Rendere la maggior parte delle applicazioni NON distribuite (!) L'esigenza di cooperazione: - Alcune applicazioni sono intrinsecamente distribuite e richiedono l'accesso a piu' basi di dati

Frammentazione dei dati Scomposizione delle tabelle in modo da consentire la loro distribuzione proprieta': - Completezza - Ricostruibilita' Frammentazione orizzontale FRAMMENTI: insiemi di tuple COMPLETEZZA: presenza di tutte le tuple RICOSTRUZIONE: unione FR1 FR2 FR3

Frammentazione verticale FRAMMENTI: insiemi di attributi COMPLETEZZA: presenza di tutti gli attributi RICOSTRUZIONE: join sulla chiave FR1 FR2 FR3 Esempio: conti correnti bancari CONTO-CORRENTE CORRENTE (NUM-CC,NOME,FILIALE,SALDO) TRANSAZIONE (NUM-CC,DATA,PROGR,AMMONTARE, CAUSALE) CENTRO FILIALE1 FILIALE2 FILIALE3

Frammentazione orizzontale principale Ri = σ Pi R esempio: CONTO1 = σ Filiale=1 CONTO-CORRENTE CORRENTE CONTO2 = σ Filiale=2 CONTO-CORRENTE CORRENTE CONTO3 = σ Filiale=3 CONTO-CORRENTE CORRENTE Frammentazione orizzontale derivata Si = S >< Ri esempio: TRANS1 = TRANSAZIONE >< CONTO1 TRANS2 = TRANSAZIONE >< CONTO2 TRANS3 = TRANSAZIONE >< CONTO3

Allocazione dei frammenti Rete : 3 siti periferici, 1 sito centrale Allocazione: locale centrale Allocazione dei frammenti CENTRO CONTO1 CONTO2 CONTO3 TRANS1 TRANS2 TRANS3 CONTO1 TRANS1 FILIALE 1 CONTO2 TRANS2 FILIALE 2 CONTO3 TRANS3 FILIALE 3

Livelli di trasparenza Modalita per esprimere interrogazioni offerte dai DBMS commerciali: LIVELLI: FRAMMENTAZIONE ALLOCAZIONE LINGUAGGIO Trasparenza di frammentazione QUERY : estrarre il saldo del conto corrente 45 SELECT SALDO FROM CONTO-CORRENTE CORRENTE WHERE NUM-CC=45

Trasparenza di allocazione IPOTESI : Conto corrente 45 presso la Filiale 1 (locale) SELECT SALDO FROM CONTO1 WHERE NUM-CC=45 Trasparenza di allocazione IPOTESI : Allocazione incerta, probabilmente alla filiale 1 SELECT SALDO FROM CONTO1 WHERE NUM-CLI=45 IF (NOT FOUND) THEN ( SELECT SALDO FROM CONTO2 WHERE NUM-CLI=45 UNION SELECT SALDO FROM CONTO3 WHERE NUM-CLI=45 )

Trasparenza di linguaggio SELECT SALDO FROM CONTO1@1 WHERE NUM-CLI=45 IF (NOT FOUND) THEN ( SELECT SALDO FROM CONTO2@C WHERE NUM-CLI=45 UNION SELECT SALDO FROM CONTO3@C WHERE NUM-CLI=45 ) Trasparenza di frammentazione QUERY : estrarre i movimenti dei conti con saldo negativo SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO-CORRENTE CORRENTE AS C JOIN TRANSAZIONE AS T ON C.NUM-CC=T.NUM CC=T.NUM-CC WHERE SALDO < 0

Trasparenza di allocazione (join distribuito) SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO1 JOIN TRANS1 ON... WHERE SALDO < 0 UNION SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO2 JOIN TRANS2 ON... WHERE SALDO < 0 UNION SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO3 JOIN TRANS3 ON... WHERE SALDO < 0 Trasparenza di linguaggio SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO1@1 JOIN TRANS1@1 ON... WHERE SALDO < 0 UNION SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO2@C JOIN TRANS2@C ON... WHERE SALDO < 0 UNION SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO3@C JOIN TRANS3@C ON... WHERE SALDO < 0

Trasparenza di frammentazione UPDATE : sposta il conto 45 dalla filiale 1 alla filiale 2 UPDATE CONTO-CORRENTE CORRENTE SET FILIALE = 2 WHERE NUM-CC=45 AND FILIALE=1 Trasparenza di allocazione (e replicazione) INSERT INTO CONTO2 SELECT * FROM CONTO1 WHERE NUM-CC=45 INSERT INTO TRANS2 SELECT * FROM TRANS1 WHERE NUM-CC=45 DELETE FROM CONTO1 WHERE NUM-CC=45 DELETE FROM TRANS1 WHERE NUM-CC=45

Trasparenza di linguaggio INSERT INTO CONTO2@2 SELECT * FROM CONTO1 WHERE NUM-CC=45 INSERT INTO CONTO2@C SELECT * FROM CONTO1 WHERE NUM-CC=45 INSERT INTO TRANS2@2 SELECT * FROM TRANS1 WHERE NUM-CC=45 INSERT INTO TRANS2@C SELECT * FROM TRANS1 WHERE NUM-CC=45 (in modo analogo: 2 coppie di DELETE) Efficienza Ottimizzazione delle query Modalita' di esecuzione - seriale - parallela

Esecuzione seriale CENTRO CONTO2 CONTO3 CLIENT CONTO1 FILIALE1 Esecuzione parallela CLIENT CONTO1 CONTO2 CONTO3 FILIALE1 FILIALE2 FILIALE3