Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00727 013416 17835496 na godz. na dobę w sumie
MySQL i mSQL - książka
MySQL i mSQL - książka
Autor: , , Liczba stron: 448
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-149-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> mysql - programowanie
Porównaj ceny (książka, ebook, audiobook).

W przeciwieństwie do komercyjnych produktów, MySQL oraz mSQL są tanie i łatwe w użytkowaniu. Jeśli znasz podstawy C, Javy, Perla lub Pythona -- możesz szybko pisać programy współdziałające z Twoją bazą. Co więcej, możesz osadzać zapytania bezpośrednio w pliku HTML tak, że strona www staje się jej własnym interfejsem do bazy danych.

Książka ta zawiera wszystko, czego potrzebujesz aby wykorzystać MySQL oraz mSQL. Przeprowadza Cię przez cały proces, od instalacji i konfiguracji po interfejsy programowania i podstawową administrację. Zawiera rozdziały z referencjami oraz pokaźny materiał szkoleniowy.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI MySQL i mSQL KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG Autorzy: Randy Jay Yarger, George Reese, Tim King T‡umaczenie: £ukasz Felsztukier, Aleksandra Jakubowska ISBN: 83-7197-149-4 Tytu‡ orygina‡u: Format: B5, stron: 448 MySQL and mSQL W przeciwieæstwie do komercyjnych produkt(cid:243)w, MySQL oraz mSQL s„ tanie i ‡atwe w(cid:160) u¿ytkowaniu. Je(cid:156)li znasz podstawy C, Javy, Perla lub Pythona -- mo¿esz szybko pisa(cid:230) programy wsp(cid:243)‡dzia‡aj„ce z Twoj„ baz„. Co wiŒcej, mo¿esz osadza(cid:230) zapytania bezpo(cid:156)rednio w pliku HTML tak, ¿e strona www staje siŒ jej w‡asnym interfejsem do bazy danych. Ksi„¿ka ta zawiera wszystko, czego potrzebujesz aby wykorzysta(cid:230) MySQL oraz mSQL. Przeprowadza CiŒ przez ca‡y proces, od instalacji i konfiguracji po interfejsy programowania i podstawow„ administracjŒ. Zawiera rozdzia‡y z referencjami oraz poka(cid:159)ny materia‡ szkoleniowy. TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl 6/.3;+  (cid:3) /6;7/63;#!(cid:21)9#!(cid:21)9  3.+o 463;+./2/.36/+-2-,+.+2-  Co to jest baza danych? ...................................................z...................................................z..... 16 Co to jest relacyjna baza danych?...................................................z......................................... 16 Aplikacje i bazy danych...................................................z...................................................z..... 18 MySQL i mSQL...................................................z...................................................z................. 19 3.+o  63/83;+2/,+.+2-  Projekt bazy danych...................................................z...................................................z........... 25 Normalizacja...................................................z...................................................z...................... 28 Metodologia logicznego modelowania danych ...................................................z.................... 36 Fizyczny model danych ...................................................z...................................................z..... 37 3.+o 278++-+  MySQL ...................................................z...................................................z.............................. 41 mSQL...................................................z...................................................z................................. 47 3.+o #!  Architektura ...................................................z...................................................z....................... 49 Instalacja MySQL-a...................................................z...................................................z........... 50 Uruchomienie MySQL-a ...................................................z...................................................z... 51 Administrowanie bazą danych...................................................z.............................................. 52 Narzędzia MySQL ...................................................z...................................................z............. 65 Podnoszenie wydajności...................................................z...................................................z.... 69 C:\Andrzej\PDF\MySQL i mSQL\spis treści.doc — stronja 3  #4786/- 3.+o #!  Architektura ...................................................z...................................................z....................... 75 Wersje mSQL-a ...................................................z...................................................z................. 77 mSQL w działaniu ...................................................z...................................................z............. 79 Administracja bazą danych...................................................z...................................................z83 Narzędzia mSQL...................................................z...................................................z................ 89 Oprogramowanie zewnętrznych dostawców ...................................................z........................ 90 3.+o #!;/.o91#!*+#!*+  Podstawy SQL-a ...................................................z...................................................z................ 95 Tworzenie oraz usuwanie tablic ...................................................z........................................... 97 Typy danych SQL...................................................z...................................................z.............. 99 Sekwencje i autoinkrementacja ...................................................z.......................................... 104 Zarządzanie danymi...................................................z...................................................z......... 105 Zapytania ...................................................z...................................................z......................... 108 Rozszerzona funkcjonalność ...................................................z.............................................. 111 3.+o  3378+o/,+.+2-+76/.2/  Co oznacza „bezpłatny”? ...................................................z...................................................z. 115 Czego brak w MySQL-u oraz mSQL-u? ...................................................z............................ 116 PostgreSQL...................................................z...................................................z...................... 118 GNU SQL ...................................................z...................................................z........................ 119 Beagle ...................................................z...................................................z.............................. 120 Porównania ...................................................z...................................................z...................... 120 (cid:3) 6316+3;+2/,+.+2-  3.+o  63/83;+2/+4+-,+.+2-  Architektura klient-serwer ...................................................z..................................................123 Przetwarzanie danych ...................................................z...................................................z...... 124 Modelowanie obiekt-relacja ...................................................z............................................... 125 Architektura trójwarstwowa ...................................................z............................................... 126 3.+o  6316+3;+2/  Co to jest CGI? ...................................................z...................................................z................ 129 Formularze HTML...................................................z...................................................z........... 130 Specyfikacja CGI...................................................z...................................................z............. 133 Rzeczy, o których należy pamiętać przy pisaniu skryptów CGI.......................................... 139 Przydatna literatura ...................................................z...................................................z.......... 146 CGI i bazy danych ...................................................z...................................................z........... 146 3.+o  /6  DBI...................................................z...................................................z................................... 149 Przykładowa aplikacja DBI ...................................................z................................................ 154 Msql.pm ...................................................z...................................................z........................... 158 MysqlPerI...................................................z...................................................z......................... 166 C:\Andrzej\PDF\MySQL i mSQL\spis treści.doc — stronja 4 #4786/-  3.+o  832  Podstawowa łączność ...................................................z...................................................z......173 Dynamiczna łączność ...................................................z...................................................z......176 3.+o    36+43378+o//-+2;74+6-+ $  Alternatywne sposoby dynamicznego generowania treści w WWW................................... 179 W3-mSQL...................................................z...................................................z........................ 180 Przykład W3-mSQL ...................................................z...................................................z........ 182 PHP ...................................................z...................................................z.................................. 184 Osadzony Perl ...................................................z...................................................z.................. 185 EmbPerI ...................................................z...................................................z........................... 186 3.+o  22  Dwa interfejsy API ...................................................z...................................................z.......... 189 Obiektowo zorientowany dostęp do baz danych w C++...................................................z..... 194 3.+o  +:+   Czym jest JDBC?...................................................z...................................................z............. 205 Nawiązywanie połączenia z bazą danych...................................................z........................... 207 Zachowywanie przenośności poprzez pliki właściwości ...................................................z.. 208 Prosty dostęp do bazy danych ...................................................z............................................ 209 Obsługa błędów ...................................................z...................................................z............... 212 Dynamiczny dostęp do bazy danych ...................................................z.................................. 212 Dynamiczne przetwarzanie SQL ...................................................z........................................ 214 Servlet księga gości ...................................................z...................................................z......... 214 (cid:3) 47./+6+-   3.+o  47./+6+-#!   MySQL SQL...................................................z...................................................z.................... 217 mSQL SQL ...................................................z...................................................z...................... 248 3.+o  /22/778/3;/#!#!  Zmienne systemowe MySQL ...................................................z............................................. 253 Zmienne systemowe mSQL...................................................z................................................ 258 3.+o   6316+2+69.+#!36+#!  Narzędzia MySQL ...................................................z...................................................z........... 261 Narzędzia mSQL...................................................z...................................................z.............. 275 3.+o  #4743/-/q9+  8/  PHP ...................................................z...................................................z.................................. 279 Lite ...................................................z...................................................z................................... 308 3.+o  47092-9+   API MySQL ...................................................z...................................................z..................... 319 C:\Andrzej\PDF\MySQL i mSQL\spis treści.doc — stronja 5   #4786/- API mSQL ...................................................z...................................................z....................... 334 3.+o 47092- 832  Moduł: MySQL.........................................z...................................................z.......................... 341 Moduł: mSQL ...................................................z...................................................z.................. 344 3.+o 47092- /6  Instalacja ...................................................z...................................................z.......................... 347 API DBI.pm ...................................................z...................................................z..................... 348 API Msql.pm...................................................z...................................................z.................... 364 Mysql.pm API...................................................z...................................................z.................. 377 3.+o 47  #363;.  C:\Andrzej\PDF\MySQL i mSQL\spis treści.doc — stronja 6 Kiedy MySQL pojawił się na rynku, był pierwszym serwerem klasy średniej obsługującym stan- dard SQL. Nie cieszył się tym zaszczytem długo. Wszyscy dobrze wiemy dlaczego — narodził się MySQL. Od momentu powstania mSQL-a, na rynku pojawiło się kilka innych produktów. W tej książce skupiliśmy się na mSQL-u oraz MySQL-u z uwagi na ogromne podobieństwa oraz nie- zrównaną popularność. Jednak nie możemy nie wspomnieć o innych serweracjh baz danych. Baz danych używa się w tak wielu dziedzinach, że trudno jest w jednym pakiecie zmieścić wszy- stkie narzędzia do wszelkich możliwych zastosowań. Próbują tego dokonać producenci większych baz danych. Płacą za to zmniejszeniem wydajności, a ich odbiorcy zwiększeniem wydatków. Z drugiej strony serwery baz danych niższej klasy osiągnęły taką specjalizację, że nie nadają się dla małych firm lub niedochodowych organizacji czy dla kogoś o bardziej nieszablonowych wymaganiach. Serwery klasy średniej wypełniają lukę pomiędzy tymi dwoma skrajnyjmi grupami. Dotychczas rozważaliśmy tylko dwa bardzo zbliżone sposoby na to, jak zaspokoić średnio zaawansowane wymagania bazodanowe. Bez wątpienia możliwe są też inne. Żadne prawo nie stwierdza, że ponieważ firma jest niewielka, więc nie będzie potrzebować przetwarzania transakcyjnego. Niektórzy użytkownicy w średnim sektorze mogą również potrzebować wyzwalaczy, zagnieżdżonych zapytań, procedur składowanych, obiektowości czy którejkolwiek z wielu własności — tyle że nie wszystkich naraz. Inne serwery bazodanowe średniej klasy mogą więc obsługiwać import w sposób niedostępny w MySQL-u czy w mSQL-u. możliwych Słyszy się czasem, że MySQL i mSQL są „bezpłatne”. Można także spotkać się z opinią, że MySQL jest „bardziej bezpłatny” niż mSQL. Jakkolwiek zwrot „bardziej bezpłatny” kłóci się ze zdrowym rozsądkiem, to właśnie w świecie oprogramowania wynaleziono „stopnjie bezpłatności”. Do tej pory świadomie unikaliśmy mówienia o MySQL-u i mSQL-u jako o „bezpłatnych” moto- rach bazodanowych z uwagi na wielość znaczeń, którą termin „bezpłatny” ma dla wytwórców opro- C:\Andrzej\PDF\MySQL i mSQL\R07-8.DOC — strona 115  3.+o  3378+o/,+.+2-+76/.2/ gramowania. Oba produkty mogą w rzeczywistości wymagać opłaty licencyjnej. Opłata zależy od tego, kim jest użytkownik. Według licencji dostępnych w trakcie drukowania tej książki uczelnie nie musiały wnosić opłat licencyjnych za żaden z dwóch motorów bazodanowych. Komercyjny użytkownik mSQL-a musiał natomiast za licencję zapłacić. Stwierdzenie, że MySQL jest bardziej bezpłatny od mSQL-a oznacza, iż jest on bezpłatny dla większej liczbyj osób. Druga sprawa dotycząca pojęcia bezpłatnego oprogramowania nie ma nic wspólnego z ceną. Chodzi o możliwość zobaczenia i zmiany kodu źródłowego bez żadnej dodatkowej opłaty. W tym świetle zarówno MySQL, jak i mSQL są zupełnie darmowymi serwerami baz danych. Wystarczy odwiedzić ich strony internetowe, aby uzyskać kod źródłowy. Darmowy dostęp do postaci źródłowej mają rów- nież ci użytkownicy mSQL-a i MySQL-a, którzy muszą płacić za jego użyjtkowanie. Świat oprogramowania wprowadził nowy termin, która pozwala uniknąć wieloznaczności słowa „bezpłatny”. Chodzi o Open Source. Faktycznie Open Source to obecnie znak towarowy, oznacza- jący oprogramowanie, którego kod źródłowy jest otwarty bez względu na opłaty związane z użyt- kowaniem tego oprogramowania. Linux, Netscape, FreeBSD, Perl, Apache, wszystkie produktu z rodziny GNU, jak również wiele innych produktów wspomnianych w tej książce (np. MySQL, mSQL, mm.mysql.jdbc czy mSQL-JDBC) są produktami Open Source. Wszystkie produkty, o których mowa w tym rozdziale, również są produktami Open Source. Otwarty kod źródłowy jest bardzo istotny dla średniego sektora rynku, ponieważ gigantom wydaje się, że jest on za mały, by zasługiwać na uwagę, a wytwórcom w niższym sektorze, że jest on zbyt skomplikowany. Piszemy o braku, bo nie potrafimy znaleźć lepszego słowa. Jak wspomnieliśmy, twórcy mSQL-a oraz MySQL-a świadomie wykluczyli kilka cech, które miałyby negatywny wpływ na wydajność. Innymi słowy priorytetem w tworzeniu oraz rozwijaniu mSQL-a i MySQL-a była wydajność. Nie- którzy użytkownicy serwerów klasy średniej gotowi są jednak poświęcić wydajność w zamian za inne własności. W celu pełniejszego zrozumienia cech udostępnianych przez pozostałe produkty klasy średniej warto wymienić rzeczy, które w MySQL-u i mSQL-ju pominięto. MySQL ma wprowadzić wiele tych cech z możliwością wyłączenia ich, gdy ko- muś nie będą potrzebne. W trakcie powstawania książki Monty rozważał wpro- wadzenie mechanizmu procedur składowanych, zagnieżdżonych zapytań, a być może nawet transakcji. $6+27+-/ Transakcje umożliwiają grupowanie wielu zapytań SQL jako jednostkę. Grupowanie poleceń daje pewność, że nikt niepowołany nie zobaczy częściowo zmienionej zawartości bazy danych. Poza tym w przypadku, gdy jedno z zapytań zawiedzie, zawiedzie również cała jednostka pracy. Spo- sobem na zrozumienie transakcji jest wyobrażenie sobie zatłoczonej drogi. Jednowątkowy system kolejkowania, np. mSQL, to odpowiednik równorzędnego skrzyżowania. Samochody jadą jeden za drugim według reguły pierwszeństwa. Jeśli dwa pojazdy jadą tą sama drogą, istnieje prawdopo- dobieństwo, że się rozdzielą na skrzyżowaniu. C:\Andrzej\PDF\MySQL i mSQL\R07-8.DOC — strona 116 /13,6+;#! 936+#! 9  Wielowątkowy system blokowania, występujący np. w MySQL-u, przypomina bardziej sytuację, kiedy ruch na skrzyżowaniu nie jest regulowany przez sygnalizację świetlną lecz przez policjanta. Ruch na takim skrzyżowaniu może przebiegać w dowolnym kierunku, przy dowolnej prędkości, pod warunkiem, że policjant inteligentnie kieruje ruchem. Jeśli w tym samym momencie nadjadą dwa pojazdy z różnych stron, policjant przepuści jeden, poczeka, aż opuści on skrzyżowanie, a na- stępnie pozwoli przejechać drugiemu. Transakcje przypominają bardziej skrzyżowanie ze światłami. Samochody, które mają czerwone światło, zatrzymują się, by przepuścić te, które mają zielone. Praktycznym przykładem zastosowa- nia transakcji jest aplikacja bankowa, w której transfer z rachunku oszczędnościowego na rachunek bieżący („czekowy”) wiąże się ze zmianą salda na rachunku oszczędnościowym, a następnie — zmianą salda na rachunku bieżącym. Poniższe dwa zapytania SQL mogą być wykorzystywane w takiej aplikacji: #Odejmij 1000 PLN od 1100 PLN na rachunku oszczędno0ściowym. UPDATE konto SET saldo = 100.00 WHERE id = 1234 #Dodaj 1000 PLN do 550 PLN na rachunku bieżącym. UPDATE konto SET saldo = 1550.00 WHERE id = 5678 Pomiędzy dwoma uaktualnieniami mogłaby zdarzyć się transakcja, w którejj inny klient sprawdzał- by saldo na rachunku bieżącym i oszczędnościowym, by ustalić, czy jest dość pieniędzy, żeby wy- stawić czek. Jeśli ta transakcja miałaby miejsce, czek byłby bez pokrycia. Co gorsza, jeśliby serwer padł pomiędzy uaktualnieniami, klient „utopiłby” 1000 złotych w plijku zrzutów z pamięci. Ujmując te dwa zapytania w jednej transakcji, stwierdzamy, że oba zarazem muszą kończyć się bądź sukcesem, bądź porażką. Jeśli jedno z nich się powiedzie, a drugie zawiedzie, można wydać polecenie tzw. zwinięcia transakcji (rollback), które przywraca bazę do jej stanu sprzed transakcji. Podobnie nikt inny nie może uzyskać dostępu do zmienianych plików, dopóki nie zakończymy swoich zmian.1 MySQL pozwala częściowo emulować transakcje za pomocą zamków LOCK TA- BLES. Zamki mogą skutecznie zapobiec uszkodzeniom spójności danych, ale nie pozwalają na zwijanie operacji. mSQL w żaden sposób nie wspiera transakcji. ;++-/ Wyzwalacze są blisko związane z transakcjami. Prowadząc analogię do ruchu ulicznego o krok dalej, wyobraźmy sobie policjanta obserwującego skrzyżowanie ze wzgórza. Gdy tylko któryś z samochodów złamie przepisy, policjant włącza się do ruchu i rozpoczyna pościg. Wyzwalacz to jedno lub więcej zapytań SQL przechowanych w bazie danych, które są wyko- nywane po zajściu pewnych wcześniej określonych zdarzeń. Wyzwalacze są metodą automatyzacji nadzoru. W przypadku kiedy pewien warunek jest spełniony, wyzwalacze mogą wykonać działania na danych lub donieść po prostu o zajściu wyzwalającego zdarzejnia.  1 Własność ta ma specjalny niuans zwany wartością „izolacji transakcji”. Czasem nie dbamy o to, czy użytkownicy mają dostęp tylko do odczytu do niespójnych danych. Pozwalając na to, przyspieszamy bazę danych, nie zmuszając ich do oczekiwania na zakończenie transakcji. 2.6/ #!#! (cid:25) 78632+    3.+o  3378+o/,+.+2-+76/.2/ 63-/.967o+.3;+2/ Najprostsze procedury składowane to jedno lub kilka zapytań SQL przechowywanych w bazie danych pod jakąś prostą nazwą, służących utrwaleniu jakichś zachowań. W przykładzie z przele- wem pieniędzy pomiędzy kontami oba zapytania SQL można by przechować po prostu jako poje- dynczą procedurę składowaną o nazwie „przelew”. Aplikacja przekazuje do procedury dwa numery kont oraz kwotę i procedura wykonuje te dwa zapytania SQL w jednej tjransakcji. Na bardziej zaawansowanym poziomie procedury składowane mogą uzupełnić podstawową składnię SQL-a tak, że zacznie on bardziej przypominać tradycyjne języki programowania. Język PL/SQL Oracle i TransactSQL z Microsoft i Sybase są dwoma przykładami takich rozszerzeń SQL-a. Czę- sto słyszy się od ludzi, którzy używają tych procedur składowanych, o „przenoszeniu logiki biz- nesowej do bazy danych”. +12/ . +2/+48+q Standardowe polecenie SELECT SQL umożliwia dostęp do wszystkich danych zawartych w ta- blicy, jeśli wiadomo, czego szukać. W zastosowaniach innych niż wypisanie zawartości całej tablicy nawet najprostsze formy zapytania z użyciem SELECT wymagają podania przynajmniej cząstki danych, które chcemy uzyskać. Na przykład użycie SELECT imie FROM przyjaciele WHERE imie LIKE B wymaga podania chociaż jednej z liter imienia, którego szukamy. Jeśli chcielibyśmy sprawdzić, kto miał w tym miesiącu pensję wyższą od przeciętnej, zapytanie prawdopodobnie wyglądałoby następująco: SELECT imie FROM ludzie WHERE pensja ??? Większa niż ile? Nie dowiemy się, jaka jest średnia pensja bez polecenia SELECT! Musimy wziąć wartość SELECT AVG(pensja) FROM ludzie i wstawić ją do poprzedniego zapytania. Po- zwala na to zagnieżdżanie: SELECT imie FROM ludzie WHERE pensja (SELECT AVG(pensja) FROM ludzie) ,/8 Świat baz danych nie kończy się na ich relacyjnych odmianach. Na rynku znajduje się też dużo zorientowanych obiektowo oraz obiektowo-relacyjnych baz danych. Wśród produktów wysokiej klasy powoli zanika idea czysto relacyjnych baz danych. Standard SQL3 wprowadzi wiele zmian dla cech związanych ze wsparciem obiektowym. W przypadku systemów zarządzania relacyjnymi bazami danych (RDBMS) wszystkie informacje przechowywane są w tablicach, będących zbiorem rekordów, czyli zestawów fragmentów infor- macji przedstawiających typy danych. W przypadku obiektowo zorientowanych systemów zarządzania bazami danych (OODBMS) podstawową jednostką informacji jest obiekt. Obiekt może zawierać zarówno różne typy danych znane z relacyjnych systemów, jak także wielowymiarowe obiekty czy wielowymiarowe typy danych, jak tablice lub nawet wykonywane funkcje, znane w świecie obiektowym jako metody. liczby tekst, lub inne C:\Andrzej\PDF\MySQL i mSQL\R07-8.DOC — strona 118 37816/#!  Obecna wersja systemu zarządzania obiektowo zorientowaną bazą danych znana jest jako Post- greSQL, a także jako Postgres 6. Sam system ma ponad 10 lat, chociaż obsługę SQL-a posiada zaledwie od 5 lat. Dr Michael Stonebreaker z Kalifornijskiego Uniwersytetu w Berkeley we wcze- snych latach 80. ubiegłego wieku zaprojektował system baz danych, który zainicjował wiele kon- cepcji, jakie można odnaleźć w dzisiejszych relacyjnych bazach danych. Motor początkowo został nazwany Ingres. Później jego nazwa zmieniła się na University Ingres. Ingres był projektem finan- sowanym ze środków uniwersyteckich, który w krótkim czasie zainteresował innych komputero- wych naukowców z całego świata. Pewna firma dostrzegła potencjał rynkowy w tym akademickim produkcie i przekształciła Ingres w produkt komercyjny. Oryginalna, bezpłatna wersja Ingresa została przemianowana na University Ingres i jej rozwój był kontynuowany niezależnie od wersji komercyjnej. W trakcie udoskonalania programu dr Michael Stonebreaker odstąpił od początkowych założeń. Zdecydował, że nadszedł najwyższy czas na zaprojektowanie kompletnie nowego systemu baz danych, który rozszerzałby koncepcje Ingresa i wkraczał na nowe pola. System został nazwany Postgres (od Post-Ingres). Postgres, podobnie jak Ingres, był projektem uniwersyteckim. W krótkim czasie zainteresowały się nim firmy i tak powstał komercyjny produkt Illustra.2 Darmowa wersja Postgres była nadal roz- wijana i obecnie jest równie popularna, jak MySQL czy mSQL w średniej klasie serwerów baz danych. W roku 1995 dwie rzeczy wpłynęły na dalszy rozwój Postgresa. Pierwszą z nich była działalność dwóch studentów doktora Stonebreakera — Andrew Yu oraz Jolly Chen, którzy zaprojektowali interfejs SQL do tego systemu. Kilka lat po tym, jak David Hughes rozwinął MiniSQL jako interfejs SQL Postgresa, Postgres osiągnął stopień rozwoju, w którym posiadał własny, prawdziwy interfejs SQL. Wraz z pojawieniem się SQL-a zwiększyła się momentalnie popularność tego produktu. Tak jak w przypadku MySQL-a oraz mSQL-a zwiększenie popularności spowodowało zwiększone zapo- trzebowanie na nowe własności. W rezultacie powstał zorientowany obiektowo-relacyjny motor baz danych klasy średniej, który wspierał transakcje, wyzwalacze i zagnieżdżanie zapytań. Więcej informacji na temat PostgreSQL można znaleźć pod adresem http://www.postgresql.org. Projekt GNU SQL jest symbolem wolności dla wielu ludzi w przemyśle komputerowym. Oficjalny projekt GNU jest dostępny za darmo z pełną możliwością ingerencji w kod źródłowy. Można odnaleźć wersje GNU wielu poleceń środowiska Unix, np. edytora (Emacs), powłoki (bash) lub jądra systemu operacyjnego (Hurd). Do niedawna jedynym wyjątkiem od tej reguły był system zarządzania bazą danych. Programiści w Instytucie Programowania Systemowego Rosyjskiej Akademii Nauk ciężko pracują, aby zmienić ten stan rzeczy. Kilka lat temu została wypuszczona pierwsza publiczna wersja beta GNU SQL — w pełni funkcjonalnego systemu zarządzania relacyjnymi bazami danych SQL wydanego z licencją GNU Public (GPL). W trakcie pisania tej książki produkt GNU SQL był w wersji 0.7beta.  2 Illustra została kupiona przez Informix w 1995 roku i obecnie jest częścią ich produktu o nazwie Universal Server (Fak- tycznie, jest taka część serwera Illustra, która jestt częścią Informix Dynamic Server — przyp. red.). 2.6/ #!#! (cid:25) 78632+   3.+o  3378+o/,+.+2-+76/.2/ Kiedy powstał GNU SQL, nie było jeszcze specyfikacji SQL2. Z tego względu początkowa wersja GNU SQL udostępniała jedynie funkcjonalność standardu SQL89. Cechy SQL2 były sukcesywnie dodawane wraz z ich pojawianiem się na rynku. GNU SQL obsługuje obecnie wiele zaawansowanych cech, takich jak transakcje, zapytania czy kursory. Ze względu na to, że produkt jest w wersji beta, nie zaleca się jego używania w systemie produkcyjnym. Wraz z rozwojem staje się systemem wartym wykorzystywania. Więcej informacji na temat GNU SQL można znaleźć pod adresem: http://www.ispras.ru/~kml/gss/index.htm. Beagle to darmowy silnik SQL zaprojektowany i stworzony przez Roberta Kleina. Podobnie jak w przypadku GNU SQL, Beagle ma w planach pełną zgodność ze standardem SQL, ze wszystkimi jego cechami, włącznie z obiektowo-relacyjnymi rozszerzeniami, wprowadzonymi przez Postgre- SQL. Beagle również jest nadal rozwijany. Obecnie osiągnął poziom rozwoju wystarczający do testowania i wykorzystywania w środowisku testowym lub rozwojowym. Nie powinien jednak je- szcze być używany w środowisku produkcyjnym. Jednym z bardziej interesujących aspektów Beagle jest to, że autor utrzymuje od samego początku dziennik rozwoju produktu. Poprzez studiowanie dziennika można mieć wgląd w rozwój serwera SQL — począwszy od prostego systemu klient-serwer TCP, aż do w pełni rozwiniętego funkcjo- nalnie serwera SQL, którym Beagle jest dzisiaj. Strona główna projektu Beagle znajduje się pod adresem http://www.beaglesql.org. Tak jak wiele aplikacji, MySQL również posiada zestaw testów, które weryfikują, czy system rze- czywiście obsługuje te cechy, które powinien. MySQL nazwał własny zestaw testów crash-me (zniszcz mnie), ponieważ jednym z zadań tego zestawu testowego było unicestwienie działającego serwera baz danych MySQL. W trakcie rozwoju produktu zauważono, że crash-me jest programem przenośnyjm. Nie tylko może działać z różnymi systemami operacyjnymi, ale również może być wykorzystywany do testowania różnych silników baz danych. Począwszy od tego odkrycia, crash-me przemienił się z prostego pakietu testowego w program porównawczy. Pakiet sprawdza cały zestaw funkcjonalności stan- dardu SQL, jak również rozszerzenia oferowane przez wiele serwerów. Dodatkowo program sprawdza wydajność serwera pod dużym obciążeniem. Po wykonaniu całościowego testu program udostępnia kompletny obraz zdolności danego silnika bazy danych. Można wykorzystać pakiet crash-me do porównania dwóch lub więcej silników baz danych online. Strona crash-me znajduje się pod adresem http://www.mysql.com/crash-me-choose.htmy. C:\Andrzej\PDF\MySQL i mSQL\R07-8.DOC — strona 120
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

MySQL i mSQL
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: