Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

Database: come funziona una base dati e quale scegliere (2019)

pittogramma Zerouno

Guida

Database: come funziona una base dati e quale scegliere (2019)

I database sono il motore dell’economia data-driven. Da un mondo di informazioni compartimentato all’analisi semantica multidimensionale dei dati, l’evoluzione dei processi di raccolta e di analisi dei dati fa riferimento a una programmazione sempre più sofisticata, che attinge ad altre branche dell’informatica. Ad esempio, quelle derivate dall’Intelligenza Artificiale

29 Ago 2019

di Laura Zanotti

Database o data base, detti anche base dati o banche dati, grandi protagonisti della storia informatica. Nei primi anni 60, quando alla grande potenza di calcolo dei computer si è affiancata l’elaborazione automatica di diversi tipi di dati, le tecniche di datawarehousing sono state la grande svolta gestionale per qualsiasi organizzazione. Collezionare i dati e correlarli tra loro in modo strutturato, formalizzando inserimento, aggiornamento, ricerca e cancellazione delle informazioni, infatti, è stato l’abbrivio dell’economia data-driven.

Cos’è un database e come funziona

Sviluppati per memorizzare, recuperare ed elaborare le informazioni, i database non sono altro che un archivio dati organizzato. Idealmente, il funzionamento è analogo a quello di uno schedario digitale evoluto. Un database crea una struttura che permette di inserire e modificare rapidamente le informazioni desiderate. Una volta memorizzato in un elaboratore elettronico, questo insieme di dati, omogeneo per contenuti e per formato, può essere interrogato da un qualsiasi terminale, utilizzando delle chiavi di accesso preposte. È così che, grazie ai database, le informazioni non vengono perse: una volta immagazzinate possono essere gestite e trattate per essere utilizzate nei più disparati ambiti applicativi.

Dal punto di vista architetturale, una banca dati è incorporata in un hardware (fisico o in cloud) e viene alimentata e interrogata con specifici software.

L’infrastruttura di rete a supporto dei database

A livello fisico (hardware), l’archiviazione dei dati si basa su un sistema costituito da:

  • supporti di memorizzazione (ieri a nastro, oggi hard disk), che garantiscono la persistenza dei dati
  • un processore per l’elaborazione degli stessi, chiamato database server

Un client di database lato client interagisce con il DBMS server e quindi anche con la base di dati in senso fisico.

A livello logico (software), i dati strutturati sono gestiti da un database management system (DBMS).

DBMS: cosa è e a che cosa serve

Il Database Management System (DBMS) include tutta la gamma di applicazioni che consentono la creazione, la manipolazione (gestione) e l’interrogazione efficiente dei dati. Oltre a definire gli utenti e gli amministratori di un database, il DBMS fornisce meccanismi di sicurezza, protezione e controllo dell’integrità dei dati, consentendo agli utenti finali o ai programmatori di applicazioni di condividere i dati e preservarli. Una qualunque operazione sulla base di dati da parte dell’utente/amministratore avviene utilizzando un determinato linguaggio di programmazione, mediante un DBMS manager ad interfaccia grafica o ad interfaccia a riga di comando. Il server è la parte del DBMS che si occupa di fornire i servizi di utilizzo del database ad altri programmi e ad altri computer, secondo la modalità client/server. Il server memorizza i dati, riceve le richieste dei client ed elabora le risposte appropriate.

Qualche esempio di DBMS personali e professionali? Access, MySQL, Oracle e DB2. Le differenze tra loro sono il tipo di sintassi utilizzato dal programmatore per compilare il codice.

A cosa serve un database

L’arrivo dei computer nelle aziende è stata una benedizione ma l’informatizzazione 1.0 ha creato tanti sistemi isolati (silos). Il risultato è che i dati rimanevano compartimentati e bloccati tra le varie aree aziendali (LOB – Line of Business). L’arrivo dei database ha cambiato il clima aziendale, inaugurando un data management capace di illuminare di informazioni le organizzazioni. Le banche dati, infatti, sono estremamente utili sia per gestire i dati che semplificare la ricerca di informazioni specifiche.

Un database raccoglie i dati dati (collect) e li collega in un’unità logica. I singoli dati sono forniti sotto forma di metadescrizioni e corredati di tutte le informazioni necessarie alla loro elaborazione.

Se un DB è progettato in modo razionale ed efficiente è possibile dare un significato a tutti dati registrati. Più un archivio dati è ottimizzato e semplificato, più è possibile integrare ulteriori strumenti di estrazione e di analisi come strumenti di reporting, di intelligence o di ETL (Extract Transform Load), ovvero quell’indispensabile processo di estrazione, trasformazione e caricamento dei dati da un numero illimitato di sorgenti, che include la loro organizzazione e centralizzazione in un unico repository.

Il processo ETL non solo rende questi dati disponibili estraendoli da più sorgenti, ma effettua anche una loro pulizia per trasformarli e finalizzarli al business, consentendo un’integrazione dei dati anche attraverso più sistemi eterogenei.

Differenze tra database e datawarehouse

Un database contiene una raccolta di dati archiviati secondo diverse logiche (transazionali, oggetti e via dicendo), mentre il data warehouse memorizza i dati consolidati da più database ed è la componente principali della business intelligence, fornendo alte prestazioni per query analitiche.

Cronistoria: dal data base al graph database. Tipologie e differenze tra database

database cronistoria
Una cronistoria del database

1960 – Prima dell’avvento del modello relazionale, negli anni 60 il mondo mainframe utilizzava il modello gerarchico o di dati di rete. Nel database relazionale, i dati vengono suddivisi in apposite tabelle per argomenti e poi questi argomenti vengono suddivisi per categorie (campi). Questa suddivisione e questa funzionalità rendono le basi di dati notevolmente più efficienti rispetto a un archivio di dati creato per esempio tramite un flat file system di un sistema operativo su un computer, almeno per la gestione di dati complessi.

1970 – Alcuni affermano che il modello di dati di rete modulare degli anni ’70 sia simile all’attuale modello grafico, ma non è così. Questo perché negli anni 70 non esisteva un linguaggio di query dichiarativo per il modello di rete. All’epoca, infatti, gli sviluppatori dovevano sapere in che modo erano archiviati fisicamente i dati e creare programmi per l’accesso alle informazioni.

1980 – È solo nel 1980 che si afferma quel modello relazionale che ha consentito di raggiungere un livello di indipendenza dei dati che ha permesso agli utenti di accedere alle informazioni senza conoscere la struttura fisica di un database. Diversi anni dopo Edgar F. Codd (ricercatore di IBM) osservando l’inefficienza della funzione di ricerca dell’approccio Codasyl inizia a proporre un nuovo approccio alla costruzione delle basi di dati, culminati nel modello relazionale per Basi di dati condivise (A Relational Model of Data for Large Shared Data Banks). Dai laboratori IBM esce poi SQL (Structured Query Language), che si afferma come il linguaggio di interrogazione standard dei database relazionale. I DBMS relazionali sono incentrati su un modello tipicamente transazionale (On Line Transaction Process – OLTP).

1990 – Con l’esplosione della web economy W3C, organizzazione non governativa internazionale per lo sviluppo di tutte le potenzialità del World Wide Web, promuove diverse proposte per lo standard di dati web. In questo decennio, per sopperire alle scarse performance offerte dai database relazionali nei processi di analisi (on line analitical process, OLAP), si affermano i database multidimensionali, che permettono di effettuare analisi più efficaci su enormi quantità di dati. Di fatto, alla fine degli anni 90 ogni database relazionale commerciale contiene al suo interno un motore multidimensionale. È questo capitolo dello sviluppo che ha inaugurato una programmazione delle basi di dati a oggetti. La fine degli anni 90 è anche l’era di NoSQL (acronimo di Not Only SQL). Il termine, coniato da Carlo Strozzi nel 1998, dà il via a un movimento che promuove lo sviluppo di una base di dati relazionale open source che non usa un’interfaccia SQL. Per inciso, l’autore aveva spiegato nel suo saggio che “NoSQL diparte in modo radicale dal modello relazionale, e quindi andrebbe chiamato in modo più appropriato NoREL, o qualcosa di simile”. Il senso di NoSQL era un’apertura a diversi casi d’uso per i quali il modello relazionale rappresenta una forzatura. I database NoSQL sono appositamente realizzati per modelli di dati specifici e hanno schemi flessibili per creare applicazioni moderne, utilizzando molteplici modelli di dati, tra cui documento, grafo, chiave-valore, in memoria e ricerca.

2000 – L’inizio del secondo millennio si contraddistingue per una programmazione dei DBMS a oggetti. Gli ODBMS (Object DBMS), invece di adattare metodi e variabili, permette agli utenti di memorizzare direttamente una serie di oggetti all’interno delle basi di dati, ognuno dei quali ne può contenere altri. Oggi, in realtà, molti DBMS ibridano il modello relazionale e il modello a oggetti. Si parla quindi di ORDBMS (Object Relational DBMS). Il 2000 è anche l’anno di fondazione di Neo Technologies, società che inizia a sviluppare il proprio database di grafi, Neo4j. I programmatori creano anche il linguaggio di query dichiarativo per il modello di grafico, Cypher, che prende in prestito alcuni concetti di sviluppo da SPARQL (SPARQL Protocol and RDF Query Language) come, ad esempio, la corrispondenza del modello di grafico. Per l’universo dei database si apre l’era del web semantico. La possibilità di estrarre informazioni dalle basi di conoscenza distribuite sul web, infatti, apre un orizzonte applicativo pressoché infinito. Per inciso il framework di descrizione RDF (Resource Description Framework), reso standard dal Data Access Working Group (gruppo di lavoro del consorzio W3C) che lo ha reso raccomandazione ufficiale il 15 gennaio 2008, descrive i concetti e le relazioni su di essi attraverso l’introduzione di triple (soggetto-predicato-oggetto), permettendo la costruzione di query basate su triple pattern, congiunzioni logiche, disgiunzioni logiche e pattern opzionali.

2010 – Per supportare l’analisi dei dati in tempo reale, negli ultimi anni sono stati sviluppati i cosiddetti in-memory database che consentono di superare alcuni limiti dei database tradizionali nell’analisi in real time di grandi moli di dati. Un IMDB (in-memory data base) archivia le raccolte di dati direttamente nella memoria centrale di uno o più computer fornendo una serie di risultati di analisi. Il principale vantaggio degli in-memory database è la velocità di accesso significativamente più elevata (proprio grazie all’utilizzo della memoria centrale); il secondo è l’agevole elaborazione sia di dati strutturati sia di dati non strutturati provenienti da qualsiasi fonte. Il principale svantaggio è rappresentato dal fatto che questo tipo di database consente solo un’archiviazione a breve termine dei dati per cui in caso di crash tutti i dati volatili si perdono (sono stati elaborati vari sistemi per superare questo problema: snapshot del database, backup nei log delle transazioni, replicazione, memoria RAM non volatile), il secondo svantaggio è legato all’elevato impegno della RAM che ne riduce la disponibilità (per questo vengono spesso utilizzati su diversi computer collegati tra loro con un approccio di grid computing).

Modelli di sviluppo di un database

Un database può essere locale, cioè utilizzabile su un computer da uno o più utenti, oppure distribuito: in questo caso le informazioni in esso immagazzinate sono accessibili attraverso una rete informatica.

Esistono diversi modelli di sviluppo di un database.

  • modello concettuale dei dati: descrizione formale e completa della realtà di interesse. Si applica il cosiddetto modello E-R: schema delle entità, dei vari attributi, delle varie associazioni, definendone la cardinalità
  • modello logico: la traduzione dallo schema concettuale al modello di rappresentazione dei dati adottato dal DBMS a disposizione. Si applica un modello relazionale, dove le tabelle sono come relazioni
  • modello fisico: lo schema logico viene completato con l’organizzazione dei file effettuata dal DBMS

