Sunteți pe pagina 1din 36

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

RAPORT
La Baze de Date
Lucrare de laborator Nr. 2

A efectuat: St. gr. RM-201


Ghirea Gabriel

A verificat: Rusanovschi Mihaela

Chișinau 2021
Lucrarea de laborator nr. 2
Теmа: Elaborarea unei pagine WEB, conform celor pasilor descrisi.

Scopul lucrării: familiarizarea cu limbajele HTML, CSS, JS și utilizarea lor pentru


realizarea anumitor Proiecte de programare Web.

Sarcină:
Pornind de la textul Fabulei modificate, cu prezenta elementelor din BD, să se execute
sarcinile ce urmează:

PASUL 1, Elaborati si prezentati modelul conceptual al BD, utilizind paradigma Input ->
Output.

PASUL 2, Elaborati si prezentati modelul Logic al BD, utilizind paradigma Input ->
Output. Prezentați schema ER.

PASUL 3, Executati SQL for Beginners Part 1 pentru template-ul propus in Anexa_1
fisier atasat.

Efectuati aceeași sarcina pentru cazul Proiectului Dvs, adică utilizati aceleasi comenzi
MYSQL din fisierul mentionat pentru BD si tabelele elaborate pentru Proiectul Dvs
concret. (Vor fi executate aceleasi comenzi!!)

PASUL 4, Executati SQL for Beginners Part 2 pentru template-ul propus propus in
Anexa_2 fisier atasat.

Efectuati aceeași sarcina pentru cazul Proiectului Dvs, adică utilizati aceleasi comenzi
MYSQL din fisierul mentionat pentru BD si tabelele elaborate pentru Proiectul Dvs
concret. (Vor fi executate aceleasi comenzi!!)

PASUL 5, Executati SQL for Beginners Part 3 pentru template-ul propus in Anexa_3
fisier atasat.

Efectuati aceeași sarcina pentru cazul Proiectului Dvs, adică utilizati aceleasi comenzi
MYSQL din fisierul mentionat pentru BD si tabelele elaborate pentru Proiectul Dvs
concret. (Vor fi executate aceleasi comenzi!!)

PASUL 6, Prezentati Raportul.


REZUMATUL MODIFICAT

”Danila Prepeleac”

Într-un sat trăiau odată doi frați: cel mai mare era harnic, frumos, inalt și bogat, în
timp ce mezinul (poreclit Dănilă Prepeleac) era leneș, fără minte și sărac și împrumuta
permanent de la rudele sale tot ce îi lipsea de pe lângă casă. Bătut la cap de nevasta sa
zgârcită, fratele mai mare îl sfătuiește pe Dănilă să meargă la târg și să-și vândă
singura avere: o pereche de boi tineri și puternici, un car mare, 10 gaste si 10 saci cu
nuci, iar cu banii obținuți să-și cumpere niște boi mai mici și un car. Fratele mai mic
se duce cu boii la târg, dar pe drum realizează o serie de schimburi inechitabile,
motivate parțial de naivitatea și de indolența sa. Astfel, el își dă boii care se smuceau
permanent unui trecător în schimbul unui car care mergea ușor la vale. Ajuns la un
deal, Dănilă nu mai poate urni carul, așa că i-l cedează unui alt trecător pentru
o capră. Nici acest schimb nu-l mulțumește deoarece capra se smucea în toate părțile,
așa că o dă unui alt trecător în schimbul unui gânsac. Țipetele păsării îl asurzesc așa
că, odată ajuns la târg, Dănilă o schimbă pe o pungă goală. Analizând întreg lanțul de
întâmplări care l-au făcut să schimbe o pereche de boi pe un obiect inutil, el
concluzionează că „parcă dracul mi-a luat mințile”.[5]
Întors acasă, Dănilă îi cere fratelui său mai mare să-i mai împrumute încă o dată carul
cu boi un topor,o lopata si niste mancare pentru a aduce lemne de foc din pădure. El
așază neatent carul cu boi sub un copac pe care începe să-l taie; arborele cade drept
peste car și-l sfarmă, iar boii sunt uciși. Se gândește să-i spună fratelui său o minciună
și să-i împrumute iapa pentru a fugi cu ea în lume, dar se rătăcește prin pădure și
ajunge pe malul unui lac unde vede niște lișițe. Aruncă cu toporul către ele, sperând să
prindă vreuna pe care să o ducă fratelui său pe post de cadou, dar păsările zboară, iar
toporul cade pe fundul apei. Ajuns acasă, îi spune fratelui o minciună că boii s-ar fi
blocat în noroiul din pădure și îl roagă să-i împrumute iapa pentru a-i scoate de acolo.
Fratele său îl refuză furios, spunându-i lui Dănilă că ar trebui să devină călugăr, iar nu
să trăiască în lume pentru a-i necăji pe oameni. La plecare, mezinul îi fură fratelui său
iapa și o secure și pleacă la heleșteu pentru a-și căuta toporul.
Ajuns în pădure, Prepeleac se gândește să pună în aplicare sfatul fratelui său și se
hotărăște să construiască o mănăstire. În timp ce alegea copacii pe care să-i taie, iese
un drac din heleșteu și-l întreabă ce intenționează să facă. Creatura este îngrozită de
planul său și, după ce încearcă în zadar să-i explice ca pădurea și iazul sunt ale
dracilor, îl anunță pe Scaraoschi (căpetenia dracilor), care-i trimite lui Dănilă un sac
cu bani pentru a-l convinge să plece. Căpetenia dracilor se răzgândește însă și trimite
un alt drac care să-l provoace pe om la o întrecere care să decidă cine va fi
câștigătorul banilor. Au loc patru probe. Mai întâi, dracul înconjoară iazul de trei ori,
cu iapa în spinare, în timp ce Dănilă străbate călare aceeași distanță, pretinzând că a
cărat iapa între picioare. Prepeleac refuză să participe la următoarele două probe și se
folosește de șiretlicuri, punându-l pe drac să se întreacă la fugă cu un iepure (zicând
că acela este „copilul meu cel mai mic”) și să se lupte cu un urs (despre care spune că
este „un unchiu bătrân de 999 de ani și 52 de săptămâni”). Urmează o întrecere de
chiuituri în care dracul chiuie de se cutremură pământul, răsună văile și clocotesc
mările. Nepărând a fi impresionat, țăranul îl avertizează pe drac că țipătul său îl va
asurzi și-i va distruge creierul, așa că-l leagă cu un ștergar la ochi și la urechi după
care îl lovește în mod repetat peste tâmplă cu un ciomag de stejar, pretinzând că
acesta ar fi efectul chiuiturilor sale. Creatura se întoarce îngrozită în Iad.
Scaraoschi îl trimite furios pe un alt drac, care-l provoacă pe Prepeleac la un concurs
de aruncat buzduganul. Diavolul aruncă buzduganul atât de sus, încât nu se mai vede,
și apare abia după trei zile, înfingându-se în fundul Pământului. Dănilă îi spune
dracului că va arunca buzduganul pe Lună, unde „frații săi” îl vor prinde
deoarece „mare nevoie mai au de fer, ca să-și potcovească caii”.[6] Diavolul se sperie
și îi ia buzduganul din mână, spunând că acesta e o „moștenire de la strămoșul
nostru”, apoi se întoarce în iaz. Satana cere un alt voluntar care să se întreacă cu
țăranul la un concurs de blesteme. Dracul afurisește atât de tare încât omului îi
pocnește un ochi (fapt descris de narator ca o pedeapsă pentru păcatele lui Prepeleac).
[7]
 Personajul rănit îi spune apoi adversarului că blestemele moștenite de la strămoșii
săi sunt acasă, așa că este dus în spate acolo, împreună cu sacul cu bani. Dănilă își
cheamă soția și copiii să iasă afară cu blestemele părintești, precizând că acestea sunt
ragila și pieptenii pentru câlți. Numeroșii săi copii se năpustesc asupra diavolului și
încep să-l scarmene. Creatura rănită și îngrozită fuge, în timp ce Dănilă este lăsat să se
bucure de comoară „până la adânci bătrânețe”.
PASUL 1, Elaborati si prezentati modelul conceptual al BD, utilizind
paradigma Input -> Output.
1. Personaj: „Danila Prepeleac”,”Fratele”, „Sotia”, ”Drac”, ”Scaraoschi”
2. Locul faptei: „La piata”,Acasa”,,Ïn padure”, „In munti”
3. Averea: Ö pereche de boi”, „Car”,”10 gaste”,”10 saci cu nuci”
4. Schimburi: ”Car”,”Capra”,”Gansac”,”Punga goala”
5. Intreceri: „Rezistenta”,”Fuga”,”Tranta”,Aruncare buzdugan”
6. Imprumut: „Car”, „Boi”,”Topor”,”Mancare”
7. Caracteristici: „Harnic”, Inalt”, Frumos”,”Bogat”,”Sarac”,”Lenes”,’’Zgarcit”
Modelul conceptual
PASUL 2, Elaborati si prezentati modelul Logic al BD, utilizind paradigma Input
-> Output. Prezentați schema ER.
Modelul logic
PASUL 3, Executati SQL for Beginners Part 1 pentru template-ul propus in Anexa_1
fisier atasat.

