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

Documenti analoghi
Structured Query Language

Esempio di database relazionale con l utilizzo del prodotto MySQL

SQL - Structured Query Language

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

PROGETTAZIONE DI DATABASE Linguaggio SQL

Sistemi di Elaborazione delle Informazioni

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

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

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

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

Informatica Grafica. Basi di dati parte 2

Laboratorio di Basi di Dati

Caratteristiche dei linguaggi per Database

ECOLE POLYTECHNIQlE FEDERALE DE LAUSANNE

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

DATABASE PER IL WEB. Programmazione Web 1

Sistemi di Elaborazione delle Informazioni

Stringhe di caratteri

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

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

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

(Lezione SQL 1) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

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

ALGORITMI E STRUTTURE DATI

Linguaggio SQL. Prof. Giuseppe Tandoi

SQL: le funzioni di aggregazione

Accesso alle Basi di Dati

STUDIO. Esercizi proposti a lezione cap. 3 rev. dic da Ulmann, Widom Introduzione ai database. indirizzo. titolo. nome. recitain. attori.

Corso di Basi di Dati

La connessione ai database MySQL tramite script PHP versione 5.5

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

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

Filippo Bergamasco ( DAIS - Università Ca Foscari di Venezia Anno accademico:

Linee di evoluzione dei Database

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

QL (Query Language) Alice Pavarani

BASI di DATI. SQL: concetti fondamentali

ESERCITAZIONE: AZIENDA

Sommario. Introduzione... 13

Select From Where...

ISTITUTO PARITARIO MICHELANGELO - RIMINI- PIANO DI LAVORO

Storia Nasce inizialmente all'interno di Facebook per gestire le ricerche fra i messaggi. Attualmente open source, è uno dei database NoSQL più diffus

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

SQL /10/2016 Basi di dati - SQL 1

Basi di Dati. Concetti Fondamentali SQL-92 25/02/2004. Concetti Fondamentali. Introduzione. Interrogazioni. Creazione ed eliminazione di bd

Linguaggio SQL seconda parte

Linguaggio SQL: fondamenti D B M G

D B M G. Linguaggio SQL: fondamenti. Gestione delle tabelle

Basi di Dati SQL-92. Concetti Fondamentali

PRODOTTO CARTESIANO Caso Generale

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

Progettazione Fisica

Microsoft SQL Graph Database

Il linguaggio C. Notate che...

Lezioni di Laboratorio sui Data Base

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Basi di Dati. Concetti Avanzati

INTRODUZIONE AI DBMS

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

SCHEMA ER. Tutti i dati del carrello acquisti sono memorizzati nel database e quindi può essere costruito con più query.

Corso base SQLite. Copyright (c) 2015 Antonio Gallo

SQL. Lezione 1. Docente: Alberto Belussi

Basi di Dati - Informatica umanistica Esercitazione (Lab)

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

Perché NoSQL. 20 anni di successi della tecnologia relazionale che ha garantito:

ORA1139 Oracle Database: SQL and PL/SQL Fundamentals

Laboratorio di Basi di Dati

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

A. Veneziani Linguaggio SQL

McGraw-Hill. Soluzioni degli esercizi. Tutti i diritti riservati. Capitolo SELECT Neg_Nome FROM Negozi. 2. SELECT Neg_Cod FROM Ordini

Il linguaggio SQL. Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL

Manuale SQL. Manuale SQL - 1 -

Metodi per la gestione e l utilizzo efficiente dei dati

Un altro vantaggio è la maggior fault-tolerance: l'errore in un nodo non pregiudica totalmente il funzionamento dell'applicazione.

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

IL MODELLO RELAZIONALE

Alessandra Raffaetà. Esercizio: Cinema

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

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

Database parte 2. Database azienda

Corso di Basi di Dati

ORA1139 Oracle Database: SQL and PL/SQL Fundamentals

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

Laboratorio di Basi di Dati IV esercitazione 17 aprile 2007

Corso di Informatica Linguaggio SQL prima parte

Tabelle esempio: Impiegato/Dipartimento

SQL. Structured Query Language

CORSO DI: SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI I

SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali

Esercitazione 4 SQL.

Archivi e Basi di Dati. lezione 07 1

Basi di Dati: Corso di laboratorio

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

Tutorial: come scrivere query SPARQL semplici

Transcript:

Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

NoSQL (Not Only SQL) I principali metodi d implementazione dei database NoSQL sono i seguenti: Column Store/Column Family dati organizzati in righe e colonne, ma le righe non hanno necessariamente una struttura omogenea Key/Value dati immagazzinati in un elemento (map) che contiene una chiave assieme ai dati veri e propri semplice da implementare, ma inefficiente se la maggior parte delle operazioni riguardano soltanto una parte di un elemento Document store Graph evoluzione del metodo key/value dati memorizzati come documenti che possono contenere illimitati campi di illimitata lunghezza dati immagazzinati sotto forma di strutture a grafi, rendendo più performante l accesso a questi da applicativi orientati agli oggetti 2 di 19

DATA VOLUME Data Volume VS Complexity Key-Value Store Column Store Document Store Graph Store RDBMS DATA COMPLEXITY 3 di 19

Vantaggi VS Svantaggi Vantaggi ogni elemento contiene tutte le informazioni necessarie non serve usare i dispendiosi (in termini di performance) JOIN semplicità e scalabilità orizzontale mappatura più diretta alle object classes (si possono ridurre di molto i tempi dedicati al cosiddetto object-relational mapping) Svantaggi mancanza dei controlli fondamentali sull integrità e consistenza dei dati (ricade totalmente sull applicativo) mancanza di uno standard universale (come può essere l SQL) API e metodo di storing/accesso ai dati propri passaggio verso un altro database non immediato 4 di 19

Principali Caratteristiche Non esisteranno più tabelle, ma collezioni di dati La chiave primaria è solitamente un campo ID che, se non viene fornito in fase di inserimento, verrà aggiunto automaticamente dal DBMS Nei DBMS NoSQL a documenti, è significativa l assenza delle relazioni Embedding annidare un oggetto all interno di un altro sconsigliabile quando i documenti (quello annidato e quello che lo contiene) crescono di dimensione Referencing simile al concetto di relazione dei RDBMS consiste nel fare in modo che un documento contenga, tra i suoi dati, l ID di un altro documento Paradigma BASE (Basically Available, Soft-state, Eventual consistency) 5 di 19

Column Store dati ottimizzati per operazioni da svolgere per colonna spesso rappresentano una soluzione intermedia tra RDBMS e Key-Value Store colonne memorizzabili anche in modalità distribuita 6 di 19

Key-Value Store VOLDEMORT (LinkedIn) Sono definiti da un semplice dizionario/mappa che permette all utente di recuperare e aggiornare il valore memorizzato data la sua chiave Get (key) Set (key, value) Delete (key) 7 di 19

Document Store Memorizza le informazioni come collezioni di documenti Un documento può contenere informazioni annidate ed ha un formato riconosciuto (JSON, XML, etc.) che permette poi al server di eseguire delle query sui dati A differenza delle tabelle di un relazionale è schema-free 8 di 19

Graph Store Rappresentano perfettamente una realtà composta da una fitta rete di connessioni e la modellano sotto forma di nodi e rami di un grafo Nodi e rami possiedono informazioni memorizzate attraverso Key-Value store Per query che soddisfano il modello gerarchico i tempi di esecuzione possono essere 1.000 volte più veloci rispetto agli altri database 9 di 19

Open source, Schema-free, No SQL, Graph Database RDBMS Tables Rows Columns and Data Constraints Joins Graph Database Graphs Nodes Properties and its values Relationships Traversal Building block of Neo4j Nodes Relationships Labels Capacity Around 35 billion Around 35 billion Around 275 billion 10 di 19

Neo4j: Building Blocks Un nodo contiene un set di proprietà espresse come chiave:valore Una relazione connette due nodi, può avere a sua volte delle proprietà Le relazioni possono essere unidirezionali o bidirezionali Labels: associano un significato comune ad un insieme di nodi o relazioni 11 di 19

Neo4j CQL: Cypher Query Language Query language per Neo4j Graph Database (pattern-matching) CQL Command/Clause Usage CQL Data Type Usage CREATE To create nodes, relationships and properties boolean boolean literals: true, false MATCH RETURN WHERE To retrieve data about nodes, relationships and properties To return query results To provide conditions to filter retrieval data byte short int long 8-bit integers 16-bit integers 32-bit integers 64-bit integers DELETE REMOVE To delete nodes and relationships To delete properties of nodes and relationships float double 32-bit floating-point numbers 64-bit floating-point numbers ORDER BY To sort retrieval data char 16-bit characters SET To add or update labels String generic strings 12 di 19

CQL CREATE CREATE ( <node-name>:<label-name> { <Property1-name>:<Property1-Value>... <Propertyn-name>:<PropertyN-Value> } ) CREATE ( TheMatrix:Movie { title: The Matrix, year:1999} ) CREATE ( Keanu:Person { name: Keanu Reeves, born:1964} ) The Matrix Keanu Reeves 13 di 19

CQL MATCH, RETURN, WHERE MATCH ( ) <node-name>:<label-name> RETURN <node-name>.<property1-name>,... <node-name>.<propertyn-name> MATCH (x:person) RETURN x.name MATCH (x:movie) RETURN x.title WHERE <condition> <boolean-operator> <condition> <boolean-operator> := AND, OR, NOT, XOR <condition> := <property-name> <comparison-operator> <value> MATCH (x:person) WHERE x.born > 1960 RETURN x.name 14 di 19

CQL Relazioni MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name> {<define-properties-list>}]->(<node2-label-name>) RETURN <relationship-label-name> MATCH (Keanu:Person), (TheMatrix:Movie) CREATE (Keanu)-[:ACTED_IN {role: Neo }]->(TheMatrix) The Matrix ACTED_IN Keanu Reeves CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name> {<define-properties-list>}]->(<node2-label-name>) RETURN <relationship-label-name> 15 di 19

