Czytając ten artykuł zapewne zastanawiacie się, czy ten kurs wniesie coś nowego do waszego bazodanowego życia. Zarówno jeśli jesteście początkującymi programistami, jak i tymi bardziej zaawansowanymi, znajdziecie tu coś dla siebie. Pierwsza część kursu skupia się na podstawach relacyjnych baz danych, przygotowując solidne podłoże pod późniejsze ćwiczenia praktyczne w MS SQL Server 2005. W drugiej części kursu zostaną omówione bardziej zaawansowane aspekty oraz nowości i możliwości, jakie oferuje SQL Server w wersji 2005. Zatem sprawdźcie, w jaki sposób najszybciej stać się posiadaczem Microsoft SQL Server 2005 i zapraszam do lektury.
Na stronie http://www.microsoft.com/poland/sql/default.mspx jest udostępniona w pełni darmowa wersja którą możemy wykorzystać za równo do celów naukowych jak i komercyjnych. Firma Microsoft udostępnia produkt na którym możemy bez problemu postawić nasze małe systemy bazodanowe. Dodatkowym atutem jest dodanie całkiem niezłego narzędzia służącego do zarządzania serwerem Express Manager. W podobny sposób możemy zdobyć produkty Visual Studio .NET do tworzenia aplikacji okienkowych i stron internetowych. Tak jak w przypadku serwera baz danych należą one do wersji Express. Jeśli ktoś planuje tworzyć systemy bazujące na stronach internetowych polecam kursy dotyczące ASP.NET oraz samego języka C#. Które również są udostępnione w serwisie.
Kurs składa się z artykułów, z których każdy, jako oddzielna całość, udziela miej lub bardziej wyczerpujących informacji na temat Microsoft SQL Server 2005 i baz danych. Kolejne artykuły prowadzą krok po kroku przez instalację MS SQL Server 2005 oraz wyjaśniają, co kryje się pod poszczególnymi opcjami instalacji, która jak nietrudno się domyślić, jest dosyć skomplikowana i łatwo, nie znając podstaw, utrudnić sobie życie dokonując nieprawidłowej instalacji.
Kolejny artykuł pomoże w zapoznaniu ze środowiskiem SQL Server 2005 – z jego podstawowym narzędziem, z którego będziemy korzystać, czyli z Microsoft SQL Server Management Studio. Na przykładzie podstawowych operacji SELECT, UPDATE i DELETE poznamy, w jaki sposób możemy wykonywać zapytania na bazie danych.
Następne artykuły zawierać będą podstawowe informacje o zasadach rządzących relacyjnymi bazami danych. Łykniemy troszkę historii, poznamy podstawową terminologię (tabele, encje, relacje), strukturę baz danych oraz podstawowe cechy tabel. Następnie zastanowimy się nad tym, w czym leży sedno słowa „relacyjny” w modelu baz danych i poznamy zasady funkcjonowania kluczy głównych, kluczy obcych i jaki z nimi związek mają klucze złożone. Nauczymy się zasad tworzenia kluczy i sprawdzania ich poprawności. W stworzeniu dobrego projektu bazy danych pomoże nam artykuł o normalizacji. Z niego dowiemy się, jaki jest sens eliminowania z bazy danych nadmiarowości danych. Przechodząc po kolei pierwszą, drugą i kolejne postaci normalne bazy danych, na przykładach i z lekką tylko dozą matematycznych zasad nauczymy się tworzenia dobrych pod tym względem baz danych. Teoria, którą w tych kursach przyswoimy będzie potrzebna do zrozumienia kolejnych artykułów.
Następne artykuły skupią się już na praktycznym zastosowaniu dotychczas przyswojonej wiedzy w projektach. Poznamy podstawowe typy danych w MS SQL Server 2005 – typy tekstowe, liczbowe, typy daty i czasu, binarne, walutowe, specjalne oraz nowość w tej wersji SQL Server – typ XML – specjalnie do przechowywania danych w formacie XML.
W kolejnych artykułach przyjrzymy się Data Definition Language (DDL). Nauczymy się podstawowych operacji: tworzenia, modyfikowania i usuwania bazy danych (CREATE, ALTER, DROP) oraz w jaki sposób zaimplementować mechanizm kluczy głównych i obcych w nowo tworzonej bazie zarówno z poziomu skryptu jak i z poziomu Management Studio.
Następnie poznamy instrukcje wchodzące w skład Data Manipulation Language(DML). Sprawdzimy, w jaki sposób wykonywać zapytania SELECT, INSERT, UPDATE i DELETE oraz jak w szybki sposób generować zapytania za pomocą designera. Poznamy też podstawy stosowania klauzuli WHERE. Sama instrukcja zostanie dokładniej omówiona w osobnym artykule. Poznamy w nim operatory porównania dostępne w Transach-SQL, podstawowe zasady konwersji (np. daty), znaki autouzupełnienia oraz sposoby, w jakich można łączyć kombinacje dotychczas poznanych funkcji.
W kolejnych artykułach poznamy funkcje agregujące – potężne narzędzie pracy bazy danych, bez którego nie może się obejść żaden system raportowania oparty o bazy danych. Poznamy, jak obliczać średnie, minima, maksima na podstawie zadanych warunków. Poznamy COUNT oraz klauzulę GROUP BY, ORDER BY oraz HAVING. Cały artykuł będzie poświęcony złączeniom, czyli poleceniom typu JOIN: INNER JOIN (złączenie wewnętrzne), CROSS JOIN (iloczyn kartezjański), OUTER JOIN (złączenie zewnętrzne) oraz temu, jak z nich korzystać, by efektywnie wybierać dane ze skorelowanych ze sobą tabel.
Następny artykuł będzie poświęcony podzapytaniom, czyli selektom w selekcie – autonomicznym zapytaniom, które zagnieżdżone w innym zapytaniu, zwracają do niego dane, z których następnie korzysta zapytanie nadrzędne. Nauczymy się również korzystać z tabel tymczasowych oraz poznamy sposób definicji zmiennych w MS SQL Server 2005.
Cały artykuł zostanie również poświęcony mechanizmowi transakcji, czyli sposobie zabezpieczania danych w bazie danych przed utratą spójności. Poznamy własności transakcji, i sposoby wyłapywania błędów podczas jej trwania. Następnie poznamy możliwości i zastosowanie funkcji pozycjonujących (RANK, DENSE_RANK, ROW_NUMBER oraz NTILE). Sprawdzimy również działanie wyrażeń tablicowych (CTE) oraz skorzystamy z rekurencyjnego sposobu wywoływania zapytań.
Omówimy sobie również sposób implementacji XML w SQL Server 2005, metody importu danych w formacie XML oraz eksportu danych z bazy danych do pliku XML. To jedna z nowości w SQL Server 2005. Efektywne korzystanie z danych w formacie XML jest teraz bardzo dobrze wspierane w naszym serwerze.
Na koniec zaprezentuję, w jaki sposób wygląda integracja SQL Server 2005 z MS Visual Studio 2005, prezentując funkcje bazodanowe na przykładzie funkcji do formatowania daty DateFormater. Napiszemy również wspólnie własną funkcję agregującą – sumującą i poznamy atrybuty agregatów, co pomoże w tworzeniu własnych, bardziej rozbudowanych funkcji.
Skoro dowiedzieliśmy się, jak zdobyć MS SQL Server 2005 i jaka będzie treść kursu, wszystkich, którzy czują się na siłach zachęcam do lektury kolejnych artykułów.
Microsoft SQL Server 2005 to potężne narzędzie – baza danych, która oprócz podstawowej funkcji przechowywania, przetwarzania i wyszukiwania danych posiada szereg dodatkowych narzędzi ułatwiających m.in. jej eksploatację, zarządzanie, analizę i raportowanie. Opis niektórych z komponentów (podstawowych i zaawansowanych) przedstawiam poniżej.
SQL Server Database Services: podstawowy silnik bazy danych. Zawiera narzędzia do zarządzania danymi relacyjnymi oraz XML. Posiada narzędzia do replikacji (Replication) oraz wyszukiwania (Full-Text search).
W skład SQL Server Database Services wchodzi:
Analysis Services: zawiera narzędzia OLAP (Online Analytical Processing), które umożliwiają przedstawianie analiz oraz wspierają wyszukiwanie informacji w hurtowniach danych.
Report Server: narzędzie służące do zarządzania, wykonywania, przedstawiania i dystrybucji raportów. Instaluje domyślnie Report Builder, który umożliwia raportowanie ad hoc oraz Report Manager – narzędzie do zarządzania Report Server’em.
Notification Services: platforma, która umożliwia rozwijanie i udoskonalanie aplikacji służących do wysyłania spersonalizowanych okresowych informacji do różnych urządzeń lub innych aplikacji. W jej skład wchodzą Engine Components, Client Components oraz Rules Components.
Integration Services: zbiór narzędzi i programowalnych obiektów służących do tworzenia i zarządzania zbiorami, które wydobywają, przetwarzają i ładują dane, jak również wykonują różne zadania.
Client Components: zawiera narzędzia do zarządzania bazą danych oraz przykładowe bazy danych i aplikacje. W skład Client Components wchodzą:
Dodatkowo fimra Microsoft udostępnia cały szereg pomocy które umożliwiają lepsze i bardziej efektywne zarządzanie bazą danych. Dostępne na stronach MS Books Online documentation and Samples: zawiera wsparcie techniczne Microsoftu - Books Online, przykładowe bazy danych (3 bazy danych AdventureWorks) oraz sample (przykładowe kody, progamy oraz rozwiązania).
Większość powyżej opisanych modułów jest przeznaczona dla systemów bazodanowych o wielkiej złożoności. Dlatego wersja Express, którą będziemy instalować, standardowo ich nie posiada. Pomimo to w większości przypadków w ogóle nie czyni jej gorszej od swoich „bogatszych” kuzynów. A w niektórych jej „lekkość”, spowodowana tym iż nie posiada pomięciożernych Analysis Services czy Notification Services, sprawia że praca jest przyjemniejsza i znacznie szybsza.Należy pamiętać iż zdecydowana większość małych systemów informatycznych potrzebuje tylko prostego repozytorium danych do którego MS SQL Server 2005 Express Edition nadaje się idealnie (a przy tym jest za darmo!).
Przed rozpoczęciem instalacji należy upewnić się, że sprzęt, na którym zostanie dokonana instalacja Microsoft SQL Server 2005 jest odpowiedni.
Spośród najbardziej popularnych systemów operacyjnych, MS SQL Server 2005 można zainstalować na Windows 2000 z SP4, Windows XP SP2 Professional oraz Windows 2003. Pełna lista systemów operacyjnych, na których można zainstalować MS SQL Server 2005 znajduje się w SQL Server Setup Help (plik dostępny na płycie instalacyjnej) w zakładce Hardware and Software Requirements for Installing SQL Server 2005.
Na platformach 32-bitowych instalacja powiedzie się na komputerach wyposażonych w procesor co najmniej 550 MHz (zalecane 1 GHz lub więcej), 256 MB RAM (zalecane 512 MB lub więcej). Pamięć dyskowa potrzebna do instalacji zależy od wybranych komponentów:
Dla czystości sumienia wspomnę jakie wymagania są potrzebne na platformach 64-bitowych. Kształtują się one w następujący sposób: procesor - X64 (lub kompatybilny – np. AMD Opetron), minimum 1 GB RAM oraz w zależności od instalowanych komponentów pamięć dyskowa:
Powyżej przedstawiłem obraz profesjonalnej wersji SQL Server 2005. Nas jednak będzie szczególnie interesuje wersja Express i jej instalacje. Postaram się dokładnie przedstawić co i w jakiej kolejności należy zainstalować aby nasza baza danych działała oraz, co chyba jest równie ważne, można było z niej swobodnie korzysta.
Po pierwsze musimy skompletować wszystkie odpowiednie składniki które muszą być zainstalowane. Poniżej wylistowane są linki do odpowiednich programów. Ważne jest to, iż wszystkie te programy są darmowe i można je pobrać bezpłatnie z stron firmy Microsoft.
· Microsoft Framework 2.0 http://www.microsoft.com/downloads/thankyou.aspx?familyId=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displayLang=en&oRef=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3ffamilyid%3d220549b5-0b07-4448-8848-dcc397514b41%26displaylang%3den
· Microsoft SQL Server 2005 Express Edition http://www.microsoft.com/downloads/info.aspx?na=46&p=3&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=220549b5-0b07-4448-8848-dcc397514b41&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2f1%2f0%2ff10c4f60-630e-4153-bd53-c3010e4c513b%2fSQLEXPR.EXE&oRef=http%3a%2f%2fwww.microsoft.com%2fsql%2feditions%2fexpress%2fdefault.mspx
· Microsoft SQL Management Studio http://www.microsoft.com/downloads/info.aspx?na=46&p=2&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=82AFBD59-57A4-455E-A2D6-1D4C98D40F6E&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2f1%2f1%2ff11aec2c-54d1-4b49-b339-5ccb265a5741%2fSQLServer2005_SSMSEE.msi
· AdventureWorks http://download.microsoft.com/download/a/1/8/a1872d6b-f740-4c52-a2c5-0 eb5bdd1a7e3/AdventureWorksDB.msi
Po pierwsze musimy zainstalować MS .NET Framework 2.0. Można w wielkim skrócie powiedzieć, że jest to zbiór bibliotek które rozszerzają funkcjonalność serwera i bez których wersja 2005 nie może być poprawnie zainstalowana. Ponieważ do najnowszego serwera została dodana możliwość wykorzystania nie tylko zwykłego T-SQL do tworzenia zapytań, ale również języków obiektowych takich jak C# i VB. Ale o tym powiemy w dalszej części kursu. Teraz skupmy się na poprawnym zainstalowaniu samego Framework.
Jest to chyba jedna z łatwiejszych rzeczy którą musimy wykonać. Wystarczy uruchomić wersje instalacyjną, zaznaczyć CheckBox który mówi, że zapoznaliśmy się z licencją.
I praktycznie po wszystkim. Teraz tylko odrobina cierpliwości która doprowadzi nas do ekranu z podziękowaniami.
Teraz gdy już mamy zainstalowanego Frameworka możemy przejść do instalacji samego serwera baz danych. Jest to trochę bardziej skomplikowana operacja (łatwiejsza już chyba być nie może). Podobnie jak w poprzednim przypadku wybieramy opcje Next, aż do momentu kiedy napotkamy ekran wyglądający następująco.
Należy wybrać sposób autoryzacji połączeń z serwerem SQL. Microsoft zaleca stosowanie Windows Authentication Mode, jeśli to możliwe, ze względu na jakość zabezpieczeń, które są tam wykorzystywane. W tym przypadku, jeśli użytkownik łączy się używając konta Microsoft Windows, serwer SQL sprawdza nazwę i hasło konta używając informacji zapisanych w systemie Windows przy pomocy bezpiecznego protokołu Kerberos. Konto sa (system administrator) zostaje utworzone, lecz jest zablokowane.
Jeśli z jakichś względów użytkownik jest zmuszony do wybrania opcji Mixed Mode, musi pamiętać o utworzeniu mocnego hasła dla konta administratora (sa). Hasło SQL Server może mieć długość od 1 do 128 znaków i zawierać kombinację liter, znaków i cyfr. Mocne hasło musi zawierać litery duże i małe, cyfry, znaki typu %,^ lub &. Jeśli wymyślone hasło nie będzie spełniało powyższych zasad i nie będzie mocne, użytkownik otrzyma komunikat: „You must provide a strong sa password to continue SQL Server Setup. To review strong password requirements, click Help on the Authentication Mode page.” tak długo, aż nie wprowadzi odpowiednio mocnego hasła.
W naszym przypadku należy wybrać Widows authentication i kliknąć next.
Domyślnie obydwie opcje są ustawnione na włączone, jednak można je wyłączyć. Jeśli opcja Error Report zostanie włączona, SQL Server zostanie tak skonfigurowany, by przesyłać raport do Microsoft w przypadku gdy pojawi się Fatal Error podczas korzystania z MS SQL Server 2005. Wysyłanie takich raportów pomaga firmie Microsoft w udoskonalaniu swoich produktów i usuwaniu błędów w kolejnych edycjach oprogramowania. Oczywiście informacje przesyłane są do Microsoft bezpiecznym połączeniem https i są traktowane jako poufne. Jeśli opcja Feature Usage zostanie włączona, SQL Server będzie wysyłał do Microsoft raporty z informacjami o konfiguracji sprzętowej podczas używania MS SQL Server. Zaznaczenie odpowiednich opcji zależy tu od użytkownika i jego chęci współpracy z dostarczycielem oprogramowania.
Po przejściu przez proces konfiguracji instalacji, program instalacyjny prosi o potwierdzenie instalacji. Po kliknięciu Install rozpocznie się instalacja Microsoft SQL Server 2005. Można sobie zrobić kawę i przystąpić do ostatnich operacji.
Pomyślne zainstalowanie MS SQL Server 2005 zostanie zakomunikowane wyświetleniem informacji. Należy potwierdzić, klikając Finish.
Management Studio jest produktem który umożliwia zarządzanie repozytorium danych za pomocą okienkowego interfejsu. Jest to bardzo przyjemny program integrujący zarówno usługi administracyjne jak i programistycznie związane (Query Analyzer + Enterprise Manager z SQL Server 2000).
Instalacja jest również banalnie prosta. Wystarczy kliknąć i czekać na zakończenie procesu.
I w końcu okno podziękowań.
Następnie uruchamiamy Start – Programy – Microsoft SQL Server 2005 – SQL Server Management Studio. Teraz w SQL Management Studio baza danych jest uruchomiona. Należy ją wybrać prawym klawiszem myszy, wcisnąć Connect i połączyć się z nią.
Wraz z pojawieniem się nowej bazy danych oraz licznych udogodnień w niej wprowadzonych. Została zrobiona wzorcowa baza danych wykorzystująca wszystkie ciekawostki nowo dodane. Uruchommy sobie teraz ostatni skrypt który nam pozostał. Nie będę się rozwodził nad jego instalacją gdyż najtrudniejsze w tym wszystkim było kliknięcie na przycisk Next. Prawdziwy problem pojawia się dopiero wtedy gdy uruchamiamy Management Studio i nie widać tam bazy danych która właśnie została dodana.
Aby to zmienić przejdziemy do najtrudniejszej operacji w całym artykule (nie licząc pobierania wszystkich programów na słabym łączu). Musimy dodać plik z zainstalowaną przykładową bazą danych do naszego serwera. W tym celu przeprowadzamy operacje tak jak na poniższych zdjęciach.
W oknie Object Explorer klikamy prawym guzikiem myszy na folder Databases (tu znajdują się wszystkie bazy danych składowane na serwerze) i wybieramy z podręcznego menu opcje Attach.
Musimy teraz wyszukać plik który został dodany podczas instalacji bazy danych AdventureWorks i wcisnąć ok. Po tej operacji powinniśmy mieć dodaną nową bazę do naszego serwera.
Operacja zainstalowania serwera baz danych nie jest banalną sprawą. Poprawna konfiguracja i odpowiednie zabezpieczenia wymaga ogromnej wiedzy, a przy tym dużego doświadczenia. Kurs ten jest przeznaczony dla osób które chcą zajmować się tworzeniem aplikacji wykorzystujący repozytoria danych, więc opcje związane z zabezpieczeniem serwera odsuniemy na dalszy plan. Skupimy się na projektowaniu i wykorzystaniu maksymalnie możliwości jakie daje nam środowisko i rozszerzenia w języku zapytań T-SQL oraz możliwością wykorzystania nowoczesnego języka C#.
Zakładam, że każdemu udało się już poprawnie zainstalować i uruchomić aplikacje. Startujemy więc z miejsca, gdzie ostatnio zakończyliśmy. Wszyscy mamy uruchomione Microsoft SQL Server Management Studio, poniższy screenshoot pokazuje jak wygląda to u mnie.
Pierwszą operacją, jaką wykonamy, będzie wylistowanie informacji o zgromadzonych kontaktach w tabeli Contacts. Operację wykonamy na dwa sposoby. W okienku Object Explorer po rozwinięciu katalogu Databases pokazuje się lista baz danych dostępnych na naszym serwerze. Standardowo będziemy korzystać z bazy danych AdventureWorks, która została dołączona w podstawowym pakiecie. Kolejnym krokiem jest rozwinięcie folderu Tables. Z listy tabel wybieramy Person.Contact i klikamy na nią prawym guzikiem myszy Z menu podręcznego wybieramy „Open Table”. W ten oto sposób wyświetliliśmy wszystkie dane kontaktowe. Teraz przeprowadzimy tą operację za pomocą języka Transact-SQL. Ponieważ sama aplikacja wspomaga tworzenie zapytań, nie będziemy musieli zbytnio się napracować. Podobnie jak w poprzednim przypadku klikamy prawym guzikiem myszy na tabelę Person.Contact - z tą różnicą, że tym razem wybieramy opcję Script Table as, a następnie SELECT To i New Query Editor Window. Otwiera się nowa zakładka z wygenerowanym zapytaniem bazodanowym wyświetlającym wszystkie dane z tabeli Contact. Teraz wystarczy tylko wcisnąć przycisk Execute (lub wcisnąć F5) znajdujący się nad nazwą zakładki.
Różnica między tym trybem wyświetlania, a poprzednią opcją jest następująca. W pierwszej opcji mieliśmy możliwość edycji danych, usuwania wierszy itp. W drugim zaś przypadku możemy jedynie przeglądać dane, bo wiersze są wylistowane w trybie read-only. Jednak programowe wyświetlanie wierszy jest bardziej elastyczną formą, co zaraz postaram się udowodnić. Jak pewnie zauważyliście, ilość informacji, która się pojawiła jest przytłaczająco duża. A nam potrzeba zaledwie kilku podstawowych danych, takich jak imię, nazwisko, data urodzenia oraz może jeszcze adres. Przechodzimy więc do modyfikacji naszego zapytania. Usuwamy z niego większość pól tak, aby zostało w takiej formie jak jest poniżej.
SELECT [FirstName],[LastName],[EmailAddress],[Phone]FROM [AdventureWorks].[Person].[Contact]
Dane, które teraz zostały wyświetlone są znacznie czytelniejsze i pozwalają nam na lepszą interpretacje wyników zapytania. Dodając dodatkową klauzulę, możemy posortować kontakty według nazwiska bądź imienia.
SELECT [FirstName] ,[LastName] ,[EmailAddress] ,[Phone]FROM [AdventureWorks].[Person].[Contact]ORDER BY [LastName]
Teraz, kiedy już umiemy wyświetlać dane, przejdziemy do ich edycji, czyli zmiany wartości w poszczególnych komórkach, a także usuwania całych wierszy. Jak zwykle zrobimy to na dwa sposoby (pierwszy – klikając, drugi - korzystając z języka zapytań). Postaram się, aby stało się to już tradycją, że wszystkie operacje będę przedstawiał na dwa sposoby. Tak, aby każdy mógł wyrobić w sobie swój własny sposób korzystania SQL Server 2005 w najwygodniejszy dla niego sposób. Przypuśćmy więc, że preferujemy polskie imiona, a że tak się składa, iż jesteśmy administratorami serwera baz danych i wolno nam zrobić bardzo dużo z danymi, zmieniamy imię pani Catherine na Katarzyna. Aby tego dokonać przystępujemy do analogicznej procedury jak przed chwilą. Klikamy prawym klawiszem myszy na tabelę [Person].[Contact] i wybieramy opcję Open Table, odszukujemy w wynikach pozycję z Ms. Catherine Abel (drugi wiersz na liście) naciskamy na komórkę z imieniem Catherine i po prostu wpisujemy Katarzyna. Po lewej stronie powinna pojawić się ikona z ołówkiem, co oznacza, że wiersz został w jakiś sposób zmodyfikowany. W ...
modnykitel