Sunteți pe pagina 1din 45

BAZE DE DATE

Seminar 1

Contact: roxana.adam@unibuc.ro
Despre ce vom discuta astăzi?

• detalii administrative
• să facem cunoştinţă
• scurtă recapitulare a cursului
• detalii tehnice de laborator online (instalare
software)

2
DETALII ADMINISTRATIVE

Organizarea disciplinei:
• Săptămânal:
2 ore Curs + 2 ore seminar/laborator

Nota finala:
• 50% testul scris (5 p);

• 40% doua proiecte + activitate seminar (4 p);


3.5 puncte - 2 proiecte ce vor fi rezolvate în timpul semestrului
0.5 puncte - implicarea in discutiile de la seminar

• 10% punctaj din oficiu (1 p).

3
DETALII ADMINISTRATIVE
Activităţi desfăşurate la seminar:
• fixarea cunoştinţelor dobândite în cadrul cursului;
• sesiune de întrebări şi răspunsuri;
• evaluare;
• aţi întâmpinat o problemă ulterior seminarului, în lucrul individual,
sau pur și simplu vreţi să aprofundaţi un element al unei teme? Ziua
de VINERI ne zâmbește!

☺ SUNNY FRIDAY ☺
☺ 1 reprezentant per Grupă;
☺ e-mail cu lista de întrebări suplimentare a
colegilor de grupă din cadrul săptămânii;
☺ discuții și posibile soluții la următorul seminar
al Grupei.

4
SĂ FACEM CUNOŞTINŢĂ

• despre studenţi: pasiuni şi perspective de


carieră

• utilitatea materiei pe termen lung

5
UTILITATEA MATERIEI PE TERMEN LUNG

LinkedIn, accesat: 2022.10.09 6


SCURTĂ RECAPITULARE A CURSULUI
• Ce este SQL?
• Cum definiți bazele de date?
• Care este scopul unei baze de date?
• Ce înseamnă SGBD?
• Care sunt funcțiile unui sistem de gestiune a
bazelor de date?

Un răspuns non-formal animat: What is Database & SQL? (direct link)

7
SCURTĂ RECAPITULARE A CURSULUI

• Ce este SQL?

SQL (limbaj de interogare structurată) este limbajul utilizat de


majoritatea sistemelor de bază de date relațional.

ENG: Structured Query Language

8
SCURTĂ RECAPITULARE A CURSULUI
• Cum definiți bazele de date?

O baza de date reprezintă:


1. un ansamblu structurat de date;
2. înregistrat pe suporturi accesibile calculatorului;
3. care are ca scopul de a satisface simultan cerințele mai multor
utilizatori;
4. într-un mod selectiv;
5. si în timp util.

9
SCURTĂ RECAPITULARE A CURSULUI
• Care este scopul unei baze de date?

De a satisface simultan cerințele mai multor utilizatori, într-un mod


selectiv și în timp util.

10
SCURTĂ RECAPITULARE A CURSULUI
• Ce înseamnă SGBD?

Sistem de Gestiune a Bazelor de Date

ENG: Database management system (DBMS)


Relational Database Management System (RDBMS or RDMS):
- MS SQL Server, IBM DB2, Oracle, MySQL, & Microsoft Access.

11
SCURTĂ RECAPITULARE A CURSULUI
• Care sunt funcțiile unui sistem de gestiune a
bazelor de date?
1. Descrierea datelor
2. Utilizarea datelor
3. Integritatea datelor
4. Confidențialitatea datelor
5. Accesul concurent la date
6. Siguranța în funcționare

12
SCURTĂ RECAPITULARE A CURSULUI

13
SCURTĂ RECAPITULARE A CURSULUI

Care dintre următoarele joacă un rol important în reprezentarea


informațiilor despre lumea reală într-o bază de date?

• Limbajul de Descriere a Datelor (LDD)


• Limbajul de Manipulare a Datelor (LMD)
• Modelul de date

14
SCURTĂ RECAPITULARE A CURSULUI

• Limbajul de Descriere a Datelor (LDD)

LDD este important în reprezentarea informațiilor, deoarece este folosit


pentru a descrie schemele externe și logice.

15
SCURTĂ RECAPITULARE A CURSULUI

• Limbajul de Manipulare a Datelor (LMD)

LMD este utilizat pentru a accesa și actualiza date; nu este


important pentru reprezentarea datelor. (Desigur, limbajul de
manipulare a datelor trebuie să cunoască modul în care sunt
reprezentate datele și reflectă acest lucru în structurile pe care le
acceptă.)

16
SCURTĂ RECAPITULARE A CURSULUI

• Modelul de date

Modelul de date este fundamental pentru reprezentarea informațiilor.


Modelul de date determină ce mecanisme de reprezentare a datelor
sunt acceptate de SGBD.
Limbajul de definire a datelor este un set specific de constructe ale unui
limbaj disponibile pentru a descrie datele unei aplicații în termenii
modelului de date.

17
SCURTĂ RECAPITULARE A CURSULUI
• Ce este o tranzacție?
• Un SGBD intercalează acțiunile diferitelor
tranzacții sau execute tranzacții una după alta?
De ce?
• Ce trebuie să garanteze un utilizator în ceea ce
privește o tranzacție și consistența bazei de date?
• Ce ar trebui să garanteze un SGBD în ceea ce
privește executarea concurentă (simultană) a mai
multor tranzacții și consistența bazei de date?
18
SCURTĂ RECAPITULARE A CURSULUI
• Ce este o tranzacție?
✓ este o operație asupra unei baze de date care implică una
sau mai multe modificări în una sau mai multe tabele.
✓ o unitate logică de prelucrare indivizibilă (atomică) a
datelor unei baze de date, prin care se asigură consistența
acesteia. In principiu, orice execuţie a unui program care
accesează o bază de date poate fi considerată o tranzacţie,
dacă baza de date este într-o stare consistentă, atât înainte,
cât și după execuție.
✓ trebuie să asigure consistența bazei de date indiferent dacă
a fost executată individual sau concurent cu alte tranzacții,
precum și în condițiile în care au apărut erori în cursul
execuției tranzacției.
19
SCURTĂ RECAPITULARE A CURSULUI
• Un SGBD intercalează acțiunile diferitelor tranzacții sau
execute tranzacții una după alta? De ce?
✓ Un SGBD este de obicei partajat între mulți utilizatori.
Tranzacțiile utilizatori pot fi intercalate pentru a îmbunătăți
timpul de execuție al interogărilor utilizatorilor.
✓ Prin intercalarea interogărilor, utilizatorii nu trebuie să
aștepte finalizarea completă a tranzacțiilor altor utilizatori
înainte de începerea propriei tranzacții. Fără intercalare,
dacă utilizatorul A începe o tranzacție care va dura 10
secunde pentru finalizare, iar utilizatorul B dorește să
înceapă o tranzacție, utilizatorul B ar trebui să aștepte încă
10 secunde pentru ca tranzacția utilizatorului A să se
finalizeze înainte ca baza de date să înceapă procesarea
cererii utilizatorului B. 20
SCURTĂ RECAPITULARE A CURSULUI
• Ce trebuie să garanteze un utilizator în ceea ce privește o
tranzacție și consistența bazei de date?

✓ să garanteze (să se asigure) că tranzacția sa nu corupe date


sau nu introduce date eronate în baza de date. De exemplu,
într-o bază de date bancară, un utilizator trebuie să
garanteze că o tranzacție de retragere de numerar
modelează cu exactitate suma pe care o persoană o elimină
din contul său. O aplicație de bază de date ar fi lipsită de
valoare dacă o persoană ar scoate 20 de dolari de la un
bancomat (ATM), dar tranzacția și-ar stabili soldul la zero!

21
SCURTĂ RECAPITULARE A CURSULUI
• Ce ar trebui să garanteze un SGBD în ceea ce privește
executarea concurentă (simultană) a mai multor tranzacții și
consistența bazei de date?

Un SGBD trebuie să garanteze că tranzacțiile sunt


executate complet și independent de alte tranzacții. O
proprietate esențială a unui SGBD este aceea că o
tranzacție ar trebui să se execute automatic sau ca și cum
ar fi singura tranzacție care rulează. De asemenea,
tranzacțiile se vor finaliza complet sau vor fi anulate, iar
baza de date va reveni la starea inițială. Acest lucru
asigură că baza de date rămâne consecventă - date
consistente.
22
Surse non-formale opționale:

MySQL Workbench Add User and Connect to Database


https://www.youtube.com/watch?v=P7whjxMqYU4

Create new connection with new user in Oracle SQL Developer


https://www.youtube.com/watch?v=58V-w3buWm4

23
DETALII TEHNICE DE LABORATOR ONLINE
(INSTALARE SOFTWARE)
Exemple de software

Recomandări:
* MySQL
* XAMPP MySQL
* Microsoft SQL Server

24
DETALII TEHNICE DE LABORATOR ONLINE
(INSTALARE SOFTWARE)
Ce software vom utiliza?
Software-ul MySQL este un server de baze de
date SQL (limbaj de interogare structurată)
multi-utilizator.

website https://www.mysql.com/
documentaţie https://dev.mysql.com/doc/
descărcări și https://dev.mysql.com/downloa
achiziții ds/
25
DETALII TEHNICE DE LABORATOR ONLINE
(INSTALARE SOFTWARE)
Ce sistem de operare are PC-ul?

26
INSTALARE SOFTWARE
https://dev.mysql.com/downloads/installer/

Tutorial instalare Windows: https://www.youtube.com/watch?v=5E9G3PrQals


Versiune 8.0.25 27
INSTALARE SOFTWARE
https://dev.mysql.com/downloads/mysql/

Tutorial instalare macOS: https://www.youtube.com/watch?v=-BDbOOY9jsc


Versiune 8.0.22 28
INSTALARE SOFTWARE
https://dev.mysql.com/downloads/mysql/

29
INSTALARE SOFTWARE

30
INSTALARE SOFTWARE

31
INSTALARE SOFTWARE

32
INSTALARE SOFTWARE

33
INSTALARE SOFTWARE
Rețineți parola, veți avea mereu nevoie de parola la deschiderea MySQL!

34
INSTALARE SOFTWARE

35
CONECTARE
MySQL Shell

\sql
\connect root@localhost:3306
1. Se introduce parola setată la instalare.
2. Doriţi memorarea parolei?
• Pentru DA tastaţi Y
• Pentru NU tastaţi N
show databases;

IMPORTANT:
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-commands.html
36
CONECTARE
MySQL Command Line Client

1. Se introduce parola setată la instalare.

show databases;

IMPORTANT:
https://dev.mysql.com/doc/refman/8.0/en/mysql.html
37
CONECTARE
IMPORTANT!!!

HELP;
\h
\c

38
CONECTARE
Exemple:
help contents;
help create table;
help data definition;
help data types;

39
CONECTARE
MySQL Shell vs. Command Line Client

Similare, dar… în general MySQL Shell este mai avantajos de utilizat


deoarece:
- are trei “dialecte”: SQL, Python și JavaScript ;
Dacă aveți biblioteci sau coduri în Python sau JavaScript pentru a le utiliza pe datele dvs. Le puteți
utiliza prin salvarea codul ca “script” pentru a fi rulat ulerior, deci MySQL Shell este foarte extensibil.

- are structura de ajutor extinsă (help) și util la completarea comenzilor


atunci când nu vă puteți aminti sintaxa;
- este rapid pentru fișierele JSON, CSV sau TSV.

40
CONECTARE
MySQL Workbench

Tutorial:
https://www.youtube.com/wa
tch?v=chezeWdTHbo

IMPORTANT:
https://dev.mysql.com/doc/workbench/en/
41
Cu ce vom lucra?

• MySQL Shell
• MySQL Command Line Client
• MySQL Workbench

42
TIPS & TRICKS
Utilizaţi des resursele online atunci când sunteţi în impas.
În încercarea găsirii unei soluţii, reflectaţi!
Cel mai probabil de aceeaşi problemă cu care vă confruntaţi
s-au mai lovit şi alte persoane.

GitHub
Stack Overflow
Cheat Sheet - concept popular de explicaţii succinte în lucrul
cu multe tipuri de software.
(ex:https://gist.github.com/bradtraversy/c831baaad44343cc
945e76c2e30927b3)
43
Exemplu de “Cheat Sheet”

help;
help contents;
help create table;
help data definition;
help data types;

SHOW DATABASES; CREAZĂ-ŢI


USE nume_baza_date; PROPRIUL
SHOW TABLES; REZUMAT LA
DESCRIBE nume_tabel;
SFARŞIT DE
CURS / SEMINAR
44
ÎNTREBĂRI ŞI RĂSPUNSURI

45

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