Seguono poi la fase di popolamento del database, detta data entry, e tutta la fase di sviluppo delle transazioni. Una transazione, in dettaglio, è una fase della programmazione cruciale per il funzionamento del database: se la sequenza di operazioni lecite viene eseguita in modo corretto, infatti, produce una variazione nello stato di in una base di dati funzionale. In caso di successo, il risultato delle operazioni deve essere permanente o persistente, mentre in caso di insuccesso si deve tornare allo stato precedente all’inizio della transazione. Il modello di riferimento è l’ACID, acronimo che raccoglie tutte le proprietà logiche di una transazione, ovvero Atomicity, Consistency, Isolation, e Durability.

Database transazionali: commit e roll back

Nei linguaggi di accesso ai DBMS, la gestione delle transazioni rientra in quella modalità di programmazione chiamata DML (Data Manipulation Language). Nelle transazioni, infatti, le variazioni allo schema del database o alle autorizzazioni, non sono semplici da gestire. Un DBMS è transazionale se è capace di garantire e mantenere l’integrità dei dati, vale a dire se la transazione non può finire in uno stato intermedio (sistema on/off). In un linguaggio SQL le transazioni partono con un’istruzione BEGIN TRAN e si concludono con un COMMIT TRAN (con eventuale notifica di transazione completata correttamente), oppure con un ROLLBACK TRAN, ad esempio in caso di errore (abort) e ripristino dello stato iniziale, che può avvenire in modo automatico o manuale.

New call-to-action

Come progettare una base dati

Le basi dati servono a modellare concetti del mondo reale. La metodologia di progettazione e sviluppo di un database separa le decisioni su cosa rappresentare e come farlo. Affinché sia possibile inserire, aggiornare, cancellare, o soltanto cercare dei dati in un database, il progettista del database organizza le informazioni e le collega tra di loro secondo un particolare modello logico che, a seconda del periodo in cui è stato sviluppato, può essere:

  • Gerarchico, che può essere visualizzato come un sistema di alberature, caratterizzato da strutture simili a sistemi di file organizzati in modo gerarchico. Vantaggi: accesso per la lettura estremamente veloce, struttura chiara, semplice a livello tecnico. Svantaggi: struttura ad albero rigida che non consente collegamenti tra gli alberi.
  • Reticolare, visualizzabile tramite un grafo. Vantaggi: dispone di un maggiore di percorsi per accedere al record e non c’è una rigida gerarchia. Svantaggi: consente una panoramica scarsa per database di grandi dimensioni.
  • Relazionale, visualizzabile come una serie di tabelle e relazioni tra esse ed attualmente il più diffuso

ad oggetti, con estensione alle basi di dati del paradigma Object Oriented, tipico della programmazione a oggetti. Vantaggi (del relazionale puro): creazione ed elaborazione facile e flessibile, facile espansione, facile da implementare. Svantaggi (del relazionale puro): risulta di difficile gestione per grandi quantità di dati, permette una scarsa segmentazione con costruzione artificiale delle chiavi, l’interfaccia di programmazione è esterna e presenta una raffigurazione carente delle proprietà e comportamento degli oggetti. Vantaggi (con l’integrazione di funzionalità object oriented): memorizzazione di contenuti multimediali. Svantaggi (con l’integrazione di funzionalità object oriented): le prestazioni peggiorano all’aumentare dei dati e sono poche le interfacce compatibili

  • Document-oriented (NoSQL), non memorizzano i dati in tabelle con campi uniformi per ogni record come nei database relazionali, ma ogni record è memorizzato come un documento che possiede determinate caratteristiche. Vantaggi: archiviazione centrale dei dati correlati in documenti singoli, struttura libera, orientamento multimediale. Svantaggi: richiedono sforzi organizzativi relativamente elevati e, spesso, competenze di programmazione.
  • Key-Value Store (NoSQL), è un database che immagazzina i dati come un insieme di coppie di chiave-valore dove una chiave rappresenta un identificatore univoco; chiavi e valori possono essere qualsiasi cosa, da un oggetto semplice a oggetti compositi.
  • Graph-based (NoSQL). nei database a grafo le entità sono rappresentate da nodi di un grafo, collegati tra loro tramite relazioni e sono ideali laddove il dato importante è rappresentato dalla relazione tra entità. Un tipico esempio applicativo è l’analisi semantica.
  • Colonnari (NoSQL), a differenza dei classici database relazionali, in questo tipo di database l’informazione è salvata per colonna. Dato che il numero di colonne può variare senza problemi nel tempo, questi database consentono una modellazione banale di nuove specifiche non previste nel progetto iniziale; trovano infatti un largo utilizzo in sistemi OLAP, dove si fa un ampio utilizzo di sottoinsiemi di colonne.

Banche dati 4.0: quali sono i provider della programmazione a grafo

Attualmente i fornitori di database a grafo sono diversi: oltre a Neo4j, troviamo DSE Graph (Datastax Enterprise Graph), ArangoDB e OrientDB. In realtà, ArangoDB e OrientDB sono soluzioni per l’archiviazione dei documenti che hanno aggiunto alcune funzionalità di database grafico ai loro database. DSE Graph, di Datastax, si basa su Titan e utilizza Cassandra come archivio back-end. Il motore di archiviazione di Neo4j utilizza array di dimensioni fisse per archiviare i dati del grafico e può cercare nodi e relazioni in tempo O, il che può essere ottenuto utilizzando strutture array (utilizzando cioè quei puntatori che nella programmazione consentono di definire nuovi tipi di dati a partire da tipi preesistenti, attraverso l’aggregazione di diversi oggetti tutti di uno stesso tipo) invece che per indici. Neo4j insiste il proprio database è nativamente grafico mentre gli altri no, in quanto utilizzano altri motori di archiviazione. Esistono anche altri database grafici che supportano i dati del grafico RDF, ma non sono così popolari rispetto ai database dei grafici proprietari citati. Esistono anche molti sistemi di analisi dei grafici.

Data mining: l’Intelligenza Artificiale al servizio delle big query

Oggi le basi di dati utilizzano sempre più spesso tecnologie mutuate da altre branche dell’informatica come, ad esempio, quelle derivate dall’Intelligenza Artificiale, data mining in testa. Il data mining, in particolare, è l’insieme di tecniche e metodologie che hanno per oggetto l’estrazione di informazioni utili da grandi quantità di dati, applicando metodi automatici o semi-automatici come il machine learning. L’obiettivo, infatti, è di cercare di estrarre velocemente relazioni e nuove informazioni presenti nelle banche dati che non sono immediatamente visibili.

Chi sono i professionisti del DB

Mentre gli utenti finali del DB utilizzano le applicazioni che permettono di interrogare il DB, esistono una serie di figure chiave che abilitano il funzionamento del data base.

Il DBA (Data Base Administrator) è la figura di riferimento che:

  • gestisce gli accessi
  • predispone tabelle, indici, viste,
  • ottimizza lo spazio disco
  • effettua i backup e i restore

Dietro alle quinte di una banca dati lavora una squadra di analisti programmatori, incaricati di scrivere le applicazioni che utilizzano i dati del DB. Il team è affiancato da un team di sistemisti, preposti a verificare il corretto funzionamento dei sistemi hardware e software su cui gira il DBMS.

Quali sono i linguaggi di programmazione più utilizzati

Esistono diversi linguaggi per programmare le basi di dati che variano per lessico e sintassi.

  • Data Definition Language – Il DDL permette di definire la struttura o l’organizzazione logica della base di dati e le autorizzazioni per l’accesso.
  • Data Manipulation Language – Il DML consente di inserire, modificare, cancellare i dati.
  • Data Control Language Il DCL abilita la gestione degli utenti e dei permessi.
  • Device Media Control Language – Il DMCL consente di controllare i supporti (memoria di massa) dove vengono memorizzati i dati
  • Query language – Il QL permette di interrogare il database per estrarre e leggere i dati

Un altro criterio di classificazione dei linguaggi è il seguente:

  • Linguaggi testuali interattivi (ad esempio l’SQL)
  • Linguaggi testuali interattivi immersi in linguaggi di programmazione comuni (ad esempio C, BASIC e via dicendo)
  • Linguaggi testuali interattivi immersi in linguaggi di programmazione proprietari
  • Linguaggi grafici e user-friendly (ad esempio QBE – Query By Example), che possono essere utilizzati anche dai programmatori meno esperti

