Nauka jakiegokolwiek języka „na sucho”, mija się z celem. Dotyczy to zarówno tradycyjnych języków obcych ale także programowania czy języka SQL. Wszystkie tematy poruszane w tym kursie, najlepiej przećwiczyć na własnym poligonie. W trakcie pisania, pojawiają się nowe pytania, można szerzej przećwiczyć różne warianty i tym samym lepiej zrozumieć temat.
Do pełnego zrozumienia zagadnień poruszanych tutaj, koniecznie powinieneś zbudować sobie środowisko testowe.
Jeśli chodzi o SQL Server sugeruję zacząć od wersji najnowszej (obecnie 2017).
Serwer testowy
Do celów edukacyjnych, idealne są edycje darmowa Express oraz testowa Evaluation Edition (180-dniowy trail w najwyższej wersji Enterprise). Zagadnienia przedstawione w tym kursie, możesz w pełni przetestować na darmowej wersji Express dostępnej tutaj.
Co prawda jej możliwości są okrojone w stosunku do pełnych, płatnych wersji (pod względem wydajnościowym, funkcji związanych z wysoką dostępnością, BI etc.), ale jeśli chodzi o naukę SQL to w zupełności wystarczy.
Wersja SQL Server Express to platforma, którą możesz używać również we wdrożeniach komercyjnych. Jednymi z bardziej dotkliwych ograniczeń są :
- maksymalny rozmiar bazy do 10GB
- procesy SQL Servera będą wykorzystywały max jeden procesor (lub 4 rdzenie) oraz 1 GB RAM.
Pełne porównanie funkcjonalności różnych wersji SQL Server 2012 – znajdziesz na oficjalnych stronach Microsoft.
Instalując serwer, pamiętaj o zaznaczeniu narzędzi do zarządzania bazami danych czyli Microsoft SQL Server Management Studio. Jest to graficzny interfejs użytkownika, dzięki któremu w prosty sposób możesz zarządzać serwerem, bazami i wszystkimi obiektami. Jest to też wygodne środowisko deweloperskie, do pisania, testowania zapytań i skryptów.
Testowe bazy danych
Przykłady prezentowe w tym kursie, bazują na dwóch oficjalnych, testowych bazach danych. Możesz je pobrać tutaj.
- Northwind – prosta, mała baza, znana bardzo dobrze ze starszych wersji SQL Server. Używam jej bo zawiera proste struktury tabel, na których można prezentować bardziej złożone zapytania, bez „zaciemniania” sedna tego co chce pokazać. Do instalacji, wystarczy uruchomić skrypt SQL (otwórz go i uruchom w Microsoft SQL Server Management Studio) – do pobrania tutaj.
- AdventureWorks2008 – znacznie bardziej zaawansowana, posiada wiele cech rzeczywistej, produkcyjnej bazy danych. Tu z uwagi na liczbę, różnorodność danych, łatwiej zaprezentować aspekty związane z wydajnością zapytań. Najłatwiej „zainstalować” ją poprzez dołączenie do bazy – prawy strzał w oknie Object Explorera na Databases i Attach. Wystarczy następnie wskazać plik bazy z rozszerzeniem mdf (podstawowy plik bazy danych). Baza dostępna w różnych wersjach (OLTP,DW). W kursie korzystam z AdventureWorks2008, do pobrania na stronach CodePlex, gdzie znajdziesz również jej pozostałe wersje.
- Twoje własne testowe bazy danych. Nic nie stoi na przeszkodzie, żebyś tworzył własne testowe bazy danych. Oczywiście musisz mieć uprawnienia na serwerze do ich tworzenia, ale zakładając że jesteś sam sobie sterem, żaglem i adminem, możesz to wykonać za pomocą T-SQL :
CREATE DATABASE Testowa
Środowisko testowe i produkcyjne
Z definicji, środowiska testowe i produkcyjne powinny być maksymalnie odseparowane, najlepiej hardware’owo.
Jeśli chcesz testować zapytania na bazach produkcyjnych, powinieneś zawsze uwzględnić fakt, że działanie ich wpływa na pracę serwera. Odczytujesz przecież konkretne dane, zatem korzystasz z zasobów dyskowych, pamięci i mocy procesora maszyny. Niektóre z nich mogą znacząco wpłynąć na ogólną wydajność (np. jeśli przez przypadek napiszesz zapytanie będące iloczynem kartezjańskim, lub gdy będziesz chciał odczytać wszystkie rekordy tabeli, która zawiera wiele milionów rekordów).
Jako administrator baz danych sugeruje, że jeśli musisz testowo odpytywać bazy produkcyjne lub ćwiczyć na nich swoje umiejętności, zastosuj się do kilku poniższych zasad :
- jeśli możesz, ćwicz zawsze na bazie testowej na serwerze testowym 🙂 (może to być kopia zapasowa bazy produkcyjnej)
- ustaw poziom izolacji swojej sesji na Read Uncommitted. Przyspieszy to czas odczytów (nie będziesz czekał na zwolnienie blokad) Twoich zapytań i Twojej działalności na danych produkcyjnych. Wykonasz to za pomocą polecenia SET. Jeśli testujesz swoje zapytania, zazwyczaj izolacja między transakcjami nie jest istotna (chyba że testujesz współbieżność).
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
- próbkuj wyciągane dane z tabel stosując klauzulę TOP (jeśli chcesz na przykład sprawdzić co dana tabela zawiera). Nie pobieraj wszystkiego jak leci – select * from tabela to bardzo złe zapytanie w środowisku produkcyjnym
Dzień dobry. Warto by skorygować link do pobrania bazy AdventureWorks – strona do której obecnie odnosi się link „świeci się na czerwono” w Chrome jako niezabezpieczona, co może wystraszyć część czytelników kursu. Jeżeli zdecydujemy się jednak wejść pod wskazany adres to dowiemy się że przykładowe bazy zostały przeniesione na GitHuba: https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks
Dzięki wielkie za komentarz, link poprawiony ! pozdrawiam
Przepraszam, że ośmielę się zapytać. Zakładam, że pytanie dla wszystkich innych będzie wydawać się być nawet żałosne, jednak jestem na tyle nieporadny, bądź nieświadomy, że i to mnie przerasta. Mianowicie pobralem Express z linku powyżej, pobrałem i zainstalowałem za jego pomocą Microsoft SQL server managment studio, pobrałem również (jak mi się wydaje) za pomocą Express sam server do przeprowadzania operacji. Otworzyłem za pomocą M SQL server managment baze danych Northwind jednak ciągle mimo to nie moge połączyć się z serwerem. Mam świadomość, że rozwiązanie zapewne jest proste, proszę się nie denerwować. Czego nie zrobiłem lub co mogłem zrobić źle ? Albo jak połączyć się z serwerem ? Życzę Wszystkim wesołych świąt.
Hej M. myślę, że najlepiej poszukaj na YouTube albo gdzieś jakiegoś tutoriala jak zainstalować SQL Express + Management Studio – w najprostszym scenariuszu wystarczy tylko next > next … i już. Wybacz, ale naprawdę trudno zgadnąć co mogłeś zrobić źle 🙂 Pozdrawiam i życzę powodzenia
Link do SQL servera w wersji express nie działa. Nie mogę go wyszukać na stronie Microsoftu. Poprawisz może linka ? 🙂
Ok. dzięki 😉
Dzień dobry. Jestem laikiem w temacie i od razu natrafiłem na problem.
Mam SQL Server 2014 Management Studio i nie mogę uruchomić bazy Northwind. Wyskakuje błąd podczas podłączania bazy przez „attach”:
TITLE: Microsoft SQL Server Management Studio
——————————
Attach database failed for Server 'KRUHEL\SQLEXPRESS’. (Microsoft.SqlServer.Smo)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476
——————————
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
——————————
Database 'Northwind’ cannot be upgraded because its non-release version (539) is not supported by this version of SQL Server. You cannot open a database that is incompatible with this version of sqlservr.exe. You must re-create the database.
Could not open new database 'Northwind’. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 950)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=950&LinkId=20476
——————————
BUTTONS:
OK
——————————
Czy mozna przekonwertowac bazę Northwind do wersji współpracującej z SQL 2014 ? Czy muszę wgrać wcześniejsza wesję SQL ?
Skorzystaj ze skryptu SQL do stworzenia tej bazy – do pobrania tutaj https://northwinddatabase.codeplex.com/releases/view/71634
Gdzie mogę dostać baze Northwind w polskiej wersji ? Przez cały kurs operujesz na danych z polskimi nazwami, linki do Northwind, które podajesz przekierowuja tylko do angielskiej wersji….
Ogólnie należy przyjąć jako naczelną zasadę, że w informatyce nie ma co liczyć na stosowanie języka polskiego. Np. że dokumentacja do jakiegoś języka programowania będzie przetłumaczona na j.polski. Na jakimś forum dyskusyjnym znalazłem wpisy, których sedno można sparafrazować tak: jaki język muszę znać/nauczyć się aby pisać programy/pracować w branży IT? Odpowiedź – język angielski.
Przy instalacji Northwind na nowszych serwerach 2008 lub 2012 pojawia się błąd:
An error occurred when attaching the database(s). Click the hyperlink in the Message column for details
rozwiązanie znalazłem tu (może się komuś przyda):
http://www.howtosolutions.net/2013/07/solving-install-northwind-database-on-sql-server-problem/#.U_MDWfmPlqI
A ja w tym celu polecam stronę: http://businessimpactinc.com/install-northwind-database/
Witam,
Kurs mega! Jednak mam problem z załadowaniem bazy Nothwind. Czy może to być kwestia niekompatybilności z SQL Server 2014 ?
Pozdrawiam
Piotr
Jeśli mówimy o skrypcie instnwnd.sql, tworzącym bazę testową Northwind, to istnieje minimalna niekompatybilność jeśli chodzi o SQL Server 2014. Dwa polecenia wygenerują błąd (wywołanie procedury sp_dboption) – możesz je po prostu pominąć.
Pełną informację na temat instalacji Northwind znajdziesz w domyślnym folderze po zainstalowaniu tego pakietu .msi ( zakładam że pobrałeś go stąd ) czyli na C:\SQL Server 2000 Sample Databases\ReadMe_SQL2000SampleDbScripts.htm.