Basi di dati modelli e linguaggi di interrogazione PDF

Title Basi di dati modelli e linguaggi di interrogazione
Author Gaia Vedovato
Course Informatica documentale (i)
Institution Università degli Studi di Verona
Pages 16
File Size 217 KB
File Type PDF
Total Downloads 55
Total Views 235

Summary

BASI DI DATI: MODELLI E LINGUAGGI DI INTERROGAZIONE. CAP 1. Sistemi informativi, informazioni e dati. Ogni organizzazione dotata di un sitema informativo, che organizza e gestisce le informazioni necessarie per perseguire gli scopi stessa. I sistemi informativi esistono da molto prima e della diffus...


Description

BASI DI DATI: MODELLI E LINGUAGGI DI INTERROGAZIONE. CAP 1. Sistemi informativi, informazioni e dati. Ogni organizzazione è dotata di un sitema informativo, che organizza e gestisce le informazioni necessarie per perseguire gli scopi dell'organizzazione stessa. I sistemi informativi esistono da molto prima dell'invenzione e della diffusione dei calcolatori elettronici: archivi delle banche, servizi anagrafici. La diffusione capillare dell'informatica a quasi tutte le attività umane, che ha caratterizzato gli ultimi vent'anni, fa si che gran parte dei sistemi informativi siano anche, in buona misura, sistemi informatici. Nelle attività umane più semplici, le informazioni vengono rappresentate e scambiate secondo le tecniche naturali tipiche delle attività stesse: la lingua, scritta o parlata, disegni. A mano a mano che le attività si sono andate sistemattizzando, sono state individuate oppurtune forma di organizzazione e codifica dell'informazioni. Nei sistemi informatici, il concetto di rappresentazione e codifica viene portato all'estremo: le informazioni vengono rappresentate per mezo di dati, che hanno bisogno di essere interpretati per fornire informazioni. Differenza tra dato e informazione: - informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere. - dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione, elementi di informazione costituiti da simboli che devono essere elaborati. Varie eccezioni: base di dati è una collezione di dati, utilizzati per rappresentare le informazioni di informazioni di interesse per un sistema informativo. Possiamo osservare che i dati relativi alle applicazioni bancarie hanno una struttura sostanzialmente invariata da decenni, mentre le procedure che agiscono su di essi variana con una certa frequenza, come ogni cliente può facilmente verificare. Questa caratteristica di stabilità porta ad afermare che i dati costituiscono una "risorsa" per l'organizzazione che li gestisce, un patrimonio significativo da sfruttare e proteggere. Base di dati e sistemi di gestione di base di dati. I sistemi software specificamente dedicati alla gestione dei dati sono stati realizzati solo a partire dalla fine degli anni Sessanta del secolo scorso. In assenza di software specifico, la gestione dei dati è affidata ai linguaggi di programmazione tradizionali, per esempio C e Fortran, oppure, ai linguaggi a oggetti, tra cui C++ e Java. L'approccio "convenzionale" alla gestione dei dati sfrutta la presenza di archivi o file per memorizzare i dati in modo persistente sulla memoria di massa. Un file consente di memorizzare e ricercare dati, ma fornisce solo semplici meccanismi di accesso e di condivisione. Eventuali dati di interesse per più programmi sono replicati tante volte quanti sono i programmi che li utilizzano, con evidente ridondanza e possibilità di incoerenza. Le basi di dati sono state concepite in buona misura per superare questo tipo di inconveniente, gestendo in modo integrato e flessibile le informazioni di interesse per diversi oggetti, limitando i rischi di ridondanza e incoerenza. Un sistema di gestione di basi di dati (DBMS) è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza. Un DBMS deve essere efficiente ed efficace. Una base di dati è una collezione di dati gestita da un DBMS.

