Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

BiografiaBiologiaBotanicaChimicaComputerComunicazioneCostruzioneDiritto
EducazioneElettronicaFisicaGeografiaGiochiGrammaticaIngegneriaLetteratura
LibriMarketingMatematicaMedicinaMusicaNutrizionePsicologiaRicette
SociologiaStoriaVarie

DATABASE RELAZIONALI-LINGUAGGI DI INTERROGAZIONE (SQL)

computer



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

DATABASE RELAZIONALI-LINGUAGGI DI INTERROGAZIONE (SQL)

INTRODUZIONE

Nella società odierna i sistemi di basi di dati sono diventati un membro Essenziale nella vita quotidiana.Nell'arco di una giornata molti di noi s’imbattono in numerose attività che comportano una qualche interazione con una base di dati.Per esempio se andiamo in banca per depositare denaro o prelevare denaro, se effettuiamo una prenotazione aerea, ecc….Le interazioni sopra descritte sono esempi di ciò che è possibile chiamare applicazioni tradizionali di basi di dati, nelle quali gran parte dell’informazione che è memorizzata e cui si accede è testuale o numerica.Negli ultimi anni i miglioramenti tecnologici hanno portato a nuove e affascinanti applicazioni di sistemi di basi di dati come quelle per la memorizzazione di effetti sonori, immagini, video, oppure di memorizzazioni di carte geografiche ecc….



Una base di dati è una collezione di dati correlati.Per dati si intendono fatti noti che possono essere memorizzati e che hanno un significato implicito, come ad esempio una rubrica dove hai memorizzato dei numeri di telefono che poi hai memorizzato su un dischetto usando un programma su un PC.Esso è un esempio di collezione di dati correlati impliciti, e quindi è una base di dati.Una base di dati ha le seguenti proprietà implicite:

  Rappresenta un certo aspetto del mondo reale.

  è una collezione di dati coerenti con un certo significato.

  è progettata e popolata con dati con un certo significato intrinseco

In altre parole una base di dati ha una certa sorgente dal quale i dati sono derivati, una certa interazione con il mondo reale, ed un pubblico attivamente interessato a tale base.

Una base di dati può essere gestita manualmente, oppure può essere computerizzata.Lo schedario di una biblioteca è un esempio di gestione manuale.Una base di dati computerizzata può essere prodotta e mantenuta da una serie di programmi applicativi adatti allo scopo, o da un sistema di gestione di basi di dati.

Un Sistema di gestione di basi di dati DBMS (database managememt system) è un insieme di programmi che permettono agli utenti di creare e mantenere una base di dati.Il DBMS perciò è un

Sistema software con scopi generali che facilitano il processo di definire, manipolare, e costruire una base di dati.Definire una base di dati significa specificare i tipi di dati, i loro vincoli e caratteristiche che poi saranno memorizzati.Costruire la base di dati significa immagazzinare i dati stessi entro un certo mezzo di comunicazione controllato dal DBMS.Manipolare una base di dati significa includere funzioni come la sua interrogazione per recuperare dati specifici, il suo aggiornamento e la generazione di prospetti.La manipolazione di basi comprende l’interrogazione e l’aggiornamento.L’interrogazione è una domanda che viene fatta al sistema ad esempio quando si vuole recuperare qualche dato o qualche elenco.L’aggiornamento quando si intende cambiare, aggiornare o inserire qualche dato.

La base di dati con il software del DBMS, è chiamato sistema di basi di dati

Una caratteristica fondamentale di questo sistema è che contiene non solo i dati, ma anche le caratteristiche, i vincoli, e le loro strutture.Queste definizioni sono memorizzate nel catalogo che contiene informazioni come la loro struttura, il formato di memorizzazione e vari vincoli.Le informazioni memorizzate nel catalogo sono dette metadati e descrivono la struttura della base di dati principale.Il catalogo è usato dal software del DBMS e anche dagli utenti della base che hanno bisogno di informazioni sulla struttura della stessa.Un pacchetto software DBMS non è scritto per una specifica applicazione di basi di dati di conseguenza deve riferirsi al catalogo per conoscere la struttura dei file in un database specifico come il tipo e il formato dei dati cui accederà.

La struttura dei file di dati è memorizzata nel catalogo separatamente dai programmi di accesso, questa proprietà è chiamata indipendenza tra programmi e dati.Il software del DBMS deve lavorare ugualmente bene con qualsiasi applicazione di basi di dati.Nella basi di dati orientati a oggetti e in quelle relazionali, gli utenti possono definire le operazioni sui dati come parte delle definizioni della base di dati.Un operazione è divisa in due parti: l’interfaccia comprende il nome dell’operazione e i tipi di dati dei suoi argomenti.L’implementazione è specificata separatamente e può essere cambiata senza interessare l’interfaccia.Questo fatto è definito indipendenza tra programmi e operazioni. Queste due indipendenze sopra descritte sono chiamate astrazione dei dati.Un DBMS fornisce agli utenti una rappresentazione concettuale dei dati che non comprendono molti dettagli su come i dati sono memorizzati, o su come le operazioni sono implementate.Informalmente un modello di dati è questo tipo di astrazione fornita per rappresentare questo livello concettuale.Il modello di dati usa concetti e astrazioni, che per molti utenti sono più facili da capire rispetto a nozioni di memorizzazione nei calcolatori.Con la recente tendenza verso database relazionali e a oggetti quest’astrazione è portata ad un livello superiore, ed include anche le operazioni sui dati, dette operazioni astratte.Tipicamente una base di dati ha molti utenti ciascuno dei quali può richiedere una diversa prospettiva o vista, che è un sottoinsieme della base di dati o può contenere dati virtuali che sono derivati dai file della base di dati, ma che non sono esplicitamente memorizzati.Un DBMS multiutente deve consentire a più utenti di accedere contemporaneamente alla base di dati. La cosa è essenziale se dati per applicazioni multiple devono essere integrati e mantenuti in una singola base di dati.Il DBMS deve contenere un software per il controllo della concorrenza che garantisca che più utenti che cerchino di aggiornare gli stessi dati lo possono fare in maniera controllata, cosicché il risultato degli aggiornamenti sia corretto.Una funzione fondamentale è quella di assicurare che le transazioni concorrenti operino correttamente.

Il DBMS è fornito di un supervisore chiamato DBA il cosiddetto amministratore della base di dati.E’ responsabilità del DBA autorizzare l’accesso alla base stessa, coordinare e monitorare il suo uso e acquisire risorse hardware e software quando esse si rivelino necessarie.Il DBA risponde di problemi quali la violazione al sistema o tempi di risposta scadenti da parte di quest’ultimo.In organizzazioni di grandi dimensioni è supportato da uno staff che lo aiuta a svolgere tali mansioni.

I progettisti di base di dati hanno la responsabilità di individuare i dati da memorizzare nella base di dati e di scegliere strutture adeguate per rappresentarli e memorizzarli.Questi compiti sono intrapresi prima che la base di dati sia realmente implementata e popolata di dati.E’ loro responsabilità comunicare con i futuri utenti della base di dati per capire le loro esigenze.In molti casi fanno parte dello staff del DBA e possono essere assegnati loro responsabilità di staff dopo che è terminata la progettazione della base.I database saranno indirizzati poi agli utenti finali quelle persone che per la loro unità lavorativa richiedono l’accesso alla base di dati che possono essere ingegneri, scienziati, analisti commerciali, ecc….

  Vantaggi nell’uso di un DBMS:

Nell’uso di un DBMS si può avere la possibilità da parte di più utenti di memorizzare più volte gli stessi dati, che pero implica degli svantaggi: la possibilità di eseguire un solo aggiornamento logico, uno spreco di memoria, essendo ripetutamente memorizzati file che rappresentano gli stessi dati e possono diventare inconsistenti.Per questo un DBMS deve essere dotato di un controllo della ridondanza per evitare queste inconsistenze. A volte si ha una ridondanza controllata quando essa è utile per migliorare le prestazioni delle interrogazioni.

