background image

Rozdział 1. 

 

Wprowadzenie do 
relacyjnych baz danych i 
serwera Microsoft SQL 
Server 2000

 

 

Projektanci serwera SQL Server odpowiadają za zaprojektowanie i implementację bazy danych, 
podczas gdy administratorzy serwera SQL Server są odpowiedzialni za codzienne zadania 
związane z zarządzaniem serwerem. Jednak, zadania te stają się coraz mniej rozróżnialne, gdyż 
SQL Server staje się coraz powszechniej używany. 

Lekcja ta rozpoczyna się od zagadnień dotyczących historii serwera SQL Server oraz systemu 
Windows (zarówno Windows 9x jak i Windows NT/2000). Następnie zostaną omówione bazy 
danych i środowisko klient-serwer. Kolejny temat to bazy danych i ich zawartość. Ostatecznie, 
lekcja kończy się przeglądem 

technik 

projektowania baz danych. Zadaniem z tej lekcji jest 

przeprowadzenie symulowanej rozmowy z klientem i 

przegląd tworzeniapróbą stworzenia

 prostej 

bazy danych.  

SQL Server to jest to! 

SQL Server 2000 jest sztandarowym produktem firmy Microsoft

, dotyczącym mechanizmu z linii 

serwerów

 baz danych. Jest to następca najbardziej znaczącego produktu – serwera SQL Server 7.0. 

Firma Microsoft postanowiła przeznaczyć dużą sumę pieniędzy na wsparcie oraz reklamę serwera 
SQL Server 7.0. Rezultatem tych działań jest powstanie serwera SQL Server 2000. SQL Server 
7.0 stał się podstawowym 

mechanizmem motorem 

baz danych w przemyśle komputerowym dla 

platformy Windows NT i Windows 2000, obejmującym 68 procent rynku baz danych – wg 
witryny firmy Microsoft. SQL Server 2000 kontynuuje ten trend i rozszerza udział firmy 
Microsoft w rynku baz danych. W wersji 2000 serwera 

w stosunku do poprzednika 

dodano dużą 

background image

ilość nowych funkcji i 

wykonano znaczące zadanie w zakresie dostosowania do wyższej wersji 

zbioru własności, stanowiącegoznacząco rozbudowano te, które stanowiły

 podstawę serwera SQL 

Server 7.0. 

SQL Server 2000 może pracować zarówno w systemie Windows NT 4.0 (z pakietem serwisowym 
5 lub późniejszym), w systemie Windows 2000, Windows 98 lub Windows ME. Dostępna jest 
również wersja SQL Server 2000 dla platformy Windows CE. Stosunek ceny do wydajności 
serwera SQL Server 2000 pozwala wielu firmom na czerpanie korzyści z posiadania systemu 
zarządzania relacyjną bazą danych (RDBMS) za ułamek kosztów takiego systemu parę lat 
wcześniej. W czasie pisania tej książki, wg porównania baz danych TPC-C serwer SQL Server 
2000 ma najlepszą wydajność na całym świecie oraz posiada również najlepsze notowania w 
zakresie ceny i wydajności. Rozwój serwera Microsoft SQL Server będzie kontynuowany przez 
najbliższe lata, co oznacza, że praca z tym produktem to słuszny wybór.  

Od czasu przedstawienia na rynku serwera Microsoft SQL Server zostały sprzedane miliony kopii 
tego produktu, włączając w to więcej niż 10 milionów licencji jedynie w 1999 roku. Obecna 
wersja produktu, SQL Server 2000 (zwany wewnętrznie wersją 8.0), jest tematem niniejszej 
książki. Przed przejściem do bliższego omówienia serwera SQL Server 2000 i nauki jego obsługi 
warto przekonać się, że historia powstania tego serwera jest warta poznania. 

Najnowsze informacje i wsparcie dla serwera Microsoft SQL Server można znaleźć pod 
adresem: http://www.microsoft.com/sql/

Historia serwera SQL Server 

W latach 

9070

-tych firma IBM stworzyła język programowania przeznaczony specjalnie do 

zapytań do bazy danych, zwany SEQUEL, co oznacza Structured English Query Language. Z 
czasem, język ten został poszerzony, 

i obecnie 

nie jest to jedynie język zapytań, ale może być 

także używany do tworzenia 

bazy danych 

i zarządzania 

bezpieczeństwem 

mechanizmumechanizmami bezpieczeństwa

 bazy danych. Firma IBM udostępniła ogólnie 

SEQUEL, który od tej pory znany jest jako SQL. Ze względu na historię powstania słowo SQL 
można wymawiać jako sequel lub przeliterować jako S-Q-L. 

Obecne 

mechanizmy motory 

baz danych używają różnych wersji języka SQL. Microsoft SQL 

Server używa wersji zwanej Transact-SQL (T-SQL). Pomimo używania języka Transact-SQL i 
nauki jego podstaw, w tej książce nacisk jest położony na instalowanie, zarządzanie i połączenie z 
serwerem SQL Server. Wydawnictwo Sams Publishing wydało również książkę zatytułowaną 
„Teach Yourself Transact-SQL in 21 Days”, Second Edition, która zawiera więcej szczegółów na 
temat tego języka i jego wykorzystania.  

Początkowo firma Microsoft rozwijała SQL Server (produkt z rodziny baz danych, który rozumie 
język SQL) wraz z korporacją Sybase w celu wykorzystania go na platformie IBM OS/2. Kiedy 
firmy Microsoft i IBM rozdzieliły się, firma Microsoft zaniechała OS/2 na rzecz swojego nowego 
systemu operacyjnego – Windows NT Advanced Server. W tym punkcie firma Microsoft 
zdecydowała, że sama będzie rozwijać mechanizm SQL Server dla systemu Windows NT. 
Wynikowym produktem był serwer Microsoft SQL Server 4.2, aktualizowany do wersji 4.21. Po 
rozstaniu z Microsoft, firma Sybase nadal kontynuowała rozwój 

mechanizmu serwera 

bazy danych 

background image

dla systemu Windows NT (znanego obecnie jako Sybase Adaptive Server Enterprise), a firma 
Microsoft rozwijała SQL Server 6.0, następnie SQL Server 6.5, które również współpracowały z 
systemem Windows NT. Serwer SQL Server 7.0 wprowadził możliwość uruchamiania go w 
systemie Windows NT, ale także w systemie Windows 95 i Windows 98. 

SQL Server 

7.0 

stanowił przełom w wykorzystaniu kodu Sybase przez grupę projektantów baz 

danych firmy Microsoft. Wcześniejsze wersje były nadal bardzo zbliżone do Sybase. Jednak, wraz 
z powstaniem serwera SQL Server 7.0 firma Microsoft radykalnie przekształciła i zmieniła kod 
Sybase. Przedsiębiorstwo Microsoft zaprojektowało również od nowa jądro 

mechanizmu 

bazy 

danych i wprowadziło skomplikowany optymalizator zapytań oraz zaawansowany mechanizm 

magazynu bazyskładowania

 danych. Produkt SQL Server 2000 rozszerza tę nową linię kodu, 

dodając znaczące, nowe właściwości. Poprawia również skalowalność, niezawodność i dostępność 
tego produktu oraz znacznie ułatwia pracę administratora bazy danych.  

Pomimo możliwości uruchomienia serwera SQL Server 2000 w systemie Windows 9x, nie 
można w tym systemie wykorzystać pełnej funkcjonalności tego serwera. Uruchamiając serwer 
w systemie Windows 9x nie można skorzystać z wielu procesorów, zabezpieczeń stosowanych 
w systemie Windows NT/2000, woluminów New Technology File System (NTFS) i wielu innych 
udogodnień. Zaleca się używanie serwera SQL Server 2000 raczej na platformie Windows NT 
lub Windows 2000 niż Windows 9x. System Windows NT/2000 posiada również inne zalety. 
Platforma NT jest stworzona do obsługi wielu użytkowników. System Windows 9x nie był 
tworzony w ten sposób i wydajność serwera SQL Server na tej platformie gwałtownie maleje po 
dodaniu większej liczby użytkowników. Książka ta zakłada,  że wykorzystywany jest system 
Windows 2000.  

W systemie Windows NT Workstation, Windows NT Server oraz w każdej wersji MS Windows 
2000 serwer SQL Server 2000 jest zaimplementowany jako usługa. W systemach Windows 98 i 
Windows ME, SQL Server uruchamiany jest jako aplikacja aktualnie zalogowanego użytkownika. 
Dołączone narzędzia, takie jak SQL Server Enterprise Manager, pracujące jako zwykle aplikacje 
typu klient-serwer, pozwalają na uruchamianie ich z dowolnego miejsca w celu kontroli baz 
danych serwera SQL Server.  

Usługa jest to aplikacja, jaką system Windows NT i Windows 2000 może uruchomić 
automatycznie podczas uruchamiania systemu lub może zostać ona uruchomiona ręcznie na 
żądanie. Usługi w systemach Windows NT/2000 posiadają interfejs API, który może być 
kontrolowany programowo. Usługi pozwalają na uruchamianie aplikacji takich jak Microsoft SQL 
Server bez potrzeby logowania użytkownika na komputerze serwera.  

Co to jest baza danych? 

SQL Server używa bazy danych typu relacyjnego. W relacyjnych bazach danych, dane są 
zgrupowane w tabelach. Tabele są 

u

tworzone 

w oparciu opoprzez

 grupowanie danych z tego 

samego tematu i zawierają kolumny oraz wiersze informacji. Tabele są ze sobą 

po

wiązane za 

pomocą 

mechanizmu mechanizmów 

bazy danych, gdy uruchamiane jest zapytanie. Tabele są 

ściśle związane z pojęciami relacji lub encji stosowanymi w odpowiednich książkach 
teoretycznych, w tej książce przedstawiona jest jednak praktyka.  

background image

Generalnie bazę danych można przedstawić jako zbiór powiązanych danych. W niektórych 
wcześniejszych 

produktach dotyczącychsystemach

 baz danych, baza danych była plikiem – takim 

jak 

employee.dbf

, zawierającym pojedynczą tabelę danych. Wewnątrz pliku 

employee.dbf

 

znajdowały się kolumny odnoszące się do danych pracownika, takich jak pensja, data przyjęcia, 
nazwisko, numer legitymacji ubezpieczeniowej itp. Plik zawierał wiersz dla każdej osoby w 
firmie, z odpowiednimi wartościami w odpowiednich kolumnach. Indeksy, użyte do 
przyspieszenia dostępu do danych, były w odrębnym pliku, tak jak inne elementy dotyczące 
zabezpieczeń.  

W serwerze SQL Server 2000, baza danych nie koniecznie jest związana z pojedynczym plikiem; 
jest to pojęcie bardziej logiczne, oparte na zbiorze powiązanych obiektów. Przykładowo, baza 
danych na serwerze SQL Server zawiera nie tylko pierwotne dane, ale także strukturę bazy 
danych, wszelkie indeksy, zabezpieczenia bazy i być może inne obiekty takie jak widoki lub 
procedury składowane związane z określoną bazą.  

Obiekty relacyjnej bazy danych 

Relacyjna baza danych składa się z obiektów różnego typu. Obiekty te zostały opisane w 
poszczególnych odnoszących się do nich rozdziałach. Poniżej przedstawiono kilka 
najpowszechniejszych obiektów:  

•  Tabele są obiektami zawierającymi typy danych i aktualne 

niezmodyfikowane 

dane. 

Tabele zostały omówione w rozdziale 9. „Typy danych i tworzenie tabel”.  

•  Kolumny są częścią tabel przechowującą dane. Kolumny muszą posiadać określony typ 

danych i unikalną nazwę.  

•  Typy danych 

są podstawowym określeniemokreślają rodzaj

 przechowywanych danych. 

Można korzystać z wielu typów danych, takich jak typ znakowy, numeryczny i typ data. 
Każdej kolumnie w tabeli jest przypisany pojedynczy typ danych.  

•  Procedury składowane są podobne do makr stworzonych w kodzie języka Transact-SQL, 

które 

mogą być zachowane po napisaniumożna napisać i zachować

 pod daną nazwą. 

Przez wykonywanie procedury zostaje faktycznie uruchomiony kod języka T-SQL 
zawarty w procedurze. Przykładowo, kod języka T-SQL stosowany do uruchamiania co 
tygodniowych raportów zostaje zachowany jako procedura, a następnie, w celu generacji 
raportu kod ten jest uruchamiany już jako procedura. Procedur składowanych można 
używać także jako mechanizmów zabezpieczeń.  

•  Funkcje zdefiniowane przez użytkownika są kodem języka Transact-SQL i są bardzo 

podobne do procedur składowanych. Jednak funkcje mogą być wywoływane w 
zapytaniach do bazy danych w celu modyfikacji kolumn danych, które mają być 
widoczne jako tabela, bez względu na to czy są one tworzone programowo czy 
dynamicznie. Przykładowo, można napisać własną funkcję daty, aby modyfikowała 
kolumny danych typu DataGodzina (datetime).  

•  Wyzwalacze są procedurami składowanymi, które są uaktywniane przed lub po dodaniu, 

zmianą lub usunięciu danych z bazy. Wyzwalacze zapewniają, że reguły biznesowe lub 
reguły integralności danych w bazie są przestrzegane. Przykładowo, wyzwalacz może 
zapewnić, ze każda książka w księgarni ma przypisanego prawidłowego wydawcę.  

background image

•  Widoki są to głównie zapytania przechowywane w bazie danych, odnoszące się do jednej 

lub wielu tabel. Widoki można stworzyć i zachować w celu łatwiejszego użycia w 
przyszłości. Widoki zwykle wykluczają kolumny z tabeli lub łączą dwie lub więcej tabel. 
Można ich również używać jako mechanizmów zabezpieczeń.  

•  Indeksy pomagają tak zorganizować dane, że zapytania są wykonywane szybciej. Indeksy 

zostały omówione szczegółowo w rozdziale 13. „Indeksowanie dla poprawy wydajności”. 

•  Klucze podstawowe pomimo tego, że nie są obiektami, mają podstawowe znaczenie dla 

relacyjnych baz danych. Wymuszają unikalność wierszy oraz 

dostarczają sposobu na 

zapewnienie unikalnej identyfikacjiumożliwiają unikatową identyfikację

 każdego 

przechowywanego elementu.  

•  Klucze obce to jedna lub więcej kolumn, do których odnoszą się klucze podstawowe lub 

unikalne więzydefinicje unikalności

 z innych tabel. SQL Server wykorzystuje klucze 

podstawowe i obce do określenia relacji między danymi z odrębnych tabel, podczas 
wykonywania zapytania.  

• 

Więzy Definicje poprawności 

są zaimplementowanymi w systemie mechanizmami 

opartymi na serwerze, zapewniającymi integralność danych.  

•  Reguły są przypisane do kolumn, powodując, że wpisywane dane są zgodne z 

określonymi standardami. Przykładowo, można używać reguł aby upewnić się, czy 
wpisywany numer telefonu danej osoby zawiera jedynie cyfry. Reguły zostały 
funkcjonalnie zastąpione przez 

więzy definicję 

CHECK

 w serwerze SQL Server 2000.  

•  Wartości domyślne mogą być ustawione dla pól i 

są 

używane, kiedy żadne dane nie 

zostaną wpisane podczas wykonywania operacji 

INSERT

. Przykładem jest domyślne 

ustawienie kodu pocztowego obszaru, z którego pochodzi najwięcej klientów. Pozwala to 
uniknąć każdorazowego wpisywania kodu pocztowego dla klientów lokalnych z danego 
obszaru. Wartości domyślne zostały funkcjonalnie zastąpione przez 

więzy definicję 

DEFAULT

 w serwerze SQL Server 2000. 

Projektowanie relacyjnych baz danych 

Sekcja na temat projektowania relacyjnych baz danych jest istotna z dwóch powodów: 

•  Możesz zostać poproszony o zaprojektowanie relacyjnej bazy danych 
•  Możesz otrzymać relacyjną bazę danych i zechcieć zrozumieć, dlaczego zostały podjęte 

pewne decyzje projektowe.  

Potencjalny administrator serwera SQL Server prawdopodobnie otrzyma relacyjną bazę danych 
stworzoną przez kogoś innego; otrzymanie takiej bazy danych nie oznacza jednak, że nie może on 
mieć pomysłów, kiedy dojdzie do projektowania bazy. Znajomość kilku reguł tworzenia bazy 
danych i wiedza na temat normalizacji może być bardzo pomocna w pracy administratora. 

Chociaż proces projektowania dobrej relacyjnej bazy danych może być tematem odrębnej książki, 
poniżej przedstawiono podstawowe kroki do rozważenia w fazie projektu: 

•  Przeanalizuj sytuację, aby uzyskać informacje o proponowanej bazie danych. 

background image

•  Podejmij decyzje o kolumnach, typach danych i długości danych. 
•  Normalizuj dane w tabelach. 
•  Stwórz bazę danych i tabele.  

Po zebraniu relacyjnych danych w tabele, należy zastosować reguły normalizacji, o których była 
mowa wcześniej.  

Proces projektowania powinien rozpoczynać się od przeglądu sytuacji biznesowej i celów, jakie 
klient stara się osiągnąć. Burza mózgów na temat różnych zmiennych oraz ich powiązań w 
tabelach to następny krok w tym procesie. Następnie proces przechodzi do tworzenia raportów i 
zapytań, które będą potrzebne użytkownikom, jak również innych części projektu, włączając w to 
dostęp do witryn sieci Web.  

Następujące zasady postępowania pomogą w procesie projektowania. Należy pamiętać, że trzeba 
się skupić na rozwiązaniu problemu biznesowego, a nie martwić się używaniem perfekcyjnych 
pojęć technicznych do opisu problemu.  

 

TAK NIE 

Pytaj użytkowników o ich potrzeby. 

Utwórz listę obiektów. 

Utrzymuj nazwy obiektów możliwie krótkie ale 
wystarczająco opisowe. 

Organizuj właściwości obiektów w 
odpowiednie grupy. 

Twórz identyczne nazwy kolumn w różnych 
tabelach, w celu późniejszego skojarzenia ich ze 
sobą. Kolumny te będą dla Ciebie kluczami 
podstawowymi i obcymi.  

Przetestuj swój projekt na kilku danych 
testowych. 

Utwórz co najmniej jeden indeks dla tabel, do 
których będą kierowane zapytania. 

Przy tworzeniu tabel bierz pod uwagę 
bezpieczeństwo. 

Dokumentuj nazwy tabel, kolumn oraz kluczy 
podstawowych i obcych. 

Zachowuj określoną konwencję nazewnictwa 
obiektów bazy danych. To znacznie upraszcza 
pracę z obiektami. Zalecane jest używanie 
prefiksów. Przykładowo, można używać nazwy 
tabeli 

tblEmployees

 dla tabeli obiektów 

zwanych 

Employees

 oraz nazwy 

Nie ignoruj użytkowników (zwanych także 
klientami).  

Nie twórz obiektów, których nigdy nie użyjesz. 

Nie używaj złożonych nazw, nazw ze spacjami 
lub nietypowymi znakami ponieważ są 
trudniejsze do wpisywania.  

Nie stosuj kolumn zawierających więcej niż 
jedną wartość.  

Nie twórz tabel z ogromną ilością kolumn. 

Nie zakładaj, że projekt działa dobrze ponieważ 
działa prawidłowo przy 5 wierszach, powinien 
działać równie dobrze przy 500 000 wierszy.  

Nie twórz wielu indeksów (więcej niż pięciu) 
dla jednej tablicy. 

Nie zapomnij ustawić zabezpieczeń danych. 

Nie zgub dokumentacji. 

background image

idxLastName

 dla indeksu opartego na 

nazwiskach.  

 

 

Ćwiczenie na końcu lekcji przedstawia przykładowy wywiad z klientem, którego wynikiem jest 
zaprojektowanie relacyjnej bazy danych. 

Rozmowa z klientem 

Dobry projekt bazy danych rozpoczyna się od zrozumienia sytuacji klienta i pożądanych wyników. 
Dlatego ludzie tworzący takie systemy zwani są analitykami – analizują oni problem szczegółowo 
i próbują określić sposoby rozwiązania danego problemu.  

Czasem niemodny już wywiad jest najlepszym sposobem poznania potrzeb klienta, szczególnie 
jeśli nie posiada się pełnej informacji o obecnej sytuacji i dążeniach klienta. Aby wybadać 
potrzeby klienta można skorzystać z poniższych pytań: 

•  Jaki system działa obecnie u klienta? 
•  Jakie części obecnego systemu należałoby zastąpić w pierwszej kolejności? 
•  Czy istnieje potrzeba stworzenia dodatkowych raportów? 
•  Działanie jakich elementów systemu należałoby śledzić? 
•  Czy dane są publiczne czy prywatne? 
•  Kto potrzebuje mieć dostęp do danych i jaki typ dostępu powinien mieć każdy 

użytkownik lub grupa? 

•  Czy dane mają być publikowane w Internecie? 
•  Czy informacje powinny być dostępne publicznie do przeglądu poprzez sieć Internet? 
•  Czy posiadany przez Klienta sprzęt jest wystarczający do uruchomienia oprogramowania 

serwera i klienta bazy danych? 

•  Jeżeli nie ma zastrzeżeń co do technologii i kwoty pieniędzy, co jeszcze powinno być 

uwzględnione w nowym systemie? 

Poprzez zadawanie tego typu pytań można szybko określić, w jakim celu Klientowi jest 
potrzebna baza danych. Pomimo, że być może nie będzie możliwe zaspokojenie wszystkich 
wymagań (określone ograniczenia przydzielonego budżetu, ramy czasowe i możliwości 
sprzętowe), będzie to początek długoterminowego planu wzrostu i rozszerzania bazy danych.  

Grupowanie obiektów 

Po przeprowadzeniu wywiadu (robiłeś dobre notatki, prawda?) najlepiej jest przeprowadzić „burzę 
mózgów” na temat możliwych obiektów, włączając w to ich nazwy, typy i długość. Po określeniu 
obiektów, należy je pogrupować w powiązane tabele. 

background image

SQL Server obsługuje kilka różnych typów danych, włączając w to typ znakowy, numeryczny, 
data oraz waluta. Więcej szczegółów na temat typów danych można znaleźć w rozdziale 9.  

Po określeniu tabel, należy ustalić właściwości (kolumny) tych tabel. Nazwy kolumn powinny być 
krótkie, ale wystarczająco opisowe. Długość kolumny powinna być wystarczająca nawet dla 
wyjątkowych przypadków. W przypadku nazw, ograniczeniem powinno być to ile znaków można 
wpisać jako adres e-mail – a nie to, ile takich adresów da się przechowywać. 

Normalizacja danych 

Po określeniu kolumn, należy zebrać dane w powiązane tabele. Proces ten nosi nazwę 
normalizacji. Normalizacja jest procesem organizowania danych w powiązane relacjami tabele.  

Normalizacja danych ma na celu eliminację nadmiarowych danych. Przypuśćmy, że ten sam klient 
kupił dwa samochody. W bazie danych z pojedynczą tabelą, należy wpisać informacje o kliencie 
dwukrotnie. Co gorsze, jeśli klient zmieni miejsce zamieszkania, trzeba zmienić jego adres w 
obydwu miejscach lub dane nie będą spójne wewnętrznie. Poprzez wpisanie danych klienta 
jedynie raz w tabeli klientów i połączenie ich z dowolnym zakupem samochodu, eliminuje się 
nadmiarowość (a czasami konflikt) danych, ale także można zmienić jego dane tylko w jednym 
miejscu. Rysunek 1.1 pokazuje jak mogą wyglądać przykładowe tablice. Warto zauważyć, że 
zostały utworzone odrębne tablice dla klientów i samochodów. W tablicy Cars, pole CustID 
reprezentuje pojedynczy identyfikator klienta – ID. Jak można zauważyć, Ann posiada dwa 
samochody a Bob jeden samochód. Cathy nie ma jeszcze samochodu, ale w tym modelu bazy 
danych jest to możliwe do zapisania. Można także 

śledzić wiele samochodówzapisać informację o 

wielu samochodach

 Ann, mając w bazie tylko jedną kopię jej adresu.  

Rysunek 1.1. 
Grupowanie 
zmiennych w 
relacyjnej bazie 
danych. 

 

Reguły są ustanowione w celu normalizacji danych. Reguły te znane są jako pierwsza, druga i 
trzecia forma normalna: 

•  Pierwsza forma normalna (FNF) mówi, że kolumna nie może zawierać 

wielokrotnych 

wielu 

wartości. Przykładowo, nazwa osoby musi być rozbita na nazwisko oraz pierwsze i 

drugie imię aby spełniać FNF.  

•  Druga forma normalna (SNF) mówi, ze każda kolumna nie należąca do klucza musi być 

oparta na całym kluczu, a nie tylko na części klucza podstawowego. Przykładowo, 

background image

używając identyfikatora ID klienta i numeru części jako klucza, wszystkie kolumny w tej 
tabeli muszą odnosić się łącznie do danego klienta (ID) i numeru części. Czyli, kolumna 

part_discription

 (opis części) nie należy do takiej tabeli. Tabela musi spełniać 

pierwszą formę normalną, żeby przyjąć drugą formę normalną.  

•  Trzecia forma normalna (TNF), podobnie jak SNF, głosi, że wszystkie nie kluczowe 

kolumny nie mogą zależeć od innych nie kluczowych kolumn. Przykładowo, mając tabele 
z adresami, kod pocztowy nie może zależeć od innego nie kluczowego pola takiego jak 
stan, miasto. Powinien zależeć od całego klucza podstawowego. Tabela musi oczywiście 
spełniać drugą formę normalną. TNF jest często naruszana dla zachowania wygody.  

Istnieje także czwarta i piąta forma normalna. Większość projektantów baz danych jest 
usatysfakcjonowana osiągnięciem trzeciej formy normalnej. 

Tworzenie bazy danych i tabel 

Ponieważ tabele są blokami budującymi bazy danych, jest oczywiste, że dobrze zbudowane tabele 
(oraz kolumny w tabelach) są najistotniejsze dla sukcesu bazy danych. Jak przy większości rzeczy, 
planowanie i tworzenie to trudniejsza część; w rzeczywistości tworzenie bazy danych i tabel nie 
jest rzeczą trudną. Tabela składa się z kolumn, które przechowują własności tabeli. Rozdział 4. 
„Tworzenie i administracja baz danych oraz plików danych” omawia tworzenie baz danych 
bardziej szczegółowo; natomiast rozdział 9. omawia szczegółowo tabele.  

SQL Server i model klient-serwer  

Microsoft SQL Server jest 

mechanizmem bazy bazą 

danych typu klient-serwer, dlatego istotne jest 

zrozumienie

 architektury

 tego modelu

 architektury

Aplikację klient-serwer można zdefiniować jako jedną aplikację rozbitą na dwie części: jedna z 
nich jest uruchomiona na serwerze a druga na stacji roboczej. Strona serwera zapewnia aplikacji 
zabezpieczenia, odporność na uszkodzenia, wydajność, współbieżność i wiarygodne kopie 
zapasowe. Strona klienta dostarcza interfejsu użytkownika i może zawierać puste raporty, 
zapytania i formularze. Ideą tego rozwiązania jest korzystanie z zalet obydwóch stron i łączenia 
ich razem. 

SQL Server jest w tym modelu 

częścią (

stroną

)

 serwera; można wybrać różnych klientów do 

łączenia się z serwerem SQL Server, włączając w to narzędzia dostarczane wraz z tym serwerem, 
takie jak SQL Server Query Analyzer. SQL Server dostarcza następujących korzyści dla klientów i 
serwerów:  

Korzyści z klienta 

Korzyści z serwera 

Łatwość użycia Niezawodność 

Wsparcie dla wielu platform sprzętowych Współbieżność 

Wsparcie dla wielu platform programowych 

Skomplikowane blokowanie 

background image

Przyjazny dla użytkownika Odporność na uszkodzenia 

 Sprzęt o wysokiej wydajności 

 Scentralizowana 

kontrola 

obliczeniach architekturze 

typu klient-serwer, kiedy zostaje uruchomione zapytanie, serwer 

przeszukuje bazę danych i wysyła do klienta tylko wiersze pasujące do zapytania. Proces ten nie 
tylko 

oszczędza szerokość pasmazmniejsza ilość przesyłanych danych

 ale może być szybszy, niż 

w przypadku wykonywania zapytania na stacji roboczej, jeżeli serwer jest wystarczająco mocną 
maszyną.