.3 / U 3. Jł-ZYK BAZ DANYCH J>DL
♦ Indeksy (indexes): Nie są one co prawda zdefiniowane w standardzie SQL, ale w komercyjnych systemach indeksy można deklarować, przyspieszają bowiem wykonywanie zapytań lub tych modyfikacji, które wymagają odszukania krotek z zadanymi wartościami pewnych atrybutów.
♦ Perspektywy (yiews): Perspektywa definiuje relację konstruowaną z tabel przechowywanych w bazie. Można na nich przetwarzać zapytania tak samo, jak gdyby były' to tabele. $QL przekształca te zapytania do postaci zapytań działających na tabelach bazy. a więc w wyniku tych zapytań występują dane z tabel przechowywanych wr bazie.
♦ Wartość NULI (nuli vałues): W SQL występuje specjalna wartość NULL, która jest wpisywana w miejsce składowych, o nieokreślonych wartościach. Wartości NULL nie można traktować tak jak zwykłych wartości liczbowych lub logicznych. Porównanie jakiejkolwiek innej wartości z NULL daje w wyniku wartość logiczną UNKNOWN. Z kolei wartość UNKNOWN można traktować jako trzecią wartość logiczną, umiejscowioną między prawdą a fałszem, czyli między stałymi TRUE oraz FALSE.
♦ Wyrażanie złączeń (join expressions): W $QL występują operatory takie jak NATURA! join, które służą do łączenia relacji zarówno w zapytaniach, jak i przy definiowaniu relacji w klauzuli FROM.
♦ Złączenia zewnętrzne (outerjoins): W SQL występuje także operator OUTER JOIN, który powoduje nie tylko złączenie dwóch relacji, ale także dołącza do wyniku „wiszące” krotki z jednej lub drugiej relacji. Nieznane wartości atrybutów w tych krotkach wypełnia się wartością NULL.
♦ Rekurencja (recursion) w SQL3: W standardzie SQL3 istnieje sposób definiowania roboczych relacji rekurencyjnie, a także korzystania z tych relacji w zapytaniach. W przedstawianej wersji proponowanego zapytania istnieje wymóg, aby negacje i agregacje, które występują w rekurencji, byh‘ warstwowe. Oznacza to, że relacja rekurcncyjna nie może być definiowana jako negacja lub agregat siebie samej.
Standardy SQ1.2 oraz $QL3 są dostępne bezpośrednio w National Institutc of Science and Technology (NIST: poprzednio była to instytucja o nazwie National Bureau of Siandards). Można je otrzymać poprzez FTP lub HTTP. Są one umieszczone w komputerze o nazwie spec3cle.ncsl.niat.gov. Standard SQL2 oraz aktualną wersję standardu SQL3 można znaleźć w katalogu:
isowg3/dM /BASSdocs
Warto wiedzieć. Ze definicja składni SQI.2 znajduje się w pliku: tsowg 3/dbl/BASEdoes/sql-92.bn f
Kialog isowg3/x3h2 zawiera wiele dokumentów zarówno roboczych, jak i historycznych, które objaśniają standardy SQL2 i SQU3.
Aby dostać się do dokumentacji SQL poprzez HTTP. należy skorzystać z URL
http://speckle.ncsl.nist.gov/-ttp/
Potem trzeba wpisać którąś ze ścieżek wymienionych powyżej.
Na temat programowania w SQL powstało juz wiele książek. Do naszych ulubionych należą na przykład pozycje [2], [3] oraz [6].
Pierwsza definicja SQL została zapisana w artykule [41. Zaimplementowano ją w systemie R [1], jednym z pierwszych prototypów relacyjnych baz danych. Z kolei pozycja [5] stanowiła źródło opisu rckurencji w SQI.3.
1. Astrahan M.M. i inni: System R: relacyjne podejście do zarządzania danymi. ACM Tran-sactions on Database Systems 1:2, s. 97-137, 1976.
2. Celko J.: SOL jor Smarties. Morgan-Kaufman, San Francisco, 1995.
3. Datę C.J., Darwen H.: A Guide to the SOL Standard. Addison-Wcsley, Reading, MA, 1993.
4. Chamberlin D.D. i inni: $EQUEL 2: a unified approach to data detlnition, manipulation and contro]. IBM Journal of Research and Development 20:6. s. 560-575. 1976.
5. Finkclstein S.J., Mattos N., Mumick Pirahesh H.: Expressiną recursivc ąueries in SQL. ISO WG3 report X3H2-96-075, Marzec 1996.
6. Mclton J., Simon A. R.: Undersłaning the New SQL: A Complete Guide. Morgan--Kautmann. San Francisco, 1993.