SQL Structured Query Language strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z



Podobne dokumenty
Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Porównanie systemów zarządzania relacyjnymi bazami danych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

ZSE - Systemy baz danych 1 SIECIOWE SERWERY BAZ DANYCH

Pojęcie systemu baz danych

Bazy danych - wykład wstępny

SZKOLENIE: Administrator baz danych. Cel szkolenia

Technologia informacyjna

2 Przygotował: mgr inż. Maciej Lasota

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Wykład I. Wprowadzenie do baz danych

Zadanie nr 4.5: Oprogramowanie bazodanowe. Lp. Zwartość karty Opis 1 Specyfikacja techniczna / funkcjonalna przedmiotu zamówienia

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

EXSO-CORE - specyfikacja

Administracja bazami danych. dr inż. Grzegorz Michalski

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Podstawy programowania. Wprowadzenie

Zaawansowane bazy danych i hurtownie danych studia niestacjonarne II stopnia, sem. I

Wymagania dotyczące oprogramowania bazodanowego

PRZESTRZENNE BAZY DANYCH WYKŁAD 2


SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

egroupware czy phpgroupware jest też mniej stabilny.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Projektowanie i programowanie aplikacji biznesowych. wykład 1

Oracle11g: Wprowadzenie do SQL

Programowanie Komponentowe WebAPI

PHP: bazy danych, SQL, AJAX i JSON

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Dokumentacja aplikacji Szachy online

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

ActiveXperts SMS Messaging Server

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Hurtownie danych wykład 5

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Załącznik 6c do SIWZ Oprogramowanie bazodanowe oraz oprogramowanie operacyjne serwerowe.

NARZĘDZIA WIZUALIZACJI

Spis treści. Przedmowa

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Rozwiązania bazodanowe EnterpriseDB

Usługi analityczne budowa kostki analitycznej Część pierwsza.

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Bazy danych 2. Wykład 1

Budowanie interfejsów do baz danych

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Ref. 7 - Język SQL - polecenia DDL i DML

NARZĘDZIA WIZUALIZACJI

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Poznaj Firebird w dwie minuty (fragmenty artykułu Carlosa H. Cantu)

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

SSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski

Microsoft SQL Server Podstawy T-SQL

Dr Michał Tanaś(

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Programowanie obiektowe

W załączniku nr 9 do SIWZ Zamawiający wprowadza następujące zmiany:

Projekt: MS i CISCO dla Śląska

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Systemy baz danych. mgr inż. Sylwia Glińska

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

OPIS PRZEDMIOTU ZAMÓWIENIA

Systemy GIS Tworzenie zapytań w bazach danych

Tworzenie raportów XML Publisher przy użyciu Data Templates

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Programowanie współbieżne i rozproszone

Projektowanie systemów baz danych

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Zajęcia prowadzone przez MCT, auditora wiodącego systemów bezpieczeństwa informacji.

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Baza danych. Modele danych

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Instytut Teleinformatyki

Elektroniczna Ewidencja Materiałów Wybuchowych

Ekspert MS SQL Server Oferta nr 00/08

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Praca przejściowa. Sklep internetowy. Tomasz Konopelski ZIP50-IWZ Katowice 2006

nr sprawy: BZP ML Wrocław, dn. 20 lutego 2014 r. SPROSTOWANIE DO INFORMACJI DLA WYKONAWCÓW NR 13

Pojęcie bazy danych. Funkcje i możliwości.

Wprowadzenie do sieciowych systemów operacyjnych. Moduł 1

Cele. Definiowanie wyzwalaczy

Transkrypt:

SQL Structured Query Language strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS).

HISTORIA SQL został opracowany w latach 70. w firmie IBM. Stał się standardem w komunikacji z serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego potocznie mówi się, że korzystanie z relacyjnych baz danych to korzystanie z SQL-a. Pierwszą firmą, która włączyła SQL do swojego produktu komercyjnego, był Oracle. Dalsze wprowadzanie SQL-a, w produktach innych firm, wiązało się nierozłącznie z wprowadzaniem modyfikacji pierwotnego języka. Wkrótce utrzymanie dalszej jednolitości języka wymagało wprowadzenia standardu. Pierwotną nazwą języka miał być SEQUEL, jednakże okazało się, że nazwa ta była już zastrzeżona przez brytyjską wytwórnię lotniczą Hawker Siddeley.

FORMY SQL Z technicznego punktu widzenia, SQL jest podjęzykiem danych. Oznacza to, że jest on wykorzystywany wyłącznie do komunikacji z bazą danych. Nie posiada on cech pozwalających na tworzenie kompletnych programów. Jego wykorzystanie może być trojakie i z tego względu wyróżnia się trzy formy SQL-a:

SQL interakcyjny (autonomiczny) wykorzystywany jest przez użytkowników w celu bezpośredniego pobierania lub wprowadzania informacji do bazy. Przykładem może być zapytanie prowadzące do uzyskania zestawienia aktywności kont w miesiącu. Wynik jest wówczas przekazywany na ekran, z ewentualną opcją przekierowania go do pliku lub drukarki.

Statyczny kod SQL (Static SQL) nie ulega zmianom i pisany jest wraz z całą aplikacją, podczas której pracy jest wykorzystywany. Nie ulega zmianom w sensie zachowania niezmiennej treści instrukcji, które jednak zawierać mogą odwołania do zmiennych lub parametrów przekazujących wartości z lub do aplikacji. Statyczny SQL występuje w dwóch odmianach. 1. Embedded SQL (Osadzony SQL) oznacza włączenie kodu SQL do kodu źródłowego innego języka. Większość aplikacji pisana jest w takich językach jak C++ czy Java, jedynie odwołania do bazy danych realizowane są w SQL. W tej odmianie statycznego SQL-a do przenoszenia wartości wykorzystywane są zmienne. 2. Język modułów. W tym podejściu moduły SQL łączone są z modułami kodu w innym języku. Moduły kodu SQL przenoszą wartości do i z parametrów, podobnie jak to się dzieje przy wywoływaniu podprogramów w większości języków proceduralnych. Jest to pierwotne podejście, zaproponowane w standardzie SQL. Embedded SQL został do oficjalnej specyfikacji włączony nieco później.

Dynamiczny kod SQL (Dynamic SQL) generowany jest w trakcie pracy aplikacji. Wykorzystuje się go w miejsce podejścia statycznego, jeżeli w chwili pisania aplikacji nie jest możliwe określenie treści potrzebnych zapytań powstaje ona w oparciu o decyzje użytkownika. Tę formę SQL generują przede wszystkim takie narzędzia jak graficzne języki zapytań. Utworzenie odpowiedniego zapytania jest tu odpowiedzią na działania użytkownika. Wymagania tych trzech form różnią się i znajduje to odbicie w wykorzystywanych przez nie konstrukcjach językowych. Zarówno statyczny, jak i dynamiczny SQL uzupełniają formę autonomiczną cechami odpowiednimi tylko w określonych sytuacjach. Zasadnicza część języka pozostaje jednak dla wszystkich form identyczna.

BEZPIECZEŃSTWO Jako że SQL jest językiem interpretowanym, istnieje możliwość nadużyć w przypadku konstruowania zapytań z wykorzystaniem parametrów pochodzących z zewnątrz aplikacji. Szczególnie podatne na ten typ ataku są tworzone dynamicznie w oparciu o SQL-ową bazę danych serwisy internetowe. Jeśli twórca aplikacji nie zadba o sprawdzenie poprawności (tzw. walidację) danych wejściowych stanowiących część zapytania, atakujący może być w stanie dopisać do zapytania ( wstrzyknąć ) dodatkowe komendy lub zmienić ich sposób działania. Atak taki nosi nazwę SQL injection (wstrzyknięcie kodu za pomocą SQL).

MY SQL MySQL rozwijany jest przez firmę Oracle. Wcześniej przez większość czasu jego tworzeniem zajmowała się szwedzka firma MySQL AB. MySQL AB została kupiona 16 stycznia 2008 roku przez Sun Microsystems, a ten 27 stycznia 2010 roku przez Oracle [3]. W międzyczasie Monty Widenius (współtwórca MySQL) stworzył MariaDB forka (alternatywną wersję) opartego na licencji GPL. MariaDB jest oparta na tym samym kodzie bazowym co MySQL i dąży do utrzymania kompatybilności z jej poprzednimi wersjami

NAJWAŻNIEJSZE CECHY MYSQL MySQL był pisany raczej z myślą o szybkości niż kompatybilności ze standardem SQL przez dłuższy czas MySQL nie obsługiwał nawet transakcji, co było zresztą głównym argumentem przeciwników tego projektu. MySQL obsługuje większą część obecnego standardu ANSI/ISO SQL (tj. SQL:2003). Wprowadza również swoje rozszerzenia i nowe elementy języka [5]. W wersji 5 dodano m.in.: - procedury składowane (ang. stored procedures) obecne od wersji 5.0, Procedura ta zwraca nam imie i nazwisko na podstawi podanej zmiennej. Polecenie delimiter wskazuje nam znak zachęty końca kodu, musi być podany gdyż MySQL wykonuje procedure do znaku średnika.

- wyzwalacze (ang. triggers) obecne od wersji 5.0.2 Wyzwalacze (trigger) - wykonuję akcję na pewne zdefiniowane zdarzenie, które jest związane z konkretną tabelą i co się z tym wiąże również bazą danych. Wyzwalacze są uruchomiane automatycznie i nie ma możliwości ich wywołania inaczej niż przez zdefiniowane zdarzenie.

- widoki

- Kursory - w systemach zarządzania bazą danych jest to tymczasowa struktura służąca do pobierania wyniku zapytania SQL. Kursor umożliwia pobieranie rekordów sekwencyjnie, po jednym lub więcej na raz, a także przemieszczanie się po wynikach zapytania. Przykładowy kursor w języku SQL -partycjonowanie tabel od wersji 5.1 -harmonogram zadań od wersji 5.1 co zbliża najnowsze wersje MySQL do PostgreSQL pod względem funkcjonalności.

MySQL zawiera wsparcie dla replikacji bazy danych (w trybie masterslave) i wielojęzyczności każda tabela i kolumna może mieć własne ustawienie kodowania znaków. W najnowszej wersji rozwojowej 5.6 wprowadzono kilka istotnych zmian poprawiających skalowalność i niezawodność środowiska, oraz wprowadzających nowatorskie rozwiązania, np.: semi-synchroniczna replikacja replikacja wielowątkowa rozbudowane możliwości monitorowania przez tzw. PERFORMANCE_SCHEMA interfejs API typu NoSQL z wykorzystaniem memcached

PLATFORMY MYSQL Serwer MySQL dostępny jest dla wszystkich popularnych platform systemowych i różnorakich architektu procesorów. Jest dostępny także w wersji źródłowej, co umożliwia skompilowanie go dla dowolnej innej platformy. Podobnie jak serwer również biblioteki klienckie MySQL, umożliwiające korzystanie z tego serwera bazodanowego z poziomu aplikacji, dostępne są dla wielu platform i języków programowania m.in. dla C, C++, Delphi, czy PHP.

LICENCJONOWANIE MySQL jest dostępny na licencji GPL, jednakże można nabyć również wersje licencjonowane komercyjnie. Biblioteki klienckie są również dostępne na licencji GPL lub komercyjnej. Istnieje wymóg nabycia licencji komercyjnej jeśli zamierzamy dystrybuować aplikację komercyjną (niezgodną z licencją GPL), wraz ze zintegrowaną bazą MySQL. Zmiana licencji nastąpiła od wersji 4.1 (i późniejszych) i była jednym z powodów rezygnacji w PHP z domyślnie włączonej obsługi MySQL na rzecz SQLite (oczywiście obsługę MySQL można samemu w PHP włączyć).

NARZĘDZIA ADMINISTRACYJNE phpmyadmin za pomocą przeglądarki internetowej MySQL Workbench MySQL Query Browser

POSTGRESQL PostgreSQL często nazywany także Postgres to, obok MySQL i Firebird, jeden z trzech najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych. Początkowo opracowywany na Uniwersytecie Kalifornijskim w Berkeley i opublikowany pod nazwą Ingres. W miarę rozwoju i zwiększania funkcjonalności, baza danych otrzymała nazwy Postgres95 i ostatecznie PostgreSQL, aby upamiętnić pierwowzór oraz zaznaczyć zgodność ze standardem SQL. Aktualnie baza implementuje większość standardu SQL:2011. PostgreSQL zalicza się do baz typu RDBMS(System zarządzania relacyjną bazą danych) z rozszerzeniami obiektowymi.

HISTORIA Swoimi korzeniami PostgreSQL sięga 1977 roku. Wszystko zaczęło sie od projektu Ingres, opracowanego na Uniwersytecie Barkley w Kaliforni. Ingres zastał wydany później jako produkt komercyjny przez firmę Relational Technologies/Ingres Corporation. Kontynuacje prac nad kodem bazy Ingres podjęto w 1986 roku pod kierownictwem profesora Michaela Stonebrakera, opracowując system zarządzania relacyjnymi bazami danych o nazwie Postgres. W 1995 roku Postgres przemianowano na Postgre95 w związku z wprowadzeniem języka SQL (ang. Structured Query Language), a w 1996 na PostgreSQL. Obecnie nadal jest prowadzony rozwój PostgreSQL a koordynatorem jest Marc G. Fournier który prowadzi projekt wraz z grupą ludzi z całego świata przez Internetu, komunikując sie po przez listy dyskusyjne PostgreSQL. Autorami PostgreSQL 1.01 bazującego na kodzie Postgresa byli: Andrew Yu i Jolly Chen.

PLATFORMY PostgreSQL działa na następujących systemach operacyjnych: Linux (wszystkie niedawne dystrybucje), Windows(Win2000 SP4 i późniejszy), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, BSD/OS, HP-UX, IRIX, OpenIndiana, OpenSolaris, SCO OpenServer, SCO UnixWare, Solaris and Tru64 Unix. W 2012 r. wsparcie dla następujących systemów zostało usunięte: DG/UX, NeXTSTEP, SunOS 4, SVR4, Ultrix 4 oraz Univel. Większość pozostałych systemów Uniksowych również powinna działać

NAJWAŻNIEJSZE CECHY - Funkcje: W samej bazie można pisać procedury składowane w różnych językach programowania. Domyślnie dostępne są: PL/pgSQL, podobny do proceduralnego języka PL/SQL w bazie Oracle; PL/Python; PL/Perl; PL/Tcl; język SQL (procedura to ciąg parametryzowanych instrukcji SQL). Dodatkowo można zainstalować wiele rozszerzeń.

INDEKSY W PostgreSQL zaimplementowano obsługę wielu typów indeksów, do których należą: B-drzewo, Hash, R-drzewo, GiST, SP-GiST i GIN. Indeksy można utworzyć zarówno na kolumnie, lub kolumnach tabeli jak i widoku zmaterializowanego. Składnia zapytania tworzącego indeks w PostgreSQL

- wyzwalacze Posiadają mechanizm wyzwalaczy (ang. triggers). Wyzwalacze są uruchamiane automatycznie przed lub po operacjach takich jak UPDATE, INSERT, DELETE i TRUNCATE. Do widoków można użyć mechanizmu reguł (ang. rules) by w ten sposób symulować możliwość zmieniania danych w widoku, który w PostgreSQLu jest z zasady tylko do odczytu. Przykład:

- MVCC PostgreSQL ma zaimplementowany mechanizm MVCC (Multiversion Concurrency Control) do zarządzania transakcjami. Mechanizm ten umożliwia udostępnienie tej samej krotki więcej niż jednej transakcji. Równocześnie może istnieć przynajmniej kilka wersji tej samej krotki, które nie są widoczne dla innych użytkowników do zakończenia danych transakcji. Dzięki temu baza danych wydajnie zachowuje zasadę ACID(zbiór właściwości, które gwarantują poprawne przetwarzanie transakcji w bazach danych). - Reguły są to elementy aktywne, które mogą być stosowane m.in. jako rozszerzenie widoków. Za pomocą reguł można zrealizować widoki modyfikujące, jako że reguły mogą mieć w definicji klauzulę INSTEAD OF co spowoduje, że robiąc zapytanie INSERT wstawiające dane do widoku, reguła zamiast tego zapytania zrobi inne, które wstawi dane do tabeli (bądź wielu tabel), z której widok odczytuje dane.

