|
Appunti informatica |
|
Visite: 6065 | Gradito: | [ Medio appunti ] |
Leggi anche appunti:DatabaseDatabase Il database viene usato fortemente nelle imprese per gestire le I Semafori , ovvero la gestione della multiutenzaI Semafori , ovvero la gestione della multiutenza Chiariamo subito una cosa: già Piccola storia dei database assolutamente incompletaPiccola storia dei database assolutamente incompleta Probabilmente il più glorioso |
Gestione di un Team di Formula 1
Si vuole realizzare una base di dati per un team automobilistico di Formula 1. Le autovetture in dotazione al team sono caratterizzate da una sigla, da un nome, dalla potenza, dal tipo di motore e da una descrizione tecnica.
Ogni membro del team è caratterizzato da un codice, da un nome e dai dati anagrafici. Per gli ingegneri e i meccanici del team si vuole tenere traccia della loro specializzazione, mentre per i collaudatori si vuole tenere traccia delle autovetture a loro assegnate per il collaudo. Si suppone che un collaudatore collaudi sempre la medesima macchina. Per i piloti si vuol tenere traccia del numero di vittorie complessivo nella loro carriera, nonché del numero di campionati mondiali vinti. Un pilota non può essere contemporaneamente anche un collaudatore.
Ogni gara è contraddistinta dal nome (es. 'G.P. Italia'), dal luogo in cui si svolge (es. Monza) e dalla data. Si vuole tenere traccia della partecipazione di un pilota ad una data gara, che si suppone avvenga guidando una e una sola macchina. Tuttavia, in gare diverse, un pilota può guidare auto diverse. Inoltre, si vuole tenere traccia dell'eventuale vittoria di un pilota del team in una determinata gara. Per ogni gara, si vuole tenere traccia del giro veloce, registrando anche il tempo ottenuto. Nel caso in cui il giro veloce sia stato ottenuto da un pilota del team, se ne vuole tenere traccia.
SPECIFICHE SULLE OPERAZIONI
O1-Inserimento dati gara
O2-Ricerca dati anagrafici di un dato membro del team
O3-Ricerca pilota che ha guidato una data autovettura in una data gara
O4-Lista dei giri veloci fatti da un pilota del team
O5-Lista posizioni di un pilota in tutte le gare del campionato
O6-Ricerca del meccanico e/o ingegnere del team che ha una data specializzazione
O7-Ricerca caratteristiche autovettura che ha partecipato ad una data gara
O8-Ricerca collaudatore assegnato ad una data autovettura
ANALISI DEI REQUISITI
In questa fase si analizzano e ristrutturano i requisiti raccolti, che facendo uso di un linguaggio naturale potrebbero essere causa di ambiguità o fraintendimenti. Si individuano pertanto i termini più rilevanti, eventuali sinonimi e/o omonimi, la correlazione esistente tra i vari termini. Si costruisce poi il glossario dei termini, per una maggiore comprensione e precisazione dei terminali usati. Risulta utile partizionare le specifiche e raggrupparle in gruppi di frasi che si riferiscono ad informazioni omogenee.
Frasi di carattere generale
Si vuole realizzare una base di dati per un team automobilistico di formula 1. La base di dati deve mantenere informazioni sui membri del team, sulle autovetture, e le gare a cui partecipa (nell'ambito di un campionato mondiale di formula 1).
Le autovetture in dotazione al team sono caratterizzate da una sigla, da un nome, dalla potenza, dal tipo motore e da una descrizione tecnica.
Ogni membro del team è caratterizzato da un codice, e dai dati anagrafici. Comprende i piloti, collaudatori, meccanici, ingegneri.
Frasi relative ai piloti
Per i piloti si vuol tener traccia del numero di vittorie complessive in carriera, del numero di campionati vinti, della partecipazione ad una data gara, che si suppone avvenga guidando una sola autovettura. In gare diverse un pilota può guidare auto diverse. Si deve tenere traccia delle eventuale vittoria di un pilota del team in una gara, e qualora effettui il giro veloce se ne vuol tenere traccia.
Si deve tener traccia delle autovetture loro assegnate per il collaudo, supponendo che ogni collaudatore nell'arco di un campionato collaudi sempre la medesima macchina.
Si vuol memorizzare la loro specializzazione.
Si vuol memorizzare la loro specializzazione.
Ogni gara è contraddistinta dal nome, luogo e data. Per ogni gara si deve tener traccia del giro veloce registrando il tempo ottenuto.
Glossario dei termini
Termine |
Descrizione |
Sinonimi |
Collegamenti |
Membro del team |
Dipendente del team di formula1, ovvero piloti, meccanici,ingegneri , collaudatori. |
|
piloti, meccanici,ingegneri collaudatori. |
Autovettura |
A disposizione del team |
Auto, Macchina |
|
Pilota |
Guida le autovetture del team |
|
Autovettura, Gara |
Gara |
Evento di competizione tra i vari team |
|
Pilota, Autovettura |
PROGETTAZIONE CONCETTUALE
E' possibile ora passare alla costruzione del modello concettuale della base di dati. I concetti individuati nella realtà di interesse devono essere rappresentati tramite i vari costrutti in un modello E-R. In particolare i concetti che hanno proprietà ed esistenza autonoma sono classificati in entità, ed i concetti che legano le entità individuate sono rappresentati da relazioni. Il tutto è fatto adattando al tempo stesso una tecnica Top- down e bottom-up. Si giunge così ad uno schema E-R.
Fig1 :
Schema E/R
Il dizionario dei dati completa la documentazione della progettazione concettuale. Esso comprende una tabella che descrive le entità dello schema E-R, con la sua descrizione, la descrizione degli attributi e degli identificatori, e da una tabella che descrive le relazioni dello schema E-R, con le entità partecipanti e gli eventuali attributi.
Entità |
Descrizione |
Attributi |
Identificatore |
Membro team |
Lavora per il team con varie tipologie |
Codice,dati anagrafici |
Codice |
Ingegnere |
Ha una specializzazione |
Codice, dati anagrafici ,specializzazione |
Vedi membro team |
Meccanico |
Ha una specializzazione |
Codice, dati anagrafici ,specializzazione |
Vedi membro team |
Collaudatore |
Collauda una autovettura |
Codice, dati anagrafici |
Vedi membro team |
Pilota |
Guida le autovetture del team |
Codice, dati anagrafici, vittorie,mondiali,vittorie precedenti |
Vedi membro team |
Gara |
Evento di competizione tra i vari team |
Nome, data, luogo, giro veloce |
Nome |
Autovettura |
A disposizione del team |
Nome,sigla,potenza,motore,descrizione |
Sigla |
Dizionario dei dati -Entità
Relazione |
Entità Partecipanti |
Descrizione |
Attributi |
Assegnazione |
Collaudatore,autovettura |
Associa ad ogni collaudatore l'autovettura che collauda |
|
Partecipazione |
Pilota, Gara,Autovettura |
Associa ad ogni pilota del team la gara a cui ha partecipato e l'autovettura usata |
Indicatore giro veloce, posizione |
Dizionario dei dati -Entità
Concetto |
Tipo |
Volume |
Membro Team |
E |
|
Ingegnere |
E |
|
Meccanico |
E |
|
Collaudatore |
E |
|
Pilota |
E |
|
Gara |
E |
|
Partecipazione |
R |
|
Autovettura |
E |
|
Operazione |
Frequenza |
Frequenza |
O1 |
O1- Inserimento dati gara |
2/15gg |
O2 |
O2-Ricerca dati anagrafici di un dato membro del team |
100/mese |
O3 |
O3-Ricerca pilota che ha guidato una data autovettura in una data gara |
10/mese |
O4 |
O4-Lista dei giri veloci fatti da un pilota del team |
10/mese |
O5 |
O5-Lista posizioni di un pilota in tutte le gare del campionato |
10/mese |
O6 |
O6-Ricerca del meccanico e/o ingegnere del team che ha una data specializzazione |
10/mese |
O7 |
O7-Ricerca caratteristiche autovettura che ha partecipato ad una data gara |
10/mese |
O8 |
O8-Ricerca collaudatore assegnato ad una data autovettura |
10/mese |
Per definire lo schema relazionale bisogna tradurre lo schema E/R, al fine di ottenere un insieme un insieme di relazioni. La fase alta della progettazione logica, ovvero quella indipendente dal modello dei dati scelto, prevede l'analisi delle ridondanze, l'eliminazione delle gerarchie, il partizionamento /riaccorpamento di entità relazioni e la scelta degli identificatori principali. Lo schema E/R non presenta ridondanze se non che l'attributo vittoria in pilota potrebbe essere ricavato dalla tabella partecipazione, ma in pratica è necessario tener memoria anche delle vittorie fatte in passato dal pilota.
Eliminazione delle gerarchie
MEMBRO TEAM
Fig2 : Schema E/R ristrutturato
Membro_Team (codice, nome, cognome, data_nascita, nazionalità,indirizzo)
Ingegnere (membro, specializz.)
col vincolo di integrità referenziale tra l'attributo membro nell'entità Ingegnere e l'attributo
codice in Membro_Team
Meccanico(membro, specializz.)
col vincolo di integrità referenziale tra l'attributo membro nell'entità Meccanico e l'attributo
codice in Membro_Team
Collaudatore(membro, autovettura)
col vincolo di integrità referenziale tra l'attributo membro nell'entità Collaudatore e l'attributo
codice in Membro_Team e col vincolo di integrità referenziale tra l'attributo autovettura e l'attributo sigla in autovettura
Pilota(membro, vittorie, mondiali)
col vincolo di integrità referenziale tra l'attributo membro nell'entità Pilota e l'attributo
codice in Membro_Team
Autovettura(nome, sigla, potenza, motore, descrizione)
Gara(nome, data, luogo, giro_veloce)
Partecipazione(pilota, gara, autovettura, ind_giroveloce, posizione)
col vincolo di integrità referenziale tra l'attributo pilota e l'attributo membro nell'entità Pilota,
tra l'attributo gara e l'attributo nome nell'entità Gara, tra l'attributo autovettura e l'attributo sigla nell'entità Autovettura
Nello script di installazione il tablespace, concetto logico usato da Oracle per rappresentare un'area di memoria in grado di contenere tabelle , è stato allocato con procedura automatica , tenendo conto del carico a regime e della crescita del database che in questo semplice data base è trascurabile. Si è fatto riferimento alla seguente espressione :
SpazioMemoriaIniziale=1.2
dove la somma va estesa al numero di attributi presenti in tabella.
CREATE TABLE 'TEMPES04'.'MEMBRO_TEAM' ('CODICE' NUMBER(2) NOT
NULL, 'NOME' VARCHAR2(20 byte) NOT NULL, 'COGNOME'
VARCHAR2(20 byte) NOT NULL, 'DATA_NASCITA' DATE NOT NULL,
'INDIRIZZO' VARCHAR2(40 byte) NOT NULL, 'NAZIONALITA'
VARCHAR2(20 byte) NOT NULL,
CONSTRAINT 'PK_MEMBRO_TEAM' 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 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'INGEGNERE' ('MEMBRO' NUMBER(2) NOT NULL,
'SPECIALIZZ' VARCHAR2(20 byte) NOT NULL,
CONSTRAINT 'FK_INGEGNERE_MEMBRO_TEAM' FOREIGN KEY('MEMBRO')
REFERENCES 'TEMPES04'.'MEMBRO_TEAM'('CODICE'),
CONSTRAINT 'PK_INGEGNERE' PRIMARY KEY('MEMBRO')
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 'TEMPES04'.'MECCANICO' ('MEMBRO' NUMBER(2) NOT NULL,
'SPECIALIZZ' VARCHAR2(20 byte) NOT NULL,
CONSTRAINT 'FK_MECCANICO_MEMBRO_TEAM' FOREIGN KEY('MEMBRO')
REFERENCES 'TEMPES04'.'MEMBRO_TEAM'('CODICE'),
CONSTRAINT 'PK_MECCANICO' PRIMARY KEY('MEMBRO')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'COLLAUDATORE' ('MEMBRO' NUMBER(2) NOT NULL, 'AUTOVETTURA' VARCHAR2(2 byte) NOT NULL,
CONSTRAINT 'FK_COLLAUDATORE_MEMBRO_TEAM' FOREIGN KEY('MEMBRO'),
CONSTRAINT 'FK_COLLAUDATORE_AUTOVETTURA' FOREIGN
KEY('AUTOVETTURA')
REFERENCES 'TEMPES04'.'AUTOVETTURA'('SIGLA'),
CONSTRAINT 'PK_COLLAUDATORE' PRIMARY KEY('MEMBRO')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'PILOTA' ('MEMBRO' NUMBER(2) NOT NULL,
'VITTORIE' NUMBER(3) NOT NULL, 'MONDIALI' NUMBER(2) NOT NULL,
'VITTPR' NUMBER(2),
CONSTRAINT 'FK_PILOTA_MEMBRO_TEAM' FOREIGN KEY('MEMBRO')
REFERENCES 'TEMPES04'.'MEMBRO_TEAM'('CODICE'),
CONSTRAINT 'PK_PILOTA' PRIMARY KEY('MEMBRO')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'AUTOVETTURA' ('NOME' VARCHAR2(10 byte)
NOT NULL, 'SIGLA' VARCHAR2(2 byte) NOT NULL, 'POTENZA'
VARCHAR2(20 byte) NOT NULL, 'MOTORE' VARCHAR2(20 byte) NOT
NULL, 'DESCRIZIONE' VARCHAR2(50 byte) NOT NULL,
CONSTRAINT 'PK_AUTOVETTURA' PRIMARY KEY('SIGLA')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'GARA' ('NOME' VARCHAR2(20 byte) NOT NULL,
'DATA' DATE NOT NULL, 'LUOGO' VARCHAR2(20 byte) NOT NULL,
'GIRO_VELOCE' VARCHAR2(10 byte) NOT NULL,
CONSTRAINT 'PK_GARA' PRIMARY KEY('NOME')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
CREATE TABLE 'TEMPES04'.'PARTECIPAZIONE' ('PILOTA' NUMBER(2) NOT
NULL, 'GARA' VARCHAR2(20 byte) NOT NULL, 'AUTOVETTURA'
VARCHAR2(2 byte) NOT NULL, 'IND_GIROVELOCE' NUMBER(1) NOT
NULL, 'POSIZIONE' NUMBER(2) NOT NULL,
CONSTRAINT 'AUTOVETTURA_UNICA' UNIQUE('GARA', 'AUTOVETTURA')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255,
CONSTRAINT 'BOOL_PARTECIPAZIONE' CHECK(ind_giroveloce=0 or
ind_giroveloce=1 ),
CONSTRAINT 'FK_PARTECIPAZIONE_AUTOVETTURA' FOREIGN
KEY('AUTOVETTURA')
REFERENCES 'TEMPES04'.'AUTOVETTURA'('SIGLA'),
CONSTRAINT 'FK_PARTECIPAZIONE_GARA' FOREIGN KEY('GARA')
REFERENCES 'TEMPES04'.'GARA'('NOME'),
CONSTRAINT 'FK_PARTECIPAZIONE_PILOTA' FOREIGN KEY('PILOTA')
REFERENCES 'TEMPES04'.'PILOTA'('MEMBRO'),
CONSTRAINT 'GIRO_VELOCE_UNICO' UNIQUE('GARA',
'IND_GIROVELOCE')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255,
CONSTRAINT 'PK_PARTECIPAZIONE' PRIMARY KEY('PILOTA', 'GARA')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255,
CONSTRAINT 'POSIZIONE_UNICO' UNIQUE('GARA', 'POSIZIONE')
USING INDEX
TABLESPACE 'USERS'
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE 'USERS' PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS
255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS
2147483645 PCTINCREASE 0)
LOGGING
Operazioni 1
Exec myinsert(pilota,'nomegara','autovettura',ind_giroveloce,posizione);
Operazione 2
select nome,cognome,data_nascita,indirizzo,nazionalita
from membro_team
Operazione 3
select m.nome,m.cognome
from membro_team m, partecipazione p
where m.codice=p.pilota and p.gara='Gp San Marino' and
p.autovettura='C4' ;
Operazione 4
select p.gara,g.giro_veloce
from partecipazione p, gara g
where p.gara=g.nome and p.pilota=1 and p.ind_giroveloce=1;
Operazione 5
select gara,posizione
from partecipazione
where pilota=2 ;
Operazione 6
select m.nome,m.cognome
from membro_team m, meccanico me
where m.codice=me.membro and specializz='Gommista' ;
select m.nome,m.cognome
from membro_team m, ingegnere i
where m.codice=i.membro and specializz='Telemetria' ;
select potenza,motore,descrizione
from autovettura a,partecipazione p
where p.autovettura=a.sigla and
p.gara='Gp Germania';
Operazione 8
select m.nome,m.cognome
from membro_team m,collaudatore c
where m.codice=c.membro and c.autovettura='C2' ;
Inserimento dati gara
create or replace procedure myinsert
( inPilota partecipazione.pilota%type,
inGara partecipazione.gara%type,
inAutovettura partecipazione.autovettura%type,
inIND_giroveloce partecipazione.ind_giroveloce%type ,
)
as
begin
insert into partecipazione(pilota,gara,autovettura,ind_giroveloce,posizione)
values (inPilota,inGara,inAutovettura,inIND_giroveloce,inPosizione);
commit;
end;
Trigger (per l'aggiornamento automatico delle vittorie di un pilota del team)
create or replace trigger vittorie
after insert on partecipazione
declare
pil pilota.membro%type;
numpr pilota.vittpr%type;
vittorievar pilota.vittorie%type;
cursor vittpilota is
select pilota, count(posizione) from partecipazione where posizione=1 group by pilota;
begin
open vittpilota;
FETCH vittpilota into pil,vittorievar;
exit when vittpilota%NOTFOUND;
select vittpr into numpr from pilota where membro=pil;
update pilota set vittorie=vittorievar+numpr where membro=pil;
end loop;
close vittpilota;
end;
CREATE SEQUENCE 'TEMPES04'.'SEQ_MEMBRO' INCREMENT BY 1 START WITH
45 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER
Inserimento dati Membro_Team
create or replace procedure datimembro
INNOME MEMBRO_TEAM.NOME%TYPE,
INCOGNOME MEMBRO_TEAM.COGNOME%TYPE,
INDATA_NASCITA MEMBRO_TEAM.DATA_NASCITA%TYPE ,
ININDIRIZZO MEMBRO_TEAM.INDIRIZZO%TYPE,
INNAZIONALITA MEMBRO_TEAM.NAZIONALITA%TYPE
as
begin
INSERT INTO MEMBRO_TEAM(CODICE,NOME,COGNOME,DATA_NASCITA,INDIRIZZO,
NAZIONALITA)
VALUES(SEQ_MEMBRO.nextval,INNOME,INCOGNOME,INDATA_NASCITA,
ININDIRIZZO,INNAZIONALITA);
COMMIT;
end;
CREATE OR REPLACE TRIGGER 'TEMPES04'.'NOTIZIA' BEFORE
INSERT ON 'PARTECIPAZIONE' FOR EACH ROW declare
nomevar MEMBRO_TEAM.NOME %TYPE;
cognomevar MEMBRO_TEAM.COGNOME %TYPE;
idpilota PARTECIPAZIONE.PILOTA %TYPE;
nomegara PARTECIPAZIONE.GARA %TYPE;
pos PARTECIPAZIONE.POSIZIONE %TYPE;
BEGIN
POS:= :new.POSIZIONE;
IDPILOTA:= :new.PILOTA;
NOMEGARA:= :new.GARA;
SELECT NOME, COGNOME INTO NOMEVAR, COGNOMEVAR FROM MEMBRO_TEAM
WHERE MEMBRO_TEAM.CODICE=IDPILOTA;
DBMS_OUTPUT.PUT_LINE('IL PILOTA'||' '||NOMEVAR||' '||COGNOMEVAR||' è ARRIVATO '||TO_CHAR(POS)||'° AL GRAN PREMIO DI '||NOMEGARA);
end;
Questo semplice data base, che mi ha consentito un primo approccio con le basi di dati, può avere delle estensioni , ad esempio lo sviluppo di una applicazione client che accede al database server.
Ad esempio, qualora il codice associato al membro del team sia segreto la base dati può essere interrogata per consentire l'accesso ai membri del team mediante un badge magnetico alle strutture a disposizione del team.
Per quanto riguarda l'affidabilità, penso che sia sufficiente una copia di backup fatta una volta che sono stati inseriti i dati relativi ai membri del team e fare successivamente qualche copia con tecnica incrementale.
Appunti su: https:wwwappuntimaniacominformaticadatabaseprogetto-del-modulo-di-basi-di73php, |
|