Documente Academic
Documente Profesional
Documente Cultură
1
I.Descrierea problemei propuse (a scenariului aplicaţiei)
Aplicaţia care face obiectul acestui proiect se numeşte " . cosmetice - distribuitor gen
AVON ". Aceasta aplicaţie îşi propune să gestioneze o bază de date care să memoreze
informaţii despre clienţii si distribuitorii firmei Oriflame, care se ocupă cu distribuirea de
produse cosmetice, dar şi despre produsele pe care firma le are către vânzare.
Tipuri de obiecte multimedia relevante domeniului ales:
Distribuitorii vand produse catre client, iar clientul poate cumpara de la unul sau mai
multi distribuitori (m,m)
Produsele sunt grupate in subcategorii(m,1), iar subcategoriile sunt grupate in
categorii(m,1)
Produsele pot avea oferte(1,m)
Produsul este descris de imagini(1,m) ,de audio (1,m) , de video (1,m)
Produsele sunt prezentate in descriere (1,1)
2
DIAGRAMA ENTITATE LEGATURA
3
o Imagini : ID_imag, Nume, Tip_imag, COD_prod, Imagine, RezolutieX,
RezolutieY;
o Video : ID_video, Nume, Durata(sec), Format, Video, COD_prod;
- Pentru : se refera la codul produsului
În continuare va fi prezentat codul PostgreSQL corespunzător fiecărei scheme
în parte, împreună cu print screen-uri ale acestora după ce au fost introduse o serie de
date de intrare.
4
"Nume" character(300),
"Disponibil" boolean,
"Pret(ron)" numeric,
"Volum" text,
CONSTRAINT prod_pk PRIMARY KEY ("COD_prod" ),
CONSTRAINT "p-sb" FOREIGN KEY ("COD_prod")
REFERENCES "Subcategorii" ("ID_subcateg") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Produse"
OWNER TO postgres;
CREATE INDEX "fki_p-sb"
ON "Produse"
USING btree
("COD_prod" );
5
CONSTRAINT distr_pk PRIMARY KEY ("ID_distr" )
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Distribuitori"
OWNER TO postgres;
CREATE INDEX "fki_d-c"
ON "Distribuitori"
6
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Clienti"
OWNER TO postgres;
CREATE INDEX "fki_c-d"
ON "Clienti"
USING btree
("ID_client" );
7
("ID_oferta" );
8
Crearea mulţimii entitate “Categorii”:
CREATE TABLE "Categorii"
(
"ID_cat" serial NOT NULL,
"Nume" text,
"ID_subcategorie" integer,
CONSTRAINT cat_pk PRIMARY KEY ("ID_cat" ),
CONSTRAINT "cat-sb" FOREIGN KEY ("ID_cat")
REFERENCES "Subcategorii" ("ID_subcateg") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Categorii"
OWNER TO postgres;
CREATE INDEX "fki_c-sb"
ON "Categorii"
USING btree
("ID_cat" );
CREATE INDEX "fki_cat-sb"
ON "Categorii"
USING btree
("ID_cat" );
9
Crearea mulţimii entitate “Descriere”:
CREATE TABLE "Descriere"
(
"ID_descriere" serial NOT NULL,
format character(5),
"COD_prod" serial NOT NULL,
"Descriere" oid,
CONSTRAINT "descriere_PK" PRIMARY KEY ("ID_descriere" ),
CONSTRAINT "d-p" FOREIGN KEY ("ID_descriere")
REFERENCES "Produse" ("COD_prod") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Descriere"
OWNER TO postgres;
CREATE INDEX "fki_d-p"
ON "Descriere"
USING btree
("ID_descriere" );
10
Inserarea propiu-zisă a documentului text în câmpul Descriere de tip oid, s-a facut la
urmă, după introducerea tuturor metadatelor caracteristice, cu o comandă de tipul celei de
mai jos, pentru fiecare intrare a tabelului:
UPDATE "Descriere"
SET "Descriere"=lo_import('C:\baza mea de date\Document.docx’)
WHERE "ID_descriere" =1;
11
OWNER TO postgres;
CREATE INDEX "fki_i-p"
ON "Imagini"
USING btree
("ID_imag" );
12
CREATE INDEX "fki_a-p"
ON "Audio"
USING btree
("ID_audio" );
Inserarea propiu-zisă a fișierului audio în câmpul audio de tip oid, s-a facut la urmă,
după introducerea tuturor metadatelor caracteristice, cu o comandă de tipul celei de mai
jos, pentru fiecare intrare a tabelului:
UPDATE "Audio"
SET Audio=lo_import('C:\baza mea de date\oriflame3.mp4 ')
WHERE ID_audio=1;
Crearea mulţimii entitate “video”:
CREATE TABLE "Video"
(
"ID_video" serial NOT NULL,
"Nume" text,
"Durata(sec)" integer,
"Format" text,
"Video" oid,
"COD_prod" integer,
CONSTRAINT video_pk PRIMARY KEY ("ID_video" ),
CONSTRAINT "v-p" FOREIGN KEY ("ID_video")
REFERENCES "Produse" ("COD_prod") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Video"
OWNER TO postgres;
CREATE INDEX "fki_v-p"
ON "Video"
13
USING btree
("ID_video" );
14
2. Să se exporte în folderul "C:\BAZA", sub denumirea de "descriere"
descrierea produsului cu pretul mai mic sau egal de 30 ron şi să se afişeze
numele,descrierea(oid),formatul descrierii si pretul produsului
SELECT
"Produse"."Nume",
"Descriere"."Descriere",
"Descriere".format,
"Produse"."Pret(ron)",
lo_export ("Descriere",'C:\BAZA\descriere.docx')
FROM
public."Produse",
public."Descriere"
WHERE
"Descriere"."COD_prod" = "Produse"."COD_prod" AND
"Produse"."Pret(ron)" <= 30;
15
3. Să se afişeze numele produsului si videoclipului, durata video, video(oid), numele
clientului si distribuitorului,orasul pentru :distribuitorul sa fie din acelasi oras precum
clientul.
SELECT
"Produse"."Nume",
"Video"."Nume",
"Video"."Video",
"Video"."Durata(sec)",
"Clienti"."Nume",
"Distribuitori"."Nume",
"Distribuitori"."Oras"
FROM
public."Video",
public."Produse",
public."Clienti",
16
public."Distribuitori"
WHERE
"Produse"."COD_prod" = "Video"."COD_prod";
17
5. Să se afişeze numele produsului si categoriei din care face parte, imagine(oid)si
formatul imaginii pentru produsele la care exista imagini in baza de date.
SELECT
"Produse"."Nume",
"Categorii"."Nume",
"Imagini"."Imagine",
"Imagini"."Tip_imag"
FROM
public."Subcategorii",
public."Categorii",
public."Produse",
public."Imagini"
WHERE
"Imagini"."COD_prod" = "Produse"."COD_prod" AND
"Produse"."COD_prod" = "Subcategorii"."COD_produs" AND
"Subcategorii"."ID_subcateg" = "Categorii"."ID_subcategorie"
18
19