Le basi di dati

  • Upload
    gavan

  • View
    61

  • Download
    1

Embed Size (px)

DESCRIPTION

Le basi di dati. La storia Cos’è una base di dati? In altre parole … A cosa serve una base di dati ? Quali problemi provocano gli archivi tradizionali? Cosa deve garantire un database? Il DBMS Database o DBMS? Come può il DBMS superare i limiti della gestione tradizionale? - PowerPoint PPT Presentation

Citation preview

  • Parleremo di ..La storiaCos una base di dati?In altre parole A cosa serve una base di dati ?Quali problemi provocano gli archivi tradizionali? Cosa deve garantire un database?Il DBMSDatabase o DBMS?Come pu il DBMS superare i limiti della gestione tradizionale?Come si realizza lintegrazione degli archivi?

    Dov collocato un database?I modelli per il databaseIl modello gerarchicoIl modello reticolareIl modello relazionaleI database orientati agli oggettiIl modello relazionale:concetti fondamentalirequisiti fondamentalila chiave primaria le regole di derivazionegli operatori relazionali

  • Parleremo di ..Il modello relazionale:la selezionela proiezionecongiunzioneoperazioni sugli insiemiNormalizzazione1FN2FN3FNLintegrit referenzialeOsservazioni sul modello relazionaleLa gestione del databaseLa gestione del database: funzioni del DBMS

    La gestione del database: il dizionarioI linguaggi per le basi di dati:DDL (Data Definition Language) DMCL (Device Media Control Language)DML (Data Manipulation Language)DCL (Data Control Language)Query LanguagesRelational DBMS (RDBMS)Gli utenti

  • La storiaLa storia dei database inizia, parallelamente a quella dell'elaborazione elettronica, negli anni '50. A partire dagli anni '60, grazie all'introduzione della distinzione tra il valore fisico dei dati ed il loro significato logico, si lentamente passati da una modellizzazione focalizzata sui processi aziendali ad una modellizzazione basata sui dati aziendali, che sono entit meno soggette a variazioni rispetto ai processi.

  • La storiaNegli anni 70:il modello reticolare ha una discreta diffusione soprattutto nei sistemi di elaborazione di grandi dimensioni;nel 1970 nasce il modello relazionale, proposto da Edward E.Codd, ricercatore IBM, come idea di un modello logico molto semplice e nello stesso tempo in grado di superare i limiti degli altri modelli utilizzati.

  • La storiaNegli anni '80:viene introdotto nelluso corrente il modello relazionale. Si inizia a parlare di un nuovo software il database management systems (DBMS). Un DBMS controlla tutte le funzioni di input, immagazzinamento, elaborazione e recupero dei dati da un database e genera, basandosi sulle relazioni, vari tipi di informazione.

  • La storiaLo sviluppo dei prodotti DBMS stato possibile grazie all'introduzione di supporti di memorie di massa, magnetici e soprattutto ma recentemente anche ottici, che consentono grandi capacit oltre che tempi di accesso e di trasferimento in memoria centrale molto bassi.

  • Cos una base di dati (database)?E un insieme di archivi di dati:organizzati in modo integrato attraverso tecniche di modellazione dei datigestiti sulle memorie di massa dei computer attraverso appositi software

  • In altre parole Un database una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi con programmi diversi.

  • A cosa serve una base di dati ?Raggiungere una grande efficienza nel trattamento e nel ritrovamento dei dati, Superare i limiti presenti nelle organizzazioni tradizionali degli archivi quali:mancanza di integrazione fra gli archivi;legame fra l'accesso ai dati ed il tipo di organizzazione assegnata agli archivi. legame fra gli archivi ed i programmi,Obiettivo ?

  • Quali problemi provocano gli archivi tradizionali?ProduceI dati sono inconsistenti se non sono pi affidabili, perch non si sa in modo certo quale dei diversi valori sia quello corretto.RidondanzaI dati sono ridondanti se compaiono in maniera duplicata (questo un aspetto di inefficienza nella gestione).IncongruenzaUn dato incongruente se pu essere aggiornato in un archivio e non in un altro, oppure possono essere presenti valori diversi per lo stesso dato.InconsistenzaProduce

  • Quali problemi provocano gli archivi tradizionali?I dati contenuti negli archivi possono inoltre essere trattati solo elaborando i file record per record. Accesso ai datiLorganizzazione assegnata agli archivi, le chiavi stabilite per i record e l'ordine con cui i campi compaiono nella struttura del record.Influisce suOperazioni che si possono effettuare sugli archivi L'accesso ai dati determinato dallorganizzazione assegnata agli archivi

  • Quali problemi provocano gli archivi tradizionali?Tutti i linguaggi di programmazione tradizionali (per esempio il Pascal o il Cobol) richiedono la specificazione, all'interno del programma, degli archivi utilizzati e della struttura dei loro record.Qualsiasi modifica alla struttura del record, richiede la modifica di tutti i programmi che utilizzano quel tipo di record. Implica cheI programmi sono legati agli archivi che gestiscono

  • Cosa deve garantire un database?Un database deve consentire di ritrovare facilmente le informazioni desiderate anche a fronte di una mole di dati rilevante.EfficienzaProduttivitvelocit nell'elaborazione, sicurezza dei dati,integrit delle registrazioni.si parla diin termini di

  • Cosa deve garantire un database?significativi,effettivamente utilizzabili nelle applicazioni dell'azienda. Deve essere garantita la consistenza degli archivi. I dati in essi contenuti devono essere:

  • Cosa deve garantire un database?cadute del sistema,guasti hardware,interventi dannosi da parte di:utenti, ad esempio interventi dolosi sui dati dovuti ad accessi non autorizzati,programmi.I dati devono quindi essere protetti per impedire perdite accidentali dovute a:Impedire la perdita di integrit

  • Il DBMS (Data Base Management System)Software per la gestione di database denominato DBMS (Database Management System).Il superamento delluso tradizionale degli archivi basato su accessi esplicitati nel percorso da parte del programmatore con comandi di apertura, chiusura, lettura, scrittura e posizionamento. garantito dal

  • Il DBMS (Data Base Management System)pi lontana dall'hardware, dalle memorie di massa e dal Sistema Operativopi vicina all'applicazione che utilizza i dati contenuti negli archivi. Il DBMS consente all'utente di collocarsi in una posizione:

  • Il DBMS (Data Base Management System)Accresce la differenza tra:struttura concettuale: modo attraverso il quale l'utente pensa all'organizzazione e al ritrovamento dei dati, struttura fisica dei dati: tecniche utilizzate dal Sistema Operativo per registrare e leggere negli archivi.

  • Database o DBMS ?Database Insieme di datiDBMSSistema per la gestione del databaseFile SystemArchivi di dati come nell'uso degli archivi tradizionaliNelluso dei database

  • Come pu il DBMS superare i limiti della gestione tradizionale? Possibile modificare i supporti con cui i dati sono registrati e le modalit di accesso alle memoria di massa senza modifiche alle applicazioni.Indipendenza dalla struttura fisica dei datiI programmi applicativi sono indipendenti dai dati fisici.

  • Come pu il DBMS superare i limiti della gestione tradizionale? Possibile modificare la definizione delle strutture della base di dati senza modificare il software applicativo.Indipendenza dalla struttura logica dei datiI programmi applicativi sono indipendenti dalla struttura logica con cui i dati sono organizzati negli archivi

  • Come pu il DBMS superare i limiti della gestione tradizionale? I diversi utenti del database possono avere anche una visione parziale del database.Le operazioni svolte da utenti diversi in modo concorrente non interferiscano una con l'altra.Utilizzo da parte di pi utenti

  • Come pu il DBMS superare i limiti della gestione tradizionale? Il database non pu presentare campi uguali con valori diversi in archivi diversi.Eliminazione di:RidondanzaInconsistenzaGli stessi dati non compaiono pi volte in archivi diversi, cio il database costituito da archivi integrati di dati.

  • Come pu il DBMS superare i limiti della gestione tradizionale? Il ritrovamento dei dati facilitato e svolto con grandi velocit, anche nel caso di richieste provenienti contemporaneamente da pi utenti.Facilit duso

  • Come pu il DBMS superare i limiti della gestione tradizionale? Consentire che le operazioni sui dati richieste dagli utenti vengono eseguite fino al loro completamento in modo da assicurare la consistenza dei dati.Integrit dei datiSono previste procedure di controllo per:Sicurezza dei datiImpedire accessi non autorizzati ai dati contenuti nel database e di protezione da guasti accidentali.

  • Come pu il DBMS superare i limiti della gestione tradizionale? Il database viene gestito attraverso comandi per la manipolazionecomandi per linterrogazioni I comandi non agiscono su un singolo record per volta, ma su gruppi di record per volta. Uso di linguaggi per la gestione del database

  • Come operano gli utenti del database ?database locali database remotielaborano in modo locale gli archivi che hanno a disposizione nel proprio sistema accedono in modo remoto a sistemi centrali attraverso le linee di comunicazioneGli utenti della base di dati:

  • Come si realizza lintegrazione degli archivi ?L'integrazione degli archivi realizzata quindi a livello logico, nella visione che di essi hanno gli utenti finali, anche se i dati fisicamente possono risiedere su sistemi distanti.

  • Dov collocato un database ?risiedere su un unico computer;essere distribuiti sulle memorie di massa di computer diversi facenti parte di una rete aziendale.dati accentrati database distribuiti Gli archivi integrati che costituiscono la base di dati aziendale possono:

  • I modelli per il databasei contenuti della base di dati rappresentano gli stati in cui si trova la realt da modellare. gli eventi che avvengono nell'ambiente in cui opera l'azienda rappresentano i cambiamenti che vengono apportati alla base di datiIl database un modello della realt considerata:

  • I modelli per il databasedal computer, dai supporti fisici destinati a contenere le informazioni,dalle caratteristiche del DBMS. Il progetto indipendente:Contrariamente quanto accadeva nellorganizzazione convenzionale degli archivi.

  • I modelli per il databaseDallo schema concettuale entit/associazioniProgetto e realizzazione del databasepassando al modello logico cio alle strutture di dati che consentono di organizzare i dati per consentire le operazioni di manipolazione e di interrogazione.

  • I modelli per il database ogni conto deve essere posseduto da uno o pi clientiogni cliente deve possedere uno ed un solo contoogni conto pu essere variato da uno o pi movimenti e ci possono essere conti non movimentatiogni movimento deve variare uno ed un solo conto

  • I modelli per il databaseNello sviluppo della teoria dei database, dal 1960 in poi, sono emersi tipi diversi di modelli per le basi di dati:gerarchico,reticolare,relazionale,database orientati agli oggetti.

  • Il modello gerarchicoIl modello gerarchico particolarmente adatto per rappresentare situazioni nelle quali possibile fornire all'insieme dei dati una struttura nella quale ci sono entit che stanno in alto ed entit che stanno in basso.

  • Il modello gerarchicoi nodi rappresentano le entitgli archi rappresentano le associazioni. Il modello gerarchico particolarmente adatto a rappresentare le associazioni 1:N (uno a molti) ed ha avuto in passato una larga diffusione.Il modello gerarchico rappresenta le entit secondo uno schema ad albero, nel quale:

  • Il modello gerarchicoNella pratica: l'entit un file,l'istanza un record,gli attributi sono i campi del record.

  • Il modello gerarchico: esempioLa caratteristica del modello gerarchico di ammettere un solo genitore per ogni nodo, crea un problema nel descrivere l'associazione tra i record di Clienti e i record di Conti a causa del record relativo al numero di conto 5100. Questo record ha due genitori: il record dei clienti di nome Gialli e quello di nome Verdi.

  • Il modello gerarchico: esempioPer rispettare l'unicit del genitore del record di Conti si deve costruire l' albero:

  • Il modello gerarchico: esempioNonostante questi limiti, il modello gerarchico ha avuto in passato una larga diffusione, per il grande numero di implementazioni su modelli diversi di computer, e anche perch molte situazioni presentano in modo naturale una struttura di dati di tipo gerarchico.La rigidit del modello gerarchico della struttura di dati creata non riesce ad evitare la ridondanza dei dati.Ridondanza provoca solo l'aumento dello spazio occupato dal database ed una possibile causa di incongruenza dei dati

  • Il modello reticolareQuesto modello unestensione del modello di albero gerarchico, essendo consentite anche associazioni tra entit che stanno in basso, e non solo dall'alto verso il basso come avviene nel modello gerarchico.

  • Il modello reticolareNel modello reticolare:Le entit rappresentano i nodi,Le associazioni rappresentano gli archi di uno schema a grafo orientato.Avere simpatia perEsempio di grafo orientato

  • Il modello reticolareun insieme di record,un insieme di legami.Un database reticolare consiste di due insiemi di dati:I legami sono realizzati memorizzando le coppie di chiavi delle entit associate.I tipi record sono fatti di campi tra i quali ci deve essere anche un campo chiave.

  • Il modello reticolare: esempioNon esiste una gerarchia predefinita tra le entit quindi si evita la ridondanza dei dati perch un record figlio pu avere un numero qualsiasi di padri.

  • Il modello reticolarela gestione delle informazioni in quanto deve essere utilizzata una struttura a grafo;l'implementazione;la costruzione del software applicativo.Nel database costruiti secondo il modello reticolare:risulta pi complessa:risultano pi elevate:prestazioni perch pi vicino alla struttura fisica delle memorie di massa.

  • Il modello relazionaleRappresenta il database come un insieme di tabelle. Viene considerato attualmente il modello pi semplice ed efficace, perch pi vicino al modo consueto di pensare i dati, e si adatta in modo naturale alla classificazione e alla strutturazione dei dati.

  • Il modello relazionale: esempio

  • Confronto..I modelli non relazionali sono fondamentalmente basati sulla programmazione di applicazioni, l'utente deve specificare i percorsi per ritrovare i dati e la velocit nel ritrovare le informazioni dipende dal software di gestione; nel modello relazionale invece i percorsi per le interrogazioni sono a carico del sistema. Le operazioni sui database gerarchici e reticolari sono complesse, agiscono su singoli record e non su gruppi di record.

  • Il modello OODB (Object Oriented DataBase)I database orientati agli oggetti sono stati introdotti nel tentativo di superare alcune caratteristiche dei database relazionali che apparivano inadeguate per la gestione di dati complessi in modo vicino alla realt (testi, grafici, audio, video, documenti e risorse Internet).

  • Il modello OODB (Object Oriented DataBase)tecnologie pi avanzate;prestazioni tipiche della programmazione ad oggetti (C++ etc.). Il modello basato sulla programmazione ad oggetti e consente di utilizzare:concetti quali il metodo e l'ereditariet;oggetti e classi. E in grado di gestire:

  • Il modello OODB (Object Oriented DataBase)usare tipi di dati definiti dall'utente (cosa che non possibile nel database relazionale),poter associare ai dati routine di codice che rappresentano le modalit di accesso ai dati. Il modello objectoriented offre la possibilit di:Viene applicato al database il concetto di oggetto, con i dati e i metodi.

  • Il modello relazionale: concetti fondamentaliIl modello relazionale si basa su alcuni concetti fondamentali tipicamente matematici e assegna grande importanza all'uso rigoroso del linguaggio matematico, con due obiettivi importanti:utilizzare un linguaggio conosciuto a livello universale, quale il linguaggio matematico,eliminare i problemi di ambiguit nella terminologia e nella simbologia.

  • Il modello relazionale: concetti fondamentaliIl modello relazionale si chiama cos perch basato sul concetto matematico di relazione tra insiemi di oggetti:dati n insiemi A1, A2, A3, ..., An, si dice relazione un sottoinsieme dell'insieme di tutte le nuple a1, a2, a3, ..., an che si possono costruire prendendo nell'ordine un elemento a1 dal primo insieme A1, a2 dal secondo insieme A2, e cos via

  • Il modello relazionale: concetti fondamentali

    RnRelazioneTabellaEntitNumero nGradoNumero colonneNumero degli attributiInsieme AiDominioUna colonnaInsieme dei valori di un attributoInsieme {a1, a2, a3, ..., an}n-uplao tupla RigaIstanza dellentit

    Numero nupleCardinalitNumero righeIstanze dellentit

  • Il modello relazionale: concetti fondamentaliA1A2rossogialloverdebiancotuplaGradoCardinalitDominia1a2RelazioneRnNomi dei domini

    TipoColore.MelaRossoKiwiVerdeCocomeroRossoBananaGialloLimoneGiallo

  • Il modello relazionale: concetti fondamentaliLa chiave o chiave primaria l'insieme di uno o pi attributi che identificano in modo univoco una riga della tabella;La chiave candidata l'insieme di uno o pi attributi che possono svolgere la funzione di chiave;Lattributo nonchiave un campo che non fa parte della chiave primaria;

  • Il modello relazionale: concetti fondamentaliLa dipendenza funzionale tra attributi si ha quando il valore di un attributo A1 determina un singolo valore dell'attributo A2 si indica conA1 -> A2la dipendenza transitiva si ha quando un attributo A2 dipende da A1 e l'attributo A3 dipende da A2; allora A3 dipende transitivamente da A1 si indica conA1 ->A2A2 -> A3 allora A1 -> A3 in modo transitivo

  • Il modello relazionale: concetti fondamentaliTutte le righe della tabella contengono lo stesso numero di colonne, corrispondenti agli attributi,Gli attributi rappresentano informazioni elementari (o atomiche), non scomponibili ulteriormente,I valori assunti da un campo appartengono al dominio dei valori possibili per quel campo, e quindi sono dello stesso tipo;

  • Il modello relazionale: concetti fondamentaliNon ci possono essere due righe con gli stessi valori dei campi,Le nuple presenti nella tabella non seguono un ordine prefissato.

  • Il modello relazionale: la chiave primariaSe non ci sono due righe con gli stessi valori dei campi esiste un attributo (combinazione di pi attributi) che identifica univocamente ogni tupla e che assume funzione di chiave primaria della relazione.Per il modello relazionale sussiste la prima regola dintegrit sull'entit (entity integrity), secondo la quale nessuna componente della chiave primaria pu avere valore nullo

  • Il modello relazionale: le regole di derivazione ogni entit diventa una relazione;ogni attributo di un'entit diventa un attributo della relazione, cio il nome di una colonna della tabella;ogni attributo della relazione eredita le caratteristiche dell'attributo dell'entit da cui deriva;lidentificatore univoco di un'entit diventa la chiave primaria della relazione derivata;Le tabelle vengono ricavate dal modello concettuale E/R applicando semplici regole di derivazione del modello logico:

  • Il modello relazionale: le regole di derivazione l'associazione uno a uno diventa un'unica relazione che contiene gli attributi della prima e della seconda entit;lidentificatore univoco dell'entit di partenza nell'associazione uno a molti diventa chiave esterna (foreign key) dell'entit di arrivo associata, cio i suoi attributi identificatori univoci diventano attributi della seconda relazione;l'associazione con grado molti a molti diventa una nuova relazione (in aggiunta alle relazioni derivate dalle entit) composta dagli identificatori univoci delle due entit e dagli eventuali attributi dell'associazione.

  • Il modello relazionale: le operazioni relazionali ottenere le informazioni desiderate estraendo da una tabella una sottotabella, combinare tra loro due o pi tabelle generando nuove relazioni. Gli operatori relazionali agiscono su una relazione per ottenere una nuova relazione.Le operazioni relazionali consentono di effettuare le interrogazioni alla base di dati per:

  • Il modello relazionale: la selezione Grado La relazione ha lo stesso grado di quella originaria.Cardinalit. La cardinalit pu essere minore o uguale alla tabella di partenza, ma ragionevole pensare che sia solitamente minore.Genera una nuova relazione costituita solo dalle nuple della relazione di partenza che soddisfano a una determinata condizione.

  • Il modello relazionale: esempioSelezione: Citt = RomaR4: Grado = 4 - Cardinalit = 6R4: Grado = 4 - Cardinalit = 2

    CognomeNomeIndirizzoCittVerdiAndreaVia Milano, 99RomaRossiMarioVia Verdi, 10RomaRossiMarioVia Verdi, 10FirenzeVerdiAndreaVia Rossi, 25PalermoBianchi MariaVia Rossi, 25Cagliari....

  • Il modello relazionale: la proiezione Grado. Il grado minore o uguale al grado della relazione di partenza.Cardinalit. La cardinalit di norma uguale a quella di partenza, minore quando sono presenti righe uguali che vengono ridotte a una. Genera una nuova relazione estraendo dalla tabella iniziale due o pi colonne corrispondenti agli attributi prefissati.

  • Il modello relazionale: esempioProiezione: Cognome, NomeR4:Grado = 4Cardinalit = 6R4: Grado = 2 Cardinalit = 3Delle righe uguali ne viene conservata una sola perch il modello relazionale non consente righe uguali tra loro.

    CognomeNomeIndirizzoCittVerdiAndreaVia Milano, 99RomaRossiMarioVia Verdi, 10RomaRossiMarioVia Verdi, 10FirenzeVerdiAndreaVia Rossi, 25PalermoBianchi MariaVia Rossi, 25Cagliari....

  • Il modello relazionale: natural join e equijoinGrado. Se i gradi sono rispettivamente N1 e N2, il grado della relazione generata uguale a N1+N21, perch l'attributo comune compare una sola volta (natural join). Cardinalit. Non prevedibile a priori.Serve a combinare due relazioni aventi uno o pi attributi in comune, generando una nuova relazione che contiene le righe della prima e della seconda tabella, che possono essere combinate secondo i valori uguali (equijoin) dell'attributo comune.

  • Il modello relazionale: outer joinLouter join pu avere varie forme:join esterno Congiunzione che restituisce le righe dell'una e dell'altra tabella anche se non sono presenti valori uguali per l'attributo comune. Di tutte queste vengono combinate solo le righe per le quali il valore dell'attributo comune nella prima tabella trova un valore uguale nella colonna dell'attributo comune nella seconda tabella.

  • Il modello relazionale: esempioleft join Elenca comunque tutte le righe della prima tabella congiungendo tra le righe della seconda solo quelle per le quali si trovano valori corrispondenti per l'attributo comune. right join Elenca tutte le righe della seconda tabella e di queste congiunge con le righe della prima tabella solo quelle per le quali si possono trovare valori corrispondenti per l'attributo comune.

  • Il modello relazionale: self-joinIl selfjoin una congiunzione con la quale vengono combinate righe di una tabella con le righe della stessa tabella quando sono presenti valori corrispondenti per attributi, cio due attributi con lo stesso dominio.

  • Il modello relazionale: operazioni sugli insiemil'unione consente di ottenere una nuova tabella, che contiene le righe della prima e della seconda tabella con riduzione a una di quelle ripetute;Se le tabelle su cui si opera hanno una struttura tabellare omogenea (colonne con lo stesso numero di attributi, dello stesso tipo e nello stesso ordine):

  • Il modello relazionale: operazioni sugli insiemil'intersezione genera, a partire da due tabelle omogenee, una nuova tabella che contiene soltanto le righe comuni;la differenza genera una nuova tabella che contiene soltanto le righe della prima tabella che non sono contenute nella seconda tabella.

  • Il modello relazionale: normalizzazioneNella definizione della struttura di una relazione occorre evitare la ripetizione e la ridondanza dei dati.Per evitare queste anomalie, a partire da una data relazione, vengono create altre relazioni, secondo un processo detto normalizzazione. La normalizzazione di una relazione avviene a livelli crescenti a cui corrispondono diverse forme normali.

  • Il modello relazionale: 1FNsemplici ovvero non strutturati,non multivalore, Una relazione in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale ed in particolare gli attributi devono essere informazioni:Attributo strutturato: un possibile valore una tupla di valori.Attributo multivalore: un valore pu essere costituito da un insieme di valori.

  • Il modello relazionale: esempio 1FNDipendenti(Matricola, Nome, Cognome, Via, Citt)Attributi strutturatiAttributo multivaloreFamiliariACarico(MatricolaDip, CodiceFam, NomeFam, Et)E possibile ritrovare le informazioni originarie attraverso un'operazione di congiunzione tra la relazioni sull'attributo comune. Dipendenti(Matricola, Nominativo, Indirizzo, FamiliariACarico)

  • Il modello relazionale: 2FNin prima forma normale,tutti i suoi attributi nonchiave dipendono dall'intera chiave, cio non possiede attributi che dipendono soltanto da una parte della chiave. Per le relazioni con chiavi composte la 2FN elimina la dipendenza parziale degli attributi dalla chiave. Una relazione in seconda forma normale (2FN) quando :

  • Il modello relazionale: esempio 2FNMerci (Codice, Magazzino, Quantit, LocalitMagazzino) La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria. Merci (Codice, Magazzino, Quantit) Depositi (Magazzino, LocalitMagazzino)

  • Il modello relazionale: esempio 2FNSe la relazione R1(A1,A2,A3,A4,A5) con: (A1,A2) A3 (A1,A2) A4A2 A5 non in 2FN.Pu essere trasformata nelle relazioni in 2NF:R21(A1,A2,A3, A4)R22(A2,A5) Non ci deve essere perdita complessiva delle informazioni. I dati possono essere ritrovati attraverso operazioni di congiunzione

  • Il modello relazionale: 3FNin seconda forma normaletutti gli attributi nonchiave dipendono direttamente dalla chiave, cio non possiede attributi nonchiave che dipendono da altri attributi nonchiave. Una relazione in terza forma normale (3FN) quando :La 3FN elimina la dipendenza transitiva degli attributi dalla chiave.

  • Il modello relazionale: esempio 3FNLa normalizzazione in 3FN si ottiene scomponendo la relazione di partenza in due nuove relazioni, nelle quali tutti gli attributi dipendono direttamente dalla chiave, togliendo gli attributi nonchiave che dipendono da un altro attributo nonchiave.Studente (Nome, Scuola) Istituti (Scuola, TelefonoScuola) Studente (Nome,Scuola, TelefonoScuola)

  • Il modello relazionale: esempio 3FNSe la relazione R2(A1,A2,A3,A4) con: A1 A2A1 A3 A2 A4 non in 3FN.Pu essere trasformata nelle relazioni in 3NF:R31(A1,A2,A3)R32(A2,A4) Non ci deve essere perdita complessiva delle informazioni. I dati possono essere ritrovati attraverso operazioni di congiunzione

  • Osservazioni sulla normalizzazioneNella progettazione del modello relazionale non sempre conveniente arrivare a gradi elevati di normalizzazione, anche perch nella realt raro trovare situazioni che vengono tradotte con tabelle normalizzate con ordine superiore alla terza forma normale.

  • Lintegrit referenzialeintegrit sullentit (entity integrity): che non consente valori nulli per la chiave;integrit referenziale (referential integrity): per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata. Questa regola garantisce l'integrit dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna. Il modello relazionale possiede due regola di integrit:

  • Lintegrit referenziale: esempioIn un database relazionale che contiene la tabella: Clienti (Codice, RagioneSociale, Indirizzo)Ordini (NumOrdine, Data, CodiceCliente)si applica lintegrit referenziale per garantire che per ogni valore presente nella tabella Ordini per la chiave esterna CodiceCliente abbia un corrispondente valore di Codice in una delle righe della tabella Clienti.

  • Osservazioni sul modello relazionaleIl modello relazionale ha portato poi benefici nel lavoro di progettazione del database.Il progettista del database pu costruire il modello dei dati considerando con attenzione le entit, le associazioni e le dipendenze tra gli attributi nel modello della realt.

  • La gestione del databaseIl DBMS (Database Management System) il software che consente di costruire e gestire una base di dati, realizzandola nella pratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un modello logico dei dati.

  • La gestione del databaseDBMSRegole di derivazione del modello logico

  • La gestione del database: funzioni del DBMSDefinizione dei dati e delle strutture dati derivate dallo schema logico (le tabelle del modello relazionale), con produzione della documentazione sul modello.Implementazione del modello logico sul sistema di elaborazione

  • La gestione del database: funzioni del DBMSDefinizione dei sottoschemi (viste), cio visioni del database legate alle particolari applicazioni dei singoli utenti e che consentono agli utenti di accedere ai dati che servono, ottenute attraverso proiezioni o congiunzioni; la vista si chiama anche tabella virtuale, rispetto alle tabelle del database, dette anche tabelle primarie. Le viste sono finestre dinamiche sulle tabelle del database, in quanto ogni modifica ai dati sulla tabella primaria si riflette sulla vista e viceversa.Implementazione del modello logico sul sistema di elaborazione

  • La gestione del database: funzioni del DBMSOrganizzazione fisica dei dati sui supporti di memorizzazione, utilizzando le tecniche che ottimizzano l'occupazione della memoria di massa e i tempi di accesso alle registrazioni.Implementazione del modello logico sul sistema di elaborazione

  • La gestione del database: funzioni del DBMSInserimento dei dati nel database e trattamento dei dati gi registrati con operazioni di modifica o cancellazione;Manipolazione e interrogazione sulla base di dati

  • La gestione del database: funzioni del DBMSInterfaccia tra i programmi degli utenti (scritti con i tradizionali linguaggi di programmazione) e la base di dati, utilizzando le funzionalit del DBMS per migliorare l'organizzazione dei dati e le prestazioni dei programmi nelle operazioni di ritrovamento dei dati;Manipolazione e interrogazione sulla base di dati

  • La gestione del database: funzioni del DBMSAccesso ai dati contenuti nel database per le interrogazioni, attraverso interfacce o comandi semplici che facilitano soprattutto l'utente finale non specialista.Manipolazione e interrogazione sulla base di dati

  • La gestione del database: funzioni del DBMSintegrit sulle entit;integrit referenziale;integrit definite dall'utente. Vincoli specifici per un particolare database, come conseguenza di politiche commerciali dell'azienda oppure di norme legislative e fiscali.Controllo dell'integrit dei dati

  • La gestione del database: funzioni del DBMSgaranzia di sicurezza dei dati contro i danni causati da malfunzionamenti di componenti hardware o software o da interventi dolosi;protezione dei dati da eventuali danneggiamenti per garantire l'integrit dei dati, offrendo anche la possibilit di attivare procedure di recovery in caso di perdita dei dati;Sicurezza e protezione

  • La gestione del database: funzioni del DBMSautorizzazione degli utenti che accedono alla base di dati e protezione dei dati dagli accessi non autorizzati;controllo degli accessi in modo concorrente al database da parte di pi utenti.Sicurezza e protezione

  • La gestione del database:il dizionarioInoltre il DBMS si occupa della gestione del dizionario (o catalogo del database), contenente le informazioni su: nomi delle tabelle e delle colonne, associazioni, viste, vincoli di integrit, utenti e proprietari, autorizzazioni degli accessi.

  • La gestione del database:il dizionarioIl dizionario contiene i metadati, cio i dati che descrivono i dati organizzati nel database. Anche le informazioni del dizionario sono organizzate in modo relazionale, cio come valori in tabelle. Gli utenti autorizzati possono quindi accedere alle informazioni del dizionario con le stesse modalit con le quali operano per ritrovare i dati nel database.

  • I linguaggi per le basi di datiLe prestazioni del DBMS vengono attivate dall'utente usando appositi comandi, che costituiscono a tutti gli effetti un linguaggio, attraverso il quale l'utente pu comunicare con il sistema di elaborazione che gestisce il database.

  • I linguaggi per le basi di daticonsente e facilita le operazioni di definizione del database (DDL), di manipolazione dei dati (DMCL, DML, DCL), di interrogazione da parte degli utenti (Query Language).Unificando in un unico linguaggio le funzioni dei numerosi linguaggi per le basi di dati si parla di linguaggio per basi di dati, intendendo un insieme completo di comandi che:

  • I linguaggi per le basi di datiI linguaggi per database relazionali si basano sulla visione tabellare dei dati che facilita l'utente in quanto non contiene nessuna informazione sul percorso per l'accesso fisico ai dati.DatabaseLa formulazione delle richieste di dati viene quindi semplificata, perch libera l'utente dagli aspetti riguardanti la navigazione all'interno della base di dati.

  • I linguaggi per le basi di datiI comandi che il DBMS mette a disposizione possono essere classificati nelle seguenti categorie di linguaggi:DDL (Data Definition Language)DMCL (Device Media Control Language)DML (Data Manipulation Language)DCL (Data Control Language)Query LanguageRelational DBMS

  • I linguaggi per le basi di dati: DDLIl linguaggio per la descrizione dei dati, delle tabelle e delle viste, detto DDL (Data Definition Language), consente all'utente, facendo riferimento al proprio schema logico, ordina al DBMS la creazione della struttura fisica del database e la definizione dei sottoschemi relativi alle applicazioni contenute nei programmi dei singoli utenti.

  • I linguaggi per le basi di dati: DMCLIl linguaggio di controllo dei supporti di memorizzazione dei dati, detto DMCL (Device Media Control Language), permette di riferire la struttura fisica del database alle specifiche unit di memoria di massa utilizzate dal sistema di elaborazione.

  • I linguaggi per le basi di dati: DMLIl linguaggio per il trattamento (o manipolazione) dei dati contenuti nel database, detto DML (Data Manipulation Language), consente le usuali operazioni di accesso per inserimenti, modifiche o cancellazioni

  • I linguaggi per le basi di dati: DCLIl linguaggio per fissare i vincoli di integrit, per stabilire le autorizzazioni agli accessi e i tipi di permessi consentiti agli utenti (inserimento di nuovi dati, sola lettura, modifica dei dati) detto DCL (Data Control Language).

  • I linguaggi per le basi di dati: QLIl linguaggio per le interrogazioni alla base di dati, detto Query Language, consente il ritrovamento dei dati che interessano, sulla base dei criteri di ricerca richiesti dall'utente. I moderni DBMS mettono a disposizione dellutente interfacce, a menu o grafiche, che facilitano l'interazione.

  • I linguaggi per le basi di dati: RDBMSLo sviluppo e il raffinamento delle tecniche di gestione delle basi di dati hanno dato vita a linguaggi formati da comandi specifici, per consentire agli utenti un facile uso delle prestazioni del DBMS per basi di dati relazionali (detti RDBMS, cio Relational DBMS).

  • I linguaggi per le basi di dati: RDBMSdall'interno (Embedded SQL) di un programma scritto con i tradizionali linguaggi di programmazione (Cobol, Pascal, C), detto host language;tramite linguaggi orientati alla gestione delle basi di dati con caratteristiche di linguaggi a s stanti. Questi comandi possono essere richiamati:

  • Gli utentiLaccresciuta differenza fra struttura concettuale e struttura fisica aumenta la distinzione tra le diverse figure degli utenti del computer:DBA (Database Administrator)ProgrammatoreUtente finale

  • Gli utenti: DBA (Database Administrator)E il responsabile della gestione del database e utilizza, per svolgere le sue funzioni, le prestazioni e i linguaggi del DBMS.

  • Gli utenti: DBA (Database Administrator)sistemista, analista, responsabile dello sviluppo software, programmatoreCollaboracon le altre figure: progettazione del database, costruzione delle applicazioni, traduzione dello schema del database nel modello fisico da creare su memoria di massa, manutenzione dei dati nel tempo Nelle diverse fasi:

  • Gli utenti: DBA (Database Administrator)implementazione del modello logico del database nel sistema di elaborazione sui supporti fisici delle memorie di massa;gestione e trattamento dei dati (controllo di inserimenti, modifiche, cancellazioni);autorizzazione degli accessi;definizione delle viste per accessi parziali di utenti alla base di dati;Il DBA ha i seguenti compiti:

  • Gli utenti: DBA (Database Administrator)controllo dei programmi applicativi che richiedono l'uso del database;manutenzione del database nel tempo, in termini di efficienza e di ottimizzazione delle risorse;controllo sugli interventi di recupero, nel caso di cattivi funzionamenti, e sulle copie di salvataggio periodiche;controllo della disponibilit degli spazi su memoria di massa. ed inoltre:

  • Gli utenti: programmatoriun linguaggio DML (Data Manipulation Language), comandi che sono un'estensione dei tradizionali linguaggi di programmazione, un linguaggio specifico per basi di dati. Con i loro programmi operano sui dati organizzati in un database, utilizzando:Agiscono sotto il controllo del gruppo di progetto e di produzione del software applicativo a cui partecipa anche il DBA.

  • Gli utenti: utenti finalii comandi di un linguaggio di interrogazione (Query Language), se sono utenti esperti,interfacce software che presentano sul video il menu o le icone, se, al contrario, sono utenti poco espertiUsano le informazioni contenute nel database. Accedono alla base di dati attraverso:

  • Fine

  • Dizionario ..

  • Grafogli elementi del grafo sono detti nodi, i segmenti che li uniscono sono detti archi.Un grafo la rappresentazione grafica di una relazione dove:Se la relazione fra gli elementi non biunivoca il grafo si dice orientato.Essere amico di Avere simpatia per