BD-CURS (1)
September 4, 2017 | Author: Ciulpan Andrei | Category: N/A
Short Description
baze de date...
Description
1. Modele de date(def., clasificare, criterii, exemple) Modelul de date= principalul mecanism care asigura partajarea datelor Data model= ansamblu format din: -
o colectie finita de concepte necesare pentru descrierea structurii de baza de date (tip date, relatiile, restrictiile) un set de operatii de baza (modul de efectuare al extragerii si actualizarii datelor din BD)
Clasificare: I.sistemele de fişiere =un predecessor al sistemelor de gestiune a bazelor de date, = colecţie de programme care realizau–fiecare–câte"un serviciu" pentru utilizatorii datelor -
fiecare program îşi definea şi îşi administra propriile date. numeroase dezavantaje (abordarea descentralizată în stocarea informaţiilor, gradul mare de redundanţă şi dependenta program-date) un salt semnificativ faţă de fişierele administrate manual: saltul de la abordarea informaţională la cea informatică
II.sistemele prerelaţionale (sau"istorice“, navigante, traditionale): ierarhic şi reţea, Reprezentarea datelor în modelul ierarhic şi în modelul reţea: mulţimi de inregistrări(i.e. colecţii de date de diferite tipuri: Integer, Boolean, Realetc.) Reprezentarea relaţiilor dintre ele: legaturi de tip pointer Inregistrările care formau baza de date erau organizate: -
în modelul ierarhic: ca o mulţimede arbori, înmodelul reţea: ca o mulţimede grafuri;
Exemple: •pentru modelul ierarhic: IMS (de la IBM); •pentru modelul reţea: IDS II (de la Honeywell), IMAGE (de la Hewlett Packard). III.sistemul relational -
cel mai important eveniment din istoria bazelor de date; iunie1970: revistaCommACM "A Relational Model of Data for Large Shared Databanks” Edgar Frank Codd(de la IBM Research Laboratory): concepte din algebra relaţională pentru a rezolva problemele legate de stocarea volumelor mari de date "celebrele" 12 reguli(condiţii) pe care trebuie să le îndeplinească un SGBD pentru a fi declarant relaţional;
Modelul relational continua să domine piaţa sistemelor de gestiune a bazelor de date: -
fundamentarea matematică riguroasă, simplitatea, volumul mare de date deja stocate după acest model
-
costul enorm al migrării spre un model complet diferit.
Câteva sute de sisteme relationale: -
DB2 (de la IBM), Ingres II (de la Computer Associates International Inc.), Oracle Xi (de la Oracle Corporation), Ms Access, FoxPro (de la Microsoft),
IV.sistemele postrelaţionale: orientat obiect şi hibrid (obiect-relaţional), •modelul relaţional: impropriu pentru manipularea unor volume f mari de date, cu formate variate: a) Modelul orientat obiect: •inglobarea semanticii obiectelor celor mai variate •utilizarea aproape exclusive a limbajelorPOO pentru dezvoltarea aplicaţiilor software, •includerea în aproape orice aplicaţie software a unei baze de date ca element fundamental al acesteia. Cele mai cunoscute prototipuri de baze de date OO: -
OPENOODB(de la Texas Instruments), IRIS(de la Hewlett Packard), iarca variantăcomercială: GEMSTONE/OPAL(de la GemStoneSystems), VERSANT(de la Versant Object Technology).
b) Modelele hibride: extind modelul relational oferind: -
un set de tipuride date mai bogat includ şi orientarea obiect
combinarea avantajelor celor două abordări: cea relaţională şi cea orientate obiect Cel mai cunoscut exemplu: Informix Universal Servercare combină tehnologiile din două produse preexistente: -
Informix(relational) Illustra. (OO).
V.sistemele semantice: multi-dimensional şi logic(deductiv).
2. BD, SGBD, etapele realizarii unei BD
Baza de date = un ansamblu structurat de date coerente astfel încât acestea pot fi prelucrate eficient de mai mulţi utilizatori într-un mod concurrent = o colecţie de date persistente, care sunt folosite de către sistemele de aplicaţii ale unei anumite „întreprinderi“ Exista două clase mari de date: -
din BD operationale => date operaţionale (necesare pt. aplicaţiile operaţionale (care reflectă funcţionalitatea zilnică a întreprinderii) din depozitul de date => informatii de sinteza (necesare pt. susţinerea procesului decisional
Datele din baza de date -
persistente: ele pot fi şterse din BD numai printr-o cerere explicită adresată SGBD integrate: BD consta din unificarea mai multor fisiere partajate: BD poate fi utilizata concurent de mai multi utilizatori suporta prelucrari frecvente, de complexitate redusa
Aplicaţiile de baze de date: -
in principal: operaţii de memorare şi regăsire efectuate asupra unor volume mari de date, in scopul obtinerii de informatii din BD secundar: operaţii de prelucrare a datelor: introducere, actualizare, stergere.
1. Proiectarea unei BD: - stabilirea structurii BD, adica a elementelor componente, a caracteristicilor acestora a restrictiilor pe care trebuie sa le respecte, a relatiilor dintre ele; 2. Construirea (popularea) unei BD: - memorarea (introducerea) datelor in BD (dupa proiectarea acesteia) 3. Interogarea unei BD - extragerea si vizualizarea datelor care indeplinesc o anumita conditie 4. Actualizarea unei BD - modificarea structurii/ informatiilor 5. Administrarea unei BD - efectuarea unor operatii asupra BD: - interogare - actualizare - securitatea datelor stocate asigurarea accesului la date al utilizatorului in functie de drepturile fiecaruia asigurarea coerentei BD = recuperarea informatiilor atunci cand au loc incidente !!! NU orice colectie de date este o BD Sistem de baze de date consta din: 1. BD propriu-zisă (în care se memorează datele) 2.SGBD (gestionarea şi prelucrarea complexă a datelor) = un produs software care asigură interacţiunea cu o BD, permiţând definirea, consultarea şi actualizarea datelor din BD 3. dicţionarul BD (metabaza de date: informaţii despre date, structura acestora, statistici, documentaţie= catalog de sistem = conţine „date despre date“,
= furnizează descrierea tuturor obiectelor unei BD (starea obiectelor, constrângeri de securitate şi de integritate, informaţii despre utilizatori) 4. mijloace hardware (comune sau specializate); 5. reglementări administrative destinate bunei funcţionări a sistemului 6. personalul implicat: -
-
administratori de date = admin care hotaraste care sunt datele care trebuie stocate, cu regulile lor de intretinere si tratare administrator de baze de date = asigura : crearea, implementare, monitorizare, asigura functionarea, responsabil cu implementarea deciziilor administratorului de date si are atributii de proiectare, coordonare si administrative proiectanţi (designeri) de baze de date= abordeaza BD la nivel logic si fizic (aleg modul de implementare a modelului conceptual) programatori de aplicaţii, utilizatori finali.
Fata de un inventar (tabel), o BD are urmatoarea proprietati: -
reprezinta un anumit aspect al lumii reale numit microunivers al BD colectie de date coerenta din punct de vedere logic si cu inteles intrinsec proiectata, construita, populata cu date, avand permanent un anumit scop
*
Date= elemente, fapte, fenomene, procese cunoscute care pot fi culese si inregistrate si care au inteles implicit Informatii= fiecare dintre elementele noi, in raport cu cunostintele prealabile cuprinse in semnificatia unui simbol sau a unui grup de simboluri Cunostinte= idee, notiune despre lucru, pregatire, invatatura, gandire
* *
! O BD ofera un grad de abstractizare a datelor, ascunzand datele de implementare.
3. Clasificarea BD
Tipuri de baze de date :
a) Baze de date prerelationale: •ierarhice •retea b) Baze de date relationale c) Baze de date orientate obiect d) Baze de date relationale orientate obiect e) Baze de date deductive f) Baze de date distribuite g) Calculatoare şi maşini baze de date h) Multibaze de date i) Baze de date cu suport decizional j) Data warehouse. Criterii de clasificare a sistemelor de bazelor de date: 1.modelul de date 2.numarul de utilizatori 3.numarul de calculatoare pe care sunt stocate BD şi SGBD 4.modul de functionare 5.implementarea sistemului de baze de date.
1. Clasificarea dupa modelul de date: • Baze de date prerelationale: - ierarhice - retea, • Baze de date relationale, • Baze de date orientate obiect, • Baze de date relationale orientate obiect. 2. Clasificarea dupa numarul de utilizatori: -
sisteme multiutilizator: * cele mai frecvente * permit accesul concurent al mai multor utilizatori la aceeasi BD; sisteme monoutilizator: * destul de rare * permit accesul unui singur utilizator. 3 .Clasificarea dupa numarul de statii pe care este stocata BD:
-
centralizate: * datele si SGBD sunt stocate pe o singura statie (calculator) distribuite: * datele si SGBD sunt distribuite pe mai multe calculatoare interconectate printro retea de comunicatie.
4.Clasificarea dupa modul de functionare: -
-
teleprocesarea * arhitectura tradiţională: 1 calculator cu 1 unitate CPU şi un numar de terminale, incapabile să funcţioneze singure; arhitectura fişier-server * procesarea este distribuită în reţea (de obicei LAN)
arhitectura cuprinde fişierele cerute de aplicaţii şi SGBD-ul aplicaţiile şi funcţiile SGBD sunt executate pe fiecare staţie de lucru, solicitând atunci când este nevoie fişiere de pe serverul de fişiere; arhitectura client-server * există un proces client, care necesită resurse şi un proces server, care oferă resurse. * *
-
5. Clasificarea dupa modul de implementare a sistemului de baze de date: -
se combina ultimele 3 criterii : numarul de utilizatori, modul de stocare a BD şi SGBD şi modul de functionare a sistemului de baze de date: I. sisteme client-server centralizate de tip monouser II. sisteme client-server centralizate de tip multiuser III. sisteme client-server distribuite de tip multiuser. IV. Sisteme client-server centralizate de tip monouser
4. SGBD (def., arhitectura, obiective) Sistem de gestiune a bazelor de date (SGBD – Data Base Management System) = un produs software care asigură interacţiunea cu o BD, permiţând definirea, consultarea şi actualizarea datelor din BD Structura unui SGBD: •complexa; dinamica; minimum 5 clase de module:
1. programe de gestiune a bazei de date (PGBD): realizează accesul fizic la date ca urmare a unei comenzi; 2. module pentru tratarea LDD permit traducerea unor informaţii despre date în obiecte ce pot fi apoi exploatate în manieră procedurală / neprocedurală; 3. module pentru tratarea LMD (interpretativ, compilativ, generare de programe) permit utilizatorilor inserarea, ştergerea, reactualizarea sau consultarea informaţiei dintr-o bază de date; 4. module utilitare asigură întreţinerea, prelucrarea, exploatarea corectă şi uşoară a bazei de date; 5. module de control - permit controlul programelor de aplicaţie, - asigurarea confidenţialităţii şi integrităţii datelor, - rezolvarea unor probleme de concurenţă, - recuperarea informaţiei în cazul unor avarii sau defecţiuni hardware sau software etc. Modul de lucru al SGBD la nivel conceptual: 1. 2. 3. 4.
utilizatorul lansează o cerere de acces SGBD acceptă cererea şi o analizează SGBD inspectează pe rând SGBD execută operaţiile necesare în baza de date stocată, i.e. modulele PGBD asigură accesul fizic la date:
Cele 4 niveluri de abstractizare şi de percepţie a datelor intr-o BD: -
extern logic conceptual intern – nivelul cel mai de jos a care datele exista efectiv
Nivelul extern -
reprezintă viziunea utilizatorului final asupra datelor permite asigurarea unui nivel de securitate a datelor: un utilizator va accesa doar datele descrise în schema sa externă
Nivelul logic -
reprezintă viziunea programatorului de aplicaţie asupra datelor;
Nivelul conceptual (schema conceptuală a datelor: articol, înregistrare, zonă) -
este nivelul central reprezintă viziunea programatorilor de sistem asupra datelor corespunde structurii semantice a datelor fără implementarea pe calculator
Nivelul intern (schema fizică a datelor: bit, octet, adresă) -
permite descrierea datelor unei BD sub forma în care sunt stocate în memoria calculatorului sunt definite fişierele care conţin aceste date, articolele din fişiere, căile de acces la aceste articole etc.
Observatie -
La nivel conceptual sau intern: schemele respective descriu in mod unic o bază de date
-
La nivel extern: schemele reprezintă o descriere a unei părţi a bazei de date ce corespunde viziunii unui program sau unui utilizator
=>Pentru o BD particulară există: 1 schemă internă, 1 schemă conceptuală, mai multe scheme externe. Avantajele oferite de arhitectura pe nivele a sistemelor de BD: 1. Independenţa datelor: - fizică: modificarea schemei fizice a datelor nu implica modificarea schemei conceptuale si a schemei logice şi nici a programelor de aplicaţie - logică: •modificarea schemei conceptuale a datelor nu implica modificarea schemei logice şi a programelor de aplicaţie =>se creaza fiecărui utilizator iluzia că este singurul beneficiar al unor date pe care, în realitate, le foloseşte în comun cu alţi utilizatori; 2. Independenţa faţă de strategiile de acces: permite programului să precizeze -
data pe care doreşte să o acceseze, dar nu modul cum accesează această dată SGBD-ul va stabili drumul optim de acces la date.
=> in sistemele de baze de date, funcţiile de declarare şi de prelucrare a datelor sunt realizate cu ajutorul unor limbaje diferite, numite limbaje pentru baze de date: -
LDD LMD LCT LCD;
Arhitectura funcţională de referinţă •este axată pe dicţionarul datelor şi cuprinde două părţi: 1. prima parte: permite descrierea datelor (compoziţia dicţionarului datelor) 2. a doua parte: permite prelucrarea datelor (interogarea şi reactualizarea bazei de date) -
in fiecare parte se regăsesc cele trei niveluri: intern, conceptual şi extern (nu sunt neapărat distincte);
SGBD si arhitectura ANSI/SPARC SGBD dispune de urmatoarele procesoare: dicţionarul de date: -
-
prelucreaza comenzile de definire a schemei şi comenzile de definire a vizualizărilor; analizorul: analizeaza sintactic si semantic comenzile de definire a schemei şi a vizualizărilor precum şi cererile de prelucrare, o cerere în format intern care face referinţă la o vizualizare este tradusă în una sau mai multe cereri care fac referinţă la obiecte ce există în baza de date (modificarea cererilor); translatorul: modifica cererile,
-
asigură controlul drepturilor de acces, asigura controlul integrităţii în cazul reactualizărilor; optimizorul: elaborează un plan de acces optim pentru a trata cererea, descompune cererea în operaţii de acces elementare şi alege o ordine de execuţie optimală, evaluează costul planului de acces înaintea execuţiei sale; executorul: executa planul de acces elaborat de optimizor, asigura controlul concurenţei.
5. STRUCTURA FIZICA A BD : A. Fişierele de date = fişiere fizice ale SO -
stochează datele tuturor structurilor logice ale bazei; alocarea unui fişier de date bazei Oracle: SO
-
şterge informaţiile nefolosite acordă autorizaţii pentru fisier; primul fişier de date creat: fisierul care stochează dicţionarul datelor.
B. Fişierele de reluare = înregistrează toate modificările care -
au loc asupra datelor bazei (indiferent dacă au fost permanentizate sau nu) şi nu au fost scrise încă în fişierele de date; sunt specificate în momentul creării sau modificării bazei sunt utilizate în manieră circulară (cele care au fost folosite în întregime, pot fi arhivate până când sistemul le va reutiliza) asigură protecţia BD în cazul defecţiunilor o BD Oracle conţine două sau mai multe fişiere de reluare.
C. Fişierele de control = fişiere binare de dimensiune redusă, necesare pentru pornirea şi funcţionarea bazei de date; -
orice BD Oracle deţine cel puţin un fişier de control; fiecare fişier de control este asociat unei singure BD conţine informaţii despre structura fizică a acesteia este creat odată cu respectiva BD (Oracle permite existenţa fişierelor de control multiplexate
La pornirea unei instanţe Oracle: •sistemul foloseşte fişierul de control pentru: -
a identifica baza şi a determina dacă aceasta este în stare validă pentru utilizare; sunt identificate fişierele de reluare necesare execuţiei operaţiilor bazei de date;
•Fişierele de control reflectă automat schimbările (creare, redenumire sau ştergere) care au loc la nivelul fişierelor de date sau de reluare; •Informaţiile din fişierele de control pot fi modificate doar de serverul Oracle;
6.Structura logică a BD Oracle: a)Blocuri de date = unitati logice prin care sistemul administrează spaţiul de stocare al fişierelor de date; Blocul = cea mai mică unitate I/O folosită de baza de date, = corespunzătoare unui bloc fizic de octeţi de pe disc, = dimensiunea sa: este definită în momentul creării BD, poate fi modificată ulterior, este un multiplu al dimensiunii blocurilor fizice de la nivelul SO;
Structura blocului de date Oracle: -
un antet (header), un spaţiu liber (free space), un spaţiu pentru date (data space).
Antetul conţine -
informaţii generale referitoare la bloc un catalog al tabelelor (table directory): un catalog al liniilor (row directory):
Spaţiul liber al blocului de date este alocat pentru inserarea de noi linii sau actualizarea liniilor care necesită spaţiu suplimentar. Alegerea blocului în care va fi inserată o linie nouă depinde de spaţiul liber al acestuia şi de valorile parametrilor PCTFREE şi PCTUSED. b) c) Extensia şi segmentul Extensia = unitate logica de alocare a spaţiului BD, = compusă dintr-o mulţime contiguă de blocuri de date (din acelaşi fişier de date); Segmentul = unitate logica formata din una sau mai multe extensii; Iniţial, segmentul are o singură extensie (initial extent). O extensie -
este alocată atunci când este creat sau extins un segment, este dezalocată (in general) când segmentul este suprimat sau trunchiat; Eliberarea unei extensii implică ştergerea datelor existente în blocurile de date alocate acesteia (ele vor fi reutilizate pentru extensiile nou create);
Segmentul = corespunde unui singur obiect fizic stocat = foloseşte blocuri de date care se găsesc în acelaşi spaţiu tabel; Tipuri de segmente din BD Oracle : -
segmente segmente segmente segmente
de date (data segment), index (index segment), temporare (temporary segment), de revenire (undo segment) etc.
Segmentele de date -
-
sunt definite atunci când este folosită comanda de creare a unui tabel sau a unei grupări un singur segment de date este folosit pentru stocarea tuturor datelor dintr-un tabel nepartiţionat care nu face parte din nicio grupare, dintr-o partiţie a unui tabel partiţionat sau dintr-o grupare de tabele Segmentele index sunt folosite pentru a stoca datele unui index fiecare index nepartiţionat este conţinut într-un singur segment. În cazul indecşilor partiţionaţi, fiecărei partiţii i se asociază câte un segment index
Segmentele temporare
-
sunt utilizate de sistem pentru analiza şi execuţia comenzilor SQL care necesită un spaţiu temporar de stocare sistemul alocă în mod automat segmente temporare atunci când este necesar şi le suprimă după execuţia comenzii SQL segmentele temporare sunt alocate în majoritatea cazurilor de sortare (atunci când operaţia respectivă nu se poate face în memorie sau dacă folosirea indecşilor nu presupune o soluţie mai eficientă).
Segmentele de revenire O BD conţine unul sau mai multe segmente de revenire, folosite pentru: -
anularea acţiunii tranzacţiilor asigurarea consistenţei la citire, efectuarea operaţiile de recuperare a bazei de date;
Segmentele de revenire nu pot fi accesate de către utilizatorii sau administratorii bazei de date Ele pot fi scrise şi citite doar de către sistem. d) Spatiul tabel = unitate logica de stocare formata din 1,2,… segmente -
grupeaza logic o mulţime de obiecte: fiecare obiect al BD are specificat un spaţiu tabel în care trebuie să fie creat datele care alcătuiesc obiectul sunt apoi stocate în fişierele de date alocate spaţiului tabel respectiv un fişier de date poate fi alocat unui singur spaţiu tabel; fiecarui utilizator i se poate aloca explicit un spaţiu tabel, în care vor fi stocate toate obiectele create de el alocarea se efectueaza automat folosirea mai multor spaţii tabel -> flexibilitate în utilizarea BD BD = {spaţii tabel}
Tipuri de spatiu tabel in BD Oracle: Spaţiul tabel SYSTEM, -
primul spaţiu tabel creat i se aloca automat (în timpul creării BD) primul fişier de date, conţine: dicţionarul datelor, inclusiv unităţile de program stocate, segmentul de revenire SYSTEM;
Spaţiile tabel non-SYSTEM: -
permit administrarea flexibilă a BD, separă segmentele de revenire, segmentele temporare, segmentele de date şi segmentele index, separă datele dinamice de cele statice, controlează spaţiul alocat pentru obiectele utilizatorilor.
Relaţia dintre baze de date, spaţii tabel şi fişiere de date presupune că: -
fiecare bază de date este împărţită din punct de vedere logic în unul sau mai multe spaţii tabel; unul sau mai multe fişiere de date sunt create explicit pentru fiecare spaţiu tabel, cu scopul de a stoca fizic datele din structurile sale logice; suma mărimilor tuturor fişierelor de date asociate unui spaţiu tabel reprezintă capacitatea totală de stocare a spaţiului tabel;
-
suma capacităţilor de stocare a spaţiilor tabel ale unei baze de date reprezintă capacitatea totală de stocare a bazei.
e) Schema = mulţimea obiectelor bazei de date, aflate în posesia unui utilizator (fiecare utilizator deţine o singură schemă). -
numele schemei este acelaşi cu numele utilizatorului nu există o corespondenţă biunivocă intre spaţiile tabel şi schemele de obiecte obiectele aceleiaşi scheme pot fi în spaţii tabel diferite un spaţiu tabel poate conţine obiecte din mai multe scheme pentru a accesa un obiect din propria schemă, utilizatorul poate folosi doar numele acestuia pentru referirea unui obiect din schema altui utilizator, trebuie specificat atât numele obiectului, cât şi schema din care face parte, prin folosirea notaţiei schema.obiect
7. Dictionarul datelor (catalogul de sistem) = conţine „date despre date“ (metabaza de date) i.e. informaţii despre baza de date: -
definiţiile tuturor obiectelor din schemele bazei cantitatea de spaţiu alocat pentru obiectele schemelor cantitatea de spaţiu utilizat de acestea la momentul curent
-
valorile implicite ale coloanelor constrângerile de integritate numele utilizatorilor Oracle privilegiile şi role-urile acordate fiecărui utilizator informaţii de auditare etc. este generat automat la crearea BD; este reactualizat de către serverul Oracle după fiecare comandă LDD sau LCD; conţinutul său reflectă imaginea bazei de date (structura fizică şi logică) la un moment dat;
Din punct de vedere structural este compus: -
tabele de bază ale dictionarului vizualizări publice asupra acestora; => “vizibil” şi pt sistem şi pt utilizatori.
Tabelele de bază -
stochează informaţiile asociate BD, sunt primele obiecte create;
Vizualizările -
decodifică informaţiile stocate în tabelele de bază şi le sintetizează pentru a fi disponibile utilizatorilor;
Concluzie -
-
este deţinut de către utilizatorul SYS şi se află în spaţiul tabel SYSTEM; sistemul poate accesa dicţionarul datelor pentru a obţine informaţii despre: utilizatori, obiecte, structurile de stocare; orice utilizator poate consulta dicţionarul datelor pentru a afla informaţii despre baza de date (documentare sau administrare) utilizatorii fără privilegii de administrare pot accesa doar vizualizările prefixate de USER_ sau ALL_ pentru a obţine lista vizualizărilor disponibile se poate interoga vizualizarea DICTIONARY care are sinonimul DICT se utilizeaza instrucţiunea SELECT din SQL.
8.. Arhitectura interna a sistemului Oracle (procese) •Arhitectura proceselor -
procese procese procese procese
user Oracle server background
•Arhitectura memoriei. Arhitectura proceselor Observatie Pentru a accesa o instanţă a unei BD Oracle, se execută: -
-
o aplicaţie sau un utilitar Oracle (prin intermediul cărora se lansează comenzi SQL asupra bazei – de ex. Recovery Manager, Oracle Entreprise Manager, Oracle Forms) un cod Oracle server (cu ajutorul căruia sunt interpretate şi procesate comenzile SQL);
Un proces = un mecanism al sistemului de exploatare care permite executarea unor operaţii de calcul sau operaţii I/O; -
Fiecărui proces i se alocă o zonă privată de memorie
Serverul Oracle : două tipuri generale de procese: -
procese user: execută aplicaţiile, procese Oracle (procese server şi background): asigură gestiunea informaţiilor dintr-o bază de date.
Un proces user este creat de sistemul Oracle pentru: -
a executa codul unei aplicaţii program sau ca urmare a lansării unui utilitar Oracle se execută pe maşina client începe şi se termină odată cu aplicaţia utilizatorului resp.; nu interacţionează în mod direct cu serverul Oracle ci generează mesaje printr-un program interfaţă (UPI = User Program Interface).
Un proces Oracle = execută instrucţiunile interne ale serverului Oracle •este invocat de alte procese pentru a îndeplini anumite operaţii în favoarea acestora; •două tipuri de procese Oracle: a) procese server (server process) - interacţionează cu procesele user , - comunică în mod direct cu serverul Oracle pentru a transmite cererile acestora printr-un program de interfata Oracle (OPI = Oracle Program Interface), - este lansat când utilizatorul iniţiază o sesiune. b) procese de fundal (background process) - reuneste funcţiile executate pentru fiecare proces user - execută operaţiile I/O asincrone, - monitorizează alte procese Oracle; - folosit pentru a îmbunătăţi performanţele unui sistem multiprocesor, în prezenţa mai multor utilizatori, - serverul Oracle creează câte un set de procese background pentru fiecare instanţă
9. Arhitectura interna (Arhitectura memoriei) *structural, memoria este compusă din: -
o zona de memorie partajata = zona globală sistem (SGA = System Global Area), o zona de memorie nepartajata = zona globală program (PGA = Program Global Area);
*toate structurile de memorie se găsesc în memoria centrală, *sunt create şi utilizate pentru a depozita: -
codul programelor executate, datele necesare în timpul execuţiei acestora, datele folosite în comun de mai multe procese Oracle, informaţiile referitoare la sesiunile curente etc.
SGA = System Global Area = zona globala sistem = = este un grup de structuri partajate de memorie care conţin date şi informaţii de control relative la BD şi la o instanţă; *fiecare instanţă are propria sa SGA care: -
este alocata atunci când este pornita instanţa este eliberata în momentul opririi instantei;
*datele conţinute în SGA sunt folosite în comun de către utilizatorii conectaţi la instanţă, *informaţiile conţinute în SGA sunt repartizate în diferite zone (database buffer cache, redo log buffer, shared pool etc.), care sunt alocate la pornirea instanţei; SGA fixă = o zona specială a SGA folosită pentru stocarea informaţiilor despre starea bazei de date şi a instanţei -
informaţiile sunt accesate de către procesele background, nu poate conţine date ale utilizatorilor.
PGA = Program Global Area = zona globala program = = zonă de memorie care conţine date şi informaţii de control relative la un singur proces Oracle -
poate fi folosită de un singur proces, este alocată la crearea procesului, este dezalocată la terminarea acestuia, este formată - in general – din: * zonă privată SQL (conţine date - de ex., informaţii de legătură şi structuri de memorie necesare rulării comenzilor) * zonă de memorie alocată sesiunii, * zone de lucru SQL.
10.SQL( caracteristici, implementare, securitate, oracle SQL) Info : istoric SQL (Structured Query Language) este limbajul standard de tratarea sistemelor relaţionale
-
Prima varianta: mijlocul anilor ’70, SEQUEL(pt proiectul System R), E.F. CODD, IBM, Preluatain 1979 de Larry Elliot, Relational Software (=Oracle)
Acum un standard internaţional(recunoscut ANSI): -
Teoretic: acceptat de toate produsele de baze de date Comercial: inca domina piata
motivul: -
baza teoretica riguroasa: modelul relational
SQL= limbaj relational(neprocedural) SQL=limbaj neprocedural, declarativ utilizatorii specifică CE trebuie obţinut, => compilatorul limbajului SQL generează automat o procedură care accesează BD şi execută comanda SQL=limbaj relational (nivelde abstractizare mai ridicat=>productivitate superioara) *bazat pe -
algebra relationala, calculul relational, in functie de caracteristicile necesare.
3 metode pt. implementarea limbajului SQL: 1. apelarea directă (Direct Invocation): constă în introducerea instrucţiunilor direct de la prompter (interactiv) 2. modularizarea (Modul Language): se folosesc proceduri apelate de programele aplicaţie 3. încapsularea (Embedded SQL): instrucţiunile SQL pot fi combinate cu instrucţiunile limbajului de programare al programului respectiv (Standardul SQL include suport pentru limbajele C, C++, COBOL, Java, Ada, M, Fortran, Pascal, PL/1) SQL şi securitatea/ integritatea datelor 2 abordări ale problemei securităţii datelor, acceptate de orice SGBD: a) b) -
controlul discreţionar accesul la un anumit obiect este la discreţia proprietarului acestuia, controlul obligatoriu fiecare obiect are un nivel de clasificare, fiecare utilizator are un nivel de permisiune.
Oracle SQL SQL= asigură comunicarea cu serverul Oracle =>reduce timpul necesar creării şi întreţinerii aplicaţiilor de baze de date, Oracle SQL =include extensiiale limbajuluiSQL standard ANSI/ISO Instrumentele şi aplicaţiile Oracle =furnizează instrucţiuni suplimentare.
Utilitarele permit -
executarea instrucţiunilor limbajului SQL standard asupra unei baze de date Oracle, executarea instrucţiunilor sau funcţiilor suplimentare disponibile
11. Clasificarea comenzilor SQL Instrucţiunile SQL se impart în mai multe categorii, în funcţie de tipul acţiunii pe care o realizează:
(a) (b) (c) (d) (e)
limbajul de definire a datelor(LDD); limbajul de prelucrare a datelor(LMD); limbajul de control al tranzacţiilor(LCT); limbajul de control al datelor(LCD); comenzi speciale: i. instrucţiunile pentru controlul sesiunii, ii. .instructiuni pentru controlul sistemului, iii. instrucţiunile SQL încapsulate. a) Limbajul de definire a datelor(LDD): - specific fiecărui SGBD - funcţiile principale sunt aceleaşi - conceptual, LDD realizează: * definirea entităţilor şi a atributelor acestora prin: nume, formă de memorare, lungime * precizarea relaţiilor dintre date şi strategiile de acces la ele * stabilirea criteriilor diferenţiate de confidenţialitate * stabilirea criteriilor de validare automată a datelor utilizate. =>LDD contine comenzi pt. definirea structurii obiectelor unei scheme: 1. crearea, modificarea şi ştergerea obiectelor schemei şi a altor structuri ale BD, inclusiv a bazei însăşi şi a utilizatorilor acesteia (CREATE, ALTER, DROP); 2. redenumirea obiectelor schemei (RENAME); 3. ştergerea tuturor datelor din obiectele schemei, fără a suprima structura acestor obiecte (TRUNCATE); 4. pornirea şi oprirea opţiunilor de audit (AUDIT, NOAUDIT); 5. analiza informaţiilor asupra unui tabel, index sau cluster (ANALYZE, ASSOCIATE STATISTICS, DISASSOCIATE STATISTICS); 6. adăugarea unui comentariu în dicţionarul datelor (COMMENT); 7. suprimarea definitivă a obiectelor (PURGE) şi revenirea la o stare anterioară a obiectelor (FLASHBACK). O comandăLDD -
salvează, implicit, tranzacţia curentă, marchează începutul unei noi tranzacţii;
După execuţia unei instrucţiuni LDD, sistemul Oracle declanşează automat instrucţiuni SQLcare modifică informaţia din dicţionarul datelor. b) Limbajul de prelucrarea datelor(LMD): - permite formalizarea operaţiilor care trebuie executate asupra unei baze de date sub forma unor comenzi - o comandă are următoarea structură: * operaţia (deschidere/închidere, calcul aritmetic/logic, editare, extragere, adăugare, ştergere, căutare, reactualizare etc.), * criterii de selecţie, * mod de acces (secvenţial, indexat etc.), * format de editare; - 2 tipuri de LMD: * procedurale (specifică modul în care se obţine rezultatul unei comenzi LMD) * neprocedurale(descriu doar datele ce vor fi obţinute şi nu modalitatea de obţinere a acestora). LMD contine comenzi pt. interogarea si prelucrarea datelor din obiectele unei scheme: 1. interogarea datelor din unul sau mai multe tabele(SELECT); 2. adăugarea de înregistrări în tabele sau vizualizări(INSERT);
3. actualizarea valorilor unor coloane din înregistrările existente în tabele sau vizualizări(UPDATE); 4. adăugarea sau actualizarea condiţionată a înregistrărilor în tabele sau vizualizări(MERGE); 5. ştergerea de înregistrări din tabele sau vizualizări(DELETE); 6. obţinerea planului de execuţiea instrucţiunilor SQL (EXPLAIN PLAN); 7. blocarea unui tabel sau a unei vizualizări, limitând temporar accesul celorlalţi utilizatori(LOCK TABLE). c) Limbajul de control al tranzactiilor(LCT): - contine comenzi pt. gestionarea modificărilor effectuate de către comenzile LMD şi grupează aceste comenzi în unităţi logice, numite tranzacţii: - salvarea modificărilor unei tranzacţii(COMMIT); - anularea modificărilor dintr-o tranzacţie fie în întregime, fie începând de la un punct intermediar(ROLLBACK); - definirea unui punct intermediar până la care tranzacţia poate fi anulată(SAVEPOINT); - stabilirea de proprietăţi ale tranzacţiei(SET TRANSACTION TO).
d) Limbajul de control al datelor(LCD): - contine comenzi pt. gestionarea accesului la date (asigurarea confidenţialităţii şi integrităţii datelor, salvarea informaţiei în cazul unor defecţiuni, obţinerea unor performanţe, rezolvarea unor probleme de concurenţă): - acordarea de privilegii şi role-uri(GRANT); - revocarea privilegiilor şi role-urilor acordate(REVOKE)
Comenzi speciale: 1. 2. 3. 4.
Instrucţiunile pentru controlul sesiunii Instrucţiunilepentru controlul sistemului Instrucţiunile SQL încapsulate. Instrucţiunile pentru controlul sesiunii
i.Instrucţiunile pentru controlul sesiunii - permit gestionarea proprietăţilor sesiunii unui utilizator; -
ALTER SESSION:permite modificarea sesiunii curente, astfel încât aceasta să îndeplinească funcţiuni specializate, SET ROLE: determină activarea sau dezactivarea role-urilor pentru sesiunea curentă;
ii.Instrucţiunile pentru controlul sistemului -
ALTER SYSTEM permite controlul sistemului, modificand, în mod dinamic, proprietăţile instanţei serverului Oracle(schimbarea anumitor setări: numărul minim de servere partajate,restricţionarea sau suprimarea unei sesiuni, golirea zonei shared pool din SGA, suspenderea tuturor operaţiilor I/O etc.)
iii.Instrucţiunile SQL încapsulate = sunt reprezentate de comenzi LDD, LMD şi LCTcare pot fi incorporate în programme scrise în limbaje procedurale, urmând să fie utilizate prin intermediul precompilatoarelor Oracle
permit: -
definirea, alocare şi eliberarea cursoarelor (DECLARE CURSOR, OPEN, CLOSE), specificarea unei baze de date şi conectarea la sistemul Oracle(DECLARE DATABASE, CONNECT), declararea de variabile(DECLARE STATEMENT), iniţializarea de descriptori(DESCRIBE), specificarea modului în care urmează să fie tratate erorile şi avertismentele(WHENEVER), analizarea şi executarea instrucţiunilor SQL(PREPARE, EXECUTE, EXECUTE IMMEDIATE), regăsirea informaţiilor din baza de date (FETCH).
12. Procesarea comenzilor si interogarilor SQL
Procesarea unei comenzi SQL presupune parcurgerea urmatoarelor etape: 1. 2. 3. 4. 5. 6.
crearea unui cursor analiza instrucţiunii legarea variabilelor [paralelizarea] executarea instrucţiunii, închiderea cursorului;
Procesarea unei interogari SQL: presupune parcurgerea catorva etape suplimentare: -
descrierea rezultatelor definirea modului de prezentare a rezultatelor recuperarea liniilor selectate
(1) Crearea unui cursor Pentru analizarea sintactică şi semantică explicită a instrucţiunilor SQL încapsulate într-o aplicaţie se utilizeaza niste resurse de memorie speciale, numite cursoare Definitii Cursor= o zonă de memorie în care se reţin: -
instrucţiunea SQL care urmeaza fianalizată(procesata) şi informaţii necesare procesării acesteia
= o structura de control care: -
asigura parcurgerea inregistrarilor dintr-o BD prelucrarea corepunzatoare a acestora: returnarea, adaugarea, stergerea inregistrarilor din BD
= un pointer catre o inregistrare dintr-un set de inregistrari; el poate accesa inregistrarile rand pe rand şi–la nevoie–se poate deplasa la o anumita inregistrare. Observatii -
Sistemul Oracle gestionează în mod automat cursoarele Un cursor este creat independent de instrucţiunea SQL. El este generat automat, în aşteptarea instrucţiunii SQL căreia să îi fie asociat Fiecare sesiune poate deschide mai multe cursoare, până la limita stabilită de parametrul de iniţializare OPEN_CURSORS Pentru a elibera memoria sistemului, se recomandă ca aplicaţiile să prevadă închiderea cursoarelor care nu mai sunt necesare.
Clasificarea cursoarelor α) in functie de directia de deplasare: scrollable şi non-scrollable, β) in functi ede relatia cu datele: modificabile şi nemodificabile; (α)
Execuţia unui cursor plasează rezultatul cererii associate într-o mulţime de linii(mulţime rezultat), care pot fi regăsite secvenţial sau nesecvenţial; Există interfeţe care permit regăsirea de linii recuperate anterior, i.e.: -
recuperarea liniei n din mulţimea rezultat sau recuperarea celei de a n-a linii de la poziţia curentă
Cursoarele scrollable= cele pentru care operaţiile LMD şi de regăsire nu trebuie să se desfăşoare secvenţial, într-un singur sens(de la început către sfârşit); = pot accesa orice inregistrare din multimea rezultat astfel: i.se declara cursorul, ii.se specifica pozitia cursorului; ea poate fi: -
absoluta (specificata in raport cu prima inregistrare din multimea rezultat), relativa (specificata in raport cu pozitia curenta a cursorului)
Sintaxa -
DECLARE nume_cursorsen sitivity SCROLL CURSOR FOR SELECT ... FROM ... FETCH [ NEXT | PRIOR | FIRST | LAST ] FROM nume_cursor FETCH ABSOLUTE n FROM nume_cursor FETCH RELATIVE n FROM nume_cursor
Observatie -
este posibil ca un cursor scrollable sa acceseze acceasi inregistrare din multimearezultat de mai multe ori=> modificarile generate de alte tranzactii(insert, update, delete) pot conduce la modificarea multimii-rezultat.
Cursoarele nonscrollable (forward-only) = -
pot accesa fiecare inregistrare cel mult o data, apoi cursoul se deplaseaza automat la urmatoarea inregistrare; daca inregsitrarea returnata a fost ultima, o noua comanda FETCH va lasa cursorul tot pe aceasta şi va da un mesaj de atentionare.
β) Un cursor poate fi senzitiv/ nesenzitiv/ asenzitiv la aceste modificari ale datelor(le sesizeaza/ nu le sesizeaza/ le sesizeaza in conformitate cu specificatiile SGBD respectiv). (2) Analiza comenzii *În timpul analizei, instrucţiunea este transferată de la procesul utilizator la sistemul Oracle. *Se efectueaza mai multe operatii: -
interpretarea instrucţiunii, verificarea validităţii instructiunii, verificarea definiţiilor de tabele şi coloane în dicţionarul datelor, verificarea privilegiilor de acces la obiectele referite în instrucţiune,
-
determinarea planului de execuţie optimal instrucţiunii, încărcarea instrucţiunii într-o zonă SQL partajată, direcţionarea instrucţiunilor distribuite către nodurile distante care conţin informaţia referită., identificarea acelor erori care pot fi depistate înaintea execuţiei instrucţiunii.
(3)Legarea variabilelor (variables binding) = procesul prin care se obtin valorile variabilelor la care face referinţă instrucţiunea şi care trebuie cunoscute în vederea execuţiei acesteia (4) [Paralelizarea] = o etapă opţională, care se poate efectua înaintea execuţiei effective a unei instrucţiuni -
-
Sistemul Oracle poate paraleliza comenzile LMD şi unele operaţii LDD (crearea indecşilor, crearea unui tabel cu ajutorul unei subcereri, operaţii asupra partiţiilor etc.) Paralelizarea determină execuţia instrucţiunii SQL de către mai multe procese server, ceea ce reduce timpul necesar operaţiei
(5) Executia comenzii *Execuţia unei instrucţiuni UPDATE sau DELETE determină blocarea liniilor afectate de aceasta. -
Scopul unei astfel de operaţii este asigurarea integrităţii datelor Liniile sunt deblocate la permanentizarea sau anularea tranzacţiei corespunzătoare comenzii respective
*Execuţia unei instrucţiuni SELECT şi INSERT nu determină blocări (6) Inchiderea cursorului Procesarea oricărei instrucţiuni SQL se finalizează prin închiderea cursorului asociat, adică eliberarea zonei de memorie utilizate în scopul prelucrării. Procesarea unei interogari SQL *parcurgerea etapelor necesare executiei unei comenzi, *parcurgerea unor etape suplimentare: •descrierea rezultatelor interogarii şi definirea modului de prezentare a rezultatelor: -
se indica tipul, dimensiunea numele datelor, dacă este necesar, sistemul efectuează conversii implicite ale valorilor returnate;
•recuperarea liniilor unei interogari: -
presupune selectarea şi, eventual, ordonarea acestora.
13. Obiectele bazei de date(def., reguli de denumire) O BD Oracle = { scheme } O schemă = {obiecte} Obiect = o structura logica de date; Fiecare utilizator a unei BD poate avea o singura schema; Oracle recunoaste 2 tipuri de obiecte: a)obiecte care sunt asociate unei scheme particulare; b)obiecte care nu aparţin nici unei scheme. (a) In cadrul unei scheme se pot defini obiecte de tip: -
tabel (table), vizualizare (view), vizualizare materializată (materialized view), secvenţă (sequence), index (index), sinonim (synonym), grupare (cluster), procedură (procedure) funcţie (function) stocată, declanşator (trigger), pachet stocat (package), legătură a bazei de date (database link), dimensiune (dimension) etc.
(b) Obiecte care nu aparţin nici unei scheme: -
sunt create şi prelucrate cu instructiuni SQL, sunt stocate în BD dar NU intr-o schema, sunt de tip: * utilizator (user), * context (context), * director (directory), * fişier de parametri (parameter file – PFILE), * profil (profile), * rol (role), * segment rollback (rollback segment) şi * spaţiu tabel (tablespace).
Reguli de denumire a obiectelor BD Intr-o schema trebuie denumite: •toate obiectele, •anumite parti componente ale anumitor obiecte: -
coloanele tabelelor sau vizualizărilor, partiţiile şi subpartiţiile tabelelor şi indecşilor, constrângerile de integritate asupra tabelelor;
(R1) -
Numele obiectelor sunt unice la nivelul unei BD Într-o instrucţiune SQL, numele unui obiect poate fi reprezentat printr-un identificator încadrat sau între ghilimele Identificatorii nu pot fi cuvinte rezervate ale serverului Oracle;
(R2) -
Identificatorii trebuie să înceapă cu o literă şi să aibă maximum 30 de caractere;
-
Identificatorii pot conţine caractere alfanumerice şi simbolurile „_”, „$”, „#” Ei trebuie să înceapă cu un caracter alfabetic
(R3)
(R4) -
Fiecare schemă din BD are propriul său spaţiu de nume (namespace) pentru obiectele pe care le conţine Două obiecte din acelaşi spaţiu de nume al serverului Oracle nu pot avea acelaşi identificator un tabel şi o vizualizare din cadrul aceleiaşi scheme NU pot avea acelaşi nume, însă un tabel poate avea acelaşi nume cu un index.
!! Observatie • Identificatorii obiectelor sunt case-sensitive doar în cazul în care sunt încadraţi între ghilimele altfel, ei sunt convertiţi automat în majuscule.
14. Tipuri de date si literali SQL(def., clasificare, exemple, modele de format )
Tipurile de date predefinite din sistemul Oracle: a) character (CHAR, VARCHAR2, NVARCHAR2, NCHAR, iar pentru siruri LONG, LONG RAW SI RAW) b) numeric (NUMBER, BINARY_FLOAT, BINARY_DOUBLE) c) dată calendaristică şi timp (DATE, TIMESTAMP, INTERVAL) d) LOB (large objects) (CLOB, NCLOB,BLOB, BFILE ) e) adrese unice ale liniilor din tabele (ROWID, UROWID ) Tipuri de date ANSI, DB2 şi SQL/DS acceptate în sistemul Oracle Sistemul Oracle recunoaşte numele tipurilor de date specifice ANSI sau IBM, le converteste conform unor conventii prestabilite si le utilizeaza pentru crearea tabelelor şi clusterelor. Tipurile de date definite de utilizator Utilizatorul poate defini noi tipuri de date pe baza: -
oricaruia dintre tipurile de date predefinite altor tipuri de date definite de utilizator se obtin urmatoarele tipuri de date obiect care modeleaza structura şi comportamentul datelor in aplicatii:
A.tipurile obiect, B.tipurile referinţă (REF), C.vectorii (varying array sau varray), D.tablourile imbricate (nested table). (A)Tipurile de date obiect -
bstractizări ale entităţilor din lumea reală, necesare în programele de aplicaţie, un tip obiect = o schemă obiect cu trei tipuri de componente: nume, atribute, metode
Numele = identifică în mod unic tipul obiect în cadrul unei scheme Atributele = modelează structura entităţii din lumea reală. = au ca tip de date un tip predefinit sau un alt tip Metodele = implementează operaţiile pe care aplicaţia le poate efectua asupra entităţii din lumea reală = sunt implementate prin intermediul funcţiilor şi procedurilor scrise în PL/SQL şi stocate în baza de date, sau într-un limbaj general (C, Java etc.) şi stocate extern. (B) Tipurile de date referinta •conţin adrese logice ale liniilor obiect Utilitate: •tipul de date REF şi colecţiile de obiecte REF modelează relaţiile dintre entităţi (m-1 sau 1-m) => dispare necesitatea definirii cheilor externe relaţionale.
!!! Tipul de date REF =/=valoarea NULL: Daca o valoare REF indică un obiect inexistent => ea este considerată suspendată (dangling); (C) Tipul de date vector (varying array sau varray) = modeleaza o mulţime ordonată de elemente având acelaşi tip; •fiecare element are un index, care reprezintă numărul corespunzător poziţiei elementului în vector; •nr elemente dintr-un vector = dimensiunea vectorului; Declararea unui vector = definirea unui tip de date care poate fi utilizat ulterior ca tip de date pt: o coloana dintr-un tabel relaţional, un atribut dintr-un tip obiect, o variabila, un parametru / o valoare returnata de o funcţie în PL/SQL => nu i se aloca spatiu, trebuie precizata dimensiunea sa maxima (pt ca in Oracle, vectorii au dimensiune variabilă). (D) Tipul de date tablou imbricat (nested table) = modelează o mulţime neordonată de elemente al caror tip de date poate fi: un tip predefinit, un tip definit de utilizator; = poate fi văzut ca: •un tabel relaţional cu o singură coloană sau •un tabel relaţional multicoloană (cu câte o coloană corespunzătoare fiecărui atribut al tipului obiect, dacă tabloul imbricat este un tip obiect). Interfeţe pentru definirea de tipuri de date: = interfeţe bazate pe SQL care permit definirea unor noi tipuri de date, atunci când cele predefinite sau cele standard ANSI nu sunt suficiente •comportamentul acestor tipuri poate fi implementat în C/C++, Java sau PL/SQL Literali Literali : char, number, date (calendar), marci de timp, etc. Def.:Literal= o valoare constanta pe toata durata de viata a BD. a) b) c) d) -
De tip CHAR se scrie intre ‘ ‘ lungime maxima 4000 octeti daca trebuie sa utilizam apostrof in nume: il punem de doua ori (ex.: ‘O’’Neil’) Numerici in notatie clasica: precedati de + sau – maxim 38 caractere in notatia stiintifica: cu mantisa si exponent se pot scrie si cu virgule mobila :urmati de “l”sau “ F“ si “d” sau “D” Date calendaristice format din campuri formatul implicit specificat prin parametru de initializare NLS_DATE_FORMAT si in notatie ANSI cuvant cheie DATE (yyyy-mm-dd) Marci de timp formate din campuri, dar cu precizie mai mare an, luna, zi, ora, minut, secunda, fractiune de secunda
-
ANSI cuvant cheie TIME STAMP , formatul ‘YYYY-MM-DD HH:MM:SS.FFF’
e) Intervale de timp -
format din campuri/ sabloane daca prezicia este mai mare ca 2, trebuie specificat ani luni /(sau) zile, ore, min, sec 2 tipuri : year to month si day to second utilizate impreuna cu functiile analitice cuvand cheie INTERVAL ex.: INERVAL ’20-6’ YEAR TO MONTH
MODELE DE FORMAT Def.: =un literal de tip char care descrie formatul valorilor de tip “DATE” sau “NUMBER” stocate intr un sir de caractere; -
sunt case-sensitive indica sistemului cum sa interpreteze stringul, la conversia lui intr-o data sau numar; nu schimba reprezentarea interna a valorii in BD; un model de format ca argument al functiilor TO_CHAR si TO_DATE specifica formatul folosit de sistemul ORACLE pentru a returna sau a stoca o valoare in/din BD
15. Pseudocoloane, operatori si functii SQL Def.: Pseudocoloana= se comporta ca o coloana, dar nu este stocata efectiv in tabel -
se pot face interogari asupra lor, dar valorile sale sunt gestionate doar de catre sistemul Oracle simularea functiilor fara argumente, dar returneaza valori diferite pentru linii diferite din multimea rezultat nu se pot insera, actualiza sau sterge valorile de catre utilizator
ROWID= returneaza adresa unei linii ( metoda cea mai rapida ) ROWNUM= returneaza numarul de ordine al liniilor rezultate in urma executiei unei cereri; poate fi utilizata pentru a limita numarul de linii returnate OPERATORI SQL Def.:= prelucreaza date individuale ( =operanzi= argumente) sunt reprezentati prin: caractere speciale, cuvinte cheie CLASIFICARE- (1) unari - actioneaza asupra unui singur operand (2) binari – 2 operanzi -
=, , , BETWEEN IN (verifica daca o valoare coincide cu un element dintr o lista de valori) LIKE ( daca coincide cu un sablon definit de utilizator ) IS NULL EXISTS (interogheaza existenta multimii rezultatelor a unei subinterogari )
Def.: expresie SQL= combinatie intre una sau mai multe valori, operatori sau functii SQL Pot aparea in : -
lista SELECT a unei instructiuni SELECT clauze WHERE si HAVING clauze CONNECT BY, START WITH, ORDER BY clauza VALUES a lui INSERT clauza SET a lui UPDATE
Def.: conditie SQL= combina una sau mai multe expresii sau operatori logici, returnand TRUE, FALSE, NULL Pot aparea in: -
clauzele WHERE, START WITH, CONNECT BY, HAVING ale instrucţiunii SELECT clauza WHERE a instrucţiunilor UPDATE şi DELETE.
Precedenta operatorilor (ordine descrescatoare a prioritatii): unari aritmetici (+,-), inmultire, impartire, operatori binari (+, -) , concatenare (||), conditiile SQL Precedenta pe multimi: UNION, INTERSECT, MINUS- actioneaza asupra seturilor de linii returnate de cereri Precedenta in conditii: operatori SQL, operatorii de comparatie (=,
View more...
Comments