Specyfika baz danych


Tworząc bazę przygotowujesz strukturę do składowania danych. Struktura ta zawiera przynajmniej jeden plik danych, zawierający obiekty bazy i jeden plik rejestru transakcji. Przed utworzeniem bazy warto zapoznać się z architekturą magazynu danych, a także z funkcją rejestru transakcji.

Magazyn danych

Przy tworzeniu bazy istotne jest zrozumienie sposobu składowania danych, dzięki czemu możliwe jest okrelenie iloci przestrzeni dyskowej, którą trzeba przydzielić bazie.



Należy zwrócić uwagę na następujące kwestie dotyczące składowania danych:


  • Wszystkie bazy posiadają podstawowy plik danych (*.mdf) oraz jeden lub więcej plików rejestru transakcji (*.ldf). Baza może mieć także dodatkowe pliki danych (*.ndf). Pliki te posiadają nazwę logiczną, używaną w instrukcjach języka Transact-SQL, oraz nazwę pliku systemu operacyjnego.
  • Gdy tworzysz bazę danych, to w bazie tej umieszczana jest kopia bazy model, zawierającej tabele systemowe. Minimalny rozmiar bazy musi być równy lub większy od rozmiaru bazy model.
  • Dane składowane są na stronach. Strona taka ma rozmiar 8 KB. Oznacza to, że baza danych ma w każdym megabajcie 128 stron.
  • Każda strona zaczyna się od 96 bajtów nagłówka z informacjami systemowymi, po którym następują wiersze danych. Wierszy nie można dzielić między strony. Oznacza to, że w wierszu może być maksymalnie 8060 bajtów.
  • Tabele i indeksy przechowuje się w extent'ach. Extent to 8 kolejnych stron, czyli 64 KB. Oznacza to, że baza danych ma w każdym megabajcie 16 extent'ów. Małe tabele używają extent'ów do spółki z innymi obiektami.
  • Pliki rejestru transakcji przechowują wszystkie informacje, niezbędne do regeneracji bazy. Domylnie rozmiar rejestru transakcji stanowi 25% rozmiaru plików danych. Aby uniknąć rywalizacji o przestrzeń dyskową, rejestr transakcji należy umiecić na innym dysku niż dane.

Rejestr transakcji


Rejestr transakcji zapisuje modyfikacje danych-instrukcje INSERT, UPDATE oraz DELETE-tak jak są one realizowane:


  • Modyfikacja danych zostaje zapisana.
  • W trakcie realizacji modyfikacji, modyfikowane strony danych odczytywane są z dysku do bufora danych, uzupełniając go o strony, które nie pojawiły się w buforze w efekcie wczeniejszych kwerend.
  • Każda instrukcja modyfikacji danych zapisywana jest w trakcie wykonania w rejestrze. Zmiany umieszczane są w rejestrze i zapisywane na dysku przed zaaplikowaniem ich bazie danych. Rejestrowanie to nazywa się rejestracją write-ahead.
  • Strony danych pozostają w pamięci, a strony rejestru zapisywane są na dysk do pliku rejestru transakcji. Proces checkpoint zapisuje wszystkie zakończone transakcje do bazy danych na dysku.


W razie awarii systemu, proces automatycznej regeneracji serwera Microsoft SQL Server 7.0 wykorzystuje rejestr transakcji do ponowienia zakończonych transakcji oraz anulowania transakcji niezakończonych. Znaczniki transakcji wykorzystywane są w czasie automatycznej regeneracji do okrelenia punktu startowego i końcowego transakcji. Transakcja uznawana jest za kompletną, jeli znacznik BEGIN TRANSACTION posiada odpowiadający mu znacznik COMMIT TRANSACTION.

na górę