DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi...

33
DATABASE DATABASE

Transcript of DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi...

Page 1: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

DATABASEDATABASE

Page 2: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Sistemi di gestione di basi di dati (DBMS)

I database (basi di dati) sono degli insiemi organizzati di dati.

Un sistema di gestione delle basi di dati (DBMS - Data Base Management System ) è un gestore di basi di dati che ha lo scopo di effettuare sul database particolari operazioni che gli vengono richieste, ad esempio:

- definire gli archivi specificandone i dati e le regole per il loro utilizzo

- inserire, modificare o cancellare dati

- effettuare ricerche di diversa natura per reperire rapidamente i dati che interessano, visualizzare, stampare i dati, ecc.

e per attuare questa gestione utilizza un software specifico.

Page 3: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Modelli e caratteristiche dei database

I database possono essere strutturati in diversi modi:• Modello gerarchico. Si basa su una struttura ad albero

• Modello reticolare. Elementi caratterizzanti sono i grafi.

• Modello Object Oriented. Fondato sulle proprietà degli oggetti.

• Modello Relazionale. Si organizzano i dati in tabelle in relazione tra di loro.

• Inconsistenza e ridondanza dei dati

• Riservatezza

• Integrità (assicurata dai vincoli di consistenza sui campi)

• Concorrenza

Indipendentemente dal modello utilizzato un DBMS deve gestire:

Page 4: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

 Noi utilizzeremo ed analizzeremo il modello relazionale:

Modello relazionale di database e sistemi RDBMS

un modello relazionale di un database è un particolare modello in cui tutti i dati che compongono il database e le relazioni che intercorrono fra di essi sono rappresentati attraverso delle tabelle.

Il sistema di gestione di un database relazionale è chiamato RDBMS (Relational Data Base Management System).

Page 5: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

tramite un RDBMS si può:

creare nuove basi di dati specificandone la struttura logica,

memorizzare una grossa quantità di dati,

interrogare e modificare i dati,

controllare che l’accesso contemporaneo di più utenti agli stessi dati non li danneggino.

Page 6: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

TabelleEsempio: tabella CALCIATORI

NomeCodGioc

300130023003……

Buffon GianluigiTotti FrancescoTrezeguet David

Ruolo

PortiereAttaccanteAttaccante

Nazione

ItaliaItaliaFrancia

…… …… ……

Una tabella è formata da righe (record, tupla) e colonne (campi, attributi)

-   Non è significativo l’ordine delle righe in una tabella

-   Non devono esistere due righe uguali

Page 7: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

ChiaviSono dei campi speciali all’interno di una tabella. Una chiave è costituita da un sottoinsieme di attributi che garantisce unicità (da due record differenti non si può costruire la medesima chiave) e minimalità (non si possono sottrarre campi alla chiave mantenendo l’identificazione del record).

Chiave primaria (primary key): campo che identifica in modo univoco ogni record all’interno della tabella.

Chiave esterna (foreign key): campo di una tabella che rappresenta una copia della chiave primaria di un’altra tabella (permette di stabilire relazioni fra tabelle).

Es.: la chiave primaria della tabella “calciatori” è CodGioc.

Page 8: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

• Relazione uno a uno

• Relazione uno a molti

• Relazione molti a molti

Relazioni

Indicano le associazioni tra i record di una tabella con quelli di un’altra tabella

Page 9: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Relazione uno a uno (“di tipo 1:1”)

Si ha una relazione uno a uno quando un unico record della prima tabella è legato ad un unico record della seconda tabella e viceversa.

  

CodProf01020304

Tabella professori

TosoniPesenti

BorghesanDe Nadai

Nome CodCorso01020304

Tabella corso

A-GaGb-ScSd-Z

Portogruaro

Lettere

Esempio:

chiave primaria tabella professori

chiave primaria tabella corso

05 Luccio 05 Treviso

Page 10: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

CodProf01020304

Tabella professori

TosoniNome

Per collegare le due tabelle

CodCorso Si aggiunge come chiave esterna alla tabella professori, l’attributo che costituisce la chiave primaria della tabella corso

04010305

chiave primaria tabella professori

chiave esterna tabella professori

05

PesentiBorghesanDe Nadai

Luccio 02

Page 11: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

CodCorso01020304

Tabella corso

A-Ga Gb-Sc

Sd-ZPortogruaro

Lettere

II) Si aggiunge come chiave esterna alla tabella corso, l’attributo che costituisce la chiave primaria della tabella professori

CodProf02050301

La tabella la cui chiave primaria viene inserita nell’altra tabella è detta tabella principaletabella principale, mentre l’altra tabella è detta secondaria.secondaria.

oppurechiave primaria tabella corso

chiave esterna tabella corso

Treviso05 04

Page 12: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Relazione uno a molti (“di tipo 1:N”)

Si ha una relazione uno a molti tra due tabelle quando ciascun record della prima tabella può essere associato a molti record della seconda tabella, mentre ciascun record della seconda tabella può essere associato ad un solo record della prima tabella.

Page 13: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Ad ogni squadra possono corrispondere più giocatori ma un calciatore gioca in una sola squadra: si ha una relazione “uno a molti”

SquadraCodSq.

01020304

JuventusMilanInterRoma

C.T. NomeCodGioc

3001300230033004

Buffon Gianluigi

Trezeguet David

Maldini Paolo

Ruolo

Portiere

Attaccante

Attaccante

Difensore

Ranieri

Ancelotti

Mourinho

Spalletti

Tabella SQUADRE Tabella CALCIATORI

Totti Francesco

Page 14: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

NomeCodGioc300130023003

Buffon Gianluigi

Totti FrancescoTrezeguet David

RuoloPortiereAttaccanteAttaccante

NazioneItaliaItaliaFrancia

Maldini Paolo Difensore Italia

Tabella CALCIATORI

SquadraCodSq

01020304

MilanInterRoma

C.T.

Tabella SQUADRE

CodSq01040102

Chiave esterna tabella calciatori

Chiave primaria tabella calciatori

Chiave primaria tabella squadre

3004

Juventus Ranieri

Ancelotti

Mourinho

Spalletti

Page 15: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Nella tabella CALCIATORI l’attributo CodSq corrisponde alla chiave primaria della tabella SQUADRA esprimendo in questo modo la relazione che sussiste tra CALCIATORI e SQUADRA. CodSq è quindi una chiave esterna per la tabella CALCIATORI. Qualora si osservi che due tabelle possono avere una relazione, normalmente si stabilisce la relazione inserendo in una delle due tabelle una copia della chiave primaria dell’altra, dove diviene chiave esterna.

Page 16: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Relazione molti a molti (“di tipo N:N”)

  

Una relazione molti a molti si realizza quando un singolo record della prima tabella è legato a molti record della seconda tabella e viceversa.Nell’esempio precedente si avrebbe una relazione “molti a molti” nell’ipotesi che si vogliano determinare le squadre in cui un giocatore ha militato in carriera: ad ogni squadra possono corrispondere più giocatori e un calciatore può aver giocato in più squadre.

In questo caso, per realizzare una relazione fra le due tabelle occorre costruire una terza tabella (detta tabella di collegamento), i cui attributi sono quelli che compongono le chiavi primarie delle due tabelle.

I singoli elementi di questa terza tabella CALCIATORI-SQUADRA sono costituiti da tutte le possibili coppie di elementi in relazione fra di loro.

Page 17: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

NomeCodGioc

3004

3005

3006……

Maldini Paolo

Cannavaro FabioZambrotta Gianluca

Ruolo

Difensore

Difensore

Difensore

Nazione

Italia

Italia

Italia …… …… ……

Tabella CALCIATORI

SquadraCodSq01

02

03……

Milan

Inter

C.T.

…… ……

Tabella

SQUADRA

Tabella

CALCIATORI-SQUADRA

CodSqCodGioc

300530053006

102

30063006

02

101020105

Juventus Ranieri

Ancelotti

Mourinho

3006

25

101

…… …… ……Bari

Real Madrid Ramos

Conte

300401

102 Barçelona Guardiola

Page 18: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

SQL (Structured Query Language)

Una Query è una domanda posta al database per estrarre dei dati. Il linguaggio più comunemente usato per formulare query è SQL.

SQL (linguaggio strutturato per le interrogazioni) è il più comune linguaggio standardizzato per la gestione di basi di dati relazionali.

Page 19: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

In SQL esistono diverse categorie di comandi

I)

Comandi DDLDDL (Data Definition Language):

comandi che permettono di creare, modificare ed eliminare oggetti e modificare la struttura fisica del database

ALTERALTER modifica strutture/parametri

CREATECREATE crea database/tabelle

DROPDROP elimina database/tabelle

…………....

Page 20: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

II)

Comandi DMLDML (Data Manipulation Language)

comandi che permettono di manipolare i dati nel database

SELECTSELECT seleziona dati da una o più tabelle

INSERTINSERT inserisce nuovi dati da una tabella

UPDATEUPDATE aggiorna (modifica) i dati da una tabella

DELETEDELETE elimina i dati da una tabella

………………

Page 21: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

III)

Comandi DCLDCL (Data Control Language)

comandi che consentono il controllo della sicurezza e permettono di gestire gli accessi al database

GRANTGRANT fornisce privilegi agli utenti

REVOKEREVOKE toglie privilegi agli utenti

………………

Page 22: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Aprire o creare un database con Access

• Lanciare Access• Scegliere il file dall’opzione Apri file esistente oppure Database di Access vuoto dall’opzione Crea nuovo database

• Se si sta creando un nuovo database, nominare il file e salvarlo prima di iniziare a lavorarci.

Page 23: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

La visualizzazione del database

Barra degli strumenti Database

Finestra Access

Finestra Database

Tipo di Oggetti

Oggetti esistenti

Page 24: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Creare una tabella (1)

1. Creare una tabella mediante l’immissione dei dati con le stesse modalità previste per un foglio di lavoro. I nomi dei campi verranno successivamente inseriti.

Oltre alla possibilità di importare una tabella da un altro database o da un foglio elettronico, si possono utilizzare 3 opzioni:

L’indicatore segnala il record in scrittura

Page 25: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Aprire una tabella, modificarla, inserire nuovi dati

Mediante i tasti e della Finestra Database si apre una tabella nelle modalità Foglio dati e Struttura. Nel primo caso è possibile spostarsi tra i record tramite il mouse, la tastiera o i tasti posti nella parte bassa della finestra ( ). Per inserire o modificare un record di una tabella è sufficiente cliccare all'interno di un campo e digitare dalla tastiera. Le modifiche vengono automaticamente salvate appena lasciato il campo. Se in una tabella compare un campo che è una chiave esterna bisognerebbe inserire il valore corrispondente. Per far ciò si può creare un collegamento fra tabelle, per poi scegliere da un elenco.

In modalità Struttura non si modificano i dati, quanto la loro natura. È possibile indicare il nome e la tipologia del campo, oltre ad indicare una serie di caratteristiche aggiuntive.

Page 26: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Creare una tabella (2) 2. Creare una tabella mediante una creazione guidata seguendo le

indicazioni forniteci da Access.3. Creare una tabella in visualizzazione struttura definendone I

campi e le proprietà degli stessi. I record saranno inseriti in un secondo momento.

Qui inseriremo i nomi dei

campi

Tipo di dati: Testo, numerico, contatore, Sì/No, Data/Ora, ecc.

Qui leggeremo le caratteristiche del

campo

Qui è possibile inserire una sintetica descrizione del campo

Page 27: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

database corso di studitabella corsi

IdCorsoIdCorso IdDocenteIdDocente NomeNome

tabella docentiIdDocenteIdDocente CognomeCognome NomeNome

MatricolaMatricola CognomeCognome NomeNome

tabella studenti

tabella esami

IdRisultatoIdRisultato Matricola Matricola StudenteStudente

IdCorsoIdCorso DataData VotoVoto

…. …. ….

…. …. ….

…. …. ….

…. …. …. …. ….

Page 28: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

La visualizzazione struttura (1)1. Nome Campo può contenere fino ad un massimo di 64 caratteri (lettere,

numeri, spazi) esclusi . ! [ ] . Non si può iniziare con uno spazio.2. Tipo dati definisce la caratteristica dei dati nel campo:

a. Testo: una qualunque combinazione di lettere, numeri, spazi, punteggiatura. Fino a 50 caratteri (espandibili fino a 255).

b. Memo: come Testo ma fino a 65635 caratteri.c. Numerico: un numerod. Data/Ora: data e/o ora.e. Valuta: utilizzabile per le somme di denaro.f. Contatore: un numero univoco gestito da Access.g. Sì/No: solo una delle due condizioni.h. Oggetto OLE: un foglio Excel, un documento Word, …

3. Proprietà dei tipi di dato:a. Dimensione campo: la dimensione massima di un campo di tipo

Testo, Numerico o Contatore.b. Formato: è la modalità di visualizzazione.c. Etichetta: è il nome del campo che sarà visualizzato.

Qui è possibile inserire una sintetica descrizione del campo

Page 29: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

La visualizzazione struttura (2)4. Proprietà dei campi: definiscono il modo in cui i dati vengono

immessi, memorizzati, visualizzati:

a. Indicizzato: permette la creazione di un indice .

b. Posizioni decimali: relative alla visualizzazione dei numeri.

c. Nuovi valori: per Contatore. Incremento o Casuale.

d. Maschera di input: formato dei valori da immettere.

e. Valore predefinito: valore immesso automaticamente salvo modifiche.

f. Valido se: regola di convalida.

g. Messaggio errore: appare se il dato viola la regola di convalida.

h. Richiesto: indica se è obbligatoria l’immissione del dato.

i. Consenti lunghezza zero: specifica se è richiesto almeno un carattere.

j. Compressione Unicode: consente di risparmiare memoria.

Qui è possibile inserire una sintetica descrizione del campo

Page 30: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

La visualizzazione struttura (3)

5. Campi di ricerca (lookup): agevola l’inserimento dei dati creando un elenco di valori da un’altra tabella o da un elenco personalizzato. Occorre legare il campo alla chiave primaria di un’altra tabella passando da casella di testo a casella combinata e specificando la tabella. In alternativa si può creare un campo di ricerca partendo dal menu Inserisci/Ricerca guidata…

6. Regole di validazione: impostano condizioni per l’ammissibilità dei dati da inserire.

7. maschere di input: mostrano un modello per l’immissione dei dati e non accettano dati di tipo diverso.

Qui è possibile inserire una sintetica descrizione del campo

Page 31: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Definire la chiave primaria e gli indici

Mediante il tasto della barra degli strumenti Database si indica, partendo dalla visualizzazione struttura, il campo che avrà il ruolo di chiave primaria. Automaticamente il campo non accetterà duplicati. La chiave primaria è obbligatoria e può contenere più campi.

Gli indici servono ad ordinare i dati di una tabella per facilitarne la ricerca. L'indice può essere assegnato anche a uno o più campi. Dalla modalità struttura, selezionare un campo e nella scheda Generale cliccare su Indicizzato e scegliere Sì. Si può creare anche un indice multicampo. Per far ciò occorre aprire la tabella degli indici ( ) della barra degli strumenti oppure sul menu Visualizza/Indici; appare la tabella degli indici impostati.

Page 32: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Definire le relazioni tra tabelle

Access facilita estremamente l’individuazione di relazioni tra tabelle.Con il tasto (oppure da Strumenti/Relazioni)si apre la finestra delle relazioni, poi fare click con il tasto destro del mouse e scegliere dal menu che si apre Mostra tabella. Aggiungere tutte le tabelle desiderate, quindi trascinare il campo chiave primaria sul campo relativo della tabella che si vuol collegare.

Per evidenziare il tipo di relazione occorre selezionare applica integrità referenziale (i dati inseriti vengono controllati).

Create le relazioni le tabelle sono collegate, come si può vedere visualizzandole in modalità foglio dati.

Page 33: DATABASE. Sistemi di gestione di basi di dati (DBMS) I database (basi di dati) sono degli insiemi organizzati di dati. Un sistema di gestione delle basi.

Relazioni del database corso di studitabella corsi

IdCorsoIdCorso IdDocenteIdDocente NomeNome

tabella docentiIdDocenteIdDocente CognomeCognome NomeNome

MatricolaMatricola CognomeCognome NomeNome

tabella studenti

tabella esami

IdRisultatoIdRisultato Matricola Matricola StudenteStudente

IdCorsoIdCorso DataData VotoVoto

…. …. ….

…. …. ….

…. …. ….

…. …. …. …. ….