Database
Database: guida ai più diffusi db aziendali SQL e NoSQL
L’esplosione dei dati da trattare, derivanti da social, IoT, mobile e interazioni coi clienti, richiede una scelta oculata del tipo di database più adatto per applicazione, prestazioni e costi.
L’appassionante evoluzione nella comunicazione tra persone, aziende ed oggetti genera continuamente nuovi tipi di dati, li aggrega in forme sempre più vantaggiose e rende disponibili servizi sempre più utili.
Nota: in fondo all’articolo troverai la lista degli ultimi articoli e notizie sull’argomento database.
In particolare ci si trova a frequentare i mondi social, mobile e IoT, i cui sviluppatori devono gestire dati molto eterogenei e non sempre strutturati. Può essere opportuno dare un’occhiata ai principali sistemi di gestione ed analisi dei dati oggi disponibili nel mondo del software libero, considerando le principali caratteristiche tecniche da un punto di vista business.
Le due principali categorie di database sono relazionale o non relazionale. Un altro modo di indicare questa caratteristica è riferirsi al linguaggio di ricerca, che nei relazionali è l’SQL (Structured Query Language) e quindi nei “non relazionali” è detto No-SQL. Esistono svariate decine di database o sistemi analoghi, più o meno parti, più o meno ricchi di features, che è necessario scegliere alcuni dei principali.
Nel campo relazionale dedicheremo una descrizione a Microsoft SQL, Oracle, MySQL, IBM DB2, Sap Hana (che è più ampio), EDB Postgres e Kinetica.
Nella categoria non relazionale ci sono, tra gli altri, MongoDB (orientato ai documenti), Neo4j (modello grafico, o a grafo), Redis (modello key-value) e OrientDb (multimodello). Vediamoli uno per uno in breve.
Leggi anche: Database a grafo: cosa sono, come si usano
In questo speciale scopriamo perché i database a grafo eccellono nell’esplorazione di dati altamente connessi e come possono essere sfruttati nella vostra azienda.
Partire con il piede giusto è sempre più necessario in un mondo attraversato da un gigantismo dei dati e delle loro repliche. La scelta di un sistema di gestione dei dati può anche comprendere valutazioni di tipo economico, ma la componente tecnologica e la traiettoria dei DBMS vanno messe in primo piano per garantire robustezza e durata del progetto.
Ecco perché anche il C-Level o il dirigente di spesa devono avere un’infarinatura della tecnologia disponibile. E il paradigma open source permette di dosare meglio nel tempo le reali necessità di sviluppo e il relativo adattamento ad un mercato in continua rivoluzione.
Database aziendali SQL
Microsoft SQL
Un punto d’incontro tra prestazioni e costi per le piccole aziende
Si tratta d’un database relazionale proprietario di tipo tradizionale. È disponibile in molti versioni, ciascuna rivolta ad uno specifico carico di lavoro. Olap e data mining sono disponibili tramite gli Analysis Services. Microsoft SQL è probabilmente il miglior compromesso tra prestazioni e costi disponibile alle piccole aziende.
Ovviamente ne esiste la versione in cloud, denominata Azure SQL (PaaS).
Leggi anche: Database relazionali in cloud: le 12 migliori opzioni
IBM DB2
Dal mainframe all’open, è disponibile anche a uso libero con la versione Express-C
È lo storico database relazionale di IBM, oggi aperto anche all’approccio ad oggetti e a strutture non relazionai quali Json ed Xml. Tra le piattaforme di riferimento c’è anche il mainframe.
IBM DB2 esiste in varie edizioni, tra le quali la Express-C è di uso libero. È disponibile in cloud sotto la piattaforma Bluemix/IBM Cloud.
Ovviamente IBM ha il suo hardware di riferimento, in particolare i sistemi Power sui quali l’azienda sta puntando molto come avversari dei classici x86 compatibili.
Leggi anche: Google rende disponibile a tutti il database di Search, Gmail e Analytics
Kinetica
Un prodotto ideale nel panorama OpenPower, con db in-memory e accelerazione GPU
Sebbene non sia open source, Kinetica fa parte dell’ecosistema tecnologico aperto della OpenPOWER Foundation e quindi non è del tutto esterna ai meccanismi di openness.
Kinetica è un database relazionale in-memory: questo termine indica l’elaborazione dei dati direttamente nella veloce memoria Ram piuttosto che nella tradizionale memoria a disco, o al più con quella a stato solido, entrambe più lente della Ram.
Ad aumentare ulteriormente la velocità, Kinetica mette a disposizione anche un’accelerazione affidata alle GPU del sistema.
Kinetica ha grande successo nei sistemi transazionali, i data warehouse e i data lake- Oltre a SQL supporta molti ambienti di sviluppo (REST, JSON, Java, JavaScript, C++, Python ed altri).
Su Kinetica è possibile esplorare big data senza dover apprendere nuovi linguaggi di query e programmazione né creare nuovi modelli di dati, prerogativa che lo rende molto attraente agli sviluppatori.
Oracle
Velocità e diffusione per una piattaforma applicativa completa
Nato con i database, Oracle è ora un vendor di ICT a 360 gradi, che si propone non solo nel software (DBMS e applicazioni) ma anche nell’hardware e nei servizi cloud. Il database è oggi un sistema multimodello proprietario, disponibile in tutti i livelli del cloud (Saas, Paas, Iaas) e ovviamente in casa (on premises).
Le sue origini affondano nell’approccio relazionale con implementazione nei linguaggi C e C++, che lo rese più potente e più portabile di molti concorrenti dell’epoca e ancor oggi forse il più veloce della sua categoria.
Tra le tante acquisizioni, quella di Sun (2010) portò in dote Java (Enterprise Edition), il microprocessore Sparc (cessato il 1° settembre 2017) e soprattutto MySQL, il più diffuso database SQL open source.
MySQL
Il database libero più diffuso del web
Anche se disponibile da sempre con licenza open GPL, era sviluippato e supportato da un’azienda privata, MySQL AB, acquisita poi da Sun Microsystem e in seguito approdato a Oracle.
Grazie alla licenza libera e all’ampio supporto di client e middleware liberi, MySQL è usatissimo per alimentare siti web dinamici, ma anche per fornire la componente di archiviazione e accesso ai dati in innumerevoli software, sia server che client (persino mobile).
Leggi anche: Amazon sfida MySQL con Aurora
Postgres
Anche la storia del relazionale è disponibile in open source
La lunghissima storia del relazionale parte sotto il nome di Ingres nel lontanissimo 1977. Successivamente fu riscritto come PostgreSQL, o più semplicemente Postgres (post Ingres). Quindi la Enterprise Data Base, o EDB, lo usò come base della sua tecnologia dati.
Postgres è un prodotto sviluppato in open source da una community che partecipa con un elevato livello di supporto. Inoltre, è eccezionale per l’analisi dei dati.
Postgres è open source con una propria licenza.
Sap Hana
Oltap Data Platform, server dati e applicativo per legacy e modern data management
La High-performance ANalytic Appliance di Sap, ovvero HANA, è più di un DBMS proprietario. Usando le sigle tecniche, Sap Hana è una Oltap Data Platform, quindi non solo un database server che integra Oltp, Olap e dati più innovativi, ma anche una completa suite di real-time analytics e un application server.
Nella piattaforma sono comprese le funzionalità per mantenere attivi sistemi tradizionali quali ERP, CRM ed SRM.
La parte più strettamente legata al database può essere descritta come un dbms relazionale in-memory e basato su colonne. La sua funzione principale è di database server per memorizzare e recuperare i dati necessari alle applicazioni aziendali.
HANA mette a disposizione svariati tool e pacchetti avanzati per l’analisi di tutti i tipi di dati (spaziali, testuali, streaming, grafi), comprese funzionalità legacy come le Etl (extract, transform, load) e un server per le business applications aziendali.
L’architettura quindi integra dati classici e dati di nuovo tipo, fornendone gestione ed analisi in tempo reale all’interno di un unico sistema, senza dover separare legacy e innovativo.
Le licenze sono disponibili per il runtime o per l’intero ambiente.
Database aziendali NoSQL
MongoDB
Un database DB documentale, reso molto flessibile dalla gestione di oggetti Json
MongoDB è un database documentale NoSQL, perfetto come database generico e particolarmente utile per la mancanza di uno schema. Non avere uno schema fisso consente di memorizzare dati molto diversi tra loro, come l’aumento della temperatura o le rotazioni al secondo fornite da accelermonetri e altri dispositivi IoT.
L’uso di documenti Json consente di memorizzare diversi tipi di dati in modo flessibile.
La sua licenza usa sia il modello Gpl, sia l’A-Gpl. Ricordiamo che l’AGPLv3 è stata accettata su proposta dell’italiano Fabrizio Capobianco, che la propose per la sua azienda, Funambol.
Neo4
Graph database su uno o due nodi con doppia licenza Gpl
Neo4j è un database a grafici particolarmente efficace nella memorizzazione delle relazioni tra data point. È il graph database più diffuso ed è disponibile in open source con licenza Gpl-3 (operante su un solo nodo) e A-Gpl-3 con estensioni in forma chiusa, non open source (operante su due nodi).
OrientDB
Il multimodello a oggetti nato in Italia
OrientDB è un database noSQL a oggetti, in sigla un OODBMS o più semplicemente ODBMS. Ha un approccio multimodello o ibrido, in quanto può operare su Graph, Document, Key-Value, GeoSpaziale e Reactive.
Pur garantendo prestazioni elevatissime, l’approccio a oggetti non si è guadagnato i favori del grande pubblico, restando confinato a particolari nocchie di mercato. OrientDB è un progetto nato in Italia da Luca Garulli. Sviluppatosi in seno ad un’attiva comunità indipendente, è oggi open source secondo la licenza Apache 2 ed è gestito da CallidusCloud.
Redis
Cuore italiano per un db open con approccio key value e licenza BSD
Sempre sul lato non relazionale del panorama c’è Redis, un database key-value NoSQL particolarmente utile nel settore dei videogiochi, dove sono essenziali operazioni ad alta velocità.
Anche Redis ha un cuore italiano, grazie al siciliano Salvatore Sanfilippo e a Pieter Noordhuis. La sua licenza aperta è la BSD.
Programmazione, gestione dati e DevOps
Il ruolo del programmatore o del DevOp sta continuamente cambiando, anche per motivi tecnologici. L’aumento di potenza di elaborazione, da sempre costante nella sua crescita, sta ora rallentando il ritmo. La potenza che i chip in silicio possono offrire, ci dice la fisica, sta raggiungendo il limite superiore, via via rallentando. Si osserva quindi un effetto diretto sulla capacità delle app di fronteggiare l’aumento di quantità e complessità dei dati disponibili.
Se l’accelerazione dell’hardware rallenta, per fronteggiare l’impennarsi delle richieste di elaborazione spetta al programmatore sviluppare in modo sempre più innovativo e quindi scegliere il tipo di database più adatto all’applicazione fin dalla fase di progetto.
(di Leo Sorge)