Microsoft SQLServer
| Microsoft SQLServer | |||
|---|---|---|---|
| Część systemu zarządzania relacyjnymi bazami danych | |||
|
| |||
| Informacje ogólne | |||
| typ programu | relacyjna baza danych systemu zarządzania | ||
| deweloper | Microsoft | ||
| Pierwsze wydanie | 24 kwietnia 1989 | ||
| Licencja | Umowa licencyjna Microsoft | ||
| Specyfikacja | |||
| Zaplanowano w | C , C++ | ||
| czytelne pliki | |||
| |||
| edytowalne pliki | |||
| |||
| Spinki do mankietów | |||
Microsoft SQL Server to system zarządzania relacyjnymi bazami danych opracowany przez firmę Microsoft .
Użyty język programistyczny (za pomocą wiersza poleceń lub interfejsu graficznego Management Studio) to Transact-SQL (TSQL), implementacja standardu ANSI języka SQL, używana do manipulowania i pobierania danych ( DML ), tworzenia tabel i definiowania relacje między nimi ( DDL ).
Do najważniejszych konkurentów SQL Server należą: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server był tradycyjnie dostępny tylko dla systemów operacyjnych Microsoft Windows , ale od 2016 roku jest dostępny również dla systemów GNU/Linux , [ 2 ] [ 3 ] , a od 2017 roku również dla platformy Docker . [ 4 ]
Można go skonfigurować tak, aby korzystał z kilku instancji na tym samym serwerze fizycznym, pierwsza instalacja zwykle nosi nazwę serwera, a kolejne nazwy specyficzne (z łącznikiem między nazwą serwera a nazwą instalacji).
Wersje
| Wersja | Rok | nazwa wersji | nazwa klucza |
|---|---|---|---|
| 1.0 ( OS/2 ) |
1989 | Serwer SQL 1-0 | SQL |
| 4.21 ( WinNT ) |
1993 | Serwer SQL 4.21 | DALSZY CIĄG |
| 6,0 | 1995 | Serwer SQL 6.0 | SQL95 |
| 6,5 | tysiąc dziewięćset dziewięćdziesiąty szósty | Serwer SQL 6.5 | Hydra |
| 7,0 | 1998 | Serwer SQL 7.0 [ 6 ] | sfinks |
| - | 1999 | SQL Server 7.0 Narzędzia OLAP |
Danie |
| 8,0 | 2000 | Serwer SQL 2000 [ 7 ] | Shiloh |
| 8,0 | 2003 | 64-bitowa edycja programu SQL Server 2000 |
Wolność |
| 9,0 | 2005 | Serwer SQL 2005 [ 8 ] | Jukon |
| 10,0 | 2008 | Serwer SQL 2008 [ 9 ] | katmai |
| 10.25 | 2010 | Baza danych SQL Azure | CloudDatabase |
| 10.50 | 2010 | SQL Server 2008 R2 [ 10 ] | Kilimandżaro |
| 11,0 | 2012 | Serwer SQL 2012 [ 11 ] | Denali |
| 12,0 | 2015 | Serwer SQL 2014 [ 12 ] | SQL14 (dawniej Hekaton) |
| 13,0 | 2016 | Serwer SQL 2016 | SQL16 |
| 14,0 | 2017 | Serwer SQL 2017 | vNastępny 2017 |
| 15,0 | 2019 | Serwer SQL 2019 | Daphne |
Oryginalny kod źródłowy SQL Server, który był używany w wersjach wcześniejszych niż 7.0, został zakupiony od firmy Sybase , ale został zaktualizowany w wersjach 7.0 i 2000 i przepisany w wersji 2005. Zwykle co 2-3 lata wydawana jest nowa wersja a pomiędzy tymi wydaniami proponowane są dodatki Service Pack z ulepszeniami i poprawkami błędów oraz poprawki dla pilnych problemów w systemie bezpieczeństwa lub krytycznych błędów.
Dostępność
Microsoft SQL Server jest sprzedawany jako licencja. Jednak użytkownicy, którzy chcą korzystać z programu SQL Server, skupiając się wyłącznie na programie, na przykład żądając i przechowując informacje, potrzebują licencji CAL.
Modele licencji
Microsoft SQL Server korzysta z różnych modeli licencjonowania, są to licencje Server + CAL oraz licencje Core.
Model serwera + CAL
Ten model licencji jest tańszą opcją, jest kupowany wraz z licencją i trzeba dokupić dodatkowe licencje CAL dla użytkowników lub urządzeń.
Licencje na rdzeń
Wybierając licencje na rdzeń, licencjonujesz wiele rdzeni fizycznego procesora serwera. W przypadku Microsoft SQL Server 2019 co najmniej 4 rdzenie muszą być zawsze licencjonowane. Ten model licencji jest często wybierany przez duże firmy.
Licencje CAL nie są do tego wymagane.
Licencja dostępu klienta (CAL)
Licencja dostępu klienta ma na celu zapewnienie praw użytkowania, aby umożliwić użytkownikom lub urządzeniom dostęp do oprogramowania serwera. Oznacza to, że każdy komputer lub użytkownik, który potrzebuje dostępu do oprogramowania serwera, potrzebuje licencji CAL.
Licencje CAL użytkownika
Licencja CAL użytkownika daje dostęp do wyżej wymienionej funkcji użytkownikowi w sieci. Oznacza to, że ten użytkownik może również uzyskać dostęp do sieci serwera za pośrednictwem innych urządzeń.
Licencje CAL na urządzenie
Licencja Device CAL daje dostęp do urządzenia. Oznacza to, że wszyscy użytkownicy tego urządzenia mogą się zalogować, aby uzyskać dostęp do serwera. Często jest to korzystne tylko wtedy, gdy w organizacji jest więcej użytkowników niż urządzeń, [ 13 ]
Funkcje
- Obsługa transakcji .
- Obsługuje procedury składowane .
- Zawiera również graficzne środowisko administracyjne, które umożliwia graficzną obsługę poleceń DDL i DML .
- Umożliwia pracę w trybie klient-serwer , w którym informacje i dane są hostowane na serwerze, a terminale sieciowe lub klienci uzyskują dostęp tylko do informacji.
- Umożliwia także zarządzanie informacjami z innych serwerów danych .
System ten zawiera zredukowaną wersję, zwaną MSDE z tym samym silnikiem bazy danych , ale zorientowaną na mniejsze projekty, która w wersjach 2005 i 2008 staje się SQL Express Edition , która jest edycją dystrybuowaną bezpłatnie .
Powszechne jest tworzenie kompletnych projektów przy użyciu Microsoft SQL Server i Microsoft Access poprzez tzw. ADP ( ang. Access Data Project ). W ten sposób baza danych ( Microsoft SQL Server ) zostaje uzupełniona, wraz ze środowiskiem programistycznym ( VBA Access), poprzez implementację aplikacji dwuwarstwowych poprzez wykorzystanie formularzy Windows .
SQLCMD , osql lub PowerShell są używane do obsługi SQL za pomocą wierszy poleceń .
Do tworzenia bardziej złożonych aplikacji (trzy lub więcej warstw) Microsoft SQL Server zawiera interfejsy dostępu dla różnych platform programistycznych, w tym .NET , ale serwer jest dostępny tylko dla systemów operacyjnych .
Typ NUMERIC został rozszerzony do użycia jako identyfikator kolumny od wersji 2008 R2.
Programowanie
T-SQL
T-SQL (Transact-SQL) jest głównym środkiem interakcji z Serwerem, który umożliwia wykonywanie kluczowych operacji w SQL Server, w tym tworzenie i modyfikowanie schematów baz danych, wprowadzanie i modyfikowanie danych w bazie danych, a także administrowanie serwer jako taki. Odbywa się to poprzez wysyłanie instrukcji i deklaracji T-SQL, które są przetwarzane przez serwer, a wyniki (lub błędy) zwracane są do aplikacji klienckiej.
natywny klient SQL
SQL Native Client to biblioteka dostępu do danych dla klientów Microsoft SQL Server w wersji 2005 i nowszych. Natywnie implementuje obsługę funkcji SQL Server, w tym wykonywanie strumieni danych tabelarycznych, obsługę lustrzanych baz danych SQL Server, pełną obsługę wszystkich typów danych obsługiwanych przez SQL Server, asynchroniczne zestawy operacji, powiadomienia o zapytaniach, obsługę szyfrowania, a także otrzymywanie wielu zestawów wyników w jednej sesji bazy danych. SQL Native Client jest używany jako rozszerzenie wtyczek SQL Server dla innych technologii dostępu do danych, w tym ADO lub OLE DB. SQL Native Client może być również używany bezpośrednio, z pominięciem warstw dostępu do danych.
Edycje i usługi
Każda edycja SQL Server ma różne wersje z różnymi cenami (dla każdej wersji), które również zależą od fizycznej konfiguracji serwera. [ 14 ] Poniżej przedstawiono główne wersje:
Przedsiębiorstwo
Zawiera wszystkie funkcje (wyłączone w innych wydaniach) Jest to wersja z największymi uprawnieniami na rynku.
programista
Edycja o takich samych cechach jak Enterprise, do zainstalowania tylko w środowisku programistycznym, a nie produkcyjnym. Jeśli jest opracowany dla edycji Standard, należy wziąć pod uwagę funkcje wyłączone dla tej wersji.
Standardowy
Wersja limitowana w zależności od konfiguracji serwera i jego charakterystyki, przeznaczona dla niższych serwerów.
Na przykład: w wersji 2012, Enterprise Edition obsługuje nieograniczoną liczbę procesorów oraz dodawanie na gorąco pamięci i procesorów bez przerw w działaniu usług lub serwera; podczas gdy edycja Standard jest ograniczona do 16 procesorów i nie obsługuje „gorącego dodawania”.
Ekspres
Darmowa wersja, która umożliwia tworzenie ograniczonych baz danych z podstawowymi funkcjami, w celu obsługi aplikacji, które potrzebują prostego rozwiązania do przechowywania ograniczonej ilości danych lub użytkowników o ograniczonych zasobach i potrzebach.
W wersji 2012 ta edycja może wykorzystywać maksymalnie 1 GB pamięci i przechowywać nie więcej niż 10 GB, działa na serwerach z maksymalną liczbą czterech procesorów. Te ograniczenia zostały utrzymane w wersji 2014 (4 rdzenie, 1 GB pamięci RAM i 10 GB na bazę danych).
SQLAzure
Jest to wersja SQL Server w chmurze, która pozwala płacić co miesiąc za usługę bez konieczności utrzymywania fizycznego serwera (On Premise). Firma płaci tylko za usługę, a usługa jest zarządzana poprzez farmy serwerów w różnych miejscach na świecie.
Dzięki SQL Azure nie ma potrzeby instalowania, utrzymywania ani aktualizowania serwera fizycznego; pomimo tego, że usługa ta jest uzależniona od aspektów związanych z problemami bezpieczeństwa dotyczącymi jej obecności poza firmą i dostępnością łącza internetowego.
Przez pewien czas usługa została rozszerzona o możliwość stworzenia wirtualnego serwera przez sieć i instalacji SQL Server oraz jednej z konkurencyjnych usług oraz zarządzania wirtualnym serwerem tak, jakby był lokalnym serwerem fizycznym (chociaż jest to fizycznie niedostępne). i można odróżnić oryginalną opcję, która nazywa się PAAS ( Platform as a Service : Platform as a Service ) i nową opcję wirtualnych serwerów o nazwie IAAS ( Infrastructure as a Service : Infrastructure as a Service ).
Ta usługa jest świadczona przez Microsoft od 2009 roku i dołącza do podobnych usług firm zewnętrznych .
Interfejs użytkownika
SQL Server udostępnia kilka interfejsów, które zmieniły się na przestrzeni lat, z których najbardziej znane to interfejsy graficzne używane jako standardowe narzędzie programistyczne dla programistów i administratorów .
Interfejs graficzny do 2005 roku zawierał Enterprise Manager z widokiem drzewa różnych obiektów i możliwością zarządzania nimi; oraz analizator zapytań jako interfejs tekstowy do wykonywania poleceń TSQL.
W wersji 2005 oba narzędzia zostały zunifikowane w jedno – SQL Server Management Studio (SSMS), a od 2008 roku możliwość pracy z Visual Studio – standardowy interfejs deweloperski Microsoft (do różnych języków , BI itp.). Innym opcjonalnym interfejsem jest użycie wiersza poleceń , z takimi narzędziami jak SQLCmd, ISQL, OSQL, który umożliwia wykonywanie skryptów i przetwarzanie wsadowe . Od 2008 roku może być rozwijany za pomocą SQLCmd (polecenie SQL) poprzez SSMS bez łączenia się z interfejsem tekstowym Windows. Inną opcją w dziedzinie skryptów jest użycie języka skryptowego Powershell firmy Microsoft .
Oprócz standardowych interfejsów SQL Server, możesz wykonywać polecenia TSQL za pomocą narzędzi połączeniowych, takich jak ODBC i OLE-DB. [ 15 ]
Usługi
W przeciwieństwie do systemów bazodanowych, takich jak Microsoft Access , które są „pasywne” i zawierają plik, z którym trzeba się połączyć, a wykonanie poleceń odbywa się na kliencie (komputerze użytkownika), w SQL Server istnieje szereg usług , oprogramowania które są wykonywane w pamięci serwera przez system, a zatem wykorzystują możliwości serwera, który jest potężniejszy od klientów, zapobiegają przeciążeniu sieci i mogą planować zadania, które są uruchamiane nawet wtedy, gdy klient nie jest połączony .
Główne usługi:
- SQL Server — „silnik” systemu
- SQL Agent - Wykonywanie zadań (Jobs, zaplanowane skrypty) i wysyłanie ostrzeżeń w przypadku dużego i nieregularnego obciążenia systemu
- Uruchamianie demona filtra pełnotekstowego — korzystanie ze specjalnych indeksów „Wyszukiwania pełnotekstowego” do zaawansowanego wyszukiwania tekstu
- Przeglądarka SQL - "odbiornik" dedykowany wysyłanym komendom i przekierowujący je do miejsca przeznaczenia
- Serwer SSIS - Działanie SSIS ( narzędzie ETL )
- SSAS Server - Działanie SSAS ( narzędzie OLAP )
- Serwer SSRS - Działanie SSRS (narzędzia do raportowania)
Podstawowe możliwości i narzędzia
Bazy danych
W każdej instalacji SQL Server dostępne są 4 systemowe bazy danych oraz możliwość tworzenia przez użytkownika nowych baz danych, w których dane są przechowywane w tabelach.
Te bazy danych, tworzone przez użytkowników, zasadniczo zawierają plik danych (z przyrostkiem mdf) z tabelami i różnymi obiektami na poziomie bazy danych; oraz plik dziennika (z przyrostkiem ldf) z transakcjami otwartymi i zamkniętymi, Z zastrzeżeniem wybranego modelu odzyskiwania (wszystkie zmiany bazy danych od czasu ostatniej kopii zapasowej mogą być gromadzone w pliku dziennika). Oprócz głównego (z sufiksem ndf) można utworzyć zestaw plików danych ze względu na wydajność, partycjonowanie obciążenia między dyskami twardymi itp.
Bazy danych systemu:
- master - Wszystkie procedury, funkcje i tabele systemowe używane przez wszystkie bazy danych i instalowane automatycznie oraz te, które zostały utworzone przez administratorów systemu. Ponadto w bazie tej przechowywane są wszystkie definicje dotyczące bezpieczeństwa na poziomie serwera.
- msdb - Przechowywanie zadań agentów, kodów CLR połączonych z systemem, pakietów SSIS i innych.
- model — szablon bazy danych. Każda nowa baza danych jest tworzona jako kopia tej bazy danych, chyba że wyraźnie zdefiniowano coś innego.
- tempdb — tymczasowa baza danych, która jest tworzona od nowa przy każdym ponownym uruchomieniu usługi. Służy do przechowywania tabel tymczasowych utworzonych przez użytkowników lub system (na przykład w złożonych sortowaniach).
Tabele stałe i tymczasowe
Z logicznego punktu widzenia dane przechowywane w bazach danych w tabelach, które za ich pośrednictwem realizuje teorię relacyjnych baz danych. Tabela jest podzielona na wiersze i kolumny (czasami nazywane rekordami i polami). Tabele mogą być stałe lub tymczasowe, natomiast w drugim przypadku fizycznie istnieją w bazie tempdb i są automatycznie usuwane w przypadku zerwania sesji lub połączenia z serwerem, w zależności od typu tabeli tymczasowej.
Z fizycznego punktu widzenia system dzieli pliki bazy danych na 64KB Extents, każdy na osiem 8KB stron. Ogólnie rzecz biorąc, każdy zakres jest przypisany do tabeli lub indeksu , z wyjątkiem małych tabel; a każda strona jest zawsze przypisana do określonej tabeli. System odpowiada za powiększanie plików zgodnie z ustawieniami użytkownika oraz przypisywanie zakresów i stron do tabel.
Tabele mogą być indeksowane. Indeksy są przechowywane obok tabeli (indeks nieklastrowany) lub są samą tabelą (indeks klastrowy). Indeksy pomagają w wyszukiwaniu danych w tabelach (takich jak pliki w bibliotekach), sortowaniu ich i definiowaniu kluczy podstawowych .
Między tabelami można utworzyć relację jeden-do-wielu .
Oprócz tabel użytkowników istnieją tabele przechowujące metadane: dane o samym systemie, różnych obiektach, prawach, statystykach dotyczących wydajności systemu (DMV) itp.
Typy danych
Dla każdej kolumny w tabeli i każdej zmiennej lub parametru zdefiniowany jest typ danych, które mają być w niej przechowywane, między innymi:
- Liczby : liczby całkowite i niecałkowite w różnych rozmiarach i na różnych poziomach dokładności; i opcjonalny automatyczny przyrost.
- Teksty : ciągi o różnej długości i różnych możliwościach obsługi różnych języków.
- Daty : daty na różnych poziomach dokładności, od całych dni do ułamków sekundowych, wspierające daty z początku XX wieku lub kalendarza gregoriańskiego oraz możliwość rozróżniania różnych zastosowań czasu.
- XML : Dane tekstowe (ciągi) reprezentujące standardowe zestawy danych (standard SGML).
- Dane binarne : Dane przechowywane jako dane binarne (bity i bajty), które umożliwiają przechowywanie plików graficznych itp.
- Geografia : Standardowa reprezentacja informacji geograficznych, takich jak stany, obszary geograficzne, miejscowości; i obliczenia jako odległości.
- Geometria : Standardowa reprezentacja punktów, linii, powierzchni w płaszczyźnie; i relacje między nimi.
- Hierarchia : Standardowa reprezentacja informacji hierarchicznych , takich jak zestawienie materiałów, relacje między pracownikami itp.
Widoki
Widoki zazwyczaj reprezentują polecenia wyodrębniania danych, które są przechowywane bez danych (które są przechowywane w tabelach). Ta opcja pozwala nam tworzyć złożone lub standardowe wyciągi, przechowywać je jako widoki i korzystać z widoków bez konieczności ponownego wpisywania poleceń lub zachowywania kodu tam, gdzie się pojawiają. Dodatkowo jest to bardzo ważny sposób nadawania praw do selektywnego odczytu (w przypadku, gdy chcemy umożliwić użytkownikowi częściowe przeglądanie kolumn lub wierszy tabeli).
Widok można uznać za tabelę wirtualną lub przechowywane zapytanie. Dane dostępne przez widok nie są przechowywane w innym obiekcie niż baza danych. W bazie danych jest przechowywana instrukcja SELECT. Wynik instrukcji SELECT tworzy wirtualną tabelę zwracaną przez widok. Użytkownik może korzystać z takiej tabeli wirtualnej, odwołując się do nazwy widoku w instrukcjach języka Transact-SQL, w taki sam sposób, w jaki odwołuje się do tabel. Widoki są używane dla niektórych lub wszystkich z tych funkcji:
• Ograniczenie dostępu użytkownika do określonych wierszy w tabeli. Na przykład umożliwienie pracownikowi wyświetlania tylko wierszy, które zapisują jego pracę w tabeli śledzenia aktywności pracy.
• Ogranicz dostęp użytkowników do określonych kolumn. Na przykład zezwól pracownikom, którzy nie pracują w dziale płac, na wyświetlanie kolumn nazwiska, biura, telefonu i działu w tabeli pracowników, ale nie zezwalaj im na wyświetlanie kolumn z danymi wynagrodzeń lub innymi informacjami osobistymi.
• Połącz kolumny z wielu tabel, aby pojawiły się jako jedna tabela.
• Dodaj informacje zamiast przedstawiać szczegóły. Na przykład prezentując sumę kolumny lub maksymalną lub minimalną wartość kolumny.
Widoki są tworzone przez zdefiniowanie instrukcji SELECT, która pobiera dane prezentowane przez widok. Tabele danych, do których odwołuje się instrukcja SELECT, są nazywane tabelami podstawowymi dla widoku. Widoki we wszystkich wersjach SQL Server można aktualizować (mogą być celem instrukcji UPDATE, DELETE lub INSERT), o ile modyfikacja dotyczy tylko jednej z tabel podstawowych widoku.
Procedury składowane
Procedury to skrypty poleceń TSQL, które mogą być wykonywane z różnymi parametrami. Na przykład procedura, która uzyskuje numer roku jako parametr i aktualizuje tabelę podsumowania sprzedaży o sprzedaż agentów w danym roku na podstawie tabeli rejestracji sprzedaży.
Procedury składowane mogą znacznie ułatwić zarządzanie bazą danych i przeglądanie informacji o bazie danych i jej użytkownikach. Procedury składowane to prekompilowana kolekcja instrukcji SQL i opcjonalnych instrukcji kontroli przepływu przechowywanych pod jedną nazwą i przetwarzanych jako jednostka. Procedury składowane są przechowywane w bazie danych; mogą być uruchamiane z poziomu aplikacji i umożliwiają zmienne deklarowane przez użytkownika, wykonywanie warunkowe i inne zaawansowane funkcje programistyczne. Procedury składowane mogą zawierać zapytania dotyczące przepływu programu, logiki i bazy danych. Mogą akceptować parametry, dostarczać wyniki parametrów, zwracać jeden lub wiele zestawów wyników oraz zwracać wartości.
Zaletami korzystania z procedur przechowywanych w programie SQL Server zamiast programów Transact-SQL przechowywanych lokalnie na komputerach klienckich są:
• Umożliwiają programowanie modułowe.
Procedurę można utworzyć raz, zapisać ją w bazie danych i wywołać z programu dowolną liczbę razy. Specjalista ds. programowania baz danych może tworzyć procedury składowane, które następnie można modyfikować niezależnie od kodu źródłowego programu. Ułatwiają konserwację.
• Zezwalaj na szybsze wykonanie.
W sytuacjach, w których potrzebna jest duża ilość kodu Transact-SQL lub jeśli operacje są wykonywane wiele razy, procedury składowane mogą być szybsze niż partie kodu Transact-SQL. Procedury są analizowane i optymalizowane w momencie ich tworzenia i możliwe jest użycie wersji procedury, która znajduje się w pamięci po jej pierwszym uruchomieniu. Instrukcje Transact-SQL, które są przesyłane wiele razy od klienta za każdym razem, gdy mają zostać wykonane, muszą być kompilowane i optymalizowane za każdym razem, gdy są wykonywane przez SQL Server.
• Mogą zmniejszyć ruch w sieci.
Operację wymagającą setek wierszy kodu Transact-SQL można wykonać za pomocą pojedynczej instrukcji, która wykonuje kod w procedurze, zamiast wysyłania setek wierszy kodu przez sieć.
• Mogą być używane jako mechanizm zabezpieczający.
Użytkownikom można przyznać uprawnienia do wykonywania procedury składowanej, nawet jeśli nie mają uprawnień do bezpośredniego wykonywania instrukcji procedury.
Funkcje zdefiniowane przez użytkownika
Funkcje to obiekt, który łączy pewne możliwości widoków z innymi procedurami. Podobnie jak widoki, mogą wydobywać dane i wykonywać obliczenia, zwracając wynik użytkownikowi lub programowi, który je wykonał. Oprócz procedur zawierają kody TSQL i mogą być wykonywane z parametrami.
Funkcje zwracają wartość lub zestaw wartości.
Funkcje zdefiniowane przez użytkownika są tworzone za pomocą instrukcji CREATE FUNCTION, modyfikowane za pomocą instrukcji ALTER FUNCTIONi usuwane za pomocą instrukcji DROP FUNCTION. Wszystkie w pełni kwalifikowane nazwy funkcji (nazwa_bazy_danych.nazwa_właściciela.nazwa_funkcji) zdefiniowane przez użytkownika muszą być unikalne. Aby tworzyć, modyfikować lub usuwać funkcje zdefiniowane przez użytkownika, musisz mieć CREATE FUNCTION. Użytkownicy inni niż właściciel muszą mieć uprawnienie EXECUTE do funkcji i tylko wtedy mogą jej używać w instrukcji języka Transact-SQL. Aby tworzyć lub modyfikować tabele z odwołaniami do funkcji zdefiniowanych przez użytkownika w ograniczeniu CHECK, klauzuli DEFAULTlub definicji kolumny wyliczanej, musisz mieć również uprawnienia REFERENCESdo tych funkcji. Błędy języka Transact-SQL, które powodują anulowanie instrukcji i przejście do następnej instrukcji w module, takie jak wyzwalacze lub procedury składowane, są traktowane inaczej w ramach funkcji. W funkcjach te błędy powodują zatrzymanie wykonywania funkcji. Powoduje to przerwanie funkcji, która wywołała instrukcję. Funkcja zdefiniowana przez użytkownika ma zero lub wiele parametrów wejściowych i zwraca wartość skalarną lub tabelę. Funkcja może mieć maksymalnie 1024 parametrów wejściowych. Gdy parametr funkcji przyjmuje wartość domyślną, słowo kluczowe musi być określone DEFAULTpodczas wywoływania funkcji, aby uzyskać wartość domyślną. To zachowanie różni się od parametrów wartości domyślnej w procedurach składowanych, dla których pominięcie parametru oznacza określenie wartości domyślnej. Funkcje zdefiniowane przez użytkownika nie obsługują parametrów wyjściowych.
Zapytania rozproszone
Zapytania rozproszone uzyskują dostęp do danych z wielu źródeł, które mogą być przechowywane na jednym komputerze lub na różnych komputerach. Microsoft SQL Server 2000 obsługuje zapytania rozproszone Za pośrednictwem OLE DB Zapytania rozproszone zapewniają użytkownikom programu SQL Server dostęp do:
• Rozproszonych danych przechowywanych w wielu instancjach programu SQL Server.
• Heterogeniczne dane przechowywane w różnych relacyjnych i nierelacyjnych źródłach danych dostępnych za pośrednictwem dostawcy OLE DB.
Dostawcy OLE DB uwidaczniają dane w obiektach tabelarycznych zwanych zestawami wierszy. SQL Server 2000 umożliwia odwoływanie się w instrukcjach Transact-SQL do zestawów wierszy od dostawców OLE DB tak, jakby były one tabelą SQL Server. Do tabel i widoków z zewnętrznych źródeł danych można odwoływać się bezpośrednio w instrukcjach języka Transact-SQL SELECT, INSERT, UPDATE i DELETE. Ponieważ zapytania rozproszone wykorzystują OLE DB jako bazowy interfejs, uzyskują dostęp do tradycyjnych relacyjnych systemów DBMS z procesorami zapytań SQL, a także do danych zarządzanych przez źródła danych o różnej mocy i zaawansowaniu. Dopóki oprogramowanie własnościowe udostępnia dane w zestawie wierszy tabelarycznych za pośrednictwem dostawcy OLE DB, dane mogą być używane w zapytaniach rozproszonych. Uwaga: Użycie zapytań rozproszonych w SQL Server jest podobne do funkcjonalności tabel połączonych poprzez ODBC, wcześniej obsługiwanych przez Microsoft Access. Ta funkcja jest teraz wbudowana w SQL Server z OLE DB jako interfejsem do danych zewnętrznych.
Transakcje
Transakcja to zestaw poleceń , które są wykonywane w całości lub wcale: wszystko lub nic. Na przykład, jeśli pewna suma pieniędzy została przeniesiona z jednego konta bankowego na drugie, a oba konta muszą zostać zaktualizowane przy wpłacie i wypłacie; obowiązkowe jest, aby oba konta aktualizowały się razem lub żadne (w przypadku niepowodzenia jednej z aktualizacji); aby uniknąć niespójnych konsekwencji wpłaty bez wypłaty lub odwrotnie. Dlatego transakcja to sekwencja operacji wykonywanych jako pojedyncza logiczna jednostka pracy. Logiczna jednostka pracy musi wykazywać cztery właściwości, znane jako właściwości ACID (atomowość, spójność, izolacja i trwałość), aby kwalifikować się jako transakcja:
- Atomowość
Transakcja musi być niepodzielną jednostką pracy, niezależnie od tego, czy dokonano wszystkich modyfikacji danych, czy też żadnych.
- Konsekwencja
Po zakończeniu transakcja musi pozostawić wszystkie dane w spójnym stanie. W relacyjnej bazie danych wszystkie reguły muszą być stosowane do modyfikacji transakcji, aby zachować integralność wszystkich danych. Wszystkie wewnętrzne struktury danych, takie jak indeksy B-drzewa lub podwójnie powiązane listy, muszą być poprawne na końcu transakcji.
- Izolacja
Modyfikacje dokonywane przez transakcje współbieżne muszą być odizolowane od modyfikacji dokonywanych przez inne transakcje współbieżne. Transakcja widzi dane w stanie, w jakim była przed zmodyfikowaniem przez inną równoczesną transakcję lub po zakończeniu drugiej transakcji, ale nie widzi stanu pośredniego. Jest to znane jako serializacja, ponieważ jego wynikiem jest możliwość ponownego załadowania danych początkowych i odtworzenia serii transakcji, aby zakończyć z danymi w tym samym stanie, w jakim były po wykonaniu oryginalnych transakcji.
- Trwałość
Po zawarciu transakcji jej skutki są trwałe w systemie. Modyfikacje utrzymują się nawet w przypadku błędu systemu.
SQL Server ma ograniczoną możliwość zagnieżdżania transakcji.
Optymalizator
Optymalizator jest częścią oprogramowania, która „podejmuje decyzję” o tym, jak każde polecenie zostanie wykonane, tak aby wykonanie było jak najbardziej wydajne lub przynajmniej wystarczająco wydajne (czyli wystarczająco wydajne, aby uniknąć dalszego poszukiwania innego rozwiązanie, które jest jeszcze wydajniejsze, cena dodatkowego wyszukiwania będzie „kosztować” więcej niż oszczędności zasobów).
SQL jest językiem deklaratywnym , w którym deweloper deklaruje, że chce wypakować lub zaktualizować bez konieczności wskazywania jak (w przeciwieństwie do języków imperatywnych , a zatem wiodącą rolę pełni optymalizator, który według statystyk jakie przechowuje system o dystrybucjach danych w tabelach, indeksach i regulaminach wewnętrznych, podejmuje odpowiednią decyzję.
Przywileje i bezpieczeństwo danych
Aby połączyć się z SQL Server, wymagane jest logowanie (użytkownik na poziomie serwera). Gdy zasada bezpieczeństwa jest zdefiniowana jako uwierzytelnianie systemu Windows, a serwer jest połączony z definicjami domeny , loginy są definiowane w usłudze Active Directory . Gdy definicja to uwierzytelnianie SQL Server, loginy (użytkownik i hasło) są definiowane w samym SQL Server. W konsekwencji w pierwszym przypadku musisz identyfikować się nazwą i hasłem tylko podczas łączenia się z siecią, a następnie łączysz się automatycznie ze wszystkimi serwerami, które są uwierzytelnione Windows (z globalnym logowaniem); aw drugim przypadku musisz się zidentyfikować podczas łączenia się z każdym serwerem SQL Server Authentication (za każdym razem z lokalnym Loginem).
Na poziomie bazy danych użytkownik jest identyfikowany jako Użytkownik, który jest ogólnie powiązany z Loginem (który jest na poziomie serwera), a uprawnienia Użytkownika istnieją tylko na poziomie bazy danych (oprócz uprawnień do Loginu). W nadawaniu ogólnych praw można pomóc z listą ról serwera (role na poziomie serwera) lub ról bazy danych (określone role na poziomie bazy danych), z których każda ma określone uprawnienia do określonej roli; a każdy użytkownik powiązany z jedną z tych ról otrzymuje powiązane z nią uprawnienia. Ponadto administrator może nadawać określone uprawnienia i tworzyć inne role bazy danych (nie można tworzyć ról serwera).
Uprawnienia na poziomie serwera obejmują możliwość tworzenia baz danych, używania zadań, tworzenia kopii zapasowych i przywracania bazy danych, modyfikowania definicji serwera i tak dalej. Uprawnienia na poziomie bazy danych umożliwiają wyodrębnianie i aktualizowanie danych, tworzenie obiektów, takich jak procedury i tabele, korzystanie z tych obiektów i tak dalej. Zgodnie z ogólną zasadą można przyznawać uprawnienia (Przyznaj), cofać istniejące uprawnienia (Odwołaj) i odmawiać uprawnień, które jeszcze nie istnieją (Odmów).
Inne narzędzia serwisowe
Oprócz podstawowych możliwości jako narzędzia do zarządzania relacyjnymi bazami danych (tworzenie tabel, definiowanie relacji między nimi, zarządzanie transakcjami, tworzenie indeksów itp.), SQL Server obsługuje coraz większą listę innych narzędzi serwisowych, poza zmieniającymi się narzędziami innych firm. lub uzupełnij to, co istnieje.
Kopie zapasowe i odzyskiwanie
Oprócz alternatywnych rozwiązań na poziomie systemu operacyjnego (backup plików bazy danych), w SQL Server wbudowane jest narzędzie, które umożliwia wykonanie pełnej lub różnicowej kopii zapasowej, zgodnie z predefiniowanym Modelem Odzyskiwania do bazy danych; oraz pełne lub w określonym czasie odzyskiwanie. Oprócz kopii zapasowej bazy danych możesz wykonać kopię zapasową za pomocą skryptu (z danymi lub bez). Od 2008 roku można kompresować pliki kopii zapasowych.
Kompresja
Od 2008 roku została dodana opcja kompresji, która umożliwia skompresowanie fizycznych rozmiarów tabel i indeksów, efektywniejsze wykorzystanie wolumenu dysków twardych oraz redukcję operacji IO (co zwiększa obciążenie procesora). Jak już wspomniano, możesz również skompresować pliki kopii zapasowej.
Replikacja, wysoka dostępność i odzyskiwanie po awarii
Niektóre narzędzia umożliwiają tworzenie częściowych lub kompletnych replik baz danych, poprawę dostępności i odzyskiwanie po awariach; oprócz opcji tworzenia kopii zapasowych i odzyskiwania baz danych, opcja, która ma być bardzo powolna.
Kopie tworzone przez te narzędzia mogą służyć jako natychmiastowo dostępna kopia zapasowa w przypadku awarii systemu, a także jako replika w podsystemie, niezależnym od systemu źródłowego, do równoważenia obciążenia; aktualizacje są uruchamiane w bazie danych, a odzyskiwanie raportów w replice.
Wśród tych narzędzi możemy wymienić replikację , która umożliwia tworzenie zsynchronizowanej repliki bazy danych, Mirroring , który wykonuje na serwerze lustrzanym każdą aktualizację, która jest wykonywana na serwerze źródłowym, Log Shipping umożliwia przechowywanie zsynchronizowanej kopii poprzez pliki logów (Log) ze wszystkimi aktualizacjami na serwerze źródłowym oraz narzędzia wysokiej dostępności i odtwarzania po awarii (HADR, od 2012 r.), które rozwiązują problemy z Mirroringiem w odniesieniu do czasu reakcji na awarie techniczne i dostępności kopii w czasie pokoju.
Planowanie agenta i zadań
Agent jest usługą zajmującą się planowaniem zadań i niezależnym ich wykonywaniem. Generalnie wykonuje zadania konserwacyjne, złożone zadania ETL , kopie zapasowe itp.
Konserwacja
W celu poprawy wydajności systemu konieczne jest prowadzenie statystyk, z których korzysta optymalizator, porządkowanie plików fizycznych itp.; do tego celu wykorzystywane są dedykowane narzędzia, które są wykonywane cyklicznie przez zaplanowane zadania i w sposób skoordynowany z zadaniami ETL i backupu.
Broker usług
Dodana w 2005 roku technologia implementująca architekturę zorientowaną na usługi i umożliwiająca wykonywanie asynchroniczne: przede wszystkim wysyłanie komunikatów pomiędzy różnymi aplikacjami działającymi jednocześnie, ale także wykonywanie procedur asynchronicznie, w sposób „odpal i zapomnij” – procedura działa w innej sesji niż sesja, która ją uruchomiła, a obie procedury działają niezależnie od siebie.
Wyślij e-maile
SQL Server ma możliwość wysyłania wiadomości e-mail za pomocą kodu. Ta funkcja jest zwykle używana do wysyłania alertów o problemach z systemem (na przykład, jeśli użycie procesora wzrosło do wstępnie zdefiniowanego progu lub jeśli proces ETL nie powiódł się), ale także po pomyślnym zakończeniu procesu.
Wyszukiwanie pełnotekstowe
Narzędzie, które umożliwia indeksowanie kolumn tekstowych jako tekstów, a nie tylko jako ciągów; i wykonuj złożone wyszukiwania w zależności od znaczenia tekstu i języka. Na przykład szukamy czasownika i chcemy uzyskać wszystkie wystąpienia jego koniugacji.
Śledź
Narzędzia te obejmują Trace, który umożliwia śledzenie działań w celu utrzymania obciążeń i awarii oraz bezpieczeństwo danych (odzyskiwanie danych jest niedozwolone), Profiler, który umożliwia śledzenie wykonywanych poleceń i zdarzeń występujących na serwer oraz Extended Events, który został dodany w 2008 roku i zmienia profiler dzięki swojej niskiej sygnaturze (zużycie zasobów i wpływ na wydajność serwera).
Oprócz tego do śledzenia zmian i działań można użyć 2 typów wyzwalaczy: wyzwalaczy DML predefiniowanych w tabelach i widokach, inicjowanych instrukcjami aktualizacji danych (wybierz / aktualizuj / usuń) oraz wyzwalaczy DDL inicjowanych przez zmiany w same obiekty (a nie dane) na poziomie bazy danych lub serwera.
Scal CLR
Od 2005 r. można łatwo łączyć procedury, funkcje i funkcje agregujące opracowane w środowisku CLR w SQL Server . Musisz napisać kod w jednym z narzędzi programistycznych .NET , stworzyć plik DLL i scalić go z systemem. Zaletą tej technologii są jej możliwości w problemach, które nie są wyłącznie bazami danych (manipulacja danymi) i obejmują złożone obliczenia lub manipulacje tekstowe na ciągach.
Narzędzia analizy biznesowej
Typowa instalacja obejmuje również narzędzia Business Intelligence ( BI ) :
SSIS (usługi integracji serwera SQL)
Narzędzie ETL umożliwiające ekstrakcję danych z różnych źródeł (nie tylko SQL Server), transformację tych danych oraz ładowanie (generalnie, ale niekoniecznie do hurtowni danych ).
SSAS (usługi SQL Server Analysis Services)
Narzędzie do tworzenia wielowymiarowych (nierelacyjnych) baz danych , które można eksplorować poprzez wyodrębnianie danych na różnych poziomach grupowania, drążenie sumy do ich szczegółów oraz używanie MDX (języka podobnego do SQL, dostosowanego do wielowymiarowych baz danych).
SSRS (usługi raportowania SQL Server)
Narzędzie do tworzenia i formatowania raportów, nadawania im praw do przeglądania i ich dystrybucji. Można je przeglądać za pomocą przeglądarki internetowej i eksportować do programu Excel , PDF itp. dane są zwykle pobierane z hurtowni danych lub OLAP.
Wady
- Od wersji SQL Server 2012 kwerendy napisane w T-SQL nie są wstecznie kompatybilne z wersją SQL Server 2008 lub wcześniejszą.
- W wersjach 32-bitowych SQL Server używa rozszerzenia Address Windowing Extension (AWE) do adresowania powyżej 4 GB. Uniemożliwia to korzystanie z dynamicznego zarządzania pamięcią i pozwala na hostowanie maksymalnie 64 GB pamięci współdzielonej. To ograniczenie dotyczy wyłącznie 32-bitowych systemów operacyjnych; w 64-bitowych systemach operacyjnych maksymalna pamięć, którą można zaadresować w wersji Standard Edition to 64 Gb, a w wersji Enterprise 4 Tb
Zobacz także
Referencje
- ↑ Guthrie, Scott (7 marca 2016 r.). „Zapowiedź SQL Server w systemie Linux” (html) . Microsoft (w języku angielskim) . Zarchiwizowane z oryginału 7 marca 2016 r . Źródło 3 marca 2019 .
- ^ ab Domínguez , Andres Zamora (25 października 2017). „Microsoft SQL Server można teraz uruchomić na Linux GNU”. (html) . Pandora FMS (w języku angielskim) . Zarchiwizowane od oryginału w dniu 24 listopada 2018 r . Źródło 24 listopada 2018 . «28 grudnia 2016 r. – święto Świętych Niewiniątek, ten szczególny dzień, w którym osoby posługujące się językiem hiszpańskim żartują przez cały dzień – ogłoszono nabycie członkostwa typu „Platinum” przez firmę Microsoft® w Linux Foundation oraz uruchomienie Microsoft SQL Server®. »
- ↑ Lerner, Reuve M. „Serwer SQL w systemie Linux” (html) . Przewodnik dla maniaków (w języku angielskim) . Zarchiwizowane z oryginału 3 sierpnia 2017 r . Źródło 24 listopada 2018 . Ale nawet najbardziej sceptyczny fan open-source musi przyznać, że Microsoft zmienił się w ciągu ostatnich kilku lat. Wydała wiele narzędzi programistycznych i bibliotek jako open source, a także zaczęła uwzględniać Linuksa jako obsługiwaną platformę dla niektórych swoich programów. »
- ^ „Przygotuj się na SQL Server 2017” (html) . Microsoft (w języku angielskim) . Zarchiwizowane z oryginału 1 maja 2017 r . Źródło 24 listopada 2018 . „Przenieś wiodącą w branży wydajność i bezpieczeństwo programu SQL Server do kontenerów Windows, Linux i Docker. »
- ↑ Historia rozwoju serwera SQL
- ↑ Co nowego w Microsoft SQL Server 7
- ↑ Co nowego w Microsoft SQL Server 2000
- ↑ Co nowego w SQL Server 2005
- ↑ Co nowego (SQL Server 2008)
- ↑ Co nowego w Microsoft SQL Server 2008 R2
- ↑ Co nowego w SQL Server 2012
- ↑ Co nowego w SQL Server 2014
- ↑ „Wszystko, co musisz wiedzieć o licencjach na serwer SQL i licencjach CAL” . Miękki trader (w języku angielskim) . 15 września 2021 r . Źródło 27 września 2021 .
- ↑ Funkcje obsługiwane przez wersje SQL Server 2014
- ↑ Ciągi połączeń
Linki zewnętrzne
- Strona internetowa Microsoft SQL Server
- Programiści Microsoft SQL Server
- książki na wystawie
- Microsoft SQLServer 2017
- Dziennik bazy danych Dziennik bazy danych
- Strona pobierania Microsoft SQL Server 2012