Base di dati: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
disambiguia Carlo Strozzi |
|||
(92 versioni intermedie di 34 utenti non mostrate) | |||
Riga 1:
{{Nota disambigua||Database (disambigua)|Database}}
{{Nota disambigua|i software per la gestione delle basi di dati|Database management system}}
{{NN|informatica|febbraio 2013}}
[[File:
In [[informatica]] una '''base di dati''' o '''banca dati''',<ref>{{Treccani|banca-dati|Banca dati}}</ref> detta anche, dall'[[Lingua inglese|inglese]], '''''database''''' o '''''data base''''',<ref>{{Treccani|base-di-dati_(Enciclopedia-della-Matematica)|accesso=2022-07-19}}</ref><ref name=":0">{{Treccani|data-base|Data base|v=x}}</ref> è una collezione di dati organizzati immagazzinata e accessibile per via elettronica.<ref name=":0" />
Nel linguaggio comune e informale, la [[locuzione]] ''database'' tende a essere utilizzata impropriamente con varie sfumature di significato, di ordine più generale rispetto a "collezione astratta di dati":
* ''[[server|database server]]'': ovvero il [[hardware|sistema fisico]], comprendente sia le risorse di [[processore|elaborazione]] che di [[memoria (informatica)|memorizzazione]] necessarie al funzionamento della base di dati;
* ''[[database management system]]'': ovvero il [[sistema software]] necessario all'interfacciamento con la base di dati.
La progettazione delle basi di dati è un'attività complessa, che si basa sull'applicazione di [[formalismo matematico|tecniche formali]] in congiunzione a considerazioni pratiche derivate dalla natura dei dati stessi. In fase di progettazione si affrontano quindi problemi in materia di [[modellazione dei dati|modellazione]], [[codifica|rappresentazione]], [[memoria (informatica)|archiviazione]] e [[accessibilità (design)|accesso]] ai dati, oltre che della loro [[sicurezza informatica|sicurezza]], [[privatezza]] e [[integrità dei dati|integrità]]. Senza contare altre questioni di contorno che pertengono più propriamente ai [[DBMS]].<ref>{{cita|Atzeni 2018|pp. 197-202}}.</ref>
== Storia ==
{{S sezione|informatica}}
All'inizio della [[storia dell'informatica]], la grande maggioranza dei programmi specializzati consentivano l'accesso a una singola base di dati per guadagnare in velocità di esecuzione, pur perdendo in flessibilità. Oggi, invece, i moderni sistemi possono essere utilizzati per compiere operazioni su un gran numero di basi di dati differenti. Dagli [[anni settanta]] del [[XX secolo]] le basi di dati hanno subito un enorme sviluppo sia in fatto di quantità di dati memorizzati sia in fatto di tipi di architetture adottate.
=== I modelli navigazionali ===
{{vedi anche|Modello gerarchico|Modello reticolare}}
Negli anni sessanta, con la crescita della capacità elaborativa dei calcolatori e la creazione di una serie di banche dati utilizzabili per diverse applicazioni, crebbe l'interesse nel fissare uno standard. [[Charles W. Bachman]], creatore del database navigazionale [[Integrated Data Store|IDS]], fondò il ''Database Task Group'' all'interno del gruppo ''[[CODASYL]]'': il team di lavoro dedicato alla creazione e standardizzazione del [[linguaggio di programmazione]] [[COBOL]]. Il lavoro del gruppo venne pubblicato nel 1971 e lo standard risultante prese il nome di "Approccio CODASYL", varie implementazioni commerciali apparvero sul mercato dopo poco tempo.
L'approccio CODASYL era basato sulla navigazione manuale in un insieme di dati disposti sotto forma di rete. Alla prima apertura del programma questo si trovava sul primo dato disponibile contenente, tra le altre cose, un [[Puntatore (programmazione)|puntatore]] ai dati successivi. Per trovare un dato il programma attraversava la serie di puntatori fino a trovare il dato corretto. Delle semplici ''[[query]]'' come "Trova tutte le persone nate in [[Svezia]]" richiedevano l'attraversamento dell'intero set di dati. Non esisteva alcuna funzione di ricerca; oggi questo potrebbe sembrare una limitazione, ma all'epoca, essendo i dati archiviati su [[nastro magnetico]], operazioni come quelle evidenziate sopra peggioravano ulteriormente il tempo di ricerca.
Nel 1968 [[IBM]] sviluppò un proprio [[DBMS]] chiamato [[Information Management System|IMS]]. IMS era lo sviluppo di un programma utilizzato nelle [[Programma Apollo|missioni Apollo]] sui calcolatori IBM [[System/360]] e utilizzava un sistema simile all'approccio CODASYL, con l'unica differenza di utilizzare un modello gerarchico anziché a rete.
Ambedue le soluzioni presero poi il nome di "banche dati navigazionali" a causa del metodo di consultazione che era stato previsto. Inoltre [[Charles Bachman]], in occasione della premiazione nel 1973 in cui gli venne conferito il [[Premio Turing]], presentò un lavoro intitolato ''Il programmatore come navigatore''. IMS è abitualmente classificato come una banca dati [[Modello gerarchico|gerarchica]], mentre IDS e IDMS (ambedue banche dati ''CODASYL''), CINCOMs e [[TOTAL]] sono classificati come banche dati [[Modello reticolare|reticolari]].
=== Il modello relazionale ===
{{vedi anche|Modello relazionale#Storia}}
[[Edgar F. Codd]] lavorava nella sede [[california]]na di [[IBM]] come ricercatore sull'allora nascente tecnologia dei [[dischi rigidi]] quando osservò l'inefficienza dell'approccio [[CODASYL]] con la nuova modalità di memorizzazione dei dati, inefficienza principalmente dovuta all'assenza di una funzione di ricerca.
Nel 1970 cominciò a produrre diversi documenti schematizzanti un nuovo approccio alla costruzione delle basi di dati, culminati nell'articolo "''A Relational Model of Data for Large Shared Data Banks''" ({{lett|Un modello relazionale dei dati per banche dati condivise di grandi dimensioni|lingua=it}}).
In questo articolo descrisse un nuovo sistema per archiviare e modificare grandi quantità di dati, basato su [[collezione (informatica)|collezioni]] di [[tuple]] di dimensione fissata ([[relazione (matematica)|relazioni]]) invece che [[albero (informatica)|alberi]] di ''[[record (database)|record]]''.<ref name="Codd 1970">{{cita|Codd 1970}}.</ref>
IBM cominciò a implementare questo modello in alcuni prototipi all'inizio degli anni settanta, a cominciare dal ''[[System R]]''. Agli inizi degli anni '80 il sistema aveva ormai dimostrato la sua superiorità rispetto a ''[[CODASYL]]'' e quindi IBM passò a sviluppare una versione commerciale di ''System R'', che prese il nome di "SQL/DS" prima e "[[IBM DB2|DB2]]" infine.<ref>{{cita web|url=https://www.ibm.com/it-it/topics/relational-databases#Breve+storia+dei+database+relazionali|titolo=Breve storia dei database relazionali|accesso=2024-03-18}}</ref>
Parallelamente il lavoro di Codd era stato ripreso dal mondo accademico attraverso il progetto [[INGRES]], dal quale nacquero numerosi spin-off commerciali che andarono a concorrere con IBM.<ref>{{cita pubblicazione|autore1=[[Michael Stonebraker]]|autore2=[[Lawrence A. Rowe]]|titolo=The design of POSTGRES|url=http://db.cs.berkeley.edu/papers/ERL-M85-95.pdf|p=4|rivista=SIGMOD '86: Proceedings of the 1986 ACM SIGMOD international conference on Management of data|editore=[[Association for Computing Machinery]]|città=Washington, DC|data=maggio 1986|lingua=en|ISBN=0897911911
|DOI=10.1145/16894}}</ref>
Nello stesso periodo venne anche standardizzato il linguaggio [[SQL]].
=== Il movimento NoSQL ===
{{vedi anche|NoSQL}}
Il termine NoSQL fu usato per la prima volta nel 1998 per descrivere una base di dati relazionale [[open source]] che non usava un'interfaccia [[SQL]].
L'autore [[Carlo Strozzi (informatico)|Carlo Strozzi]] dichiarò che "come movimento, NoSQL diparte in modo radicale dal modello relazionale, e quindi andrebbe chiamato in modo più appropriato NoREL, o qualcosa di simile".<ref>[http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20Page Carlo Strozzi, NoSQL]</ref>
All'opposto di quanto si potrebbe pensare il movimento NoSQL non è contrario all'utilizzo di database relazionali. Il termine NoSQL infatti è acronimo di ''Not Only SQL'', a significare che esistono diversi casi d'uso per i quali il modello relazionale rappresenta una forzatura, ma tanti altri per i quali tale modello è ancora la soluzione migliore.
Il termine fu riutilizzato nel 2009 da un dipendente di [[Rackspace]], Eric Evans, quando [[Johan Oskarsson]] di [[Last.fm]] volle organizzare un evento per discutere di basi di dati distribuite open source<ref>[http://blog.knuthaugen.no/2010/03/a-brief-history-of-nosql.html A Brief History of NoSQL]</ref>.
Il nome era un tentativo di etichettare il crescente numero di database non relazionali e distribuiti che spesso non garantivano le classiche proprietà [[ACID]], a causa di vari compromessi formulati sulla base del [[teorema CAP]].
== Caratteristiche ==
=== Gestione delle informazioni ===
La banca dati deve contenere anche le informazioni sulle loro rappresentazioni e sulle relazioni che li legano. Spesso, ma non necessariamente, una base dati contiene le seguenti informazioni:
* [[Strutture dati]] che velocizzano le operazioni frequenti, di solito a spese di operazioni meno frequenti.
* Collegamenti con dati esterni, cioè riferimenti a file locali o remoti non facenti parte della banca dati.
* Informazioni di sicurezza che autorizzano solo alcuni profili utente
* Programmi che vengono eseguiti, automaticamente o su richiesta di utenti autorizzati, per eseguire elaborazioni sui dati. Un tipico automatismo consiste nell'eseguire un [[Programma (informatica)|programma]] ogni volta che viene modificato un dato di un certo tipo.
In un sistema informatico una banca dati può essere usata direttamente dai programmi applicativi, interfacciandosi con il [[supporto di memorizzazione]] agendo direttamente sui file. Questa strategia era adottata universalmente fino agli [[anni 1960|anni sessanta]], ed è tuttora impiegata quando i dati hanno una struttura molto semplice o quando sono elaborati da un solo programma applicativo.
Tuttavia dalla fine degli anni sessanta, per gestire banche dati complesse condivise da più applicazioni, si sono utilizzati appositi sistemi software detti "sistemi per la gestione di basi di dati" (in inglese "[[
La ricerca nel campo delle banche dati studia le seguenti problematiche:
* Progettazione di banche dati.
* Progettazione e implementazione di DBMS.
* Interpretazione (analisi) di dati contenuti nelle banche dati.
Le banche dati spesso fanno uso di tecnologie derivate da altre branche dell'informatica. È usuale utilizzare tecniche derivate dall'[[intelligenza artificiale]], come ad esempio il [[data mining]], per cercare di estrarre relazioni o più in generale informazioni presenti nelle banche dati, ma non immediatamente visibili.
Line 46 ⟶ 76:
=== Struttura e modello logico ===
[[File:Hierarchisches_Datenbankmodell.svg|thumb|Modello gerarchico di database]]
Le [[informazione|informazioni]] contenute in una banca dati sono strutturate e collegate tra loro secondo un particolare modello logico scelto dal progettista, per esempio [[Modello relazionale|relazionale]], [[Modello gerarchico|gerarchico]], [[Modello reticolare|reticolare]] o [[Modello a oggetti|a oggetti]]. Gli utenti si interfacciano con le banche dati attraverso i cosiddetti [[linguaggio di interrogazione|linguaggi di interrogazione]] ([[query]] di ricerca o interrogazione, inserimento, cancellazione, aggiornamento ecc.) e grazie a particolari applicazioni [[software]] dedicati (
Di solito le banche dati possono avere varie strutture, in ordine cronologico di comparsa e diffusione:
# [[Modello gerarchico|gerarchico]] (
# [[Modello reticolare|reticolare]] (
# [[Modello relazionale|relazionale]] ([[anni 1970|anni settanta]]) attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse,
# [[Modello a oggetti|
# [[Database orientato al documento|Document-oriented]] (
# [[Key-Value Store]] (
# [[Database a grafo|Graph-based]] (
# [[Colonnari]] (
# semantica (inizio [[anni 2000|anni duemila]]) rappresentabile con un grafo relazionale.
[[File:Netzwerkdatenbankmodell.svg|thumb|Modello reticolare di database]]
Line 67 ⟶ 97:
La funzionalità di una banca dati dipende in modo essenziale dalla sua [[progettazione]]: la corretta individuazione degli scopi della banca dati stessa e quindi delle tabelle, da definire attraverso i loro campi e le relazioni che le legano, permette poi una estrazione dei dati più veloce e in generale una gestione più efficiente.
{{vedi anche|Transazione (basi di dati)|ACID|Trigger (basi di dati)}}
Una qualunque modifica allo stato del database tramite operazioni varie è detta [[Transazione (basi di dati)|transazione]], la quale deve rispettare le cosiddette regole o proprietà [[ACID]]. Le operazioni più tipiche in un DB sono quelle riassunte dall'acronimo [[CRUD]].
=== Efficienza e sicurezza ===
{{vedi anche|Protezione dai guasti (basi di dati)|Attacco ai database}}
Sicurezza significa impedire che la base dati venga danneggiata da interventi accidentali o non autorizzati, per esempio un [[attacco ai database]], e mantenerne l'integrità ovvero garantire che le operazioni effettuate sulla base di dati da utenti autorizzati non provochino una perdita consistente di dati, garantendone al contempo l'[[affidabilità (basi di dati)|affidabilità]]. La protezione da accessi non autorizzati è un tema importante nella gestione delle basi di dati che si rivelano vulnerabili nei seguenti punti:
* [[Sicurezza informatica|Sicurezza dei server]]
* Connessioni tra database
* Controllo sugli accessi al database
* [[Data warehouse]]
* [[Data mining]]
== Classificazione ==
==== Base di dati navigazionale ====
{{vedi anche|Modello gerarchico|Modello reticolare}}
Le basi di dati navigazionali sono orientate alla navigazione manuale in un insieme di dati disposti sotto forma di rete o [[albero (informatica)|albero]]. Alla prima apertura del programma questo si trovava sul primo dato disponibile contenente, tra le altre cose, un [[Puntatore (programmazione)|puntatore]] ai dati successivi. Per trovare un dato il programma attraversava la serie di puntatori fino a trovare il dato corretto.
Questi modelli non brillano particolarmente in prestazioni.
Delle semplici ''[[query]]'' come "Trova tutte le persone nate in Svezia" richiedono l'attraversamento dell'intero set di dati. Non è prevista alcuna funzione di ricerca; oggi questo potrebbe sembrare una limitazione, ma all'epoca, essendo i dati archiviati su [[nastro magnetico]], operazioni come quelle evidenziate sopra peggioravano ulteriormente il tempo di ricerca.
Alcuni esempi di DBMS basati su modelli navigazionali sono: IDS, IDMS, CINCOM, [[TOTAL]] e [[Information Management System|IMS]].
==== Base di dati relazionale ====
{{vedi anche|Modello relazionale}}
[[File:Relational_Model.jpg|thumb|In una base di dati relazionale i dati sono organizzati in relazioni, ovvero [[tupla|tuple]] di valori correlati che rappresentano un'entità univoca. Tuple diverse possono essere associate individuando valori chiave in comune.]]
Uno degli aspetti interessanti introdotti nelle banche dati relazionali sta nel collegamento delle tabelle: nel modello relazionale, per ogni [[record (database)|record]] viene definita una [[Chiave (basi di dati)|chiave]], ovvero un identificatore univoco della tupla. Nella ricostruzione delle relazioni, l'elemento di riferimento, che distingue una riga da un'altra è proprio questa chiave e viene richiamata nella definizione della relazione. La chiave può essere uno dei dati stessi che vengono memorizzati (ad esempio, per la tabella utenti, il "Codice Fiscale" della persona), una loro combinazione (chiave composta), o ancora un campo che viene aggiunto specificatamente per questo scopo. In ogni caso, la chiave primaria deve essere presente in ogni tupla e mai ripetuta più di una volta in ogni relazione.
==== Base di dati multidimensionali ====
Line 120 ⟶ 149:
===== Base di dati a grafo =====
{{vedi anche|Base di dati a grafo}}
[[File:GraphDatabase_PropertyGraph.
Una base di dati a grafo usa nodi e archi per rappresentare e archiviare l'informazione.
La rappresentazione dei dati mediante [[grafo|grafi]] offre un'alternativa al [[modello relazionale]] che fa uso di tabelle, alle [[Base di dati orientata al documento|basi di dati orientate al documento]] (che usano documenti), o altri, come i sistemi ad [[archivio strutturato|archivi strutturati]] (structured storage) basati su colonne o su cesti non interpretati di dati.
I database a grafo sono spesso più veloci di quelli relazionali nell'associazione di set di dati, e mappano in maniera più diretta le strutture di applicazioni orientate agli oggetti.
Scalano più facilmente a grandi quantità di dati e non richiedono le tipiche e onerose operazioni di unione ([[Join (SQL)|join]]).
Dipendono meno da un rigido schema [[entità-relazione]] e sono molto più adeguati per gestire dati mutevoli con schemi evolutivi.
Al contrario, i database relazionali sono tipicamente più veloci nell'eseguire le stesse operazioni su un grande numero di dati.
Line 131 ⟶ 160:
===== Base di dati a oggetti =====
{{vedi anche|Base di dati a oggetti}}
Evoluzione del precedente [[#Base di dati multidimensionale|modello multidimensionale]], questa tipologia di sistemi consente di memorizzare direttamente "oggetti" affini a quelli utilizzati nella [[programmazione a oggetti]].
Questo permette di aggirare il problema dell{{'}}''[[Object-relational impedance mismatch]]''.
Questo può avvenire grazie al particolare concetto di proprietà delle banche dati multidimensionali. Nella programmazione a oggetti, ognuno di questi "oggetti" tipicamente ne conterrà altri. Ad esempio, l'oggetto contenente il Signor Rossi, conterrà un riferimento all'oggetto "Indirizzo". Contenendo il supporto per molti linguaggi di programmazione a oggetti, le banche dati che sfruttano la medesima tecnologia stanno avendo un periodo di forte sviluppo di questi tempi.
==== Base di dati spaziale ====
{{Vedi anche|Base di dati spaziale}}
Una base di dati spaziale è una base di dati ottimizzata per archiviare e interrogare dati correlati a oggetti nello spazio, tra cui punti, linee e poligoni. Nelle basi di dati spaziali sono integrate quindi delle funzionalità aggiuntive per processare tipi di dati spaziali. L'[[Open Geospatial Consortium]] ha creato le specifiche ''Simple Features'' che stabiliscono degli standard per l'aggiunta di funzionalità spaziali alle banche dati.
==== Base di dati multimediale ====
{{vedi anche|Base di dati multimediale}}
Una base di dati multimediale è una base di dati che raccoglie oggetti di tipo testo, immagine, oggetti 3D, audio, video e una combinazione di questi e fornisce strumenti per la loro memorizzazione, accesso, ricerca e controllo. Attualmente il DBMS Oracle fornisce funzioni tipiche delle basi di dati multimediali.
===
====
{{
Quella dei ''database'' in ''cloud'' è una tipologia di basi di dati che viene ospitata su una piattaforma di ''[[cloud computing]]''. Nelle versioni più evolute la maggior parte del sistema database è gestito dalla piattaforma cloud, lasciando al proprietario solo compiti amministrativi di alto livello. Si parla in questo caso di ''Database-as-a-Service'' (DBaaS).
=== Secondo la modalità di accesso ai dati ===
==== Base di dati parallela ====
{{vedi anche|Database parallelo}}
Un database parallelo è un tipo di database in cui le prestazioni vengono ottimizzate tramite la parallelizzazione di varie funzionalità, ad esempio il caricamento dei dati, la costruzione degli indici e la gestione delle interrogazioni. Nell'esecuzione parallela, molte operazioni sono eseguite contemporaneamente, al contrario dell'esecuzione seriale, dove le diverse fasi di elaborazione sono sequenziali.
==== Base di dati distribuita ====
{{vedi anche|Database distribuito}}
In informatica un database distribuito è un database che si trova sotto il controllo di un database management system (DBMS) nel quale gli archivi di dati non sono memorizzati sullo stesso computer bensì su più elaboratori o nodi. In altri termini il database in senso fisico può essere dislocato in più computer situati nello stesso luogo, oppure distribuito in una rete di computer connessi tra loro sotto forma appunto di sistema distribuito.
== Progettazione ==
{{vedi anche|Progettazione di basi di dati}}
[[File:ER_Diagram_MMORPG.svg|thumb|Un [[Modello ER|diagramma ER]]. Tipicamente utilizzato durante le prime fasi di progettazione di una base di dati, per rappresentarla in modo astratto.]]
La progettazione di basi di dati è il processo di formulazione di un modello dettagliato del database. Questo modello contiene tutte le scelte progettuali a livello logico e fisico e i parametri fisici di memorizzazione necessari per la generazione del [[Data Definition Language|data definition language]] (DDL) che può essere usato per l'implementazione del database. Un modello dei dati completamente specificato contiene i dettagli specifici per ogni singola entità.
== Gestione ==
{{vedi anche|
{{...|informatica}}
=== Linguaggi di interrogazione ===
Nell'ambito dell'utilizzo/amministrazione della base di dati, una qualunque operazione sulla base di dati da parte dell'utente/amministratore su DBMS è ottenibile tramite un opportuno linguaggio attraverso un [[DBMS manager]] a [[interfaccia grafica]] o a [[interfaccia a riga di comando]]. In generale è possibile distinguere più linguaggi per basi di dati, ciascuno con lessico e [[sintassi (informatica)|sintassi]] che definiscono tutte le [[istruzione (informatica)|istruzioni]] possibili, a seconda del loro utilizzo o finalità a partire dalla creazione/progettazione, gestione, ristrutturazione, sicurezza, fino all'interrogazione della base di dati stessa:
Line 223 ⟶ 220:
* Linguaggi grafici e ''[[user-friendly]]'', come [[QBE]] (Query By Example), che possono essere utilizzati anche dai meno esperti.
== Aspetti legali ==
{{vedi anche|Diritto d'autore#Banche dati}}
{{U|verso=a|Diritto d'autore#Banche dati|informatica|maggio 2024}}
{{L|diritto|gennaio 2024|arg2=informatica}}
Le banche di dati sono tutelate dalla legge sul [[diritto d'autore]] sia come opere di ingegno di carattere creativo sia come bene prodotto grazie ai rilevanti investimenti finanziari.
=== Diritto ''sui generis'' ===
Il diritto ''sui generis'' è rivolto al costitutore di una banca di dati, individuato in colui che ha effettuato investimenti di denaro, tempo e lavoro, indipendentemente dal valore creativo e originale dell’opera.
Il diritto ''sui generis'' è stato riconosciuto in ambito comunitario grazie all’introduzione della Direttiva 96/9/CE presentata dall’[[Unione europea|Unione Europea]], in cui si parla del suddetto diritto nel capitolo III e più precisamente negli articoli che vanno dal 7 fino all'11.<ref>{{Cita web|url=https://eur-lex.europa.eu/legal-content/IT/TXT/HTML/?uri=CELEX:31996L0009&from=EN|titolo=Direttiva 96/9/CE del Parlamento europeo e del Consiglio}}</ref>
Tramite questo diritto, gli Stati membri conferiscono al costitutore di una banca di dati la possibilità 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, qualora il conseguimento, la verifica e la presentazione di tale contenuto attestino un investimento rilevante.
Line 255 ⟶ 245:
Per tali ragioni la tutela sui generis trova il suo fondamento giuridico nel [[principio di territorialità]], in quanto solo le banche dati create da un cittadino di uno Stato membro dell’Unione Europea ne beneficiano.
Il requisito fondamentale richiesto per la concessione della tutela sui generis è un ingente investimento di risorse umane ed economiche, in modo tale da poter differenziare la raccolta con una semplice copia di informazioni, che non richiede un impiego tanto grande.
Analizzando il [[
=== In Italia ===
In Italia l'art 64 quinquies della [[legge 633/1941]] sul diritto d'autore prevede che:{{Citazione|L'autore di una banca di dati ha il diritto esclusivo di eseguire o autorizzare:}}{{Citazione|a) la riproduzione permanente o temporanea, totale o parziale, con qualsiasi mezzo e in qualsiasi forma;}}{{Citazione|b) la traduzione, l'adattamento, una diversa disposizione e ogni altra modifica;}}{{Citazione|c) qualsiasi forma di distribuzione al pubblico dell'originale o di copie della banca di dati; la prima vendita di una copia nel territorio dell'Unione europea da parte del titolare del diritto o con il suo consenso esaurisce il diritto di controllare, all'interno dell'Unione stessa, le vendite successive della copia;}}{{Citazione|d) qualsiasi presentazione, dimostrazione o comunicazione in pubblico, ivi compresa la trasmissione effettuata con qualsiasi mezzo e in qualsiasi forma;}}{{Citazione|e) qualsiasi riproduzione, distribuzione, comunicazione, presentazione o dimostrazione in pubblico dei risultati delle operazioni di cui alla lettera b).}}<ref>{{Cita web|url=http://www.altalex.com/documents/codici-altalex/2014/06/26/legge-sul-diritto-d-autore#titolo1|titolo=Legge sul diritto d'autore {{!}} Altalex|sito=Altalex|accesso=18 gennaio 2017|urlarchivio=https://web.archive.org/web/20190605100158/https://www.altalex.com/documents/codici-altalex/2014/06/26/legge-sul-diritto-d-autore#titolo1|dataarchivio=5 giugno 2019|urlmorto=sì}}</ref>
L'autore di una banca di dati, che ha scelto e organizzato creativamente il materiale all'interno della raccolta, è quindi titolare delle facoltà esclusive di natura patrimoniale e morale riconosciute a tutti gli autori di opere dell'ingegno secondo l'articolo 64-quinquies e seg. della [[legge 633/1941]]. I diritti esclusivi di riproduzione, traduzione, adattamento, distribuzione, presentazione e dimostrazione sono detti diritti patrimoniali, cioè hanno un valore economicamente valutabile. In quanto patrimoniali i sopracitati diritti sono trasferibili.
L'autore può quindi effettuare o autorizzare: la riproduzione permanente o temporanea, totale o parziale, la traduzione, le modifiche, gli adattamenti e le diverse disposizioni del materiale, la distribuzione, la presentazione in pubblico e l'utilizzazione economica.
C'è invece la possibilità di una libera utilizzazione quando l'accesso e la consultazione sono svolte per finalità didattiche o di ricerca scientifica, quando l'uso dei dati persegue fini di sicurezza pubblica e quando i dati sono utilizzati per una procedura amministrativa o giurisdizionale. La durata del diritto d'autore è di 70 anni dalla morte dell'autore.
In qualunque caso le banche dati sono tutelate dal diritto d’autore indipendentemente dalla tutela eventualmente accordata alle opere o ai dati da cui esse sono composte, con la precisazione che la tutela della banca dati non si estende alle opere o dati in questione. In sostanza la tutela riguarda la struttura della banca dati, in pratica la sua forma espressiva.
Nel caso in cui la banca di dati sia originale, cioè con dati organizzati secondo criteri originali e non per esempio in ordine alfabetico o cronologico, l'autore gode dei diritti morali e di sfruttamento economico della banca dati stessa. Invece nel caso in cui la banca dati non sia originale la tutela dei diritti non è per l'autore, ma per il costruttore ovvero colui che effettua investimenti per la costituzione della banca dati. Al costitutore della banca di dati sarà riconosciuta, sul solo territorio dell'[[Unione europea]], la titolarità di un diritto [[sui generis]] diverso dal diritto d'autore e dai diritti connessi, volto a tutelare il lavoro svolto e gli investimenti effettuati. Infatti il costitutore può vietare le operazioni di estrazione e reimpiego della totalità o di una parte della banca dati. La durata del diritto del costitutore è di 15 anni, rinnovabile in caso di modifiche o integrazioni sostanziali apportate alla raccolta. Il conteggio dei 15 anni comincia dal 1º gennaio dell'anno successivo alla data del completamento della banca dati. Nel caso in cui il database sia accessibile via internet i 15 anni cominciano dal 1º gennaio successivo alla messa a disposizione della banca di dati stessa.
=== Licenze ===
{{Vedi anche|Licenza d'uso}}
Le licenze d'uso instaurano un rapporto contrattuale con cui il licenziante concede dei permessi al licenziatario richiedendo il permesso di alcune condizioni. Queste due componenti sono di solito presenti in tutte le licenze d'uso e la differenza è maggiormente osservabile se guardiamo le licenze [[Creative Commons]]. Dal momento che in Unione Europea esista un particolare sistema di tutela per le banche dati comporta che una licenza d'uso per banche dati, per funzionare in modo corretto sul contesto europeo, debba tenerne conto e soprattutto debba gestire il diritto sui generis.<ref>{{cita web|url=https://ondata.github.io/aspetti-legali-opendata/le-licenze-per-dati-aperti/|titolo=Le licenze per dati aperti}}</ref> Una licenza che non menzioni quel diritto e non consideri le sue peculiarità rischia di rimanere "monca", ossia parzialmente inefficiente, dato che quel diritto non è correttamente licenziato.
[[Licenza libera|Licenze libere]] di banche dati:
* [[CCPL]]
* [[Open Database License]] (utilizzata da [[OpenStreetMap|Open Street Map]])
* [[CC0]] (Licenza che consiste nella rinuncia di tutti i diritti)
* [[Open Government License]]
* [[French PSI Re-Used License]]
* [[Italian Open Data License#IODL v1.0|IODL 1.0]] (Licenze del [[Governo italiano]] [[copyleft]])
* [[Italian Open Data License#IODL v2.0|IODL 2.0]] (Licenze del Governo italiano non copyleft)
== Applicazioni ==
Line 266 ⟶ 282:
== Bibliografia ==
* {{cita libro
|autore = Paolo Atzeni
|autore2 = Stefano Ceri
|autore3 = Piero Fraternali
|autore4 = Stefano Paraboschi
|autore5 = Riccardo Torlone
|titolo = Basi di dati
|editore = McGraw-Hill
|anno = 2018
|edizione = 5
|città = Milano
|ISBN = 978-88-386-9445-5
|cid = Atzeni 2018
}}
*{{Cita testo|titolo=Data base – Concetti e disegno|url=https://archive.org/details/databaseconcettiedisegno|autore=Roberto Doretti|editore=Gruppo Editoriale Jackson|anno=1985|ISBN=88-7056-174-7}}
* {{en}} Ramez Elmasri, Shamkant B. Navathe, ''Fundamentals of Database Systems'', Fourth Edition, Addison Wesley, 2003
Line 273 ⟶ 302:
* Giovanni Guglielmetti, ''La tutela delle banche dati con diritto sui generis nella direttiva 96/9/CE'', in ''Contratto e impresa / Europa'', 1997, pag. 177 e segg.
* Paola A.E. Frassi, ''Creazioni utili e diritto d'autore. Programmi per elaboratore e raccolte di dati'', Giuffrè, 1997
* Laura Chimienti e Niccolò Machiavelli, ''Banche dati e diritto d'autore'', Giuffrè, 1999
* {{cita pubblicazione
|autore = [[Edgar F. Codd]]
|titolo = A Relational Model of Data for Large Shared Data Banks
|rivista = Communications of ACM
|volume = 13
|numero = 6
|data = 1970-06-01
|editore = [[Association for Computing Machinery]]
|lingua = en
|doi = 10.1145/362384.362685
|cid = Codd 1970
}}
== Voci correlate ==
{{div col
* [[ACID]]
* [[Attacco ai database]]
* [[Base di conoscenza]]
* [[Dato]]
* [[Data integration]]
* [[Database management system]]
* [[Database Source Name]]
* [[Direttiva relativa alla tutela giuridica delle banche di dati]]
* [[Linguaggio di interrogazione]]
* [[Query]]
* [[Schema di database]]
* [[Schema evolution]]
Line 322 ⟶ 333:
* [[Structured Query Language]]
* [[Database Source Name]]
* [[Java DataBase Connectivity]]
* [[Open Database Connectivity]]
* [[Data warehouse]]
* [[Big data]]
* [[Big data analytics]]
{{div col end}}
== Altri progetti ==
{{interprogetto|preposizione=
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|database|database}}
* {{cita web | 1 = https://sites.google.com/site/appuntididatabase/home | 2 = Appunti di database | accesso = 4 maggio 2014 | dataarchivio = 4 maggio 2014 | urlarchivio = https://web.archive.org/web/20140504231338/https://sites.google.com/site/appuntididatabase/home | urlmorto = sì }}
* {{cita web | 1 = http://www.illuminamente.org/database | 2 = Appunti sulla progettazione di database relazionali | accesso = 4 maggio 2014 | urlarchivio = https://web.archive.org/web/20140505015925/http://www.illuminamente.org/database/ | dataarchivio = 5 maggio 2014 | urlmorto = sì }}
* {{cita web | 1 = http://www.dirittodautore.it | 2 = Diritto D'autore | accesso = 26 giugno 2020 | urlarchivio = https://web.archive.org/web/20190524061232/http://www.dirittodautore.it/ | dataarchivio = 24 maggio 2019 | urlmorto = sì }}
|