Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
8
Rozdział1:FunkcjeoknawjęzykuSQL
podrugim.Tensposóbmyśleniaprzypominarealizowanieoperacjiprzyużyciukurso-
rówwjęzykuT-SQL,dlategometodyopartenakursorachiiteracjiwydająsiętakzna-
jomeprogramistomzdoświadczeniemwkorzystywaniuzjęzykówproceduralnych.
Relacyjne,opartenazbiorachpodejściedoprzetwarzaniadanychjestzupełnieinne.
Abyułatwićjegozrozumienie,zacznijmyoddefinicjizbioruwprowadzonejprzeztwór-
cęteoriiGeorgaCantora:
ZbioremMjestspojeniewcałośćokreślonychrozróżnialnychpodmiotów
naszejpoglądowościczymyśli,którenazywamyelementamidanegozbiorum.
–JosephW
.Dauben,GeorgCantor(PrincetonUniversityPress,1990)
Tazpozoruprostadefinicjajestwrzeczywistościtakzłożona,żejejinterpretacjimógł-
bympoświęcićkilkastron.Jednaknapotrzebytejksiążkiskoncentrujęsięnadwóch
kluczowychaspektach:jednym,któryzostałbezpośredniowyrażonywdefinicjioraz
drugim,któryzniejwynika:
■Całość
Przyjrzyjmysięwykorzystaniuterminucałość.Zbiórpowinienbyć
postrzeganyitraktowanyjakocałość.Naszauwagapowinnaskoncentrowaćsię
nazbiorzejakocałości,zamiastnaposzczególnychelementachzbioru.Przetwarza-
nieiteracyjneniejestzgodneztąkoncepcją,ponieważrekordyplikulubkursor
sąprzetwarzanepojedynczo.TabelawbaziedanychSQLreprezentuje(choćnie
wdoskonałysposób)relacjęzmodelurelacyjnego.Relacjastanowizbiórpodob-
nychdosiebieelementów(tzn.elementówposiadającychtakiesameatrybuty).
Gdypodejmujemyinterakcjęztabelamiprzyużyciukwerendopartychnazbio-
rach,traktujemytabelęjakocałość,aniejakpojedynczewiersze(krotkirela-
cji)–zarównopodwzględemsposobudeklarowaniażądańSQL,jakisposobu
postrzeganiazbioru.Niektóreosobymajądużetrudnościzzaadaptowaniemtego
sposobumyślenia.
■Porządek
Jakmożnazauważyć,definicjaniewspominanicokolejnościele-
mentów.Wynikatozfaktu,iżelementywzbiorzeniesąuporządkowane.Nie-
którymosobomtrudnoprzywyknąćdotegofaktu.Plikiikursorydefiniująokre-
ślonąkolejnośćrekordówipobierającpojedynczerekordymożemypolegaćnatej
kolejności.Wierszewtabeliniemająkolejności,ponieważtabelastanowizbiór.
Osoby
,któretegonierozumieją,częstomyląlogicznąwarstwęmodeludanych
ijęzykazfizycznąwarstwąimplementacji.Zakładają,żejeśliistniejeokreślony
indeksnatabeli,mogąmiećpewność,żepodczaswykonywaniakwerendnatej
tabelidanebędązawszeprzetwarzanezgodniezporządkiemzdefiniowanym
windeksie.Cowięcej,czasemodspełnieniategozałożeniauzależniająpoprawne
działanierozwiązania.OczywiściewSQLServerniemożnamiećtakiejpewno-
ści.Abyzagwarantować,żewierszewzbiorzewynikówzostanązaprezentowane
wokreślonejkolejności,musimydodaćdokwerendyklauzulęORDERBY.Jednak