NoSQL. Riferimento: P. J. Sadalage, M Fowler, NoSQL Distilled, Addison Wesley. Basi di Dati: Sistemi NoSQL 10.1

Documenti analoghi
NoSQL. Definizione. Nella seconda metà degli anni 2000 Google, Amazon, Facebook studiavano nuove modalità di memorizzazione persistente dei dati

DataBase NoSQL. Prof. Marco Pedroni Unversità degli Studi di Ferrara

Basi di Dati. Concetti e Principi Generali. Maria Mirto

ARCHITETTURA DI UN DBMS

Cap. 1-I 1 I sistemi informatici

BASI DI DATI E UTENTI DI BASI DI DATI

DBMS. Alice Pavarani

LE BASI DI DATI. Prima parte Premesse introduttive I MODELLI DEI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

Basi di Dati e Sistemi Informativi. Database NoSQL. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

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

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

Introduzione alle Basi di Dati

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

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

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

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

MongoDB. Un database NoSQL Open-Source

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

NoSql Databases: Analisi prestazionale e confronto col modello relazionale. Un applicazione: MongoDB

Informatica e Bioinformatica: Basi di Dati

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

Elena Baralis 2007 Politecnico di Torino 1

Organizzazione Fisica dei Dati (Parte II)

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

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Sommario. Introduzione... 13

<Nome Tabella>.<attributo>

INFORMATICA. Prof. MARCO CASTIGLIONE ITS Tito Acerbo - PESCARA

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

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

2011 Politecnico di Torino 1

Il paradigm mismatch. Dott. Doria Mauro

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Open Database Connectivity (ODBC)

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Object-Relational Mapping

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Informatica per le Scienze Umane. Introduzione al corso: programma

MS Access: Tutorial Tabelle, Relazioni

Grid Data Management Services. Griglie e Sistemi di Elaborazione Ubiqui

Big Query, nosql e Big Data

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

Esecuzione concorrente di transazioni

Big ed Open Data, nosql e..

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

NOSQL Il database relazionale va in pensione,

Remote file access sulla grid e metodi di interconnesione di rete

SQL - Structured Query Language

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

Linee di evoluzione dei Database

Pag Politecnico di Torino 1

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti

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

Foglio elettronico e Banche dati e per la Pubblica Amministrazione

Elementi di gestione di dati con MS Access 2000

Corso di Sistemi di Elaborazione delle informazioni

Structured Query Language

PIL Percorsi di Inserimento Lavorativo

MODULO 2. Query normali e parametriche Query di:

DISPENSA ACCESS (OFFICE 2010 BETA)

Basi di dati Modelli e linguaggi di interrogazione

"_id": "555ae00a475a9b259281b21a", "name": "Nicola Galgano", "alias": "alikon", "gender": "maschile", "work": consulente software bancario",

SOMMARIO. cüxá wxçét wxä VÉÇá zä É wx ` Ç áàü. Ufficio Nazionale per il Servizio Civile

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Basi di dati. Elena Baralis Politecnico di Torino

SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3

CAPITOLO IV. DATABASE: definizione e progettazione. Definizioni

SQL Server BI Development Studio. SQL Server Business Intelligence Development Studio. Analysis Services

Cap. 1-I 1 I sistemi informatici

Programma Master Programmatore Java

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

Corso di Ingegneria del Software. Activity Diagram

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Aspetto comune: organizzazione di grandi quantità di dati permanenti da rendere accessibili in modo interattivo o da programmi.

Basi di Dati. prof. Letizia Tanca. Le transazioni e il database server, cenni sui nuovi sistemi per Big Data

Il modello relazionale

Lezione n.8 LPR- Informatica Applicata

Diego GUENZI Rodolfo BORASO

Prima di iniziare. Diamo qualche definizione :

e-shop Ordina online i tuoi prodotti con pochi e semplici clic!

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

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

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

JSON for Linked Data JSON-LD

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

Corso di Progettazione digitale per i beni culturali e il turismo

Basi di dati e GIS. Paolo Zatelli. Dipartimento di Ingegneria Civile, Ambientale e Meccanica Università di Trento

Informatica di Base - 6 c.f.u.

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

Architettura Client-Server. In a nutshell

Corso Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft

Basi di dati. Basi di dati = database

Corso di INFORMATICA AZIENDALE (4 CFU)

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Transcript:

NoSQL Riferimento: P. J. Sadalage, M Fowler, NoSQL Distilled, Addison Wesley Basi di Dati: Sistemi NoSQL 10.1

PERCHÉ NoSQL 20 anni di successi della tecnologia relazionale che ha garantito: Persistenza Concurrency control Meccanismi di integrazione Ma gli sviluppatori di applicazioni hanno sofferto lo impedance mismatch tra il modello relazionale e le strutture dati in-memory Tendenza a non utilizzare più come punto di integrazione i database e a realizzare l integrazione mediante i servizi Fattore essenziale tecnologico: la necessità di usare clusters, che non si prestano a implementazioni efficienti dei database relazionali Basi di Dati: Sistemi NoSQL 10.2

IMPEDANCE MISMATCH Basi di Dati: Sistemi NoSQL 10.3

PERCHÉ NoSQL (cont.) NoSQL è un termine vago che si riferisce a molti approcci diversi alla gestione di database. Le caratteristiche condivise dai database NoSQL sono Non usano il modello relazionale Sono eseguiti efficientemente sui clusters Open-source Costruiti per le web estates sel 21-esimo secolo: Google, Amazon ets. Senza schema (schemaless) Basi di Dati: Sistemi NoSQL 10.4

DATA MODEL I database NoSQL abbandonano il modello relazionale delle tabelle e dei riferimenti tramite valori e sono raggruppabili in accordo ai seguenti data model: Aggregate orientation model Key-value (coppie chiave-valore) Documenti Column-family Graph data model Basi di Dati: Sistemi NoSQL 10.5

AGGREGATI I database relazionali operano su ennuple di valori elementari non consentendo strutturazioni più complesse La caratterisitica primaria dei sistemi aggregate oriented è di consentire strutture complesse. L aggregato si presenta come l unità di manipolazione dati e di mantenimento della consistenza L organizzazione dei dati in aggregati rende naturale organizzare il calcolo sui cluster, poiché gli aggregati si presentano come l unità naturale per le duplicazioni e a frammentazione (sharding) L organizzazione dei dati in aggregati facilita le applicazioni che possono manipolare aggregati Basi di Dati: Sistemi NoSQL 10.6

ESEMPIO DI RIFERIMENTO: SITO DI E-COMMERCE Vesndita di item via web Informazione da gestire: Utenti Catalogo dei prodotti Ordini Indirizzi di spedizione Dati sul pagamento Basi di Dati: Sistemi NoSQL 10.7

Progettazione Logica >> Algoritmo di Traduzione Customer Order name Billing address Order Payment cardnumber txnid Order Item price Address street city postcode state Product name Basi di Dati: Sistemi NoSQL 10.8

OSSERVAZIONE Il database è normalizzato ovvero nessun dato è ripetuto su più tabelle Anche l integrità referenziale è garantita Basi di Dati: Sistemi NoSQL 10.9

TIPICI DATI PER IL DBMS RELAZIONALE Customer Id Name 1 Martin Order Id Customer Id SchippingAddress Id 99 1 77 Product Id Name 127 NoSQL book BillingAddress Id Customer Id AddressId 99 1 77 OrderItem Id OrderI d ProductId Price 100 99 27 32.45 Address Id ity 77 Chicago OrderPaymen t Id OrderId CardNumber BillingAddressI d txnid 33 99 1000-1000 55 abelif879rft Basi di Dati: Sistemi NoSQL 10.10

VISTA AGGREGATED-ORIENTED Basi di Dati: Sistemi NoSQL 10.11

VISTA AGGREGATED-ORIENTED Due aggregati: customer e order Customer contiene una lista di billing addresses Order contiene una lista di order items, uno shipping address e pagamenti. Il pagamento stesso contiene un billing address per quel pagamento Un singolo record logico per l indirizzo appare tre volte, ma invece di essere gestito tramite ID è trattato come un valore e copiato ogni volta. Questo garantisce che il valore dell indirizzo non cambierà. Basi di Dati: Sistemi NoSQL 10.12

ESEMPIO DI DATI IN JSON (JavaScript Object Notation) // in orders { // in customers «id»:99, {«id»:1, «customerid»:1, «name»: «Martin», «OrderItems»:[{ «billingaddress»:[{«city»: «Chicago»}] «productid»:27, } «price»:32.45, «productname: «NoSQL Distilled» }] «shippingaddress»: [{«city»:»chicago]} «orderpayment»:[ { «ccinfo»: «1000-1000-1000-1000», «txnid»: «abelif879rftz», «billingaddress»: {«city»: «Chicago»} } ], } Basi di Dati: Sistemi NoSQL 10.13

VISTA AGGREGATED-ORIENTED (cont.) Il link tra customer e Order non è registrato in nessuno dei due aggregati, ma è una relazione tra aggregati In modo simile il link da un order item andrebbe in un altra struttura aggregata per i Product, ma qui il Product Name è parte dell Order Item per minimizzare il numero di aggregati da accedere. La progettazione è guidata dal modo in cui i dati saranno acceduti Basi di Dati: Sistemi NoSQL 10.14

UN MODELLO ALTERNATIVO Basi di Dati: Sistemi NoSQL 10.15

DATI IN QUESTO MODELLO // in customers { «customer»: { {«id»:1, «name»: «Martin», «billingaddress:[{«city»:»chicago»}], «orders»: [ { «id»:99, «customerid»:1, «OrderItems»:[ { «productid»:27, «price»:32.45, «productname: «NoSQL Distilled» } ] «ShippingAddress:[{«city»:»Chicago»}] «OrderPayment»: [ { «ccinfo»: «1000-1000-1000-1000», «txnid»: «abelif879rft», «billingaddress»: {«city»:»chicago»} } ], } Basi di Dati: Sistemi NoSQL 10.16

AGGREGATE IGNORANT VS AGGREGATE ORIENTED Aggregate oriented database facilitano, tramite la nozione di aggregato, l implementazione su cluster (un aggregato viene assegnato per intero a un nodo). Aggregate ignorant (relational) database sono più flessibili in quanto mantengono i dati a un livello di granularità più fine che consente la costruzione di aggregati di tipo diverso in caso di bisogni diversi, ma gli aggregati «logici» possono essere spezzati e assegnati a nodi diversi. Nei datatabase aggregate oriented la proprietà di atomicità delle transazioni è in genere offerta a livello di aggregato Basi di Dati: Sistemi NoSQL 10.17

FAMIGLIE NOSQL Sistemi Aggregate oriented Key-value Document Column-family Graph databases Basi di Dati: Sistemi NoSQL 10.18

KEY-VALUE E DOCUMENT DATA MODELS Ogni aggregato è dotato di una chiave o id usato per ottenere i dati Nei database key-value oriented l aggregato è opaco (un blob di bit) Vantaggio: massima libertà di utilizzo Nei database document oriented la struttura dell aggregato è visibile Vantaggio: è possibile effettuare queries basate sui campi dell aggregato, è possibile recuperare solo parte dell aggregato e il database può creare indici basati sul contenuto dell aggregato Basi di Dati: Sistemi NoSQL 10.19

COLUMN-FAMILY STORE Progenitore: Google BigTable Sistemi attuali: Hbase Cassandra Struttura: two-level map, ovvero a ogni chiave è associato un record Le colonne sono raggruppate in famiglie Contesto: poche scritture e necessità frequente di leggere alcune colonne di molte righe insieme Soluzione: la basic storage unit è meglio che sia per gruppi (famiglie) di colonne per tutte le righe Basi di Dati: Sistemi NoSQL 10.20

STRUTTURA DEI COLUMN-FAMILY STORES Il modello per questa classe di database è una struttura aggregata a due livelli La prima chiave è un row-identifier che seleziona l aggregato di interesse Il secondo livello è un insieme di colonne Le operazioni consentono di accedere alla riga come un tutt uno, ma anche di prelevare una particolare colonna Basi di Dati: Sistemi NoSQL 10.21

COLUMN-FAMILY STORES Esempio: Per ottenere il nome di un particolare cliente: Get( 1234, name ) Basi di Dati: Sistemi NoSQL 10.22

AGGREGATE ORIENTED DATABASES: SOMMARIO Condividono Aggregati indicizzati da una chiave da usare per il lookup L intero aggregato viene memorizzato su un nodo di un cluster L aggregato costituisce l unità atomica per update ed è la base per il controllo delle transazioni. Differenze: Il modello key-value tratta l aggregato come un blob opaco Il document model vede l aggregato trasparente e consente queries sul contenuto e retrieval parziale Column-family model partiziona l aggregato in famiglie di colonne: migliora l accessibilità al dato imponendo una strutturazione Basi di Dati: Sistemi NoSQL 10.23

GRAPH DATABASES Strumenti per memorizzare e interrogare grafi Strutturazione opposta agli aggregate oriented databases: Record di dimensioni ridotte Interconnessioni complesse Tipica query: «elenca i libri nella categoria Databases che sono scritti da qualcuno che piace a un mio amico» Possibili campi applicativi: Social networks Product preferences Eligibility rules Basi di Dati: Sistemi NoSQL 10.24

Graph databases Basi di Dati: Sistemi NoSQL 10.25

MODELLO DI BASE Tutti i Graph Database Management systems condividono il modello di base Nodi e Archi Su questa base: FlockDB usa il modello base Nodi e Archi senza meccanismi per ulteriori attributi Neo4J consente di inserire oggetti Java come proprietà di nodi e archi Infinite Graph memorizza oggetti Java (sottoclassi dei tipi built-in) come nodi e archi Tutti i sistemi offrono meccanismi per le interrogazioni che sfruttano l idea di grafo Basi di Dati: Sistemi NoSQL 10.26

DIFFERENZE TRA IL MODELLO RELAZIONALE E GRAPH BASED Differenza fondamentale: nei graph database non è richiesto di definire a priori uno schema I linguaggi di navigazione dei grafi offrono costrutti di navigazione non presenti in SQL come: Chiusura transitiva Navigare tutte le relazioni con nome A* I sistemi graph based sono ottimizzati per ricerche su grafo e per ricerche che partono da un singolo nodo Nei sistemi graph-based il concetto di record non è centrale: Nei DBMS si tende a leggere tutti i campi del record assieme Nei graph based si accedono solo i campi necessari alla query Basi di Dati: Sistemi NoSQL 10.27

GRAPH DATABASE: NAVIGAZIONE La navigazione avviene percorrendo gli archi, ma sono necessari dei punti di partenza Tipicamente alcuni nodi sono indicizzati su qualche attributo identificatore. Continuando l esempio: Cerca tramite look-up sugli indici persone di nome «Anna» e «Barbara» e da lì inizia la navigazione sugli archi Basi di Dati: Sistemi NoSQL 10.28

GRAPH DATABASE: ULTERIORI CARATTERISTICHE Al contrario degli aggregate-oriented database, il cui progetto è motivato dalla necessità di eseguire le queries su cluster di macchine, i graph database richiedono di essere eseguiti su un singolo server Tipicamente transazioni ACID (Atomicity, Consistency, Isolation, e Durability) devono coinvolgere nodi e archi multipli per garantire la consistenza L unica cosa in comune tra graph databases e aggregate oriented database è il rifiuto del modello relazionale. Basi di Dati: Sistemi NoSQL 10.29