CQL SET, REMOVE, DELETE SET <property-name-list> MATCH (x:movie) SET x.budget = 1000 SET clause is used: Add new properties to existing Node or Relationship Add or Update Properties values REMOVE <property-name-list> REMOVE <label-name-list> MATCH (x:movie) REMOVE x.budget REMOVE clause is used: To remove labels or properties of a Node or a Relationship DELETE <node-name-list> DELETE <node1-name>,<node2-name>,<relationship-name> MATCH (x:person) WHERE x.born > 1960 DELETE x DELETE clause is used: To delete a Node To delete a Node and associated Nodes and Relationships 16 di 19

CQL ORDER BY, LIMIT, UNION ORDER BY <property-name-list> [DESC] MATCH (x:person) RETURN x.name ORDER BY x.born DESC LIMIT <number> MATCH (x:person) RETURN x.name LIMIT 10 <MATCH Command1> UNION <MATCH Command2> MATCH (x:actor) RETURN x UNION MATCH (x:director) RETURN x 17 di 19

CQL Functions Aggregation Functions COUNT MAX MIN SUM Relationship Functions STARTNODE ENDNODE ID TYPE AVG MATCH (x:movie) RETURN SUM(x.budget) MATCH (a)-[rel:acted_in]->(b) RETURN STARTNODE(rel) 18 di 19

Movie Database Full dataset (12k movies, 50k actors) from TheMovieDB 1) Visualizzare i nomi di tutti gli attori 2) Visualizzare i titoli dei film di tipo Action 3) Visualizzare i film con Milla Jovovich 4) Visualizzare i film con Milla Jovovich ed il nome del regista 5) Visualizzare i nomi degli attori che hanno girato un film con Milla Jovovich 6) Visualizzare per ogni attore il numero di film di genere Comedy a cui ha partecipato 7) Visualizzare per ogni film il numero di voti ricevuti ed il voto medio 19 di 19