Ćwiczenie 1



Pobieranie 154,89 Kb.
Strona1/4
Data22.12.2017
Rozmiar154,89 Kb.
  1   2   3   4

Ćwiczenie 1

Tworzenie, modyfikacja i usuwanie bazy danych w MS SQL Server.




1.Wprowadzenie teoretyczne. 2

2. Formaty instrukcji tworzenia, modyfikacji i usuwania bazy danych 5

2.1. Tworzenie bazy danych. 5

2.2.Zbieranie informacji o bazie danych. 6

2.3. Ustawianie opcji bazy danych. 7

2.4. Modyfikacja bazy danych. 8

2.5. Zmiana nazwy bazy danych. 10

2.6 Grupy plików bazy danych 10

2.7. Usuwanie bazy danych 12

4. Treść sprawozdania. 14

5. Przykładowe pytania kontrolne. 14




1.Wprowadzenie teoretyczne.


Każda baza danych zgodnie ze standardem ANSI musi zawierać trzy poziomy: zewnętrzny, pojęciowy oraz fizyczny. Użytkownik może w ogóle nie wiedzieć w jaki sposób są zrealizowane go dani na poziomie fizycznym. Aplikacja użytkownika operuje tylko danymi w postaci tabel oraz ich rekordów na poziomach zewnętrznym lub pojęciowym. Natomiast administrator bazy danych musi wiedzieć szczegóły fizycznej realizacji baz danych w celu optymalizacji trybów dostępu do danych oraz dla wyznaczenia reguł bezpieczeństwa.

Baza danych MSSQL Server przechowuje się różne obiekty bazy danych. Składa się ona z przynajmniej jednego pliku, nazywanego plikiem danych, w którym są taki obiekty jak tabele oraz indeksy. W jej skład wchodzi też plik dziennika transakcji, w którym przechowywane są informacje o zmianach wprowadzanych do danych. Każdy plik danych i plik dziennika transakcji może należeć tylko do jednej bazy danych. Każda baza danych może zawierać wiele plików danych oraz transakcji. W tym przypadku te pliki mogą być skojarzone z wyznaczonymi grupami plików. Kiedy baza danych zawiera grupy plików, każdy plik danych może należeć tylko do jednej z nich. Informacja o stworzonych bazach jest w tabeli sysdatabases bazy danych Master MSSQL Server .

Każda kopia MSSQL Server po instalacji zawiera cztery systemowe bazy danych (master, msdb, tempdb, model) oraz dwie bazy użytkownika (pubs i Northwind) - dla eksperymentów. Każdy użytkownik przy połączeniu z serwerem może działać tylko w kontekście z wyznaczoną bazą danych. Taka baza danych nazywa się bieżącą bazą danych. Po domyśleniu bieżącą bazą danych jest baza Master. Użytkownik może zmienić bieżącą bazę danych przez polecenie Transact-SQL: USE .

Pliki danych MSSQL Server składają się ze stron, czyli 8-kb obszarów przestrzeni dyskowej. Strona to jest najmniejsza porcja danych, jaką MSSQL Server może zapisać i odczytać z dysku. Każda strona ma swego właściciela: tabelą, indeks itp. Strona może zawierać całą tabelę bazy danych lub oddzielnie wierszy jednej tabeli. Istnieją następne typy stron:



  • Data – strony tego typu zawierają dane tabel oprócz danych typu text, ntext oraz image;

  • Indeks- strony tego typu zawierają informację pro indeksy tabel;

  • Text/Image - strony tego typu zawierają dane typu text, ntext oraz image;

  • Global Allocation Map (GAM) - strony tego typu przechowują informację pro ekstenty;

  • Page Free Space (PFS) - strony tego typu zawierają dane o wolnych przestrzeniach na stronach bazy danych. Każdy bajt PFS odpowiada oddzielnej stronie bazy danych i wyznacza procent uzupełnienia tej strony danymi;

  • Index Allocation Map (IAM) - strony tego typu przechowują informację pro ekstenty, które są wykorzystane w tabelach i indeksach;

  • File Header Page (FHP) – strony tego typu są nagłówkowymi w pliku bazy danych.

Aby zmniejszyć liczbę wykonywanych operacji wejścia-wyjścia, MSSQL Server rezerwuje dane w większych niż strony jednostkach danych – ekstentach. Ekstent składa się z ośmiu następujących po siebie stron (64 kb). Extent może zawierać trzy typy stron: Data, Index oraz Text/Image. Istnieją dwa rodzaje ekstentów : mieszane (Mixed) oraz jednorodne (Uniform). Ekstenty mieszane mogą mieć wiele właścicieli, to znaczy różne strony ekstentu zawierają dane od różnych tabel lub indeksów. To pozwoli zaoszczędzić miejsce na dysku, bo przydzielenie całego ekstentu jednej tabeli składającej z zaledwie paru wierszy niema sensu. Z początku obiektu jest przeznaczony ekstent mieszający. Gdy do przechowywania obiektu są przydzielone już więcej niż 8 stron w różnych ekstentach mieszających, automatyczne stworzony jest ekstent typu Uniform który jednoczy strony z ekstentów typu Mixed. Dalsze miejsce rezerwowane jest już w postaci ekstentów jednorodnych. Przykład ekstentu Mixed jest pokazany na rys. 1

Przykład ekstentu Uniform jest pokazany na rys. 2.




Przy pierwszym tworzeniu obiektu użytkownika (tabeli lub indeksu) nadawana jest mu mapa alokacji indeksu IAM (w postaci strony typu IAM) oraz przynajmniej jedna strona danych. Zadaniem IAM jest śledzenie wykorzystania przestrzeni dyskowej przez dany obiekt. Oddzielnie ekstenty, które są skojarzone z tym samym obiektem mogą być w różnych plikach bazy danych. Schemat wykorzystania stron IAM jest pokazany na rys. 3. Na tym rysunku obiektom Tabela1 oraz Tabela2 są przeznaczone strony IAM1 oraz IAM2.