Efectuati aceeași sarcina pentru cazul Proiectului Dvs, adică utilizati aceleasi comenzi
MYSQL din fisierul mentionat pentru BD si tabelele elaborate pentru Proiectul Dvs
concret. (Vor fi executate aceleasi comenzi!!)

create database my_first_db;


show databases;

use my_first_db;

create table users (


username VARCHAR(20),
create_date DATE
);
create table users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20),
create_date DATE
);

Show tables;

explain users;

drop table users;


alter table users
ADD email VARCHAR(100)
AFTER username;

alter table users DROP email;

alter table users


ADD email VARCHAR(100)
AFTER username;

ALTER TABLE users CHANGE username user_name VARCHAR(30);

INSERT INTO users VALUES( NULL, ‘johndoe’, ‘john@doe.com’, ‘2009-12-14’);

INSERT INTO users SET


user_name = ‘nettuts’,
email = ‘nettuts’,
create_date = ‘2009-12-15’;

INSERT INTO users (email, user_name, create_date) VALUES (‘foo@bar.com’, ‘foobar’, ‘2009-
12-16’);

SELECT LAST_INSERT_ID();

INSERT INTO users SET


create_date = NOW(),
user_name = ‘batman’,
email = ‘bat@man.com’;

SELECT * FROM users;


SELECT * FROM users WHERE user_id <= 2;

SELECT * FROM users WHERE


create_date IN (‚2009-12-15’, ‚2009-12-16’);

SELECT * FROM users WHERE


email LIKE ‚%TUTS%’;
SELECT * FROM users ORDER BY create_date;

UPDATE users SET


email = ‚changed@gmail.com’,
user_name = ‚barfoo’ WHERE user_name = ‚foobar’;

DELETE FROM users WHERE user_name = ‚batman’;

INSERT INTO users SET user_name = ‚O\’Reilly’;


ALTER TABLE users ADD ‚delete’ VARCHAR(100) AFTER user_name;

PASUL 4. Executati SQL for Beginners Part 2 pentru template-ul propus propus in Anexa_2
fisier atasat.

CREATE TABLE states (


id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20)
);

CREATE TABLE states (


id INT AUTO_INCREMENT,
name VARCHAR(20),
PRIMARY KEY (id));

CREATE TABLE states (


id INT AUTO_INCREMENT,
name VARCHAR(20),
join_year INT,
population INT,
PRIMARY KEY (id),
UNIQUE (name),
KEY (join_year)
);
INSERT INTO states VALUES
(1, 'Alabama', 1819, 4661900),
(2, 'Alaska', 1959, 686293),
(3, 'Arizona', 1912, 6500180),
(4, 'Arkansas', 1836, 2855390),
(5, 'California', 1850, 36756666),
(6, 'Colorado', 1876, 4939456),
(7, 'Connecticut', 1788, 3501252),
(8, 'Delaware', 1787, 873092),
(9, 'Florida', 1845, 18328340),
(10, 'Georgia', 1788, 9685744),
(11, 'Hawaii', 1959, 1288198),
(12, 'Idaho', 1890, 1523816),
(13, 'Illinois', 1818, 12901563),
(14, 'Indiana', 1816, 6376792),
(15, 'Iowa', 1846, 3002555),
(16, 'Kansas', 1861, 2802134),
(17, 'Kentucky', 1792, 4269245),
(18, 'Louisiana', 1812, 4410796),
(19, 'Maine', 1820, 1316456),
(20, 'Maryland', 1788, 5633597),
(21, 'Massachusetts', 1788, 6497967),
(22, 'Michigan', 1837, 10003422),
(23, 'Minnesota', 1858, 5220393),
(24, 'Mississippi', 1817, 2938618),
(25, 'Missouri', 1821, 5911605),
(26, 'Montana', 1889, 967440),
(27, 'Nebraska', 1867, 1783432),
(28, 'Nevada', 1864, 2600167),
(29, 'New Hampshire', 1788, 1315809),
(30, 'New Jersey', 1787, 8682661),
(31, 'New Mexico', 1912, 1984356),
(32, 'New York', 1788, 19490297),
(33, 'North Carolina', 1789, 9222414),
(34, 'North Dakota', 1889, 641481),
(35, 'Ohio', 1803, 11485910),
(36, 'Oklahoma', 1907, 3642361),
(37, 'Oregon', 1859, 3790060),
(38, 'Pennsylvania', 1787, 12448279),
(39, 'Rhode Island', 1790, 1050788),
(40, 'South Carolina', 1788, 4479800),
(41, 'South Dakota', 1889, 804194),
(42, 'Tennessee', 1796, 6214888),
(43, 'Texas', 1845, 24326974),
(44, 'Utah', 1896, 2736424),
(45, 'Vermont', 1791, 621270),
(46, 'Virginia', 1788, 7769089),
(47, 'Washington', 1889, 6549224),
(48, 'West Virginia', 1863, 1814468),
(49, 'Wisconsin', 1848, 5627967),
(50, 'Wyoming', 1890, 532668);
SELECT * FROM states GROUP BY join_year;

SELECT * FROM states WHERE join_year = 1787;


SELECT SUM(population) AS usa_population FROM states;

SELECT IF(true, ‚foo’, ‚bar’);

SELECT

SUM(
IF(population > 5000000, 1, 0)
) AS big_states,

SUM(
IF(population <= 5000000, 1, 0)
) AS small_states

FROM states;
SELECT
COUNT(*),
CASE
WHEN population > 5000000 THEN 'big'
WHEN population > 1000000 THEN 'medium'
ELSE 'small' END
AS state_size
FROM states GROUP BY state_size;

SELECT COUNT(*), join_year FROM states


GROUP BY join_year
HAVING COUNT(*) > 1;

SELECT * FROM states WHERE population = (


SELECT MAX(population) FROM states
);

SELECT * FROM states WHERE join_year = (


SELECT MAX(join_year) FROM states
);


SELECT * FROM states WHERE join_year IN (
SELECT join_year FROM states
GROUP BY join_year
HAVING COUNT(*) > 1
) ORDER BY join_year;

(SELECT * FROM states WHERE name LIKE 'n%')


UNION
(SELECT * FROM states WHERE population > 10000000);
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
stock INT,
UNIQUE(name));

INSERT INTO products SET name = ‚breadmaker’, stock = 10;

INSERT INTO products SET name = ‚breadmaker’, stock = 1


ON DUPLICATE KEY UPDATE stock = stock + 1;

REPLACE INTO products SET name = ‚breadmaker’, stock = 5;


INSERT IGNORE INTO products SET name = ‚breadmaker’, stock = 1;

PASUL 5. Executati SQL for Beginners Part 3 pentru template-ul propus in Anexa_3 fisier atasat.
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

CREATE TABLE orders (


order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE,
INDEX (customer_id)
);

SELECT * FROM orders


JOIN customers USING(customer_id);

CREATE TABLE customers (


customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);

CREATE TABLE orders (


order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

INSERT INTO `customers` (`customer_id`, `customer_name`) VALUES


(1, 'Adam'),
(2, 'Andy'),
(3, 'Joe'),
(4, 'Sandy');

INSERT INTO `orders` (`order_id`, `customer_id`, `amount`) VALUES


(1, 1, 19.99),
(2, 1, 35.15),
(3, 3, 17.56),
(4, 4, 12.34);

SELECT * FROM customers JOIN orders;


SELECT * FROM customers, orders;
SELECT * FROM customers NATURAL JOIN orders;

SELECT * FROM customers JOIN orders


WHERE customers.customer_id = orders.customer_id;

SELECT * FROM customers JOIN orders


ON (customers.customer_id = orders.customer_id)
WHERE orders.amount > 15;
SELECT * FROM customers JOIN orders
USING (customer_id)
WHERE orders.amount > 15;

SELECT * FROM customers LEFT OUTER JOIN orders


USING (customer_id);

SELECT * FROM customers LEFT OUTER JOIN orders


USING (customer_id)
WHERE orders.order_id IS NULL;
SELECT * FROM customers LEFT OUTER JOIN orders
USING (customer_id)
WHERE orders.amount > 15;

SELECT * FROM customers LEFT OUTER JOIN orders


ON (customers.customer_id = orders.customer_id
AND orders.amount > 15 );

SELECT * FROM customers RIGHT OUTER JOIN orders


USING (customer_id);
SELECT * FROM orders RIGHT OUTER JOIN customers
USING (customer_id);

Executăm sarcina propusă pentru povestea aleasă( Danila Prepeleac)


1. Executăm primele comenzi in consola mysql( Create și Drop)

2. Afișăm lista cu bazele de date


3. Acum pentru povestea noastră, incă odată cream baza de date și o accesăm pentru
lucrul cu aceasta,folosind comanda USE.

4. În screen-urile următoare este reprezentat procesul de creare a tabelelor din modelul


conceptual.
show
tables

Afisăm la ecran lista cu tabele

5. În pasul următor completăm tabelele cu datele din poveste


Concluzie:
La elaborarea acestui laborator am insusit doua notiuni noi ale obiectului baze
de date, anume: modelul conceptual si cel logic, am deprins cunostintele
necesare de a reprezenta schematic aceste modele pentru a obtine o schema
clara a lucrului care urmeaza a fi facut pentr a proiecta o bazei de date.
Pe langa asta am insusit instructiunile de baza din mySQL, folosind consola din
aplicatia Xampp

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