Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STANDARDI SQL-a
- 1986 SQL - prvi put standardizovan od veceg broja organizadija za standardizaciju ANSI ISO FIPS
- 1992 SQL2 (SQL-92), ANSI/ISO Medjunarodni Standard Jezika Baza Podataka (1992) - puna verzija standarda. SQL2 znacajno prosiruje standarde is 1986 i 1989 ukljucenjem jezika za manipulisanje shemom, tabela za informacije o shemama, olaksicama za kreiranje dinamickih SQL sikaza, novim tipovima i domena. Takodje SQL2 ukljucuje spoljasnje spajanje, kasnadno azuriranje, skupovnu algebru, skrolovane kursore, odlozenu proveru uslova ogranicenja, i poboljsan sistem izvestavanja o greskama i izuzecima. Eliminise neka ogranicenja kako bi jezik postao fleksibilniji.
- 1995 planirano objavljivanje novog SQL3 standarda koji je kompatibilan sa SQL2 standardom, ali obogacen objektima. SQL3 je kompletan jezik i ne zahteva ugnjezdenje u jezike opste namene. Ukljucuje korisnicke definisanje tipove i apstraktne tipove podataka (slicni C++ klasama) koji podrzavaju visestruko nasledjivanje, metode, polimorfizam i enkapsulaciju.
- 1993 ISO ANSI odlucili su da SQL standard razloze na vise delova. Ti delovi su:
- Opis strukture dokumenata
- Jezgro specifikacije (ATP i objektni SQL)
- SQL/CLI 1995. - verzija zasnovana na SQL2 standardu, i dalje u razvoju.
- SQL/PSM 1996. - specifikacija zapamcenih procedura, znacajna za klijent/server okruzenje. Ukljucuje promenjive, dodelu, grananje, teracije, strukturu bloka, poziv procedura i funkcija, obradu greske.
- SQL/veznici - za dinamicki i ugnjezdeni SQL preuzeti su iz SQL2. 1998 objavljena verzija SQL veznika za objektne jezike (Java i C++)
- SQL/XA -
- SQL za vremenske serije - poboljsava mehaniam za upravljanje vremenskim serijama.
- 1993 SQL MM (Multimedia) - razvoj SQL biblioteka za multimedialne aplikacije, ideja da se uzmu neki delovi iz SQL3 i da se standardizuju posebne biblioteke za nauki i tehniku, obradu dokumenata i pretrazivanje tekstova, kao i metoda za upravljanje multimedijalnim objektima (slika, zvuk, video)
- 5.1
- SQL2 standard ima tri nivoa:
- Puni (FULL)
- Imenovanje i odlozenu promenu uslova integriteta, prosirenu podrsku datum/vreme tipovima, azuriranje i brisanje iz tabele koja ima WHERE izraz, kaskadno azuriranje, skrolovane kursore, niske bitova kao tip podataka, privremene tabele, dodatne opcije uslova integriteta
- Srednji (Intermediate)
- Iskaz za promenu sheme, kaskadno brisanje, dinamicki SQL, spajanje uniom, operacije nad stringovima, operacije razlike i preseka, jednostavne domene, CASE, transformaciju tipova, analizu i dijagnozu gresaka, pojednostavljeni tipovi datuma/vremena, stringovi promenjive duzine.
- Pocetni (Entry)
- jezik za definisanje sheme, jezik za manipulisanje podacima, ugnjezdenje SQL u 7 razlicitih programskih jezika, SQLSTATE parametar, preimenovanje/imenovanje kolona u SELECT iskazu, WITH CHECK OPTION pri kreiranju pogleda, direktno izvrsenje iskaza manipulisanja podacima, referencijalni integritet, proveru uslova integriteta.
- Iako je dosta unapredjen od prvog SQL standarda, jos uvek sadrzi mane. Naveca mana je to sto ima neadekvatnu podrsku za bitna svojstva relacionog modela. Neki od njih su: slaba podrska domenima, odsustvo podrske deljenja, nedosledno operisanje pogledima, mogucnost dupliranje vrsta, podupiti...
- 5.1.1
- DOMEN
- Novost u odnosu na predhodni SQL standard jeste prilicno jadna podrska za domene, kao i podrska uslovima integriteta domena.
- CREATE DOMAIN ime-domena AS tip-podataka
- [podrazumevana-definicija]
- [lista-definicija-ogranicenja-domena]
- DROP DOMAIN ime-domena opcija
- tip-podataka predstavlja skalarni tip podataka i pored ranijih tipova ukljucuje i:
- BIT
- INTERVAL
- TIME
- DATE
- TIMESTAMP
- podrezumevana-definicija DEFAULT, predstavlja podrazumevanu vrednost tog domena
- DEFAULT podrezumevana-vrednost
- DEFAULT NULL
- definicija-ogranicenja-domena predstavlja skup dopustenih vrednosti domena i zadaje se logickim izrazom.
- PRIMER:
- CREATE DOMAIN kkk AS CHAR DEFAULT '?'
- CONSTRAINT BR_KNJIGE
- CHECK (VALUE >= 'k1' and VALUE <= 'k501')
- kreira se domen kkk sa podrezumevanom vrednoscu ? (ako se nista ne navede) koji ima uslov BR_KNJIGE zadat CONSTRAINT koji proverava da li je vrednost zadovoljavajuca.
- Opcija pri uklanjanju domena moze biti ili RESTRICT Iili CASCADE. RESTRICT kaze da se domen ne moze izbrisati ukoliko nad njim postoje definisani atributi. CASCADE kaze da ce se atribiti definisani nad tim domenom, nakon brisanja, postaju definisani nad tipom podataka nad kojim je bio definisan domen.
- Standard predvidja i izmene domena ALTER, dodavanje i brisanje podrazumevanih vrednosti SET, DROP DEFAULT, kao i postavljanje i uklanjanje ogranicenja ADD, DROP CONSTRAINT. Ne proverava se prava semantika domena.
- Bazna Tabela
- Definicija bazne tabele (CREATE TABLE) u SQL2 ima mogucnost davodjenja domena za atribute. Sada pored primarnih i stranih kljuceva moze imati i kandidate kljuceva (koji ne moraju biti NOT NULL) i ogranicenja tabele (CHECK izraz). Definicija stranog kljuca sada moze sadrzati akcije pri azuriranju (sad samo pri brisanu) koje mogu biti NO ACTION (slicno restrict), CASCADE, SET DEFAULT, SET NULL.
- ON UPDATE - kada hocemo akciju pri azuriranju
- Moguce je kreirati:
- trajne bazne tabele - bazne tabele kakve poznajemo
- privremene bazne tabele - vezanje za jednu konekciju klijenta ka serveru. Na pocetku konekcije privremene tabele su prazne, a na kraju konekcije njihov sadrzaj se brise. Materijalizuju se tek pri izvrsavanju funkcije pozvane od strane programa. Privremene nemaju punu funkcionalnost RSUBP
- Moguce ALTER - updateovanje tabele (atributi, kljucevi , podrazumevanih vrednosti i ogranicenja)
- Moguce DELETE - sa opcijama CASCADE ili RESTRICT
- Opsti uslov ogranicenja
- Kreiranje uslova
- CREATE ASSERTION ime-pravila CHECK (uslov)
- Brisanje uslova
- DROP ASSERTION ime-pravila
- Uslov je logicki izraz koji moze da ukljuci operacije poredjenja, IN, BETWEEN, LIKE, logicke operacije AND, NOT, OR kao i neke nove opcije: poredjenje i test jedinstvenosti UNIQUE, podudaranja MATCH, preklapanja OVERLAPS. Llogicke operacije su trovalentne pa mogu biti TRUE, FALSE ili UNKNOWN.
- Shema
- Prema ovom standardu svi objekti (domeni, tabele, pogledi) predstavajaju elemente shema.
- CREATE SCHEMA ime-sheme
- [definicija-domena | definicija-tabele | definicija-pogleda | definicija-uslova-ogranicenja {, definicija-domena} {, definicija-tabele} {, definicija-pogleda}
- {, definicija-uslova-ogranicenja}]
- Brisanje sheme: (RESTRICT, CASCADE)
- DROP SCHEMA ime-sheme
- 5.1.2
- SQL2 podrzava nekoliko novih skalarnih operacija i funkcija:
- konkatinaciju ||, funkcije UPPER, LOWER, SUBSTRING, LENGTH (za stringove i niske bitova), + - * / nad DATE-TIME odnosno INTERVAL, funkcije za konverziju tipova, CASE operaciju
- Kmpletnu dijagnostiku - informacije o greskama, SQLCODE, SQLSTATE, informacije o uslovima izvravanja GET DIAGNOSTICS.
- U FROM liniji moguce je da se pojavi lista izvedeih tabela (nastake od drugog SELECTA)
- Dozovoljava dodelu imena izvedenoj koloni i tabeli. (AS ime)
- Nova eksplicitna operacija spajanja - ukljucuje sve vrste spajanja
- dekartov proizvod - CROSS JOIN
- spoljesnje - OUTER - moze biti LEFT, RIGHT i FULL
- unutrasnje - INNER - (obicno spajanje)
- prirodno - NATURAL - jednake vrednosti jednakoimenovanih atribuda, nema ON
- slobodno - NATURAL se izostavla, obavezan ON
- unijsko - UNION JOIN
- Pored UNION, podrzava i presek INTERSECT i razliku EXCEPT. Presek je veceg prioriteta od unije i razlike
- Ugnjezdeni SELECT za skalarne vrednosti
- SELECT X, (SELECT SUM(BOD) FROM ISPIT) AS BOD FROM I
- U bilo koj logicki izraz moze da se ukljuci operacija poklapanja MATCH UNIQUE koja vraca true ako se njen prvi operand poklapa sa tacno jednom n-torkom tabele koja je njen drugi operand.
- Logicki izraz moze imati:
- IS [NOT] NULL
- IS [NOT] TRUE
- IS [NOT] FALSE
- IS [NOT] UNKNOWN
- Ako postoji DISTINCT u argumentu agregatne funkcije, ne mora biti ime kolone vec moze i proizvoljan izraz
- Provera ogranicenja moze biti suspendovana
- SET CONSTRAINT KI1 DEFERRED
- A zatim ponovo aktiviranja
- SET CONSTRAINT KI1 IMMEDIATE
- SQL2 standardizuje konekciju klijenta na server. Moze se izvrsiti iskazom:
- CONNECT TO ime-sql-servera USER ime-korisnika | DEFAULT
- Konekciji se moze dodeliti ime. Jedan klijent moze da ima konekcije ka vise servera, a tekuca konekcija je ona cije je iskaz konekcije posledji izvrsen.
- Konekcija se moze izvrsiti i implicitno, pozivom prodedure sa klijenta na server, pa ako ne postoji ni jedna konekcija ostvauje se konekcija sa podrazumevanim serverom.
- DISCONNECT ime-konekcije | DEFAULT | CURRENT |ALL
- zatvara se imenovana, podrazumevana, trenutna i sve konekcije klijenta.
- Disconnect se moze pozvati i implicitno, po zavrsetku poslednje procedure pozvane iz programa.
- 5.1.3
- Aplikativni SQL
- Neke od mogucnosti koje pruza standard SQL2 u aplikativnom SQL-u su:
- Omogucuje ugnjezdenje sa jezicima: C, Pascal, Ada, FORTRAN, COBOL, PL/I, MUMPS
- Bogatiji skup operacija nad kursorima:
- Uzimanje predhodne vrednosti (*) - FETCH PRIOR
- Uzimanje sledece vrednosti (podrazumeva se sledeca vrednost) - FETCH NEXT
- Uzimanje prve vrednosti (*) - FETCH FIRST
- Uzimanje poslednje vrednosti (*) - FETCH LAST
- (*) - Kursor mora biti definisan sa opcijom SCROLL
- DECLARE x SCROLL CURSOR
- SQL2 dodaje iskaz za pocetak transakcije (SET TRANSACTION)
- Upesno (COMMIT) zavrsena transakcija i bezusesno (ROLLBACK)
- Nivoe izolovanost transakcije:
- READ UNCOMITTED - najslabiji nivo izolovanosti, fenomen nepostojećih podataka i fenomen fantomskih redova //PROVERI KOJ JE TRECI
- READ COMMITED - dopusta fenomen nepostojećih podataka i fenomen fantomskih redova
- SERIALIZABLE - najveci nivo izolovanosti (podrazumevani)
- REPEATABLE READ - dopusta feonomen fantomskih redova
- Nacin pristupa podacima: READ ONLY, READ WRITE
- SQL2 uvodi SQL procedure. Pozivaju se (CALL iskaz) iz maticnog programa.
- SQL2 podrzava dimanicki SQL. Slozena app sa bazom mora da ima:
- prihvatanje komande sa terminala
- analiza komande
- slanje odgovarajuce komande SQL bazi
- vracanje rezultata na terminal
- Dinamicki SQL iskas se konstruise komandom PREPARE a izvrsava komandom EXECUTE
- postoje jos i:
- ALLOCATE CURSOR (DECLARE) - kreiranje dinamickih kursora nad pripremljenim iskazom
- DELOCATE PREPARE - dealokaciju pripremljenog iskaza
- EXECUTE IMMEDIATE - priprema za jednokratno izvrsavanje
- DESCRIBE - za opis ulaznih parametara
- OPEN - za otvaranje i pridruzivanje parametara dinamickom kursoru
- ALLOCATE/DEALOCATE/CREATE/GET/SET DESCRIPTOR - manipulisanje prostora ulaznih parametara
- Omogucava dinamickog izvrsavanja:
- manipulativnih izkaza - SELECT, DELETE, INSERT, UPDATE
- iskazi definisanje - CREATE, ALTER, DROP
- iskaz transakcija
- ITD....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement