Anteprima
Vedrai una selezione di 3 pagine su 7
Basi di dati - esempio tesina database Pag. 1 Basi di dati - esempio tesina database Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Basi di dati - esempio tesina database Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Politica di violazione del vincolo di integrità referenziale

E' stata scelta come politica di violazione del vincolo di integrità referenziale l'opzione on delete set NULL in quanto una filiale continua ad esistere anche senza il direttore. Esiste un vincolo di chiave esterna tra il campo Id_località e il campo Id_località della relazione Luoghi. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo Id_località.

E' stata scelta come politica di violazione del vincolo di integrità referenziale l'opzione on delete set NULL. Intestatari: Esiste un vincolo di chiave esterna tra il campo CodiceIBAN ed il campo CodiceIBAN della relazione Conti_Correnti. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo CodiceIBAN.

E' stata scelta come politica di violazione del vincolo di integrità referenziale l'opzione on delete set CASCADE in quanto un cliente non può avere intestato un conto corrente che non esiste.

Esiste

sull'attributo Nome_Filiale. E' stata scelta come politica di violazione del vincolo di integrità referenziale l'opzione on delete Cascade. Filiali: Esiste un vincolo di chiave esterna tra il campo Nome e il campo Nome della relazione Filiali. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo Nome.sull'attributo Nome_Filiale. E' stata scelta come politica di violazione del vincolo di integrità referenziale l'opzione on delete Cascade.

Lavoratore Indipendente: Esiste un vincolo di chiave esterna tra il campo Id_cliente e il campo Id_codice della relazione clienti. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo Id_cliente. E' stata scelta come politica di violazione del vincolo di integrità referenziale l'azione on delete Cascade.

Lavoratore Dipendente: Esiste un vincolo di chiave esterna tra il campo Id_cliente e il campo Id_codice della relazione clienti. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo Id_cliente. E' stata scelta come politica di violazione del vincolo di integrità referenziale l'azione on delete Cascade.

Esiste un vincolo di chiave esterna tra il campo Datore_di_lavoro e il campo id_Datore della relazione Datore. Tale vincolo consente di poter inserire solo valori legali di tupla sull'attributo Datore_di_lavoro.
  1. vincoloconsente di poter inserire solo valori legali di tupla sull'attributo Datore_di_lavoro.E' stata scelta come politica di violazione del vincolo di integrità referenziale l'azione on delete Cascade.
  2. Progettazione Fisica
    1. Dimensionamento Tabelle
      1. Di seguito, riportiamo la tabella contenente le informazioni relative al dimensionamento delle singole relazioni, specificando nome,dimensione di ogni singola occorrenza, numero di occorrenze previste e il dimensionamento totale ottenuto moltiplicando i valori presentinella seconda e terza colonna ed arrotondando il risultato per eccesso.
Nome Dimensione Numero tuple Dimensione tot.
Clienti 55 Byte 5000 230Kb
Anagrafiche 60 Byte 5000 250Kb
Luoghi 50 Byte 3000 159Kb
Filiali 62 Byte 50 3,1Kb
Direttori 134 Byte 50 6,5Kb
Intestatari 40 Byte 10000 400Kb
Scritture 136 Byte 1000000 136Mb
Conti_Correnti 76 Byte 10000 760Kb
Lavoratore Indipendente 44 Byte 3000 122Kb
Lavoratore Dipendente 60 Byte 3000

180KbDatore 74 Byte 3000 222Kb

Analizzando le varie relazioni, per ciascuna di esse abbiamo ricavato lo spazio occupato dai relativi attributi in base al tipo.

Clienti:

  • Nome attributo: Id_codice
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Codice_fiscale
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Codice_pin
  • Tipo: Varchar2(10)
  • Dimensione: 10 Byte
  • Nome attributo: Residenza
  • Tipo: char(5)
  • Dimensione: 5 Byte

Anagrafica:

  • Nome attributo: Codice_fiscale
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Nome
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Cognome
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte

Luoghi:

  • Nome attributo: Id_Località
  • Tipo: char(5)
  • Dimensione: 5 Byte
  • Nome attributo: Città
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Indirizzo
  • Tipo: Varchar2(50)
  • Dimensione: 50 Byte
  • Nome attributo: CAP
  • Tipo: numbeer
  • Dimensione: 5 Byte

Filiali:

  • Nome attributo: Nome
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: telefono
  • Tipo: number
  • Dimensione: 4 Byte
  • Nome attributo: Direttore
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Orario_apertura
  • Tipo: Date
  • Dimensione: 7 Byte
  • Nome attributo: Orario_chiusura
  • Tipo: Date
  • Dimensione: 7 Byte
  • Nome attributo: Id_località
  • Tipo: char(5)
  • Dimensione: 5 Byte
  • Nome attributo: fax
  • Tipo: number
  • Dimensione: 4 Byte

Direttore:

  • Nome attributo: Id_direttore
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Nome
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Cognome
  • Tipo: Varchar2(20)
  • Dimensione: 20 Byte
  • Nome attributo: Indirizzo
  • Tipo: Varchar2(50)
  • Dimensione: 50 Byte
  • Nome attributo: telefono
  • Tipo: number
  • Dimensione: 4 Byte
ByteE-mail Varchar2(20) 20 Byte
Nome attributo Tipo Dimensione
Id_direttore Varchar2(20) 20 Byte
Nome Varchar2(20) 20 Byte
Cognome Varchar2(20) 20 Byte
Indirizzo Varchar2(50) 50 Byte
telefono number 4 Byte
E-mail Varchar2(20) 20 Byte

Intestatari:
Nome attributo Tipo Dimensione
Id_cliente Varchar2(20) 20 Byte
CodiceIBAN Varchar2(20) 20 Byte

Scritture:
Nome attributo Tipo Dimensione
Id_scrittura Varchar2(20) 20 Byte
CodiceIBAN Varchar2(20) 20 Byte
causale Varchar2(50) 50 Byte
valuta Varchar2(20) 20 Byte
importo_entrata number 4 Byte
importo_uscita number 4 Byte
saldo number 4 Byte
Data Date 7 Byte
Orario Date 7 Byte

Conti_Correnti:
Nome attributo Tipo Dimensione
CodiceIBAN Varchar2(20) 20 Byte
Nome_Filiale Varchar2(20) 20 Byte
Saldo_attuale Varchar2(20) 20 Byte
Limite_giornaliero_op Number 4 Byte
Limite_mensile_op Number 4 Byte
Residuo_giornaliero_op Number 4 Byte
Residuo_mensile_op Number 4 Byte

Lavoratore Indipendente:
Nome attributo Tipo Dimensione
Id_cliente Varchar2(20) 20 Byte
PartitaIVA Varchar2(20) 20
ByteFatturato_medio Number 4
ByteEntrate Nette Number 4
ByteLavoratori Dendenti:
Nome attributo Tipo Dimensione
Id cliente Varchar2(20) 20
ByteRagione_Sociale Varchar2(20) 20
ByteDatore_di_Lavoro Varchar2(20) 20
ByteDatore:
Nome attributo Tipo Dimensione
Id_Datore Varchar2(20) 20
ByteIndirizzo_datore_lavoro Varchar2(50) 50
ByteTelefono_datore_lavoro Number 4
ByteI calcoli sono stati effettuati tenendo conto delle seguenti considerazioni:
- Char(k)=k Byte
- Varchar2(k)=k Byte
- Number=4 Byte
- Date=7 Byte
- Tablespace

7.2)Per memorizzare la mole di dati inerente alle relazioni sopra elencate abbiamo riservato un'area di memoria atta a contenerla, dettatablespace.
Nome Dimensione
Banca 200Mb

La dimensione del tablespace è stata calcolata sommando lo spazio totale occupato da ogni singola tabella (879KB) in seguito arrotondata a 5 MB in virtù dello spazio previsto per i file di gestione e di sistema (che probabilmentesarà molto elevato a causa dell'utilizzo del tipo CLOB).
Il codice SQL relativo alla sua creazione è il seguente:

create tablespace Bancadatafile 'Banca.dbf' size 200M autoextend off;

7.3) Script SQL Qui di seguito sono riportati gli statement SQL per la creazione delle tabelle (CREATE TABLE) e dei vincoli di integrità referenziale (ALTER TABLE). Inoltre per ogni statement di CREATE TABLE sono state specificate le clausole di storage che descrivono come lo spazio riservato per ciascuna tabella viene da essa utilizzato, in particolare: INITIAL: specifica la misura in byte dell'iniziale estensione della tabella. NEXT: indica la misura per l'estensione successiva a initial. MINEXTENTS: specifica il numero minimo di extents allocati. MAXEXTENTS: specifica il numero massimo di extents allocati. PCTINCREASE: indica la percentuale di incremento delle dimensioni delle extents dalla terza in poi relativa all'extent precedente.

