Informatica - Dipartimento di Economia

Informatica
Dipartimento di Economia
Ing. Cristiano Gregnanin
Corso di laurea in Economia
20 ottobre 2016
1 / 22
Introduzione ai database
Prima dei DBMS, le organizzazioni utilizzavano semplici file per
memorizzare e manipolare i dati in modo elettronico. Le
informazioni sulle entità, cioè gli oggetti di interesse dei database,
spesso apparivano in diversi file utilizzati dal sistema informativo:
non esisteva ancora la possibilità di memorizzare separatamente le
informazioni ri guardanti le entità in database che limitassero la
ridondanza dei dati. Per questo motivo i file spesso contenevano
più volte gli stessi dati riguardanti, per esempio, un cliente o un
fornitore. Data la ridondanza dei dati, nel momento in cui una
informazione variava questa doveva essere aggior- nata in più punti
con un processo lungo e oneroso e, quindi, naturalmente esposto a
errori procedurali.
2 / 22
Vantaggi
3 / 22
Implicazioni
4 / 22
Realizzazione database
I
Progettazione concettuale. Si analizza la realtà da
rappresentare, si definisce il contenuto della base dati, si
descrivono le informazioni che verranno archiviate e le
relazioni tra di esse (modello concettuale).
I
Progettazione logica. Si sviluppa una rappresentazione dei
dati secondo il punto di osservazione dell’utente, che si
traduce in un modello logico.
I
Progettazione fisica. Si implementa il modello logico, per
ottenere una rappresentazione dei dati che possa essere
gestita dall’elaboratore.
5 / 22
Progettazione concettuale: schema ER
I
Entità. Oggetti che hanno proprietà comuni nel contesto da
rappresentare, identificabili in modo autonomo e univoco
(esempio: Libro).
I
Attributi. Descrivono le proprietà delle entità (Libro può
avere gli attributi codice libro, titolo, genere letterario).
I
Occorrenze. Sono gli oggetti della classe che l’entità
rappresenta (per esempio, Libro: LB318, Amleto, tragedia).
I
Attributo identificatore. È l’attributo o l’insieme di attributi
che identificano in modo univoco le occorrenze di una entità.
Ogni entità deve avere un attributo identificatore (per
esempio Libro: codice libro).
I
Dominio. E l’insieme dei valori che un attributo può
assumere.
I
Relazioni. Legami tra le diverse entità che appartengono al
contesto da rappresentare.
6 / 22
Progettazione concettuale: esempio - attributi e relazioni
Libro e Autore sono 2 entità con i relativi attributi
Scaffale e Libro sono 2 entità legate fra loro da una relazione il cui
nome è Ospita
7 / 22
Progettazione concettuale: esempio - relazione uno a uno
Un Socio ed una Tessera sono legati da una relazione Possiede
avente cardinalità 1:1. Ovvero un Socio possiede una sola Tessera
e una Tessera è posseduta da un solo Socio
8 / 22
Progettazione concettuale: esempio - relazione uno a molti
Un Editore e un Libro sono legati da una relazione Publica avente
cardinalità 1:n. Ovvero un Editore pubblica molti Libri e un Libro
può essere pubblicato da un solo Editore
9 / 22
Progettazione concettuale: esempio - relazione molti a
molti
Una copia di un Libro può essere presa in prestito da un Socio e un
Socio può prendere in prestito più copie di diversi Libri
10 / 22
Progettazione concettuale: esempio - relazione uno a molti
osservazione importante: Nella relazione con cardinalità
molti-a-molti rappresentata si evidenzia un’anomalia: la relazione
“è preso in prestito” ha degli attributi (Data prestito, Scadenza
prestito). Poiché le relazioni non possono avere attributi, occorre
introdurre una nuova entità, detta entità associtiva Prestito.
11 / 22
Progettazione logica: modello relazionale
è caratterizzato da:
I
tabelle chiamate relazioni (da non confondere con le
“relazioni” del modello ER);
I
campi, le colonne di una tabella
I
dominio, l’insieme di valori. che un campo può assumere;
I
record o tuple, le righe di una tabella, formate da un insieme
di campi.
12 / 22
Progettazione logica: modello relazionale - chiave primaria
L’attributo identificatore si trasforma in un campo definito
chiave primaria. La chiave primaria di una tabella è il campo (o il
gruppo di campi) che descrive ogni record in modo univoco.
13 / 22
Progettazione logica: modello relazionale - trasformazione
di entità in tabella
L’entità Socio si trasforma in:
La chiave primaria è Codice socio
14 / 22
Progettazione logica: modello relazionale - trasformazione
di entità in tabella
L’entità Socio si trasforma in:
La chiave primaria è Codice socio
15 / 22
Progettazione logica: modello relazionale - chiave esterna
Un campo chiave esterna è il campo chiave primaria di una
tabella che compare in un’altra tabella con la quale sussiste una
relazione.
16 / 22
Progettazione logica: modello relazionale - chiave esterna
Per esempio, nella tabella Scaffale il campo Codice scaffale
rappresenta la chiave primaria e compare anche nella tabella Libro
come chiave esterna. Nel modello relazionale le chiavi esterne sono
fondamentali per creare i legami logici tra le tabelle.
17 / 22
Progettazione logica: modello relazionale - chiave esterna
La tabella Libro referenzia la tabella Scaffale attraverso il
campo Codice scaffale che rappresenta quindi una chiave
esterna
18 / 22
Progettazione logica: modello relazionale - relazione uno a
uno
Il passaggio dalla relazione uno a uno tra due entità alla relazione
uno a uno tra due tabelle comporta l’utilizzo dello stesso campo
chiave, al quale è possibile attribuire nomi differenti (per esempio,
Codice socio e Codice tessera) nelle due tabelle risultanti.
19 / 22
Progettazione logica: modello relazionale - relazione uno a
molti
Nel modello concettuale la relazione è stata semplificata in due
relazioni unoa molti e aggiungendo un’ entità associativa. La
tabella Prestito avrà una chiave primaria composta, formata
dall’unione dei campi chiave primaria (Codice libro e Codice socio)
delle due tabelle che collega tra loro.
20 / 22
Progettazione fisica
Dipende dallo specifico sistema di gestione dei dati prescelto e che
si basa sui criteri di organizzazione fisica dei dati in quel sistema. I
sistemisti e il DBA (DataBase Administrator, Amministratore del
database) si preoccupano di implementare il modello logico,
prodotto nella fase di progettazione logica, in una soluzione adatta
a supportare l’operatività aziendale.
21 / 22
Operazioni fondamentali su record
I
Create
I
Read
I
Update
I
Delete
Per eseguire operazioni CRUD si utilizza uno specifico linguaggio,
il più comune è SQL
Esempio: seleziona tutti i record dalla tabella libri:
select * from libri
22 / 22