Materie

Materie

Di più

Database (completo per esame)

26/11/2022

3419

191

Condividi

Salva

Scarica


IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS
Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per
modellare una realtà.

Iscriviti

Registrati per avere accesso illimitato a migliaia di appunti. È gratis!

Accesso a tutti i documenti

Unisciti a milioni di studenti

Migliora i tuoi voti

Iscrivendosi si accettano i Termini di servizio e la Informativa sulla privacy.

IL DATABASE E DBMS Un database può essere considerato come una raccolta di dati logicamente correlati, utilizzata per modellare una realtà. I dati sono memorizzati su un supporto di memoria di massa e sono progettati per essere fruiti in maniera ottimizzata da differenti applicazioni e utenti diversi. Una volta individuate e raccolte, tali informazioni devono necessariamente essere memorizzate, in modo tale che si possa facilmente: • Recuperare in base a determinati criteri di ricerca; Aggiungerne nuove; ● Modificarle, apportando nel tempo variazioni; ● Cancellare quelle non più necessarie. La teoria delle basi di dati studia come organizzare al meglio grandi quantità di informazioni, per poterle gestire in modo: ● semplice, in quanto le applicazioni devono essere facilmente fruibili in applicazioni differenti e da parte di differenti utenti; efficiente, perché l'utilizzo delle risorse deve essere ottimizzato: ● "in tempo" (efficiente utilizzo del processore); "in spazio" (efficiente utilizzo della memoria) • efficace, nel senso che le informazioni devono essere rappresentative della realtà che si vuole analizzare (ad esempio, un'età non può essere negativa); • sicuro, in quanto le operazioni sui dati sono permesse solo a soggetti identificabili e autorizzati. Un database, per poter essere definito tale, deve essere: ● sicuro, ossia deve essere progettata in modo da impedire che venga danneggiata da eventi accidentali (ad esempio cadute del sistema) o interventi non autorizzati; • integro, ossia deve essere garantito che le...

Non c'è niente di adatto? Esplorare altre aree tematiche.

Knowunity è l'app per l'istruzione numero 1 in cinque paesi europei

Knowunity è l'app per l'istruzione numero 1 in cinque paesi europei

Knowunity è stata inserita in un articolo di Apple ed è costantemente in cima alle classifiche degli app store nella categoria istruzione in Germania, Italia, Polonia, Svizzera e Regno Unito. Unisciti a Knowunity oggi stesso e aiuta milioni di studenti in tutto il mondo.

Ranked #1 Education App

Scarica

Google Play

Scarica

App Store

Non siete ancora sicuri? Guarda cosa dicono gli altri studenti...

Utente iOS

Adoro questa applicazione [...] consiglio Knowunity a tutti!!! Sono passato da un 5 a una 8 con questa app

Stefano S, utente iOS

L'applicazione è molto semplice e ben progettata. Finora ho sempre trovato quello che stavo cercando

Susanna, utente iOS

Adoro questa app ❤️, la uso praticamente sempre quando studio.

Didascalia alternativa:

