Sunteți pe pagina 1din 18

Introducere in T-SQL

- partea I

Iulie 2012 Miruna Cociobea


Cuprins

Ce este o baza de date?

Tipuri de baze de date si standarde SQL

Ce este o tabela?

Cheie primara si cheie de legatura

Relatii intre tabele

Tipuri de date

2
Baze de date

O baza de date reprezinta un ansamblu de colectii de date cu anumite


caracteristici intre care exista niste relatii.

Tipuri de baze de date


modele primitive datele sunt organizate la nivel logic n fiiere. Structura
de baza este inregistrarea, mai multe inregistrri fiind grupate in structuri
de tip fisier;

baze de date ierarhice legaturile dintre date sunt ordonate unic, accesul
se face numai prin varful ierarhiei, un subordonat nu poate avea decat un
singur superior direct i nu se poate ajunge la el decat pe o singura cale;

baze de date in reea datele sunt reprezentate ca intr-o mulime de


ierarhii, in care un membru poate avea oricati superiori, iar la un
subordonat se poate ajunge pe mai multe cai;

3
Baze de date (continuare)

baze de date relationale reprezinta o multime structurata de date


accesibile prin intermediul calculatorului care pot raspunde in timp minim
cerintelor de regasire a informatiilor primite de la mai multi utilizatori
simultan. Aceasta multime de date modeleaza un sistem sau un process din
lumea reala. Bazele de date relationale sunt cele mai raspandite ca
utilizare.
baze de date distribuite sunt o combinatie intre tehnologia bazelor de
date si tehnologia retelelor de calculatoare. Ele sunt fizic distribuite pe mai
multe sisteme de calcul dar acest lucru este transparent pentru utilizatorul
final.
modele semantice orientate spre obiecte. Acest model utilizeaza obiecte
si clase de obiecte ordonate in ierarhii. Obiectele si clasele de obiecte
reprezinta abstractizari ale unor entitati din lumea reala. Acest tip de baza
de date a aparut din necesitatea gestionarii obiectelor complexe: texte,
grafice, harti, imagini, sunete (aplicatii multimedia) i a gestionarii
obiectelor dinamice: programe, simulari.

4
Sisteme de gestiune a bazelor de date

Un sistem de gestiune a bazelor de date (SGDB) este un ansamblu


complex de programe care asigura interfaa ntre o baza de date i
utilizatorii acesteia.

Este dotat cu un limbaj neprocedural de interogare a bazei de date SQL


care permite accesul rapid si usor la datele stocate in baza de date.

Asigura:
definirea si descrierea structurii bazei de date crearea bazei de date;
introducerea (adaugarea) datelor in baza de date;
accesul la date ceea ce presupune interogare si actualizare;
intretinerea bazei de date;
reorganizarea bazei de date;
securitatea datelor.

5
Sisteme de gestiune a bazelor de date (continuare 1)

Exemple de SGBD:
ORACLE
produs dezvoltat de firma Oracle complet relational bazat pe SQL standard
extins ajuns la versiunea 11g .
are o extensie orientata obiect si ruleaza in arhitectura client/server
poate fi utilizat pentru lucrul distribuit si baze de date Internet si are un
optimizator de regasire.
DB2
produs realizat defirma IBM.
este bazat peSQL si respecta teoria relationala.
are implementat un optimizatorde regasire si ofera suport pentru lucrul
distribuit
INFORMIX
realizat de firma Informix.
respecta teoria relational si ofera suport pentru lucrul distribuit

6
Sisteme de gestiune a bazelor de date (continuare 2)

PROGRESS
realizat de firma Progress Software, are limbaj propiu (Progress4GL),
suporta SQL si ruleaza pe o gam larga de calculatoare sub diferite sisteme de
operare.

SQLServer
realizat de firma Microsoft,
este bazat pe SQL si ruleaza in arhitectura client/server.

INGRES II
realizat de firma Computer Associates,
este un SGBDR complet si implementeaza doua limbaje relaionale (intai Quel si
apoi SQL)
este suportat de diferite sisteme de operare (Windows, UNIX)
lucreaza distribuit in arhitectura client/server si asigura protectia ridicata a
datelor

7
Sisteme de gestiune a bazelor de date (continuare 3)

VISUAL FOXPRO
realizat de firma Microsoft, areun limbajproceduralpropriu foarte puternic
are o extensie orientata obiect si un nucleu extins SQL.

ACCESS
realizat de firma Microsoft si este bazat pe SQL
are limbajul procedural gazda (Basic Access) si generatoare puternice ceea ce
ofera o viteza mare de prelucrare a datelor.

MySQL
realizat de compania MySQL AB si este distribuit sub licenta publica generala.
este cel mai popular SGBD open source si este cel mai des utilizat impreuna cu
PHP.
asigura portabilitate ridicata - poate fi utilizat pe multe din platformele
software existente.

8
Baze de date relationale

O baza de date relationala reprezinta un ansamblu de tabele grupate in


jurul unui subiect bine definit.

O tabela este formata din:


linii fiecare linie reprezinta o inregistrare diferita a tabelei
coloane fiecare coloana reprezinta un atribut. Ele sunt identificate prin
nume diferite iar datele de pe aceeasi coloana trebuie sa aiba acelasi tip.

Cheia primara reprezinta atributul sau setul de atribute care identifica in


mod unic o inregistrare din tabela. Fiecare tabela trebuie sa aibe o cheie
primara. Aceasta poate fi:
simpla atunci cand este formata dintr-un singur atribut
compusa atunci cand este formata din mai multe atribute

9
BDR cheie externa

Campurile care formeaza cheia primara a tabelei trebuie sa respecte


urmatoarele reguli:
valorile lor pe coloana sa fie unice
sa contina intotdeauna o valoare
valorile lor sa nu se modifice niciodata

Cheia externa contine valorile care corespund valorilor din cheia primara a
altui tabel. Tabela care contine cheia primara la care se face referire este
denumita tabela parinte iar tabela care contine cheia externa este
denumita tabela copil. Valoarea cheii externe poate fi:
o valoare care se gaseste intre cheile primare din tabela parinte
NULL necompletata.

Intr-o tabela putem avea una sau mai multe chei externe. Acest concept
sta la baza legaturilor dintre tabele.

10
BDR relatii intre tabele

Relatiile intre tabele pot fi de mai multe tipuri:


1:1 (unu la unu) unei inregistrari din tabela A ii corespunde cel mult o
inregistrare din tabela B
1:n (unu la n sau unu la multi) unei inregistrari din tabela A ii pot
corespunde mai multe inregistrari din tabela B
n:1 (n la 1 sau multi la unu) mai multe inregistrari din tabela A corespund
unei singure inregistrari din tabela B
n:m (n la m sau multi la multi) mai multe inregistrari din tabela A pot avea
ca si corespondente mai multe inregistrari din tabela B. Acest tip de relatii
nu sunt implementate in bazele de date. Ele sunt sparte in 2 relatii de tipul
1:n cu ajutorul unei tabele de legatura.

Tabela A se numeste tabela de baza iar tabela B se numeste tabela


corespondenta.

11
BDR tipuri de date

Fiecare atribut al datelor pe care vrem sa le stocam in baza de date are un


anumit tip.

Text
Tipul de date pentru a stoca un text se numeste SIR DE CARACTERE (STRING). Un
sir de caractere este format din mai multe caractere (evident). Putem avea
caracteristici reprezentate si de un singur caracter (o litera). Acestea vor avea
tipul CHAR.
CHARACTER(lungime) reprezinta definitia unei date de tip caracter care are
exact lungimea specificata de parametrul lungime. Daca informatia respectiva
are mai putine caractere ea va fi completata cu spatii pana la atingerea
numarului maxim de caractere.
CHARACTER VARYING(lungime) reprezinta definitia unei date de tip caracter
cu lungimea maxima specificata de parametrul lungime. Se vor stoca numai
informatiile fara a completa cu alte caractere (de exemplu spatii). Se poate
abrevia CHAR VARYING sau VARCHAR.

12
BDR tipuri de date (continuare 1)

Pentru a putea utiliza un sir de caractere el va fi inclus intre apostroafe.


Daca avem un sir de caractere care contine apostrof acesta va fi dublat.

De obicei SGBD-urile au o limita maxima pentru sirurile de caractere care


difera de la un sistem la altul. Pentru a stoca informatii de tip caracter care
depasesc limita sistemului ca lungime se vor utiliza CLOB-uri ceea ce
inseamna CHARACTER LARGE OBJECT.

Numeric
Daca se pune problema stocarii datelor de tip numeric ar trebui sa avem
raspunsul la urmatoarele intrebari:
Datele mele sunt numai numere intregi?
Care este intervalul de valori pe care vrem sa il stocam?
Cate zecimale vrem sa utilizam?

13
BDR tipuri de date (continuare 2)

INTEGER, SMALLINT si BIGINT sunt utilizate pentru stocarea numerelor intregi cu


semn. Intervalele de valori pentru aceste tipuri de date difera de la un SGBD la altul
insa cu siguranta intervalul de valori pentru SMALLINT va fi <= intervalul de valori
pentru INTEGER ( sau INT) care la randul sau va fi <= cu intervalul de valori pentru
BIGINT.
NUMERIC (P, S) si DECIMAL(P,S) reprezinta definitia unor numere zecimale cu
semn. P reprezinta numarul total de cifre iar S reprezinta numarul de cifre aflate
dupa virgula. Exemplu NUMERIC(6, 2) reprezinta range-ul de numere de la -9999.99
la 9999.99.
REAL si DOUBLE PRECISION reprezinta numere reale cu semn simpla precizie in
virgula mobila. DOUBLE reprezinta numere reale dubla precizie dar au un interval
mai mare de valori. Si aici intervalele de valori difera de la un SGBD la altul.
FLOAT(P) specifica un numar cu semn in virgula mobila cu o precizie cel putin egala
cu P.

Daca se incearca stocarea in baza de date a unor numere mai mari decat permite
definitia va fi generata o eroare.

14
BDR tipuri de date (continuare 3)

Temporal
Datele legate de timp sunt sensibile cand vine vorba despre stocarea lor in
baza de date. Din acest motiv ele depind cel mai mult de regulile sistemului
de gestiune a bazelor de date. Cel mai indicat este ca atunci cand primim
erori la definirea datelor de tip temporal sa fie consultata documentatia
SGBD-ului.

DATE stocheaza an, luna, zi


TIME stocheaza ora, minut, secunda
TIMESTAMP stocheaza an, luna, zi, ora, minut, secunda

BINARY
Tipul de data binar este utilizat in principiu pentru a stoca fotografii, filme
sau imagini scanate.

15
BDR tipuri de date (continuare 4)

BINARY(lungime) reprezinta un sir binar cu lungime variabila care poate


stoca un numar maxim de caractere dat de parametrul lungime

BINARY LARGE OBJECT(lungime) reprezinta un sir binar de lungime foarte


mare care poate stoca un numar maxim de caractere specificat in
parametrul lungime. Abrevierea este BLOB Binary Large Object.

BOOLEAN
Se refera la campuri care pot avea doar 2 valori: adevarat sau fals.

Valoarea NULL indica faptul ca valoarea din campul respectiv nu este


cunoscuta. Aceasta valoare este valida pentru orice tip de data. Trebuie
stiut dinainte cum sunt tratate aceste valori si care este semnificatia lor in
context. Este o diferenta intre NULL si . A doua valoare poate avea o
semnificatie diferita in context.

16
Schema bazei de date

Schema bazei de date este formata din:


Descrierea bazei de date
Tabele
Atribute/coloane cu tipurile lor de date
Cheie primara
Cheie externa (straina)
Relatii intre tabele

Schema bazei de date nu contine date ci numai descrieri.

17
Asta a fost pentru astazi

Intrebari?

Va multumesc!
18

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