Ćwiczenia > Budowa bazy danych w MS SQL Server 2000 > Klucze główne

3.6 Klucze główne



Klucz główny to atrybut lub zbiór atrybutów, który jednoznacznie identyfikuje każdy wiersz w tabeli (to znaczy, że w każdym wierszu kolumny należące do klucza głównego zawierają unikalne niepuste wartości).

Krok 1 - Jak stworzyć klucz główny za pomocą skryptu T-SQL

1. Uruchom program Query Analyzer.
2. Zaloguj się używając uwierzytelnienia systemu Windows.
3. W menu głównym programu wybierz File - Open.
4. W oknie Open Query File wybierz ponownie plik demo_3_4_1.sql. Nie uruchamiaj skryptu, a jedynie obejrzyj jego kod.

W każdej tabeli tworzonej przy pomocy tego skryptu określamy klucz główny - czyli wybieramy jedną lub więcej (patrz tabela Autorstwo) kolumn tabeli do jednoznacznej identyfikacji każdego wiersza. Zwróć uwagę na to, że utworzenie klucza głównego jest równoznaczne z utworzeniem warunku (CONSTRAINT). Poniżej przedstawiamy możliwośći określenia kolumny ID_ksiazki jako klucz główny tabeli Ksiazki przy pomocy kodu T-SQL (trzy możliwości - wyróżniliśmy czerwonym kolorem kod odpowiedzialny za deklarację klucza głównego).


-- możliwość pierwsza - klucz deklarujemy w definicji kolumny


(...)
ID_ksiazki 	int IDENTITY(1,1)
		CONSTRAINT PK_ksiazki
		PRIMARY KEY CLUSTERED,
(...)

-- możliwość druga - klucz deklarujemy w definicji kolumny,
-- ale bez jawnego tworzenia warunku

(...)
ID_ksiazki int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
(...)

-- możliwość trzecia - klucz deklarujemy poza definicją kolumny,
-- ale wewnątrz definicji tabeli

(...)
ID_ksiazki int IDENTITY(1,1),
(...)
CONSTRAINT PK_ksiazki PRIMARY KEY CLUSTERED (ID_ksiazki)


W powyższych fragmentach kodu słowo CLUSTERED jest opcjonalne. Jego znaczenie poznasz w dalszej części podręcznika przy okazji omawiania indeksów.


Uczynienie pojedynczej kolumny kluczem głównym tabeli oznacza, że nie musisz w definicji tej kolumny umieszczać słów UNIQUE (wymuszanie unikalności wartości w kolumnie) oraz NOT NULL (nie dopuszczanie wartości pustych w kolumnie). Serwer wymusza unikalność klucza głównego i nie dopuszcza do zapisywania w kolumnie będącej kluczem wartości pustych.

Inaczej jest, gdy określasz klucz złożony z wielu kolumn. Wówczas istnienie złożonego klucza głównego wymusza unikalność i "niepustość" kombinacji kolumn, a nie każdej kolumny klucza z osobna.


Krok 2 - Jak stworzyć klucz główny przy pomocy programu Enterprise Manager

1. Uruchom program Enterprise Manager.
2. Rozwijaj drzewo po lewej stronie okna programu i wejdź do folderu Databases.
3. W folderze bazy Biblioteka wybierz pozycję Tables.

4. W prawej części okna programu kliknij prawym przyciskiem myszy na tabeli Ksiazki i z menu kontekstowego wybierz opcję Design Table.
5. Zastanów się, w jaki sposób w oknie Design Table można określić klucz główny tabeli.

Z pewnością zauważyłeś w górnej części okna Design Table ikonę klucza . Zaznaczając wybrane kolumny, czyli klikając na szarym prostokącie obok wybranej kolumny, a następnie klikając na ikonie klucza, określasz daną kolumnę kluczem głównym tabeli. Jeśli chcesz wybrać więcej niż jedną kolumnę naraz, zaznaczaj wybrane kolumny trzymając klawisz Ctrl.

6. Nie klikaj na ikonie klucza, ponieważ już mamy utworzone związki i likwidując lub zmieniając klucz główny, musiałbyś także usunąć związek z tabelą Autorstwo.
7. Zamknij okno Design Table.

Z pewnością już to zrobiłeś, ale jeśli nie, ustaw klucze główne w tabelach bazy danych Prace dyplomowe. Definicje kluczy koniecznie zawrzyj w skrypcie T-SQL tworzącym tabele bazy danych.


Przejdź dalej



Ćwiczenia > Budowa bazy danych w MS SQL Server 2000 > Klucze główne