|
Appunti informatica |
|
Visite: 3838 | Gradito: | [ Medio appunti ] |
Leggi anche appunti:Progetto del modulo di basi di datiProgetto del Modulo di Basi di Dati Gestione di un Team di Formula 1 SPECIFICHE Si Progetto per il Corso di Basi di Dati AutofficinaProgetto per il Corso di Basi di Dati Autofficina Auto Piccola storia dei database assolutamente incompletaPiccola storia dei database assolutamente incompleta Probabilmente il più glorioso |
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.
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.
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)
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.
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
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. |
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. |
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. |
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.
(1,N) (1,1)
C.F. Targa
Nome
Anno Imm
Cognome
(1,N)
AUTO CLIENTE
Indirizzo
NumTel (0,N) Codice
AUTO D'EPOCA
Costo manodopera (1,N)
(1,N)
Costo complessivo
MANUTENZIONE
(1,1)
(1,N)
(1,N)
(1,N) (0,N)
FATTURA
(1,N)
Numero
Data
(1,N)
Importo
TIPO AUTO
Costruttore
Modello
Cilindrata
Informazioni Tecniche
(1,N)
(0,N)
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.
(1,N) (1,1)
C.F. Targa
Nome
Anno Imm
Cognome
(1,N)
CLIENTE AUTO
Indirizzo
(0,N) Codice
Costo manodopera (1,N)
(1,N) Auto d'epoca
Costo complessivo
MANUTENZIONE
(1,1) (1,1)
TELEFONO
(1,N)
(1,N)
Num Tel
(1,N) (0,N)
FATTURA
(1,1) (1,N)
Numero
Data
(1,N)
Importo
TIPO AUTO
Costruttore
Modello
Cilindrata
Informazioni Tecniche
(1,N)
(0,N)
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
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
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
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
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
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
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
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
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
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
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING;
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
Interrogazione O7
Altri esempi di interrogazioni
SELECT CLIENTE.CF,MODELLO,COSTRUTTORE
FROM CLIENTE JOIN AUTO ON (CLIENTE.CF=AUTO.CF)
WHERE COGNOME='MUTO' AND NOME='VALENTINA';
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
BEGIN
INSERT INTO CLIENTE (CF, COGNOME, NOME,
INDIRIZZO)
VALUES(inCF, inNOME, inCOGNOME,inINDIRIZZO);
COMMIT;
END MYINSERT01;
O2 Modifica dati di un cliente
inCF CLIENTE.CF%TYPE,
inCOGNOME CLIENTE.COGNOME%TYPE,
inNOME CLIENTE.NOME%TYPE,
inINDIRIZZO CLIENTE.INDIRIZZO%TYPE)
AS
UPDATE CLIENTE
SET INDIRIZZO=inINDIRIZZO
WHERE(CF=inCF AND COGNOME=inCOGNOME AND
NOME=inNOME);
COMMIT;
END MYUPDATE02;
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;
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;
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
DBMS_OUTPUT.PUT_LINE(FATTURA);
END;
END STAMPAFATT
Appunti su: https:wwwappuntimaniacominformaticadatabaseprogetto-per-il-corso-di-basi-84php, |
|