W ciągu ostatnich kilku lat środowisko biznesowe uległo znaczącym przeobrażeniom. Przedsiębiorstwa muszą zmagać się z coraz większymi ilościami danych, coraz większą liczbą wykorzystywanych systemów oraz rosnącymi wymaganiami związanymi z nieprzerwanym dostępem do danych. A to wszystko przy nieustannym dążeniu do zachowania kontroli nad kosztami projektów informatycznych.
Nowa wersja platformy bazodanowej Microsoft SQL Server 2005 była przygotowywana z myślą o rozwiązywaniu problemów współczesnych przedsiębiorstw i ich działów informatyki. Inżynierowie pracujący nad nową bazą skoncentrowali się na trzech głównych obszarach: zarządzaniu danymi, wydajności oraz business inteligence. Jednocześnie kładziono nacisk na zachowanie niskich kosztów posiadania (TCO), co od zawsze było atutem platformy Microsoft. Uzyskano to m.in. dzięki wysokiemu poziomowi integracji oprogramowania i dążeniu do daleko posuniętej łatwości użytkowania.
Jednym z priorytetów twórców SQL Server 2005 było zapewnienie wysokiej dostępności. Udało się to uzyskać przede wszystkim w efekcie zastosowania dodatkowych funkcji związanych z wykonywaniem backupu i odtwarzania danych.
SQL Server 2005 zawiera wiele różnych mechanizmów pozwalających utrzymać dostępność aplikacji i minimalizować czas nieplanowanych przestojów. Jest wśród nich np. znany z wersji 2000 działający w trybie punkt—punkt mechanizm log shopping. W wersji 2005 został on udoskonalony o mechanizmy klastrowe z funkcją rozwiązywania konfliktów i resynchronizacji danych z serwerem, który został odbudowany po awarii. Wprowadzono także mechanizm lustrzanych kopii bezpieczeństwa kontrolowanych na poziomie serwera. Te same zestawy danych mogą być wysyłane jednocześnie do wielu urządzeń archiwizujących, a także równolegle odtwarzane, co również skraca czas tej operacji.
W nowej wersji dostępna jest replikacja SQL Server do wielu serwerów docelowych, w tym - co jest nowością - w trybie peer-to-peer. Znacznie przyspiesza to odczyt spójnych danych podczas odbudowy serwera, który uległ awarii. Ponadto baza wspiera natywnie zarówno dane relacyjne, jak i XML. Dzięki temu firmy będą mogły przechowywać, zarządzać i analizować dane w formatach, które im - z rozmaitych względów - najbardziej odpowiadają.
Microsoft konsekwentnie koncentruje się na podniesieniu bezpieczeństwa oprogramowania. Nowa baza posiada wbudowane zaawansowane mechanizmy kontroli. Wprowadzono jeszcze bardziej precyzyjne, w porównaniu z SQL Server 2000, mechanizmy do rozgraniczenia uprawnień do zasobów i operacji. Ponadto baza została "zabezpieczona domyślnie".
Warto zwrócić przy tym uwagę, że w SQL Server 2005 konieczność ponownego uruchomienia serwera pojawia się niezwykle rzadko. Przede wszystkim parametry serwera, które w poprzedniej wersji wymagały restartu (m.in. zmiana liczby procesorów, zwiększanie pamięci RAM, tworzenie, edycja, odbudowa czy usuwanie indeksów) obecnie mogą być wykonywane online. Nawet odtwarzanie danych może być wykonywane w tym trybie. Niedostępne dla aplikacji pozostają wówczas tylko te dane, które są właśnie odtwarzane. Jednocześnie podczas odtwarzania nie trzeba czekać, aż niedokończone transakcje zostaną wykonane, jeśli użytkownik nie sięga do danych, które te transakcje obejmują.
SQL Server 2005 obsługuje szyfrowanie na poziomie baz danych. Szyfrowana (domyślnie) jest cała komunikacja pomiędzy klientem a serwerem. Z bazą zintegrowano także infrastrukturę zarządzania kluczami, a administrator dysponuje możliwością wprowadzenia polisy blokującej połączenia nieszyfrowane, co umożliwia centralizację konfiguracji zabezpieczeń.
Jednym z ograniczeń dotychczasowych wersji SQL Server był brak zintegrowanych narzędzi do programowania bazy i debugowania kodu. Nowości wprowadzone w SQL Server 2005 zmieniają zasadniczo sposób tworzenia i uruchamiania aplikacji bazodanowych.
Z punktu widzenia programisty nowa wersja oferuje przede wszystkim nowy, zintegrowany zestaw narzędzi do zarządzania. Programiści mogą dzięki temu wykorzystywać jedno narzędzie bez względu na wybór technologii programowania - Transact-SQL, XML, MDX (Multidimensional Expression) oraz XML/A (XML for Analysis). Natomiast integracja SQL Server 2005 ze środowiskiem Visual Studio zapewni bardziej efektywne programowanie i debugowanie aplikacji.
Wreszcie dzięki zawarciu CLR (Common Language Runtime) w motorze bazy danych programiści będą mogli wybierać do tworzenia aplikacji różne języki, m.in. Transact-SQL, Microsoft Visual Basic .NET oraz Microsoft Visual C# .NET. Dodatkowo takie rozwiązanie zapewni programistom większą elastyczność, dzięki wykorzystaniu definiowanych przez użytkownika typów i funkcji. CLR pozwala także na wykorzystanie gotowego kodu do błyskawicznego tworzenia aplikacji.
SQL Server 2005 to także rozszerzone funkcje związane z samodzielnym strojeniem (tuning) bazy, które mają ułatwić programistom i administratorom skoncentrowanie się na innych zadaniach. Zwolni ich to natomiast z obowiązku wykonywania rutynowych operacji administracyjnych. Nowe narzędzie DTA (Database Tuning Advisor) na podstawie analizy pracy bazy zasugeruje administratorom zmiany w strukturze indeksów, podziałach tabel itd. Firma wprowadziła także dedykowane połączenie dla administratora, dzięki czemu możliwe jest badanie stanu i korygowanie problemów nawet wtedy, gdy serwer przestanie odpowiadać na wywołania aplikacji.
Microsoft stworzył także mechanizmy do planowania czynności serwisowych, pozwalające planować niemal dowolne zadania. Ponadto pozwalają one na precyzyjne określanie kolejności wykonywania poszczególnych czynności, by wpływ ich wykonywania na wydajność transakcji był możliwie najmniejszy. Tworzone plany działań mogą być zapisywane w formacie XML i przesyłane do innych serwerów/osób, a ich edycja nie wymaga bezpośredniego połączenia z serwerem, którego plany dotyczą.
Ważnym kierunkiem rozwoju SQL Server 2005 był obszar business intelligence. Potrzeba analizy informacji występuje obecnie na wszystkich szczeblach organizacji. Microsoft dostrzegł tę potrzebę i konsekwentnie rozwija ofertę w tej dziedzinie, dążąc do uczynienia analizy standardową funkcją oprogramowania do zarządzania danymi. Nowa baza dostarcza jednolitego środowiska do gromadzenia, analizy i raportowania danych - zawiera zintegrowane funkcje OLAP, data mining, mechanizmy do tworzenia hurtowni danych oraz funkcje związane z raportowaniem (zastosowano m.in. nowy serwer raportujący).
SQL Server 2005 niesie ze sobą wiele nowinek technologicznych w tym zakresie. Warto zwrócić uwagę zwłaszcza na nowe algorytmy analityczne. Dotychczasowe - drzewo decyzyjne i grupowanie, zostały wzbogacone o asocjacje, sieci neuronowe, mechanizmy przeszukiwania pełnotekstowego, szeregi czasowe, klasyfikację Bayesa i in. Dzięki dostarczonym wraz z SQL Server interfejsom API, programiści mogą w prosty sposób odwoływać się do nowych algorytmów, oszczędzając sporo czasu potrzebnego na ich zakodowanie w aplikacjach i przetestowanie.
Istotne zmiany zaszły także w dziedzinie manipulacji dużymi zbiorami danych na potrzeby analiz usprawniono narzędzia ETL (Extract, Transformation, Load) zwane w najnowszej wersji serwera SQL Server 2005 Integration Services (SSIS).
Bardzo wiele zmian w narzędziach analitycznych SQL Server 2005 dotyczy pracy użytkownika z danymi. Microsoft stworzył Business Intelligence Management Studio - jednolite środowisko pracy z projektami analitycznymi. Nieprzypadkowo obejmuje ono także narzędzia do projektowania raportów. Usługi Reporting Services stały się bowiem integralną częścią SQL Server 2005.
W wersji 2005 źródłami danych dla raportów są zestawy danych ADO.NET, raportowanie jest znacznie wydajniejsze niż dotychczas. Wramach nowej wersji pojawił się graficzny generator zapytań MDX. Użytkownik biznesowy nie musi więc uczyć się składni MDX, aby zadać zapytanie do wielowymiarowej bazy OLAP i uzyskać interesujący go raport. Wystarczy wskazać elementy kostki OLAP mające znaleść się w raporcie, a generator sam stworzy zapytanie MDX. Tym samym Microsoft dąży do spełnienia wizji "business intelligence dla każdego".
Wprowadzając do oferty usługi Reporting Services, Microsoft uzupełnił zestaw narzędzi bazodanowych SQL Server o wydajną, skalowalną i bezpieczną platformę do budowy rozwiązań raportowych. Narzędzia te pozwalają na tworzenie, dystrybuowanie i zarządzanie raportami zarówno w małej firmie, jak i w dużym, wielooddziałowym przedsiębiorstwie. Aktualna wersja Microsoft SQL Server Reporting Services 2005 przynosi wiele nowości, które czynią raportowanie łatwiejszym i wydajniejszym.
Powtórka z wersji 2000
Wpierwszej odsłonie Reporting Services, będące uzupełnieniem Microsoft SQL Server 2000, służyły przede wszystkim do zaspokojenia potrzeb raportowania masowego. Użytkownicy otrzymali narzędzie pozwalające na uruchamianie i subskrybowanie predefiniowanych, w pełni sparametryzowanych raportów, które można przekształcać do wielu różnych formatów (np. Excel, PDF, XML). Możliwe było określenie, kiedy raporty mają być generowane (np. codziennie w nocy), tak żeby w maksymalnym stopniu wykorzystać potencjał infrastruktury bazodanowej w przedsiębiorstwie. Zapewnione zostały mechanizmy wersjonowania raportów oraz dostarczania na żądanie, np. w postaci załącznika do listu elektronicznego.
Z punktu widzenia użytkownika istotna okazała się możliwość rozbudowywania platformy, m.in. o nowe formaty. Ponieważ serwer raportowy udostępnia swoją funkcjonalność także jako Web Service, każdy twórca oprogramowania mógł skorzystać z jego usług we własnej aplikacji. A zatem, z jednej strony Reporting Services to gotowe rozwiązanie, które można wdrożyć i po prostu używać, a z drugiej platforma, którą można dostosować do niemal dowolnych wymagań użytkowników końcowych. Platforma - dodajmy - oferująca wiele zaawansowanych mechanizmów i usług nie tylko pracownikom merytorycznym, ale również administratorom i programistom.
Nowości w wersji 2005
W wersji 2005 wprowadzono wiele ulepszeń w dziedzinie raportowania. Możliwe stało się bezpośrednie drukowanie niezależnie od formatu końcowego raportu, dostępne są parametry wielowartościowe, sortowanie (także wg wielu kolumn na raporcie i bez wykonywania dodatkowych zapytań do źródła danych).
W narzędziu do tworzenia raportów - Report Designer - pojawił się edytor wyrażeń oraz kreator zapytań opartych na wielowymiarowych źródłach danych (Analysis Services). Niezależni producenci oprogramowania i programiści mają możliwość tworzenia własnych elementów raportów - kontrolek, które można osadzać w raportach dokładnie w taki sam sposób, jak elementy wbudowane (pola tekstowe, wykresy itp.). Usługi Reporting Services zawierają także zestaw tzw. Web Parts, dzięki którym możliwa jest integracja raportów ze środowiskiem SharePoint Portal Server lub Windows SharePoint Services.
Jednym z nowych narzędzi, jakie pojawiło się w pakiecie Microsoft SQL Server 2005, jest Report Builder. Jest to produkt szczególnie przydatny zaawansowanym użytkownikom, któ-rzy z jednej strony chcą mieć możliwość tworzenia i publikowania raportów, zaś z drugiej nie chcą lub nie potrafią użyć do tego celu narzędzi programistycznych. Przypomnijmy, że pomimo istnienia narzędzi podobnych do Report Buildera w wersji SQL Server 2000, były to rozwiązania firm trzecich, zaś produktem dedykowanym do tworzenia i publikowania raportów jest Report Designer będący fragmentem Visual Studio. Jak pokazała praktyka, było to zniechęcające dla niektórych użytkowników i nie decydowali się oni na implementację rozwiązania raportowego bazującego na serwerze Microsoft.
Budowanie raportów ad hoc wymaga wiedzy technicznej i programistycznej o źródłach danych, na podstawie których definicje raportów zostaną potem wypełnione informacjami. Ponieważ wiedza taka jest często niedostępna użytkownikom, którzy nie mają przygotowania deweloperskiego, konieczne stało się wprowadzenie dodatkowego elementu pośredniczącego pomiędzy źródłami danych a Report Builder, tłumaczącego niezrozumiał e dla użytkownika merytorycznego kolumny, tabele itp. na pojęcia biznesowe. Elementem tym jest model raportowy (Report Model). Budowa modeli raportowych jest zadaniem dla deweloperów, dlatego narzędziem do ich tworzenia jest Visual Studio (powołano do tego celu specjalny typ projektu - Report Model Project).
Stworzenie modelu raportowego wymaga podjęcia trzech kroków. Najpierw należy zdefiniować źródła danych, na podstawie których póśniej ma być możliwe budowanie raportów. Służy do tego Data Source Wizard. Drugi krok to stworzenie swoistego widoku na te źródła. W tej fazie określa się, jakie dane dostępne w źródłach danych (które kolumny, z których tabel) i w jakiej formie (czy i jak pogrupowane, jak posortowane itp.) mają zostać zwrócone do narzędzia do budowy raportów. Możliwe jest także dodanie wirtualnych (logicznych) kluczy głównych i obcych, zbudowanie wirtualnych relacji na tych kluczach, dodanie kalkulacji, a także wprowadzenie opisów różnych obiektów (kolumn, tabel). Ten krok możliwy jest dzięki narzędziu Data Source View Wizard. Na koniec należy określić reguły rządzące agregowaniem danych, relacje pomiędzy encjami (co umożliwia przechodzenie na raporcie do danych coraz bardziej szczegółowych), sposoby formatowania oraz język modelu raportowego. Tutaj pomocny jest Report Model Wizard. Można także przetestować nowo stworzony model. Aby użytkownicy końcowi mogli wykorzystać model raportowy, należy go opublikować na serwerze raportowym, co można uczynić bezpośrednio z Visual Studio. Modele widoczne są dla użytkowników końcowych jako źródła danych.
Report Builder zaimplementowany został na platformie .Net jako tzw. Smart Client i wykorzystuje technologię ClickOnce, aby samodzielnie zainstalować się na stacji klienckiej. Jednym ze sposobów na uruchomienie tego narzędzia jest (zakładając, że posiadamy odpowiednie prawa dostępu) użycie Report Managera (standardowa aplikacja służąca zarówno do przeglądania raportów, jak i zarządzania serwerem raportowym). Po uruchomieniu Report Buildera, pierwszy krok to wybór źródła danych dla nowo tworzonego raportu (w gruncie rzeczy są tutaj do dyspozycji wszystkie modele raportowe opublikowane na danym serwerze raportowym). Następnie przeciąga się wymagane pola na powierzchnię raportu, grupuje dane, dodaje podsumowania oraz formatuje raport. Również techniką drag & drop definiuje się filtry. Report Builder współpracuje bezpośrednio z serwerem raportowym - zapisanie raportu oznacza umieszczenie go w repozytorium Reporting Services, dzięki czemu staje się on natychmiast dostępny dla wszystkich użytkowników systemu raportowego (zgodnie z prawami dostępu). Raport taki nie różni się w żaden sposób od raportów tworzonych za pomocą Report Designera - można go subskrybować, renderować do wszystkich dostępnych formatów i dostarczać odbiorcom na różne sposoby oferowane przez serwer raportowy. Raport stworzony przy użyciu Report Buildera może być, jeśli jest to konieczne (nie wszystkie możliwości związane z definicją raportów dostępne są w narzędziu Report Builder), edytowany za pomocą Report Designera.
Raport dla każdego
Projektując narzędzia analityczne i raportujące dla SQL Server 2005, Microsoft starał się możliwie najbardziej zbliżyć do idei "Business Intelligence dla każdego". Producent przewidział, że wielu użytkowników będzie stopniowo uczyć się pracy z zaawansowanymi narzędziami analitycznymi, dlatego z usług Reporting Services w SQL Server 2005 można korzystać za pośrednictwem dodatku (Excel Add-In Accelerator) do doskonale znanego arkusza kalkulacyjnego Excel. Dodatek, który można pobrać ze stron internetowych Microsoft, pozwala na zmianę zakresu i układu danych oraz prowadzenie analiz scenariuszy.
Więcej informacji na tematy poruszane w artykule można znaleść na stronie internetowej www.microsoft.com/sql/bi/default.mspx. Paweł Borowiecki był pracownikiem naukowym w Katedrze Analizy Numerycznej na Wydziale Matematyczno-Przyrodniczym KUL, gdzie zajmował się teorią baz danych, teorią programowania obiektowego i metodami numerycznymi. Obecnie pracuje w Microsoft. Zajmuje się SQL Server, Analysis Services i narzędziami programistycznymi. Posiada tytuł MCSD w wersji .Net.