MIGRACJA BAZY DANYCH
Z MS ACCESS DO MS SQL SERVER
Warszawa 2007
Spis tre艣ci
1. Wprowadzenie do MS SQL Server 2005
Wprowadzenie do MS SQL Server 2005
Microsoft SQL Server 2005 to system zarz膮dzania baz膮 danych, kt贸ry opr贸cz podstawowych funkcji przechowywania, przetwarzania i wyszukiwania danych posiada szereg dodatkowych narz臋dzi u艂atwiaj膮cych m.in. eksploatacj臋, zarz膮dzanie, analiz臋 i raportowanie. Poni偶ej prezentowany jest kr贸tki opis niekt贸rych z jego komponent贸w.
Podstawowym silnikiem bazy danych jest SQL Server Database Services. Zawiera narz臋dzia do zarz膮dzania danymi relacyjnymi oraz XML. W sk艂ad SQL Server Database Services wchodz膮 nast臋puj膮ce komponenty:
Data files (odpowiedzialny za stworzenie folderu w 艣cie偶ce, kt贸ra u偶ytkownik poda jako folder docelowy instalacji);
Replication (umo偶liwia kopiowanie danych i obiekt贸w bazy danych mi臋dzy jedn膮 lub wieloma bazami danych);
Full-Text search (zawiera silnik do szybkiego wyszukiwania danych tekstowych w bazie danych - tworzy indeksy dla danych tekstowych, dzi臋ki czemu wyszukiwanie jest szybsze).
Kolejne narz臋dzie to Analysis Services - zawiera narz臋dzia OLAP (ang. Online Analytical Processing), kt贸re umo偶liwiaj膮 przedstawianie analiz oraz wspieraj膮 wyszukiwanie informacji w hurtowniach danych.
Report Server to 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 jest platform膮, 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 to zbi贸r narz臋dzi i programowalnych obiekt贸w s艂u偶膮cych do tworzenia i zarz膮dzania zbiorami, kt贸re wydobywaj膮, przetwarzaj膮 i 艂aduj膮 dane.
Client Components: zawiera narz臋dzia do zarz膮dzania baz膮 danych oraz przyk艂adowe bazy danych i aplikacje. W sk艂ad Client Components wchodz膮:
SQL Server Command Line Tools - zawiera narz臋dzia, kt贸re umo偶liwiaj膮 administracj臋 serwerem SQL z poziomu linii polece艅.
Report Server Tools - instaluje narz臋dzie do konfiguracji Report Server'a jak i umo偶liwia administracj臋 Report Server'em z poziomu wiersza polece艅.
Connectivity Components - instaluje komponenty umo偶liwiaj膮ce komunikacj臋 mi臋dzy klientem a serwerem (zawiera m.in. biblioteki dla ODBC oraz OLE DB.
Programming Models - instaluje oprogramowanie umo偶liwiaj膮ce developerom dodawanie lub modyfikowanie m.in. narz臋dzi replikacji oraz relacji.
Data Transformation Services Runtime - instaluje 艣rodowisko umo偶liwiaj膮ce uruchamianie pakiet贸w stworzonych w SQL Server 2000 za pomoc膮 narz臋dzia Data Transformation Services.
Management Tools - zawiera narz臋dzia do zarz膮dzania SQL Server'em (SQL Server Configuration Manager - do zarz膮dzania ustawieniami konfiguracji sieci serwera i klienta, SQL Server Management Studio - m.in. do edycji i wykonywania zapyta艅, SQL Profiler - umo偶liwia graficzny monitoring bazy danych SQL Server i Replication Monitor - umo偶liwia graficzny podgl膮d topologii replikacji oraz dostarcza szczeg贸艂owych informacji na o statusie publikacji i subskrypcji).
Development Tools - instaluje nast臋puj膮ce narz臋dzia: Business Intelligence Development Studio, Reporting Services Report Designer, Reporting Services Model Designer, Report Designer (narz臋dzie do publikacji raport贸w dla Report Server) oraz SDK.
Firma Microsoft udost臋pnia ca艂y szereg pomocy, kt贸re umo偶liwiaj膮 lepsze i bardziej efektywne korzystanie z narz臋dzia MS SQL Server. Dost臋pne na stronach MS Books Online Documentation and Samples zawiera wsparcie techniczne Microsoftu - dokumentacj臋, przyk艂adowe bazy danych (3 bazy danych AdventureWorks) oraz przyk艂adowe kody, progamy i rozwi膮zania. Dodatkowo wersja uproszczona systemu - MS SQL Server 2005 Express Edition jest darmowa.
Wi臋cej informacji mo偶na znale藕膰 na stronie: http://www.microsoft.com/sql/default.mspx
Migracja bazy danych
Wprowadzenie
Tworzenie bazy danych polega na przygotowaniu struktury do sk艂adowania danych (pp. Rys. 1). Struktura ta zawiera przynajmniej jeden plik danych, zawieraj膮cy obiekty bazy i聽jeden plik rejestru transakcji. Przed utworzeniem bazy warto zapozna膰 si臋 z聽architektur膮 magazynu danych, a聽tak偶e z聽funkcj膮 rejestru transakcji.
Rys. 1 Struktura bazy danych w MS SQL Server
Przy tworzeniu bazy istotne jest zrozumienie sposobu sk艂adowania danych, dzi臋ki czemu mo偶liwe jest okre艣lenie ilo艣ci przestrzeni dyskowej, kt贸r膮 trzeba przydzieli膰 bazie. Nale偶y zwr贸ci膰 uwag臋 na nast臋puj膮ce kwestie dotycz膮ce sk艂adowania danych:
Wszystkie bazy posiadaj膮 podstawowy plik danych (*.mdf) oraz jeden lub wi臋cej plik贸w rejestru transakcji (*.ldf). Baza mo偶e mie膰 tak偶e dodatkowe pliki danych (*.ndf). Pliki te posiadaj膮 nazw臋 logiczn膮, u偶ywan膮 w聽instrukcjach j臋zyka Transact-SQL oraz nazw臋 pliku systemu operacyjnego.
Gdy tworzona jest baza danych, to w bazie tej umieszczana jest kopia bazy model, zawieraj膮cej tabele systemowe. Minimalny rozmiar bazy musi by膰 r贸wny lub wi臋kszy od rozmiaru bazy model.
Dane sk艂adowane s膮 na stronach. Strona ma rozmiar 8 KB.
Pliki rejestru transakcji przechowuj膮 wszystkie informacje, niezb臋dne do regeneracji bazy. Domy艣lnie rozmiar rejestru transakcji stanowi 25% rozmiaru plik贸w danych. Aby unikn膮膰 rywalizacji o przestrze艅 dyskow膮, rejestr transakcji nale偶y umie艣ci膰 na innym dysku ni偶 dane.
Rejestr transakcji zapisuje modyfikacje danych wprowadzone do bazy przy pomocy instrukcji: INSERT, UPDATE oraz DELETE. W razie awarii systemu, proces automatycznej regeneracji serwera Microsoft SQL聽Server wykorzystuje rejestr transakcji do ponowienia zako艅czonych transakcji oraz anulowania transakcji niezako艅czonych. Znaczniki transakcji wykorzystywane s膮 w聽czasie automatycznej regeneracji do okre艣lenia punktu startowego i聽ko艅cowego transakcji. Transakcja uznawana jest za kompletn膮, je艣li znacznik BEGIN TRANSACTION posiada odpowiadaj膮cy mu znacznik COMMIT TRANSACTION.
Zadanie
Nale偶y dokona膰 migracji bazy danych Kadry z systemu MS Access do systemu MS SQL Server.
Wykonanie zadania
Rozpocz臋cie pracy w MS SQL Server wymaga utworzenia maszyny wirtualnej, w kt贸rej system b臋dzie dzia艂a艂. Operacj臋 tworzenia nowej maszyny wirtualnej, kopiowania do niej plik贸w z serwera sieciowego nale偶y wykona膰 z pomoc膮 Prowadz膮cego laboratorium.
MS SQL Server zosta艂 zainstalowany wewn膮trz maszyny wirtualnej, dlatego prac臋 rozpoczynamy od uruchomienia aplikacji Microsoft Virtual PC. Otworzy si臋 konsola programu, w kt贸rej nale偶y wybra膰 zainstalowan膮 maszyn臋 wirtualn膮 i wcisn膮膰 przycisk Start (Rys. 2).
Rys. 2 Uruchamianie maszyny wirtualnej
Po uruchomieniu systemu Windows w oknie maszyny wirtualnej, traktujemy j膮 jak nasze okno robocze - pracujemy tylko w tym oknie, a偶 do zamkni臋cia aplikacji Microsoft Virtual PC.
W oknie Virtual PC nale偶y znale藕膰 (pod przyciskiem Start lub na Pulpicie) i uruchomi膰 program MS SQL Server Management Studio.
Rys. 3 Uruchamianie MS SQL Server Management Studio
Serwer wymaga zalogowania si臋 - nie nale偶y niczego zmienia膰 w ustawieniach, a jedynie wcisn膮膰 przycisk Connect (Rys. 4).
Rys. 4 Uruchamianie Ms SQL Server Management Studio
Po uzyskaniu po艂膮czenia z serwerem nale偶y utworzy膰 now膮 baz臋 danych (Rys. 5)
Rys. 5 Zak艂adanie nowej bazy danych
W celu utworzenia nowej bazy danych nale偶y zdefiniowa膰 nast臋puj膮ce parametry (Rys. 6):
Nazwa bazy danych - Kadry,
Startowy rozmiar bazy danych - ustawienia domy艣lne: 3MB dla pliku danych, 1MB dla pliku dziennika,
Przyrost danych - co 1 MB bez ogranicze艅 dla pliku danych, co 1 MB do max. 10MB dla pliku dziennika,
艢cie偶ka dost臋pu - folder Baza Danych na Pulpicie.
Rys. 6 Parametry nowej bazy danych
Nowa baza danych jest ju偶 dost臋pna w MS SQL Server (Rys. 7) i mo偶na przyst膮pi膰 do zaimportowania tabel z danymi.
Rys. 7 Nowa baza danych - Kadry
Nale偶y uruchomi膰 program wspomagaj膮cy import i eksport danych pomi臋dzy r贸偶nymi 藕r贸d艂ami zasilaj膮cymi i docelowymi. Jest to program SQL Server Business Intelligence Developer Studio (Rys. 8).
Rys. 8 Uruchamianie SQL Server BI Developer Studio
Na stronie startowej nale偶y wybra膰 Create Project (Rys. 9)
Rys. 9 Strona startowa SQL Server BI Developer Studio
Uruchamiany jest panel, w kt贸rym dokonujemy wyboru typu tworzonego projektu oraz jego parametr贸w (Rys. 10). B臋dzie to nowy projekt typu Integration Services Project. Nale偶y go zapami臋ta膰 pod nazw膮 ImportBD w folderze Pulpit\Instrukcje BD\膯wiczenie 9-10\Wykonanie 膰w 9-10.
Rys. 10 Tworzenie nowego projektu integracji danych
Po uruchomieniu projektu w oknie Solution Explorer (prawdopodobnie prawa cz臋艣膰 ekranu) z menu podr臋cznego folderu SSIS Packages nale偶y wybra膰 opcj臋 SSIS Import and Export Wizard (Rys. 11)
Rys. 11 Uruchamianie kreatora importu i eksportu danych
W pierwszym kroku nale偶y wyspecyfikowa膰 typ 藕r贸d艂a danych (Ms Access) oraz 艣cie偶k臋 dost臋pu i nazw臋 藕r贸d艂a danych (C:\Documents and Settings\SAS User\Pulpit\Baza danych\Kadry.mdb)
Rys. 12 Specyfikacja 藕r贸d艂a danych
W drugim kroku nale偶y wskaza膰 miejsce importu danych - baza danych Kadry na MS SQL Server'ze (Rys. 13)
Rys. 13 Miejsce importu danych
W trzecim kroku nale偶y wybra膰 metod臋 importu danych - automatyczn膮 (pierwsza opcja) lub implementacyjn膮 (druga opcja). Wskazujemy metod臋 pierwsz膮.
Rys. 14 Metoda importu danych
W czwartym kroku wybieramy tabele, kt贸re b臋d膮 importowane ze 藕r贸d艂a. Nale偶y zaimportowa膰 wszystkie tabele ze 藕r贸d艂a do bazy docelowej (Rys. 15).
Rys. 15 Lista mapowanych tabel
Kreowanie projektu ko艅czy lista czynno艣ci, kt贸re zostan膮 zapisane i zrealizowane w bie偶膮cym procesie importu danych (Rys. 16)
Rys. 16 Zako艅czenie kreowania procesu importu danych
Po wci艣ni臋ciu klawisza Finish utworzony w kreatorze kod jest kompilowany i sprawdzany pod k膮tem mo偶liwo艣ci prawid艂owego zrealizowania ca艂ego procesu (Rys. 17)
Rys. 17 Raport kompilacji i sprawdzenia programu
UWAGA: Tylko Status o warto艣ci Success w ka偶dej pozycji kolumny Status umo偶liwia poprawne wykonanie procesu zaimportowania danych ze 藕r贸de艂 zewn臋trznych do docelowych!!!
Proces importu danych zosta艂 przygotowany i jest gotowy do uruchomienia (Rys. 18).
Rys. 18 Model procesu importowania danych
Teraz wystarczy uruchomi膰 ca艂y proces (pp. Rys. 19)
Rys. 19 Uruchamianie procesu importu danych
Kolor zielony na poszczeg贸lnych elementach procesu oznacza poprawnie zako艅czone zadanie (kolor 偶贸艂ty oznacza wykonywanie zadania, kolor czerwony oznacza pojawienie si臋 b艂臋du). Rys. 20 prezentuje poprawnie zako艅czony proces importu danych.
Rys. 20 Poprawnie zako艅czony proces importu danych
Po wej艣ciu do w臋z艂a Data Flow Task mo偶na sprawdzi膰 ile rekord贸w zosta艂o zaimportowane z tabel 藕r贸d艂a do tabel docelowych (Rys. 21). W ten spos贸b zako艅czyli艣my import tabel z danymi. Teraz trzeba przywr贸ci膰 struktur臋 relacji w bazie danych.
Rys. 21 Zawarto艣膰 w臋z艂a Data Flow Task
Aby utworzy膰 diagram relacji nale偶y powr贸ci膰 do programu MS SQL Server Management Studio, odnale藕膰 folder Database Diagrams i z menu pomocniczego wybra膰 opcj臋 New Database Diagram.
Rys. 22 Generowanie struktury relacji
Pokazuje si臋 okno Add Table, w kt贸rym nale偶y zaznaczy膰 wszystkie tabele (Rys. 23), a nast臋pnie wybra膰 przycisk Add.
Rys. 23 Do艂膮czanie tabel do struktury relacji
Teraz trzeba wskaza膰 w ka偶dej tabeli (opr贸cz tabel Suplement i RealizacjaProjektow) jej klucz podstawowy (Rys. 24)
Rys. 24 Ustawianie kluczy podstawowych
W tabeli RealizacjaProjektow klucz podstawowy sk艂ada si臋 z dw贸ch p贸l: idPrac i idProj. Nale偶y wi臋c zaznaczy膰 obydwa pola wchodz膮ce w sk艂ad klucza podstawowego, klikaj膮c myszk膮 w nag艂贸wek wiersza ka偶dego z p贸l (zgodnie ze wskazaniem strza艂ki na Rys. 25) i trzymaj膮c wci艣ni臋ty klawisz Shift.
Rys. 25 Zaznaczanie dw贸ch p贸l do klucza z艂o偶onego
Nast臋pnie wybieramy na pasku narz臋dziowym narz臋dzie Set Primary Key (Rys. 26) i tworzymy klucz z艂o偶ony dla tabeli RealizacjaProjektow.
Rys. 26 Uaktywnienie klucza z艂o偶onego
Teraz mo偶na utworzy膰 relacje pomi臋dzy tabelami przeci膮gaj膮c klucze podstawowe na odpowiadaj膮ce im klucze obce (Rys. 27). W ten spos贸b powstanie pe艂na struktura bazy danych Kadry.
Rys. 27 Tworzenie relacji
Wygenerowany Database Diagram nale偶y nazwa膰 Struktura Relacji (Rys. 28).
Rys. 28 Struktura relacji bazy danych Kadry
Zadanie do wykonania
Nale偶y dokona膰 migracji projektowanej bazy danych z MS Access do MS SQL Server - zaimportowa膰 tabele z danymi, przywr贸ci膰 struktur臋 relacji. Zadanie stanowi element oceniany.
dr in偶. T. Ostrowska, dr in偶. K. Rostek Zak艂ad System贸w Informatycznych
IOSP PW Bazy Danych - laboratorium
cw 9 Migracja bazy danych, 2007-11-25