Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


BAZE DE DATE

baze de date



+ Font mai mare | - Font mai mic



BAZE DE DATE

GENERALITATI

Pe masura ce desvoltarea societatii omenesti, in toate domeniile, produce cantitati de informatii din ce in ce mai mari si totodata din ce in ce mai complexe - deseori legate intre ele in cele mai diverse moduri - utilizarea eficienta a acestora devine din ce in ce mai greoaie daca nu chiar imposibila uneori, mai ales atunci cand este vorba de decizii practic instantanee



Drumul informatiei, de la aparitie si pana la posibila ei utilizare la luarea unei decizii, traverseaza o serie de etape indispensabile, respectiv colectarea, organizarea, analiza (procesari)

Singurele tehnologii - din prezent - care permit aceste prelucrari si deci fac posibila utilizarea acestui adevarar ocean de informatii sunt cele ale bazelor de date.

DATELE

Conform cu "Webster Dictionary on-line", termenul de "date" provine din latinescul "datum" si are ca sensuri:

informatie faptica - rezultata in urma unor masuratori sau statistici - folosita ca baza pentru rationamente, calcule sau decizii;

informatie, perceputa cu un organ de simt sau preluata de un dispozitiv spefializat. Aceasta trebuie procesata pentru a deveni utila, intrucat cuprinde, pe langa informatiile utile si informatii inutile cat si informatii redundante.

informatie in forma numerica care poate fi transmisa digital sau procesata.

SGBD - SISTEME DE GESTIUNE A BAZELOR DE DATE. (DBMS -DATA BASE MANAGEMENT SYSTEM)

Prin baze de date se intelege o colectie de date organizate sub forma de fisiere, intr-o asemenea maniera, incat sa permita cautarea rapida si regasirea unor informatii cu ajutorul calculatorului electronic.

Prin SGBD-uri se intelege acea categorie de programe de calculator specializata in gestionarea, administrarea si manipularea acestor mari volume de date organizate.

APLICATII.

Printr-o aplicatie se intelege un produs informatic final, avand un scop sau o destinatie bine determinata in cadrul unui sistem informatic apartinand unei sistem oarecare, implementata cu un anumit tip de SGBD. Putem considera ca, tinand cont de conceptele fundamentale care se afla la baza construirii acestora, ca exista trei mari categorii de astfel de sisteme:

RDBMS sau Relational Database Management System.

Acest tip de SGBD are la baza un model matematic elegant si un limbaj de interoare structurat extrem de puternic, fapt ce a

permis producatorilor sa ofere "motoare SQL" ce permit aplicatiilor care le utilizeaza sa ofere acces simultan, la aceleasi baze de date, mai multor mii de utilizatori. Azi se dispune inca de o baza instalata relationala imensa.

OBDMS sau Object - Oriented DBMS

Au aparut ca urmare a proliferarii limbajelor de programare orientate obiect. Au o mai mare flexibilitate decat relationalele in prelucrarea datelor complexe, se preteaza pentru aplicatii distribuite -utilizand limbajul JAVA, cat si o adaptabilitate usoara la Web, deci la accesul si interogarea bazelor de date de pe Internet. ODBMS-urile sunt insa lipsite de un suport de tip SQL, nu pot satisface simultan mii de cereri de acces si sunt greu compatibile cu RDBMS-urile.

3) ORDBMS sau OBJECT-RELATIONAL DBMS

Fara sa fie o tehnologie de ultima ora, aceasta a treia categorie - de tip hibrid - propune un SGBD care asigura robustetea si puterea unui RDBMS combinat cu gestionarea obiectelor, fara a se limita la tipuri de date numerice si siruri de caractere.

OBSERVATIE:

Atunci cand am apelat dictionarul "Webster", - am lansat deci o interogare - am accesat de fapt o baza de date care se afla pe un server din SUA; aceasta baza a fost accesata cu un browser Web, prin reteaua Internet, cu ajutorul unui program specializat pentru gestionarea acestei baze de date. Acelasi lucru il facem atunci cand folosim cardul la un bancomat aflat intr-un alt oras decat cel in care se afla sediul bancii, cand cautam cu calculatorul o carte intr-o biblioteca aflata in orasul nostru la in orice alt oras de pe glob, etc.

LIMBAJUL SQL

Termenul SQL este o abreviere provenind de la Structured Query Language - limbaj structurat de interogare. Acesta este conceput special pentru comunicarea cu bazele de date. In mod deliberat el este compus, spre deosebire de alte limbaje ca Visual Basic sau Java, din foarte putine cuvinte, termeni simpli, in limba engleza.

Aproape toate SGBD-urile si bazele de date mai importante accepta SQL. Fiind un limbaj foarte puternic, permite operatii complexe si sofisticate cu acestea.

Limbajul SQL standard este guvernat de Comitetul pentru standardizare ANSI si de aceea poarta numele de ANSI SQL Implementarile individuale au in consecinta propriile lor nume: PL-SQL, Transact-SQL, etc.

CAUTAREA DATELOR.

Termenii din limba engleza ai limbajului poarta numele de cuvinte cheie, si el nu poate fi folosit pentru a defini un tabel sau o coloana. Fiecare instructiune SQL este formata din clauze, unele cerute iar altele optionale. De regula clauza consta dintr-un cuvant cheie si date furnizate. Un exemplu imediat va fi instructiunea SELECT urmata de clauza FROM

INSTRUCTIUNEA SELECT

Pentru utilizarea ei trebuie sa precizam cel putin doua elemente importante :

ce anume date dorim sa regasim din tabel;

de unde dorim sa la regasim.

REGASIREA COLOANELOR INDIVIDUALE.

Vom tasta, pentru a regasi numele unei coloane dintr-un anumit tabel:

SELECT numele coloanei

FROM    nume tabelului ;

Ca rezultat al acestei interogari se va obtine o lista cu toate liniile din coloana respectiva, intr-o ordine oarecare.

Recomandari.

Instructiuni de terminare.

Instructiunile SQL multiple trebuie separate prin

punct si virgula. Desi nu toate SGBD-urile o cer, este recomandabil ca sa utilizam acest caracter dupa fiecare din instructiunile unice, pentru a fi protejati de situatia in care acesta o cere.

Tipul de litere.

SQL nu tine cont de tipul caracterelor , in sensul ca SELECT este acelasi lucru cu select sau cu "Select".

Se mai recomanda ca pentru cuvintele cheie sa se utilizeze litere mari, iar pentru numele de tabele, coloane, etc., litere mici.

Spatiile albe dintr-o instructiune SQL sunt ignorate la executare acesteia. Instructiunile SQL se pot scrie pe un singur rand sau - se recomanda acest lucru - pe mai multe randuri, aceasta ultima maniera usurand citirea si deci depanarea instructiunilor.

REGASIREA MAI MULTOR COLOANE.

Pentru a regasi mai multe coloane, instructiunea SELECT este urmata de numele coloanelor pe care vrem sa le regasim, separate prin virgule. Dupa numele ultimei coloane solicitate prin clauza SELECT, nu se pune virgula.

Vom tasta, pentru a selecta, de exemplu, trei coloane:

SELECT nume coloana1, nume coloana2, nume coloana3

FROM     nume tabel ;

Ca rezultat, vom obtine o lista cu toate liniile din cele trei coloane cerute. La fel ca in exemplul precedent, vom obtine date brute, neformatate.

REGASIREA TUTUROR COLOANELOR.

Pe langa afisarea unor anume coloane selectate ca mai sus, SQL-ul permite cererea tuturor coloanelor, fara a le specifica pe fiecare in parte, utilizand caracterul de inlocuire "asterisc", respectiv "*" Vom tasta, in acest caz:

SELECT *

FROM nume tabel

