This shows you the differences between two versions of the page.
bd:laboratoare:01 [2018/10/08 20:42] fbratiloveanu [Desfășurarea Laboratorului] |
bd:laboratoare:01 [2021/03/02 11:21] (current) ciprian.truica [Obiective] |
||
---|---|---|---|
Line 3: | Line 3: | ||
==== Obiective ==== | ==== Obiective ==== | ||
+ | * SGBD și BD | ||
+ | * Diferitelor tipuri de SGBD-uri | ||
+ | * SGBD și produse Oracle | ||
+ | * Algebra Relațională | ||
+ | * Limbajul SQL | ||
==== Materiale ajutătoare ==== | ==== Materiale ajutătoare ==== | ||
+ | |||
+ | [[bd:resurse:tables|Resurse BD]] | ||
+ | |||
+ | {{:bd:laboratoare:laborator01.pdf|Laborator 1}} | ||
+ | |||
==== Noțiuni teoretice ==== | ==== Noțiuni teoretice ==== | ||
Line 59: | Line 69: | ||
=== Modelarea algebrei relaționale folosind Oracle Database === | === Modelarea algebrei relaționale folosind Oracle Database === | ||
- | * Inspirat din Algebra Relațională, modelul bazelor de date relaționale poate fi considerat drept o colecție de tabele bidimensionale, definite de următoarele concepte: | + | Inspirat din Algebra Relațională, modelul bazelor de date relaționale poate fi considerat drept o colecție de tabele bidimensionale, definite de următoarele concepte: |
* O entitate din algebra relațională devine un tabel într-o bază de date; | * O entitate din algebra relațională devine un tabel într-o bază de date; | ||
- | * Un tabel este format din coloane și linii, iar câmpul este o valoare care se află la intersecția dintre o coloană și un rând; | + | * Un tabel este format din coloane și linii, iar câmpul este o valoare care se află la intersecția dintre o coloană și o linie; |
* O relaţie de asociere este o legătură între două sau mai multe entităţi. Existenţa unei relaţii este subordonată existenţei entităţilor pe care le leagă; | * O relaţie de asociere este o legătură între două sau mai multe entităţi. Existenţa unei relaţii este subordonată existenţei entităţilor pe care le leagă; | ||
* Un atribut este o proprietate descriptivă a unei entități sau a unei relații. Pentru o enitate tipul atributului devine coloană, reprezentat printr-un nume, iar valoarea efectivă a acestuia, pentru o înregistrare, devine un câmp în tabel. | * Un atribut este o proprietate descriptivă a unei entități sau a unei relații. Pentru o enitate tipul atributului devine coloană, reprezentat printr-un nume, iar valoarea efectivă a acestuia, pentru o înregistrare, devine un câmp în tabel. | ||
Line 71: | Line 81: | ||
Operatorii relaționali pot fi definiți astfel: | Operatorii relaționali pot fi definiți astfel: | ||
* Proiecția (π) este operația care afișează selectiv anumite coloane din una sau mai multe tabele (submulțime verticală); | * Proiecția (π) este operația care afișează selectiv anumite coloane din una sau mai multe tabele (submulțime verticală); | ||
- | * Selecția sau restricția (σ) este o operație care preia și afișează toate rândurile, din una sau mai multe tabele, sau numai rânduri care îndeplinesc una sau mai multe condiții(submulțime orizontală); | + | * Selecția sau restricția (σ) este o operație care preia și afișează toate liniile, din una sau mai multe tabele, sau numai liniile care îndeplinesc una sau mai multe condiții(submulțime orizontală); |
- | * Produsul (x) este rezultatul obținut prin concatenarea rândurilor a două mulțimi de date conform condițiilor specificate; | + | * Produsul (x) este rezultatul obținut prin concatenarea liniilor a două mulțimi de date conform condițiilor specificate; |
- | * Reniunea (U) este rezultatul obținut prin afișarea rândurilor comune și neconume dintre două sau mai multe tabele; | + | * Reniunea (U) este rezultatul obținut prin afișarea liniilor comune și neconume dintre două sau mai multe tabele; |
- | * Intersecția (∩) este rezultatul obținut prin afișarea rândurilor comune dintre două sau mai multe tabele. | + | * Intersecția (∩) este rezultatul obținut prin afișarea liniilor comune dintre două sau mai multe tabele. |
- | * Diferența (-) este rezultatul obținut prin afișarea rândurilor care aparțin numai unei singure tabele conform condițiilor specificate; | + | * Diferența (-) este rezultatul obținut prin afișarea liniilor care aparțin numai unei singure tabele conform condițiilor specificate; |
* Joinul sau compunerea (⋈)este rezultatul obținut prin concatenarea coloanelor din una sau mai multe tabele conform condițiilor specificare; | * Joinul sau compunerea (⋈)este rezultatul obținut prin concatenarea coloanelor din una sau mai multe tabele conform condițiilor specificare; | ||
- | * Compunere naturală (natural join ⋈) combină rândurile din două relaţii, cu condiţia ca atributele comune să aibă valori identice; | + | * Compunere naturală (natural join ⋈) combină liniile din două relaţii, cu condiţia ca atributele comune să aibă valori identice; |
- | * Semi-compunere (semi-join ⋉ ⋊) – selectează rândurile ce aparţin unei singure relaţii, care sunt corelate cu rândurile din cea de a doua relaţie; | + | * Semi-compunere (semi-join ⋉ ⋊) – selectează liniile ce aparţin unei singure relaţii, care sunt corelate cu liniile din cea de a doua relaţie; |
- | * Θ-compunere (Θ-join) – combină rândurile din două relaţii (nu neaparat corelate), cu condiţia ca valorile atributelor specificate să satisfacă o anumită condiţie; | + | * Θ-compunere (Θ-join) – combină liniile din două relaţii (nu neaparat corelate), cu condiţia ca valorile atributelor specificate să satisfacă o anumită condiţie; |
- | * Compunere externă (outer join) – combină rândurile din două tabele, astfel încât condiţiile de corelare să fie satisfăcute. Rândurile din orice relaţie care nu satisfac aceste condiţii sunt completate cu valori null. | + | * Compunere externă (outer join) – combină liniile din două tabele, astfel încât condiţiile de corelare să fie satisfăcute. Liniile din orice relaţie care nu satisfac aceste condiţii sunt completate cu valori null. |
Line 96: | Line 106: | ||
=== Structura unui tabel === | === Structura unui tabel === | ||
Structura unui tabel trebuie să respecte anumite reguli: | Structura unui tabel trebuie să respecte anumite reguli: | ||
- | * Să nu existe duplicare de rânduri și coloane; | + | * Să nu existe duplicare de linii și coloane; |
- | * Rândurile și coloanele pot să nu respecte o anumită ordine; | + | * Liniile și coloanele pot să nu respecte o anumită ordine; |
* Tipul coloanelor trebuie definit în concordanță cu tipurile de date; | * Tipul coloanelor trebuie definit în concordanță cu tipurile de date; | ||
* Relațiile între tabele se fac pe coloane de același tip; | * Relațiile între tabele se fac pe coloane de același tip; | ||
Line 104: | Line 114: | ||
=== Structura unui baze de date === | === Structura unui baze de date === | ||
- | O * bază de date este formată din următoarele componente: | + | O bază de date este formată din următoarele componente: |
* O/S block – reprezintă cea mai mică unitate fizică de organizare a datelor într-o bază de date; | * O/S block – reprezintă cea mai mică unitate fizică de organizare a datelor într-o bază de date; | ||
* Data files – sunt fișierele de date organizate fizic în limita spațiului alocat; Fișierele de date stochează fizic datele în baza de date; | * Data files – sunt fișierele de date organizate fizic în limita spațiului alocat; Fișierele de date stochează fizic datele în baza de date; | ||
Line 110: | Line 120: | ||
* Extent – reprezintă o extensie logică a bazei de date reprezentată printr-un număr continuu de blocuri; | * Extent – reprezintă o extensie logică a bazei de date reprezentată printr-un număr continuu de blocuri; | ||
* Segment – reprezintă spațiul logic într-un tablespace, acesta poate fi de mai multe tipuri(segmente de index, segmente temporare, segmente de rollback). | * Segment – reprezintă spațiul logic într-un tablespace, acesta poate fi de mai multe tipuri(segmente de index, segmente temporare, segmente de rollback). | ||
- | * Tablespace – este spațiul logic în caer se creează obiectele (tabele, view-uri). O bază de date poate avea mai multe tablespace-uri, iar un tablespace poate avea alocat fizic mai multe fișiere de date(data-files). | + | * Tablespace – este spațiul logic în care se creează obiectele (tabele, view-uri). O bază de date poate avea mai multe tablespace-uri, iar un tablespace poate avea alocat fizic mai multe fișiere de date(data-files). |
{{ :bd:laboratoare:structura_bd.png?nolink&200 |}} | {{ :bd:laboratoare:structura_bd.png?nolink&200 |}} | ||
Line 116: | Line 126: | ||
=== Limbajul SQL === | === Limbajul SQL === | ||
- SQL este un limbaj orientat pe seturi (set-oriented language); | - SQL este un limbaj orientat pe seturi (set-oriented language); | ||
- | - Într-un limbaj procedural sau orientat obiect, un programator procesează informația rând cu rând, însă folosind SQL, un dezvoltator poate să proceseze grupuri de rânduri. | + | - Într-un limbaj procedural sau orientat obiect, un programator procesează informația linie cu linie, însă folosind SQL, un dezvoltator poate să proceseze grupuri de linii. |
- Limbajul SQL are următoarele comenzi, grupate în 4 categorii: | - Limbajul SQL are următoarele comenzi, grupate în 4 categorii: | ||
* Data Manipulation Language (DML): SELECT, INSERT, UPDATE, DELETE, MERGE | * Data Manipulation Language (DML): SELECT, INSERT, UPDATE, DELETE, MERGE |