- Typy danych Rozszerzona jest definicja typów danych o nowe typy m.in: typ logiczny (boolean) typy liczbowe liczby całkowitych (smallint, integer, bigint) liczby zmiennoprzecinkowych (real, double precision) liczby niecałkowite o dokładnej reprezentacji (numeric, decimal) typy tekstowe (text, character alias char, character varying alias varchar) typy binarne (bit, bit varying) typy do przechowywania daty i czasu (timestamp/time with/without timezone, date, interval) typ do obliczeń walutowych (money) - typ ten nie jest zalecany do użytku typ wyliczeniowy (enum) typ złożony (rekordowy) typ tablicowy typy do wyszukiwania pełnotekstowego (tsvector, tsquery) typy geometryczne (point, line, lseg, box, path, polygon, circle) typy adresów sieciowych (cidr, inet, macaddr) XML, obsługujący również wyrażenia XPath (od wersji 8.3) UUID (od wersji 8.3) JSON (od wersji 9.2) typy zakresowe (Range Type) (od wersji 9.2) Dodatkowo użytkownicy mogą definiować własne typy danych [.

- Obiekty definiowane przez użytkownika Można tworzyć większość obiektów bazodanowych m.in.: rzutowania konwersje typów typy danych domeny funkcje, włączając w to funkcje agregujące indeksy, włączając w to indeksy dla definiowanych typów danych operatory, istniejące mogę być nadpisane języki proceduralne

Ograniczenia wielkości elementów bazy Nazwa ograniczenia Maksymalny rozmiar bazy Maksymalny rozmiar tabeli Maksymalny rozmiar wiersza Maksymalny rozmiar pola w wierszu Maksymalna liczba wierszy w tabeli Maksymalna liczba kolumn w tabeli Maksymalna liczba indeksów dla tabeli Wartość bez ograniczeń 32 TB 1,6 TB 1 GB bez ograniczeń 250-1600 (zależy od rodzaju kolumn) bez ograniczeń

-Inne cechy Silnik ten zawiera wiele obiektowych rozszerzeń takich jak możliwość definiowania nowych typów podstawowych i dziedziczenia typów tablic. Posiada zaawansowany system transakcji, dwufazowe zatwierdzanie (2PC) i możliwość dodawania funkcjonalności m.in. dzięki modułom zawartym w zbiorze contrib. Jednym z pierwszorzędnych celów twórców PostgreSQL jest jak największa zgodność ze standardem SQL. PostgreSQL jest dostępny na licencji Postgresql, podobnej do licencji BSD oraz licencji MIT

INNE SYSTEMY SQL system zarządzania relacyjnymi bazami danych zgodny ze standardem ANSI SQL-92; obok MySQL oraz PostgreSQL jest jednym z trzech najpopularniejszych wolnodostępnych systemów zarządzania bazą danych. Oferuje również wiele elementów standardu SQL-99 oraz SQL:2003. Działa w środowisku systemu operacyjnego Linux, Windows, Mac OS X i wielu innych. Może być używany bez rejestrowania lub wnoszenia jakichkolwiek opłat w dowolnych zastosowaniach, również komercyjnych.

WŁAŚCIWOŚCI Pełna obsługa procedur składowanych oraz wyzwalaczy Transakcje zgodne z ACID Integralność referencji Obsługa wielu wersji tego samego rekordu (ang. Multi Generational Architecture; MVCC) Wymaga niewielkiej pojemności dysku do przechowywania plików kodu wykonywalnego serwera baz danych (ang. footprint) PSQL - wewnętrzny język serwera, posiadający wiele możliwości i funkcje do obsługi procedur wbudowanych oraz wyzwalaczy Obsługa funkcji zdefiniowanych przez użytkownika - dołączanych w postaci bibliotek *.DLL lub *.so (UDFs) System zarządzania relacyjnymi bazami danych nie wymaga specjalistycznej wiedzy od użytkownika

W domyślnej instalacji nie jest wymagana dodatkowa konfiguracja - wystarczy zainstalować i od razu można używać Jest wiele miejsc, w których użytkownik może otrzymać fachowe i darmowe wsparcie techniczne Specjalne wydanie wersji wbudowanej (ang. embedded version), w postaci jednego dołączanego pliku, umożliwia tworzenie aplikacji na nośnikach CD/DVD itp., aplikacji jednostanowiskowych a także wersji prezentacyjnych programów dla użytkowników w celach testowych Wiele narzędzi (również graficznych) do zarządzania, replikacji danych itd. Format zapisu danych umożliwia szybkie przywrócenie bazy z kopii bezpieczeństwa - nie są wymagane przy tym logi transakcji Wiele możliwości dostępu do serwera baz danych: native/api, sterowniki dbexpress, ODBC, OLEDB, dostawca danych platformy.net, sterownik JDBC 4, moduły Python, PHP, Perl, itd. Obsługa wszystkich popularnych systemów operacyjnych - Windows, Linux, MacOS i innych. Kopie przyrostowe Wersje 64 bitowe Pełna implementacja kursorów w PSQL

relacyjny serwer danych z rodziny Information Management Software. rodzina produktów Systemów Zarządzania Bazami Danych (SZBD) firmy IBM. Informix jest oferowany jako flagowy serwer dla przetwarzania transakcyjnego (OLTP) jak i rozwiązań zintegrowanych. IBM nabył technologię Informix w 2001 od Informix Software.

Baza danych stworzona przez grupę (głównie) byłych pracowników MySQL AB, pod przewodnictwem Michaela Wideniusa, współtwórcy MySQL. Celem głównym projektu jest współpraca ze społecznością wolneg oprogramowania i udostępnianie jej na licencji GPL, w przeciwieństwie do niepewnego statusu licencji MySQL, która zależy teraz od firmy Oracle. Autorzy MariaDB stawiają sobie również za cel utrzymanie kompatybilności z wcześniejszymi wersjami MySQL.

Microsoft SQL Server (MS SQL) to system zarządzania bazą danych, wspierany i rozpowszechniany przez korporację Microsoft. Jest to główny produkt bazodanowy tej firmy, który charakteryzuje się tym, iż jako język zapytań używany jest przede wszystkim Transact-SQL, który stanowi rozwinięcie standardu ANSI/ISO. MS SQL Server jest platformą bazodanową typu klient-serwer. W stosunku do Microsoft Jet, który stosowany jest w programie MS Access, odznacza się lepszą wydajnością, niezawodnością i skalowalnością. Przede wszystkim są tu zaimplementowane wszelkie mechanizmy wpływające na bezpieczeństwo operacji (m.in. procedury wyzwalane).

MYSQL VS POSTGRESQL VS FIREBIRD Wydawać by się mogło, że ze względu na znacznie większą liczbę możliwości Firebird i PostgreSQL będą bazami o wiele bardziej skomplikowanymi w użyciu. Nie jest to jednak prawda. Wymagana na początku wiedza jest taka sama dla każdej z tych baz. Wystarczy znać podstawowe komendy języka SQL i metody kontroli transakcji. Co więcej, każda z tych baz dysponuje wygodnymi graficznymi interfejsami użytkownika, podobnymi do zaawansowanych narzędzi z komercyjnych systemów. W przypadku MySQL-a są to MySQL Administrator czy znany i lubiany MyPHPAdmin. PostgreSQL korzysta obecnie z pgadmina III, Firebird zaś z chyba najpotężniejszego spośród nich FlameRobina.

Do postawienia prostej bazy danych na typowym pececie MySQL wydaje się narzędziem w pełni wystarczającym. Jeśli mamy jednak do dyspozycji trochę szybszy sprzęt, w niczym nie zaszkodzi spróbować Firebirda czy PostgreSQLa obie te bazy danych są łatwe we wdrożeniu i późniejszym administrowaniu oraz oferują znacznie większą zgodność ze standardami. W przypadku zastosowań w pełni profesjonalnych, produkcyjnych, pomimo imponującego tempa rozwoju MySQL-a nie wydaje się, by baza ta dojrzała już do zastosowań domagających się pełnej zgodności z ACID. Być może istotna jest też kwestia kompatybilności: mimo że producenci każdej z tych baz deklarują pełną zgodność ze wszystkimi ważnymi systemami operacyjnymi, to spośród oferowanych wersji binarnych dla Windows jedynie Firebird zachowywał się w pełni stabilnie na komputerze autora (Windows 2000 wewnątrz VMware).

PODSUMOWANIE MySQL - prosta baza do prostych aplikacji, głównie webowych, dość problematyczna w utrzymaniu ze wzrostem objętości. PostgreSQL - poważna baza Open Source, o ogromnych możliwościach, z rewelacyjnym zapleczem i wsparciem "społeczeństwa". Bardzo elastyczna w konfiguracji, można z niej wiele wycisnąć. Nadaje się zarówno na bazę dla serwisu WWW, jak i dla dużego systemu tranzakcyjnego. Oracle - baza za którą stoi duża korporacja, o ogromnych możliwościach, standard przemysłowy, ale droga - co za tym idzie nadaje się tylko do dużych projektów z dużym budżetem.

BIBLIOGRAFIA http://9fingers.pl/ www.wikipedia.pl www.webhosting.pl www.phpedia.pl