Acest tip de instructiune, este util si atunci cand de exemplu, nu cunoastem numele unora din coloanele tabelului, utilizarea asteriscului afisandu-le pe toate.

SORTAREA DATELOR. CLAUZA ORDER BY

Datele regasite sunt afisate in ordinea in care apar in tabele, daca acestea nu sunt sortate, sau in ordinea in

care au fost introduse initial in tabele. Deasemenea, daca datele au fost ulterior actualizate, modificate sau sterse, ordinea va fi influentata de aceste manevre.

Teoria datelor de date relationale precizeaza ca insiruirea datelor regasite nu are nici o semnificatie inafara situatiei in care acest fapt a fost specificat in mod explicit.

Pentru a sorta in mod explicit datele regasite cu instructiunea SELECT se foloseste clauza ORDER BY. Clauza sorteaza rezultatul dupa numele uneia sau mai multor coloane. Vom tasta:

SELECT nume coloana

FROM    nume tabel

ORDER BY nume coloana

Pozitia clauzei ORDER BY trebuie sa fie ultima dintre clauzele instructiunii SELECT. In caz contrar apar erori.

O alta particularitate a clauzei ORDER BY este faptul ca desi in majoritatea cazurilor coloanele folosit in aceasta sunt cele selectate pentru afisare, se pot sorta date si dupa o coloana care nu este selectata si deci regasita.

SORTAREA DUPA MAI MULTE COLOANE.

Deseori suntem nevoiti sa sortam datele dupa mai multe coloane. De exemplu listarea ordonata a personalului unui santier arheologic se face dupa nume si apoi, in cazul acelorasi nume, dupa prenume. In clauza ORDER BY, numele coloanelor specificate sunt despartite de virgule. Codul de mai jos regaseste trei coloane (1,2 si 3) si sorteaza rezultatele dupa doua dintre ele (2 si3 de exemplu):

SELECT nume coloana1, nume coloana2, nume coloana3

FROM nume tabel

ORDER BY nume coloana2, nume coloana3 ;

SORTAREA DUPA POZITIA COLOANEI

Clauza ORDER BY accepta si ordonarea specificata prin ordinea relativa a coloanelor. De exemplu, codul de mai jos:

SELECT nume coloana1, nume coloana2, nume coloana3

FROM nume tabel

ORDER BY 2, 3 ;

va duce la acelasi rezultat ca si exemplul precedent, doar ca aici am inlocuit numele coloanelor cu ordinea lor relativa din tabel ( de exemplu "nume coloana2" a fost inlocuit cu cifra "2" fiind vorba de a doua coloana din tabel ). Avantajul este ca se economiseste timpul necesar scrierii numelui coloanei de interes, dar nu putem sorta dupa coloane care nu sunt in lista SELECT.

SPECIFICAREA ORDINII DE SORTARE

Ordinea de sortare este prestabilita in sens ascendent, (de la A la Z), dar clauza ORDER BY poate fi utilizata si pentru sortare in sens descendent (de la Z la A). Pentru a realiza acest tip de sortare s4 utilizeaza cuvantul cheie DESC. De exemplu codul :

SELECT nume coloana2, nume coloana4

FROM nume tabel

ORDER BY nume coloana4 DESC;

va ordona coloanele 2 si 4 dupa coloana4, in mod descrescator. Daca dorim sa sortam dupa mai multe coloane procedam dupa cum urmeaza:

SELECT nume coloana1, nume coloana2, nume coloana3

FROM nume tabel

ORDER BY nume coloana2 DESC, nume coloan3 ;

Cuvantul cheie DESC se aplica numai numelui de coloana care il precede direct. In acest exemplu numai coloana 2 va fi sortata descendent, in timp ce coloana 3, va fi sortata in continuare ascendent, deci in ordinea prestabilita. Deci daca vom dori sa sortam descendent mai multe coloane, fiecare din acestea va avea propriul ei cuvant cheie DESC. Opusul lui DESC (care provine de la DESCENDING) este ASC (care provine de la ASCENDING), care nu se utilizeaza in practica fiind implicit.

SORTAREA DATELOR DE TIP TEXT.

Majoritatea SGBD-urilor trateaza la sortare alfabetica pe "A" la fel ca pe "a", si pe "a" inainte de "B". O alta ordine de sortare nu se poate obtine    printr-o alta clauza ORDER BY decat in cazuri deosebite - de exemplu caractere din limbi straine - si numai cu interventia Administratorului Bazei de Date.

FILTRAREA DATELOR. CLAUZA WHERE

Dat find volumele mari de date existente in tabele unei baze de date, nu ne sunt necesare intotdeauna toate liniile dintr-un tabel, ci de regula numai acele

date care indeplinesc anumite cerinte specifice momentului respectiv. Regasirea numai a unui subset de date, implica specificarea anumitor criterii de cautare, numite si conditii de filtrare. Aceste criterii sunt specificate prin intermediul clauzei WHERE, pozitionata imediat dupa numele tabelului, respectiv dupa clauza FROM.

SELECT nume coloana3, nume coloana5

FROM nume tabel

WHERE nume coloana5 = valoare solicitata ;

Secventa regaseste coloanele 3 si 5, dar nu listeaza toate liniile din acestea, ci doar pe cele in care gaseste "valoarea solicitata".

Atunci cand folosim atat clauza ORDER BY cat si clauza WHERE, trebuie sa ne asiguram ca ORDER BY este pozitionata dupa clauza WHERE. In caz contrar vom obtine date eronate.

OPERATORII CLAUZEI WHERE.

Clauza WHERE accepta si alti operatori conditionali care se pot utiliza inafara operatorului "=" folosit in ultimul exemplu. Acestia sunt:

Operator Descriere

= Egalitate

<> Non-egalitate

! = Non-egalitate

< Mai mic decat

<= Mai mic sau egal cu

!< Nu mai mic decat

> Mai mare decat

> = Mai mare sau egal cu

!> Nu mai mare decat

BETWEEN Intre doua valori specificate

NULL Este o valoare NULL

Operatorul BETWEEN deoarece cauta intr-un domeniu de valori, are o sintaxa diferita de a celorlalti operatori deoarece el necesita specificarea inceputului si sfarsitului domeniului dorit. El va cauta toate datele din domeniul specificat, si le va afisa inclusiv cu valorile de inceput si de sfarsit. Aceste doua valori sunt separate prin cuvantul cheie AND.

SELECT nume coloana7

FROM nume tabel

WHERE nume coloana7 BETWEEN 10 AND 22 ;

Codul va lista toate liniile din coloana "nume coloana7" care au valorile cuprinse intre 10 si 22.

Operatorul IS NULL cauta coloanele unde nu exista nici o valoare. Subliniem faptul ca IS NULL nu inseamna nici valoarea "zero", zero fiind un numar, si nici "spatiu", deoarece spatiul sau blankul, este un caracter, respectiv este considerat ca fiind o litera. Daca o coloana nu contine nici o valoare, se spune ca ea contine valoarea NULL.

FILTRAREA AVANSATA A DATELOR.

Limbajul SQL permite un grad superior al filtrarii prin utilizarea mai multor criterii. Acestea utilizeaza o serie de

cuvinte cheie speciale, folosite pentru unirea sau modificarea clauzelor din interiorul unei clauze WHERE. Acestea mai poarta numele de operatori logici.

OPERATORUL AND.

Presupunem ca avem un tabel numit "Sinteza", in care sunt inregistrate descoperirile arheologice din cateva santiere (coloana "Santier"), numele obiectului arheologic descoperit (coloana "Obiect") si anul descoperirii (coloana "anul"). Ne propunem sa selectam din tabel un anumit santier si descoperirile facute incepand cu un anumit an calendaristic, utilizand clauza WHERE si operatorul AND.

Secventa este urmatoarea:

SELECT santier, obiect, anul

FROM sinteza

WHERE santier = Alba AND anul <= 1995 ;

Clauza WHERE a instructiunii SELECT este compusa din doua conditii unite prin operatorul AND. Acesta instrruieste sistemul de gestionare al bazei de date pentru a regasi exclusiv liniile care indeplinesc toate conditiile specificate.

OPERATORUL OR

Acest operator este opusul lui AND deoarece instruieste sistremul de gestionare al bazei de date sa regaseasca liniile ce corespund oricareia dintre conditiile specificate. Urmatoarea secventa

SELECT santier, obiect, anul

FROM sinteza

WHERE santier = Alba OR santier = Deva ;

reda obiectul si anul pentru oricare din cele doua santiere, Alba si Deva.

ORDINEA DE EVALUARE.

Clauza WHERE poate contine oricati operatori AND sao OR sunt necesari. Combinarea acestora ridica o problema si anume aceia a ordinii de evaluare a operatorilor. Trebuie tinut cont de faptul ca SQL-ul prelucreaza operatorii AND inaintea operatorilor de tip OR. Din acest motiv se recomanda folosirea parantezelor pentru a grupa in mod explicit operatorii asociati. Acest lucru este evidentiat in secventa de cod de mai jos:

SELECT santier, obiect, anul

FROM sinteza

WHERE (santier = Alba OR santier = Deva)

AND anul = 1997 ;

Sistemul rezolva intai paranteza chiar daca ea contine un operator de tip OR, si dupa rezolvarea parantezei trece la celalta clauza, respectiv la operatorul AND.

OPERATORUL IN.

Se foloseste pentru specificarea unui domeniu de conditii, oricare din ele putand sa fie indeplinite. Acest operator necesita o lista de valori valide, separate prin virgule si cuprinse intre paranteze.

Urmatoarea secventa de cod prezinta utilizarea operatorului:

SELECT

FROM

WHERE    IN

ORDER BY

O serie de avantaje il fac mai rapid decat listele de operatori OR :

Pentru liste foarte lungi de optiuni valide, sintaxa operatorului IN este mai simpla si mai usor de citit;

Ordinea de evaluare este mai usor de gestionat, atunci cand operatorul IN este folosit in asociatie cu operatorii AND si OR;

Operatorul IN poate sa contina o alta instructiune SELECT, fapt ce permite clauze WHERE foarte puternice, asa cu vom vedea in cele ce urmeaza.

OPERATORUL NOT.

Acest operator asigura a singura functie si anume aceea de a nega orice conditie care il urmeaza. Este util in clauze mai complexe, de exemplu in asociatie cu operatorul IN. Urmatoarea secventa prezinta utilizarea operatorului NOT:

SELECT

FROM

WHERE NOT

ORDER BY

FILTRAREA DATELOR CU CARACTERE DE INLOCUIRE. OPERATORUL LIKE.

Operatorii prezentati pana acum filtreaza datele utilizand

valori cunoscute. Acest fapt nu este posibil intotdeauna, - de exemplu cautarea unui set de articole care contin un anumit grup de caractere in interiorul acestora - motiv pentru care in astfel de situatii se utilizeaza asa numitele caractere de inlocuire. Acestea sunt o serie de caractere speciale folosite pentru a corespunde unei parti dintr-o valoare de text. Se defineste ca fiind un model de cautare, o conditie de cautare alcatuita din text literal si din unul sau mai multe caractere de cautare. Pentru a utiliza acest tip de caractere in clauzele de cautare trebuie utilizat operatorul LIKE. Cautarea cu caractere de inlocuire poate fi utilizata in SQL,numai cu campuri de tip text. Ele nu pot fi folosit pentru a cauta campuri cu date de tip non-text.

CARACTERUL DE INLOCUIRE PROCENTAJ (%)

Procentajul (%), este caracterul de inlocuire cel mai utilizat. Intr-un sir de cautare, % corespunde cu oricate aparitii ale oricarui caracter. De exemplu secventa:

SELECT nume coloana8

FROM nume tabel

WHERE nume coloana8 LIKE 'cer%' ;

va selecta toate cuvintele din "nume coloana8" din tabelul "nume tabel", care incep cu "cer", respectiv ceramica, cercetare, Cernauti, etc. Daca in loc de "cer%", am fi cerut de exemplu "ceramica %", secventa ar fi selectat orice caractere care incep dupa "ceramica", oricate ar fi fost acestea, de exemplu "ceramica pictata", "ceramica nepictata", etc.

Caracterele de inlocuire pot fi folosite oriunde in modelul de cautare. De exemplu :

forma %tip% toate sirurile de caractere care contin in interiorul lor caracterele "tip".

forma g%e toate sirurile de caractere care incep cu "g" si se termina cu "e".

CARACTERUL DE INLOCUIRE LINIUTA DE SUBLINIERE ( _ ).

Se utilizeaza la fel ca "%" , dar asigura corespon-denta unui singur caracter. Daca de exemplu dorin doua caractere vom utiliza doua liniute.

CARACTERUL DE INLOCUIRE PARANTEZE DREPTE.

Este folosit pentru specificarea unui set de caractere, oricare dintre ele trebuind sa corespunda unui caracter in pozitia specificata. De exemplu pentru a selecta toate textele care incep cu "T" sau cu "P" secventa va cuprinde:

LIKE '[TP]%'

Pentru a obtine toate sirurile care nu incep cu "T" sau cu "P" vom nega acest caracter de inlocuire cu caracterul " ^ " si vom avea secventa:

LIKE '[^TP]%'

CARACTERE DE INLOCUIRE NON-STANDARD.

Unele SGBD-uri folosesc caractere de inlocuire non-standard. Astfel Microsoft Access utilizeaza pentru " % " caracterul "*"

respectiv asteriscul, iar pentru " _" caracterul " ? " respectiv semnul intrebarii.

RECOMANDARE.

Nu se recomanda utilizarea caracterelor de inlocuire

la inceputul modelului de cautere deoarece durata de prelucrare este lunga.

APLICATII SQL IN MICROSOFT ACCESS.

In mod curent SGBD-ul Microsoft Access din Microsoft Office este utilizat interactiv pentru a crea si gestiona baze de date. Pentru interogari ale bazelor de date, Microsoft Accsessus ofera utilitarul Query Designer. O caracteristica frecvent trecuta cu vederea a acestui utilitar este faptul ca el permite scriere de instructiuni SQL pentru executarea acestora pe o baza de date deschisa.

Pentru a folosi aceasta proprietate deosebit de utila, procedam dupa cum urmeaza:

Lansati Microsoft Access. Ni se va cere sa deschidem sau sa creem o baza de date. Deschidem baza de date pe care vrem sa o folosim.

Selectam Queryes din fereastra Database. Lansam o noua interogare dand clic pe New si din fereastra care apare selectam modul Design View.

Se va deschide caseta de dialog Show Table. Fara a selecta nici un tabel, inchidem fereastra

respectiva.

Din meniul View selectam SQL View pentru a deschide fereastra Query.

Scriem acum instructiunile SQL pe care le dorim in aceasta fereastra.

Pentru a trece la executarea instructiunilor SQL, dam un clic pe butonul Run - marcat cu un semn de exclamare rosu. Sistemul muta vizualizarea in Datasheet View, care afiseaza rezultatele intr-o grila.

Comutam apoi intre SQL View si Datasheet View, dupa cum situatia impune sau nu modificarea codului SQL (pentru a modifica instructiunile SQL, este necesar sa revenim in SQL View).

Este posibila de asemenea utilizarea modului Design View penru a construi in mod interactiv instructiuni SQL.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 861
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved