Integrarea Bazelor de Date cu Alte Tehnologii Informatice

Academia de studii economice

Facultatea de cibernetică, statistică si informatică economică

Panduroaica Alina-Florentina

An II, Seria B, Grupa 1031

București, 2015

PL/SQL avansat (extensia OO)

Schema conceptuală a bazei de date

Am realizat gestiunea unui parc auto. Parcul auto presteaza servicii de vânzare a diferitelor tipuri de vehicule.

Am creat tipurile de obiecte:

VEHICUL – clasa principală din care am derivat clasele „Camion” și „Mașină”

CAMION,

MASINA.

Pe baza obiectelor, am creat tabelele:

VEHICULE,

CAMIOANE,

MASINI.

Vehiculele sunt de două tipuri : camioane și mașini. Un vehicul se identifica unic prin numărul de inmatriculare. Acesta are mai multe caracteristici, precum : marcă, capacitate cilindrică, anul fabricației. Un camion se difențiază de mașină prin faptul că are remorcă (capacitatea remorcii), punți și o limită de viteză. Mașina, în schimb are locuri pentru pasageri și mai multe tipuri de caroserie.

Nr_inmatriculare este cheie primara in tabela VEHICULE și cheie externă în tabelele CAMIOANE și MAȘINI.

Schema conceptuală a bazei de date corespunzătoare parcului auto

VEHICULE

CAMIOANE

MAȘINI

Crearea tipurilor de obiecte

/* CREAREA TIPUL DE OBIECT VEHICUL*/

create or replace type vehicul as object (nr_inmatriculare varchar2(10),

marca varchar2(10),

capacitate number(4),

an_fabricatie number(4),

pret number(7,2),

static function pret_mediu return number,

member function get_marca return varchar2)

not final;

/* CREAREA TIPUL DE OBIECT CAMION DERIVAT DIN VEHICUL*/

create type camion under vehicul (capacitate_remorca number,

nr_punti number,

viteza_max number,

member procedure afisare,

static function get_viteza_maxima return number) final;

/* CREAREA TIPUL DE OBIECT MASINA DERIVAT DIN VEHICUL*/

create type masina under vehicul (nr_locuri number,

caroserie varchar2(100),

tuning varchar2(10),

static function pret_mediu return number,

member function get_nr_locuri_diferit return number,

member procedure caroserie_berlina) final;

Crearea tabelelor pe baza obiectelor

create table vehicule of vehicul;

create table camioane of camion;

create table masini of masina;

Inserarea datelor în tabele

delete from vehicule;

delete from camioane;

delete from masini;

insert into vehicule values(vehicul('B50PEA','Volkswagen',1900,2000,720));

insert into vehicule values(vehicul('B87CEO','Renault',1400,2010,430));

insert into vehicule values(vehicul('IF30AAA','Dacia',1000,2009,210));

insert into vehicule values(vehicul('CT10INI','Iveco',2009,2004,579));

insert into vehicule values(vehicul('IL01OOO','Mercedes',1900,2000,120));

insert into vehicule values(vehicul('TM123ZEN','BMW',1400,1995,410));

insert into vehicule values(vehicul('IF33ALA','Mazda',900,2014,900));

insert into vehicule values(vehicul('IF101BLU','Man',3000,2011,670));

insert into vehicule values(vehicul('CT10UUU','BMW',1400,2009,540));

insert into vehicule values(vehicul('DB11ILI','Dacia',2000,2009,300));

insert into camioane values(camion('B50PEA','Volkswagen',1900,2000,720,200,3,200));

insert into camioane values(camion('B87CEO','Renault',1400,2010,430,110,4,180));

insert into camioane values(camion('CT10INI','Iveco',2009,2004,579,150,4,150));

insert into camioane values(camion('IL01OOO','Mercedes',1900,2000,120,190,5,130));

insert into camioane values(camion('IF101BLU','Man',3000,2011,670,210,6,210));

insert into masini values(masina('IF30AAA','Dacia',1000,2009,210,2,'Berlina','NU'));

insert into masini values(masina('TM123ZEN','BMW',1400,1995,410,5,'Cabrio','DA'));

insert into masini values(masina('IF33ALA','Mazda',900,2014,900,7,'Break','DA'));

insert into masini values(masina('CT10UUU','BMW',1400,2009,540,4,'Coupe','DA'));

insert into masini values(masina('DB11ILI','Dacia',2000,2009,300,5,'Berlina','NU'));

Constrângeri tabele

alter table vehicule add constraint pk_vehicul primary key(nr_inmatriculare);

alter table camioane add constraint fk_camioane foreign key (nr_inmatriculare) references vehicule(nr_inmatriculare);

alter table masini add constraint fk_masini foreign key (nr_inmatriculare) references vehicule(nr_inmatriculare);

Crearea corpului obiectelor

/* CREAREA CORPULUI OBIECTULUI VEHICUL*/

Funcția statică PRET_MEDIU returnează prețul mediu de vânzare al tuturor vehiculelor din parcul auto.

Funcția membră GET_MARCA returnează categoria vehiculului în funcție de capacitatea cilindrică, astfel :

dacă capacitatea cilindrică este cuprinsă între 0-1000 atunci este un vehicul de uz personal

dacă capacitatea cilindrică este cuprinsă între 1001-2000 atunci este un vehicul de transport

dacă capacitatea cilindrică este mai mare decât 2000 atunci este un vehicul de teren.

create type body vehicul

is

static function pret_mediu return number

is

vRez number(7,2);

begin

select avg(pret) into vRez from vehicule;

return vRez;

end pret_mediu;

member function get_marca return varchar2

is

begin

if self.capacitate between 0 and 1000 then return 'Vehicul uz personal';

elsif self.capacitate between 1001 and 2000 then return 'Vehicul trasport';

else return 'Vehicul de teren';

end if;

end get_marca;

end;

/* CREAREA CORPULUI OBIECTULUI CAMION*/

Funcția statică GET_VITEZA_MAXIMA returnează viteza maximă ce poate fi atinsă de un camion din parcul auto.

Procedura membră AFISARE afișează detaliile despre camioane.

create or replace type body camion is

member procedure afisare

is

begin

dbms_output.put_line('Marca:'||self.marca||', nr inamtriculare:'||self.nr_inmatriculare||', capacitatea remorcii:'||self.capacitate_remorca||', viteza maxima:'||self.viteza_max||', numarul de punti:'||self.nr_punti);

end afisare;

static function get_viteza_maxima return number

is

vmax number;

begin

select max(viteza_max) into vmax from camioane;

return vmax;

end get_viteza_maxima;

end;

/* CREAREA CORPULUI OBIECTULUI MASINA*/

Funcția statică PRET_MEDIU este suprascrisa și returnează prețul mediu de vânzare al tuturor masinilor din parcul auto

Funcția membră get_nr_locuri_diferit returneaza numarul de locuri suplimentare sau în minus față de 5 locuri(nr de locuri standard).

Procedura membră caroserie berlină afișează un mesaj prin care se precizează tipul caroseriei.

create or replace type body masina is

static function pret_mediu return number

is

vRez number(7,2);

begin

select avg(pret) into vRez from masini;

return vRez;

end pret_mediu;

member function get_nr_locuri_diferit return number

is

begin

return abs(self.nr_locuri-5);

end get_nr_locuri_diferit;

member procedure caroserie_berlina

is

begin

if upper(self.caroserie)='BERLINA' THEN DBMS_OUTPUT.PUT_LINE('Masina cu numarul de inmatriculare '||self.nr_inmatriculare||' este berlina.');

else DBMS_OUTPUT.PUT_LINE('Masina cu numarul de inmatriculare '||self.nr_inmatriculare||' este nu este berlina! Este '||self.caroserie);

end if;

end caroserie_berlina;

end;

Interogarea obiectelor (apelarea tuturor metodelor)

-Afisarea pretului mediu pentru vehiculele din parcul auto

-Afisarea tipului de vehicul pentru toate vehiculele din parcul auto

-Apelul aceleiasi functii pentru o inregistrare data de la tastatura:

-Afisarea datelor despre camioanele parcului auto:

-Afisarea datelor despre un camion nou introdus:

-Determinarea vitezei maxime care poate fi atinsa de un camion al parcului auto:

Afisarea pretului mediu pentru masini (functie mostenita de la vehicul)-supraincarcare:

-Afisarea numerelor de locuri in plus sau in minus pe care le au masinile din parcul auto fata de normal(5 locuri)

-Afisarea tipului de caroserie pentru masinile din parcul auto cu precizarea celor berline:

Similar Posts

  • Activitatea de Marketing In Cadrul Transelectrica

    CUPRINS INTRODUCERE CAPITOLUL I 1.ASPECTE TEORETICE PRIVIND MIXUL DE MARKETING 1.1 Delimitări conceptuale 1.2 Mixul de marketing 1.3 Politici si strategii de produs 1.4. Politici si strategii de preț 1.5 Politici si strategii de distribuție 1.6 Politici si strategii de promovare CAPITOLULUL 2 – PREZENTAREA C.N.T.E.E. ,,TRANSELECTRICA’’ S.A 2.1.Istoricul firmei 2.2.Misiune si obiective 2.3.Indicatori economici…

  • Kinesiologia

    PARTEA I BAZELE TEORETICE ALE KINESIOLOGIEI Kinesiologia se bazează pe sistemul efector numit aparat kinetic = aparat locomotor = sistem musculo-scheletal = sistem neuro-musculo-articular = aparat mio-artro-kinetic. Acestea sunt denumiri care se utilizează pentru a numi sistemul efector al mișcării (mușchi, articulații care realizează mișcarea). Aparatul locomotor definește doar ideea de funcție a locomoției. Toate…

  • Microcontrolerul

    CAP 1. MICROCONTROLERE – NOȚIUNI GENERALE 1.1. INTRODUCERE ȘI DEFINIȚIE De-a lungul timpului oamenii au încercat să găsească diverse metode de a automatiza procesele tehnologice din dorința de a spori productivitatea, de a mări precizia (corectitudinea) executării proceselor, de a micșora timpul alocat realizării acestor procese și de a mări calitatea și fiabilitatea produselor rezultate…

  • Clauza de Preciput

    INTRODUCERE Prezenta lucrare „Clauza de preciput” reprezintă încercarea autorului de a prezenta un aspect important din cadrul regimurilor matrimoniale reglementate de către noul Cod civil. Lucrarea este structurată în 6 capitole, fiecare dintre acestea fiind împărțite în subcapitole, autorul încercând sa sublinieze ce este esențial cu privire la această temă. Pe alocuri am adăugat dispoziții…

  • Calitatea Serviciilor In Cadrul Brd Finance

    Universitatea Crestină Dimitrie Cantemir Facultatea de Management Turistic și Comercial Lucrare de licență Coordonator științific: Militaru Cezar Absolvent: Ursei Florin-Cătălin Bucuresti 2016 Universitatea Crestină Dimitrie Cantemir Facultatea de Management Turistic și Comercial Calitatea serviciilor in cadrul BRD Finance IFN S.A Coordonator științific: Militaru Cezar Absolvent: Ursei Florin-Cătălin Bucuresti 2016 Prezentarea BRD – GROUPE SOCIÉTÉ GÉNÉRALE…

  • Cercetări Antropometrice Comparative ÎN Cadrul Populației Feminine DIN Orasele Beius Si Oradea

    UNIVERSITATEA DIN ORADEA FACULTATEA DE ȘTIINȚE DOMENIUL: BIOLOGIE SPECIALIZAREA: BIOLOGIE FORMĂ DE ÎNVĂȚĂMÂNT: ZI CERCETĂRI ANTROPOMETRICE COMPARATIVE ÎN CADRUL POPULAȚIEI FEMININE DIN ORASELE BEIUȘ ȘI ORADEA, JUDEȚUL BIHOR Coordonator științific: Conf. Univ. dr. Tomulescu Ioana Mihaela Absolvent: Popa Roxana-Amalia Oradea, 2016 INTRODUCERE Mi-am propus să realizaz un studiu comparativ al unor caracteristici antropometrice între un…