Database in cloud: soluzioni disponibili oggi (2019)

Gli ultimi trend della programmazione dei database sposano il cloud computing per abilitare un processo di astrazione del database che, grazie alla sua softwarizzazione, da prodotto diventa puro servizio. Il Database as a Service, non avendo alcun vincolo a livello di risorse e infrastrutture garantisce scalabilità e un’elevata disponibilità delle base dati, rendendo lo stack del software sottostante trasparente all’utente.

Il Database as a Service passa dalle API: la componente di gestione, infatti, controlla gli strati sottostanti alle varie istanze usando un service API, esposta all’utente finale, tale da permettergli di eseguire operazioni di manutenzione e scalabilità sulle proprie istanze del database.

Virtual machine Image

Le aziende possono acquistare delle macchine virtuali (anche per un tempo limitato) e così gestire uno o più database. Gli utenti possono anche caricare le proprie machine image con all’interno il database già installato, oppure utilizzare una macchina già pronta che contiene una versione ottimizzata di un database.

Database-as-a-service (DBaaS): soluzioni disponibili

Un Database as a service consente a chi ne fa uso di non dover installare a manutenere il sistema, che viene erogato come puro servizio, con un livello di alta disponibilità (tra il 99.9% o il 99.99%). Installazione e manutenzione sono a carico del provider, secondo un canone al consumo. Ecco alcune soluzioni disponibili di DBaaS:

  • Amazon Web Services (AWS), ad esempio, fornisce vari database come servizi offrendoli come parte del suo portfolio cloud: i database relazionali Amazon Aurora (supporto MySql e PostgreSQL) e Amazon RDS (supporto MySql, PostgreSQL, MariaDB, Oracle, SQL Server); il database chiave-valore (data base ottimizzati per la memorizzazione e il recupero di coppie chiave-valore in volumi di grandi dimensioni) Amazon Dynamo DB; il database a grafo Amazon Neptune e via dicendo.
  • Oracle: con l’offerta Oracle Database Cloud Service, l’azienda offre come servizio le stesse funzionalità dell’Oracle Autonomous DB on premise. Nell’offerta cloud, Oracle non solo automatizza le attività amministrative generali, come provisioning, backup, disponibilità e patching, ma anche l’ottimizzazione delle query, l’indicizzazione delle tabelle e gli aggiornamenti.
  • MongoDB, uno dei più popolari database NoSQL è fruibile in cloud con il servizio MongoDB Atlas.
  • Microsoft offre il servizio Azure SQL Database nella propria piattaforma cloud Azure.
  • Google offre diverse tipologie di DB As a Service come Google Cloud SQL (compatibile con MySQL e PostgreSQL oltre che supportare Microsoft SQL Server) o Google Cloud Bigtable (DB chiave-valore NoSQL) e così via.
The Forrester Wave - DBaaS - Database-As-A-Service, Q2 2019
The Forrester Wave_ Database-As-A-Service, Q2 2019 – Fonte: Forrester 2019

Vulnerabilità dei database: le cose da sapere

Gli archivi delle informazioni sono l’obiettivo più ambito del cybercrime che puntano a identificare tutti i punti deboli presenti nelle applicazioni database-driven. Molti di questi punti deboli sono frutto di configurazioni o implementazioni discutibili. Le vulnerabilità più note sono:

  • Policy delle password
  • SQL injection, una tecnica di hacking che, sfruttando alcuni errori nella programmazione di pagine HTML, consente di inserire ed eseguire codice non previsto all’interno di applicazioni web che interrogano un database.
  • Cross site scripting, che consiste nell’inclusione di codice html all’interno di una pagina web per effettuare operazioni malevole come, ad esempio, il prelievo di cookies privati
  • Perdita di dati. Un problema spesso trascurato quando si sviluppa un database è la perdita di dati, intesa come il trasferimento involontario o la mancanza di disponibilità di dati sensibili. L’errore più classico sta nel non riuscire ad assicurare e controllare l’accesso ai supporti di backup del database. Una perdita meno frequente avviene attraverso un’interpretazione logica dei dati. Spesso, i dati più sensibili possono essere arguiti dalle risposte a determinate query, come nel caso di una malattia che viene dedotta dai farmaci prescritti. Una semplice soluzione sta controllare i pattern delle query per rilevare l’anomalia.
  • Gestione impropria degli errori. Molte applicazioni visualizzano messaggi dettagliati che possono fornire informazioni sulla struttura del database, ma a volte possono essere usati per organizzare degli attacchi. È consigliabile prendere nota dell’errore e tenerne traccia all’interno di uno storico, assicurandosi che l’applicazione non restituisca agli utenti (o agli attacker) alcuno specifico particolare circa l’errore in questione.

Gli esperti consigliano di creare un diagramma di flusso che tenga traccia di come i dati vegano usati da ogni applicazione database-driven. Una volta identificati i punti di ingresso dei dati o di uscita verso un’altra applicazione, è necessario verificare i livelli di sicurezza. Un altro suggerimento utile è di stabilire i privilegi minimi per ogni utente esterno o i processi richiesti per accedere al sistema.

Per avere un presidio completo, l’operazione va suddivisa in quattro aree:

  • Sicurezza del server (che prevede l’uso di un firewall)
  • Sicurezza dell’applicazione
  • Collegamenti al database
  • Controllo dell’accesso alla tabella e al database

Gestione database in Italia e normative europee: la direttiva 96/9 CE

Approvata dall’Unione Europea l’11 marzo 1996, la direttiva 96/9/CE relativa alla tutela giuridica delle banche di dati riguarda il tema della protezione delle informazioni. La normativa, infatti, tutela le banche di dati con la legge sul diritto d’autore (modificata dal D.lgs. 6 maggio 1999, n. 169 attuativo della direttiva 96/9/C.

I database, dunque, rientrano nella categoria che include le opere d’ingegno carattere creativo e i beni prodotti grazie ai rilevanti investimenti in termini finanziari, in termini di tempo o di lavoro.

L’art. 2 n. 9 l.d.a. definisce le banche di dati come “raccolte di opere, dati o altri elementi indipendenti sistematicamente o metodicamente disposti ed individualmente accessibili mediante mezzi elettronici o in altro modo”.

Questo vale sia che si tratti di una raccolta di opere (di cui l’autore del database deve avere l’autorizzazione all’utilizzo) sia che si tratti di un insieme di informazioni come, ad esempio, nome e numero di telefono degli abitanti di una città (in questo caso con un ulteriore livello di conformità al GDPR e alla Privacy).

La normativa specifica anche che il materiale informativo contenuto nel data base deve essere raccolto e organizzato sistematicamente e metodicamente può essere consultabile in ogni modo, facendo rientrare nella categoria sia le raccolte elettroniche che quelle cartacee. All’autore del database viene accordato il diritto esclusivo di eseguire o autorizzare la riproduzione (permanente o temporanea, totale o parziale, con qualsiasi mezzo e in qualsivoglia forma), la traduzione, l’adattamento, la comunicazione e la distribuzione presso il pubblico dell’originale o di copie della banca di dati; ha inoltre il diritto di “vietare operazioni di estrazione e/o reimpiego della totalità o di una parte sostanziale del contenuto della stessa, valutata in termini qualitativi o quantitativi”.

Z

Laura Zanotti

Giornalista

Ha iniziato a lavorare come technical writer e giornalista negli anni '80, collaborando con tutte le nascenti riviste di informatica e Telco. In oltre 30 anni di attività ha intervistato centinaia di Cio, Ceo e manager, raccontando le innovazioni, i problemi e le strategie vincenti delle imprese nazionali e multinazionali alle prese con la progressiva convergenza tra mondo analogico e digitale. E ancora oggi continua a farlo...

Argomenti trattati

Approfondimenti

B
Backup
D
database
G
Guida
Database: come funziona una base dati e quale scegliere (2019)

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

    LinkedIn

    Twitter

    Whatsapp

    Facebook

    Link

    Articolo 1 di 4