Architektura serwera SQL

Architektura SQL Server upraszcza projektowanie, obsługę i zarządzanie aplikacjami baz danych

ARCHITEKTURA
klient/serwer.
komunikacyjna.
tworzenia aplikacji.
administracyjna.
baz danych.



Architektura Klient/Serwer

SQL Server opiera się na architekturze klient/serwer. SQL Server wykorzystuje architekturę klient/serwer do oddzielenia obciążenia zadaniami realizowanymi na serwerach od zadań realizowanych na komputerach klientów. Architektura ta umożliwia optymalne projektowanie i wdrażanie aplikacji dla szerokiego wachlarza rodowisk.

Serwer
W systemach typu klient/serwer baza danych zlokalizowana jest na centralnym komputerze, zwanym serwerem. Gdy użytkownicy chcą uzyskać dostęp do danych na serwerze SQL, uruchamiają oni na swoich lokalnych komputerach aplikację, która podłącza się poprzez sieć do komputera, na którym pracuje SQL Server. Aplikacja kliencka może być także uruchomiona na tym samym komputerze, na którym znajduje się SQL Server. Serwer SQL Server zarządza bazami danych i rozdziela dostępne zasoby serwera-takie jak pamięć, pasmo sieci i operacje dyskowe-pomiędzy wielu użytkowników.


Klient
Aplikacja kliencka odpowiedzialna jest za logikę użytkową oraz prezentację danych użytkownikowi.


Architektura komunikacyjna

SQL Server wykorzystuje warstwową architekturę komunikacyjną w celu oddzielenia aplikacji klienckich od używanego oprogramowania sieci i protokołów. Taka architektura pozwala na użycie tych samych aplikacji w różnych rodowiskach sieciowych. Składniki architektury komunikacyjnej to:


Aplikacja kliencka
Aplikacja kliencka tworzona jest z wykorzystaniem programowego interfejsu aplikacji (API) baz danych. Aplikacja kliencka nic nie wie o wykorzystywanych protokołach sieciowych, używanych do komunikacji z serwerem SQL Server.


API baz danych
Jest to interfejs używany przez aplikację do wysyłania żądań do SQL Server i przetwarzania wyników zwracanych przez ten serwer. Naturalnie obsługiwane API baz danych to dołączanie i wstawianie obiektów (OLE DB) oraz otwarte łącze baz danych (ODBC); interfejsy obiektów to ActiveX Data Objects (ADO) oraz Remote Data Objects (RDO).


Biblioteka sieciowa
Jest to komunikacyjny składnik oprogramowania, który "pakuje" żądania API baz danych oraz odpowiedzi w celu transmisji okrelonym, wykorzystywanym aktualnie protokołem sieciowym. Biblioteka sieciowa, nazywana także Net-Library, musi być zainstalowana zarówno na komputerze klienta, jak i na serwerze. Klient i serwer może wykorzystywać równolegle więcej niż jedną bibliotekę sieciową, ale aby komunikacja powiodła się, oba komputery muszą używać wspólnej biblioteki. Do obsługiwanych protokołów sieciowych należą Transmission Control Protocol/Internet Protocol (TCP/IP), potoki nazwane, IPX/SPX firmy Novell, Banyan VINES/IP oraz AppleTalk ADSP.


ODS
Open Data Services (ODS) to komponent SQL Server, który obsługuje połączenia sieciowe, przekazuje żądania klientów do serwera SQL Server w celu przetworzenia oraz zwraca wszelkie wyniki do aplikacji klienta.


Architektura tworzenia aplikacji

Użytkownik uzyskuje dostęp do serwera SQL Server poprzez aplikację, która została napisana w celu pobierania i modyfikacji danych serwera SQL. Tworzone aplikacje natomiast uzyskują dostęp do serwera SQL poprzez API baz danych lub interfejs obiektów danych. SQL Server obsługuje typowo wykorzystywane interfejsy prezentujące dane. Obsługuje on odpowiadające mu interfejsy API, a także łatwe do użycia interfejsy obiektów.

Ogólnie, interfejsy obiektów danych są łatwiejsze w użyciu niż API baz danych i zwykle w firmach są wybierane przez projektantów. Częć komercyjnych projektantów wykorzystuje API baz danych, gdyż daje to lepszą kontrolę nad zachowaniem się i wydajnocią aplikacji .

SQL Server standardowo obsługuje dwie główne klasy API baz danych, które z kolei narzucają, jak interfejs obiektów danych może zostać użyty:


OLE DB
SQL Server zawiera własną bibliotekę usługową OLE DB. Obsługuje ona aplikacje napisane z użyciem OLE DB lub interfejsu obiektów danych, który wykorzystuje OLE DB, takim jak ADO. OLE DB umożliwia dostęp do danych serwera SQL, innych relacyjnych baz danych i innych ródeł danych.

ODBC
SQL Server zawiera własny sterownik ODBC. Sterownik ten obsługuje aplikacje lub składniki napisane z użyciem ODBC lub interfejsy obiektów danych, które wykorzystują ODBC, takie jak RDO. ODBC umożliwia dostęp do danych serwera SQL i innych relacyjnych baz danych, ale ogólnie nie może być użyty w celu uzyskania dostępu do innych ródeł danych.


SQL Server obsługuje także dwa odziedziczone interfejsy API baz danych:
SQL Server DB-Library oraz Embedded SQL.



Architektura administracyjna


SQL Server dysponuje otwartą architekturą administracyjną oraz graficznymi narzędziami do zarządzania, automatyzującymi zadania administratorskie. Dwa elementy serwera ułatwiają administrację i dostarczają dodatkowych funkcji.


SQL-DMO

Rozproszone obiekty zarządzania SQL Server (SQL Distributed Management Objects) to zestaw obiektów administratorskich, opartych o model COM. Mechanizm SQL-DMO ukrywa szczegóły instrukcji języka Transact -SQL i nadaje się do pisania skryptów administratorskich. Mechanizm SQL -DMO wykorzystywany jest przez graficzne narzędzia administratorskie.


Agent SQL Server

Agent SQL Server działa razem z serwerem, realizując obsługę zdarzeń, alarmy i powiadamianie, uruchamianie zadań i replikację.


Obsługa zdarzeń

Zdarzenia dostarczają informacji na temat stanu procesów, na przykład w sytuacji, gdy pojawia się błąd. Agent serwera SQL Server ledzi zdarzenia zapisywane w Dzienniku zdarzeń systemu Windows NT.


Alarmy i powiadamianie

Gdy zajdzie odpowiednie zdarzenie Agent SQL Server może powiadomić o tym operatora przez pocztę elektroniczną lub pager. Na przykład, można zdefiniować alert, aktywujący się przy przepełnieniu bazy danych lub rejestru transakcji, albo gdy nie uda się wykonanie kopii zapasowej.


Uruchamianie zadań

Agent SQL Server zawiera mechanizm pozwalający na tworzenie zadań i okrelenie terminarza ich automatycznego wykonania. Zadania przeznaczone do automatycznej realizacji mogą być prostymi, pojedynczymi poleceniami lub złożonymi, wieloetapowymi procesami.


Zarządzanie replikacją

Replikacja jest procesem kopiowania danych lub transakcji z jednego serwera SQL na drugi. Agent SQL Server jest odpowiedzialny za synchronizację danych między serwerami, ledzenie zmian danych oraz replikowanie tych zmian do innych serwerów.



Architektura baz danych

Każdy SQL Server ma dwa typy baz danych: systemowe i użytkownika (jedną bąd więcej). Oba typy baz przechowują dane. Bazy systemowe przechowują informacje na temat serwera jako całoci. Serwer wykorzystuje je do pracy i zarządzania systemem. W efekcie serwer używa ich do zarządzania samym sobą. Bazy użytkownika to bazy zrobione przez użytkownika.


Systemowe bazy danych

W trakcie instalacji serwera SQL Server program Setup tworzy cztery bazy systemowe i dwie przykładowe bazy użytkownika. Opisuje je wszystkie poniższa tabela.


Baza danych Opis:
master Kontroluje bazy danych użytkownika i pracę całego serwera, obsługując takie informacje jak konta użytkowników, konfigurowalne zmienne rodowiskowe i systemowe komunikaty o błędach.

  • model - Dostarcza szablonu lub wzorca nowych baz danych użytkowników.
  • msdb - Obsługuje Agenta SQL Server i dostarcza miejsca do składowania informacji o zaplanowanych zadaniach i historii ich realizacji.
  • tempdb - Dostarcza przestrzeni dla tabel tymczasowych i innych tymczasowych potrzeb składowania danych.
  • northwind - Przykładowa baza użytkownika, będąca przykładem edukacyjnym.
  • pubs - Kolejna baza, będąca przykładem edukacyjnym -podstawa większoci przykładów w dokumentacji serwera SQL Server.


Typowa realizacja bazy danych może zawierać:

  • Jedną bazę użytkownika, zawierającą wszystkie dane organizacji.
  • Oddzielną bazę danych dla każdej grupy w organizacji.
  • Jedną bąd więcej baz danych, używanych przez jedną aplikację.


Gdy SQL Server startuje, to otwiera wszystkie zdefiniowane na nim bazy danych, dzięki czemu są one dostępne dla wszystkich użytkowników dołączonych do serwera (zgodnie z nadanymi uprawnieniami). Po dołączeniu się do SQL Server, Twoje połączenie związane jest z okreloną bazą danych na serwerze. Baza ta nazywana jest bieżącą bazą danych. Zwykle dołączany jeste do bazy zdefiniowanej przez administratora systemu jako domylna, jednak poprzez opcje połączenia możliwy jest wybór innej bazy.


Tabele systemowe

Tabele systemowe przechowują informacje na temat bazy danych (katalog bazy danych-tabele znajdujące się w każdej bazie) lub na temat systemu (katalog systemu-tabele znajdujące się tylko w bazie master). Baza master zawiera wszystkie tabele systemowe; pozostałe bazy danych zawierają podzbiór tabel systemowych, w skład którego wchodzą informacje specyficzne dla każdej z tych baz. Nazwy wszystkich tabel systemowych zaczynają się o prefiksu sys.


Dostęp do tabel systemowych

SQL Server dostarcza dwóch podstawowych metod dostępu do tabel systemowych: systemowe procedury składowane oraz funkcje systemowe.


Wykorzystanie systemowych procedur składowanych

Dostęp do tabel systemowych uzyskuje się w taki sam sposób jak do wszystkich innych tabel w bazie, ale nie należy ich pod żadnym pozorem modyfikować. Zmiany w tabelach systemowych mogą doprowadzić do tego, że SQL Server nie będzie w stanie ich poprawnie odtworzyć w przypadku awarii sytemu. Jako ogólną zasadę należy przyjąć, że bazy systemowe są przeznaczone tylko do odczytu.

Aby przejrzeć te tabele oraz uzyskać informacje na temat stanu tabel i serwera SQL, konieczne jest użycie instrukcji języka Transact-SQL. Aby ułatwić pobieranie informacji na temat stanu serwera i obiektów baz danych z serwerem SQL dostarczany jest zbiór gotowych kwerend SQL, nazywanych systemowymi procedurami składowanymi. Nazwy większoci tych procedur rozpoczynają się od prefiksu sp_.


Wykorzystanie funkcji systemowych

Funkcje systemowe dostarczają uproszczonej metody dostępu do tabel systemowych z poziomu instrukcji SQL.

na górę