Cap 1. Fundamente ale bazelor de date relationale Elemente generale de limbaj SQL
Administrative
1. Contact:
[email protected] ; 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
Click pe link-ul ‘aici’ pt. parola
InfoAcademy - 2018
Fisier video cu o pentru instalare
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 terminare sesiune
Click ‘Begin test’ sa 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 intruna 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 -; - \g - \G
- executa comanda scrisa pana in acel moment (general valabil) - executa comanda scrisa pana in acel moment (doar in command line) - 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
Refresh baze de date si tabele, daca le-am adaugat recent
Limiteaza numarul de inregistrari afisate de un raport
Butoane pentru ascunderea / afisarea benzilor din stanga, dreapta, jos
Switch la pagina de administrare
Executa toate instructiunile din foaia de lucru (scriptul) Ctrl + Shift + Enter Detalii nume coloana, tip de date, alte informatii din tabele
InfoAcademy - 2018
Executa instructiunea pe care am plasat mousul sau am selectat-o Ctrl + Enter
- New model Ctrl + N - Open SQL Scrip - Save script - Vezii si shot cut – uri
- deschide o noua foie de lucru - deschide un script intr-o foaie de lucru noua - salveaza scriptul din foia de lucru curenta - 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 tabelele
Selecteaza baza de date
Ce exportam? Doar structura, doar datele, ambele?
Optiuni de selectat, director, nume fisier, etc
InfoAcademy - 2018
Selecteaza tabelele
Selecteaza baza de date
Ce exportam? Doar structura, doar datele, ambele?
Optiuni de selectat, director, nume fisier, etc
InfoAcademy - 2018