Le caratteristiche di DBMS e delle basi di dati: - le basi di dati sono grandi, quelle più grandi hanno dimensioni dell'ordine delle centinaia di terabyte e contengono migliaia di miliardi di record. I DBMS devono prevedere una gestione di dati in memoria secondaria. - le basi di dati sono condivise, nel senso che applicazioni e utenti diversi deono poter accedere, secondo opportune modalità, a dati comuni. In questo modo si riduce la ridondanza dei dati, poichè si evitano ripetizioni, si riduce anche la possibilità di inconsistenze. Per garantire l'accesso condiviso ai dati da parte di molti utenti che operano contemporaneamente. Il DBMS dispone di un meccanismo, detto controllo di concorrenza. - le basi di dati sono persistenti, hanno un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che le utilizzano. I dati gestiti da un programma in memoria centrale hanno vita che inizia e termina con l'esecuzione del programma, quindi non sono persistenti. - i DBMS grantiscono l'affidabilità, cioè la capacità del sistema di conservare sostanzialmente intatto il contenuto della base di dati, in caso di malfunzionamenti hardware e software. Forniscono specifiche funzionalità di salvataggio e ripristino. - i DBMS garantiscono la privatezza dei dati. Ciascun utente, riconosciuto in base a un nome utente, viene abilitato a svolgere determinate azioni sui dati, attraverso meccanismi di autorizzazione. - i DBMS sono efficienti, cioè capaci di svolgere le operazioni utilizzando un insieme di risorse che sia accettabile per gli utenti. Forniscono un insieme ampio di funzionalità che richiedono molto risorse e quindi possono garantire efficienza solo a condizione che il sistema informatico su cui sono installati sia adeguatamente dimensionato. - i DBMS sono efficaci in quanto sono capaci di rendere produttive le attività dei loro utenti. La gestione di collezioni di dati grandi e persistente è possibile anche per mezzo di strumenti meno sofisticati dei DBMS. I file sono stati introdotti per gestire insieme di dati "localmente" a una specifica procedura o appplicazione. I DBMS sono stati concepiti e realizzati per estendere le funzioni dei file system, fornendo la possibilità di accesso condiviso agli stessi dati da parte di più utenti e applicazioni e garantendo anche molti altri servizi in maniera integrata. I DBMS a loro volta, utilizzano file per la memorizzazione dei dati: i file gestiti dal DBMS ammettono però organizzazioni dei dati più sofisticate. Più in generale, possiamo pensar che un'organizzaione complessa utilizzi un insieme di basi di dati, che siano ciascun dedicata a un insieme di applicazioni strettamente correlate, e che siano al tempo stesso coinvolte in operazioni di interscmbio di informazioni finalizzate a evitare duplicazioni di dati e ripetizioni di attività. Modelli di dati. Un modello dei dati è un insieme di concetti utilizzati per organizzare i dati in interesse e descriverne la struttura in modo che esse risulti comprensibile a un elaboratore. Ogni modello dei dati fornisce meccanismi di strutturazione, che permettono di definire nuovi tipi sulla base di tipi predefiniti. Il modello relazionale permette di definire tipi per mezzo del costruttore relazione, che consente di organizzare i dati in insieme di record a struttura fissa. Un relazione viene spesso rappresentata per mezzo di una tabella. Il modello relazione, definito formalmente agli inizi degli anni 70 del secolo scorso, ma affermatosi nel decennio successivo, è come abbiamo detto, il più diffuso e viene utilizzato in questo libro come modello di riferimento.

Vi sono altri 4 tipi di modelli: - gerarchico: basato sull'uso di struttre ad albero, definito durante la prima fase di sviluppo dei DBMS, tutt'ora utilizzato. - reticolare: basato sull'uso di grafi, sviluppato successivamente a quello gerarchico. - a oggetti: sviluppato negli anni 80, come evoluzione di quello relazionale che estende alle basi di dati il paradigma di programmazione a oggetti. - XML: sviluppato negli anni 90 come rivitazione del modello gerarchico, in cui i dati vengono presentati assieme alla loro descrizione e non vedono sottostare rigidamente a un'unica struttura logica. I modelli di dati elencati sono effettiamente disponibili su DBMS commerciali, vengono detti logici, poichè le strutture utilizzate riflettono una particolare organizzazione. Più recentemente sono stati introdotti altri modelli dei dati, detti concettuali, per descrivere i dati in maniera completamente indipendente dalla scelta del modello logico. Essi tendono a descrivere i concetti del mondo reale, piuttosto che i dati utili a rappresentarli. Vengono utilizzati nella faase preliminare del processo di progettazione di basi di dati. Schemi e istanze. Nelle basi di dati esiste una parte sostanzilamente invariante nel tempo, detta schema della base di dati, costituita dalle caratteristiche dei dati, e una parte variabile nel tempo, detta istanza o stato della base di dati. Lo schema di una relazione è costituito dalla sua intestazione, cioè dal nome della relazione seguito dai nomi dei suoi attributi. Es: DOCENZA( Corso,NomeDocente) Livelli di astrazione nei DBMS. Esiste una proposta di architettura standardizzata per DBMS articolata su 3 livelli: - schema logico: costituisce una descrizione dell’intera base di dati per mezzo del modello logico adottato dal DBMS. - schema interno: costituisce la rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione. - schema esterno: costituisce la descrizione di una porzione della base di dati di interesse, per mezzo del modello logico. Nei sistemi più moderni il livello esterno non è esplicitamente presente, ma è possibile definire relazioni derivate. Indipendenza dei dati. L’architettura a livelli così definita, garantisce l’indipendenza dei dati, la principale proprietà dei DBMS. Questa proprietà permette a utenti e programmi applicativi che utilizzano una base di dati di interagire a un elevato livello di astrazione, che prescinde dai dettagli realizzativi utilizzati nella costruzione della base di dati. - indipendenza fisica: consente di interagire con il DBMS in modo indipendente dalla struttura fisica dei dati, è possibile modificare le strutture fisiche senza influire sulle descrizioni dei dati ad alto livello e quindi sui programmi che utilizzano i dati stessi. - indipendenza logica: consente di interagire con il livello esterno della base di dati in modo indipendente dal livello logico. E’ possibile aggiungere uno schema esterno in base alle esigenze di un nuovo utente oppure modificare uno schema esterno senza dover modificare lo schema logico e perciò la sottostante organizzazione fisica dei dati. E’ importante sottolineare che gli accessi alla base di dati avvengono solo attraverso il livello esterno; è il DBMS che traduce le operazioni in termini dei livelli sottostanti.

Linguaggi e utenti delle basi di dati. I DBMS sono caratterizzati dalla presenza di molteplici linguaggi per la gestione di dati e dalla presenza di molteplici tipologie di utenti. Su un DBMS è possibile specificare operazioni di vario tipo, in particolare quelle relative agli schemi e alle istanze. I linguaggi per basi di dati si distinguono in 2 categorie: - linguaggi di definizione dei dati o DDL (data definition language): utilizzati per definire gli schemi logici, esterni, fisici e le autorizzazioni per l’accesso. - linguaggi di manipolazione dei dati o DML (data manipulation language): utilizzati per l’interrogazione e l’aggiornamento delle istanze di basi di dati. L’accesso ai dati può essere effettuato con varie modalità: - tramite linguaggi testuali interattivi, soprattutto il linguaggio SQL, nelle sue varie versioni. Create table Docenza (Corso character (20), NomeDocente character (30)) - tramite comandi simili a quelli interattivi immersi in linguaggi di programmazione, quali C, C++, Java, COBOL. Questi linguaggi di programmazione si dicono linguaggi ospite perché ospitano comandi scritti nel linguaggi per basi di dati. Caratteristica: realizzare applicazioni parametriche e di farle eseguire anche a un utente che non conosca SQL. - tramite comandi simili a quelli interattivi immersi in linguaggi di sviluppo ad hoc, spesso con funzionalità specifiche. - tramite interfacce amichevoli che permettono di sintetizzare interrogazioni senza usare un linguaggio testuale. Una gran parte dei programmi per l’immissione dei dati, la loro gestione e la stampa hanno una struttura regolare. Utenti e progettisti. Varie categorie di persone possono interagire con una base di dati o con un DBMS. - l’amministratore della base di dati: è la persona responsabile della progettazione, controllo e amministrazione della base di dati. Il DBA ha il compito di mediare le varie esigenze espresse dagli utenti, contrastanti tra loro, garantendo un controllo centralizzato sui dati. - i progettisti e programmatori di applicazioni: definiscono e realizzano i programmi che accedono alla base di dati. Utilizzano il linguaggio di manipolazione dei dati. - gli utenti: utilizzano la base di dati per le proprie attività. A loro volta possono essere divisi in due categorie: - utenti finali: utilizzano transizioni, cioè programmi che realizzano attività predefinite e di frequenza elevata. - utenti casuali: in grado di impiegare i linguaggi interattivi per l’accesso alla base di dati, formulando interrogazioni di tipo vario. Vantaggi e svantaggi dei DBMS. Vantaggi: - permettono di considerare i dati come una risorsa comune di un’organizzazione, a disposizione di tutte le sue componenti. - la base di dati fornisce un modello unificato e preciso della parte del mondo reale di interesse per l’organizzazione, utilizzabile nelle applicazioni attuali, con possibili estensioni, in applicazioni future. - con l’uso di un DBMS è possibile un controllo centralizzato dei dati, che può essere arricchito da forme di standardizzazione e beneficiare di “economie di scala”. - la condivisione permette di ridurre ridondanze e inconsistenze. -l’indipendenza dei dati, caratteristica fondamentale dei DBMS, favorisce lo sviluppo di

applicazioni più flessibili e facilmente modificabili. Aspetti negativi: - sono costosi, complessi e diversi da molti altri strumenti informatici. La loro introduzione comporta quindi notevoli investimenti, diretti e indiretti. - forniscono una serie di servizi che sono necessariamente associati a un costo. Concludendo, possiamo dire che incontrano in situazioni nelle quali l’adozione di un DBMS può risultare sconveniente. Tuttavia la tecnologia dei DBMS si è notevolmente evoluta negli ultimi anni, traducendosi in sistemi sempre più efficienti e affidabili su architetture sempre più diffuse e poco costose, aumentando la convenienza di sviluppare applicazioni con un DBMS. CAP 2. Il modello relazionale: strutture. Modelli logici nei sistemi di basi di dati. Il modello relazionale si basa su due concetti: relazione e tabella. La nozione di relazione proviene dalla matematica, in particolare dalla teoria degli insiemi, mentre il concetto di tabella è semplice ed intuitivo. Il modello relazionale risponde al requisito dell’indipendenza dei dati, che prevede una distinzione, nella descrizione dei dati, fra livello fisico e livello logico. Gli utenti accedono ai dati e i programmatori che sviluppano le applicazioni fanno riferimento solo al livello logico. Al contrario, i modelli proposti precedentemente al modello relazionale, quello reticolare e gerarchico, includevano espliciti riferimenti alla sottostante struttura realizzativa, attraverso l’uso di puntatori e l’ordinamento fisico dei dati. Il termine relazione viene utilizzato in questo testo in tre accezioni: - relazione matematica secondo la definizione data nella teoria degli insiemi. Da questa derivano le altre due: - relazione secondo la definizione del modello relazionale che presenta alcune differenze rispetto a quella della teoria degli insiemi. - relazione costrutto del modello Entità-Relazione utilizzato per descrivere legami tra entità del mondo reale. Relazioni e tabelle. In matematica, dati due insiemi D1 e D2, si chiama prodotto cartesiano di D1 e D2, in simboli D1xD2, l’insieme delle coppie ordinate (v1,v2), tali che v1 è un elemento di D1 e v2 è un elemento di D2. Una relazione matematica sugli insiemi D1 e D2 (domini della relazione) è un sottoinsieme di D1xD2. Le relazioni possono essere rappresentate graficamente, sotto forma tabellare. Le definizioni precedenti di un prodotto cartesiano e relazione matematica fanno riferimento a due insiemi, ma possono essere generalizzate rispetto al numero di insiemi. Dati n> 0 insiemi di D1, D2,...Dn, non necessariamente distinti, il prodotto cartesiano di D1,D2, .. Dn, indicato con D1 x D2 x Dn, è costituito dall’insieme delle n-uple tali che v1 appartiene a D1, per 1≤ i ≤ n. Una relazione matematica sui domini D1, D2, .. Dn è un sottoinsieme del prodotto cartesiano D1 x D2 x Dn. Il numero n delle componenti del prodotto cartesiano, viene detto grado del prodotto cartesiano e della relazione. Il numero di elementi della relazione viene chiamato cardinalità della relazione. Relazioni con attributi. Una relazione matematica è un insieme di n-uple ordinate con v1 Є D1, v2 Є D2, vn Є Dn. Possiamo poi ricordare che una relazione è un insieme, quindi:

- non è definito alcun ordinamento fra le n-uple, nelle tabelle che le rappresentano c’è un ordine, ma è occasionale, due tabelle con le stesse righe, ma in ordine diverso, rappresentano la stessa relazione. - le n-uple di una relazione sono distinte l’una dall’altra, in quanto non possono essere presenti due elementi uguali, quindi una tabella rappresenta una relazione solo se le sue righe sono l’una diversa dall’altra. Al tempo stesso, ciascuna n-upla è, al proprio interno, ordinata: l’i-esimo valore di ciascuna proviene dall’i-esimo dominio. E’ cioè definito un ordinamento fra i domini. Dom: X → D, che associa a ciascun attributo A Є X un dom(A) Є D. Poi diciamo che una tupla2 su un insieme di attributi X è una funzione t che associa a ciascun attributo A Є X un valore del dominio dom(A). Possiamo quindi dare la nuova definizione di relazione: una relazione su X è un insieme di tuple su X. Relazioni e basi di dati. Una basa di dati in generale è costituita da più relazioni, le cui tuple contengon valori comuni, ove necessario per stabilire corrispondenze. Il modello relazionale basato su valori, presenta dei vantaggi: - richiede di rappresentare solo ciò che è rilevante dal punto di vista dell’applicazione- la rappresentazione logica di dati non fa riferimento a quella fisica, il modello relazionale permette di ottenere l’indipendenza fisica dei dati. - essendo tutta l’informazione contenuta nei valori è relativamente semplice trasferire i dati da un contesto a un altro. Possiamo riassumere le definizioni relative al modello relazionale distinguendo il livello degli schemi da quello delle istanze. - schema di relazione è costituito da un simbolo R detto, nome della relazione e da un insieme di attributi X= {A1, A2, ..An} , il tutto indicato con R(X). A ciascun attributo è associato un dominio. - schema di base di dati è un insieme di schemi di relazione con nomi diversi. I nomi di relazione hanno come scopo quello di distinguere le varie relazioni nella base di dati. - istanza di relazione su uno schema R(X) è un insieme r di tuple su X. - istanza di base di dati su uno schema R= {R1(x1), R2(X29ì),… Rn(Xn)} è un insieme di relazioni r= ( r1,r2,...rn), dove ogni ri, per 1≤ i ≤ n, è una relazione sullo schema R(Xi). Gli attributi vengono indicati con le iniziali dell’alfabeto, maiuscolo con indici e/o pedici. Gli insiemi di attributi vengono indicati con le lettere finali dell’alfabeto, maiuscole. Per i nomi di relazione usiamo la R e le lettere contigue, maiuscole. Informazione incompleta e valori nulli. La struttura del modello relazionale p molto semplice e potente. Impone un certo grado di rigidità, in quanto le informazioni devono essere rappresentate per mezzo di tuple di dai omogenee; in ogni relazione possiamo rappresentare solo tuple corrispondenti allo schema della relazione stessa. La non disponibilità di valori, il concetto viene esteso prevedendo che una tubla possa assumere, o un valore del dominio, oppure un valore speciale, detto valore nullo, che denota l’assenza di informazione. (NULL). Il valore nullo sostituisce un valore ordinario non noto alla base di dati: sconosciuto. Il valore nullo denota l’inapplicabilità dell’attributo o l’inesistenza del valore: è inesistente. Vincoli di integrità.

Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione. Ogni vincolo può essere visto come un predicato che associa a ogni istanza il valore vero o falso. Se il predicato assume il valore vero diciamo che l’istanza soddisfa il vincol...


Similar Free PDFs