Sunteți pe pagina 1din 12

1.Definiţiile BD şi SGBD. Funcţionalităţi. Exemple.

BD - colectie persistenta de informatii structurate, organizata si construita pentru facilitarea accesului si prelucrarii eficiente,
unic definit o singură dată şi utilizat simultan de mai multi utilizatori. BD este o resursă comună şi partajată. BD contine
nu numai date ci şi descrierea acestora. Descrierea datelor - de dictionar de date (catalog de sistem, metadate)
reprezintă date despre date. Utilizatorii BD pot accesa datele memorate prin intermediul unui program - Sistem de
Gestiune a Bazei de Date - SGBD -Database Management System-DBMS, ce receptioneaza cererile utilizatorilor (pentru
operatii de introducere, stergere, modificare sau interogare), le interpreteaza, executa operatiile corespunzatoare si
returneaza rezultatul catre utilizatori. Un SGBD - un produs software ce asigură interacţiunea cu o BD, permiţând definirea,
consultarea şi actualizarea datelor din BD. Toate cererile de acces la BD sunt tratate şi controlate de către SGBD. .
Obiectivul principal al unui SGBD este de a separa datele de programele de aplicatie. SGBD constituie o interfa intre
utilizatori si baza de date si consta din programe care interactioneaza cu programele de aplicatie ale utilizatorului si cu baza
de date
2. Proprietatea „Nonredundanţa” în BD. Exemplu.
Asigurarea unei redundante minime şi controlate a datelor – este al doilea obiectiv major al organizării datelor în BD.
Aceasta înseamnă că se urmăreşte pe cât posibil ca fiecare dată să apară numai o singură dată în BD, indiferent de numărul
de utilizatori care o accesează. Duplicarea datelor se păstrează doar pentru a asigura coerenta bazei de date, redundanta,
trebuie redusă la minim şi mentinută sub control. Redundanta minimă se asigură prin tehnicile de proiectare a BD
3. Proprietatea „Independenţa” în BD.
Independenta - problema a carei rezolvare tine de organizarea optima a oricarei BD. Independenta datelor inseamna ca
exista o delimitare neta intre reprezentarea fizica a datelor si imaginea pe care o are utilizatorul asupra acestor
date.Problema independentei datelor prezinta 2 aspecete:
Independenta fizica-masura a imunitatii aplicatiilor fata de modificarile in structura fizica de merorare a datelor.
Independenta logica-se refera la imunitate a modelului propriu al fiecarui utilizator fata de modificarile in structura logica
globala a BD. Independenta logica este legata in primul rand de problema adaugarii de noi unitati logice (campuri,
inregistrari) la structura BD si/sau de modificarea relatiilor existente intre ele.
4. Utilizatorii BD şi rolurile lor. Exemple.
 neinformaticieni – beneficiarii informaţiei, nu tre să cunoască structura BD, nu tre să programeze aplicaţii, ci doar
să le folosească prin intermediul unei interfeţe suficient de prietenoase.
 informaticieni – crează structura BD şi realizează procedurile complexe de exploatare a BD;
 administratorul BD – utilizator special, cu rol hotărâtor în funcţionarea optimă a întregului sistem..
5.Arhitectura ANSI/X3/SPARC
Arhitectura internă a unui sistem de BD conform standardului ANSI/X3/SPARC conţine trei niveluri funcţionale: • Nivelul
intern – constituit din schema internă ce descrie structura de stocare fizică a datelor în BD, utilizând un model al datelor
fizice. La acest nivel se descriu detaliile complete ale stocării şi modul de acces la date.
• Nivelul conceptual – sau schema conceptuală, descrie structura întregii BD pt o cumunitate de utilizatori. La nivel
conceptual se face o descriere completă a BD ascunzându-se detaliile legate de stocarea fizică şi detaliind descrierea
entităţilor, tipurilor de date, relaţiile dintre ele şi restricţiile asociate.
• Nivelul extern – sau nivelul vizual (utilizator), include o colecţie de scheme externe ce descriu BD prin prisma diferiţilor
utilizatori.
6.Nivelul fizic de abstracţie în BD. Modele de date. Exemple.
Abstractizare –procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fără a fi nevoie de a procesa
toate informaţiile referitoare la clasă sau obiect.
Fisiere:
-secventiale-sortate in ordinea cresterii cheii primare.Avem acces la instructiunea n daca am trecut prin instructiunea n-1.
-indexat secventiale-index este fisierul auxuliar anexat la cel de baza.Indexsii se construiesc pentru fiecare cheie
secundara.Faciliteaza accesul.
-B-arbori-daca sint numai pointeri si nu date atunci se numesc B+-arbori
-tabele de dispersie(hash-table)fisiere cu acces direct.
7.Nivelul logic de abstracţie în BD. Modele de date. Exemple.
Modele de date:
-ierarhic
- Nod artificial

-retea programarea devine complicata

-relational(propus de Codd 1970)


8.Nivelul conceptual de abstracţie în BD. Modele de date. Exemple.
Schema conceptuală - reprezentare a tuturor informatiilor continute de BD într-o formă abstractă. Ea reprezintă o viziune,
o vedere a datelor aşa cum sunt ele în realitate, fără a tine cont de modul în care vede datele fiecare utilizator. Nivelul
conceptual reprezintă o vedere generală a BD. Acest nivel descrie ce date sunt stocate în BD şi relatiile dintre acestea.
Pentru o BD există o singură schemă conceptuală
La acest nivel se construieste schema conceptuala a BD.
Modele de date:
-entitatea asocierii.Elemente:entitati si asocieri intre entitati.Atribute(nume,prenume).UML-limbaj universal de modelare.
-retele semantice-model ce se foloseste in baze de cunostinte.
9.Nivelul de abstracţie a viziunilor utilizatorilor în BD. Modele de date. Exemple.
O vedere externă poate fi considerată ca fiind din punctul de vedere al utilizatorului individual continutul bd, adică
ceea ce „vede” el din baza de date. Acest nivel descrie acea parte a bazei de date care este relevantă pentru fiecare utilizator
schema externă fiind formată din multimea de sub-schemelor externe.
10.Etapa de proiectare fizică a bazelor de date
■ lucrul interactiv cu utilizatorii cât de mulţi trebuie;
■ urmărirea unei metodologii structurate de-a lungul procesului de modelare a datelor;
■ utilizarea unei abordări coordonată prin date;
■ încorporarea consideraţiilor structurale şi de integritate în modelul de date;
■ combinarea tehnicil de conceptualizare, normalizare şi validare a tranzacţ în metodologia de modelare a datelor;
■ utilizarea diagramelor, pentru a reprezenta cât mai mult din modelul de date;
■ utilizarea unui limbaj de proiectare a BD Data Base Design Language (BDDL) pt a reprezenta semantica suplimentară a
datelor;
■ construirea unui dicţionar care să suplimenteze diagramele modelului de date;
■ disponibilitatea de a repeta anumite etape.
11.Etapa de proiectare logică a bazelor de date
Construirea tabelelor si a legaturilor dintre acestea.
Etapele metodologiei de organizare logică a bazelor de date pentru
modelul relaţional sunt următoarele:
Construirea şi validarea modelului de date logice pentru fiecare
vedere a utilizatorilor.
Construirea şi validarea modelului de date logic global.
Etapa E2 are ca obiectiv realizarea unui model de date logic – bazat pe
modelul de date conceptual al vederii utilizatorului asupra întreprinderii – urmat
de validarea acestuia prin utilizarea tehnicii de normalizare şi conform
tranzacţiilor cerute.
Operaţiile efectuate în cadrul acestei etape (E2) sunt:
E2.1. Transpunerea modelului de date conceptual local în modelul de date logic
local.
E2.2. Extragerea relaţiilor din modelul de date logic local.
E2.3. Validarea modelului prin utilizarea normalizării.
E2.4. Validarea modelului conform tranzacţiilor utilizatorului.
E2.5. Desenarea diagramei Entitate – Relaţie (ER).
E2..6. Definirea constrângerilor de integritate.
E2.7. Revizuirea modelului de date logic loca, împreună cu utilizatorii.
La încheierea acestei etape, (E2) trebuie să se obţină un model al vederilor utilizatorului care să fie: riguros, cuprinzător şi
fără echivoc. Dacă sunt respectate aceste cerinţe, se va dispune în acest stadiu de un fundament solid
pentru a putea trece la etapa următoare (E3) care constă în combinarea modelelor de date logice locale individuale, pentru a
realiza un model de date logic global al întreprinderii.
12.Analiza cerinţelor informaţionale la etapa de proiectare conceptuală a bazelor de date
Se aduna informatia de la diviziuni si subdiviziuni. Prima etapă în proiectarea BD constă în realizarea unor modele de date
conceptuale, pt fiecare vedere a utilizatorilor asupra întreprinderii. O vedere a utilizatorului reprezintă datele cerute de către
un anumit utilizator pentru a lua o decizie corectă sau a efectua o anumită activitate. De obicei, vederea unui utilizator
constituie o zonă funcţională a întreprinderii, cum ar fi: producţia, marketing, vânzările, personalul, contabilitatea sau
controlul aprovizionării. Un utilizator poate fi o persoană reală sau un grup de persoane ce utilizează în mod direct sistemul.
Utilizatorul se poate referi la un raport produs de către sistem sau poate solicita rezultatele unei tranzacţii ce trebuie
acceptată de către acestea. Vederile utilizatorilor pot fi identificate folosind diverse metode: pot fi examinate diagramele de
flux de date ce au fost realizate mai înainte, pt de a identifica zonele funcţionale şi posibil funcţiile individuale, ar putea fi
chestionaţi utilizatorii se pot examina procedurile, rapoartele şi formulările şi/sau observa întreprinderea în funcţiune.
13.Modelarea viziunilor utilizatorului la etapa de proiectare conceptuală a bazelor de date
Consta din 3 etape:
-analiza cerintelor informationale
-modelarea schemelor conceptuale particulare (viziunile user)
-integrarea schemei particulare si crearea schemei globale.
14. Integrarea viziunilor utilizatorilor şi proiectarea schemei conceptuale globale a BD.
Rezultatul integrării tehnologiei bazelor de date cu cea a reţelelor de calculatoare sunt BD distribuite - Sunt BD logic
integrate, dar fizic distribuite pe mai multe sisteme de calcul. Integrarea BD distribuite se face cu ajutorul celor trei tipuri de
de scheme care sunt implementate:
1.schema globală – defineşteşi descrie toate informaţiile din baza de date distribuită în reţea;
2.schema de fragmentare – descrie legăturile dintre o colecţie globalăşi fragmentele sale. E de tipul unu la mai mulţi şi are
forma unei ierarhii;
3.schema de alocare – descrie modul de distribuire a segmentelor pe calculatoarele(nodurile) din reţea. Fiecare segment va
avea o alocare fizică pe unul sau mai multe calculatoare. Schema de alocare introduce o redundanţă minimă şi controlată: un
anumit segment se poate regăsi fizic pe mai multe calculatoare.
15.Elementele modelului relaţional: atribute, domenii, tupluri. Definiţii şi exemple.
Entitate - un obiect real sau conceptual, cu o existenta independenta, este un obiect cu existenta fizica, persoana particulara,
automobil, companie, activitate, curs universitar, etc.Orice entitate are o serie de proprietati numite si atribute ce
particularizeaza entitatea respectiva. De exemplu, pentru o entitate angajat se pot enumera o serie de atribute cum sint nume,
adresa, data nasterii, sex, salariu.
Atributul este o utilizare sub un nume oarecare a unui domeniu
într-o relaţie pot exista mai multe atribute derivate din acelaşi domeniu
în termenii abstractizărilor, un domeniu este o generalizare a unor atribute
Domeniul reprezintă ansamblul de valori admisibile pentru o componentă a unei relaţii
domeniul numelor de oraşe, domeniul numelor de persoane, domeniul numerelor întregi, etc
Tuplu-secventa de elemente care merg unul dupa altul dar nu fixam ordinea.
Relaţie Tabela
Tuplu Linie/inregistrare
Cardinalitate Numar de linii
Atribut Coloana/Cimp
Grad Numar de coloane
Domeniu Multime de valori valide
16.Elementele modelului relaţional: schemă relaţională, relaţie, BD, schemă a BD.
Modelul clasic de BD -modelul relaţional, unde datele sunt memorate în tabele. Relatie-multimea finita de tupluri.Relaţiile
între 2 tabele sunt unidirecţionale, astfel o tabelă devine principală, cealaltă devine subordonată. Schema relatiei-capul BD -
un ansamblu de date structurate, accesibile unei comunităţi de utilizatori.Schema BD poate fi reprezentată printr-o diagramă
de structură în care sunt puse în evidenţă şi legăturile dintre tabele.
17. Noţiunea de cheie. Tipuri de chei. Exemple.
Cheie–un camp sau o asociatie de campuri ce are valori distincte NOT NULL pentru fiecare inregistrare din BD.
Cheie primară: garantează unicitatea şi minimalitatea şi obligă mulţimea de atribute să fie cheie primară. Pentru aceasta se
utilizeaza clauza: PRIMARY KEY. Cheie secundară: garantează unicitatea atributelor ^^ astfel declarate.Se utilizează
clauza UNIQUE.Şi obligatoriu trebuie adiţional specificat NOT NULL.
Restrictia precizeaza faptul ca un camp este o cheie straina fiind cheie primara a altei tabele.
Definire in tabela angajat a cheii straine pentru campul D_nr:
CREATE TABLE Angajat (NUME VARCHAR(15),
INI CHAR(1),
PREN VARCHAR(12),
SSN CHAR(9) CONSTRAINTS ang_PK PRIMARY KEY,
DAT_NA CHAR(8),
ADR VARCHAR(30),
SEX CHAR(1),
SALARIU INTEGER,
SSSN CHAR(9),
D_NR INTEGER CONSTRAINTS ang_FK REFERENCES departament(D_nr) FOREIGN KEY(D_nr) on delete cascade|
on delete set NULL);
18. Constrângeri de integritate structurale. Exemple.
Not null:specifica faptul ca un cimp nu poate avea valori necunoscute,null.
Unique:determina comportamentul cimpurilor care nu fac parte din cheia primara.Constringerea Unique asigura ca valorile
duplicate nu vor fi introduse pentru cimpurile specificate.Insa cimpurile specificate pot avea valori nule,iar sistemul creeaza
automat din ele un index pentru facilitatea cautarii in tabele.
Cheia primara:cimpurile nu pot contine valori duplicate.
Cheia externa:un cimp sau o multime de cimpuri ce orespund cheii primare a altui tabel.Cheia primara se utilizeaza pentru a
defini legaturile dintre tabele.
Ex:tabelul comenzi contine cod.furnizor ca cheie primara.cod furnizor din tabela furniozor este cheie externa pentru tabelul
comenzi.
19. Constrângeri de integritate comportamentale. Exemple.
Check: limiteaza valorile care pot fi luate de un cimp (sau mai multe cimpuri)In cazul actualizarii BD sistemul testeaza
constringerea booleana care urmeaza dupa cuv rezervat check.Daca adevarat-este acceptata actualizarea.ex: CHECK(“an
studiu” BETWEEN 1 and 5)
Reguli:
orice restricţie are asociat un nume (explicit sau implicit);
Dacă folosim CONSTRAINT atunci numele trebuie dat explicit;
Cheile multiple pot fi definite doar la nivelul tabelei;
NOT NULL doar la nivelul coloanei.
20. Operaţii de actualizare a relaţiilor.
INSERT – Adaugă un tuplu sau mai multe într-o relaţie.
􀂄 UPDATE – Modifică valorile unor atribute întro relaţie specificată în tuplurile specificate de
un criteriu.
􀂄 DELETE – Şterge tuplurile dintr-o relaţie care satisfac un criteriu specificat.

21. Operaţiile tradiţionale pe mulţimi: uniunea, intersecţia şi diferenţa. Proprietăţi. Exemple.


Operatiile binare asupra relatiilor: uniunea, intersectia si diferenta, necesita ca operanzii (relatiile) sa fie defintii pe scheme
compatibile.
Uniunea a doua relatii compatibile r(R) si s(S), notata cu r U s, e o relatie definita pe schema R sau S si consta din tuplurile
ce apartin relatiilor r sau s.
Operatia uniunea are doua proprietati. Ea e comutativa, adica r U s = s U r. Ea este si asociativa, adics (r U s) U q = rU(s
U q) pentru relaiile mutual compatibile r, s si q.
Intersectia a doua relatii compatibile r(R) si s(S), notata cu r ∩ s,neste o relatie definita pe
schema R sau S si consta din tuplurile ce apartin concomitent relatiilor r si s.
Diferenta a doua relatii compatibile r(R) si s(S), notata cu r \ s, este o relatie definita pe multimea de atribute R sau S si are
în calitate de tupluri, toate tuplurile din relatia r ce nu sunt în s.
Diferena nu se bucura de proprietatea comutativa, adica r \ s ≠ s \ r. Totodata, nu e nici asociativa, adica (r \ s) \ q ≠ r \
(s \ q), fiindca (r \ s) \ q = r \ (s U q) pentru orice relaii mutual compatibile r, s, si q.

Intersectia q=r∩s

Diferenta
q1=r\s
q2=s\r

22. Operaţia produsul cartezian. Proprietăţi. Exemple.


Produsul cartezian a doua relatii r(A1…An) si s(B1…Bm), notat cu r s, este
o multime de tupluri (si nu întotdeauna o relatie) definite pe multimea de atribute A1…An B1…Bm. Tuplurile reprezinta
toate posibilele asociatii de tupluri din r si s: daca tr Є r si ts Є s, atunci concatenatia trts este un tuplu în r s; pentru orice
pereche de tupluri tr si ts din r si s, respectiv, exista un tuplu t în r s încât t[Ai]=tr[Ai], 1≤i≤n si t[Bj]=ts[Bj , 1≤j≤m.

Produsul cartezian nu este o operatie comutativa. În schimb se bucura de proprietatea


asociativa.
23. Operaţiile complement şi complement activ. Proprietăţi. Exemple.
Fie relatia r(R). Notam prin tup(R) multimea tuturor tuplurilor asupra atributelor schemei R si a domeniilor lor.
Complementul relatiei r, notat cu ‫־‬r, este ‫־‬r = tup(R) \ r.
Fie r o relatie asupra schemei R, AЄR si adom(A) = {a|aЄdom(A) & Ǝ tЄr&t[A] =a}. Multimea de valori adom(A) se
numeste domeniul activ al atributului A. Notam cu atup(R) multimea tuturor tuplurilor asupra atributelor schemei R si a
domeniilor lor active. Atunci complementul activ, notat cu ~r, este ~r = atup(R) \ r.
Complementul activ

Complementul
24. Operaţia selecţia. Proprietăţi. Exemple.
Selectia este o operatie unara. Pentru selectarea unor tupluri dintr-o relatie e necesara specificarea conditiilor de selectare. În
rezultat se obtine o relatie ce e o submultime de tupluri a relatiei initiale.
Selectia relatiei r (R) conform formulei F, unde F e aplicabila relatiei r(R), e o submultime a relatiei r(R), notata cu σF(r), ce
consta din toate tuplurile tЄr ce satisfac F, adica σF(r) = 􀂄t | t Є r & F(t)􀂄.


Selectia s=σ((A = B) & (D5))(r)

25. Operaţia proiecţia. Proprietăţi. Exemple.


Proiectia e o operatie unara.
Proiectia relatiei r asupra multimii de atribute X, notata cu πx(r), e o relatie cu schema X ce consta din X-valorile tuturor
tuplurilor din r: πx(r) = 􀂄t X| t Є r􀂄.

Proiectia s = πA,C(r).
26. Operaţia joncţiune. Proprietăţi. Exemple.
Fie doua relatii r(R) si s(S). Jonctiunea relatiilor r si s (notatia uzuala r|x|s) este o relatie cu schema RS. Tuplul t apartine
relatiei rezultat, daca exista tuplurile tr si ts în r si s, respectiv, si satisfac t[R]=tr si t[S]=ts, adica r |x| s = {t | t[R] = tr& t[S]
= ts& trЄ r & ts Є s}.
Deci, fiecare tuplu din relatia rezultat este o concatenare a unui tuplu din r cu un tuplu din s ce au (R∩S)-valori egale.
Atributele cu acelasi nume în schema relatiei rezultat se iau o singura data.
Operatia jonctiunea nu este comutativa. În schimb, ea se bucura de proprietatea asociativa.

Jonctiunea q = r |x| s
27. Interacţiunea dintre operaţiile joncţiunea şi proiecţia. Exemple.
Fie relatiile r(A B) si s(B C). Notam q=r|x|s si r1 = πAB(q). În urma operatiilor, observam ca tuplurile relatiei r1 constituie o
submultime proprie a relatiei r.
28. Operaţia θ-joncţiune. Proprietăţi. Exemple.
θ-jonctiunea relatiilor r(R) si s(S), notata cu r|x|AθBs , este o multime de tupluri concatenate de forma trts , unde tr Є r, ts Є
s si tr(A) θ ts(B), adica:
r|x|AθBs = { trts | tr Є r & ts Є s & tr(A) θ ts(B)}.
Operatia θ-jonctiunea poate fi exprimata prin operatiile produsul cartezian si selectia. Rezultatul unei θ-jonctiuni este acelasi
cu rezultatul unei selectii operate asupra unui produs cartezian, adica r|x|AθBs = σAθB(r s).

29. Operaţia semijoncţiunea. Proprietăţi. Exemple.


Semijonctiunea e o operatie binara. Ea consta în construirea unei relatii din cele doua si e formata numai din tuplurile unei
singure relatii ce participa la jonctiune.
Fie doua relatii r(R) si s(S). Semijonctiunea relatiei r si s, notata cu
r|x s, este o multime de tupluri determinata de expresia r|x s = πR(r|x|s).

Semijonctiunea q =r|xs
30. Operaţia divizarea. Proprietăţi. Exemple
Fie r(R) si s(S) doua relaii si S R. Notam Q = R \ S. Diviziunea relatiei r la relatia s, notata cu r􀂄s, este o relatie definita
pe multimea de atribute Q: r􀂄s = {t| pentru tsЄ s(S) Ǝ tr Є r(R) ce satisface tr[Q]=t si tr[S]=ts}.
Operatia diviziunea poate fi conceputa drept operatie inversa produsului cartezian. Fie q=r􀂄s. Atunci q s produce o relatie
cu schema R si relatia q va contine numarul maximal de tupluri ce ar satisface expresia q s r.
Diviziunea q= r􀂄s
31.Componentele limbajului SQL2.
Definirea datelor: categorii de date, tipul acestora, legături, reguli de validare, formatare.
Manipularea datelor: selectarea oricărui câmp de date, filtrarea datelor, sortarea, corelarea cu alte informaţii şi totalizarea
rezultatelor, actualizare, ştergere, copiere în alt tabel.
Controlul datelor: definirea utilizatorilor cu drept de citire, actualizare şi inserare date, partajarea datelor.
DDL : Limbaj de definire a datelor
□ Mulţime de instrucţiuni care permit
Definirea, modificarea şi eliminarea schemelor de relaţii (tabele)
Crearea indecşilor
Definirea viziunilor
Specificarea constrângerilor de integritate

□ Exemplu: CREATE, ALTER, DROP, ...


DML: Limbaj de manipulare a datelor
Mulţime de instrucţiuni care permit
■ Consultarea, actualizarea şi ştergerea obiectelor create cu DDL, cum ar fi tabelele, indecşi etc.
■ Este bazat pe algebra şi calculul
relaţional
□ Exemple: SELECT, INSERT, UPDATE,
deleTe, ..
DCL: Limbaj de control al datelor
□ Mulţime de instrucţiuni care permit
■ Definirea permiselor de acces la BD
□ Exemple: GRANT, REVOKE
32. Tipuri de date numerice în SQL2 şi Transact SQL. Exemple.
Intregi:
INTEGER, 4 octeţi, numere între -2147483648 şi 2147483648;
SMALLINT, 2 octeţi, numere între -32768 şi 32767
TINYINT , 1 octet, numere de la 0 la 255
Zecimale:NUMERIC(M;D)DECIMAL(M,D).Norma SQL2 impune atributelor de tip NUMERIC să accepte numere cu un
număr exact de cifre zecimale, în timp ce atributele de tip DECIMAL nu.
Numerice aproximative:
REAL, numere cu precizie simplă, cu cel puţin 7 cifre semnificative
DOUBLE PRECISION sau FLOAT,
W reprezintă numere cu dublă precizie cu cel puţin 15 cifre semnificative
33. Tipuri de date secvenţe de caractere în SQL2 şi Transact SQL. Exemple
CHAR(N) (sau CHARACTER(N)) secvenţă de lungime fixă
VARCHAR(N) (sau CHAR VARYING(N), sau CHARACTER VARYING(N)) secvenţă de lungime variabilă cu cel mult N
caractere.
TEXT
Secvente de biti:
BIT(N) de lungime fixă
VARBIT(N) (sau BIT VARYING(N)) ■lungime variabilă cu cel mult N biţi
34. Tipuri de date temporale în SQL2 şi Transact SQL. Exemple.
DATE : YYYY-MM-DD
TIME: HH-MM-SS
TIME-STAMP:
YYYY-MM-DD-HH-MM-SS-F...F
35. Definirea schemei unei relaţii în SQL2. Exemple.
O schema relatie R data prin R(A1,A2,...,An) reprezinta un set al atributelor Ai. Fiecare atribut Ai joaca rolul numelui acelui
domeniu Di in relatia R. Di este domeniul lui Ai si se noteaza dom(Ai). O schema relatie este utilizata pentru descrierea
relatiei R, unde R este numele relatiei. Se defineste gradul relatiei ca fiind numarul atributelor n ale schemei relatiei. Fie de
exemplu o schema relatie de grad 7, ce descrie studentii intr-o universitate: STUDENT(Nume, SSN, Telefon,
Adresa_stabila, Adresa_flotanta, Virsta, Directie_specializare).
36. Constrângeri de comportament în SQL2. Exemple.
Specifica caracteristicile independente ale unui atribut(sau domeniu).Ele exprima semanticca elementelor domeniilor.De
exemplu valorile atributului Nota_med trebuie sa fie mai mare decit zero,dar nu poate depasi zece.Sau nici o persoana de
virsta 25 ani nu poate avea o vechime in munca de 37 de ani.Deci conform acestei restrictii valorile atributului trebuie sa se
incadreze intre anumite limite.
37. Constrângeri structurale în SQL2. Exemple..
Specifica legatura dintre atribute(sau domenii).Aici putem identifica asa numita dependenta de multime de atribute{Angajat
Salariu Departament Manager}. In relatia personal,un manager este in acelasi timp un angajat,dar nu orice angajat este
manager.Deci avem ca dom(manager) Ui dom (angajat)

38. Modificarea şi suprimarea schemei relaţionale în SQL2. Exemple.


1. Drop table comanda pentru stergerea unei relatii
DROP TABLE Angajat
2.Alter table modificarea schemei relationale
ALTER TABLE nume_relatie TIP_modif (definitie)
Adaugarea unui camp
ALTER TABLE angajat ADD (nume_camp tip_data [DEFAULT expresie] [constrangere])
Ex:
ALTER TABLE angajat ADD (studii VARCHAR(15) DEFAULT “medii” CONSTRAINT ang_stud NOT NULL)
Stergerea unui camp
ALTER TABLE nume_relatie DROP COLUMN nume_coloana [CASCADE CONSTRAINTS]
Sau
ALTER TABLE nume_relatie DROP (lisata coloane) [CASCADE CONSTRAINTS]
Ex:
ALTER TABLE angajat DROP (SSSN)
ALTER TABLE angajat DROP COLUMN SSSN
Optiunea CASCADE CONSTRAINTS sterge suplimentar toate constrangerile de integritate in care sunt implicate
coloanele sterse inclusiv cele de tip FOREIGN KEY
39. Cele mai simple interogări (numai cu proiecţia) în SQL2. Exemple.
SELECT <coloane> FROM <tabel> where conditie
SELECT stuName, stuAddress FROM student
40. Interogări cu criterii de selecţie în SQL2. Exemple.
SELECT *FROM functionari WHERE Varsta < 28 AND Dept = 1
SELECT *FROM functionariWHERE Varsta BETWEEN 18 AND 30
SELECT *FROM funcţionari WHERE Nume IN ('Gheorghe Câmpeanu', 'Adrian Paiu')
SELECT Nume, Prenume FROM persoane ORDER BY Nume, Prenume;
SELECT nume FROM functionari WHERE nume LIKE’%lin%’
SELECT avg(pret) as Pret_med from imprimante ......
40.Interogări cu criterii de selecţie în SQL2. Exemple.
Interogarile cu criterii de selectie in SQL sunt utilizate p/u selectarea datelor din tabele.Are urmatoarea sintaxa de baza:
SELECT[TIP]<lista de cimpuri>FROM<lista de tabele>[CONDITIE]
Lista de cimpuri-lista de cimpuri ce trebuie selectate.
Lista de tabele-lista de tabele de unde datele trebuie sa fie selectate.
CONDITIE-defineste un filtru p/u interogare folosind unele clause ca WHERE.
EX: Model,Pret FROM pc_uri WHERE Cd=’40x’ ORDER BY Pret
41.Interogări cu funcţii de agregare în SQL2. Exemple.
F.de agreg.-prelucreaza multimi de inregistrari(linii) ale tabelului si returneaza un anumit rezultat.Majoritatea acestor
functii,de obicei,actioneaza asupra tuturor liniilor tabelului.
Ele accepat parametrii:
All-face ca functia sa considere toate inregistrarile inclusiv cele duplicate.
DISTINCT-face ca funct. Sa considere numai inregistrarile ce nu poseda o valoare duplicata.
AVG-returneaza media aritmetica a lui x.
COUNT-returneaza nr. de linii a interogarii.
MAX/MIN-returneaza valoarea maxima sau minima a expr.MAX sau MIN ([DISTINCT|ALL)] expr)
EX: SELECT AVG(Viteza) As Viteza_medie,
MAX(Viteza) As Viteza_maxima,
MIN(Viteza) As Viteza_minina.
42.Interogări cu agregarea tuplurilor în SQL2. Exemple.
43. Interogări de actualizare (inserare şi ştergere) a datelor în SQL2. Exemple
Limbajul TRANSACT-SQL propune 3 instructiuni ce corespund celor 3 operatii de actualizare a bazei de
date:inserarea(instructiunea INSERT)-pentru inserarea datelor,suprimarea(instructiunea DELETE)-p/u stergerea datelor si
modificarea(instructiunea UPDATE)-p/u modificarea datelor.Toate optiunile se asupra tabelelor (fizice sau virtuale) si
actualizearea se petrece la nivel de linie de tabel.
EX:CREATE TABLE clienti(Cod_client INT,Tara CHAR(2)DEFAULT(‚MD’),Nume CHAR(20));
INSERT clienti (Cod_client,Tara,Nume)VALUES(12340,’MD’,’Ion Petrache’);
INSERT clienti DEFAULT VALUES;
INSERT clienti VALUES (12560,’FR’,’Jack London’);
44. Interogări de actualizare (modificare) a datelor în SQL2. Exemple.
UPDATE-operatia de modificare a continutului unuia sau a mai multor cimpuri ale tuplurilor.
Sintaxa instructiunii: UPDATE <tabel> SET<coloana>=<valoare noua> WHERE <conditie>
In caz cind nici o conditie nu e impusa, toate cimpurile tuturor inregistrarilor vor fi alterate de valorile noi.
EX: UPDATE functionari SET Sector=’Administratie’ WHERE Sector=’Finante’;
SELECT * FROM functionari ORDER BY Sector;
45. Interogări cu uniuni în SQL2. Exemple.
Operatia UNION-permite fuzionarea a doua selectii pentru a obtine o multime de tupluri egala cu uniunea acestor doua
selectii.
EX. SELECT produse.Model ,Pret FROM produse,pc_uri
WHERE produse.Model=pc_uri.Model AND Producator=’B’
UNION
SELECT produse.Model,Pret FROM produse,laptop_uri
WHERE produse.Model=laptop_uri.Model AND Producator=’B’
UNION
SELECT produse.Model,Pret FROM produse,imprimante
WHERE produse.Model=imprimante.Model AND Producator=’B’
46.Interogări cu intersecţii în SQL2. Exemple.
Interogarile cu operatiile uniune,intersectia si diferenta sunt foarte aproape de interogarile scrise in algebra relationala.Se
formuleaza doua interogari care construiesc relatii cu scheme compatibile ,adica cu acelasi nr de atribute si de acelasi tip si
aceste cereri sunt legate cu cuvintele cheie UNION,INTERSECT sau EXCEPT.
Pentru a gasi valori ce coincid in doua sau mai multe tabele ,se poate utiliza instructiunea INTERSECT.
EX: SELECT Model FROM produse
INTERSECT
SELECT Model FROM pc_uri
Daca INTERSECT este substituit cu EXCEPT, se obtine un rezultat,intr-un fel,invers celui precedent,adica se vor afisa
modelele de produse din primul tabel, care nu sunt in al doilea tabel.

47.Interogări cu diferenţe în SQL2. Exemple


Interogarile cu operatiile uniune,intersectia si diferenta sunt foarte aproape de interogarile scrise in algebra relationala.Se
formuleaza doua interogari care construiesc relatii cu scheme compatibile ,adica cu acelasi nr de atribute si de acelasi tip si
aceste cereri sunt legate cu cuvintele cheie UNION,INTERSECT sau EXCEPT.
EX. SELECT Model FROM produse
EXCEPT
SELECT Model FROM pc_uri
48.Interogări cu joncţiuni în SQL2. Exemple
Deseori,p/u a obtine un rezultat complet, este necesara selectarea datelor din doua sau mai multe tabele.
Tabelele din BD sunt legate intre ele prin chei.Este important,indeosebi,rolul cheii primare care face ca coloanele ce o
constituie sa posede o valoare unica p/u fiece rind.
De ex.e necesar sa se afiseze producatorul si viteza laptopurilor.Atributul viteza se afla in tabelul laptop_uri.Informatia
referitoare la producatori se afla in tabelul produse,rezultatul este ordonat dupa cimpul Producator.
EX. SELECT Producator,Viteza FROM produse,laptop_uri
WHERE produse.Model=laptop_uri.Model ORDER BY Producator
CU Jonctiune interna
EX. SELECT Producator,Viteza FROM produse INNER JOIN laptop_uri
ON produse.Model=laptop_uri.Model ORDER BY Producator.
49.Interogări imbricate cu ALL în SQL2. Exemple.
Subinterogare este o cerere care restituie un singur atribut.
Interogarea utilizată in comparaŃie se defineste in interiorul predicatului din clauza where si se numeste interogare
imbricată
All - face ca functia sa considere toate inregistrarile inclusive cele duplicate
Cuvantul cheie all specifică faptul că linia este validă dacă valoarea atributului se află in
relatie cu toate valorile returnate de interogare.
Să se găsească departamentele in care nu lucrează nici un angajat cu numele Ionescu.
select Dept
from Departament
where Dept <> all (select Dept
from Angajati
where Nume = ’Ionescu’)
Această interogare poate fi exprimată cu ajutorul operatorului diferenŃă:
select Dept
from Departament
except
select Dept
from Angajati
where Nume = ’Ionescu’
50. Interogări imbricate cu ANY în SQL2. Exemple
Cuvantul cheie any specifică faptul că linia este validă dacă valoarea atributului se află in
relatie cu cel putin o valoare returnată de interogarea imbricată.
Se consideră tabelele ANGAJATI si DEPARTAMENT prezentate in figura 5.1.
Exemplu: Să se găsească angajaŃii ce lucrează intr-un departament din Iasi.
select Nume, Prenume
from Angajati
where Dept = any (select Dept
from Departament
where Oras = ’Iasi’)
ObservaŃie. Această interogare poate fi rezolvată prin realizarea unei joncŃiuni intre cele
două tabele.
51. Interogări imbricate cu EXISTS în SQL2. Exemple.
Acest operator acceptă ca parametru o interogare imbricată si
returnează valoarea adevărat doar dacă interogarea nu produce un rezultat vid.
Să se găsească persoanele care au acelasi nume si prenume, dar coduri diferite.
select *
from Persoana P
where exists (select *
from Persoana P1
where P1.Nume = P.Nume and
P1.Prenume = P.Prenume and
P1.Cod <> P.Cod )
52. Interogări imbricate cu IN în SQL2. Exemple.
SQL pune la dispozitie doi operatori pentru a reprezenta apartenenta la o multime si
negatia sa: in si not in. Acesti operatori sunt echivalenti cu = any, respectiv <> all.
select Dept
from Angajati
where Salariu = any sau in (select max(Salariu)
from Angajati)
53. Interogări imbricate cu „=” în SQL2. Exemple.
Se consideră tabelele ANGAJATI si DEPARTAMENT prezentate in figura 5.1.
Să se găsească departamentele in care lucrează angajatii ce castigă cel mai mare salariu.
select Dept
from Angajati
where Salariu = any (select max(Salariu)
from Angajati)
sau
select Dept
from Angajati
where Salariu >= all (select Salariu
from Angajati)
Observatii.
Desi cele două interogări sunt echivalente, este indicată folosirea functiilor
agregat deoarece sunt mai concludente si se execută mai eficient.
In cazul primei interogări nu există nici o diferenŃa dacă in loc de operatorul any
se foloseste operatorul all (deoarece interogarea internă are ca rezultat o singură
linie).
54. Definirea utilizatorilor şi accesului la BD în SQL2. Exemple
In functie de modul de exploatare a bazei de date, utilizatorii se pot impărti in:
administratorul bazei de date (DBA) – persoana responsabilă de proiectarea, controlul si
administrarea bazei de date.
programatorii de aplicatii – definesc si creează programele ce accesează BD.
utilizatorii obisnuiti – cei care utilizează efectiv BD.
- utilizatori finali – utilizează tranzactii (spre exemplu programe ce realizează
activităŃi frecvente si predefinite
- utilizatori ocazionali – capabili să utilizeze limbaje interactive pentru a accesa
BD, formuland interogări (sau actualizări) de diferite tipuri.
Pentru a putea lucra cu baze de date trebuie sa avem instalat un server de baze de date.Trebuie sa realizam conexiunea sh sa
accesam in sfirsit datele.
55.Definirea permiselor asupra relaţiilor în SQL2. Exemple.
SGBD-urile permit datelor să fie considerate drept resurse comune ale organizatiei,
disponibile tuturor membrilor autorizati.
BD furnizează un model standardizat si precis al acelei părti a lumii reale care
prezintă interes pentru organizatie, model folosit in aplicaŃiile existente si care, cu
extensiile necesare, poate fi folosit in aplicatii viitoare.
SGBD-urile oferă posibilitatea unui control centralizat al datelor.
Partajarea bazelor de date permite reducerea redundantei si inconsistentei datelor.
Independenta datelor, caracteristica fundamentală a SGBD-urilor, favorizează
dezvoltarea de aplicatii mai flexibile si mai usor de modificat
55. Definirea permiselor asupra relaţiilor în SQL2. Exemple.
Idee nam ce o avut in vedere, pp ;)
56. Definirea sinonimilor în SQL2. Exemple.
Sinonimele pot fi utilizate in interogari sau procedure stocate in loc de numele originale ale obiectelor din 2,3 sau 4 parti.
De exemplu este nevoie de executat o interogare catre un obiect de stocat pe alt server.Atunci pt a accesa acest obiect e
necesar sa se scrie numele lui implicit
Nume_server.Nume_baza_de_date.Nume_schema.Nume_Obiect.Utilizind un sinonim creat in schema curenta,obiectul
poate fi accesat doar specificind sinonimul respectiv.
Un sinonim apartine unei scheme ca si alte obiecte ale schemei.Numele unui sinonim trebuie sa fie unic.Un sinonim poate fi
creat pt urmat obiecte din BD:tabelele definite de utilizator(inclusive tabelele temporare atit locale cit sh
globale)viziuni,procedure stocate,functii
Un sinonim nu poate fi obiect de baza pt alt sinonim
Un sinonim nu poate referi o functie de agregare definite de utilizator
Doar numele unui sinonim executa legatura intre acesta si obiectul de baza.Existenta si tipul de verificarea drepturilor de
acces catre obiectul de baza sunt aminate pina la rulare.prin urmare acelasi nume ca si obiectul de baza original.
De exemplu se considera un sinonim cumparaturi care face referire la dbo.vinzari in BD calculatoare.Daca tabelul
dbo.vinzari este sters si inlocuit cu o viziune numita dbo.vinzari,atunci cumparaturi acum se refera la viziunea dbo.vinzari.
Urmatorul exemplu creaza un sinonim notebook pt obiectul d ebaza,laptop_ri din vaza de calculatoare, apoi interogheaza
BD,utilizind sinonimul creat:
Use calculatoare;
Go
Create Synonym notebook for calculatoare.dbo.laptop_uri;
Go
Select *from notebook;
Go
57. Blocarea relaţiilor şi gestiunea tranzacţiilor în SQL2
Sistemul blocheaza în mod automat o linie în numele unei tranzactii pentru a împiedica alte tranzactii sa blocheze aceeasi
linie. Aceasta blocare împiedica manipularea simultana a unei Unii de catre doua tranzactii distincte, prevenindu-se astfel
interferenta distructiva a instructiunilor DDL si DML contradictorii. De exemplu, Oracfe împiedica distrugerea unui tabel
daca exista tranzactii nefinalizate în care este implicat tabelul respectiv. Aceste blocari ale datelor sunt anulate automat
atunci când tranzactia este finalizata. Blocarea implicita a datelor decurge automat pentru toate instructiunile SQL, astfel
încât nu este necesar ca utilizatorii bazei de date sa blocheze liniile în mod explicit, în mod prestabilit, Oracle blocheaza
resursele la nivelul cel mai scazut posibil.
Tranzactiile sunt grupuri logice de instructiuni SQL. Fiecare tranzactie se încheie fie cu o finalizare, fie cu o derulare înapoi.
Finalizarile duc la salvarea permanenta a modificarilor bazei de date efectuate de catre tranzactie. Derularile înapoi anuleaza
toate modificarile bazei de date efectuate de catre tranzactie.
Gestionarea tranzactiilor asigura concurenta si coerenta datelor pentru toti utilizatorii bazei de date. în lipsa gestiunii
tranzactiilor, calitatea si precizia datelor ar fi compromise, iar BD ar deveni aproape de neutilizat.
58. Definirea viziunilor în SQL2. Exemple
O viziune (VIEW) este un table virtual al carui continut este definit de o interogare.O V. poate fi create din unul sau mai
multe tabele ale BD.
Viziunile sunt folosite pentru a concentra,simplifica si personalize fiecare patrundere a utilizatorului in BD.Ele pot fi
folosite si ca mecanisme de securitate permitind utilizatorului sa acceseze date prin intermediului viziunilor,fara a acorda
utilizatorilor permisiuni sa acceseze tabelele de baza direzt.Viziunile pot fi deasemenea folosite atunci cind sunt copiate
date din SQL server si pentru partajarea datelor.2 tipuri de creare a viziunilor:
Folosind instructiunea Create view a limbajului transact_sql
Folosind VEW Designer al componentei SQ server management studio.
Principii de creare a viziunilor:
O V. poate fi create numai in baza de data in uz.Totusi tabelele si viziunile ce se refera la o viziune noua pot exista in alte
baze de date sau cjiar pe alte servere
Pot fi construite viziuni asupra altor viziuni sau procedure ce se refera la viziuni.Asupra V. nu pot fi construiti indecsi sau
definiti indecsi full-text.
O V., fie exemplu2 in BD calculatoare poate fi definite folosind limb SQL de exemplu:
Use calculatoare;
Go
If object_ID(‘exemplul2’,’V’) is not null drop view exemplul2;
Go
Create View exemplul2 As select Model from produse;
59.Definirea indecşilor în SQL2. Exemple.
Un index este un obiect al schemei bazei de date care facilitează accesarea rapidă şi univocă a datelor. În anumite condiţii
viteza de execuţie a cererilor. După ce indexul a fost creat, utilizatorului nu i se mai cere nici o operaţie directă asupra lui, el
va fi folosit şi întreţinut automat de către SGBD.
Sintaxa pentru crearea unui index este următoarea:
CREATE INDEX nume_index ON nume_tabela (nume_coloana1 [, nume coloana2, …])

Exemplu: crearea unui index după coloana număr factură în tabela facturi:
CREATE INDEX nr_factura_index ON facturi (nrfact)

Pentru tabele mici, folosirea indecşilor nu aduce îmbunătăţiri de performanţă. Se folosesc atunci când coloanele după care se
creează indecşii conţin o diversitate mare de informaţii sau multe valori NULL. Indecşii optimizează interogările atunci
când acestea returnează o cantitate mică de date. Indecşii cresc viteza de regăsire a datelor dar încetinesc actualizarea datelor
datorită faptului că sistemul trebuie să actualizeze şi fişierele index. În general este foarte util să se creeze indecşi după
câmpuri care se folosesc în operaţii de join.

Ştergerea unui index se face cu comanda DROP INDEX:


DROP INDEX nume_index [ON nume_tabela]
60.Definirea constrângerilor şi aserţiunilor în SQL2. Exemple
Pt formularea unor restrictii mai generale decit cele corespunzind tabelelor si coloanelor ,SQL da posibilitatea folosirii unei
intructiuni specifice cu sintaxa:
Create assertion <constraint_name> check(search_condition)
Spre deosebire de restrictiile de tabele si de coloane asertiunile nu sint associate cu nici o definitie de tabela
particulara.Asertiunile sunt folosite de obicei pt a formula restrictii asupra mai multor tabele.Remarcam ca pt a satisface
restrictia,conditia din clauza check trebuie sa furmizeze o valoare fie true,fie unknown.
Vederile si Aseriunile se folosesc intransportul schemelor conceputale din modelul EEA si din UML in modelul relational.
Exemplu de adaugare de constringere:
Alter Table task Constraint Foreign Key (newtaskind)references newtask(newtaskid);
O constringere se poate adauga si la crearea tabelului.
Constringeri de integritate:Cheile primare,valori implicite pt cimpuri
Daca integritatea bazei de date nu este asigurata,adica nu sint respectate constringerile de integritatea se spune ca BD este
incosistenta.

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