SQL-Strukturalny Język Zapytań (ang. Stuctured Query Language) jest językiem czwartej generacji, który został w ciągu wielu lat opracowany przez grupę badawcza IBM. Stał się międzynarodowym standardem dla języków baz danych i występuje obecnie w produktach większości liczących się firm, zajmujących się sprzedażą oprogramowania dla baz danych.
Ponieważ SQL jest językiem standaryzowanym, dostęp do danych jest możliwy przez wiele różnych platform sprzętowych, w tym komputery osobiste, mikrokomputery i duże komputery. Inna korzyść związana z SQL polega na tym, że takie oprogramowanie jak arkusze kalkulacyjne czy procesory tekstów może importować dane z baz danych opartych na SQL. Polecenia SQL maja postać zbliżoną do zdań w języku angielskim i są stosowane w celu uzyskania dostępu do danych i sterowania operacjami w bazie danych. Użytkownik mający małe doświadczenie w przetwarzaniu danych lub nie mający go wcale, może szybko nauczyć się podstawowych konstrukcji SQL, a ekspert od przetwarzania danych może znaleźć w tym języku pełny zestaw potrzebnych mu narzędzi. Zatem jest to język, którego używają zarówno zwykli użytkownicy, jak i fachowcy od przetwarzania danych.
SQL jest językiem strukturalnym, zdefiniowanym za pomocą reguł składniowych. Występują w nim trzy rodzaje poleceń. Pierwszy to polecenia języka definiowania danych, które umożliwiają tworzenie obiektów bazy danych, takie jak tabela i perspektywy. Drugi rodzaj to polecenia języka operowania danymi, które są używane do wydobywania informacji z bazy danych, usuwania informacji z bazy danych i dodawania ich do niej. Trzeci rodzaj to polecenia języka administrowania danymi, które służą do przyznawania i odwoływania uprawnienia dostępu do bazy danych. Użytkownik może korzystać z poleceń SQL w sposób interakcyjny bądź za pomocą takiego interfejsu jak zapytanie przez przykład ( QBE ).
Język SQL jest przeznaczony dla wielu różnych grup odbiorców:
zwykłych użytkowników
ekspertów od przetwarzania danych
twórców programów użytkowych (aplikacji)
administratorów baz danych
kadry kierowniczej
personelu centrum informacji i dla wielu innych
Kiedy używa się SQL, wszystkie dane są dostępne za pomocą standardowego interfejsu użytkownika. Użytkownicy i komputery "rozmawiają" jednym i tym samym językiem. Ze względu na stosowanie SQL zmniejsza się czas szkolenia potrzebnego przy zmianie miejsca pracy i systemu przez pracownika.
Język SQL jest o wiele bardziej wydajny niż tradycyjne języki programowania, takie jak np. Cobol. Program może być zapisany w kilku wierszach kodu, a nie jak w przypadku tradycyjnego języka programowania - na kilku stronach. Z tego powodu koszty tworzenia aplikacji są jedynie ułamkiem kosztów występujących przy użyciu tradycyjnych języków.
SQL może być użyty jako standardowe narzędzie umożliwiające dostęp do danych w różnorodnych środowiskach z różnym sprzętem komputerowym i różnymi systemami operacyjnymi.
Historia sql
W latach 70-tych firma IBM stworzyła język programowania przeznaczony specjalnie do zapytań do bazy danych, zwany SEQUEL, co oznacza Structured English Query Language. Z czasem, język ten został poszerzony, i obecnie nie jest to jedynie język zapytań, ale może być także używany do tworzenia i zarządzania mechanizmami bezpieczeństwa bazy danych. Firma IBM udostępniła ogólnie SEQUEL, który od tej pory znany jest jako SQL. Ze względu na historię powstania słowo SQL można wymawiać jako sequel lub przeliterować jako S-Q-L.
Obecne motory baz danych używają różnych wersji języka SQL. Microsoft SQL Server używa wersji zwanej Transact-SQL (T-SQL). Pomimo używania języka Transact-SQL i nauki jego podstaw, w tej książce nacisk jest położony na instalowanie, zarządzanie i połączenie z serwerem SQL Server. Wydawnictwo Sams Publishing wydało również książkę zatytułowaną „Teach Yourself Transact-SQL in 21 Days”, Second Edition, która zawiera więcej szczegółów na temat tego języka i jego wykorzystania.
Początkowo firma Microsoft rozwijała SQL Server (produkt z rodziny baz danych, który rozumie język SQL) wraz z firmą Sybase w celu wykorzystania go na platformie IBM OS/2. Kiedy firmy Microsoft i IBM rozdzieliły się, firma Microsoft zaniechała OS/2 na rzecz swojego nowego systemu operacyjnego - Windows NT Advanced Server. W tym punkcie firma Microsoft zdecydowała, że sama będzie rozwijać mechanizm SQL Server dla systemu Windows NT. Wynikowym produktem był serwer Microsoft SQL Server 4.2, aktualizowany do wersji 4.21. Po rozstaniu z Microsoft, firma Sybase nadal kontynuowała rozwój serwera bazy danych dla systemu Windows NT (znanego obecnie jako Sybase Adaptive Server Enterprise), a firma Microsoft rozwijała SQL Server 6.0, następnie SQL Server 6.5, które również współpracowały z systemem Windows NT. Serwer SQL Server 7.0 wprowadził możliwość uruchamiania go w systemie Windows NT, ale także w systemie Windows 95 i Windows 98.
SQL Server 7.0 stanowił przełom w wykorzystaniu kodu Sybase przez grupę projektantów baz danych firmy Microsoft. Wcześniejsze wersje były nadal bardzo zbliżone do Sybase. Jednak, wraz z powstaniem serwera SQL Server 7.0 firma Microsoft radykalnie przekształciła i zmieniła kod Sybase. Przedsiębiorstwo Microsoft zaprojektowało również od nowa jądro bazy danych i wprowadziło skomplikowany optymalizator zapytań oraz zaawansowany mechanizm składowania danych. Produkt SQL Server 2000 rozszerza tę nową linię kodu, dodając znaczące, nowe właściwości. Poprawia również skalowalność, niezawodność i dostępność tego produktu oraz znacznie ułatwia pracę administratora bazy danych. Pomimo możliwości uruchomienia serwera SQL Server 2000 w systemie Windows 9x, nie można w tym systemie wykorzystać pełnej funkcjonalności tego serwera. Uruchamiając serwer w systemie Windows 9x nie można skorzystać z wielu procesorów, zabezpieczeń stosowanych w systemie Windows NT/2000, woluminów New Technology File System (NTFS) i wielu innych udogodnień. Zaleca się używanie serwera SQL Server 2000 raczej na platformie Windows NT lub Windows 2000 niż Windows 9x. System Windows NT/2000 posiada również inne zalety. Platforma NT jest stworzona do obsługi wielu użytkowników. System Windows 9x nie był tworzony w ten sposób i wydajność serwera SQL Server na tej platformie gwałtownie maleje po dodaniu większej liczby użytkowników. Książka ta zakłada, że wykorzystywany jest system Windows 2000.
W systemie Windows NT Workstation, Windows NT Server oraz w każdej wersji MS Windows 2000 serwer SQL Server 2000 jest zaimplementowany jako usługa. W systemach Windows 98 i Windows ME, SQL Server uruchamiany jest jako aplikacja aktualnie zalogowanego użytkownika. Dołączone narzędzia, takie jak SQL Server Enterprise Manager, pracujące jako zwykle aplikacje typu klient-serwer, pozwalają na uruchamianie ich z dowolnego miejsca w celu kontroli baz danych serwera SQL Server.
Usługa jest to aplikacja, jaką system Windows NT i Windows 2000 może uruchomić automatycznie podczas uruchamiania systemu lub może zostać ona uruchomiona ręcznie na żądanie. Usługi w systemach Windows NT/2000 posiadają interfejs API, który może być kontrolowany programowo. Usługi pozwalają na uruchamianie aplikacji takich jak Microsoft SQL Server bez potrzeby logowania użytkownika na komputerze serwera.
Sklad jezyka sql
Język SQL składa się z kilku części:
* Data Definition Language (DDL) - zawiera komendy służące do definiowania, modyfikowania i usuwania schematów relacji oraz do tworzenia indeksów.
* Interactive Data-Manipulation Language (MDL) - zawiera język zapytań oparty na algebrze relacyjnej. W jego skład wchodzą także polecenia wstawiania, usuwania i modyfikacji wierszy w bazie danych.
* Autoryzacja (Authorisation) - SQL DDL zawiera obsługę praw dostępu do relacji i widoków.
* Kontrola transakcji (Transaction control) - SQL zawiera polecenia służące do rozpoczynania i kończenia transakcji. Niektóre implementacje dopuszczają również dokładne wyszukiwanie danych pod katem powtarzalności.
* Integralnosc danych (Integrity) - SQL DDL zawiera polecenia służące do specyfikowania ograniczeń co do integralności i poprawności danych, do których musza się stosować wpisy w bazie. Zmiany naruszające te ograniczenia są niedozwolone.
* Zagnieżdżony DML (Embeded DML) - zaprojektowany do użycia wewnątrz języków programowania ogólnego przeznaczenia takich, jak PL/I, Cobol, Pascal, Fortran i C.
* Definicje widoków (View definitions) - SQL DDL zawiera polecenia służące do definiowania widoków dla danych wyjściowych.
Podstawowe pojecia sql
Należy założyć, że informacje są przechowywane w relacyjnych bazach danych. Mówiąc językiem laickim, relacyjna baza danych jest zbiorem tabel. Dane są ułożone w tabeli w dwóch wymiarach - w pionowych kolumnach i poziomych wierszach.
Przedstawiona niżej tabela działów ma trzy (3) kolumny i cztery (4) wiersze.
NUMDZ |
NAZWDZ |
LOK |
100 |
Analityka |
Warszawa |
200 |
Marketing |
Radom |
300 |
Operacje finansowe |
Kielce |
400 |
Logistyka |
Gdynia |
Tabele SQL są dwuwymiarowe. Mają określoną liczbę kolumn i zmienną liczbę nie uporządkowanych wierszy.
Wiersz jest pozycją w tabeli. Każdy wiersz jest określony za pomocą pewnej liczby atrybutów zwanych kolumnami. Każdy na przykład wiersz w tabeli działów (DZIAŁ) jest określony przez numer działu (NUMDZ), nazwę działu (NAZWDZ) i miejsce (LOK)
W przecięciu kolumny i wiersza znajduje się pojedyncza wartość. Każda wartość jest jednego z dostępnych typów danych lub jest specjalną wartością pustą (null). W powyższej tabeli przykładem wartości jest Gdynia.
Co to jest baza danych?
SQL Server używa bazy danych typu relacyjnego. W relacyjnych bazach danych, dane są zgrupowane w tabelach. Tabele są tworzone poprzez grupowanie danych z tego samego tematu i zawierają kolumny oraz wiersze informacji. Tabele są ze sobą wiązane za pomocą mechanizmów bazy danych, gdy uruchamiane jest zapytanie. Tabele są ściśle związane z pojęciami relacji lub encji stosowanymi w odpowiednich książkach teoretycznych, w tej książce przedstawiona jest jednak praktyka. Generalnie bazę danych można przedstawić jako zbiór powiązanych danych. W niektórych wcześniejszych systemach baz danych, baza danych była plikiem - takim jak employee.dbf, zawierającym pojedynczą tabelę danych. Wewnątrz pliku employee.dbf znajdowały się kolumny odnoszące się do danych pracownika, takich jak pensja, data przyjęcia, nazwisko, numer legitymacji ubezpieczeniowej itp. Plik zawierał wiersz dla każdej osoby w firmie, z odpowiednimi wartościami w odpowiednich kolumnach. Indeksy, użyte do przyspieszenia dostępu do danych, były w odrębnym pliku, tak jak inne elementy dotyczące zabezpieczeń.
W serwerze SQL Server 2000, baza danych nie koniecznie jest związana z pojedynczym plikiem; jest to pojęcie bardziej logiczne, oparte na zbiorze powiązanych obiektów. Przykładowo, baza danych na serwerze SQL Server zawiera nie tylko pierwotne dane, ale także strukturę bazy danych, wszelkie indeksy, zabezpieczenia bazy i być może inne obiekty takie jak widoki lub procedury składowane związane z określoną bazą.
Obiekty relacyjnej bazy danych
Relacyjna baza danych składa się z obiektów różnego typu. Obiekty te zostały opisane w poszczególnych odnoszących się do nich rozdziałach. Poniżej przedstawiono kilka najpowszechniejszych obiektów:
Tabele są obiektami zawierającymi typy danych i aktualne dane. Tabele zostały omówione w rozdziale 9. „Typy danych i tworzenie tabel”.
Kolumny są częścią tabel przechowującą dane. Kolumny muszą posiadać określony typ danych i unikalną nazwę.
Typy danych określają rodzaj przechowywanych danych. Można korzystać z wielu typów danych, takich jak typ znakowy, numeryczny i typ data. Każdej kolumnie w tabeli jest przypisany pojedynczy typ danych.
Procedury składowane są podobne do makr stworzonych w kodzie języka Transact-SQL, które można napisać i zachować pod daną nazwą. Przez wykonywanie procedury zostaje faktycznie uruchomiony kod języka T-SQL zawarty w procedurze. Przykładowo, kod języka T-SQL stosowany do uruchamiania co tygodniowych raportów zostaje zachowany jako procedura, a następnie, w celu generacji raportu kod ten jest uruchamiany już jako procedura. Procedur składowanych można używać także jako mechanizmów zabezpieczeń.
Funkcje zdefiniowane przez użytkownika są kodem języka Transact-SQL i są bardzo podobne do procedur składowanych. Jednak funkcje mogą być wywoływane w zapytaniach do bazy danych w celu modyfikacji kolumn danych, które mają być widoczne jako tabela, bez względu na to czy są one tworzone programowo czy dynamicznie. Przykładowo, można napisać własną funkcję daty, aby modyfikowała kolumny danych typu DataGodzina (datetime).
Wyzwalacze są procedurami składowanymi, które są uaktywniane przed lub po dodaniu, zmianą lub usunięciu danych z bazy. Wyzwalacze zapewniają, że reguły biznesowe lub reguły integralności danych w bazie są przestrzegane. Przykładowo, wyzwalacz może zapewnić, ze każda książka w księgarni ma przypisanego prawidłowego wydawcę.
Widoki są to głównie zapytania przechowywane w bazie danych, odnoszące się do jednej lub wielu tabel. Widoki można stworzyć i zachować w celu łatwiejszego użycia w przyszłości. Widoki zwykle wykluczają kolumny z tabeli lub łączą dwie lub więcej tabel. Można ich również używać jako mechanizmów zabezpieczeń.
Indeksy pomagają tak zorganizować dane, że zapytania są wykonywane szybciej. Indeksy zostały omówione szczegółowo w rozdziale 13. „Indeksowanie dla poprawy wydajności”.
Klucze podstawowe pomimo tego, że nie są obiektami, mają podstawowe znaczenie dla relacyjnych baz danych. Wymuszają unikalność wierszy oraz umożliwiają unikatową identyfikację każdego przechowywanego elementu.
Klucze obce to jedna lub więcej kolumn, do których odnoszą się klucze podstawowe lub definicje unikalności z innych tabel. SQL Server wykorzystuje klucze podstawowe i obce do określenia relacji między danymi z odrębnych tabel, podczas wykonywania zapytania.
Definicje poprawności są zaimplementowanymi w systemie mechanizmami opartymi na serwerze, zapewniającymi integralność danych.
Reguły są przypisane do kolumn, powodując, że wpisywane dane są zgodne z określonymi standardami. Przykładowo, można używać reguł aby upewnić się, czy wpisywany numer telefonu danej osoby zawiera jedynie cyfry. Reguły zostały funkcjonalnie zastąpione przez definicję CHECK w serwerze SQL Server 2000.
Wartości domyślne mogą być ustawione dla pól i są używane, kiedy żadne dane nie zostaną wpisane podczas wykonywania operacji INSERT. Przykładem jest domyślne ustawienie kodu pocztowego obszaru, z którego pochodzi najwięcej klientów. Pozwala to uniknąć każdorazowego wpisywania kodu pocztowego dla klientów lokalnych z danego obszaru. Wartości domyślne zostały funkcjonalnie zastąpione przez definicję DEFAULT w serwerze SQL Server 2000.
Korzysci sql
Jest wiele praktycznych korzyści korzystania z relacyjnego modelu baz danych. Łatwo jest się nauczyć relacyjnej bazy danych, ponieważ istnieje tylko jedna bardzo prosta struktura danych, którą jest tabela. Z tego powodu SQL jest pojęciowo łatwym narzędziem dla użytkownika przy wybieraniu, operowaniu i kontrolowaniu danych.
Korzystając z SQL, operator po prostu opisuje wymagane wyniki, zamiast określać procedurę ich uzyskiwania. Użytkownik wyszczególnia operacje, zaznaczając co ma być wykonane, a nie jak ma być wykonane. Inaczej mówiąc, SQL i relacyjna baza danych są nieproceduralne.
Ponieważ SQL i relacyjna baza danych są nieproceduralne, nie ma potrzeby, aby z góry definiować ścieżkę dostępu do pliku w bazie danych. System SQL samodzielnie odnajduje ścieżkę do rekordów, które są potrzebne - bez jakiejkolwiek interwencji ze strony operatora. Tę właściwość określa się mianem automatycznej nawigacji. Dzięki niej SQL i relacyjna baza danych zwiększają wydajność programisty i są proste w użyciu dla początkującego użytkownika.
W przypadku używania SQL, dane są łatwo dostępne dla wszystkich typów użytkowników. Systemy zarządzania relacyjną bazą danych dostarczają specjalnego programu nazywającego się optymalizatorem zapytań, który automatycznie szuka najbardziej wydajnej ścieżki dostępu do pożądanych wyników. Taki optymalizator automatycznie dostosowuje się do struktury lub schematu tabeli co pozwala na nie modyfikowanie aplikacji.
Kolejnym ważnym powodem wydajności relacyjnych baz danych jest możliwość bezpośredniego modyfikowania ich schematu bez zaburzenia istniejących aplikacji. Nowe kolumny i tabele mogą być zawsze dodawane bez obawy, że zajdzie potrzeba zmiany istniejących programów lub zdefiniowanych z góry ścieżek dostępu.
Jakie rodzaje serwerów sql są dostępne?
Podstawowe pytanie jakie należy sobie zadać to: „Jakie wersji SQL Server potrzebuję?”. Firma Microsoft zaprezentowała jednocześnie sześć edycji serwera SQL Server 2000. Po przeanalizowaniu wymagań serwera i potrzeb, powinno być jasne, z której edycji skorzystać. Jednak, najważniejsze jest, że bez względu na to, którą edycję się wybierze (z wyjątkiem wersji dla Windows CE), stosują się do niej te same reguły, warunki i sposób administracji.
Do czego służy program sql 2000??
Program Microsoft SQL Server 2000 Enterprise Edition jest kompletnym narzędziem bazodanowym i analitycznym umożliwiającym szybkie wdrażanie najnowszej generacji skalowalnych rozwiązań dla handlu elektronicznego, obsługi podstawowych procesów biznesowych oraz przechowywania danych. Serwer umożliwia wyszukiwanie, analizowanie i przetwarzanie danych za pośrednictwem sieci Web. Wbudowany w serwer SQL Server 2000 język XML umożliwia wymianę danych między systemami przejawiającymi wspólne cechy. W łatwy i bezpieczny sposób można uzyskać dostęp do danych za pomocą przeglądarki nawet w sieciach wewnętrznych, a także można dokonywać pełnotekstowego wyszukiwania sformatowanych dokumentów. Program zawiera funkcje analizowania i łączenia kostek analitycznego przetwarzania online (OLAP), również za pośrednictwem sieci Web. Można analizować również sekwencje kliknięć myszą, aby dowiedzieć się o preferencjach klientów odwiedzających daną stronę sieci Web. Obsługuje nieograniczony rozwój firmy dzięki ulepszonym funkcjom skalowalności i niezawodności. Rozproszenie obciążenia bazy danych umożliwia lepsze wykorzystanie możliwości aplikacji. Wielu użytkowników doceni zalety sprzętu umożliwiającego symetryczne przetwarzanie wieloprocesorowe (SMP) oraz zalety systemu operacyjnego Microsoft Windows 2000 Datacenter Server, który pozwala na obsługę do 32 procesorów i do 64 GB pamięci RAM.
Wymagania sprzetowe!
SQL Server 2000, wszystkie wersje
Komputer/procesor |
Procesor Intel® lub zgodny. Pentium 166 MHz lub szybszy, Pentium PRO, Pentium III lub inny najsłabszy procesor wymagany dla systemu operacyjnego wykorzystywanego przez użytkownika, różny dla różnych wersji programu SQL Server. |
Pamięć |
|
Dysk twardy |
|
System operacyjny |
Uwaga: W przypadku systemu Microsoft Windows NT® Server 4.0 należy zainst. dodatek Service Pack 5 (SP 5) lub nowszy. Jest to minimalny wymóg dla wsz. wersji programu SQL Server 2000.
|