Advertisement
fr1sk

Untitled

Feb 17th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.52 KB | None | 0 0
  1. STANDARDI SQL-a
  2. 1986 SQL - prvi put standardizovan od veceg broja organizadija za standardizaciju ANSI ISO FIPS
  3. 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.
  4. 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.
  5. 1993 ISO ANSI odlucili su da SQL standard razloze na vise delova. Ti delovi su:
  6. Opis strukture dokumenata
  7. Jezgro specifikacije (ATP i objektni SQL)
  8. SQL/CLI 1995. - verzija zasnovana na SQL2 standardu, i dalje u razvoju.
  9. SQL/PSM 1996. - specifikacija zapamcenih procedura, znacajna za klijent/server okruzenje. Ukljucuje promenjive, dodelu, grananje, teracije, strukturu bloka, poziv procedura i funkcija, obradu greske.
  10. SQL/veznici - za dinamicki i ugnjezdeni SQL preuzeti su iz SQL2. 1998 objavljena verzija SQL veznika za objektne jezike (Java i C++)
  11. SQL/XA -
  12. SQL za vremenske serije - poboljsava mehaniam za upravljanje vremenskim serijama.
  13. 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)
  14.  
  15. 5.1
  16. SQL2 standard ima tri nivoa:
  17. Puni (FULL)
  18. 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
  19. Srednji (Intermediate)
  20. 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.
  21. Pocetni (Entry)
  22. 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.
  23.  
  24. 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...
  25.  
  26. 5.1.1
  27. DOMEN
  28. Novost u odnosu na predhodni SQL standard jeste prilicno jadna podrska za domene, kao i podrska uslovima integriteta domena.
  29.  
  30. CREATE DOMAIN ime-domena AS tip-podataka
  31. [podrazumevana-definicija]
  32. [lista-definicija-ogranicenja-domena]
  33. DROP DOMAIN ime-domena opcija
  34.  
  35. tip-podataka predstavlja skalarni tip podataka i pored ranijih tipova ukljucuje i:
  36. BIT
  37. INTERVAL
  38. TIME
  39. DATE
  40. TIMESTAMP
  41. podrezumevana-definicija DEFAULT, predstavlja podrazumevanu vrednost tog domena
  42. DEFAULT podrezumevana-vrednost
  43. DEFAULT NULL
  44. definicija-ogranicenja-domena predstavlja skup dopustenih vrednosti domena i zadaje se logickim izrazom.
  45.  
  46. PRIMER:
  47. CREATE DOMAIN kkk AS CHAR DEFAULT '?'
  48. CONSTRAINT BR_KNJIGE
  49. CHECK (VALUE >= 'k1' and VALUE <= 'k501')
  50. 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.
  51.  
  52. 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.
  53.  
  54. 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.
  55. Bazna Tabela
  56. 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.
  57. ON UPDATE - kada hocemo akciju pri azuriranju
  58. Moguce je kreirati:
  59. trajne bazne tabele - bazne tabele kakve poznajemo
  60. 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
  61.  
  62. Moguce ALTER - updateovanje tabele (atributi, kljucevi , podrazumevanih vrednosti i ogranicenja)
  63. Moguce DELETE - sa opcijama CASCADE ili RESTRICT
  64.  
  65. Opsti uslov ogranicenja
  66. Kreiranje uslova
  67. CREATE ASSERTION ime-pravila CHECK (uslov)
  68. Brisanje uslova
  69. DROP ASSERTION ime-pravila
  70.  
  71. 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.
  72. Shema
  73. Prema ovom standardu svi objekti (domeni, tabele, pogledi) predstavajaju elemente shema.
  74. CREATE SCHEMA ime-sheme
  75. [definicija-domena | definicija-tabele | definicija-pogleda | definicija-uslova-ogranicenja {, definicija-domena} {, definicija-tabele} {, definicija-pogleda}
  76. {, definicija-uslova-ogranicenja}]
  77. Brisanje sheme: (RESTRICT, CASCADE)
  78. DROP SCHEMA ime-sheme
  79.  
  80. 5.1.2
  81. SQL2 podrzava nekoliko novih skalarnih operacija i funkcija:
  82. konkatinaciju ||, funkcije UPPER, LOWER, SUBSTRING, LENGTH (za stringove i niske bitova), + - * / nad DATE-TIME odnosno INTERVAL, funkcije za konverziju tipova, CASE operaciju
  83. Kmpletnu dijagnostiku - informacije o greskama, SQLCODE, SQLSTATE, informacije o uslovima izvravanja GET DIAGNOSTICS.
  84. U FROM liniji moguce je da se pojavi lista izvedeih tabela (nastake od drugog SELECTA)
  85. Dozovoljava dodelu imena izvedenoj koloni i tabeli. (AS ime)
  86. Nova eksplicitna operacija spajanja - ukljucuje sve vrste spajanja
  87. dekartov proizvod - CROSS JOIN
  88. spoljesnje - OUTER - moze biti LEFT, RIGHT i FULL
  89. unutrasnje - INNER - (obicno spajanje)
  90. prirodno - NATURAL - jednake vrednosti jednakoimenovanih atribuda, nema ON
  91. slobodno - NATURAL se izostavla, obavezan ON
  92. unijsko - UNION JOIN
  93. Pored UNION, podrzava i presek INTERSECT i razliku EXCEPT. Presek je veceg prioriteta od unije i razlike
  94. Ugnjezdeni SELECT za skalarne vrednosti
  95. SELECT X, (SELECT SUM(BOD) FROM ISPIT) AS BOD FROM I
  96.  
  97. 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.
  98. Logicki izraz moze imati:
  99. IS [NOT] NULL
  100. IS [NOT] TRUE
  101. IS [NOT] FALSE
  102. IS [NOT] UNKNOWN
  103. Ako postoji DISTINCT u argumentu agregatne funkcije, ne mora biti ime kolone vec moze i proizvoljan izraz
  104. Provera ogranicenja moze biti suspendovana
  105. SET CONSTRAINT KI1 DEFERRED
  106. A zatim ponovo aktiviranja
  107. SET CONSTRAINT KI1 IMMEDIATE
  108.  
  109. SQL2 standardizuje konekciju klijenta na server. Moze se izvrsiti iskazom:
  110. CONNECT TO ime-sql-servera USER ime-korisnika | DEFAULT
  111. 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.
  112. 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.
  113. DISCONNECT ime-konekcije | DEFAULT | CURRENT |ALL
  114. zatvara se imenovana, podrazumevana, trenutna i sve konekcije klijenta.
  115. Disconnect se moze pozvati i implicitno, po zavrsetku poslednje procedure pozvane iz programa.
  116.  
  117. 5.1.3
  118. Aplikativni SQL
  119. Neke od mogucnosti koje pruza standard SQL2 u aplikativnom SQL-u su:
  120. Omogucuje ugnjezdenje sa jezicima: C, Pascal, Ada, FORTRAN, COBOL, PL/I, MUMPS
  121. Bogatiji skup operacija nad kursorima:
  122. Uzimanje predhodne vrednosti (*) - FETCH PRIOR
  123. Uzimanje sledece vrednosti (podrazumeva se sledeca vrednost) - FETCH NEXT
  124. Uzimanje prve vrednosti (*) - FETCH FIRST
  125. Uzimanje poslednje vrednosti (*) - FETCH LAST
  126. (*) - Kursor mora biti definisan sa opcijom SCROLL
  127. DECLARE x SCROLL CURSOR
  128. SQL2 dodaje iskaz za pocetak transakcije (SET TRANSACTION)
  129. Upesno (COMMIT) zavrsena transakcija i bezusesno (ROLLBACK)
  130. Nivoe izolovanost transakcije:
  131. READ UNCOMITTED - najslabiji nivo izolovanosti, fenomen nepostojećih podataka i fenomen fantomskih redova //PROVERI KOJ JE TRECI
  132. READ COMMITED - dopusta fenomen nepostojećih podataka i fenomen fantomskih redova
  133. SERIALIZABLE - najveci nivo izolovanosti (podrazumevani)
  134. REPEATABLE READ - dopusta feonomen fantomskih redova
  135. Nacin pristupa podacima: READ ONLY, READ WRITE
  136.  
  137. SQL2 uvodi SQL procedure. Pozivaju se (CALL iskaz) iz maticnog programa.
  138. SQL2 podrzava dimanicki SQL. Slozena app sa bazom mora da ima:
  139. prihvatanje komande sa terminala
  140. analiza komande
  141. slanje odgovarajuce komande SQL bazi
  142. vracanje rezultata na terminal
  143. Dinamicki SQL iskas se konstruise komandom PREPARE a izvrsava komandom EXECUTE
  144. postoje jos i:
  145. ALLOCATE CURSOR (DECLARE) - kreiranje dinamickih kursora nad pripremljenim iskazom
  146. DELOCATE PREPARE - dealokaciju pripremljenog iskaza
  147. EXECUTE IMMEDIATE - priprema za jednokratno izvrsavanje
  148. DESCRIBE - za opis ulaznih parametara
  149. OPEN - za otvaranje i pridruzivanje parametara dinamickom kursoru
  150. ALLOCATE/DEALOCATE/CREATE/GET/SET DESCRIPTOR - manipulisanje prostora ulaznih parametara
  151. Omogucava dinamickog izvrsavanja:
  152. manipulativnih izkaza - SELECT, DELETE, INSERT, UPDATE
  153. iskazi definisanje - CREATE, ALTER, DROP
  154. iskaz transakcija
  155. ITD....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement