Appunti per Scuola e Università
Umanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
Scientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
Tecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di database » Progetto per il Corso di Basi di Dati Autofficina

Progetto per il Corso di Basi di Dati Autofficina




Visite: 929Gradito: [ Medio appunti ]
Leggi anche appunti:

Progetto del modulo di basi di dati


Progetto del Modulo di Basi di Dati Gestione di un Team di Formula 1 SPECIFICHE Si

Progetto per il Corso di Basi di Dati Autofficina


Progetto per il Corso di Basi di Dati Autofficina Auto

Piccola storia dei database assolutamente incompleta


Piccola storia dei database assolutamente incompleta Probabilmente il più glorioso



Scarica gratis Progetto per il Corso di Basi di Dati Autofficina

Progetto per il Corso di Basi di Dati Autofficina







Auto officina

Si vuole rappresentare una base di dati per un’auto officina. I clienti dell’auto officina sono caratterizzati dal codice fiscale, dal nome, e dall’indirizzo.

Le automobili dei clienti sono caratterizzate dalla targa, dal proprietario attuale (cliente dell’auto officina), dall’anno di immatricolazione, e dal tipo di auto. Le informazioni relative al tipo di auto sono costituite dal costruttore e modello dell’auto (es. Fiat Duna), dalla cilindrata, e da una serie di informazioni tecniche. Si vuole inoltre tenere traccia del fatto che l’auto sia un’auto d’epoca. Gli interventi di manutenzione effettuati dall’auto officina per conto dei clienti sono contraddistinti da un codice, e sono caratterizzati dall’auto su cui sono stati effettuati, dal proprietario, dai pezzi di ricambio eventualmente impiegati, dal costo della manodopera, e dal costo complessivo. I pezzi di ricambio sono contraddistinti da un codice, dalla denominazione, dal costo, e dai tipi di auto a cui possono essere applicati.

1. DESCRIZIONE E SPECIFICHE

1.1 Specifiche sui dati

Si vuole progettare il sistema informativo di un’autofficina.

La base di dati, in particolare, conterrà informazioni sui clienti dell’autofficina, sulle automobili dei clienti , sugli interventi di manutenzione effettuati dall’autofficina e sui pezzi di ricambio.

Inoltre si terrà traccia del fatto che un’auto è un’auto d’epoca.

Per i clienti dell’autofficina, rappresentiamo il codice fiscale, il nome e l’indirizzo.

Le informazioni, relative alle automobili dei clienti, sono date dalla targa, dal proprietario attuale, che è il cliente dell’autofficina, dall’anno d’immatricolazione e dal tipo di auto.

Per il tipo di auto rappresentiamo il costruttore, il modello, la cilindrata e una serie di informazioni tecniche.

Gli interventi di manutenzione effettuati dall’autofficina per conto dei clienti, identificati da un codice, sono caratterizzati dall’auto, su cui sono effettuati, dal proprietario, dai pezzi di ricambio, se occorrono, dal costo della manodopera e dal costo complessivo.

Per i pezzi di ricambio identificati da un codice, rappresentiamo il nome, il costo e i tipi di auto cui si possono applicare.

L’autofficina rilascia la fattura per gli interventi di manutenzione.

1.2 Specifiche sulle operazioni

Il sistema di basi di dati relativo all’autofficina prevede alcune operazioni, qui di seguito descritte.

O1 Inserisci un nuovo cliente (frequenza: 1 al mese)

O2 Modifica i dati di un cliente (frequenza: 1 all’anno)

O3 Inserisci una nuova auto (frequenza: 1al mese)

O4 Inserisci nuovi pezzi di ricambio (frequenza: 10 al mese)

O5 Aggiorna il costo dei pezzi di ricambio (frequenza: 10 ogni 6 mesi)

O6 Aggiorna il costo della manutenzione (frequenza: 1 ogni 6 mesi)

O7 Stampa una fattura per la manutenzione (frequenza: 20 al giorno)


2. ANALISI DEI REQUISITI

La raccolta dei requisiti è inizialmente costituita da specifiche espresse generalmente in linguaggio naturale ed è per questo che risultano spesso ambigue e disorganizzate di conseguenza l’analisi dei requisiti consiste nel chiarimento e nell’organizzazione di tali specifiche.

Cominciamo con l’individuare termini troppo generici o troppo specifici che rendono poco chiaro il concetto. Esplicitiamo le frasi contorte e individuiamo eventuali sinonimi e/o omonimi. Per la comprensione e la precisazione dei termini usati è utile definire un glossario, che per ogni termine contenga una descrizione, un sinonimo e altri termini, con i quali esiste un legame logico. Una volta individuate le ambiguità e le imprecisioni, queste verranno eliminate sostituendo i termini non corretti con altri più adeguati. A questo punto modificando le specifiche possiamo anche decomporre il testo in gruppi di frasi relative ai concetti corretti.


Dati di carattere generale


Si vuole realizzare una base di dati per un’ autofficina che effettua interventi di manutenzione alle auto per conto dei clienti.


Termini

Descrizione

Sinonimi

Termini collegati

Cliente

Cliente dell’autofficina

Proprietario

Automobile

Automobile

Automobile del cliente. Può essere anche un’auto d’epoca.

Auto
Cliente

Interventi di manutenzione

Interventi di manutenzione effettuati dall’autofficina


Cliente, autofficina

Fattura

Fattura rilasciata per l’ intervento di manutenzione


Cliente, manutenzione


Figura 1: Glossario dei termini


Dati sui clienti


Per i clienti dell’auto officina, circa 500, rappresentiamo alcuni dati anagrafici tra cui il nome, il cognome, l’indirizzo e il codice fiscale, che li identifica.


Dati sulle automobili


Per le automobili dei clienti rappresentiamo la targa, il proprietario attuale, che è il cliente dell’autofficina, l’anno d’immatricolazione e il tipo di auto.

I tipi di auto vengono caratterizzati dal costruttore, dal modello, dalla cilindrata e da informazioni tecniche. Inoltre si terrà traccia del fatto che l’auto sia un’auto d’epoca.


Dati sugli interventi di manutenzione


Per gli interventi di manutenzione (circa 40 al giorno), effettuati dall’autofficina per conto dei clienti e identificati da un codice, rappresentiamo l’auto su cui sono stati effettuati, il proprietario (cliente dell’ autofficina), i pezzi di ricambio, eventualmente sostituiti, il costo della manodopera e il costo complessivo.

Per i pezzi di ricambio, identificati da un codice, rappresentiamo il nome, il costo e i tipi di auto, cui possono essere applicati.


Dati sulle fatture


L’autofficina rilascia ai clienti una fattura per gli interventi di manutenzione



3. PROGETTAZIONE CONCETTUALE


In base all’analisi delle specifiche strutturate dei requisiti, contenute nel paragrafo precedente, è immediato individuare tre concetti principali che possono essere rappresentati da entità nel seguente schema a scheletro.







Figura 2: Schema scheletro



A partire dallo schema scheletro effettuiamo una decomposizione dei requisiti fino a giungere allo schema E-R finale.




Flowchart: Decision: PROPRIETA’


(1,N)              (1,1)



C.F. Targa

Nome

Anno Imm

Cognome

Flowchart: Decision: EFFETTUATA (1,N)

AUTO

 
Indirizzo                                                    

CLIENTE

 

NumTel (0,N) Codice

AUTO

D’EPOCA


 

Costo manodopera (1,N)

(1,N)

Costo complessivo

MANUTENZIONE

 
Flowchart: Decision: RICHIESTA (1,1)

(1,N)



(1,N)


(1,N) (0,N)


FATTURA

 
Flowchart: Decision:   DIFlowchart: Decision: INTESTAZIONE (1,N)

Flowchart: Decision: TIPO   TIPO




Numero


Data

(1,N)

Importo


TIPO AUTO

 
Costruttore


Modello


Flowchart: Decision: UTILIZZO Cilindrata


Informazioni Tecniche


(1,N)

(0,N)


Flowchart: Decision: APPLICAZIONI

PEZZI DI RICAMBIO

 
Codice (1,N)


Nome (0,N)



Costo




Figura 3 :Schema E-R


La documentazione della progettazione concettuale si completa con il dizionario dei dati rappresentato da due tabelle: una contiene le entità e la loro descrizione, gli attributi e gli identificatori e l’altra contiene le relazioni, le entità partecipanti e gli eventuali attributi.


Entità

Descrizioni

Attributi

Identificatore

Cliente

Cliente dell’autofficina e proprietario dell’auto

Codice fiscale, Nome, Cognome, Indirizzo, Telefono

Codice fiscale

Manutenzione

Interventi di manutenzione

Codice, Costo della manodopera, costo complessivo

Codice

Auto

Automobile del cliente

Targa, anno d’immatricolazione



Targa

Auto d’epoca

Sottoinsieme di auto

Targa, anno d’immatricolazione

Targa

Tipo auto

Tipologia auto

Costruttore, modello, cilindrata, informazioni tecniche


Pezzi di ricambio

Pezzi di ricambio delle auto

Codice, Nome, Costo

Codice

Fattura

Fattura rilasciata al cliente

Numero, Data , Importo

Numero


Figura 4 : Porzione del dizionario dati - Entità


Relazione

Entità Partecipanti

Descrizione

Attributi

Richiesta

Cliente, Manutenzione

Il cliente richiede la manutenzione per l’auto


Proprietà

Cliente, Auto

Il cliente è il proprietario dell’auto


Effettuata

Manutenzione, Auto

La manutenzione è effettuata sull’auto


Tipologia

Auto, Tipo auto

Stabilisce la tipologia dell’auto


Applicazione

Tipo auto, Pezzi di ricambio

Ogni auto ha i suoi pezzi di ricambi


Utilizzo

Manutenzione, Pezzi di ricambio

La manutenzione può richiedere l’impiego di pezzi di ricambio


Intestazione

Cliente, Fattura

Associa ogni fattura con il cliente


(Fattura) Di

Fattura, Manutenzione

Associa ogni manutenzione con la fattura



Figura 5: Porzione del dizionario dei dati – Relazioni


4. ANALISI DELLE FUNZIONI


In questa fase si valuta il carico dell’applicazione caratterizzando sia il volume dei dati memorizzati, ovvero il numero di occorrenze di ogni entità e associazione dello schema e le dimensioni di ciascun attributo, sia le caratteristiche delle operazioni ovvero il tipo OL = On Line oppure B = Batch (fuori linea), la frequenza, le entità e le associazioni coinvolte.

Il volume dei dati è riportato nella tavola dei volumi mentre nella tavola delle frequenze, che descrive la frequenza attesa con cui le varie operazioni saranno eseguite, è riportata la caratteristica delle operazioni.

Nella tavola dei volumi, il numero delle occorrenze delle entità coinvolte nelle associazioni è il numero medio di partecipazioni di una occorrenza di entità alle occorrenze di associazioni, mentre il secondo parametro dipende dalle cardinalità delle associazioni.



Concetto

Tipo

Volume

Cliente

E


Manutenzione

E


Fattura

E


Auto

E


Pezzi di ricambio

E


Tipi di auto

E


Telefono

E


Richiesta

R


Effettuata

R


Applicazione

R


Utilizzo

R


(Fattura)Di

R



Figura 6 : Tavola dei volumi



Operazione

Descrizione

Frequenza

Tipo

O1

Inserisci un nuovo cliente

1/mese

OL

O2

Modifica i dati di un cliente

1/anno

OL

O3

Inserisci una nuova auto

1/mese

OL

O4

Inserisci nuovi pezzi di ricambio

10/mese

OL

O5

Aggiorna il costo dei pezzi di ricambio

10/6mesi

OL

O6

Aggiorna il costo della manodopera

1/6mesi

OL

O7

Stampa fattura per la manutenzione

20/giorno

OL


Figura 7 : Tavola delle frequenze



5. PROGETTAZIONE LOGICA INDIPENDENTE DAL

MODELLO


L’obiettivo della progettazione logica è quello di costruire uno schema logico in grado di descrivere, in modo corretto ed efficiente, tutte le informazioni contenute nello schema E-R prodotte dalla progettazione concettuale.

Per passare allo schema logico, lo schema E-R va ristrutturato in modo da semplificare la traduzione e ottimizzare il progetto.

La fase di ristrutturazione si suddivide in:

analisi delle ridondanze, durante la quale si decide se eliminare o mantenere eventuali ridondanze dello schema;

eliminazioni delle generalizzazioni, (eventuali) sostituite da altri costrutti;

partizionamento o accorpamento di entità e di associazioni;

scelta degli identificatori primari, durante la quale si seleziona un identificatore per quelle entità che ne hanno più di uno.


Per il progetto di basi di dati dell’autofficina si è resa necessaria la ristrutturazione dell’attributo multivalore opzionale TELEFONO. L’entità CLIENTE che aveva tale attributo è stata partizionata in due entità: una entità CLIENTE con gli stessi attributi di partenza, eccetto l’attributo multivalore, e l’entità TELEFONO, con il solo attributo numero, (che lo identifica). Esse sono associate mediante la relazione uno a molti RECAPITO.

Per quanto riguarda l’eliminazione delle gerarchie l’entità AUTOEPOCA, unica figlia (sottoinsieme) dell’entità AUTO, è stata eliminata aggiungendo all’entità padre l’attributo autoepoca.

Nella pagina seguente riportiamo lo schema E-R ristrutturato.















Flowchart: Decision: PROPRIETA’


(1,N)                                                                     (1,1)



C.F. Targa

Nome

Anno Imm

Cognome

Flowchart: Decision: EFFETTUATA (1,N)

CLIENTE

 

AUTO

 
Indirizzo                                                                                                                                



(0,N) Codice


Flowchart: Decision: RECAPP Costo manodopera (1,N)

(1,N) Auto d’epoca

Costo complessivo

Flowchart: Decision: RICHIESTA

MANUTENZIONE

 
(1,1) (1,1)

TELEFONO

 
(1,N)



(1,N)

Num Tel

(1,N) (0,N)


Flowchart: Decision: INTESTAZIONE

FATTURA

 
Flowchart: Decision:   DI (1,1) (1,N)

Flowchart: Decision: TIPO   TIPO




Numero


Data

(1,N)

Importo


TIPO AUTO

 
Costruttore


Modello


Flowchart: Decision: UTILIZZO Cilindrata


Informazioni Tecniche


(1,N)

(0,N)


Flowchart: Decision: APPLICAZIONI

PEZZI DI RICAMBIO

 
Codice (1,N)


Nome (0,N)



Costo




Figura 8 : Schema E-R ristrutturato


6. PROGETTAZIONE LOGICA


Durante questa fase della progettazione traduciamo modelli di dati diversi; a partire dallo schema E-R ristrutturato costruiamo uno schema logico equivalente, in grado di rappresentare le stesse informazioni.


6.1 Traduzione entità


Dalla traduzione delle entità dello schema E-R ristrutturato individuiamo le R-relazioni, cioè le relazioni del modello relazionale.


CLIENTE (CF,Cognome, Nome, Indirizzo)


MANUTENZIONE (Codice, Costo, Manodopera)


AUTO(Targa, Autoepoca, Annoimmatricolazione, CF, Modello, Costruttore)


FATTURA (NumFatt, Data, Importo, CF)


PEZZI DI RICAMBIO (Codice, Nome, Costo)


TIPIDIAUTO (Modello, Costruttore, Cilindrata, Informazioni Tecniche)


TELEFONO (NumTel, CF)


6.2 Traduzione relazioni


Nello schema ottenuto dalla progettazione concettuale si trovano solo relazioni tipo uno a molti e di tipo molti a molti.

La relazione PROPRIETA’ è di tipo uno a molti con partecipazione obbligatoria, si traduce introducendo in AUTO l’attributo CF.

La relazione RECAPITO è di tipo uno a molti con partecipazione opzionale, si traduce introducendo in TELEFONO l’attributo CF.

La relazione INTESTAZIONE è di tipo uno a molti con partecipazione obbligatoria, si traduce introducendo in FATTURA l’attributo CF.

La relazione TIPO è di tipo uno a molti con partecipazione obbligatoria, si traduce introducendo in AUTO gli attributi Modello e Costruttore.

La relazione RICHIESTA è di tipo molti a molti con partecipazione obbligatoria, si traduce come una R-relazione che ha per attributi gli identificatori di CLIENTE e MANUTENZIONE.

La relazione EFFETTUATA è di tipo molti a molti con partecipazione obbligatoria, si traduce come una R-relazione che ha per attributi gli identificatori di MANUTENZIONE e AUTO.

La relazione APPLICAZIONE è di tipo molti a molti con partecipazione obbligatoria, si traduce come una R-relazione che ha per attributi gli identificatori di PEZZI DI RICAMBIO e TIPI AUTO.

La relazione UTILIZZO è di tipo molti a molti con partecipazione opzionale, si traduce come una R-relazione che ha per attributi gli identificatori di MANUTENZIONE e PEZZI DI RICAMBIO.

La relazione (FATTURA)DI è di tipo molti a molti con partecipazione obbligatoria, si traduce come una R-relazione che ha per attributi gli identificatori di FATTURA e MANUTENZIONE.


RICHIESTA (CF, CodMan)


EFFETTUATA (CodMan, Targa)


APPLICAZIONE (Modello, Costruttore,CodRic)


UTILIZZO (CodMan, CodRic)


(FATTURA)DI (NumFatt, CodMan)



In base alla traduzione delle entità e delle relazioni, giungiamo allo schema logico completo per l’autofficina.


CLIENTE (CF,Cognome, Nome, Indirizzo)

MANUTENZIONE (Codice, Costo Manodopera)

AUTO(Targa, Autoepoca, Annoimmatricolazione, CF, Modello, Costruttore)

FATTURA (NumFatt, Data, Importo, CF)

PEZZI DI RICAMBIO (Codice, Nome, Costo)

TIPIDIAUTO (Modello, Costruttore, Cilindrata, Informazioni Tecniche)

TELEFONO (NumTel, CF)

RICHIESTA (CF, CodMan)

EFFETTUATA (CodMan, Targa)

APPLICAZIONE (Modello, Costruttore,CodRic)

UTILIZZO (CodMan, CodRic)

(FATTURA)DI (NumFatt, CodMan)






7. IMPLEMENTAZIONE DELLE OPERAZIONI


Passiamo all’implementazione delle operazioni che sono state qui definite per l’autofficina.


Creazione delle tabelle



CREATE TABLE 'CLIENTE'


'CF' VARCHAR2(20 byte) NOT NULL,

'COGNOME' VARCHAR2(50 byte) NOT NULL,

'NOME' VARCHAR2(50 byte) NOT NULL,

'INDIRIZZO' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'PK_CLIENTE' PRIMARY KEY('CF')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;




CREATE TABLE 'MANUTENZIONE'


'CODICE' VARCHAR2(20 byte) NOT NULL,

'COSTOMAN' NUMBER(10 byte) NOT NULL,

CONSTRAINT 'PK_CODICE' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS

255

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;








CREATE TABLE 'PEZZI DI RICAMBIO'


'CODICE' VARCHAR2(20 byte) NOT NULL,

'NOME' VARCHAR2(50 byte) NOT NULL,

'COSTO' NUMBER(20) NOT NULL,

CONSTRAINT 'PK_PEZZIRICAMBIO' PRIMARY KEY('CODICE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;





CREATE TABLE “FATTURA'


'NUMFATT' NUMBER(10) NOT NULL,

'DATA' DATE NOT NULL,

'IMPORTO' NUMBER(10) NOT NULL,

'CF' VARCHAR2(25 byte) NOT NULL,

CONSTRAINT 'FK_FATTURA_CLIENTE' FOREIGN KEY('CF')

REFERENCES 'CLIENTE'('CF'),

CONSTRAINT 'PK_FATTURA' PRIMARY KEY('NUMFATT')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;













CREATE TABLE 'TIPIAUTO'


'MODELLO' VARCHAR2(30 byte) NOT NULL,

'COSTRUTTORE' VARCHAR2(50 byte) NOT NULL,

'CILINDRATA' NUMBER(10) NOT NULL,

'INFORMAZIONITECNICHE' VARCHAR2(100 byte) NOT NULL,

CONSTRAINT 'PK_TIPIAUTO' PRIMARY KEY('MODELLO',

'COSTRUTTORE')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;






CREATE TABLE 'AUTO'


'TARGA' VARCHAR2(20 byte) NOT NULL,

'AUTOEPOCA' VARCHAR2(2 byte) NOT NULL,

'ANNOIMMATRCOLAZIONE' NUMBER(4) NOT NULL,

'CF' VARCHAR2(20 byte) NOT NULL,

'MODELLO' VARCHAR2(20 byte) NOT NULL,

'COSTRUTTORE' VARCHAR2(50 byte) NOT NULL,

CONSTRAINT 'CK_AUTOEPOCA' CHECK(AUTOEPOCA='SI' or

AUTOEPOCA='NO'),

CONSTRAINT 'FK_AUTO_CLIENTE' FOREIGN KEY('CF')

REFERENCES 'CLIENTE'('CF'),

CONSTRAINT 'FK_AUTO_TIPIAUTO' FOREIGN KEY('MODELLO',



'COSTRUTTORE')

REFERENCES 'TIPIAUTO'('MODELLO', 'COSTRUTTORE'),

CONSTRAINT 'PK_AUTO' PRIMARY KEY('TARGA')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;





CREATE TABLE 'TELEFONO'


'NUMTEL' NUMBER(20) NOT NULL,

'CF' VARCHAR2(20 byte) NOT NULL,

CONSTRAINT 'PK_TELEFONO' PRIMARY KEY('NUMTEL', 'CF')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;








CREATE TABLE 'RICHIESTA'


'CF' VARCHAR2(20 byte) NOT NULL,

'CODMAN' VARCHAR2(20 byte) NOT NULL,

CONSTRAINT 'PK_RICHIESTA' PRIMARY KEY('CF', 'CODMAN')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;















CREATE TABLE 'EFFETTUATA'


'CODMAN' VARCHAR2(20 byte) NOT NULL,

'TARGA' VARCHAR2(20 byte) NOT NULL,

CONSTRAINT 'PK_EFFETTUATA' PRIMARY KEY('CODMAN', 'TARGA')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;







CREATE TABLE 'APPLICAZIONE'


'MODELLO' VARCHAR2(30 byte) NOT NULL,

'COSTRUTTORE' VARCHAR2(50 byte) NOT NULL,

'CODRIC' VARCHAR2(20 byte) NOT NULL,

CONSTRAINT 'PK_APPLICAZIONE' PRIMARY KEY('MODELLO',

'COSTRUTTORE', 'CODRIC')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;
















CREATE TABLE 'UTILIZZO'


'CODMAN' VARCHAR2(20 byte) NOT NULL,

'CODRIC' VARCHAR2(20 byte) NOT NULL,

CONSTRAINT 'PK_UTILIZZO' PRIMARY KEY('CODMAN', 'CODRIC')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;






CREATE TABLE 'FATTDI'


'NUMFATT' VARCHAR2(10 byte) NOT NULL,

'CODMAN' VARCHAR2(10 byte) NOT NULL,

CONSTRAINT 'PK_FATTDI' PRIMARY KEY('NUMFATT', 'CODMAN')

USING INDEX

TABLESPACE 'USERS'

STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)


TABLESPACE 'USERS' PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS

255

STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS

2147483645 PCTINCREASE 0)

LOGGING;





7.2 Query SQL e procedure PL/SQL


Interrogazione O1

INSERT INTO CLIENTE (CF, COGNOME, NOME,INDIRIZZO)

VALUES('MNTMDD34','MONDA','MARIA','VIA ORAZIO 250');

COMMIT;



Interrogazione O2

UPDATE CLIENTE

SET INDIRIZZO='VIA PIAVE 150'

WHERE(CF='MRSMRS' AND COGNOME='IZZO' AND NOME='MARISA');

COMMIT;



Interrogazione O3

INSERT INTO AUTO (TARGA, AUTOEPOCA,  

ANNOIMMATRCOLAZIONE,CF, MODELLO, COSTRUTTORE)

VALUES(‘NAF12123’, ‘NO’, ‘1993’,’MNTMDD’,’PANDA’,’FIAT’);

COMMIT;



Interrogazione O4

INSERT INTO PEZZIRICAMBIO (CODICE, NOME, COSTO) VALUES('17F','AMMORTIZZATORE','200');

COMMIT;



Interrogazione O5

UPDATE PEZZIRICAMBIO

SET COSTO='160’

WHERE (CODICE='16E' AND NOME='FRENI');

COMMIT;



Interrogazione O6

UPDATE MANUTENZIONE

SET COSTOMAN=COSTOMAN*1.1

WHERE CODICE=’1122AA’ ;

COMMIT;



Interrogazione O7

SELECT COGNOME||' '||NOME||' '||NUMFATT||' '||IMPORTO||'

'||CLIENTE.CF INTO FATTURA

FROM CLIENTE JOIN FATTURA

ON (CLIENTE.CF=FATTURA.CF)

WHERE FATTURA.DATA=’02-01-2004’AND       

CLIENTE.NOME=’MARISA’ AND

CLIENTE.COGNOME=’IZZO’;



Altri esempi di interrogazioni


SELECT CLIENTE.CF,MODELLO,COSTRUTTORE

FROM CLIENTE JOIN AUTO ON (CLIENTE.CF=AUTO.CF)

WHERE COGNOME='MUTO' AND NOME='VALENTINA';

SELECT *

FROM CLIENTE

WHERE NOME='VALENTINA' AND COGNOME='MUTO';


SELECT TARGA

FROM AUTO

WHERE MODELLO='500L' AND COSTRUTTORE='FIAT';


SELECT

FROM TIPIAUTO

WHERE MODELLO='MAREA';


SELECT IMPORTO

FROM FATTURA

WHERE CF='MRSMRS';


SELECT NUMTEL

FROM TELEFONO

WHERE CF='MTUVNT80';


SELECT CILINDRATA

FROM TIPIAUTO

WHERE MODELLO='500L' AND COSTRUTTORE='FIAT';







O1 Inserisci un nuovo cliente


CREATE OR REPLACE PROCEDURE MYINSERT01


inCF CLIENTE.CF%TYPE,

inCOGNOME CLIENTE.COGNOME%TYPE,

inNOME CLIENTE.NOME%TYPE,

inINDIRIZZO CLIENTE.INDIRIZZO%TYPE


AS

BEGIN

INSERT INTO CLIENTE (CF, COGNOME, NOME,              

INDIRIZZO)

VALUES(inCF, inNOME, inCOGNOME,inINDIRIZZO);

COMMIT;

END MYINSERT01;






O2 Modifica dati di un cliente

CREATE OR REPLACE PROCEDURE MYUPDATE02

inCF CLIENTE.CF%TYPE,

inCOGNOME CLIENTE.COGNOME%TYPE,

inNOME CLIENTE.NOME%TYPE,

inINDIRIZZO CLIENTE.INDIRIZZO%TYPE)

AS

BEGIN

UPDATE CLIENTE

SET INDIRIZZO=inINDIRIZZO

WHERE(CF=inCF AND COGNOME=inCOGNOME AND

NOME=inNOME);

COMMIT;

END MYUPDATE02;






O3 Inserisci una nuova auto


CREATE OR REPLACE PROCEDURE MYINSERT03


inTARGA AUTO.TARGA%TYPE,

inAUTOEPOCA AUTO.AUTOEPOCA%TYPE,

inANNOIMMATRCOLAZIONE AUTO.ANNOIMMATRCOLAZIONE%TYPE,

inCF AUTO.CF%TYPE,

inMODELLO AUTO.MODELLO%TYPE,