operazioni effettuate da utenti autorizzati non provochino una perdita di consistenza dei dati; ● consistente, ossia i dati devono essere significativi ed effettivamente utilizzabili nelle applicazioni dell'azienda per cui la base di dati è stata progettata; ● condivisibile, cioè applicazioni e utenti diversi devono poter accedere, secondo opportune modalità, ai dati comuni; • persistente, cioè deve avere un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che la utilizzano; • scalabile, cioè deve mantenere intatte le proprie performance all'aumentare della quantità dei dati. Deve essere inoltre in grado di “scalare" (espandersi) con l'aggiunta di nuove funzionalità. Le informazioni necessarie a un'organizzazione sono gestite da un sistema informativo. Il sistema informativo è un insieme organizzato di strumenti automatici, procedure manuali, norme organizzative, risorse umane e materiali orientato alla gestione delle informazioni rilevanti per un'organizzazione. Il sistema informativo può essere automatizzato, ed esso viene chiamato sistema informatico. Il sistema informatico (chiamato anche EDP, Electronic Data Processing) è un sottoinsieme del sistema informativo che si dedica alla gestione automatica delle informazioni, rappresentati dati digitali. Il sistema informatico (SI) è costituito dagli archivi elettronici in cui sono memorizzati tutti i dati relativi all'azienda, e cioè: ● ● gli strumenti di comunicazione tra i terminali degli operatori. In base alla loro natura, possiamo individuare due componenti nel SI: • archivi e applicazioni: componente software; supporti fisici e strumentazione: componente hardware. ● i supporti fisici per la memorizzazione dei dati; le procedure di interrogazione per la ricerca delle informazioni (applicazioni); L'archivio è l'insieme dei dati che vengono salvati su un supporto di memorizzazione. L'applicazione informatica è invece la componente del sistema informatico che utilizza dati in esso immagazzinati per svolgere una funzione specifica all'interno dell'organizzazione di cui il Sl fa parte Ogni singola applicazione opera su un insieme di dati memorizzati secondo una struttura definita all'interno dell'applicazione stessa dall'analista e dal programmatore e viene realizzata in modo da rendere massima la sua efficienza, indipendentemente dalle presenze o meno delle altre applicazioni. In un sistema di questo tipo ogni applicazione opera in maniera indipendente dalle altre applicazioni anche se queste fanno parte dello stesso sistema. Questo comporta problemi quando è necessario condividere i dati oppure quando un'applicazione usa i dati di un'altra. A volte, l'operazione di modifica contemporanea di tutte le applicazioni che usano lo stesso file, non è sempre facilmente eseguibile in quanto è necessario duplicare i file e questo porta a vari problemi come: ● ● la ridondanza, cioè quando i dati vengono memorizzati più volte in archivi diversi; la ridondanza porta all'incongruenza, quando gli archivi non sono tutti allo stesso livello di aggiornamento; l'incongruenza porta all'inconsistenza, quando i dati diventano inaffidabili perché ad ogni interrogazione ci saranno dati non rispecchianti la vera realtà dei fatti. dipendenza logica, cioè l'impossibilità di modificare la struttura di un record senza generare di conseguenza a cascata un insieme di modifiche in tutti i programmi che utilizzano quel file; dipendenza fisica, cioè la scarsa flessibilità in caso di nuove esigenze che potrebbero essere irrealizzabili a causa della struttura degli archivi: l'organizzazione scelta per memorizzare i dati vincola infatti il programmatore nell'uso delle operazioni che si possono effettuare sugli archivi ● i dati contenuti negli archivi possono essere trattati solo elaborando i file record per record. Questi problemi sono dovuti al fatto che, negli archivi i dati e la loro definizione sono salvati all'interno dell'archivio. Per risolvere questi problemi è necessario disporre di un sistema che è in grado di contenere tutti i dati necessari alle diverse applicazioni, in modo da averne una sola copia, unica e sempre aggiornata, disponibile per tutti i programmi, che consenta inoltre l'accesso simultaneo a più utenti e applicazioni. Deve anche offrire una interfaccia semplice, e permettere di interagire con i dati e deve poter permettere di modificare la struttura dei dati senza che le applicazioni ne risentano in qualche modo. Lo strumento che permette questo è il database, che considera i dati separatamente dalla loro definizione. La definizione dei dati consiste nella descrizione di come sono formati i record, ovvero il numero, il nome e i tipi di dato che essi contengono (tracciato record). I dati sono gestiti dal DBMS. Un DBMS (DataBase Management System) è un insieme di strumenti software in grado di gestire dati strutturati che sono condivisi, interrogati, aggiornati e come vengono memorizzati. Inoltre un DMBS a differenza di un vecchio archivio permette l'utilizzo e l'interpretazione dei dati tra utenti e applicazioni diverse senza modificarne la struttura o copiare i dati in altri file. IL DBMS è una macchina astratta che consente di compiere specifiche operazioni. L'architettura di questa macchina virtuale è organizzata in tre livelli, secondo l'architettura ANSI/SPARC (American National Standards Institute, Standards Planning And Requirements Committee): 1. Il livello esterno è quello in cui interagiscono i singoli utenti del database, attraverso specifiche applicazioni, in quanto fornisce gli strumenti per modificare e vedere i dati. È compito dell'amministratore del database (DBA, Data Base Administrator) fornire a ciascun utente un sottoschema del database logico, ossia una vista, che contenga tutto ciò che l'utente desidera o è abilitato ad usare. Una vista è una parte del database concettuale che coinvolge i dati dell'istanza del database limitatamente alla porzione interessata e consentita. Le viste non sono memorizzate nel database ma vengono calcolate di volta in volta attraverso un apposito linguaggio DML (Data Manipulation Language) 2. Il livello logico rappresenta la struttura globale del database relativa a tutte le informazioni in esso presenti. In questo livello troviamo il database logico costituito dalla rappresentazione astratta del database. 3. Il livello interno è quello usato effettivamente per la memorizzazione dei dati. Qui troviamo il database fisico, costituito dall'implementazione del database logico. Esso considera i tipi di dati, i formati, le strutture di memorizzazione e i metodi di accesso, come tale, rappresenta la forma in cui il database viene memorizzato e usato. Il livello fisico è del tutto trasparente all'utente finale, poiché a esso non interessa effettivamente come e dove sono memorizzati i dati che visualizza. Con questa organizzazione un DBMS ottiene un'ind denza logica e fisica. Per fisica si intende la possibilità di modificare l'organizzazione dei dati senza dover modificare l'organizzazione logica e i programmi applicativi. Per logica, invece, si intende la possibilità di modificare lo schema logico del database senza modificare i programmi applicativi. Le caratteristiche fondamentali di un DBMS sono: gestire grandi quantità di dati; i dati hanno dimensioni maggiori della memoria centrale e i DBMS devono gestire i dati in memoria secondaria e deve permettere l'accesso ai dati in tempi rapidi; ● ● garantire la condivisione dei dati, che devono poter essere usati da applicazioni e utenti diversi secondo proprie modalità, coordinando gli accessi; garantire la persistenza dei dati, cioè che devono durare nel tempo, controllando gli accessi per evitare che mali intenzionati accedano a dati a chi non possono accedere; offrire all'utente diverse funzionalità che lo aiutino nella gestione e lo sviluppo di applicazioni che fanno uso del database. In informatica un dato è la descrizione elementare di una cosa, di un caso o un avvenimento. Inoltre, un dato costituisce un'informazione per qualcuno se fornisce una nuova conoscenza. Per Informazione si intende l'incremento di conoscenza che può essere acquisita dai dati. DATI E INFORMAZIONI: SCHEMI E ISTANZE I Dati sono comprensibili solo se gli si attribuisce una chiave di interpretazione, tramite il quale si può comprenderne il significato (semantica). Art01 5 23 Il dato 23, senza chiave di interpretazione non costituisce un informazione per nessuno. Lo stesso 23 con la chiave di interpretazione "Quantità in magazzino" assume il significato "quantità disponibile per un determinato articolo" La chiave di interpretazione può essere chiamata schema, mentre l'insieme dei valori contenuti in essa sono chiamati istanza di uno schema o estensione. Schema Un gruppo di dati aventi la stessa chiave di interpretazione viene chiamato Categoria. Una occorrenza di una base di dati è l'insieme delle istanze delle categorie in un determinato istante di tempo. Codice Articolo Art01 Articoli in magazzino Art03 Quantità 23 12 Categoria Istanza Progettare un database significa progettarne le strutture, prima logiche e quindi fisiche, in modo che possano accogliere nel modo migliore possibile i dati di cui un utente ha bisogno. I passi per progettare un database sono: 1. analisi del problema; 2. progettazione concettuale del database (modello E-R); 3. progettazione logica del database (schema logico); 4. progettazione fisica e implementazione; 5. realizzazione delle applicazioni. Queste fasi si possono raggruppare in: modellazione dei dati, che include l'analisi e la progettazione concettuale e logica del database e consiste nella progettazione delle tabelle del database; ● PROGETTAZIONE DI UNA BASE DI DATI ● modellazione funzionale, che include la progettazione fisica e la realizzazione delle applicazioni e consiste nell'implementazione delle tabelle e nella creazione delle funzioni per accedere ai dati. La fase di analisi determina cosa il programma deve fare, mentre la fase di progetto determina come il programma deve operare. ANALISI DEL PROBLEMA Nella fase d'analisi si individuano le esigenze del cliente, cioè quali informazioni devono essere salvate e in che modo verranno usate dal cliente. Le tecniche che vengono usate sono: top-down, dove si parte dalla finalità principale del sistema e poi inseguito descrivere nel dettaglio ogni singolo applicazione. ● PROGETTAZIONE CONCETTUALE Dopo la fase analisi inizia la progettazione concettuale, dove viene realizzato un modello astratto che rappresenta in modo grafico le strutture dei dati. Si possono usare due modelli: ● ● bottom-up, dove le varie parti del sistema vengono descritte dettagliatamente singolarmente e poi queste vengono connesse tra loro. Al modello ER viene affiancato un documento tecnico che descrive nel dettaglio i concetti espressi graficamente. Il modello ER e la base per creare il database fisico. Un buon progetto concettuale deve essere caratterizzato da: ● il modello Entità-Relazione (ER), più diffuso; il modello a oggetti. correttezza: uso corretto degli strumenti; completezza: tutti gli aspetti rilevanti della realtà devono essere modellati; chiarezza: il modello deve essere leggibile e rappresentare le informazioni in maniera comprensibile; indipendenza dallo strumento informatico che verrà utilizzato. PROGETTAZIONE LOGICA Nella progettazione logica si viene a creare uno schema realizzato sulla base delle caratteristiche di gestione del database. Il modello logico è più vicino alla rappresentazione informatica dei dati. Per ottenerlo bisogna mappare, cioè tradurre lo schema concettuale seguendo le regole di derivazione: ● ogni entità diventa relazione; ● ogni attributo dell'entità diventa un attributo della relazione, rappresentato con una colonna della tabella; ● l'attributo identificatore univoco dell'entità diventa attributo chiave primaria nella relazione.; ● ● ● PROGETTAZIONE FISICA Nella progettazione fisica si realizza fisicamente il database e qui avviene: il completamento dello schema logico in funzione dell'organizzazione fisica dei dati e dei meccanismi per operare su di essi il progetto e la realizzazione delle procedure per soddisfare le richieste specificate nel progetto utilizzando gli strumenti informatici di alto livello. ● ogni attributo della relazione eredita le caratteristiche dell'attributo dell'entità; nella relazione 1:1 si crea una sola tabella che contiene i dati sia della prima che seconda relazione; nella relazione 1:N la chiave primaria del lato 1 si sposta nel lato M e diventa chiave sterna che deve essere dello stesso tipo e dimensione della chiave primaria; nella relazione N:N si crea una terza tabella chiamata tabella associativa, che contiene entrambe le chiavi primari delle due relazione che in questa diventano chiavi esterne. ● le operazioni di collaudo, che prevedono l'insieme dei test per verificare il corretto funzionamento del sistema. ● TIPI DI MODELLI LOGICI Ci sono vari tipi di modelli logici: ● il modello gerarchico, in cui i dati sono organizzati su strutture ad albero che rappresentano la gerarchia degli elementi. La radice o segmento padre,è il record principale da cui partono gli altri sottoalberi, chiamati segmenti figli. Ogni padre può avere più figli, ma un figlio può avere un solo padre. Questo modello permette di realizzare relazioni 1:N. Lo svantaggio del modello gerarchico è che per cercare i dati che non sono disposti in modo gerarchico bisognerebbe visitare tutti gli alberi e si crea ridondanza, in quanto bisognerebbe duplicare i dati; il modello reticolare, in cui viene usata una struttura a grafo, nella quale per accedere ai dati si usano i puntatori. Ogni nodo può essere un punto di partenza che può essere usato per raggiungere qualunque campo. Per realizzare le connessioni fra i record si usano i record connettori. Questo modello permette di realizzare relazioni N:N; il modello relazionale, creato, da Edgar F. Codd negli anni '70, con l'obiettivo di evitare la ridondanza. È formato da un insieme di tabelle, formate da righe (record) e colonne (attributi), che possono essere in relazione tra di loro. Il modello relazione si basa sulle regole degli insiemi; Il modello ER (Entità-Relazioni) è stato inventato da Chen e aveva come obiettivo rendere omogena la descrizione del database relazionale in rete. Esso permette di modellare la realtà, partendo dal presupposto che la realtà è formata da entità e che viene descritta tramite degli attributi. Tra le entità può esistere un'associazione che cambia nel tempo. ENTITÀ Le entità sono gli oggetti che permettono di descrivere la realtà. È l'oggetto che permette di raccogliere le informazioni. Le entità diventano tabelle nel database relazionale. Le entità possono essere: forti, se non ha bisogno di altre entità per essere identificata; deboli, se ha bisogno di altre entità per essere identificata; associative, quando vengono usate per risolvere un associazioni N:N. ● ● ● ATTRIBUTI E ISTANZE Gli attributi permettono di descrivere un'entità ed equivalgono alle colonne della tabella. Gli attribuiti contengono le istanze, cioè i valori che descrivono l'entità, ed equivalgono alla riga della tabella. Gli attributi sono formati da: ● ● ● ● ● intervallo, cioè il valore massimo o minimo che può assumere, e questo viene verificato in fase di input; un opzionalità, che indica la possibilità di non essere sempre valorizzato: può essere obbligatorio, quando deve essere per forza specificato, o facoltativo che può avere valori null; un valore, che può essere null, quando non gli viene assegnato nessun valore, o di default, quando gli viene attribuito un valore standard; ● MODELLO ER un nome; un formato, cioè il tipo di dato che può contenere, quindi se è numerico, testo ecc.; una lunghezza, cioè il numero di cifre/caratteri massimi che può avere; Un dominio è l'insieme dei valori assunti dall'attributo. Gli attributi possono essere classificati in: ● identificatori, o chiavi, che identificano univocamente un'istanza; ● descrittori, che descrivono l'entità; ● ● ● ● ● scalari, che possono assumere solo un valore nell'istanza; multipli, che possono avere più valori nell'istanza; semplice, o atomico, che non può essere scomposto ulteriormente; composto, formato da più valori; opzionale obbligatorio ● costante, i valori non cambiano mai nel tempo; modificabile, i valori possono cambiare nel tempo; calcolato, viene calcolato con un algoritmo; ● esplicito, non viene calcolato; ● I vincoli sono restrizioni su valori ammessi e vengono definiti in fase di analisi. I vincoli possono essere: ● statici, quando il dato immesso viene controllato solo nel momento in cui viene inserito, possono essere: unico, quando assume sempre un valore diverso per le varie istanze; generico, quando più istanze possono avere lo stesso valore; temporale, quando hanno una validità temporale, poi non hanno più senso; O di correttezza, il dato viene verificato tramite algoritmi; O di presenza del valore in elenchi predefiniti, chiamati dizionari; O sul valore, vengono controllati i dati che dipendono da altri attributi. dinamici, quando devono essere controllati periodicamente in quanto ci possono essere degli eventi che fanno variare i valori. I dati vengono controllati in fase di caricamento o aggiornamento e in fase di interrogazione. ATTRIBUTI CHIAVE Gli attributi chiave identificano in modo univoco un'istanza. Un attributo per essere considerata come chiave: ● deve essere obbligatorio, unico ed esplicito; non può avere valori null e deve contenere l'informazione più piccola possibili; il valore non deve cambiare nel tempo. ● ● Gli attributi che possono diventare chiavi prendono il nome di chiavi candidate. L'attributo che viene scelto come identificatore univoco si chiama chiave primaria, mentre le altre prendono il nome di chiavi alternative. Quando nessun attributo rispetta le condizioni per poter essere chiave, si crea una chiave artificiale che è un attributo privo di significato e che viene usato solo per poter identificare in modo univo un'istanza. In alcuni casi più attributi per identificare l'istanza, in questo caso si parla di chiave composta. Queste vengono usate quando ci sono entità deboli. Non sempre l'attributo che emigra diventa una componente della chiave primaria. In alcuni serve per creare le associazioni con le entità. In questo caso prende il nome di chiave esterna, che deve essere dello stesso tipo e dimensione della chiave primaria. NON bisogna ma scegliere come chiave primaria, una chiave primaria di altre applicazione perché possono creare dipendenza dall'applicazione in quanto potrebbe mutare valore nel tempo. E non dobbiamo scegliere i codici parlanti, cioè codici che racchiudono delle informazioni, questo sempre perché i valori col il tempo possono variare. LE ASSOCIAZIONI Le associazioni o relazione rappresentano una connessione tra una o più entità. Ogni associazione ha due versi: ● un'entità di partenza; ● un'entità di arrivo. Le associazioni hanno una descrizione per comprendere il legame tra le entità e possono avere anche degli attributi. Le associazioni possono essere classificate in base: al grado, che corrisponde al numero delle entità associate. I gradi più comuni sono: O unari, quando coinvolge sono un'entità, chiamata ricorsiva; O binari, quando coinvolge due entità; O ternari, quando coinvolge tre entità, in questo caso si scompongono in due associazioni binarie. e alla cardinalità, che indica il numero di volte che un'istanza può partecipare ad un'associazione. Può essere: o 1:1, quando ad un'istanza di una relazione può entrare in associazione con solo un'istanza di un'altra relazione; o 1:N, quando un'istanza della prima relazione può entrare in relazione con più istanze della seconda, ma non viceversa; N:N, quando un'istanza della prima relazione può entrare in relazione con più istanze della seconda, e viceversa. La cardinalità viene indicata con una coppia di numeri (x,y) dove: O x indica l'esistenza, che indica l'obbligatorietà (1) o l'opzionalità (0); O y indica la molteplicità, che indica il numero massimo di istanze che possono partecipare all'associazione. Può assumere: ■ valore 1, un'istanza; un <valore>, un valore stabilito (es. 5) valore n, senza limiti. O ■ ■ DIREZIONE La direzione di un associazione indica l'entità da cui trae origine. L'entità di partenza si chiama entità padre mentre l'entità di arrivo entità figlio. Viene determinata in base alla cardinalità. La direzione può essere diretta o inversa. ● GERARCHIA O ASTRAZIONE DELLA GENERALLIZZAZIONE Come nella OOP, tra le entità può essere stabilità una gerarchia, che definisce il legame logico fra le classi. La classe è l'elemento base della OOP ed è costituita da un insieme di classi che generano oggetti che comunicano tra loro scambiano messaggi. La classe è formata da attribuiti (variabili), che descrivono la classe, e metodi (funzioni), che indicano le operazioni che può eseguire la classe. L'ereditarietà è un meccanismo per definire nuove classi, dove da classi già esistenti ereditano attribuiti e comportamenti. Un'entità che ha un legame con un'altra entità, chiamata superclasse o generalizzazione, è detta sottoclasse o specializzazione. Ci sono due vincoli: ● vincoli di struttura, secondo i quali,mediante il meccanismo dell'ereditarietà, la sottoclasse ha tutti gli attributi e partecipa a tutte le associazioni della superclasse; vincoli di insieme, la sottoclasse è specializzazione della superclasse, quindi definisce meglio la superclasse. La sottoclasse quindi è un sottoinsieme della superclasse. (IS-A) La generalizzazione è una classe che contiene caratteristiche comuni. Può essere: totale, quando ad ogni elemento di R corrisponde almeno un elemento di S (continua); parziale, quando non è necessario che ci sia un legame tra gli elementi delle due entità (tratteggiata); ● ● esclusiva, quando ogni istanza di R si può trovare in relazione con una sola istanza di S; sovrapposta o overlapped, se un istanza di R si trova in relazione con più istanze di S. Queste possono combinarsi tra loro. ● L'integrità dei dati serve nel tenere sotto controllo la consistenza e la precisione dei dati. Ci sono tre tipi di integrità: ● ● ● REGOLE DI INTEGRITÀ Queste vengono eseguite quando ci sono operazione di modifica dei dati. Per stabilire un legame tra due o più relazioni utilizziamo le chiavi primarie delle due relazioni, le quali prendono il nome di chiavi esterne, i cui valori sono gli stesi della chiave primaria a cui fa riferimento. La relazione che fa da riferimento si chiama referenziante, mentre l'altra si chiama riferita. I vincoli di integrità referenziale riguardano i valori assunti dalle chiavi esterne nelle relazioni. Poiché una chiave esterna è utilizzata per stabilire un legame tra relazioni, il suo valore deve essere tenuto in stretto controllo per le operazioni di inserimento, modifica e cancellazione. Mantenere l'integrità referenziale significa quindi impedire agli utenti del database di interrompere accidentalmente le associazioni tra le tabelle correlate. ● integrità di dominio, controlla che un campo possa accettare un certo insieme di valori; integrità di entità, verifica che per ogni istanza ci sia una chiave primaria che la identifichi; integrità referenziale, verifica che per ogni valore della chiave esterna ci sia un valore nella chiave primaria corrispondente e verifica anche la coerenza tra le tabelle accoppiate. Quando l'integrità referenziale è attivata: non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria; non è possibile eliminare una t-upla della tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata; ● non si può modificare il valore della chiave nella tabella primaria, se ad essa corrispondono righe nella tabella correlata. L'integrità referenziale è assicurata dal DBMS, che prevede la possibilità di dichiarare le regole di validazione attraverso appositi linguaggi dichiarativi. Tali regole vengono mantenute su speciali archivi detti cataloghi delle regole. LE OPERAZIONI RELAZIONALI Interrogare una base di dati significa ottenere le informazioni che cerchiamo estraendole da una tabella, una sottotabella, oppure combinare tra loro due o più tabelle per creare nuove relazioni. I linguaggi usati per l'interrogazione sono di tipo non procedurale e si basano sull'algebra e sul calcolo relazionale. ALGEBRA RELAZIONALE: il risultato di un'interrogazione (o QUERY) è una relazione. CALCOLO RELAZIONALE: esso si basa sullo stesso approccio relazionale dell'ALGEBRA RELAZIONALE. I due approcci sono equivalenti. Utilizziamo l'approccio dell'algebra relazionale data la maggiore familiarità con gli operatori algebrici. Definiamo l'insieme degli operatori che vogliamo utilizzare nell'interrogazione, esso deve essere completo, ciò deve consentire di ottenere gli stessi risultati ottenibili con altri linguaggi relazionali. Un insieme completo è quello formato dai cinque operatori relazionali seguenti: 1. UNIONE di relazioni; 2. DIFFERENZA di relazioni; 3. PROIEZIONE di relazioni; 4. RESTRIBUZIONE (o selezione) di relazioni; 5. PRODOTTO di relazioni. Con tali operatori, è possibile formulare qualsiasi interrogazione sulla base di dati. Oltre questi cinque è opportuno introdurre altri due: 5. INTERSEZIONE di due relazioni; 6. GIUNZIONE NATURALE di due relazioni. Questi ultimi operatori sono una composizione di quelli base e ne fanno parte perché permettono alle espressioni di essere più semplici e più sintetiche. OPERAZIONI FONDAMENTALI DERIVATE UNARIE BINARIE BINARIE SELEZIONE PROIEZIONE UNIONE DIFFERENZA PRODOTTO CART. INTERSEZIONE JOIN UNIONE Se gli insiemi sono congiunti si prendono gli elementi sia di A che di B e gli elementi in comune vengono presi una sola volta. Mentre se disgiunti si prendono tutti sia A che B GRADO(R U S)=Grado(R)=Grado(S) CARD(R U S)=Card(R)+Card(S)-numero di t-uple ripetute DIFFERENZA DI RELAZIONI La differenza tra due tabelle è una terza tabella che contiene le righe che esistono nella prima tabella ma che non compaiono nella seconda. R-S= {t|tER AND t#S} La differenza dei due insiemi NON GODE della proprietà commutativa. E quindi abbiamo: R-S#S-R E quindi avremo: S-R= {t|te S AND t#R} Grado(R-S) Grado(R)=Grado (S) Card(R-S) = Card (R)- numero di t-uple presenti in S PROIEZIONE La proiezione è una operazione che agisce sulle colonne di una tabella. Questa darà origine ad una tabella che ha un grado inferiore dell'originale, in quanto tiene conto delle colonne che soddisfano una determinata condizione. Card(S)<Card(R), perché tuple uguali vengono eliminate Grado(S)<Grado(R) In SQL avviene nel SELECT. SELEZIONE La selezione è una operazione che agisce sulle righe, e darà origina ad una relazione dove verranno considerate solo le tuple che soddisfano un determinato predicato, cioè una condizione. Grado (S)=Grado(R) Card(S)<Card(R), è uguale solo quando le t-uple soddisfano P In SQL avviene nel WHERE o nell'HAVING. PRODOTTO CARTESIANO Il prodotto cartesiano di due insiemi è l'insieme di tutte le possibili coppie ordinate di elementi dei due insiemi. In questo caso gli elementi dell'insieme sono formati da coppia AxB={(a,b)|aeA e beB} INTERSEZIONE DI DUE O PIÙ RELAZIONI Se gli insiemi sono congiunti si prendono solo gli elementi in comune. Se, invece, sono disgiunti l'insieme è vuoto. GIUNZIONE NATURALE La giunzione naturale o JOIN esegue inizialmente un'operazione di prodotto tra due tabelle, e successivamente seleziona dalla tabella risultante le righe che soddisfano una determinata condizione tra le colonne della prima e della seconda tabella. Solitamente la condizione è un'operazione di uguaglianza. I criteri di selezione implicano una relazione tra le colonne della tabella relazionale. Se un criterio di JOIN è basato sull'equivalenza dei valori di una colonna, il risultato viene detto EQUI JOIN. Una JOIN naturale consiste in una EQUI JOIN in cui le colonne ridondanti vengono eliminate. Grado (A+B)=(g1+g2-1) poiché l'attributo comune compare una volta sola. Card (A+B) non è prevedib a priori in quanto dipende da quante righe nelle due tabelle hanno valori uguali per gli attributi su cui si effettua il join. LE NORMALIZZAZIONI La normalizzazione è un processo che tende a eliminare la ripetizione dei dati (ridondanza) e a migliorarne la consistenza. Si tratta di una tecnica di progettazione che ha l'obiettivo di scomporre le tabelle in tabelle più piccole e senza anomalie, in modo da avere relazioni più strutturate e ridurre al minimo la ridondanza dei dati. Un database non normalizzato presenta problemi di: ridondanza, che porta ad anomalie di aggiornamento; ● inefficienza; complessità; ● ● perdita di informazioni. La teoria della normalizzazione è basata sul concetto di forma normale: una tabella relazionale è in una particolare forma normale se soddisfa un certo insieme di vincoli. Attualmente sono state definite cinque forme normali: in questa lezione tratteremo le prime tre, definite da E.F. Codd. Alla base della normalizzazione c'è il concetto di dipendenza funzionale tra attributi. La dipendenza funzionale è quando un attributo A1 determina il valore dell'attributo A2, quindi A2 dipende da A1. L'attributo A1 viene chiamato anche determinante. PRIMA FORMA NORMALE Una relazione si dice in prima forma normale (1 FN) se e solo se tutti i suoi attributi sono valori atomici: ciò implica che né gli attributi né i valori da questi assunti possono essere scomposti ulteriormente. SECONDA FORMA NORMALE Una tabella in seconda forma normale (2 FN) è una tabella in 1 FN in cui tutte le colonne non chiave sono completamente dipendenti dalla intera chiave primaria: non sono cioè ammesse colonne che dipendono funzionalmente solo da una parte della chiave primaria composta. TERZA FORMA NORMALE La terza forma normale 3 FN richiede che la tabella sia già in seconda forma normale e che tutte le colonne in una tabella relazionale siano dipendenti solamente dalla chiave primaria. Qui viene eliminata la dipendenza transitiva. Una dipendenza transitiva si ha quando una colonna è un determinante di un'altra colonna, che a sua volta è un determinante per altre colonne. La dipendenza transitiva è quando un attributo A2 dipende da A1 e l'attributo A3 dipende da A2, quindi A3 dipende transitivamente da A1. Il vantaggio di avere una tabella in 3 FN consiste nell'eliminazione della ripetizione dei dati, in modo da ridurre l'ingombro sulla memoria di massa per il salvataggio delle tabelle e nell'eliminazione delle anomalie da aggiornamento.