Wszystkie dane bazy danych są w plikach. Każdy plik ma identyczną strukturę. W pierwszym ekstencie każdego pliku bazy danych (rys.4) rezerwowane są strony specjalnego przeznaczenia.





Pierwsza strona (strona 0) każdego pliku to jest strona nagłówkowa (FHP – File Header Page). Zawiera ona informację o rozmiarze danego pliku, o tym , do której grupy plików i bazy danych ten plik należy, jaki jest jego minimalny rozmiar i o ile może on być rozszerzany itp.

Druga strona(strona 1) to jest strona wolnego miejsca (PFS – Page Free Space), zawiera informacje na temat liczby wolnych stron w danym pliku. Na stronie PFS znajdują się informacje o tym, czy strona została przypisana do obiektu, czy wchodzi w skład ekstentu oraz czy zostało jeszcze wolnego miejsca na tej stronie. Na jednej stronie PFS mogą znaleźć się informacje na temat 8000 następujących po sobie stron, przy czym w miarę potrzeb rezerwowane są dodatkowe strony wolnego miejsca.

Trzecia strona (strona 2) to jest globalna mapa alokacji (GAM – Global Allocation Map). Zawiera ona informacje na temat zaalokowanych ekstentów. Każda mapa GAM obsługuje do 63904 ekstentów, a w miarę potrzeb rezerwowane są kolejne mapy. Każdemu ekstentowi odpowiada jeden bit w mapie GAM. Jeżeli ma on wartość zero, oznacza to, że dany ekstent przechowuje dane o jakimś obiekcie. Jeżeli bit ma wartość 1, wówczas ekstent jest wolny.

Czwarta strona (strona 3) to dodatkowa globalna mapa alokacji (SGAM – Secondary Global Allocation Map), także obsługuje do 63904 ekstentów oraz w razie potrzeby rezerwowane są kolejne mapy. Każdy bit odpowiada jednemu ekstentowy. Kiedy bit ma wartość 1, to odpowiedni ekstent jest ekstentem typu Mixed oraz ma minimum jedną stronę wolną. Kiedy bit ma wartość 0, to odpowiedni extent jest ekstentem typu Uniform, lub wszystkie strony ekstentu Mixed są zajęte.

Pola bitowe GAM oraz SGAM są wykorzystywane wspólnie oraz pozwalają w sposób skuteczny odszukiwać wolną stronę w ekstentu Mixed. W tab.1 zostali pokazane wartości pól GAM i SGAM które są wykorzystane dla algorytmu poszukiwania ekstentów i wolnych stron.

Tab. 1


Wykorzystanie ekstentu

Wartość bitu w pole GAM

Wartość bitu w pole SGAM

Wolny ekstent

1

0

Ekstent typu Uniform lub nie mający wolnych stron ekstent typu Mixed

0

0

Exent typu Mixed mający wolne strony

0

1

Pola bitowe GAM oraz SGAM zawierają informację czy jest wykorzystany lub nie konkretny extent. Dla przechowywania informacji pro wolne miejsce pamięci na stronach typu Data, Index oraz Text/Image są przeznaczone strony typu PFS. Strony PFS są wykorzystywane dla poszukiwania stron mających niezbędną ilość wolnego miejsca. Każda strona zawiera informację pro wolną przestrzeń dla 8000 stron. Każdy bajt odpowiada oddzielnej stronie oraz zawiera stan strony w procentach uzupełnienia je danymi.

Baza danych zawiera pliki następnych typów:


  • P:rimary – plik podstawowy

  • Secondary – plik wtórny (dodatkowy)

  • Transaction Log – dziennok transakcji.

W skład każdej bazy danych wchodzi jeden plik podstawowy. Jest to pierwszy plik w poleceniu CREATE DATABASE Transact-SQL. Zawiera ten plik wszystkie obiekty systemowe skopiowane z bazy danych model. Pliki podstawowe mają rozszerzenie .mdf. W tym pliku są obiekty użytkowników oraz tabeli systemowe. Plik podstawowy może być jedynym plikiem bazy danych, ale to nie jest koniecznie. Można tworzyć dodatkowe pliki danych typu Secondary, które także mogą przechowywać obiekty użytkowników. Te pliki mają rozszerzenie .ndf. Pliki Secondary nie zawierają informację systemową. Baza danych może w ogóle nie mieć plików Secondary lub mieć ich wiele. Często każdy plik Secondary jest skojarzony z oddzielnym napędem dyskowym dla rozdzielenia danych na różne urządzenia.

W każdej bazie danych musi być minimum jeden plik dziennika transakcji. Ma on rozszerzenie .ldf. Każdy plik w bazie danych ma dwa imię: imię logiczne pliku (Logical File Name) oraz imię pliku w systemu operacyjnym (OS File Name).



Pliki można zorganizować w pewne logiczne struktury, zwane grupami plików. Istnieją następne grupy plików:

  • Primary File Group – podstawowa grupa plików

  • User-defined File Group – Grupa plików użytkownika

  • Default File Group – grupa plików po domyśleniu.

Podstawowe pliki danych zawsze należą do grupy Primary. W skład pozostałych grup plików wchodzi jeden lub więcej plików dodatkowych. Można np. stworzyć grupę plików użytkownika „Dane” która będzie zawierała pliki z tabelami użytkowników oraz grupę „Indeks”, która będzie zawierała indeksy.


  1   2   3   4


©operacji.org 2017
wyślij wiadomość

    Strona główna