SQL Standardi 

Relacioni model baza podataka postajao je osamdesetih godina 20. veka polako ali sigurno 

industrijski standard. Mada je SQL bio široko prepoznati jezik baza podataka, problem je 

predstavljao porast razlika izme

đ

u implementacija raznih proizvo

đ

a

č

a. Neka vrsta standarda 

postala je neophodna.  

Organizacija sa neobi

č

no duga

č

kim imenom - American National Standards Institute National 

Committee on Information Technology Standards H2 Technical Committee on Database (ANSI 

NCITS H2 TCD) dobila je zadatak da standardizuje relacioni model 1982 godine. Projekat je u 

po

č

etku bio baziran na IBM SQL/DS specifikaciji, i u jednom periodu je striktno pratio razvoj IBM 

DB2. Godine 1984. predlog standarda je redizajniran tako da je postao opštiji i dopustio ve

ć

raznolikost proizvo

đ

a

č

a sistema baza podataka.  

SQL je prvi put standardizovan 

1986

. godine pod nazivom ‘‘Database LanguageSQL" (Ameri

č

ki 

nacionalni institut za standardizaciju, X3.135) odnosno 

1987

. godine (Me

đ

unarodna organizacija 

za standardizaciju, ISO). Ovaj ANSI/ISO standard usvojila je i organizacija Federalnih standarda 

za obardu informacija ameri

č

ke vlade (Federal Information Processing Standard,  

FIPS

).  

Standard je imao manje od 100 strana i uklju

č

ivao je malo svojstava – jednostavne upite, 

ažuriranja i definicije tabela, tabelarni model podataka, nezavisan od jezika, definiciju sheme, 

poglede i kursore za sume

đ

e (engl. interface) ka slogovno orijentisanim programskim jezicima. 

Revidirani standard, poznat kao 

SQL89

 ili 

SQL1

, objavljen je 1989. godine. 

 

SQL89 (SQL1)  

 

Zbog suprotstavljenih interesa komercijalnih proizvo

đ

a

č

a, veliki deo SQL89 (ili SQL1) standarda 

ostavljen je namerno nepotpun, i mnoga svojstva su ozna

č

ena kao "definisana implementacijom". 

Standard je imao oko 120 strana i dodao je samo nekoliko vrsta ograni

č

enja za o

č

uvanje 

integriteta uskladištenih podataka. Obezbe

đ

uje referencijalni integritet i ugnježdenje SQL-a u 

programske jezike Ada, C, COBOL, FORTRAN, Pascal i PL/I. 

 

SQL92 (SQL2) 

 

Da bi se standard poja

č

ao, ANSI kometiet je revidirao prethodni rad standardom 

SQL92

 koji je 

bio baziran na SQL89 i ratifikovan 1992. (nazvan i 

SQL2

). Ovaj standard je razrešio ve

ć

i broj 

slabosti standarda SQL89 i postavio konceptualna SQL svojstva koja su u to vreme prevazilazila 

svojstva postoje

ć

ih RSUBP implementacija. Standard SQL92 bio je približno pet puta ve

ć

i od 

svog prethodnika (ima oko 600 strana) i on poboljšava ortogonalnost jezika dopuštaju

ć

i upotrebu 

izraza na svakom mestu gde se o

č

ekuju tabele ili skalarne vrednosti (npr. SELECT, FROM linija). 

SQL dodaje nova svojstva kao što su tipovi podataka 

date

 i 

time

, skupovne operatore UNION, 

INTERSECT, EXCEPT, standardne tabele kataloga za smeštanje metapodataka, svojstva 

evolucije sheme kroz ALTER TABLE, itd. Neka od rešenja ovog standarda odnose se na: 

 

 

 

dinami

č

ki SQL kroz PREPARE i EXECUTE iskaze 

 

spoljašnje spajanje 

 

kaskadno ažuriranje i brisanje 

 

 

privremene tabele 

 

skupovne operacije unije, preseka i razlike 

 

definiciju domena u shemi 

 

nove ugra

đ

ene tipove podataka 

 

nivoe konzistentnosti transakcija 

 

odloženu proveru uslova integriteta 

 

SQL dijagnostiku, itd.    

 

 

 

 

Na primer, lista izvedenih tabela u FROM liniji: 

 

 

SELECT P_SIF, I_SIF 

 

FROM P, (SELECT * 

 

 

 

  FROM I 

 

 

 

  WHERE STATUS > 10) AS DOBRIIZD 

 

WHERE P.DRZAVA = DOBRIIZD.DRZAVA 

 

SELECT upitni blok u SELECT liniji, npr. 

 

SELECT I.I_SIF, (SELECT SUM(KI.TIRAZ) 

 

FROM KI 

 

WHERE KI.I_SIF = I.I_SIF ) AS UK_TIRAZ 

FROM I

 

Prošireni logi

č

ki izrazi, npr.  

 

(p) IS [NOT] TRUE ((p) je (nije) ta

č

no) 

(p) IS [NOT] FALSE ((p) je (nije) neta

č

no) 

(p) IS [NOT] UNKNOWN ((p) je (nije) nepoznato) 

 

Dekartov proizvod, prošireno prirodno, slobodno spajanje, spoljašnja unija - operacija oblika: 

tabela-1 

CROSS JOIN | 

 

[NATURAL] [INNER|LEFT|RIGHT|FULL|UNION] JOIN 

tabela-2 

[ON 

logi

č

ki-izraz

Na primer,  

 

SELECT K.K_SIF, SUM(TIRAZ) AS TIR 

 

FROM (K NATURAL LEFT JOIN KI)  

 

GROUP BY K.K_SIF 

Za kreiranje domena koristi se iskaz  

 

 

 

CREATE DOMAIN 

naziv-domena 

[AS] 

tip-podataka 

 

podrazumevana-definicija 

 

lista-definicija-ogranicenja-domena 

Opšti uslov integriteta 

CREATE ASSERTION 

ime-pravila 

CHECK( 

uslov

), na primer  

background image

 

usaglašenosti: osnovni SQL99 (

Core SQL99

) i poja

č

ani SQL99 (

Enhanced SQL99

). Veoma je 

kompleksan (preko 1,500  strana u odnosu na 120 strana standarda SQL89 i oko 600 strana 

SQL92).  

SQL3 uklju

č

uje objekte i kompleksne tipove podataka i sve mehanizme za podršku, unutar 

relacionih tabela. U SQL se uvode svi bitni principi objektnog programiranja – nasle

đ

ivanje, 

u

č

aurenje i polimorfizam. 

 

SQL99 relaciona (ne-OO) svojstva 

 

Tipovi podataka 

 

SQL:1999 ima 

č

etiri nova tipa podataka:  

 

1. LARGE OBJECT tip (LOB), sa varijantama CHARACTER LARGE OBJECT (CLOB) i 

BINARY LARGE OBJECT (BLOB). LOB objekat ne može da bude primarni klju

č

 (PRIMARY 

KEY), strani klju

č

 (FOREIGN KEY) i ne može da se koristi u pore

đ

enjima osim testova jednakosti 

ili razli

č

itosti, ne može da se koristi u GROUP BY ili ORDER BY liniji. Ina

č

e se CLOB tip ponaša 

sli

č

no nisci karaktera.  

 

2. Tip je BOOLEAN sa vrednostima 

true

false

, i 

unknown

.  

 

3,4. Dva nova strukturna (kompozitna) tipa: ARRAY i ROW. Tip ARRAY dopušta da se 

kolekcije vrednosti dodele atributu (koloni) tabele baze podataka. Na primer,  

 

DANI VARCHAR(10) ARRAY[7] 

omogu

ć

uje smeštanje imena svih sedam dana u jedan 

atribut (DANI) jedne vrste tabele. Ovo svojstvo narušava normalizovanost relacije (1NF).  

 

Tip ROW dalje narušava 1NF dopuštaju

ć

i strukturnu vrednost u koloni tabele: na primer, 

 

 

ADDRESS ROW ( 

 

 

      

 

STREET  VARCHAR(50), 

 

 

               

CITY  VARCHAR(30), 

 

 

               

STATE   CHAR(2)  ) 

 

 

SQL:1999 uvodi i jednostavne korisni

č

ki definisane tipove – DISTINCT TYPES - koji su 

definisani nad jednostavnim ugra

đ

enim (predefinisanim) SQL tipovima ali se ne mogu "mešati" u 

istom izrazu bez eksplicitne konverzije operatorom CAST (primer u SQLstandardi.ppt)  

 

Predikati 

 

Od nekoliko novih predikata u SQL:1999, pomenimo predikat 

SIMILAR

 koji omogu

ć

uje 

UNIX-like zadavanje regularnog izraza, korisno u sravnjivanju obrazaca (pattern matching). Na 

primer,  

 

WHERE NAME SIMILAR TO '(SQL-(86|89|92|99))|(SQL(1|2|3))'  

 

 

 

 

Bogatija semantika  

 

SQL99 doprinosi oboga

ć

enju semantike jezika na više na

č

ina. Jedan aspekt je proširenje 

skupa pogleda koji se mogu ažurirati (npr. pogledi koji uklju

č

uju podupite) analizom funkcionalnih 

Želiš da pročitaš svih 12 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti