Sunteți pe pagina 1din 17

Proiect Interogari SQL Teorie Bibliografie

"Baze de date - Lab06"

Costel Aldea

costel.aldea@unitbv.ro
http://cs.unitbv.ro/~costel

2018-2019
Proiect Interogari SQL Teorie Bibliografie

Cuprins

Proiect
Întrebări proiect

Interogari SQL
Creare bază de date restaurant
Creare chei străine în bază de date restaurant
Populare bază de date restaurant cu date corelate
Interogări SQL

Teorie
Intrebari teorie

Bibliografie
Proiect Interogari SQL Teorie Bibliografie

Proiect

Temă
1 Exemplificaţi şi motivaţi o legătură m : n între două relaţii.
2 Exemplificaţi o relaţie care nu este în formă normală unu şi
arătaţi cum se aduce la formă normală unu.
3 Indicaţi pentru o relaţie mai multe chei candidat.
4 Motivaţi existenţa unei relaţii recursive si cum aţi renunţat
la aceasta.
5 Indicaţi o cheie primară compusă.
Proiect Interogari SQL Teorie Bibliografie

Tabele baza de date restaurant

Temă
1 Să se creeze tabelele pentru baza de date restaurant.
Z_Restaurant(u_id, name, phone, fax, #address_id)
Z_Person(p_id, surname, first_name, sex, #address_id)
Z_Customer(#p_id)
Z_Employee(#p_id)
Z_Invoice(invoice_no, date, time, #p_id_emp, #p_id_cust,
#u_id)
Z_Articles(article_id, name, price, tva)
Z_Invoice_articles(#invoice_no, #article_id, price, tva)
Z_Address(address_id, street, #zip, house_number)
Z_City(zip, city)
2 Să se adauge minim 3 înregistrări în fiecare tabel creat.
Proiect Interogari SQL Teorie Bibliografie

Z_Address şi Z_City

Tabelul Z_Address

CREATE TABLE Z_Address (


Address_id integer primary key,
Street VARCHAR(50),
zip integer,
house_number integer
);

Tabelul Z_City

CREATE TABLE Z_City (


Zip integer primary key,
City VARCHAR(50)
);
Proiect Interogari SQL Teorie Bibliografie

Z_Person şi Z_Customer

Tabelele Z_Person şi Z_Customer

CREATE TABLE Z_Person (


p_id integer primary key,
first_name VARCHAR(50),
surname VARCHAR(50),
sex char,
address_id integer,
category VARCHAR(50)
);

CREATE TABLE Z_Customer (


p_id integer primary key
);
Proiect Interogari SQL Teorie Bibliografie

Z_Restaurant

Tabelul Z_Restaurant

CREATE TABLE Z_Restaurant (


U_id integer primary key,
name VARCHAR(50),
phone VARCHAR(30),
fax VARCHAR(30),
address_id integer
);
Proiect Interogari SQL Teorie Bibliografie

Z_Invoice

Tabelul Z_Invoice

CREATE TABLE Z_Invoice (


invoice_no integer primary key,
date1 date,
time1 VARCHAR(50),
u_id integer,
p_id_emp integer,
p_id_cust integer
);
Proiect Interogari SQL Teorie Bibliografie

Z_Article

Tabelul Z_Article

CREATE TABLE Z_Article (


article_id integer primary key,
name VARCHAR(50),
price integer,
vat integer
);
Proiect Interogari SQL Teorie Bibliografie

Z_Invoice_Article

Tabelul Z_Invoice_Article

CREATE TABLE Z_Invoice_Articles (


invoice_no integer,
article_id integer,
price integer,
vat integer,
primary key (invoice_no, article_id)
);
Proiect Interogari SQL Teorie Bibliografie

Chei străine

Foreign keys
Alter table address add foreign key (zip) references City(zip );
Alter table person add foreign key (address_id) references address (address_id);
Alter table restaurant add foreign key (address_id) references address (address_id);
Alter table invoice add foreign key (uid) references restaurant (uid );
Alter table invoice add foreign key (p_id_emp) references person (p_id);
Alter table invoice add foreign key (p_id_cust) references person (p_id);
Alter table invoice_articles add foreign key (invoice_no) references invoice (invoice_no);
Alter table invoice_articles add foreign key ( article_id ) references article ( article_id );
Alter table customer add foreign key (p_id) references Person(p_id);
Alter table employee add foreign key (p_id) references Person(p_id);
Proiect Interogari SQL Teorie Bibliografie

Date corelate pentru tabele

Insert into Z_City VALUES (8151,’Brasov’);


Insert into Z_City VALUES (8040,’Bucuresti’);
Insert into Z_City VALUES (1020,’Wien’);
Insert into Z_Address VALUES (1,’Iuliu Maniu’,8151,3);
Insert into Z_Address VALUES (2,’Rosiorilor’,8040,10);
Insert into Z_Address VALUES (3,’Taubstummengasse’,1020,11);
Insert into Z_Person VALUES (1,’Clark’,’Kent’,’M’,3,’Employee’);
Insert into Z_Person VALUES (2,’Lois’,’Lane’,’F’,2, ’ Customer’);
Insert into Z_Person VALUES (3,’Bugs’,’Bunny’,’M’,2,’Employee’);
Insert into Z_Person VALUES (4,’Indiana’,’Jones’,’M’,2,’Customer’);
Insert into Z_Person VALUES (5,’Marie’,’Antoinette’,’F’,3, ’ Employee’);
Insert into Z_Person VALUES (6,’Janet’,’Jackson’,’F’,1,’Customer’);
Insert into Z_Customer VALUES (2);
Insert into Z_Customer VALUES (4);
Insert into Z_Customer VALUES (6);
Insert into Z_Employee VALUES (1);
Insert into Z_Employee VALUES (3);
Insert into Z_Employee VALUES (5);
Insert into Z_Restaurant VALUES(123456,’Cafe 23’,’03458720’,’031541756’,1);
Insert into Z_Restaurant VALUES (234567,’Wan Tan’,’0542610’,’03154756’,2);
Insert into Z_Restaurant VALUES(345678,’Times’,’08745220’,’03451556’,3);
Insert into Z_Invoice VALUES(1111,to_date(’10.10.2010’,’dd.mm.yyyy’),’14:00:00’,123456,1,2);
Insert into Z_Invoice VALUES(2222,to_date(’15.12.2010’,’dd.mm.yyyy’),’14:00:00’,234567,3,4);
Insert into Z_Invoice VALUES(3333,to_date(’06.03.2011’,’dd.mm.yyyy’),’14:00:00’,345678,5,6);
Insert into Z_Article VALUES (4321,’Cola’,3,0.3);
Insert into Z_Article VALUES (4322,’Fanta’,10,2);
Insert into Z_Article VALUES (4323,’Pepsi’,2,0.6);
Insert into Z_Invoice_Articles VALUES (1111,4321,3,0.3);
Insert into Z_Invoice_Articles VALUES (2222,4322,10,2);
Insert into Z_Invoice_Articles VALUES (3333,4323,8,0.8);
Proiect Interogari SQL Teorie Bibliografie

Interogări PostgreSQL

1 Să se scrie o instrucţiune SQL folosind Alter table care să


garanteze că sexul introdus pentru o persoană poate să ia
doar valorile F sau M.
Alter table z_person add constraint const_sex_enum check (sex in (’F’,’M’));

2 Folosind o instrucţiune Update, schimbaţi numele unei


persoane cu un id dat din tabela Z_Person.
3 Scrieţi o instructiune SQL de stergere a unei persoane cu
un id dat din baza de date.
4 Definiţi câte un index pentru atribute des utilizate.
5 Scrieţi o instrucţiune care să selecteze toate persoanele
din baza de date.
6 Scrieţi o instrucţiune care listează toate restaurantele
(nume şi telefon), ordonate dupa nume.
Proiect Interogari SQL Teorie Bibliografie

Firma - diagrama conceptuala


Proiect Interogari SQL Teorie Bibliografie

Firma - entitati tari

SECTII(Nume, Buget)
ANGAJATI(Nume, Prenume, DataNasterii, Adresa, Functie, Salariu)
PROIECTE(Denumire, Termen, Buget)
PRODUSE(Denumire, Descriere)
COMPONENTE(Denumire, Descriere)
FURNIZORI(Nume, Prenume, Adresa)
CLIENTI(Nume, Prenume, Adresa)
Proiect Interogari SQL Teorie Bibliografie

Întrebări teorie

Temă
1 Propuneţi cerinţe şi explicaţi din diagrama Firmă relaţiile cu
cardinalitate m:n:p.
2 Proiecţie vs selecţie.
3 Explicaţi următoarea interogare
Πactor _id,first_name,last_name,title (film ./ film_actor ./ actor )
4 Enumeraţi trei funcţii pentru prelucrarea şirurilor de
caractere.
5 Ce este integritatea relaţională?
6 Descrieţi reguli pentru integritatea relaţională.
Proiect Interogari SQL Teorie Bibliografie

Bibliografie

C. L. Aldea, Baze de date - notiţe de curs, Braşov, 2017.

S-ar putea să vă placă și