Sunteți pe pagina 1din 9

Curs: Programarea și administrarea MySQL

Module: Introduction to MySQL


Unitate: Introducere în bazele de date

Ce este o bază de date?

Datele reprezintă orice secvenţă a simbolului care obţine o


semnificaţie prin actul specific de interpretare, adică - datele
reprezintă orice fapt care face parte din informaţii. Data şi informaţia
nu sunt sinonime, aşadar informaţiile sunt obţinute doar prin
interpretarea, organizarea, structurarea sau prezentarea datelor în
sine, astfel încât să li se ofere un scop sau un sens. Datele se pot
observa ca fapte „neprelucrate” care trebuie să treacă printr-un
anumit proces pentru a deveni informaţii.

Imaginea 1.1. Procesul de transformare a datelor în informaţii

Datele digitale sunt cele asupra cărora operaţiile sunt executate de


calculator, care sunt localizate într-un tip de unităţi de memorie
(magnetice, optice, medii mecanice) şi care se transmit sub formă de
semnale electrice.

În cibernetică, noţiunea de date se referă la tot ceea ce se găseşte sub


formă convenabilă pentru folosirea pe calculator.

Baza de date reprezintă o colecţie de date organizate astfel încât să


poată fi manipulate cu uşurinţă. În cadrul unei relaţii de date-
informaţii, informaţiile vor fi obţinute atunci când manipulăm datele.
De exemplu, dacă obţinem date dintr-o bază de date printr-un anumit

© Copyright Link group 1/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

limbaj de programare şi le formăm şi prezentăm utilizatorului, atunci


acestea devin informaţii semnificative. Această relaţie ne aminteşte,
de fapt, cât de importantă este o bază de date pentru munca efectivă.

Dacă observăm, în general, bazele de date, acestea ar putea să se


clasifice conform tipului de date pe care le conţin, aşadar există tipuri
de baze textuale, numerice sau baze ale altor tipuri de date.

Totuşi, bazele de date de calculator se clasifică, în cele mai frecvente


cazuri, în funcţie de accesul lor organizaţional. Accesul organizaţional
se mai numeşte şi model al bazei de date. Putem spune că modelul
bazei de date determină structura logică a bazei, precum şi modul în
care sunt stocate datele, cum sunt organizate şi cum se manipulează.

Modelul relaţional

Modelul relaţional este modelul pe baza căruia datele din baza de date
sunt organizate sub formă de liste ordonate (ordered list) şi sunt
grupate prin relaţii. Listele ordonate sunt, de fapt, tabele cu rânduri şi
coloane - cum sunt cele pe care le găsiţi în orice software pentru lucrul
cu datele tabelare, iar legăturile dintre tabele se numesc relații.

Pentru a clarifica acest lucru, ne putem imagina un exemplu. Dacă într-


o bază de date trebuie să salvaţi o listă de utilizatori, unde pentru
fiecare utilizator trebuie să specificaţi prenumele, numele şi ţara în
care locuieşte, tabelul bazei de date relaţionale ar arăta astfel:

First name Last name Country


Lukas Peeters Belgium
Demetrios Christopoulos Greece

Tabelul 1.1. Aspectul unui tabel de baze de date relaţionale pentru


stocarea informaţiilor personale

© Copyright Link group 2/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

Imaginaţi-vă acum ce s-ar fi întâmplat dacă în baza de date aţi fi


specificat şi unele date suplimentare, legate de ţară. De exemplu, dacă
aţi fi adăugat domeniul de internet şi capitala. Dacă aţi fi vrut să
realizaţi aceasta folosind tabelul existent, ar fi apărut câteva probleme.
Prima dintre probleme este existenţa coloanelor strict legate de
utilizator (deoarece fiecare capitală se referă mai mult la ţară decât la
utilizator), în timp ce a doua problemă ar fi repetarea datelor. Pentru
fiecare utilizator care ar fi avut aceeaşi ţară în care locuieşte, datele
pentru ţară, capitală şi domeniul top-level s-ar fi repetat inutil.

Unul dintre obiectivele principale ale modelului relaţional al bazei de


date este reducerea acestei repetări descrise (adică a redundanţei).
Aceasta se realizează, în primul rând, prin introducerea relaţiilor.

Vom vedea cum arată aceasta prezentând un exemplu. Fiindcă pentru


ţară vrem să salvăm mai multe date, aceste date devin un candidat
real pentru crearea unui nou tabel cu date. Acest tabel ar arăta astfel:

Country name Country domain Capital


Belgium .be Brussels
Greece .gr Athens

Tabelul 1.2. Aspectul unui tabel de baze de date relaţionale pentru


stocarea datelor despre ţări

Probabil că aţi observat deja că tabelele bazelor de date relaţionale au


un aspect similar cu restul tabelelor, adică sunt alcătuite din coloane şi
rânduri. Coloanele unesc toate datele de acelaşi tip (de exemplu, toate
numele utilizatorilor sau toate denumirile capitalelor), în timp ce
rândurile reprezintă secvenţa de valori, respectiv date care alcătuiesc
o intrare sau o înregistrare. De asemenea, putem spune că aceste
coloane definesc tipurile de date pe care le introducem în rânduri, în
timp ce rândurile reprezintă date individuale, definite de acea coloană.

Deoarece acum avem două tabele, este necesar să definim relaţiile


dintre ele. Definirea relaţiilor dintre tabele se realizează prin folosirea

© Copyright Link group 3/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

unei coloane de identificare. Scopul acestei coloane este definirea


egală a rândului introdus în tabel.

În tabelul nostru cu ţări, ca o coloană de identificare se poate folosi


coloana Numele țării. Este important de menționat faptul că trebuie să
avem grijă ca data din această coloană să fie unică pentru fiecare
introducere, adică pentru fiecare rând din tabel. Deoarece nu există
două ţări cu aceeaşi denumire, această coloană se poate lua precum
coloană de identificare.

Acum, această coloană (Numele țării) va fi identificatorul de date în


tabelul Țară. Ce înseamnă aceasta, de fapt?

Aceasta înseamnă că o coloană Țară, în tabelul utilizatorului, indică


data din cadrul tabelului Țară. Astfel, Lukas Peeters locuieşte în ţara
ale cărei date se pot găsi în tabelul Țară, acolo unde valoarea coloanei
Numele țării este Belgia.

Imaginea 1.2. Legătura dintre coloana Country din primul tabel și


coloana Country name din cel de-al doilea tabel

Aceasta este o scurtă explicație care se găseşte în spatele modelului


relaţional de baze de date, care este foarte importantă pentru
continuarea cursului, deoarece vom aborda baza de date relaţională
MySQL.

DBMS

Întrucât am definit noţiunea de dată şi cum se salvează datele în


bazele de date relaţionale, am putea pune şi întrebarea cum realizăm

© Copyright Link group 4/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

aceasta, și anume cum se stochează datele şi cum se manipulează


acestea?

Răspunsul la această întrebare se află în sistemele de gestionare a


bazelor de date (Database Management Systems) sau, prescurtat,
DBMS. Există diferite tipuri de sisteme de gestionare a bazelor de date,
care sunt analoge şi depind de tipul bazei de date. Având în vedere că
studiem bazele de date relaţionale, pentru noi sunt de interes
sistemele relaţionale pentru gestionarea bazelor de date sau RDBMS
(Relational Database Management System).

De fapt, sistemul pentru gestionarea bazei de date este o aplicaţie de


software special proiectată, care asigură o interacţiune între utilizatori
şi alte aplicaţii, de o parte, şi interacţiunea propriei baze de date, de
cealaltă parte. Cu alte cuvinte, RDBMS asigură definirea, crearea,
căutarea, actualizarea şi administrarea unei baze de date.

Cele mai cunoscute sisteme pentru gestionarea bazei de date sunt:


MySQL, MariaDB, PostgreSQL, SQLite, MicrosoftSQLServer, Oracle, SAP
HANA, dBASE, FoxPro, IBM DB2, LibreOffice Base, FileMaker Pro,
Microsoft Access. În general, o bază nu se poate transfera între mai
multe sisteme diferite pentru gestionarea bazelor, însă se poate realiza
şi aşa ceva.

Ce este MySQL?

Răspunsul la această întrebare vă este deja cunoscut din primele


rânduri ale acestei lecţii introductive. MySQL este un sistem destinat
gestionării bazelor de date. El este unul dintre sistemele de acest tip
care se foloseşte cel mai frecvent, fiindcă cel mai folosit sistem pentru
gestionarea bazelor este SQLite, care, iniţial, este instalat cu fiecare
telefon Android şi iPhone, precum şi cu fiecare browser Firefox şi
Chrome.

MySQL este un proiect cu cod deschis, creat de compania suedeză


MySQL AB, aceasta fiind în proprietatea Oracle. Cuvântul My din
denumire se referă la numele fiicei coautorului Michael Widenius, în
timp ce SQL este prescurtarea de la Structured Query Language.

© Copyright Link group 5/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

MySQL se livrează fără niciun instrument cu interfață grafică cu


utilizatorul pentru manipularea datelor. Utilizatorii pot folosi consola
integrată, respectiv command interface (CLI), sau pot folosi unul dintre
instrumentele cu mediu de utilizator grafic, care se poate procura
independent de sistemul MySQL.

Pe parcursul acestui curs ne vom familiariza şi cu utilizarea consolei


pentru atribuirea comenzilor, dar şi cu utilizarea instrumentelor din
interfața grafică cu utilizatorul.

SQL

După ce am definit noţiunile de dată şi bază de date, şi fiindcă acum


ştim ce sunt sistemele pentru gestionarea bazelor de date, ne mai
rămâne să clarificăm o noţiune foarte importantă. Este vorba despre
noţiunea SQL sau Structured Query Language, respectiv limbajul
interogativ care asigură definirea comenzilor destinate manipulării
datelor.

După ce avem sistemul pentru gestionarea bazelor de date, trebuie,


într-un anumit mod, să dăm comenzi acestui sistem, pentru a realiza
operaţiile dorite asupra datelor. Tocmai în astfel de cazuri avem nevoie
de SQL.

SQL este unul dintre primele limbaje comerciale ale modelului


relaţional al lui Edgar F. Codd, respectiv acest limbaj este destinat
manipulării bazelor de date relaţionale.

SQL a fost standardizat în anul 1986, însă, în afară de aceasta, codul


nu este în totalitate transmisibil între diferite sisteme pentru
gestionarea bazelor de date (aceasta înseamnă că transferul de la SQL
la MySQL şi, de exemplu, la SQLite, nu este în totalitate compatibil).
Dar, în majoritatea cazurilor, veţi putea aplica cea mai mare parte a
cunoştinţelor voastre despre MySQL şi SQL şi în alte sisteme de
gestionare a bazelor de date.

© Copyright Link group 6/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

SQL posedă o sintaxă completă şi proprie, care trebuie învăţată pentru


a putea gestiona datele din bază în mod adecvat. Sintaxa acestui
limbaj va fi explicată în detaliu în cadrul acestui curs.

Elementele mediului MySQL

Ceea ce ştim până acum este că bazele de date se folosesc pentru


introducerea, respectiv stocarea datelor, că sistemele care ne asigură
manipularea bazelor şi a datelor se numesc DBMS şi că un limbaj
concret cu care realizăm cele menţionate este SQL.

Putem spune că mediul MySQL este alcătuit din două părţi, din serverul
care gestionează datele şi client, cel din urmă solicitând de la server
executarea anumitor operaţii. De fapt, pe sistemele de operare
Windows, serverul este doar un serviciu capabil să primească comenzi
şi să execute stocarea datelor, dar şi în cazul altor sisteme de operare,
serverul este, de fapt, un software care funcţionează pentru a primi
comenzi şi pentru a le executa. În cazul lui MySQL, aceasta înseamnă
că primiţi comenzi SQL pentru crearea, actualizarea şi ştergerea
datelor şi a structurii în sine, precum şi pentru stocarea datelor.

Pe de altă parte, clientul este fiecare software care ştie cum trebuie
interogat serverul pentru a executa operaţiile dorite asupra bazelor şi a
datelor. În cadrul cursului ne vom familiariza, în primul rând, cu un
program client care ne vine în acelaşi pachet cu MySQL, respectiv cu
programul de comandă MySQL monitor.

Mai târziu, ne vom familiariza şi cu mediul de dezvoltare integrat,


destinat doar lui MySQL - este vorba de MySQL Workbench - în care
sunt introduse toate opţiunile unificate de care poate avea nevoie un
administrator al bazelor de date.

Practic, putem spune că clientul şi serverul comunică prin cerere şi


răspuns (request and response), conținând rezultatele cererii, aşa cum
vedem în imaginea de mai jos.

© Copyright Link group 7/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

Imaginea 1.3. Procesul de comunicare între client şi server în producţie

Aici vedem un exemplu de producţie, în care un client i se adresează


unui server de aplicaţie, care comunică în continuare cu serverul de
date sau cu sistemul de gestionare a bazelor de date, care apoi
returnează datele prin aceeaşi linie de comunicare. Datele sunt, în
general, formatate în serverul aplicaţiei şi transmise clientului ca
informaţii importante.

Atunci când o bază de date este folosită într-o aplicaţie, fie aceasta o
aplicaţie web, desktop sau una mobilă, atunci aplicaţia devine clientul
bazei de date şi ea preia comunicarea cu serverul MySQL. Pentru ca
aplicaţia, pe care o dezvoltăm singuri, să fie capabilă să se înţeleagă
cu serverul MySQL, respectiv să recunoască limbajul lui, există aşa-
numiţii Conectori (Connectors), care se deosebesc în funcţie de
platformă şi de limbajul de programare care se va folosi. Aceștia sunt,
de fapt, biblioteci scrise în limbajul sursă pentru care sunt destinate şi
care conţin metode finalizate pentru comunicare.

© Copyright Link group 8/9


Curs: Programarea și administrarea MySQL
Module: Introduction to MySQL
Unitate: Introducere în bazele de date

Imaginea 1.4. Interacţiunea aplicaţiilor client şi a serverului MySQL

În imagine, putem vedea un exemplu de comunicare între aplicaţia


client şi serverul MySQL, aceasta având loc prin conectorii propriu-zişi.
Aşa cum am spus mai devreme, conectorii sunt legaţi de limbajul de
programare pentru care au fost construiţi şi ştiu să acceseze serverul
MySQL în sine. De asemenea, aici vedem mai multe straturi din
serverul MySQL. Primul strat este responsabil pentru conexiuni, adică
toată comunicarea dintre clienţi şi straturile de sub acesta, se
desfăşoră sub acesta. După stratul de conexiune, vedem un strat în
care SQL (trimis de client) este analizat şi optimizat înainte de
execuţie. Următorul strat este, cu siguranţă, unul în care SQL este
executat deasupra ultimului strat, unde putem găsi bazele de date
Engine, care gestionează procesul de rulare şi execuţie a interogărilor,
precum şi cache-ul, memoria etc.

© Copyright Link group 9/9

Powered by TCPDF (www.tcpdf.org)

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