Monea Iustinian - Proiect Baze de Date

46
Iustinian Monea – Componente PC UNIVERSITATEA TEHNICA DE CONSTRUCTII, BUCURESTI Facultatea de Hidrotehnica Automatica si informatica aplicata BAZE DE DATE - proiect - 1 | Page

description

Proiect baze de date

Transcript of Monea Iustinian - Proiect Baze de Date

UNIVERSITATEA TEHNICA DE CONSTRUCTII, BUCURESTIFacultatea de HidrotehnicaAutomatica si informatica aplicata

BAZE DE DATE - proiect -

Iustinian Monea,A.I.A., anul III

Cuprins:

1.Descrierea temei32.Notiuni Introductive42.1. PostgreSQL52.2. PostgreSQL52.3. Crearea unei baze de date63.Diagrama Entitate Asociere84.Codul SQL pentru crearea tabelelor si inserarea datelor105.Descrierea view-urilor si codul SQL pentru crearea lor226.Concluzii317. Bibliografie32

1. Descrierea temei

In acest proiect am realizat o baza de date privind activitatea dintr-un magazin cu componente pc.Tema aleasa consta in gestionarea marfurilor, a angajatilor si clientilor dintr-un lant de magazine cu produse pentru calculator. Baza de date trebuie sa contina informatii despre firma, despre serviciile pe care le ofera, produsele pe care le comercializeaza dar si despre angajatii si clientii sai.Deoarece este un magazine de calculatoare, firma este specializata in comercializarea produselor IT. Pentru aceasta are nevoie sa stocheze in baza sa de date informatii referitoare la produse (numele produsului, model, pret, tipul licentei si numarul de utilizatori daca acesta este de tip software sau o descriere amanuntita daca acesta este de tip hardware, garantie.[5]

2. Notiuni Introductive

Avantajele BD Un grad redus de redundan a datelor. Diminuarea inconsistenei datelor. Facilitarea partajrii informaiilor Suport pentru standardizare. Structurile de date sunt mai aproape de realitate i mai uor de manipulat. Este permis legtura cu diverse limbaje-gazd. Abordare global a ntreprinderii Datele sunt separate de programele, iar procesul de dezvoltare a aplicaiilor-program este sensibil ameliorat, Sistemele informatice ce utilizeaz baze de date sunt mai flexibile, reflect mai bine specificul firmei, fiind adaptabile la modificrile ulterioare ale mediului economic [1]Modelul de date relaional a fost propus de cercettorul E.F. Codd de la compania IBM, care a publicat n anul 1970 lucrarea "Un model Relaional de Date pentru Bnci Mari de Date Partajate" [Codd70]. Alte lucrri ale lui Codd, ca i ale altor cercettori (C.J. Date, P. Chen, R. Boyce, J.D. Ullman, R. Fagin, W.W. Armstrong, M. Stonebraker, etc.) au perfecionat modelul de date relaional i au permis dezvoltarea fr precedent a sistemelor de gestiune a bazelor de date, datorit simplitii i a fundamentrii matematice a modelului. [1]

2.1. Baza de date

Din dorinta de a lucra mai usor, oamenii tind sa-si informatizeze toate activitatile. Una dintre aceste activitati este si Componente PC Pentru aceasta s-a folosit o baza de date in Postgresql. O baza de date este o colectie de informatii corelate, referitoare la un anumit subiect sau colectate, organizate si memorate intr-un anumit scop. Sistemul care permite colectarea, organizarea, memorarea si regasirea informatiilor dintr-o baza de date se numeste sistem de gestiune al bazelor de date (SGBD). Acesta poate fi conventional, in care infomatiile sunt stocate pe foi de hartie si computerizat, in care informatiile sunt pastrate in volume. Oracle este un astfel de sistem interactiv, computerizat pentru gestionarea bazelor de date relationale. Cel mai raspandit tip de baze de date este cel relational, in care datele sunt memorate in tabele. Pe langa tabele, o baza de date relationala mai poate contine: indecsi, proceduri stocate, declansatori, utilizatori si grupuri de utilizatori, tipuri de date, mecanisme de securitate si de gestiune a tranzactiilor etc.[5]

2.2. PostgreSQL

PostgreSQLeste unsistem de baze de date relationale. Este disponibil gratuit sub o licentopen sourcede tip BSD. PostgreSQL nu este controlat de nici o companie, i bazeaz dezvoltarea pe o comunitate rspndit la nivel global, precum i cteva companii dezvoltatoare.Cteva limitri generale Dimensiunea maxim a bazei de date: nelimitat Dimensiunea maxim a unei tabele: 32 TB Dimensiunea maxim a unei nregistrri: 1,6 TB Dimensiunea maxim a unui cmp: 1 GB Numr maxim de nregistri ntr-o tabel: nelimitat Numr maxim de coloane ntr-o tabel: 250 - 1600 n funcie de tipul coloanelorPostgreSQL permite folosirea limbajelor procedurale pentru a executa blocuri de cod direct n serverul de baze de date. Se pot folosi pentru a crea funcii definite de utilizator (subrutine, trigerre, agregate i funcii fereastr) sau pentru a crea blocuri ad hoc "DO". Instalarea standard a PostgreSQL permite utilizarea urmatoarelor limbaje: PL/pgSQL, un limbar asemnator cuPL/SQLexistent in Oracle. PL/Tcl, pune la dispoziieTcl PL/Perl, pune la dispoziiePerl PL/Python, pune la dispoziiePython, versiunea 2 sau 3.Alte limbaje disponibile n afara pachetului de baz includ: PL/Java, PL/php, PL/Ruby, etc.[2]

2.3. Crearea unei baze de date

Pas1. Porninre pgAdmin III.[4]

Serverele de PostgreSQL

Introducerea parolei

Pas2. Crearea unei baze de date

Pas3. Baza de date creata

Iustinian Monea Componente PC

2 | Page

3. Diagrama Entitate Asociere

Faza initiala

Rezolvarea relatiilor many to manyProdus-Factura

Diagrama finala

Tabela Factura este legata de tabela Magazin prin cheia straina cod_magazin;Tabela Factura este legata de tabela Client prin cheia straina cod_client;Tabela Factura este legata de tabela Linii Factura prin cheia straina nr_factura;Tabela Producator este legata de tabela Produs prin cheia straina cod_producator;Tabela Produs este legata de tabela Linii Factura prin cheia straina cod_produs;Tabela Magazin este legata de tabela Angajat prin cheia straina cod_magazin;

Regulil StructuraleProducator-ProdusUn producator produce unul sau mai multe produse.Un produs este facut de un singur producator.Factura-Linii facturaO factura contine una sau mai multe linii.O linie apartine unei singure facturi.Linie-ProdusO linie are mai multe produse.Un produs apartine unei singure linii.Factura-ClientUn client poate avea una sau mai multe facturi.O factura poate aprartine unui singur client.Factura-MagazinUn magazin poate avea una sau mai multe facturi.O factura poate aprartine unui singur magazin.Magazin-AngajatUn magazin poate avea unul sau mai multi angajati.Un agajat poate lucra la un magazin.

4. Codul SQL pentru crearea tabelelor si inserarea datelor

Baza de date cuprinde 7 tabele(Angajat, Produs, Magazin, Client, Producator, Linii factura, Factura)

Tabela Angajat

CREATE TABLE "Angajat"( id_angajat integer NOT NULL, nume_angajat text, prenume_angajat text, adresa text, telefon numeric, cod_magazin integer, "CNP" numeric, CONSTRAINT "Angajat_pkey" PRIMARY KEY (id_angajat), CONSTRAINT "Angajat_cod_magazin_fkey" FOREIGN KEY (cod_magazin) REFERENCES "Magazin" (id_magazin) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION)

INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (1, 'Angajat 1', 'Angajat 1', 'Adresa Angajat 1', 736666351, 1, 5030906405633);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (2, 'Angajat 2', 'Angajat 2', 'Adresa Angajat 2', 723369156, 1, 2401218404094);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (3, 'Angajat 3', 'Angajat 3', 'Adresa Angajat 3', 721222333, 2, 5090919403296);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (4, 'Angajat 4', 'Angajat 4', 'Adresa angajat 4', 736111222, 3, 5090724404815);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (5, 'Angajat 5', 'Angajat 5', 'Adresa Angajat 5', 735241453, 4, 6100613408145);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (6, 'Angajat 6', 'Angajat 6', 'Adresa Angajat 6', 736395132, 4, 1850709400184);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (7, 'Angajat 7', 'Angajat 7', 'Adresa Angajat 7', 736395124, 4, 2410721403828);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (8, 'Angajat 8', 'Angajat 8', 'Adresa Angajat 8', 736384687, 4, 1350120404803);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (9, 'Angajat 9', 'Angajat 9', 'Adresa Angajat 9', 728888888, 3, 2850426404740);INSERT INTO "Angajat" (id_angajat, nume_angajat, prenume_angajat, adresa, telefon, cod_magazin, "CNP") VALUES (10, 'Angajat 10', 'Angajat 10', 'Adresa Angajat 10', 735426987, 5, 1750205407181);

Tabela Client

CREATE TABLE "Client"( id_client integer NOT NULL, nume_client text, prenume_client text, "CNP" numeric, telefon numeric, adresa text, CONSTRAINT "Client_pkey" PRIMARY KEY (id_client))INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (9, 'Client 9', 'Client 9', 5000825401986, 745896354, 'Adresa Client 9');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (10, 'Client 10', 'Client 10', 1720503402706, 736988741, 'Adresa Client 10');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (1, 'Client 1', 'Client 1 ', 5020729402535, 732568999, 'Adresa Client 1');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (2, 'Client 2', 'Client 2', 6040316409968, 725846987, 'Adresa Client 2');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (3, 'Client 3', 'Client 3', 2490227406878, 726987124, 'Adresa Client 3');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (4, 'Client 4', 'Client 4', 6071209408127, 736987125, 'Adresa Client 4');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (5, 'Client 5', 'Client 5', 1850117409752, 736542369, 'Adresa Client 5');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (6, 'Client 6', 'Client 6', 1461028406552, 724157914, 'Adresa Client 6');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (7, 'Client 7', 'Client 7', 6021209403223, 789524164, 'Adresa Client 7');INSERT INTO "Client" (id_client, nume_client, prenume_client, "CNP", telefon, adresa) VALUES (8, 'Client 8', 'Client 8', 1330507402830, 789654134, 'Adresa Client 8');

Tabela Factura

CREATE TABLE "Factura"( nr_factura numeric NOT NULL, cod_client integer, cod_angajat integer, cod_magazin integer, CONSTRAINT "Factura_pkey" PRIMARY KEY (nr_factura), CONSTRAINT "Factura_cod_angajat_fkey" FOREIGN KEY (cod_angajat) REFERENCES "Angajat" (id_angajat) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT "Factura_cod_client_fkey" FOREIGN KEY (cod_client) REFERENCES "Client" (id_client) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT "Factura_cod_magazin_fkey" FOREIGN KEY (cod_magazin) REFERENCES "Magazin" (id_magazin) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION)

INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (1, 1, 5, 2);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (2, 2, 3, 1);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (3, 3, 1, 1);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (4, 4, 2, 3);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (5, 5, 8, 4);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (6, 4, 3, 5);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (7, 6, 9, 4);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (8, 6, 9, 4);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (9, 3, 2, 2);INSERT INTO "Factura" (nr_factura, cod_client, cod_angajat, cod_magazin) VALUES (10, 10, 10, 5);

Tabela Linii Factura

CREATE TABLE "Linii factura"( id_linie integer NOT NULL, nr_factura numeric, cod_produs integer, cantitate numeric, CONSTRAINT "Linii factura_pkey" PRIMARY KEY (id_linie), CONSTRAINT "Linii factura_cod_produs_fkey" FOREIGN KEY (cod_produs) REFERENCES "Produs" (id_produs) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT "Linii factura_nr_factura_fkey" FOREIGN KEY (nr_factura) REFERENCES "Factura" (nr_factura) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION)

INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (1, 1, 2, 2);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (2, 1, 6, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (3, 1, 7, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (4, 2, 8, 4);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (5, 3, 12, 2);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (6, 4, 5, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (7, 4, 6, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (8, 5, 9, 3);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (9, 5, 11, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (10, 6, 1, 10);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (11, 7, 4, 5);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (12, 8, 1, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (13, 8, 3, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (14, 8, 5, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (15, 8, 7, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (16, 8, 9, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (17, 9, 2, 2);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (18, 9, 10, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (19, 10, 4, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (20, 10, 6, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (21, 10, 8, 1);INSERT INTO "Linii factura" (id_linie, nr_factura, cod_produs, cantitate) VALUES (22, 10, 10, 1);

Tabela Magazin

CREATE TABLE "Magazin"( id_magazin integer NOT NULL, locatie_magazin text, contact text, CONSTRAINT "Magazin_pkey" PRIMARY KEY (id_magazin))

INSERT INTO "Magazin" (id_magazin, locatie_magazin, contact) VALUES (1, 'Piata Obor', 'Contact Magazin 1');INSERT INTO "Magazin" (id_magazin, locatie_magazin, contact) VALUES (2, 'Colentina', 'Contact Magazin 2');INSERT INTO "Magazin" (id_magazin, locatie_magazin, contact) VALUES (3, 'Unirii 1', 'Contact Magazin 3');INSERT INTO "Magazin" (id_magazin, locatie_magazin, contact) VALUES (4, 'Unirii 2', 'Contact Magazin 4');INSERT INTO "Magazin" (id_magazin, locatie_magazin, contact) VALUES (5, 'Piata Muncii', 'Contact Magazin 5');

Tabela Producator

CREATE TABLE "Producator"( id_producator integer NOT NULL, telefon numeric, nume_producator text, tara_origine text, adresa text, CONSTRAINT "Producator_pkey" PRIMARY KEY (id_producator))

INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (2, 722234568, 'Producator 2', 'USA', 'Adresa Producator 2');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (3, 722234568, 'Producator 3', 'Romania', 'Adresa Producator 3');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (4, 722234568, 'Producator 4', 'China', 'Adresa Producator 4');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (5, 722234568, 'Producator 5', 'Romania', 'Adresa Producator 5');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (6, 722234568, 'Producator 6', 'Franta', 'Adresa Producator 6');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (7, 722234568, 'Producator 7', 'USA', 'Adresa Producator 7');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (8, 722234568, 'Producator 8', 'Germania', 'Adresa Producator 8');INSERT INTO "Producator" (id_producator, telefon, nume_producator, tara_origine, adresa) VALUES (1, 736321666, 'Producator 1', 'Canada', 'Adresa Producator 1');

Tabela Produs

CREATE TABLE "Produs"( id_produs numeric NOT NULL, nume_produs text, tip_produs text, descriere_produs text, "pret(lei)" integer, cod_producator integer, CONSTRAINT "Produs_pkey" PRIMARY KEY (id_produs), CONSTRAINT fk FOREIGN KEY (cod_producator) REFERENCES "Producator" (id_producator) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION)INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (2, 'HDD Toshiba 500GB, 7200rpm, 32MB, SATA 3', 'Hard Disk', 'Capacitate:500 GBViteza de rotatie:7200 rpmBuffer:32 MBInterfata:SATA 3Rata de transfer SATA:600 MB/sDimensiuni (W x D x H):101.6 x 147 x 26.1 mmGreutate:450 g', 199, 2);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (1, 'HDD WD Blue 1TB, 7200rpm, 64MB, SATA 3', 'Hard Disk', 'Capacitate:1 TBViteza de rotatie:7200 rpmBuffer:64 MBTimp de acces:12 msInterfata:SATA 3Rata de transfer SATA:600 MB/sDimensiuni (W x D x H):101.6 x 147 x 26.1 mmGreutate:440 gTimp de acces Citire:12 msTimp de acces Scriere:13 ms', 254, 1);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (3, 'Procesor AMD FX X6 6100, 3300MHz, 14MB, socket AM3+, Box', 'Procesor', 'Memorie Cache:6144Socket:AM3+Frecventa procesor (MHz):3300Turbo Boost pana la:3900 MHzMod de operare (biti):32 / 64Numar nuclee:6Tehnologie de fabricatie (nanometri):32Cache L3 (KB):8192Cooler:DaPutere termica (W):95', 389, 2);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (4, 'Procesor Intel Core i3-4170, 3.70GHz, Haswell, 3MB, Socket 1150, Box', 'Procesor', 'Memorie Cache:3072Socket:1150Frecventa procesor (MHz):3700Mod de operare (biti):64Numar nuclee:2Tehnologie de fabricatie (nanometri):22Cooler:DaPutere termica (W):54', 504, 7);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (5, 'Placa video Asus nVidia GeForce 210, 1024MB, DDR3, 64bit, HDMI, DVI, VGA', 'Placa Video', 'GeneralSlot:PCI Express 2.0Procesor Video:NVIDIA GeForce 210Tip placa:MultimediaRezolutie maxima:2560 x 1600RAMDAC (MHz):400', 160, 5);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (6, 'Placa video Gigabyte NVIDIA GeForce GT 730, 2048MB, DDR3, 128bit, HDMI, DVI, VGA', 'Placa Video', 'Slot:PCI Express 2.0 x16Procesor Video:nVidia GeForce GT 730Tip placa:MultimediaRezolutie maxima:2560 x 1600RAMDAC (MHz):400', 300, 4);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (7, 'Placa de baza Gigabyte H81M-S, Socket 1150', 'Placa de baza', 'ProcesorCPU Socket:1150Chipset:Intel H81 ExpressProcesoare suportate:Intel CoreTM i7Intel CoreTM i5Intel CoreTM i3Intel PentiumIntel CeleronSocket-uri procesor:1MemorieMemorii:DDR3Capacitate maxima memorie RAM (MB):16384Frecventa memorie (MHz):16001333Suport Dualchannel:DaSuport ECC:Non-ECCSloturi memorie:2ConectivitateSlot PCI:PCI-ExpressAudio integrat:Realtek ALC887 HDLAN integrat:DaInterfata Serial ATA:2 x SATA II2 x SATA IIIRata de transfer SATA (MB/s):300, 600Conector sursa (pini):1 x 24 pin ATXPorturi USB 2.0:2Porturi USB 3.0:2Conectivitate:2 x PS21 x VGA2 x USB 2.02 x USB 3.01 x RJ-453 x audio jacksSloturiSloturi PCI-E x16:1Sloturi PCI-E x1:1AlteleBIOS & memorie BIOS:1 x 32 Mbit flashAMI EFI BIOSPnP 1.0aDMI 2.7WfM 2.0SM BIOS 2.7ACPI 5.0Format:mATXDimensiuni (L x l, cm):19.0 x 17.0', 209, 3);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (8, 'Placa de baza Gigabyte G41M-COMBO, socket 775', 'Placa de baza', 'ProcesorCPU Socket:775Chipset:Intel G41Northbridge:Intel G41Southbridge:Intel ICH7Procesoare suportate:Intel Core2 ExtremeIntel Core2 QuadIntel Core2 DuoIntel PentiumIntel CeleronSocket-uri procesor:1MemorieMemorii:DDR2DDR3Capacitate maxima memorie RAM (MB):8192Suport Dualchannel:DaSloturi memorie:4ConectivitateSlot PCI:PCI ExpressAudio integrat:VIA VT1708LAN integrat:Atheros 8151Video integrat:Intel GMA X4500Interfata ATA:1 x ATAInterfata Serial ATA:4 x SATA IIRata de transfer SATA (MB/s):300Conector sursa (pini):1 x 24 pin ATXPorturi USB 2.0:4Porturi paralele:DaPorturi seriale:DaSloturiSloturi PCI-E x16:1Sloturi PCI-E x1:1Sloturi PCI:2AlteleBIOS & memorie BIOS:2 x 8MB Flash ROMDual BIOSPnP 1.0aDMI 2.0SM BIOS 2.4ACPI 1.0bFormat:Micro ATX', 360, 8);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (9, 'Memorie HyperX FURY Blue 4GB, DDR3, 1600MHz, CL10, 1.5V', 'Memorie', 'GeneralTip memorie:DDR3 Capacitate:4096 MB Frecventa (MHz):1600AlteleLatenta:CL10 Radiator:Da Voltaj:1.5 V', 150, 6);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (10, 'Memorie Kingston HyperX BEAST 8GB (2x4GB), DDR3, 1600MHz, CL9, 1.65V, XMP', 'Memorie', 'GeneralTip memorie:DDR3 Capacitate:8192 MB Frecventa (MHz):1600 Module:Dual channelAlteleLatenta:CL9 Voltaj:1.65 V', 280, 1);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (11, 'Sursa Inter-Tech SL-500A, 500W', 'Sursa', 'Putere sursa (W):500Numar ventilatoare:1 x 120 mmAlimentare:230 VCaracteristici speciale:Pasiv PFCProtectie: SCP, OCP, OVPConectori:3 x SATA2 x HDD2 x FDD1 x FDD1 x ATX 4 Pin1 x 20 / 24 PinSursa modulara:NuFormat:ATXGreutate (Kg):1.4', 109, 4);INSERT INTO "Produs" (id_produs, nume_produs, tip_produs, descriere_produs, "pret(lei)", cod_producator) VALUES (12, 'Sursa nJoy 500WGX, 500W Real Power, PFC Pasiv', 'Sursa', 'Putere sursa (W):500Numar ventilatoare:1 x 120 mmAlimentare:230 VCaracteristici speciale:PFC Pasiv Protectii OVP / OPP / OCP Cabluri mansetate 45cm lungime Nivel de zgomot redus Conectori:1 x 20 + 4 pin ATX 1 x 4+4 pin ATX 12V 1 x 6 pin + 2 PCI-E 4 x SATA 1 x FDD 2 x 4pin Molex Sursa modulara:NuFormat:ATX 2.3Altele:Controll inteligent al temperaturii Compatibila AMD / Intel, ATI / Nvidia Dimensiuni (W x H x D mm):150 86 140', 159, 6);

5. Descrierea view-urilor si codul SQL pentru crearea lor

Afisarea tuturor facturilor

Create view Factura asSELECT f.nr_factura, nume_produs, cantitate, nume_angajat, m.locatie_magazin, nume_client, "pret(lei)" * cantitate as "pret(lei)"FROM "Factura" fINNER JOIN "Linii factura" cON c.nr_factura=f.nr_factura INNER JOIN "Produs" ON cod_produs=id_produsINNER JOIN "Client" ON cod_client=id_clientINNER JOIN "Angajat" ON cod_angajat=id_angajatINNER JOIN "Magazin" m ON f.cod_magazin=m.id_magazin;

Afisarea totalului de vanzari din intregul lant de magazine

Create view "Total vanzari" asSELECT 'Magazinul a vandut marfa in valoare de ' || sum("pret(lei)"*cantitate) || ' lei.' as InterogareFROM "Linii factura", "Produs"WHERE cod_produs=id_produs;

Afisare tuturor angajatilor dintr-un magazin

Create view "Angajat-Magazin" asSELECT nume_angajat, prenume_angajat, "CNP", telefonFROM "Angajat"WHERE cod_magazin=4;

Afisarea unui angajat dupa CNP

Create view "Angajat-CNP" asSELECT nume_angajat, prenume_angajat, "CNP", telefonFROM "Angajat"WHERE "CNP"=1350120404803;Afisarea tuturor clientilor magazinului

Create view Clienti asSELECT nume_client, prenume_client, "CNP", telefonFROM "Client"ORDER BY id_client;

Afisare toate vanzari catre un anumit client

Create view "Vanzare Client" asSELECT nume_client,nume_produs, cantitate, "pret(lei)" as "Pret unitar", "pret(lei)" *cantitate as TotalFROM "Linii factura" lINNER JOIN "Produs" ON cod_produs=id_produsINNER JOIN "Factura" fON l.nr_factura=f.nr_factura and cod_client=6INNER JOIN "Client" ON cod_client=id_client;

Afiseaza totate Hard Disk-urile

Create view "hard" asSELECT nume_produs, tip_produs, descriere_produs, "pret(lei)", nume_producatorFROM "Produs", "Producator"WHERE tip_produs='Hard Disk' and cod_producator=id_producator;

Afisarea Vanzarilor unui anumit magazine

Create view "Vanzare magazin 4" asSELECT nume_produs, cantitate, m.locatie_magazin, "pret(lei)" * cantitate as sumaFROM "Factura" fINNER JOIN "Linii factura" cON c.nr_factura=f.nr_factura INNER JOIN "Produs" ON cod_produs=id_produsINNER JOIN "Magazin" m ON f.cod_magazin=m.id_magazin and id_magazin=4;

6. ConcluziiIn acest proiect am reusit sa pun in aplicare toate cunostintele adunate de-a lungul semestrului la seminarul de base de date. Incepand cu crearea diagramei bazei de date pe hartie si urmand cu crearea tabelelor, inserarea de date si efectuarea interogarilor.

7. Bibliografie

1 Baze de date-curs- Prof. Mariana Marinescu2 http://ro.wikipedia.org/wiki/PostgreSQL3 4 http://www.youtube.com/watch?v=-f9lke78g2U5 http://emanuelscirlet.com/uploads/documents/Prezentare.pdf