CAMBIA STILE

CAMBIA TEXTURE

CAMBIA COLORE

INFORMATICA



I DATABASE


L' informatica ha favorito molto alla distribuzione di informazioni a lunga distanza. La raccolta e la condivisione di dati ha reso necessario lo sviluppo di applicazioni per la gestione dei dati. All'interno di un computer le informazioni possono essere raccolte in insiemi di dati chiamati Archivi. L' insieme di archivi costituiscono in informatica i Database.
Un database deve essere:
- sicuro: ossia deve essere progettato in modo che non venga danneggiato.
- integro: ossia deve essere garantito che gli utenti autorizzati non provochino un                  danneggiamento dei dati.
- consistente: ossia i dati devono essere significativi ed effettivamente utilizzabili                            nelle applicazioni per cui il database è stato progettato.
- condivisibile: cioè le applicazioni e gli utenti diversi devono poter accedere ai dati                            comuni.
- persistente: cioè deve avere un tempo di vita che non è limitato.
- scalabile: cioè deve mantenere le proprie performance all’aumentare della quantità                      dei dati.

Il software per la gestione di database è denominato DBMS (Database Management System). Un DBMS deve essere:
- efficiente: cioè capace di svolgere le operazioni richieste utilizzando un insieme di risorse accettabili dagli utenti.
- efficace: cioè deve essere in grado di rendere produttive e semplici le attività richieste dagli utenti.

                                                  

Linguaggi del DBMS

Il DBMS mette a disposizioni diversi linguaggi per compiere delle operazioni sui database:
- DDL (Data Definition Language): permette di creare, modificare ed eliminare database e tabelle;
- DML (Data Manipulation Language): consente di inserire, modificare e cancellare dati e di interrogare il database.
- DCL (Data Control Language): consente di impostare i diritti di accesso ai dati degli utenti (GRANT per concedere i diritti - REVOKE per revocarli). I possibili privilegi concedibili sono:
   - ALL: consente l'accesso globale alla tabella specificata;
   - SELECT: consente la lettura a tutti i campi della tabella specificata;
   - INSERT: consente l'inserimento di dati;
   - UPDATE: consente la modifica dei dati;
   - DELETE: consente la cancellazione dei dati;
  - REFERENCES: consente il riferimento a tutti i campi della tabella nei vincoli di integrità;
  - ALL PRIVILEGES: Rappresenta simultaneamente tutti i privilegi possibili riferiti a un oggetto.

CREATE DATABASE "NomeDB";
USE "NomeDB";
DROP DATABASE "NomeDB";
CREATE TABLE "NomeTAB" ("ATTRIBUTO" "TIPO" "VINCOLO -- NOT NULL/DEFAULT")
ALTER TABLE "NomeTAB"
ADD "NomeAttributo" "Tipo"
[BEFORE "NomeAttributo"];

oppure
ALTER TABLE "NomeTAB"
DROP COLUMN "NomeAttributoDACancellare";

oppure
ALTER TABLE "NomeTAB"
MODIFY ("NomeAttributo","TipoNuovoAttributo");
DROP TABLE "NomeTAB";
INSERT INTO "NomeTAB" VALUES ("Val1","Val2","ValN");
UPDATE "NomeTAB" SET "Attributo"="Espressione" WHERE "Condizione";
DELETE FROM "NomeTAB" WHERE "Condizione";
GRANT/REVOKE "ElencoPrivilegi" ON "NomeDB"."NomeTAB" TO "Utente";
GRANT/REVOKE "ElencoPrivilegi" ON "NomeDB"."NomeTAB" TO "Utente" IDENTIFIED BY "Password";
GRANT/REVOKE "ElencoPrivilegi" ON "NomeDB"."NomeTAB" TO "Utente" WITH GRANT OPTION;


Implementazione del Database

Per poter implementare un database, bisogna seguire 3 livelli di progettazione:
- Progettazione Concettuale: in questa fase viene stilato il modello ER (Entity-    Relationship), il cui scopo è quello di costruire una rappresentazione completa della    realtà di interesse;
- Progettazione logica: in questa fase, invece, viene trasformato il modello       concettuale (modello ER) in uno schema logico. La differenza tra i due modelli   consiste nel fatto che il modello ER prescinde dalla struttura dati, mentre nel     modello logico vengono specificate anche le strutture dei dati;
-  Progettazione fisica: in quest'ultima fase viene implementato, su memoria di massa,    il modello logico.



Il modello concettuale ER

Il modello ER è composto da vari oggetti:
- Entità: sono ciò che esiste all'interno della realtà che stiamo analizzando;
- Attributi: sono le proprietà di un'entità;
- Le associazioni: sono i legami logici tra due entità. Il numero dei entità che partecipano all'associazione, si definisce grado.
Un'associazione è caratterizzata da due proprietà strutturali: la partecipazione (facoltativa o obbligatoria) e la cardinalità (1:1, 1:N, N:N):
. 1:1 - si ha quest'associazione quando ad un attributo della prima entità, ne corrisponde un ed uno solo della seconda entità e non vale il viceversa;
. 1:N - si ha quest'associazione quando ad un attributo della prima entità, ne corrispondono uno o più di uno della seconda entità e non vale il viceversa;
. N:N - si ha quest'associazione quando ad un attributo della prima entità, ne corrispondono uno o più di uno della seconda entità e viceversa.
Un tipo particolare di associazione è quella ISA (dall'inglese is a, cioè "è un"). Tale associazione è composta da più entità figlie collegate con l'unica entità padre, dalla quale ereditano gli attributi (che sono comuni a tutte le entità figlie).


Derivazione delle relazioni dal modello ER

Il modello relazionale mette a disposizione del progettista solo le relazioni, per modellare i vari aspetti della realtà. Partendo dal diagramma ER, il progettista si ricava lo schema relazionale rappresentando le entità, gli attributi e le gerarchie. Ad esempio se abbiamo un'entità "Automobile", i cui attributi sono la targa (PK - Chiave Primaria), il modello e la marca, nel modello logico diventerà:
Automobili(Targa, Marca, Modello)

La rappresentazione delle associazioni varia a seconda della cardinalità:
- se la cardinalità è del tipo 1:1, allora lo schema logico sarà costituito o da un'unica entità avente tanto gli attributi della prima entità, quanto della seconda, oppure sarà formato dalle due entità che conterranno anche la chiave primaria dell'altra entità come chiave esterna, oltre ai propri attributi;
- se la cardinalità è del tipo 1:N, allora, nello schema logico, l'entità i cui attributi hanno più corrispondenze con gli attributi dell'altra entità (N), conterrà la sua chiave primaria come chiave esterna;
- se la cardinalità è del tipo N:N, allora nello schema logico verrà rappresentata anche l'associazione come un'entità che contiene, oltre agli eventuali propri attributi, anche le chiavi primarie delle due entità, che diventano le chiavi primarie dell'associazione.


La Normalizzazione

Quando si costruisce un diagramma ER, bisogna considerare le regole di normalizzazione, cioè quelle proprietà che ottimizzano il modello concettuale e fanno si che non si verifichino le anomalie in inserimento,in cancellazione o in aggiornamento. Le regole di normalizzazione sono 6, ma un buon modello ER deve rispettare almeno le prime 3FN ed eventualmente anche quella di Boyce-Codd:
- una relazione si dice in 1FN se ciascuna entità contiene almeno una chiave primaria e gli attributi non devono essere né composti, né multipli.
- la 2FN si applica ad esempio nelle associazioni tra due entità, e gli attributi dell'associazione devono dipendere da entrambe le chiavi primarie.
- una relazione si dice in 3FN se ogni attributo dipende direttamente dalla chiave primaria e quindi non si verifica una dipendenza transitiva. (un attributo non chiave non deve dipendere da un altro attributo che non è chiave primaria).
- una relazione si dice in BCNF se la chiave primaria della relazione è formata da un unico attributo ed è in 3FN.