Documente Academic
Documente Profesional
Documente Cultură
AUTOGARA Transmoldavia
Scenariu
Proiectul are ca scop evidenta Autogarii Transmoldavia, din Piatra Neamt. Acesta contine
notiuni fundamentale de baza de date, descrierea lucrarii, tabele, atribute, relatii,restrictii,
schema tabeleleor, codul SQL pentru tabele si comenzi SQL.
Baza de date contine informatii atat despre firmele care platesc isi desfasoara activitatea,
cat si relatii despre plecari, sosiri, masini si soferi.
Tema aleasa are ca scop organizarea,evidenta si gestiunea sosirilor si plecarilor ,cat si a altor
elemente intr-o autogara. Asadar aceasta baza de date corespunde nevoilor organizatorice si
de gestiune a unei autogari deoarece:
❖ baza de date pastreaza inregistrarea intregii activitati, facand activitatea mai usor de
gestionat;
1
▪ Tabela Plercari-contine informatii despre masinile care pleaca din Autogara
Transmoldavia, precum data,ora,codul localitatii spre care pleaca, precum si id-ul
soferului;
▪ Tabela Soferi-contine informatii despre soeri.Fiecare sofer este identificat printr-un id,
dar regasim si numele,prenumele,data nasterii, data angajarii,precum si firma l acre
este angajat
2
Diagrama ERD
LOCALITATE SOSIRE
#cod #id_sosire
*denumire *cod_localitate
*judet *data
*ora
FIRMA
#CUI
PLECARE
*nume_firma
#id_plecare
*adresa
*cod_localitate
*telefon ail
*data
⃝e-mail
*ora
SOFER
MASIAN
#id_sofer
#id_masian
*nume
*nr_inmatriculare
*prenume
*nr_locuri
*data_nasterii
*tip_masian
*data_angajarii
3
Tabelele de mapare
LOCALITATI(LCE)
PLECARI(PCE)
SOSIRI(SSE)
SOFERI(SFR)
4
* Data_angajarii
CS * Firma Relatie cu tabela Firme
FIRME(FRM)
MASINI(MSN)
5
CS o marca_drr Relaţia cu DIRECTORI (DRR)
Creare tabele
6
Creare tabelă Masini:
CREATE TABLE MASINI(id_masini NUMBER(4) PRIMARY KEY,nr_inmatriculare VARCHAR(10) UNIQUE,
nr_locuri NUMBER(2), tip_masina VARCHAR(8),firma NUMBER(5) REFERENCES firme(cui))
Popularea tabelelor
Populare Localitati:
INSERT INTO localitati Values(11,'Piatra-Neamt','Neamt')
7
Populare Firme:
INSERT INTO firme VALUES(60020,'Transmoldavia','Piatra-Neamt, B-dul Unirii,nr2', 2323838210,
'transmoldavia@yahoo.com')
'superunivtrans@yahoo.com')
Florilor,nr22',3968593485,'bucovina_trans@yahoo.com')
Populare Soferi:
INSERT INTO SOFERI VALUES(100,'Gavrila','Mihai',TO_DATE('12/10/80','DD/MM/RR')
,TO_DATE('22/10/10','DD/MM/RR'),
60020)
,TO_DATE('12/11/80','DD/MM/RR'),4070)
,TO_DATE('18/01/15','DD/MM/RR'),60020)
,TO_DATE('12/03/13','DD/MM/RR'),60020)
,TO_DATE('20/06/09','DD/MM/RR'),56000)
VALUES(700,'Mandrusca','Constantin',TO_DATE('30/06/75','DD/MM/RR'),TO_DATE('12/12/18','DD/
MM/RR'),22445)
VALUES(800,'Armanca','Eusebiu',TO_DATE('23/03/80','DD/MM/RR')
,TO_DATE('12/04/05','DD/MM/RR'),22445)
Populare Masini:
INSERT INTO MASINI VALUES(1122,'NT-08-MRN',20,'microbuz',60020)
9
Populare Plecari:
INSERT INTO PLECARI VALUES(3001,22,TO_DATE('22/05/23','DD/MM/RR'),'14:00',1122,200)
Populare Sosiri:
10
INSERT INTO SOSIRI VALUES(4001,66,TO_DATE('12/10/20','DD/MM/RR'),'14:00',1122,500)
Modificări de structură:
• in tabela SOFERI data nasterii sa fie mai mica decat data angajarii
11
ADD CHECK(data_nasterii<data_angajarii)
Modificări de continut:
• se sterge din tabela Plecari inregistrarile in care id_ul masinii =1133
• se modifica adresa cu CUI=4070 din tabela Firme in 'Piatra-Neamt, B-dul Stefan cel Mare , nr
2'
UPDATE FIRME SET adresa='Piatra-Neamt, B-dul Stefan cel Mare , nr 2'WHERE CUI=4070;
12
• se adauga o noua coloana cod_localitate in Tabela Firme care fce referire la cod din tabela
Localitati
UPDATE FIRME
SET cod_localitate=11
WHERE CUI=60020;
UPDATE FIRME
SET cod_localitate=11
WHERE CUI=4070;
UPDATE FIRME
SET cod_localitate=11
WHERE CUI=56000;
UPDATE FIRME
SET cod_localitate=55
WHERE CUI=22445;
Creare vederi
1)INFORMATII MASINI
13
SELECT masini.nr_inmatriculare, masini.nr_locuri,firme.nume_firma
FROM masini,firme
WHERE masini.firma=firme.cui
2)INFORMATII PLECARI
SELECT plecari.data,plecari.ora,masini.nr_inmatriculare,masini.nr_locuri,soferi.nume,soferi.prenume
FROM plecari,soferi,masini
WHERE plecari.masina=masini.id_masini
AND plecari.soferi=soferi.id_sofer
INTEROGARI
Interogări
1)Firmele, numarul de telefon si judetul de care apartin.
14
SELECT firme.nume_firma AS FIRMA, firme.telefon AS TELEFON, localitati.judet AS JUDET from Firme
Join Localitati
ON(localitati.cod=firme.cod_localitate);
FROM soferi
WHERE p.masina=m.ID_masini
AND p.cod_localitate=22
ORDER BY data
15
4) Se actualizeaza tabela firme cu chiriile pe care trebuie sa le plateasca fiecare.
UPDATE FIRME
SET chirie=300
WHERE CUI=60020
UPDATE FIRME
SET chirie=450
WHERE CUI=4070
UPDATE FIRME
SET chirie=600
WHERE CUI=56000
UPDATE FIRME
SET chirie=480
WHERE CUI=22445
5)Firmele care platesc chirie o suma mai mare decat media tuturor firmelor
FROM firme f
16
6)Toate masinile care sosesc intre 12:00 si 14:00
WHERE m.id_masini=s.masina
SELECT s.nume,s.prenume,p.data,p.ora
WHERE s.id_sofer=p.soferi
FROM soferi s
WHERE ROUND(sysdate-data_angajarii)/365>10
ORDEY BY nume;
17
9) Detalii plecari masini>22 locuri
SELECT masini.nr_inmatriculare,masini.nr_locuri,firme.nume_firma AS
FIRMA,plecari.ora,plecari.data,localitati.denumire
WHERE masini.nr_locuri>22
WHERE localitati.judet='Neamt'
ORDER BY denumire
18
FROM firme;
12)Detalii plecari
FROM soferi
WHERE ROUND((Sysdate-data_angajarii)/365)<10
ORDER BY NUME
19