Sunteți pe pagina 1din 11

Tema Proiect:

Transport
marfuri

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
Scenariu descriptiv:
Compania de transport si logistica Gebruder Weiss este prezenta pe piata cu o vechime si
experienta vasta. Filiala din Cluj Napoca opereaza de mai bine de 8 ani, oferind mai multe
servicii, precum: solutii de depozitare si logistica, servicii de transport rutier de marfuri, atat la
nivel national cat si international. Oferta distributiei nationale este una competitiva, castigand
increderea mai multor client mari din diverse domenii.
In cele ce urmeaza, prin baza de date implementata si pe platforma Oracle Application
Express, voi evidentia principlaii clienti cu care lucreaza compania, diferitele tipuri de marfuri
transportate, ariile acoperite de filiala din Cluj Napoca, volumul de marfa transportat si costurile
efective de transport.

Diagrama Entitate Relatie (ERD)

CLIENT
ARII #CUI
#indicativ *denumire
*oras *strada
*numar
*localitate

MARFA COSTURI
#CodProdus #tarif_minim
*tip *pret_volum
*volum

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
In ceea ce priveste prima relatie putem observa ca o arie (ma refer aici la zona
geographica) poate fi acoperita din punct de vedere a marfii de mai multi clienti, mai
multi clienti trimit marfa in mai multe arii.
Mergand mai departe avem: un client poate produce mai multe tipuri de marfa, marfa
produsa specifica apartine unui singur client.
Marfa primeste mai multe costuri, dar costurile primite apartin unui singur tip de marfa.
Clientul primeste mai multe costuri de transport, costurile de transport apartin mai multor
clienti.

Tabele de mapare
ARII
Tip Opionalit Nume
cheie ate coloan
CP * Indicativ
* oras

CLIENT
Tip Opionalit Nume
cheie ate coloan
CP * CUI
* denumire
* strada
* Numar
* loalitate

MARFA
Tip Opionalit Nume
cheie ate coloan
CP * CodProdus
* tip
* volum

COSTURI
Tip Opionalit Nume
cheie ate coloan
CP * Tarif_minim
* Pret_volum

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
Crearea tabelelor
CREATE TABLE "ARII"
( "INDICATIV" NUMBER(1,10) NOT NULL ENABLE,
"ORAS" VARCHAR2(30) NOT NULL ENABLE,
CONSTRAINT "ARII_PK" PRIMARY KEY ("INDICATIV")
USING INDEX ENABLE
)
/

CREATE OR REPLACE TRIGGER "BI_ARII"


before insert on "ARII"
for each row
begin
if :NEW."INDICATIV" is null then
select "ARII_SEQ".nextval into :NEW."INDICATIV" from sys.dual;
end if;
end;

/
ALTER TRIGGER "BI_ARII" ENABLE
/
- Dupa cum se poate observa s-a creat o secventa ARII_SEQ pentru a se asigura auto-
increment. Folosind trigger, adaug automat la popularea tabelelor un index incrementat
de la 1+ fiecarei intrari.
CREATE TABLE "CLIENT"
( "CUI" NUMBER(6,0) NOT NULL ENABLE,
"DENUMIRE" VARCHAR2(35) NOT NULL ENABLE,
"STRADA" VARCHAR2(25) NOT NULL ENABLE,
"NUMAR" CHAR(7) NOT NULL ENABLE,
"LOCALITATE" VARCHAR2(30) NOT NULL ENABLE,
CONSTRAINT "CLIENT_PK" PRIMARY KEY ("CUI")
USING INDEX ENABLE
)
/

CREATE OR REPLACE TRIGGER "BI_CLIENT"


before insert on "CLIENT"
for each row
begin
if :NEW."CUI" is null then
select "CLIENT_SEQ".nextval into :NEW."CUI" from sys.dual;
end if;
end;

/
ALTER TRIGGER "BI_CLIENT" ENABLE

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
/

CREATE TABLE "MARFA"


( "COD_PRODUS" NUMBER(2,0) NOT NULL ENABLE,
"TIP" VARCHAR2(35) NOT NULL ENABLE,
"VOLUM" VARCHAR2(25) NOT NULL ENABLE,
CONSTRAINT "MARFA_PK" PRIMARY KEY ("COD_PRODUS")
USING INDEX ENABLE
)
/

CREATE OR REPLACE TRIGGER "BI_MARFA"


before insert on "MARFA"
for each row
begin
if :NEW."COD_PRODUS" is null then
select "MARFA_SEQ".nextval into :NEW."COD_PRODUS" from sys.dual;
end if;
end;

/
ALTER TRIGGER "BI_MARFA" ENABLE
/

CREATE TABLE "COSTURI"


( "TARIF_MINIM" NUMBER(5,10) NOT NULL ENABLE,
"PRET_VOLUM" NUMBER(5,15) NOT NULL ENABLE
)
/

Popularea tabelelor
INSERT INTO "ARII"("INDICATIV","ORAS")
VALUES(SJ,ZALAU);
INSERT INTO "ARII"("INDICATIV","ORAS")
VALUES(CJ,CLUJ);
INSERT INTO "ARII"("INDICATIV","ORAS")
VALUES(SM,SATU MARE);
INSERT INTO "ARII"("INDICATIV","ORAS")
VALUES(MM,BAIA MARE);
INSERT INTO "ARII"("INDICATIV","ORAS")
VALUES(BN,BISTRITA);
INDICAT
IV ORAS
SJ Zalau
CJ Cluj
Satu
SM Mare
Proiect Baze de Date in
Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
Baia
MM Mare
BN Bistrita

INSERT INTO "CLIENT"("CUI","DENUMIRE","STRADA","NUMAR","LOCALITATE")


VALUES('123456','SC HENKEL ROMANIA','TRASCAULUI','33','CLUJ');
INSERT INTO "CLIENT"("CUI","DENUMIRE","STRADA","NUMAR","LOCALITATE")
VALUES('654321','SC CEMACON SA','DEPOZITELOR','66','ZALAU');
INSERT INTO "CLIENT"("CUI","DENUMIRE","STRADA","NUMAR","LOCALITATE")
VALUES('112233','SC ELECTROLUX SA','HENRI COANDA','99','SATU MARE');
INSERT INTO "CLIENT"("CUI","DENUMIRE","STRADA","NUMAR","LOCALITATE")
VALUES('223344','SC GAMA AND GAMA SRL','BUCURESTI','22','BAIA MARE');
INSERT INTO "CLIENT"("CUI","DENUMIRE","STRADA","NUMAR","LOCALITATE")
VALUES('556677','SC RAAL SA','SUBCETATE','102','BISTRITA');

INSERT INTO "MARFA"("COD_PRODUS","TIP","VOLUM")


VALUES('11','ADEZIVI','10 PALETI');
INSERT INTO "MARFA"("COD_PRODUS","TIP","VOLUM")
VALUES('22','CARAMIDA','7 PALETI');
INSERT INTO "MARFA"("COD_PRODUS","TIP","VOLUM")
VALUES('33','ELECTROCASNICE','5 PALETI');
INSERT INTO "MARFA"("COD_PRODUS","TIP","VOLUM")
VALUES('44','FOOD','15 PALETI');

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
INSERT INTO "MARFA"("COD_PRODUS","TIP","VOLUM")
VALUES('55','RADIATOARE','33 PALETI');

COD_PRO VOLU
DUS TIP M
10
PALE
11 ADEZIVI TI
7
PALE
22 CARAMIDA TI
5
ELECTROCA PALE
33 SNICE TI
15
PALE
44 FOOD TI
33
PALE
55 RADIATOARE TI

INSERT INTO "COSTURI"("TARIF_MINIM","PRET_VOLUM")


VALUES('125','750');
INSERT INTO "COSTURI"("TARIF_MINIM","PRET_VOLUM")
VALUES('135','550');
INSERT INTO "COSTURI"("TARIF_MINIM","PRET_VOLUM")
VALUES('155','500');
INSERT INTO "COSTURI"("TARIF_MINIM","PRET_VOLUM")
VALUES('140','300');
INSERT INTO "COSTURI"("TARIF_MINIM","PRET_VOLUM")
VALUES('220','1400');

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
Constrangeri
ALTER TABLE "COSTURI" ADD CONSTRAINT "pret_valid" CHECK ("TARIF_MINIM" BETWEEN 1
and 275) prin aceasta constrangere am setat practice ca pretul minim sa fie pozitiv sis a nu
poata depasi suma de 275 euro.

Modificari de structura
ALTER TABLE "MARFA" ADD ("SUPRAPOZABIL" VARCHAR2(35));

ALTER TABLE "MARFA" ADD ("NESUPRAPOZABIL" VARCHAR2(35));


ALTER TABLE "MARFA" DROP COLUMN "SUPRAPOZABIL";
ALTER TABLE "MARFA" DROP COLUMN "NESUPRAPOZABIL";
- practic prin ultimele doua comenzi am revenit la structura normala a tabelei.

Modificari de constinut

- se adauga tva-ul la pret_volum:


UPDATE "COSTURI" set PRET_VOLUM=PRET_VOLUM*1.19 where TARIF_MINIM='220';

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
- toate indicativele din tabela ARII vor fi scrise cu litere mici:
UPDATE "ARII" set "INDICATIV"=LOWER(INDICATIV)

View pe baza a doua tabele

CREATE OR REPLACE FORCE VIEW "V_MARFA_COSTURI" ("TARIF_MINIM", "PRET_VOLUM",


"CUI", "DENUMIRE") AS
select COSTURI.TARIF_MINIM as TARIF_MINIM,
COSTURI.PRET_VOLUM as PRET_VOLUM,
CLIENT.CUI as CUI,
CLIENT.DENUMIRE as DENUMIRE
from CLIENT CLIENT,
COSTURI COSTURI
/
TARIF_MINI PRET_VOL
M UM CUI DENUMIRE
12345 SC HENKEL CERESIT
125 750 6 ROMANIA
65432
155 500 1 SC CEMACON SA
11223
135 550 3 SC ELECTROLUX SA
22334 SC GAMA AND GAMA
140 300 4 SRL
55667
220 1666 7 SC RAAL SA

Interogari

Pentru ce clienti face transport de marfa compania Gebruder Weiss?


Proiect Baze de Date in
Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
SELECT DENUMIRE FROM CLIENT;

Care este firma care isi are sediul social la Bistrita, in judetul Bistrita-nasaud?
SELECT DENUMIRE FROM CLIENT where localitate='BISTRITA';

DENUMIRE

SC RAAL SA

Cate tipuri de produse se transporta conform codului produselor?

Sa se afiseze pretul minim total!

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly
Sa se afiseze cate tarife depasesc suma de 1400 de euro!
SELECT COUNT("PRET_VOLUM") AS "PRETURI_PESTE_1400_EURO"
FROM "COSTURI"
WHERE "PRET_VOLUM" > 1400;
PRETURI_PESTE_1400_
EURO
1

Proiect Baze de Date in


Economie
Informatica Economica ID,
An.3
Bihari Zsolt - Mihaly

S-ar putea să vă placă și