Create table Clientii(
    Id_codice Varchar2(20),
    Codice_fiscale varchar2(20) NOT NULL,
    Codice_pin

date,constraint PK_Clienti Primary Key(Id_codice))Storage ( Initial 184K Next 23K minextents 1 maxextents 1 PCTincrease 0) Per la tabella Ricoveri il parametro INITIAL è stato posto pari a 207KB (90% di 230KB), in quanto dei circa 5000 clienti attesi solo di 4000 se ne conoscono le informazioni, mentre il parametro NEXT è stato posto pari a 23KB (10% di 230KB). Create table Anagrafica(Nome Varchar2(20) NOT NULL,Codice_fiscale varchar2(20),Cognome Varchar2(20) NOT NULL,constraint PK_Anagrafica Primary Key(Codice_fiscale))Storage ( Initial 225K Next 25K minextents 1 maxextents 1 PCTincrease 0) Per la tabella Anagrafica il parametro INITIAL è stato posto pari a 225KB (90% di 250KB), mentre il parametro NEXT è stato posto pari a 25KB (10% di 230KB). La motivazione è la stessa precedente in quanto ogni occorenza di cliente è in associazione 1a1 con un occorenza di anagrafica. Create table Luoghi(Città <table> <tr> <th>Colonna</th> <th>Tipo</th> <th>Vincolo</th> </tr> <tr> <td>varchar2(20)</td> <td>NOT NULL</td> <td></td> </tr> <tr> <td>Indirizzo</td> <td>varchar2(20)</td> <td>NOT NULL</td> </tr> <tr> <td>Id_località</td> <td>char(5)</td> <td></td> </tr> <tr> <td>CAP</td> <td>Number(5)</td> <td>NOT NULL</td> </tr> <tr> <td>constraint PK_Luoghi</td> <td>Primary Key(Id_località)</td> <td></td> </tr> </table> <table> <tr> <th>Colonna</th> <th>Tipo</th> <th>Vincolo</th> </tr> <tr> <td>Nome</td> <td>varhar2(20)</td> <td></td> </tr> <tr> <td>telefono</td> <td>Number</td> <td></td> </tr> <tr> <td>Direttore</td> <td>varchar2(20)</td> <td></td> </tr> <tr> <td>Orario_apertura</td> <td>Date</td> <td></td> </tr> <tr> <td>Orario_chiusura</td> <td>Date</td> <td></td> </tr> <tr> <td>Id_località</td> <td>char(5)</td> <td>NOT NULL</td> </tr> <tr> <td>fax</td> <td>Number</td> <td></td> </tr> <tr> <td>constraint PK_Filialii</td> <td>Primary Key(Nome)</td> <td></td> </tr> </table> <table> <tr> <th>Colonna</th> <th>Tipo</th> <th>Vincolo</th> </tr> <tr> <td>Nome</td> <td>varhar2(20)</td> <td>NOT NULL</td> </tr> <tr> <td>telefono</td> <td>Number</td> <td></td> </tr> <tr> <td>Id_direttore</td> <td>varchar2(20)</td> <td></td> </tr> <tr> <td>Cognome</td> <td>varchar2(20)</td> <td>NOT NULL</td> </tr> <tr> <td>E-mail</td> <td>varchar2(20)</td> <td></td> </tr> <tr> <td>constraint PK_Direttore</td> <td>Primary Key(Id_direttore)</td> <td></td> </tr> </table> <table> <tr> <th>Colonna</th> <th>Tipo</th> <th>Vincolo</th> </tr> <tr> <td>Id_cliente</td> <td>varhar2(20)</td> <td></td> </tr> <tr> <td>CodiceIBAN</td> <td>...</td> <td></td> </tr> </table>

<table>
  <tr>
    <th>varchar2(20)</th>
    <th>constraint PK_Intestatari Primary Key(Id_cliente,CodiceIBAN)</th>
  </tr>
  <tr>
    <td>Storage ( Initial 320K Next 80K minextents 1 maxextents 1 PCTincrease 0)</td>
  </tr>
</table>

<table>
  <tr>
    <th>Create table Scritture</th>
  </tr>
  <tr>
    <td>Id_scrittura varchar2(20),</td>
  </tr>
  <tr>
    <td>CodiceIBAN varchar2(20) NOT NULL,</td>
  </tr>
  <tr>
    <td>causale varchar2(20) NOT NULL,</td>
  </tr>
  <tr>
    <td>valuta varchar2(20) NOT NULL,</td>
  </tr>
  <tr>
    <td>importo_entrata Number NOT NULL,</td>
  </tr>
  <tr>
    <td>importo_uscita Number NOT NULL,</td>
  </tr>
  <tr>
    <td>Data Date NOT NULL,</td>
  </tr>
  <tr>
    <td>Orario, Date NOT NULL,</td>
  </tr>
  <tr>
    <td>constraint PK_Scritture Primary Key(Id_scrittura)</td>
  </tr>
  <tr>
    <td>Storage ( Initial 100M Next 20M minextents 1 maxextents 1 PCTincrease 0)</td>
  </tr>
</table>

<table>
  <tr>
    <th>Create table Conti_Correnti</th>
  </tr>
  <tr>
    <td>Nome_Filiale varchar2(20) NOT NULL,</td>
  </tr>
  <tr>
    <td>Codi</td>
  </tr>
</table>

Dettagli
Publisher
A.A. 2012-2013
7 pagine
3 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Menzo di informazioni apprese con la frequenza delle lezioni di Basi di Dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Picariello Antonio.