Laborator 01 - Introducere

Obiective

Materiale ajutătoare

Noțiuni teoretice

Baze de Date și sisteme de gestionare a bazelor de date

O bază de date (BD, eng. database - DB) este un ansamblu structurat de date care permite stocarea informațiilor și prelucrarea eficientă a acestora de mai mulți utilizatori într-un mod concurent.

Un sistem de gestiune a bazelor de date (SGBD, eng. Data Base Management System - DBMS) este un produs software care asigură interacţiunea cu o bază de date, permiţând definirea, consultarea şi actualizarea datelor din baza de date. Toate cererile de acces la baza de date sunt tratate şi controlate de către SGBD.

Baze de date relaționale

  • Conceptul de baze de date relaționale a fost introdus de E.F. Codd în anii ’70 și modelează bazele de date sub formă de tabele și relații între acestea.
  • IBM a fost prima companie care a preluat și dezvoltat acest concept (SEQUEL - Structured English QUEry Language), punând la punct limbajul SQL (SEQUEL2) în anul 1976, ulterior dezvoltând DB2 și SQL/DS.
  • Oracle Corporation lanseză în 1979 primul produs SQL, cunoscut ca limbajul standard de interogare a unei baze de dare, care a fost standardizat de Institutul Național American de Standarde(ANSI), iar ulterior de Organizația Internațională de Standarde(ISO).
  • Standardul curent de SQL este SQL:2011

Oracle SGBD

Există mai multe tipuri de SGBD-uri:

  1. Relaționale, cele mai cunoscute și utilizate fiind: Oracle, Microsoft SQL Server, IBM DB2, MySQL, PostgreSQL
  2. NoSQL:
    • Orientate document(Document-oriented Database): MongoDB, Apache CouchDB
    • Graf(Graph Database): Neo4J
    • Cheie-valoare (Key-Value Database): Riak, Redis
    • Orientate obiect(Object database): Caché, ObjectDB
    • Orientate coloana(Column-oriented Database): Apache HBase, Cassandra
    • etc.

Oracle este cel mai utilizat SGBD-uri din lume (http://db-engines.com/en/ranking). Primele versiuni de Oracle au fost dezvoltate pentru sistemul VAX/VMX, produs de firma Digital; ulterior au apărut versiuni pentru UNIX (rescris în C), Windows(începând cu versiunea 8) și Linux. Începând cu versiunea 8i pentru a dezvolta SGBD-ul s-a folosit limbajul de programare Java. Începând cu versiunea 8i au permis dezvoltarea aplicațiilor care accesează baza de date prin intermediul Internetului. Pentru a interoga și prelucra informația stocată într-o bază de date, în Oracle se pot folosi următoarele limbaje de programare:

  • SQL : este un limbajul de programare dezvoltat special cu scopul de a procesa informația păstrată într-o bază de date (set-oriented language).
  • PL/SQL: este un limbaj procedural, construit ca extensie a limbajului SQL, care, pe lângă interogările SQL, folosește structuri de control (if…then, if…then…else, if…then…elsif…else, case ) și bucle (loop, while, for).

Produsele Oracle s-au impus pe piață datorită instrumentelor de dezvoltare oferite, siguranței în exploatarea bazelor de date, gestionarea unui volum mare de date și mai ales datorită nivelurilor de securitate.

Alte produse Oracle

Pentru dezvoltarea de aplicații complexe pot fi folosite și alte produse Oracle, cum ar fi:

  • Forms Builder – pentru generarea de interfețe utilizator
  • Reports Builder – pentru generarea de rapoarte
  • Schema Builder – pentru definirea de tabele și relații între tabele
  • Procedure Builder – pentru dezvoltarea și testarea procedurilor
  • SQL Developer – IDE pentru dezvoltarea interogărilor SQL și programelor PL/SQL

SQL*Plus

  • SQL*Plus este un interpretor în linie de comandă (CLI – command line interpreter) care este utilizat pentru scrierea și lansarea către motorul bazei de date Oracle a interogărilor SQL și programelor PL/SQL;
  • Acesta poate fi folosit pentru manipularea datelor și crearea obiectelor într-o bază de date;
  • De asemenea, se poate folosi pentru dezvoltarea și testarea interogărilor și procedurilor înainte de a fi integrate în aplicații și pentru crearea rapidă de rapoarte complexe.

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:

  • 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;
  • 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.

Operatorii algebrei relaționale

Modificarea datelor este realizată prin operațiile relaționale efectuate pe tabele, iar operatorii acționează asupra tabelelor pentru a produce noi relații. 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ă);
  • 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ă);
  • Produsul (x) este rezultatul obținut prin concatenarea rândurilor 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;
  • Intersecția (∩) este rezultatul obținut prin afișarea rândurilor 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;
  • 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;
  • 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;
  • Θ-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 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.

Controlul asupra bazelor de date

Controlul asupra bazelor de date este gestionat de SGBD și resptectă anumite reguli:

  • O bază de date relațională apare ca o colecție de tabele definite de către utilizator;
  • Utilizatorii nu controlează felul cum este organizată fizic informația;
  • Controlul fișierelor de date este gestionat exclusiv de catre sistem;
  • Utilizatorul poate defini anumiti parametri de sistem pentru optimizarea aplicațiilor sau pentru diferite setări;
  • Accesul la baza de date este gestionat exclusiv de sistem prin executarea de comenzi specifice;
  • Rularea aplicațiilor, atât pe server cât și pe mașina client, este gestionată exclusiv de catre sistem.

Structura unui tabel

Structura unui tabel trebuie să respecte anumite reguli:

  • Să nu existe duplicare de rânduri și coloane;
  • Rândurile și coloanele pot să nu respecte o anumită ordine;
  • Tipul coloanelor trebuie definit în concordanță cu tipurile de date;
  • Relațiile între tabele se fac pe coloane de același tip;
  • Valorile sunt atomice.

Structura unui baze de date

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;
  • 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 block – reprezintă cea mai mică unitatre logică de intrare/ieșirea și poate conține unul sau mai multe blocuri fizice;
  • 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).
  • 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).

Limbajul SQL

  1. SQL este un limbaj orientat pe seturi (set-oriented language);
  2. Î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.
  3. Limbajul SQL are următoarele comenzi, grupate în 4 categorii:
  • Data Manipulation Language (DML): SELECT, INSERT, UPDATE, DELETE, MERGE
  • Data Definition Language (DDL): CREATE, ALTER, DROP, RENAME, TRUNCATE, COMMENT
  • Data Control Language (DCL): GRANT, REVOKE
  • Transaction Control Language (TCL): COMMIT, ROLLBACK, SAVEPOINT
bd/laboratoare/01.txt · Last modified: 2018/10/22 19:29 by fbratiloveanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0