Sunteți pe pagina 1din 48

Cap 1.

Fundamente ale
bazelor de date relationale
Elemente generale de limbaj SQL
Administrative

1. Contact: paul@infoacademy.net ; 0721 259 520

2. Prezenta, confirmare informatii personale, acces, fumat;

3. Structura cursului;

4. Examenele, activare; www.infoacademy.net

5. Sustine performanta;

6. Instalare server MySQL http://dev.mysql.com/downloads


http://dev.mysql.com/doc/index-other.html - BD exemple
InfoAcademy - SQL 2017 2
De ce MySQL

1. Este printre cele mai rapide SGBD;


2. Usor de utilizat. Performante inalte, administrare relativ simpla;
3. Utilizeaza standardul SQL – cel mai modern in domeniul DB;
4. Multi client, multibaze de date;
5. Acces GUI, WEB, comand line;
6. Portabilitate: Win, Lin, Unix, de la un mic PC/laptop --> servere;
7. Interfata in mai multe limbaje: C, Pearl, Java, Python,Ruby, PHP;
8. Conectivitate si securitate. Suporta SSL (Secure Sockets Layer);
9. Disponibilitate: open source GPL sau licentiere comerciala;
10.Codul MySQL este open source si poate fi testat.

InfoAcademy - SQL 2017 3


Structura cursului

1. Notiuni fundamentale de baze de date


2. Instructiuni de manipulare a structurii unei baze de date
3. Instructiuni de manipulare a datelor
4. Tipuri de date MySQL. Expresii si operatori
5. Functii SQL predefinite
6. Indecsi, elemente de design al bazelor de date, join-uri, subinterogari
7. Variabile, view-uri, interogari precompilate (prepared statements)),
tranzactii
8. Functii si procedure stocate, instructiuni decizionale, instructiuni
rrepetitive, handler, cursoare, triggere

InfoAcademy - 2018
De ce MySQL

1. Este printre cele mai rapide SGBD;


2. Usor de utilizat. Performante inalte, administrare relativ simpla;
3. Utilizeaza standardul SQL – cel mai modern in domeniul DB;
4. Multi client, multibaze de date;
5. Acces GUI, WEB, comand line;
6. Portabilitate: Win, Lin, Unix, de la un mic PC/laptop --> servere;
7. Interfata in mai multe limbaje: C, Pearl, Java, Python,Ruby, PHP;
8. Conectivitate si securitate. Suporta SSL (Secure Sockets Layer);
9. Disponibilitate: open source GPL sau licentiere comerciala;
10.Codul MySQL este open source si poate fi testat.

InfoAcademy - 2018
InfoAcademy - 2018
Fisier video cu o
Click pe pentru instalare
link-ul ‘aici’
pt. parola

InfoAcademy - 2018
Textul din stanga sus este parola. Se
va copia asa cum este cu Ctrl+C

InfoAcademy - 2018
Click pe link-ul ‘cap. 1’ si Ctrl+V cand va cere
parola. Similar la celelalte capitole

InfoAcademy - 2018
InfoAcademy - 2018
InfoAcademy - 2018
InfoAcademy - 2018
Click ‘Info’ pentru
informatii sesiune
Informatii incepere si
Click ‘Begin test’ sa
terminare sesiune
incepeti examenul

- In fiecare saptamana examenele sunt activate in 7 sesiuni a cate 24 h;


- Un examen dat intr-o sesiune NU mai poate fi dat in aceeasi sesiune. Daca
aceasta este ultima sesiune din saptamana va trebui sa asteptati urmatoarea
saptamana sa-l dati din nou. Nu se poate reactiva in acelasi interval;
- Apasa info pentru a sti orele cand incep / cand se termina sesiunile;

InfoAcademy - 2018
InfoAcademy - 2018
InfoAcademy - 2018
Alte linkuri utile

InfoAcademy - 2018
Fundamente ale bazelor de date relationale

1. Notiuni generale

2. Pachetul MySQL – serverul MySQL

3. Utilizarea clientului mysql

4. Elemente generale de limbaj SQL

InfoAcademy - 2018
Noţiuni generale

Ce este o baza de date

O baza de date (BD) reprezintă o colecţie structurata de informaţie


stocata intr-un sistem de calcul.

Structura BD este specificata inaintea introducerii datelor si are in


vedere:

- tipul si compoziţia datelor memorate;

- felul in care datele se afla in relaţie unele cu altele;

InfoAcademy - 2018
Noţiuni generale (continuare)

Necesitatea existentei bazelor de date

- Existenta - memorare, stocare ;

- Consultare - cautare, comparare  criterii pentru gasirea


informatiilor
- cat mai rapid posibil
- cu un efort cat mai mic, om si masina.

Pentru a face aceest lucru avem nevoie de optimizarea bazelor de


date. InfoAcademy - 2018
Ce este o baza de date relaţionala?

O baza de date relaţionala este una in care organizarea informaţiei respecta


modelul relaţional.

Se cunosc diferite modele de organizare a informaţiei intr-o baza de date:


- modelul flat-file - cea mai simpla modalitate de a memora date. Informaţia este
plasata intr-un fişier text sau binar, fiecare inregistrare ocua o linie, valorile
componente ale fiecărei inregistrari fiind separate prin delimitatori prestabiliţi;
- modelul ierarhic - informaţia este structurata sub forma unui arbore in care
fiecare inregistrare are un părinte si mai multe sub-inregistrari posibile;
- modelul reţea - o extensie a modelului ierarhic, in care fiecare inregistrare
poate avea mai multe sub-inregistrari dar si mai multe inregistrari părinte;
- modelul relaţional - este un model bazat pe teoria mulţimilor si pe logica
predicatelor

InfoAcademy - 2018
Ce este o baza de date relaţionala? - continuare

- Informatiile sunt grupate in inregistrari (randuri in tabele);

- Intre tabele exista relatii (de tip cheie primara / cheie externa, alte relatii);

- Intre tabele exista constrangeri;

- Sunt permise operatiuni intre mai multe tabele;

- Sunt permise tranzactii (ATOMIC_CONSISTENTA_IZOLARE_DURABILITATE)

InfoAcademy - 2018
Structura informatiei intr-un DBMS relational

Baza de date relationala – notiune logica, un ansamblu de informatie aflata intr-


una sau mai multe tabele. O BD fara tabele NU contine informatie.

Tabela – un ansamblu de inregistrari cu structura impusa, organizata tabelar.


Structura unei tabele este specificata la crearea acesteia.
Numarul de coloane este fix, definit, numarul de randuri este infinit.

Coloana – nume, tip de date, optional alte caracteristici suplimentare.

Randul – un ansamblu de valori,cate una pentru fiecare coloana a unei tabele.

NULL – absenta unei valori, nedefinita

O baza de date, poate contine una sau mai multe tabele, care la randul lor pot
contine una sau mai multe inregistrari.
InfoAcademy - 2018
Baza de date Tabela

Coloana Rand (inregistrare)

InfoAcademy - 2018
Sisteme de gestiune a bazelor de date relaţionale

Baza de date este o notiune abstracta.

Este nevoie de un software care sa realizeze toate functiile acesteia -> SGBD sau DBMS.
MySQL este un DBMS.

Un DBMS implementează funcţiile necesare lucrului cu bazele de date:

- memorarea fizica a datelor, intr-un format optimizat in vederea operaţiunilor viitoare;


- definirea si modificarea structurii bazelor de date;
- introducerea informaţiilor noi si manipularea celor existente (update, delete, select);
- filtrarea accesului la datele memorate (ex: un sistem de privilegii, care sa faca
distincţie intre diverşi utilizatori/clienti/aplicatii);
- implementarea unei modalităţi de acces la toate aceste facilitaţi (client / server /
local / remote).
InfoAcademy - 2018
Cine poate sa introducă si sa manipuleze informaţia?

Aparent, exista doua scenarii posibile:

1 - informaţia este introdusa, accesata, manipulata de către un utilizator (

2 - informaţia este introdusa, accesata, manipulata de către o aplicaţie .

Putem unifica cele doua cazuri vorbind - la modul general - despre aplicaţii client sau,
mai scurt, clienţi.

InfoAcademy - 2018
Cum interactionam cu un DBMS?

- Un DBMS oferă servicii clienţilor in baza cererilor formulate de către aceştia si


conţine un modul care acţionează ca server de baze de date;

- Clientul accesează datele independent de aspectele fizice ale stocării lor pe


HDD sau in RAM;

- Clientul poate avea acces la date atata timp cat este conectat la server;

- Clienţii unui DBMS sunt aplicaţii diverse care se pot afla pe aceeasi masina cu
serverul sau pe o alta masina, din retea sau din afara retelei;

- Modalităţile de interfatare a clienţilor cu DBMS sunt si ele diverse, cea mai


comuna este cea care foloseşte protocolul TCP/IP.
InfoAcademy - 2018
Cum interactionam cu un DBMS? (continuare)

Clienţii unui DBMS pot fi:

- utilitare dedicate pentru administrarea serverului sau manipularea structurii


bazelor de date si a informaţiilor conţinute
- fie aplicaţii grafice ex: WORKBENCH;
- fie programe care oferă utilizatorului posibilitatea de a trimite comenzi
SQL către server (comparabile cu command line).

- programe care se folosesc de datele memorate in bazele de date gestionate de


către DBMS (ex: un soft bancar prin intermediul căruia se creează noi conturi sau
le vizualizează cele deja existente. Informaţiile despre conturi sunt stocate intr-o
baza de date).

Cererile trimise de către clienţi serverului de baze de date poarta denumirea de


interogări (query, in denumirea originala din limba engleza).
InfoAcademy - 2018
Fundamente ale bazelor de date relationale

1. Notiuni generale

2. Pachetul MySQL – serverul MySQL

3. Utilizarea clientului mysql

4. Elemente generale de limbaj SQL

InfoAcademy - 2018
Pachetul MySQL

Serverul MySQL – software de gestionare a bazelor de date, stocate pe HDD sau


in memorie. Faciliteaza conectarea clientilor. Executabilul mysqld. Port. Platforma.

Clientii MySQL - software care ajuta la conectarea la server si efecturarea de


interogari (Ex: MySQL Wokbench) ;

Programe utilitare non-client – de exemplu software de verificare si refacere a


integritatii BD.

Aplicatii ajutatoare

phpMyAdmin – aplicatie web pentru interactiunea cu serverul. Necesita


instalarea de server Web si interpretor PHP. Ruleaza pe orice sistem de operare.

InfoAcademy - 2018
Fundamente ale bazelor de date relationale

1. Notiuni generale

2. Pachetul MySQL – serverul MySQL

3. Utilizarea clientului mysql

4. Elemente generale de limbaj SQL

InfoAcademy - 2018
Terminatorii de instructiune

-; - executa comanda scrisa pana in acel moment (general valabil)


- \g - executa comanda scrisa pana in acel moment (doar in command line)
- \G - permite vizualizarea pe verticala (doar in command line)

Utilizarea mysql in modul interactiv

Comenzile si instructiunile se introduc una cate una, se incheie cu unul dintre


terminatori
Exemple: show databases; select version(); select now();

Instructiunile SQL sunt transmise catre server si prelucrate de catre acesta.

Important: Lucrul in modul interactiv se poate face atat din linie de comanda cat
si dintr-o aplicatie grafica sau PHPMyAdmin.
InfoAcademy - 2018
Utilizarea mysql in modul non-interactiv (“batch mode”)

Script-uri SQL

Un script SQL este un fisier de tip text (.sql) ce contine o succesiune de instructiuni.

Un script SQL seamana cu un program scris intr-un limbaj de programare. Singura


diferenta este ca nu exista structuri de control al executiei. Instructiunile se executa
secvential. Alte elemente comune: variabile, functii, etc.

Nu confundati un script SQL, care contine instructiuni sql, cu un fisier care contine
date(txt, csv).

Important: In modul non-interactiv vor fi executate toate instructiunile dintr-un


script sql, in ordinea in care apar, pana la final sau pana la aparitia primei erori
fatale. Rezultatul executiei va fi afisat pentru fiecare in parte.
InfoAcademy - 2018
Comentarii in scripturi si instructiuni SQL

- Comentarii care se intind pe o linie sau pe o portiune a liniei – incep cu # sau -


- si se incheie la sfarsitul liniei;

- Comentarii care se intind pe mai multe linii – incep cu /*, se termina cu */;

- Comentarii de compatibilitate – incep cu /*!, se termina cu */. Servesc la


executia de extensii MySQL ale limbajului SQL, care nu vor fi executate de alte
softuri DBMS. Daca este mentionata o versiune vor fi executate doar de
versiunile egale sau superioare.

InfoAcademy - 2018
Fundamente ale bazelor de date relationale

1. Notiuni generale

2. Pachetul MySQL – serverul MySQL

3. Utilizarea clientului mysql

4. Elemente generale de limbaj SQL

InfoAcademy - 2018
Limbajul SQL

Utilizatorul unui DBMS nu stie si nici nu doreste sa stie sistemul de fisiere al acestuia.
El este interest sa aiba o viziune logica asupra datelor memorate, care sa-i permita
definirea structurii BD, introducerea, extragerea si prelucrarea de date.

Acest scop este realizat prin intermediul unui limbaj, in cazul nostru – SQL
(Structured Query Language).

- Creat in 1970 la IBM;


- In1979 Oracle isi creaza propriul “SQL”;
- In 1986 este standardizat de catre ANSI si de catre ISO;
- Apar mai multe versiuni, printre care: ‘86, ‘89, ‘ 92, ‘99, 2003, 2008, 2011

Toate softurile majore de tip DBMS actuale inglobeaza o forma de SQL. Printre
acestea MySQL, Oracle, DB2, Microsoft SQL, Postgresql, SQLite, MariaDB, fiecare cu
dialectul sau. InfoAcademy - 2018
Elemente generale de limbaj SQL

Categorii de instructiuni/operatii

Distingem 3 categorii de instructiuni ale limbajului SQL, ce formeaza 3 portiuni ale


limbajului:
• DDL (Data Definition Language)
- creare, stergere, vizualizare de baze de date;
- creare/modificare de tabele cu specificarea structurii acestora, etc.

• DML (Data Manipulation Language) - introducere, extragere, modificare,


stergere de informatii (INSERT, SELECT, UPDATE, DELETE) .

• DCL (Data Control Language) - gestionarea accesului la date (definirea de


conturi, stabilirea de privilegii ale conturilor pe diversele baze de
date/tabele/coloane).
InfoAcademy - 2018
Nume de baze de date, tabele si coloane

Fiecare entitate informationala de pe un server de baze de date


(o baza de date, tabela, coloana, etc) este identificata printr-un nume.
Numele pentru baze de date, tabele, coloane pot fi scrise ca atare sau plasate intre
caractere delimitatoare ` (back quote). Caracterul ` (back quote) nu este acelasi
lucru cu ' (apostroful).
- pot contine litere, cifre, _ sau $;
- nu pot fi formate numai din cifre (deoarece pot fi confundate de catre server cu
un numar intreg);
- pot incepe cu orice caracter admis, inclusiv cifra
InfoAcademy - 2018
Conteaza daca folosim litere mici sau mari?

Windows
– numele de identificatori (baze de date, tabele, coloane, etc) sunt
case insensitive, NU conteaza daca folosim litere mari ssau mici;

Linux/Unix
– doar numele de baze de date si tabele sunt case sensitive;
– exceptie: numele de coloane NU sunt case sensitive;
– numele altor identificatori NU sunt case sensitive;

Mac
– numele de identificatori (baze de date, tabele, coloane, etc) sunt
case insensitive, NU conteaza daca folosim litere mari ssau mici;
InfoAcademy - 2018
Nume absolute si relative

Intr-o baza de date relationala ne putem referi la tabele sau coloane folosind
nume complete(absolute) sau relative:

- un nume complet este de forma bazadedate.tabela (in cazul referirii la o


tabela) sau bazadedate.tabela.coloana daca dorim sa ne referim la o coloana.

SELECT * FROM academie.clase; # baza de date si tabela


SELECT * FROM `academie`.`clase`; # atentie, fiecare denumire are
propriul set de delimitatori `

- un nume relativ reprezinta numele simplu al tabelei sau coloanei. El va fi


automat considerat relativ la baza de date sau tabela curenta.

USE academie;
SELECT * FROM clase;InfoAcademy - 2018
Conectare client/server in diferite modalitati

Conectarea din linie de comanda (shell):

Calea catre executabilul mysql : C:\Program Files\MySQL\MySQL Server 8.0\bin

Conectare: mysql -h 1.2.3.4 -P 3306 -u root -p --safe-updates BD_name

Backup: mysqldump -h 1.2.3.4 -P 3306 -u root -p BD_name > C:/Folder/fisier.sql

Restaurare: mysql -h 1.2.3.4 -P 3306 -u root -p BD_name < C:/Folder/fisier.sql

ATENTIE ! - 1.2.3.4 este o adresa IP generic. Pentru conectare pe o statie


locala NU eveti nevoie de IP, sau puneti localhost sau 127.0.0.1. Altfel este necesar
sa cunoasteti adresa IP a serverului. Calea catre executabil este locala.
InfoAcademy - 2018
MySQL Workbench

- Pornire din start / all programs / MySQL /MySQL Workbench;

- Click – local instance MySQL – user / parola sau automat;

- Partitionare, Short cut - uri in bara de meniu;

- Ctrl+Shift+O, Ctrl+O, Ctrl+Shift+S, Ctrl+S , Ctrl+Enter, Ctrl+N;

- Executare instructiuni “fulgere”;

- Edit / Preferences;

- Server / Data export/import;


InfoAcademy - 2018
,

ectare

InfoAcademy - 2018
Limiteaza numarul de
Refresh baze de date si tabele, daca inregistrari afisate de
le-am adaugat recent un raport

Butoane pentru
ascunderea / afisarea
Switch la pagina de benzilor din stanga,
administrare dreapta, jos

Executa toate Executa instructiunea pe


instructiunile din foaia de care am plasat mousul
lucru (scriptul) sau am selectat-o
Ctrl + Shift + Enter Ctrl + Enter

Detalii nume coloana, tip


de date, alte informatii
din tabele

InfoAcademy - 2018
- New model Ctrl + N - deschide o noua foie de lucru
- Open SQL Scrip - deschide un script intr-o foaie de lucru noua
- Save script - salveaza scriptul din foia de lucru curenta
- Vezii si shot cut – uri - sub bara de meniu

InfoAcademy - 2018
- Aceasta fereastra se deschide din
Edit / Preferencies

Setata o valoare
mai mare decat
cea default

Trebuie debifat Safe updates,


daca e bifat (va restrictioneaza
daca e bifat)

InfoAcademy - 2018
InfoAcademy - 2018
Selecteaza baza de date Selecteaza tabelele

Ce exportam? Doar
structura, doar datele,
ambele?

Optiuni de selectat, director, nume


fisier, etc

InfoAcademy - 2018
Selecteaza baza de date Selecteaza tabelele

Ce exportam? Doar
structura, doar datele,
ambele?

Optiuni de selectat, director, nume


fisier, etc

InfoAcademy - 2018

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