Sunteți pe pagina 1din 19

UNIVERSITATEA PETROL-GAZE PLOIETI

FACULTATEA DE LITERE I TIINE


SPECIALIZARE MASTER T.A.P.I

Baze De Date Multimedia - Aplicaie Postgresql


PENSIUNE

MASTERAND:
CIUFU ALEXANDRA MARIA

Descriere aplicatie

Aplicaia i propune s modeleze operaiile care au loc pe un site turistic, referitoare la


cautarea unui client care doreste sa isi aleaga o pensiune pentru vacanta. Aplicaia va fi realizat
cu ajutorul softului PostgreSQL.

Tipuri de obiecte multimedia

Tipul text reprezinta cartea de oaspeti a pensiuni

Tipul imagine - va face descrierea prin poze pentru camera a pensiunni

Tipul audio - va face descrierea diferitelor tipuri de sunete specifice pentru fiecare
camera a pensiuni

Tipul video - va face descrierea pentru fiecare camera a pensiuni

Tabele vor avea forma:

Tabelul Audio - contine id_audio care este cheia primara a tabelului,id_camera care face
legatura cu tabelul camera ,durata,formatul,audio,size pentru fiecare camera.
Tabelul Video - contine id_video care este cheia primara a tabelului,id_camera care face
legatura cu tabelul camera,durata,formatul,video,size pentru fiecare camera.
Tabelul Imagine - contine id_imagine care este cheia primara a tabelului,id_camera care
face legatura cu tabelul camera,rezolutie,formatul,imagine,size pentru fiecare camera.
Tabelul Carte Oaspeti - contine id_carte care este cheia primara a tabelului ,id_pensiune
care face legatura cu tabelul pensiune, nr_pagini ,format,carte oaspeti ,nr_impresii pentru fiecare
pensiune.
Tabelul Camera - contine id_camere care este cheia primara a tabelului, id_pensiune
care face legatura cu tabelul pensiune, tip, facilitate pentru fiecare camera.

Tabelul Pensiune - contine id_pensiune care este cheia primara a tabelului,nume,


localitate, nr_stele pentru fiecare pensiune.

Tabelul Client contine id_client care este cheia primara a tabelului ,nume ,prenume, sex,
telefon , id_camera .

Crearea bazei de date pensiune

CREATE DATABASE pensiuneale


WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'Romanian, Romania'
LC_CTYPE = 'Romanian, Romania'
CONNECTION LIMIT = -1;

Crearea tabelului PENSIUNE

CREATE TABLE pensiune


(
nume character(50) NOT NULL,
localitate character(20) NOT NULL,
nr_stele integer,
id_pensiune serial NOT NULL,
CONSTRAINT pensiune_pkey PRIMARY KEY (id_pensiune )
)
WITH (
OIDS=FALSE
);

ALTER TABLE pensiune


OWNER TO postgres;

Crearea tabelului CAMERA

CREATE TABLE camera


(
tip character(20) NOT NULL,
facilitate character(50) NOT NULL,
id_camera serial NOT NULL,
id_pensiune integer,
CONSTRAINT camera_pkey PRIMARY KEY (id_camera )
)
WITH (
OIDS=FALSE
);
ALTER TABLE camera

OWNER TO postgres;

Crearea tabelului CLIENT

CREATE TABLE client


(
nume character(15) NOT NULL,
prenume character(15) NOT NULL,
sex character(1) NOT NULL,
telefon character(10),
id_client serial NOT NULL,
id_camera integer,
CONSTRAINT client_pkey PRIMARY KEY (id_client )
)
WITH (
OIDS=FALSE

);
ALTER TABLE client
OWNER TO postgres;

Crearea tabelului IMAGINE

CREATE TABLE imagine


(
size real NOT NULL,
format character(5) NOT NULL,
img oid,
rezolutie integer[] NOT NULL,
id_imagine serial NOT NULL,
id_camera integer,
CONSTRAINT imagine_pkey PRIMARY KEY (id_imagine )
)
WITH (
OIDS=FALSE

);
ALTER TABLE imagine
OWNER TO postgres;

Creare tabelului AUDIO

CREATE TABLE audio


(
size real NOT NULL,
format character(5) NOT NULL,
audio oid,
durata integer NOT NULL,
id_audio serial NOT NULL,
id_camera integer,
CONSTRAINT audio_pkey PRIMARY KEY (id_audio )
)
WITH (
OIDS=FALSE

);
ALTER TABLE audio
OWNER TO postgres;

Creare tabelului VIDEO

CREATE TABLE video


(
size real NOT NULL,
format character(5) NOT NULL,
video oid,
durata integer NOT NULL,
id_video serial NOT NULL,
id_camera integer,
CONSTRAINT video_pkey PRIMARY KEY (id_video )
)
WITH (
OIDS=FALSE

);
ALTER TABLE video
OWNER TO postgres

Crearea table CARTE OASPETI


CREATE TABLE carte_oaspeti
(
format character(5) NOT NULL,
nr_pag integer NOT NULL,
nr_impresii integer NOT NULL,
carte_oaspeti oid,
id_carte serial NOT NULL,
id_pensiune integer,
CONSTRAINT carte_oaspeti_pkey PRIMARY KEY (id_carte )
)
WITH (
OIDS=FALSE
);

ALTER TABLE carte_oaspeti


OWNER TO postgres;

Introducerea de date in tabele

Cod inserare date in tabel Pensiune:

INSERT INTO pensiune(nume, localitate, nr_stele)


VALUES ('Pensiunea Olimpia', 'Azuga', 3);

Cod inserare date in tabel Camera:

INSERT INTO camera( id_pensiune, tip, facilitate)


VALUES (9, 'simpla', 'tv,balcon');

Cod inserare date in tabel Client:

INSERT INTO client( id_camera, nume, prenume, sex, telefon)


VALUES (12, 'Moldoveanu', 'Irina', 'F', '0732556657');

Cod inserare date in tabel Imagine:

INSERT INTO imagine( id_camere, size, format, img, rezolutie)


VALUES (12, 700, '.jpg', lo_import('C:\\ale\\12.jpg'), '{800,600}');

Cod inserare date in tabel Audio:

INSERT INTO audio(id_camere, size, format, audio, durata)


VALUES (12, 800, '.mp3', lo_import('C:\\ale\\12.mp3'), 80);

Cod inserare date in tabel Video:

INSERT INTO video(id_camere, size, format, video, durata)


VALUES (12, 1000, '.flv', lo_import('C:\\ale\\12.flv'), 800);

Cod inderare date in tabel carte oaspeti:

INSERT INTO carte_oaspeti( format, nr_pag, id_pensiune, nr_impresii, carte_oaspeti)

VALUES ('.doc', 50, 9, 19, lo_import('C:\\ale\\9.doc'));

1.

Implementarea interogarilor

n ncheiere se vor implementa un set de operaii asupra datelor menite s exemplifice


urmtoarele tipuri de interogri: text, imagine, audio i video. Pentru fiecare interogare n parte,
se va afia rspunsul.
1)Sa se afiseze pensiunile care au camera duble
SELECT "pensiune".nume,"pensiune".nr_stele,"pensiune".id_pensiune, "camera".tip
from "pensiune","camera"
WHERE "camera".tip='dubla' AND "pensiune".id_pensiune="camera".id_pensiune

ORDER BY "pensiune".id_pensiune;

2) Sa se exporte in folderol C:\\ale2descrierea pensiunii Vila Andu


SELECT
"pensiune".id_pensiune,"pensiune".nume,"pensiune".localitate,"pensiune".nr_stele,
"carte_oaspeti".id_carte,lo_export(carte_oaspeti,'C:\\ale2\\descriere.doc')
from "pensiune","carte_oaspeti"

WHERE "pensiune".nume='Vila Andu' AND


"pensiune".id_pensiune="carte_oaspeti".id_pensiune;

3) Sa se afiseze imaginea cu id =7 si faciliatiele camerei care ii corespunde


SELECT "camera".id_camera,"camera".facilitate,"camera".tip,"imagine".id_imagine,
"imagine".format,lo_export(img,'C:\\ale2\\imagine.jpg')
from "camera","imagine"WHERE "imagine".id_imagine=7 AND
"camera".id_camera="imagine".id_camera

4) Sa se exporte fisierul audio avand marimea mai mare de 700 si id


camerei respective
SELECT "camera".id_camera,"camera".facilitate,"camera".tip,"audio".id_audio,
"audio".format,"audio".size,lo_export(audio,'C:\\ale2\\audio.mp3')

from "camera","audio"
WHERE "audio".size>700 AND "camera".id_camera="audio".id_camera;

5) Sa se exporte clipul video cu durata mai mica de 140 si id camerei despre


care s-a realizat clipul
SELECT "camera".id_camera,"camera".facilitate,"camera".tip,"video".id_video,
"video".format,"video".durata,lo_export(video,'C:\\ale2\\video.flv')

from "camera","video"
WHERE "video".durata<140 AND "camera".id_camera="video".id_camera;