Quando più utenti condividono una base di dati, è verosimile che ad alcuni non Sara possibile accedere a tutte le informazioni contenute.Di conseguenza deve essere controllato il tipo di operazione di accesso recupero o aggiornamento.Tipicamente si forniscono agli utenti Account protetti da password (la stessa cosa che ricevi quando ti abboni ad un Provider internet) che sono usati per ottenere l’accesso alla base di dati.Le basi di dati possono essere usate per fornire memorizzazione persistente di oggetti di programmi e strutture di dati.E’ una delle ragioni principali perché sono state sviluppati sistemi di basi di dati a oggetti.Un oggetto è detto persistente, poiché sopravvive alla terminazione dell’esecuzione del programma e può in seguito essere recuperato da un altro programma.Poiché una base di dati è usata da più utenti, il DBMS dovrebbe fornire una molteplicità di interfacce utente dette GUI (graphical user interfaces).Molte applicazioni di basi di dati presentano vincoli di integrità che devono valere per i dati.Il DBMS dovrebbe impedire questi vincoli, che sono nel loro termine più semplice la specificazione di un tipo di dati per ciascun dato, in pratica la caratteristica di ciascun dato.Un DBMS deve fornire funzioni di ripristino e salvataggio dette backup e recovery nel caso di salvataggio su nastro dei dati, o di un eventuale ripristino in caso di blocco del database.

CONCETTO E ARCHITETTURA DI UN DBMS

Un DBMS è formato da un modulo client di norma progettato in modo tale da poter essere eseguito sul PC dell’utente.In questo modulo sono eseguiti i programmi applicativi e le interfacce utente, Un modulo server tratta la memorizzazione dei dati, l’accesso, la ricerca, e le altre funzioni.Un modello di dati come si è detto è l’astrazione concettuale dei dati memorizzati, esistono molti tipi di tali modelli, ”modelli di dati concettuali”, “modelli di dati di basso livello o fisici”, ”implementabili”, fra essi spunta il modello di dati relazionale diffuso nei DBMS commerciali che fa parte dei modelli di dati implementabili, costituendo un aggiornamento agli ormai passati modelli gerarchico e reticolare.Qualsiasi sia il modello di dati considerato è importante distinguere tra la descrizione della base di dati e la base di dati stessa.La descrizione è detta schema della base di dati ed è specificata durante la progettazione della base di dati, e non cambia frequentemente.La distinzione tra stato e schema, è importante: quando si definisce una nuova base di dati si specifica il suo schema solo al DBMS.A questo punto il corrispondente stato della base di dati è lo stato vuoto, senza dati.Si raggiunge lo stato iniziale della base quando essa è per la prima volta popolata o caricata con i dati iniziali.Da allora in poi ogni volta che viene eseguita un’operazione di aggiornamento si ottiene un altro stato della base di dati.

  Architettura di un DBMS:

Un DBMS è formato da un architettura a tre livelli.L’obiettivo di questo tipo di architettura è di separare le applicazioni dell’utente dalla base di dati fisica.In questa architettura possono essere definiti tre livelli:

1)Livello interno: ha uno schema interno che descrive la struttura di memorizzazione fisica della base di dati, i dettagli completi della memorizzazione, e i cammini di accesso per la base di dati.

2)Livello concettuale: ha uno schema concettuale che descrive la struttura dell’intera base per una comunità di utenti.Si concentra soprattutto sulla descrizione di entità, tipi di dati, associazioni, operazione degli utenti e vincoli.

3)Livello esterno: comprende un certo numero di viste d’utente descrive la parte della base di dati a cui è interessato un certo gruppo di utenti.

I processi di trasformazioni di richieste e risultati tra livelli sono detti mapping(trasformazioni).

Questa architettura può essere usata per descrivere il concetto di indipendenza dei dati, che può essere definita come la capacità di cambiare lo schema ad un certo livello di un sistema di basi di dati senza dover cambiare lo schema al livello superiore.E’ possibile definirla in due tipi:

1)Indipendenza logica dei dati: è la capacità di cambiare lo schema concettuale senza dover cambiare schemi esterni o programmi applicativi.

2Indipendenza fisica dei dati: è la capacità di cambiare lo schema interno senza dover cambiare quello concettuale.

Il DBMS è fornito di numerosi linguaggi di programmazione, che permettono di programmarlo e di farlo funzionare (Linguaggio di definizione dei dati DDL, della memorizzazione SDL, delle visteVDL, ecc… .) fra tutti questi quello più usato è il linguaggio di interrogazione che può essere definito come un linguaggio DML (Linguaggio specializzato per la gestione dati) elevato, in cui i comandi sia di recupero sia di aggiornamento sono usati interattivamente.Oltre che dall’architettura appena descritta un DBMS è formato anche da altri moduli funzionali: la base di dati e il catalogo sono solitamente memorizzati sul disco, il cui accesso è controllato dal sistema operativo che ne pianifica l’input/output.Un gestore dei dati memorizzati controlla l’accesso alle informazioni memorizzate della base di dati e del catalogo.Un compilatore DDL elabora definizioni di schema e li memorizza nel catalogo del DBMS.Un processore di esecuzione della base di dati gestisce gli accessi alla base durante l’esecuzione; riceve operazioni di recupero o aggiornamento e le esegue sulla base di dati.L’accesso al disco passa attraverso il gestore dei dati memorizzati.Un compilatore delle interrogazioni gestisce le interrogazioni di alto livello che sono inserite interattivamente.Il precompilatore estrae comandi DML da un programma applicativo scritto in linguaggio di programmazione, e le invia poi ad un compilatore DML per la compilazione in codice oggetto per l’accesso alla base di dati.

Un DBMS oltre a disporre dei moduli, dispone di diversi programmi di utilità per la base di dati:

1)caricamento: è usata per caricare file esistenti nella base di dati.

2)Backup: crea una copia di backup del database, di solito riversandola su nastro.

3)Riorganizzazione dei file: riorganizza i file per aumentare le prestazioni(Tipo deframmentazione disco di Windows).

4) Monitoraggio delle prestazioni: controlla sistematicamente l'uso della base di dati e fornisce statistiche al DBA, il quale ricorre ad esse per prendere decisioni, come quella se riorganizzare o no i file per migliorarle.

Il modello usato in molti DBMS commerciali attualmente è il modello di dati relazionale

DATABASE RELAZIONALE STANDARD SQL

Il linguaggio SQL può essere considerato come uno dei motivi principale del successo delle basi di dati relazionali sul mercato.Poiché per esse è diventato uno standard, gli utenti possono fare a meno di preoccuparsi della migrazione delle loro applicazioni da altri tipi di DBMS ad esempio dai modelli relazionali a quelli gerarchici.Un altro vantaggio di questo standard è che gli utenti possono scrivere le istruzioni di un programma applicativo che accede ai dati memorizzati in due o più DBMS relazionali senza dover cambiare il sottoinsieme dell’SQL della base di dati, se entrambi i DBMS lo supportano.L’utente quindi deve specificare in quale ordine eseguire le operazioni di interrogazione.Il linguaggio SQL fornisce un interfaccia dichiarativa di alto livello permettendo all’utente di specificare solo quale deve essere il risultato e lasciando al DBMS l’ottimizzazione delle decisioni effettive su come eseguire l’interrogazione.SQL include alcune funzioni dell’algebra relazionale, ma si basa soprattutto sul calcolo relazionale delle tuple, che è un altro linguaggio di interrogazione per le basi di dati relazionali.SQL è acronimo di Structured Query Language linguaggio strutturato di interrogazione.In origine si chiamava SEQUEL ed è stato progettato presso il centro di ricerca IBM come interfaccia verso un sistema di basi di dati relazionali commerciali.Successivamente è stato progettato uno standard più esteso chiamato SQL2.E’ gia in fase avanzata il progetto della terza versione denominato SQL3.SQL è un linguaggio completo, comprende istruzioni per la definizione dei dati l’interrogazione e l’aggiornamento; fornisce tutte le funzionalità per definire la viste sul database, per la sicurezza e l’accesso, per definire i vincoli di integrità e i controlli sulle transazioni.Comprende anche le regole per incorporare le sue istruzioni nei linguaggi C++ e PASCAL.

Questo linguaggio utilizza i termini di tabella, riga, e colonna rispettivamente come sinonimi di relazione tupla e attributo.I comandi per la definizione dei dati sono: CREATE, ALTER, e DROP.SQL include il concetto di schema che invece nelle versioni precedenti non era considerato,uno schema SQL è identificato da un nome di schema e contiene un identificatore di autorizzazioni o l’account del proprietario, descrittori per ciascun elemento dello schema.I suoi elementi comprendono le tabelle, le viste, e tutti gli altri elementi che lo descrivono.Uno schema è creato con il comando CREATE SCHEMA e può includere tutte le definizioni dell’elemento dello schema, oppure ci si limita ad identificare un nome o un identificatore di autorizzazione allo schema.Oltre al concetto di schema si ha quello di catalogo in cui sono raccolti tutti gli schemi in cui viene associato un nome.Un catalogo contiene uno schema speciale chiamato INFORMATION_SCHEMA che fornisce agli utenti autorizzati le informazioni sugli elementi di tutti gli schemi del catalogo.

  comando CREATE TABLE

E’ usato per specificare una nuova relazione assegnandole un nome e specificando i suoi attributi e vincoli.gli attributi sono specificati per primi e a ciascun attributo è assegnato un nome, un tipo di dati e gli eventuali vincoli sui valori.

comandi DROP SCHEMA e DROP TABLE

Se un intero schema non è più necessario può essere utilizzato il comando DROP SCHEMA. Che consiste in due opzioni: CASCADE e RESTRICT.

Se viene scelto RESTRICT al posto di CASCADE lo schema è eliminato solo se contiene elementi altrimenti e DROP non viene eseguito.Se una relazione base all’interno dello schema non è più necessaria si elimina, usando il comando DROP TABLE.se si usa RESTRICT la tabella viene eliminata senza alcun riferimento ad essa.Con l’opzioni CASCADE invece viene eliminata completamente la tabella con i suoi vincoli e le viste.

  Comando ALTER TABLE

serve per cambiare la definizione di una tabella eliminando le sue righe, o colonne le sue definizioni e i vincoli.E’ un comando di evoluzione dello schema.

INTERROGAZIONI FONDAMENTALI SQL

SQL ha un istruzione fondamentale per recuperare le informazioni da una base di dati.L’istruzione SELECT.

La forma fondamentale dell’istruzione SELECT talvolta chiamata blocco select-from-where, è formata dalle tre clausole SELECT, FROM, WHERE e ha la seguente forma:

SELECT <elenco attributi>

FROM <elenco tabelle>

WHERE <condizione>

In cui:

L’elenco degli attributi è un elenco dei nomi degli attributi i cui valori devono essere recuperati dall’interrogazione.Elenco tabelle è un elenco dei nomi delle relazioni necessarie per eseguire l’interrogazione.Condizione E’un’espressionee condizionale che identifica le tuple che devono essere recuperate dall’interrogazione.In SQL lo stesso nome può essere usato per due o più attributi purché si trovino in relazioni diverse.In questo caso se un interrogazione si riferisce a due o più attributi con il solito nome si deve qualificare il nome dell’attributo con quello della relazione per evitare ambiguità. Ciò viene fatto ponendo come prefisso il nome della relazione al nome dell’attributo e separando i due con un punto.Quando si desidera eliminare le tuple duplicate dal risultato di un interrogazione SQL si utilizza la chiave DISTINCT nella clausola SELECT, il che significa che solo le tuple distinte dovrebbero rimanere nel risultato. In generale un interrogazione con SELECT DISTINCT elimina i duplicati, mentre una con SELECT ALL non lo fa.(Specificando SELECT solo, si ottiene un effetto uguale a SELECT ALL)Ulteriori funzioni di SQL sono la funzione LIKE che permette di eseguire un confronto solo su parti di una stringa di caratteri.Le stringhe parziali sono specificate utilizzando due caratteri riservati: % e ( ) che sostituiscono un numero di caratteri e il segno di sottolineatura.Un altro operatore di confronto che può essere usato per comodità è BETWEEN.SQL consente all’utente di ordinare le tuple del risultato di un interrogazione rispetto ai valori di uno o più attributi usando la clausola ORDER BY, si può specificare la parola chiave DESC se si vuole ordinare in ordine decrescente, ASC, se si vuole in ordine crescente.

  Comandi INSERT DELETE UPDATE

INSERT è usato per aggiungere una singola tupla ad una relazione.Si devono specificare il nome della relazione e un elenco di valori per la tupla.I valori devono essere elencati nello stesso ordine in cui gli attributi corrispondenti sono stati specificati dal comando CREATE TABLE.

DELETE elimina le tuple da una relazione, che possono essere eliminate una per volta e possono far riferimento anche a tuple di altre relazioni, il numero di tuple da cancellare viene specificato con la clausola WHERE, se la clausola non è presente vengono eliminate tutte.

UPDATE è usato per modificare i nomi degli attributi di una o più tuple selezionate.Anche qui il comando WHERE definisce le tuple da modificare per ogni relazione.Un’ulteriore clausola SET specifica i nuovi valori da dare agli attributi

Legenda:

Sono definiti i termini usati in questo tutorial:

Tabella: tabella in cui ogni riga rappresenta una collezione di valori di dati collegati.

Attributo: fornisce il nome del ruolo interpretato da un certo dominio in una relazione.

Relazione: è un insieme di tuple, dove ogni tupla rappresenta un elenco ordinato di valori, dove ogni valore è un elemento di dominio.

Dominio: insieme di valori detti Atomici, dove per atomici si intende che ogni valore è indivisibile.Ogni dominio è specificato da un tipo di dati e da un nome.

Schema di relazione: insieme di elenco di attributi.

Chiave: schema di relazione in cui la rimozione di ciascun attributo porta ad un insieme di attributi.

Superchiave: insieme di attributi di una relazione.

Chiave candidata: relazione che ha più chiavi.

Chiave primaria: ognuno delle chiavi della relazioni.è usata per identificare tuple in una relazione.

Schema di base di dati relazionale: insieme di schemi di relazione e da insiemi di vincoli di integrità.

Stato della base di dati relazionale: insieme di stati di relazione che soddisfano i vincoli di integrità.

Vincoli di integrità dell’entità: stabilisce che nessun valore di chiave primaria può essere nullo.

Vincoli di integrità referenziale: è specificato fra due relazioni ed è usato per mantenere consistenza fra tuple delle due relazioni.Il vincolo di integrità stabilisce che una tupla in una relazione che fa riferimento ad un'altra relazione deve far riferimento ad una tupla esistente in quella relazione.

Chiave esterna: insieme di attributi nello schema di relazione che fa riferimento ad essa.

P.S.:Con questo Tutorial ho voluto fare una panoramica dei database relazionali e dei linguaggi di interrogazione usati dagli stessi,limitando a descrivere solo i comandi base e non quelli avanzati,(altrimenti non mi sarebbero bastati 3 mesi per scrivere questo tutorial).Infine ho descritto i termini usati in questo manuale cosicché uno che leggendo incontra i termini capisce cosa significano,non rimanendo totalmente al buio su di essi.

Questo argomento mi è servito visto che lo dovevo preparare per un concorso di informatica e quindi ho pensato di pubblicarlo anche sul sito di “manuali.net”(forse può servire a qualcuno per un altro concorso) in caso contrario servirà per curiosità a chi è interessato a tale argomento.Spero in ogni caso che sia utile a qualcuno…….!!!!!!



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 642
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved