OldWildWeb Logo

Quale database scegliere

Guida alla scelta di un database per il proprio progetto

Quale database scegliere
Se siete indecisi su quale database scegliere seguite questo post per scoprire tutte le novità nel campo informatico

Quale database scegliere

Una delle domande più frequenti nel settore informatico riguarda la scelta del database per il proprio progetto, spesso ci si pone la domanda sbagliata cercando il migliore database disponibile sul mercato mentre in realtà i prodotti oggi disponibili sono molto diversi tra di loro e adatti per scopi diversi.

Database con o senza server

La prima scelta da fare è quella di considerare se si ha bisogno di un database dotato di server oppure optare per un database server-less. I database con server offrono il vantaggio di poter garantire l'accesso a molti utenti in contemporanea tramite protocollo TCP/IP vi sono soluzioni facilmente scalabili capaci di offrire il vantaggio di sfruttare la tecnologia cloud computing nel caso in cui la mole di dati diventi molto elevata da non poter essere gestita su una sola macchina tuttavia i database con server richiedono un pò di sforzi in più per la manutenzione e l'amministrazione rispetto le soluzioni server-less. I database server-less sono dei database leggeri e più semplici da amministrare, possono essere in alcuni casi più veloci dei database con server nel gestire e accedere ai dati, come vantaggio offrono di poter essere implementati anche in ambito embedded dove non vi sono una grande quantità di risorse hardware disponibili, non richiedono l'installazione di server che in genere non sono semplicissimi da gestire e configurare sono implementabili in poco spazio su disco pochi MB rispetto anche alcuni GB richiesti dai database con server, si possono distribuire molto facilmente con dei classici installer, tutto ciò che bisogna fare è creare un file database su disco con l'ausilio di un linguaggio di programmazione o un tool e incorporare le librerie del database nel proprio progetto, come svantaggi non sono molto adatti nel caso in cui ci sia il bisogno di accedere al DB da parte di molti utenti in contemporanea anche se volendo ci sono ottime tecniche per renderli utilizzabili anche per questi scopi non sono adatti nel caso in cui ci sia la necessità di scalare il database verso soluzioni di tipo cloud. In generale per progetti che non richiedono l'accesso multiutente o la gestione di banche di dati enormi la scelta no-server è quella più sensata.

Seconda scelta importante database SQL o NoSQL

La seconda scelta importante quando si ricerca un database per il proprio progetto è se scegliere un database SQL di tipo relazionale oppure un database NO SQL di tipo non relazionale.
I database relazionali sono stati per moltissimi anni a partire dagli anni 70 lo standard de facto in ambito della gestione dati, il meccanismo di funzionamento prevede di gestire dei dati di tipo tabellari organizzati in diverse tabelle formate da colonne e righe con la possibilità di poter legare il significato tra tabelle diverse attraverso le istruzioni Join con il consolidatissimo linguaggio SQL che varia molto a dir il vero in base al tipo di database utilizzato. I database di tipo SQL sono indicati nel caso in cui ci sia la necessità di gestire un tipo di dato sempre lineare dello stesso tipo come ad esempio un elenco telefonico dove vi sono numeri, indirizzi, nomi, e-mail un tipo di dato perfettamente tabellare. I database NoSQL non supportano il linguaggio SQL e funzionano in maniera totalmente diversa rispetto i database relazionali, sono indicati quando vi è la necessità di gestire tipi di dati molto diversi tra di loro e nei grandi data center dove vi è una mole di dati veramente molto elevata in questo ambito i colossi dell'informatica sfruttano i vantaggi dei database NoSQL da ormai diversi anni risultano essere più indicati per soluzioni cloud. Nei database NoSQL basati su documenti è possibile immagazzinare dati molto diversi tra di loro senza avere l'odioso vincolo di avere una struttura prestabilita delle tabelle, possono essere memorizzati dei documenti del tutto simili a degli oggetti come quelli dei dei linguaggi di programmazione, si potrebbe immaginare di poter essere in grado di memorizza delle strutture di dati come quelle del C o dati nelle classi dei linguaggi più moderni e inserirle con delle librerie in maniera molto semplice usando gli oggetti. Oltre ai database NoSQL basati su documenti esistono altri tipi come quelli key value, molto indicati nel campo Big Data, funzionano fornendo dati in maniera molto veloce associando una chiave al valore desiderato, non mancano anche altri database basati sui grafi ideali per memorizzare dati organizzati in strutture a grafo come ad esempio le amicizie dei social network.

I database più noti

SQL no-server database relazionali

- SqLite - Vanta di essere utilizzato in progetti importanti come da Mozilla, Facebook e altri è stabile e sicuramente ben sviluppato, molto leggero si adatta benissimo nei progetti embedded occupando solo un paio di MB, è multi-piattaforma funziona in ogni sistema operativo.
-Access Database: Ideale in ambienti windows, si integra molto bene nei pacchetti office microsoft, ideale per progetti basati su windows pratica l'interfaccia grafica di office.

SQL server database relazionali


-MySQL - E forse il database più diffuso in ambito server web linux può essere integrato in quasi tutti i linguaggi di programmazione, il database è molto valido e potente ottimo se utilizzato su web server apache con il linguaggio di programmazione PHP i più diffusi CMS lo utilizzano come opzione predefinita.
-MariaDB - Un fork del progetto originale di MySQL completamente open source conquista sempre più clienti in ambito globale nei database liberi e open dopo l'acquisto di MySQL dall'Oracle Corporation.
-Oracle: Uno dei database relazionali più potenti di sempre sviluppato dall'Oracle Corporation, ideale per progetti di alto livello le licenze non sono molto economiche ma fornisce strumenti molto interessanti.
-SQL Server: Il database Microsoft nel corso degli anni è diventato una valida alternativa ai più noti database, ottimo da utilizzare nei progetti ASP .NET e con tecnologie Microsoft grazie all'ottima integrazione col framework .NET.
-PostgreSQL: Ottimo database open source utilizzabile liberamente anche per progetti commerciali.

Database NoSQL


-MongoDB è uno dei database NoSQL più utilizzati, open source e basato su documenti JSON è ideale per gestire dati di tipo molto diverso, si integra bene con i linguaggi di programmazione più noti.
-Cassandra DB è un database ideale per progetti Big Data, molto performante rispetto i database concorrenti si adatta benissimo a progetti cloud riesce a gestire grandissime colonne con coppia chiave valore, da utilizzare in tutti quei progetti dove la mole di dati da gestire è molto importante.
-Redis Un database key-value store molto interessante, si presta bene nell'essere utilizzato in cloud.

Database NoSQL server-less


-Unqlite Un database server less ideale per memorizzare documenti o key value, utilizzabile anche in progetti embedded



Quale database scegliere

Articoli correlati