inCOSTRUTTORE AUTO.COSTRUTTORE%TYPE


AS

BEGIN

INSERT INTO AUTO (TARGA, AUTOEPOCA,

ANNOIMMATRCOLAZIONE,CF, MODELLO, COSTRUTTORE)

VALUES(inTARGA, inAUTOEPOCA,

inANNOIMMATRCOLAZIONE,

inCF, inMODELLO, inCOSTRUTTORE);

COMMIT;

END MYINSERT03;




O4 Inserisci nuovo pezzo di ricambio


CREATE OR REPLACE PROCEDURE MYINSERT04


inCODICE PEZZIRICAMBIO.CODICE%TYPE,

inNOME PEZZIRICAMBIO.NOME%TYPE,

inCOSTO PEZZIRICAMBIO.COSTO%TYPE


AS

BEGIN

INSERT INTO PEZZIRICAMBIO (CODICE, NOME, COSTO)

VALUES(inCODICE, inNOME, inCOSTO);

COMMIT;

END MYINSERT04;






O5 Aggiorna costo pezzi di ricambio


CREATE OR REPLACE PROCEDURE MYUPDATE05


inCODICE PEZZIRICAMBIO.CODICE%TYPE,

inNOME PEZZIRICAMBIO.NOME%TYPE,

inCOSTO PEZZIRICAMBIO.COSTO%TYPE)

AS

BEGIN

UPDATE PEZZIRICAMBIO

SET COSTO=inCOSTO

WHERE (CODICE=inCODICE AND NOME=inNOME);

COMMIT;

END MYUPDATE05;




O6 Aggiorna il costo della manodopera


CREATE OR REPLACE PROCEDURE MYUPDATE06

inCODICE MANUTENZIONE.CODICE%TYPE,

inCOSTOMAN MANUTENZIONE.COSTOMAN%TYPE)

AS

BEGIN

UPDATE MANUTENZIONE

SET COSTOMAN=COSTOMAN*1.1

WHERE CODICE=inCODICE ;

COMMIT;

END MYUPDATE06;







O7 Stampa fattura

CREATE OR REPLACE PROCEDURE STAMPAFATT

inCOGNOME CLIENTE.COGNOME%TYPE,

inNOME CLIENTE.NOME%TYPE,

inDATA FATTURA.DATA%TYPE)

AS

BEGIN

DECLARE

FATTURA VARCHAR2(200);

BEGIN

SELECT COGNOME||' '||NOME||' '||NUMFATT||' '||IMPORTO||'

'||CLIENTE.CF INTO FATTURA

FROM CLIENTE JOIN FATTURA

ON (CLIENTE.CF=FATTURA.CF)

WHERE FATTURA.DATA=inDATA AND        

CLIENTE.NOME=inNOME AND

CLIENTE.COGNOME=inCOGNOME;

DBMS_OUTPUT.PUT_LINE(FATTURA);

END;

END STAMPAFATT

Considerazioni


La base di dati di un’autofficina potrebbe essere resa più efficiente creando ad esempio una tabella MAGAZZINO che contenga il conteggio dei pezzi di ricambio, in modo da avere traccia del materiale che sta per terminare e del materiale impiegato negli interventi di manutenzione.

In previsione del fatto che l’autofficina si possa ingrandire e prestare anche servizio di elettrauto, sarebbe utile stampare una scheda tecnica sulla quale riportare i differenti interventi di manutenzione, specificando oltre al tipo di manutenzione, la data in cui è stata effettuata e da chi, distinguendo mediante un codice gli interventi meccanici da quelli elettrici. Si potrebbe inoltre prevedere un servizio di pagamento tramite Carta di Credito o Bancomat e tenere conto dei clienti che hanno Partita Iva da quelli che non l’hanno, in modo da rilasciare ai primi la fattura e agli altri la ricevuta fiscale.

Scarica gratis Progetto per il Corso di Basi di Dati Autofficina
Appunti su:







Accedi al tuo account
Scarica 100% gratis e Invia appunti, tesine, riassunti

Registrati ora Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...