Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
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 di immatricolazione | Targa |
Auto d'epoca | Sottoinsieme di auto | Targa, anno di immatricolazione | Targa |
Tipo auto | Tipologia auto | Costruttore, modello, cilindrata, informazioni tecniche | Costruttore, modello, cilindrata |
Pezzi di ricambio | Applicazione | Nome, Costo | Nome |
Il carico dell'applicazione caratterizza 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 | 500 |
Manutenzione | E | 1500 |
Fattura | E | 1500 |
Auto | E | 1000 |
Pezzi di ricambio | E | 3000 |
Tipi di auto | E | ... |
250Telefono E 750Richiesta R 500Effettuata R 1000Applicazione R 1000Utilizzo R 500(Fattura)Di R 1500Figura 6 : Tavola dei volumi
Operazione Descrizione Frequenza Tipo
O1 Inserisci un nuovo cliente 1/mese OLO
O2 Modifica i dati di un cliente 1/anno OLO
O3 Inserisci una nuova auto 1/mese OLO
O4 Inserisci nuovi pezzi di ricambio 10/mese OLO
O5 Aggiorna il costo dei pezzi di ricambio 10/6mesi OLO
O6 Aggiorna il costo della manodopera 1/6mesi OLO
O7 Stampa fattura per la manutenzione 20/giorno OLFigura 7 : Tavola delle frequenze
5. PROGETTAZIONE LOGICA INDIPENDENTE DALMODELLO
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à padrel’attributo autoepoca.Nella pagina seguente riportiamo lo schema E-R ristrutturato.(1,N) (1,1)PROPRIETA’C.F. TargaNome Anno ImmCognome (1,N)Indirizzo EFFETTUAT AUTOCLIENTE A(0,N) CodiceCosto manodopera (1,N)(1,N) Auto d’epocaRECAPP Costo complessivo(1,1) (1,1)(1,N) MANUTENZIONERICHIESTTELEFONO A (1,N)Num Tel (1,N) (0,N)(1,1) (1,N)FATTURAINTESTAZIONE DI TIPONumero TIPOData (1,N)Importo Costruttore TIPO AUTOModello CilindrataUTILIZZ Informazioni TecnicheO (1,N)(0,N)Codice (1,N)PEZZI DI RICAMBIO APPLICAZIONNome (0,N) ICostoFigura 8 : Schema E-R ristrutturato6. PROGETTAZIONE LOGICADurante questa fase della progettazione traduciamo modelli di dati diversi; a partiredallo schema E-R ristrutturato costruiamo uno schema logico equivalente, in grado dirappresentare 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.
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
Schema logico completo per l'autofficina
Tabella | Attributi |
---|---|
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 |
Implementazione delle operazioni
Creazione delle tabelle
CREATE TABLE CLIENTE ( CF VARCHAR(20), Cognome VARCHAR(50), Nome VARCHAR(50), Indirizzo VARCHAR(100) ); CREATE TABLE MANUTENZIONE ( Codice INT, CostoManodopera DECIMAL(10,2) ); CREATE TABLE AUTO ( Targa VARCHAR(10), Autoepoca VARCHAR(20), Annoimmatricolazione INT, CF VARCHAR(20), Modello VARCHAR(50), Costruttore VARCHAR(50) ); CREATE TABLE FATTURA ( NumFatt INT, Data DATE, Importo DECIMAL(10,2), CF VARCHAR(20) ); CREATE TABLE PEZZIDIRICAMBIO ( Codice INT, Nome VARCHAR(50), Costo DECIMAL(10,2) ); CREATE TABLE TIPIDIAUTO ( Modello VARCHAR(50), Costruttore VARCHAR(50), Cilindrata INT, InformazioniTecniche VARCHAR(200) ); CREATE TABLE TELEFONO ( NumTel VARCHAR(20), CF VARCHAR(20) ); CREATE TABLE RICHIESTA ( CF VARCHAR(20), CodMan INT ); CREATE TABLE EFFETTUATA ( CodMan INT, Targa VARCHAR(10) ); CREATE TABLE APPLICAZIONE ( Modello VARCHAR(50), Costruttore VARCHAR(50), CodRic INT ); CREATE TABLE UTILIZZO ( CodMan INT, CodRic INT ); CREATE TABLE FATTURADI ( NumFatt INT, CodMan INT );
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 INDEXTABLESPACE "USERS" | STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0) | PCTFREE 10 INITRANS 2 MAXTRANS 255) |
TABLESPACE "USERS" | PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS255 | STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 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 INDEXTABLESPACE "USERS" | STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0) | PCTFREE 10 INITRANS 2 MAXTRANS 255) |
TABLESPACE "USERS" | PCTFREE 10 PCTUSED 0 INITRANS 1 |
MAXTRANS255STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 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 ...