SQL - podstawy,
Niektóre popularne bazy danych SQL:
Microsoft SQL Server, MYSQL, PostgreSQL, Oracle, Firebird i Fyracle, IBM DB2, Microsoft Access
(na podstawie Wikipedii)
SQL (ang. 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).
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.
W 1986 SQL stał się oficjalnym standardem,
wspieranym przez Międzynarodową Organizację Normalizacyjną (ISO) i jej
członka, Amerykański Narodowy Instytut Normalizacji (ANSI)
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.
Składnia SQL
Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych.
Zapytania można zaliczyć do jednego z trzech głównych podzbiorów:
SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”): SELECT, INSERT, UPDATE, DELETE
SQL DDL (ang. Data Definition Language – „język definicji danych”): CREATE, DROP, ALTER
SQL DCL (ang. Data Control Language – „język kontroli nad danymi”): GRANT, REVOKE, DENY
Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg.
Każde zapytanie w SQL-u musi kończyć się znakiem średnika (;).
Dodatkowo, niektóre programy do łączenia się z silnikiem bazy
danych (np. psql w przypadku PostgreSQL), używają swoich własnych
instrukcji, spoza standardu SQL,
które służą np. do połączenia się z bazą, wyświetlenia dokumentacji itp.
DML
DML (Data Manipulation
Language) służy do wykonywania operacji na danych – do ich
umieszczania w bazie, kasowania, przeglądania, zmiany.
Najważniejsze polecenia z tego zbioru to:
SELECT – pobranie danych z bazy,
INSERT – umieszczenie danych w bazie,
UPDATE – zmiana danych,
DELETE – usunięcie danych z bazy.
Dane tekstowe muszą być zawsze ujęte w znaki pojedynczego cudzysłowu (').
DDL
Dzięki DDL (Data Definition
Language) można operować na strukturach, w których dane są
przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub
bazy.
Najważniejsze polecenia tej grupy to:
CREATE (np. CREATE TABLE, CREATE DATABASE, ...) – utworzenie struktury (bazy, tabeli, indeksu itp.),
DROP (np. DROP TABLE, DROP DATABASE, ...) – usunięcie struktury,
ALTER (np. ALTER TABLE ADD COLUMN ...) – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).
DCL
DCL (Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych.
Najważniejsze polecenia w tej grupie to:
GRANT (np. GRANT ALL PRIVILEGES
ON EMPLOYEE TO PIOTR WITH GRANT OPTION) – przyznanie wszystkich
praw do tabeli EMPLOYEE użytkownikowi PIOTR z opcją pozwalającą mu
nadawać prawa do tej tabeli.
REVOKE – odebranie użytkownikowi wszystkich praw do tabeli, które zostały przyznane poleceniem GRANT.
DENY.
Przykładowe zapytania
Przykłady użycia wyżej wymienionych rodzajów zapytań:
SELECT *
FROM pracownicy
WHERE pensja > 2000
ORDER BY staz DESC;
Zwraca tabelę (listę) utworzoną ze wszystkich kolumn (*) tabeli
„pracownicy” (FROM pracownicy) zawierającą
pracowników, których pensja jest większa niż 2000 (WHERE
pensja > 2000) i sortuje wynik malejąco według parametru staz (ORDER
BY staz DESC).
INSERT INTO pracownicy
(imie, nazwisko, pensja, staz)
VALUES
('Jan', 'Kowalski', 5500, 1);
Dodaje do tabeli „pracownicy” (INTO pracownicy) wiersz (rekord) zawierający dane pojedynczego pracownika.
UPDATE pracownicy
SET pensja = pensja * 1.1
WHERE staz > 2;
Podwyższa o 10% pensję (SET pensja = pensja * 1.1) pracownikom, których staż jest większy niż 2 (np. lata).
DELETE FROM pracownicy
WHERE imie = 'Jan' AND nazwisko = 'Kowalski';
Usuwa z tabeli „pracownicy” wszystkie wiersze (rekordy)
dotyczące pracownika o imieniu „Jan” i nazwisku
„Kowalski” (czyli takie, w których pole "imię" ma
wartość Jan, a pole "nazwisko" – Kowalski.
CREATE TABLE pracownicy
(
imie varchar(255),
nazwisko varchar(255),
pensja float,
staz int
);
Tworzy tabelę „pracownicy” zawierającą pola tekstowe
zmiennej długości (varchar) o nazwach „imie” (imię) i
„nazwisko”, o maksymalnej długości 255 znaków,
zapisaną za pomocą liczby rzeczywistej (float od ang. floating point)
pensję oraz zapisany za pomocą liczby całkowitej (int od ang. integer)
staż.
DROP TABLE pracownicy;
Usuwa z bazy tabelę „pracownicy”.
ALTER TABLE pracownicy
ADD dzial varchar(255);
Dodaje do struktury tabeli „pracownicy” kolumnę
„dzial” (dział), jako pole tekstowe o długości maks. 255
znaków.
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).
Niektóre systemy bazodanowe używające SQL
Apache Derby
Caché
DATAllegro
DB2
Firebird
First SQL
Greenplum
HSQL
Ingres
Informix
InterBase SQL
MaxDB (dawniej SAP DB)
Microsoft Access
Microsoft Jet
Microsoft SQL Server
Mimer SQL
MySQL
mSQL
Neteeza
Oracle
Oracle Rdb
PostgreSQL
Pervasive
SQL/DS
SQLite
Sybase (Sybase Adaptive Server Enterprise, Sybase SQL Anywhere, Sybase IQ)
Teradata
Microsoft SQL Server
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).
Poza edycjami czysto komercyjnymi Microsoft udostępnia również edycje darmowe do dowolnego zastosowania (w tym komercyjnego).
Edycje te mają różnorodne ograniczenia i tak np. do wersji 2000
(8.0) włącznie nie były m.in. udostępniane graficzne narzędzia do
zarządzania bazami danych
oraz były ograniczenia co do możliwej ilości połączeń do bazy.
Począwszy od wersji 2005 (9.0) można pobrać wersję z graficznymi narzędziami i nie ma już limitu połączeń.
Narzędzia posiadają jednak ograniczone możliwości w stosunku do pełnej
wersji, a nawet jedna z istotnych usług dostępnych wcześniej w
darmowych wersjach, nie jest już dostępna.
Nie można już przez to wykonywać zautomatyzowanych zadań np. archiwizacji baz danych o zadanej godzinie.
Dodatkowo ograniczona została również wydajność samego serwera SQL (ograniczono wykorzystywaną pamięć RAM).
Wraz z premierą najnowszego serwera baz danych SQL Server 2005, zgodnie
z wcześniejszymi zapowiedziami Microsoft udostępnił całkowicie
bezpłatną wersję Express Edition do pobrania.
SQL Server 2005 Express Edition jest w sensie rozwojowym następcą bezpłatnego silnika MSDE, jednak jego możliwości są teraz w olbrzymim zakresie rozbudowane.
Może mieć zastosowanie zarówno do tworzenia aplikacji
pracujących pod kontrolą systemu Windows, jak serwisów
internetowych.
Wersja darmowa w stosunku do komercyjnego odpowiednika bazuje na tym samym jądrze i nie posiada limitu użytkowników.
Jest jednak limitowana do
systemów jednoprocesorowych, z 1GB pamięci RAM i 4GB objętości
bazy, nie posiada też graficznych narzędzi do zarządzania.
Wymagania systemowe dla tej wersji to system
operacyjny Windows 2000, XP lub Windows Server 2003, 192 MB pamięci
RAM, 525 MB wolnego miejsca na dysku, zainstalowany Windows Installer
3.0 i .NET Framework 2.0.
MYSQL
MySQL (wym. maj es-kiu-el) - wolnodostępny system zarządzania relacyjnymi bazami danych.
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
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 [3].
W wersji 5 dodano m.in.
- procedury składowane (ang. stored
procedures) – obecne od wersji 5.0,
- wyzwalacze (ang.
triggers) – obecne od wersji 5.0.2
- perspektywy (ang. views)
- kursory – obecne od wersji 5.1
- partycjonowanie tabel - od wersji 5.1
- harmonogram zadań - od wersji 5.1
Zbliża to najnowsze wersje MySQL do PostgreSQL pod względem funkcjonalności.
MySQL cieszy się natomiast opinią jednego z szybszych serwerów bazodanowych,
dzięki czemu nadaje się jako serwer dla często odwiedzanych witryn WWW.
MySQL zawiera wsparcie dla replikacji bazy danych (w trybie
master-slave) i wielojęzyczności – każda tabela, a nawet każde pole może mieć
własne ustawienie kodowania znaków.
Platformy, dla których dostępny jest MySQL
Serwer MySQL dostępny jest dla wszystkich popularnych platform systemowych i
różnorakich architektur procesorów. Jest dostępny także w wersji źródłowej, co
umożliwia skompilowanie go dla dowolnej innej
platformy.
Oficjalnie oferowane są wersje binarne dla następujących platform i
architektur (MySQL 4.1):
- Linux (x86, S/390, IA64 (Itanium), Alpha, PowerPC, AMD64 /
EM64T),
- Windows
(x86, x64),
- Solaris (SPARC, x86),
- FreeBSD (x86),
- MacOS X,
- HP-UX (PA-RISC IA64),
- AIX (RS6000),
- i5/OS (IBM
System I),
- QNX (x86),
- Novell NetWare (x86),
- SGI,
- DEC OSF.
Według informacji z dokumentacji serwera, MySQL można skompilować również dla
platform: Amiga, BSDI, Digital
Unix, NetBSD, OpenBSD, OS/2 Warp, SCO
OpenServer, SCO
UnixWare, SunOS, Tru64
Unix.
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.
PostgreSQL
PostgreSQL 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.
PostgreSQL zalicza się do baz typu RDBMS z rozszerzeniami obiektowymi
W samej bazie można pisać procedury składowane w różnych językach
programowania:
- wbudowany język PL/pgSQL podobny
do proceduralnego języka PL/SQL w bazie Oracle
- języki skryptowe m.in.
- PL/LOLCODE
- PL/Lua
- PL/Perl
- plPHP
- PL/Python
- PL/Ruby
- PL/sh
- PL/Tcl
- PL/Scheme
- języki kompilowane C, C++, lub Java (jako
PL/Java)
- język statystyczny R jako PL/R
Oracle
Oracle Database to oficjalna nazwa relacyjnego
systemu baz danych (RDBMS) stworzonego przez Oracle Corporation.
Nazwa Oracle pochodzi od
nazwy kodowej jednego z projektów sponsorowanych przez CIA, nad którymi pracował współzałożyciel
korporacji Oracle - Larry
Ellison.
Relacyjna baza danych Oracle posługuje się standardowym językiem zapytań SQL oraz posiada wbudowany wewnętrzny język
tworzenia procedur składowanych PL/SQL
- będący proceduralnie
obudowanym językiem SQL.
Jako języka tworzenia
procedur składowanych w bazach danych Oracle (od wersji 8i) można używać również
języka Java.
System bazy danych Oracle składa się z:
- instancji - struktur pamięciowych i procesów systemu operacyjnego
obsługujących bazę danych. W skład typowego procesu wchodzi PMON (process
monitor) i SMON (system monitor).
- struktur przechowywania danych
W skład bazy danych Oracle wchodzą:
- plik parametrów - plik opisujący parametry instancji bazy danych
Oracle oraz ścieżki do plików kontrolnych
- pliki kontrolne - przechowują zmultiplikowaną informację na temat
struktury bazy danych (informacje o plikach danych, historie backupów, numery
SCN, informacje na temat archiwalnych dzienników powtórzeń, trybu pracy bazy
danych)
- dzienniki powtórzeń - przechowują powtórzoną informację na temat
przeprowadzonych w systemie transakcji i mają charakter dookolny - po
zapełnieniu informacja jest nadpisywana
- archiwalne dzienniki powtórzeń - kopie dzienników powtórzeń
wykonywane po ich zapełnieniu
- pliki danych - w których przechowywane są wszystkie gromadzone w
systemie dane oraz struktury wspomagające (np. indeksy).
Baza danych Oracle zamiast plików potrafi również wykorzystywać tak zwane
surowe urządzenia (niesformatowane partycje).
Dane w bazie Oracle przechowywane są w tabelach znajdujących się w
przestrzeniach tabel (tablespace). Pojedyncza przestrzeń tabel może rozciągać
się na wiele plików danych natomiast pojedynczy plik może należeć tylko do
jednej przestrzeni. Przestrzeń tabel może logicznie składać się z różnego
rodzaju segmentów (zbiorów bloków danych zaalokowanych na rzecz obiektu
bazodanowego). Segment jest natomiast grupą extentów, które z kolei są ciągłymi
zestawami bloków danych. Bloki są najmniejszą jednostką alokacji przestrzeni.
Baza danych Oracle potrafi posługiwać się blokami różnej wielkości.
Najważniejszą przestrzenią tabel dla działania bazy danych jest przestrzeń
SYSTEM przechowująca wszelkie słowniki bazy.
Obecnie System zarządzania bazą danych - SZBD - (ang. RDBMS) Oracle jest
dystrybuowany w wersji 11g (Oficjalna premiera odbyła się 11.07.2007).
Dostępne
są różnorodne edycje SZBD Oracle różniące się możliwościami a co za tym idzie
ceną.
W tej chwili dostępne są edycje Oracle:
- Oracle Enterprise Edition
- Oracle Standard Edition
- Oracle Standard Edition One
- Oracle Express Edition (pierwsza wersja beta została udostępniona publicznie
28.10.2005)
- Oracle Personal
- Oracle Lite
Oracle Enterprise Edition jest standarowym i najbardziej
rozbudowanym produktem firmy Oracle i może być dodatkowo rozszerzany o opcje
np. takie jak: partycjonowanie tabel, RAC, zaawansowane bezpieczeństwo itd.
Oracle Standard Edition tańsza edycja bazy danych Oracle pozbawiona
możliwości rozbudowy o opcje, nie posiadająca wszystkich możliwości edycji
Enterprise
(brak np. mechanizmu DataGuard) oraz ograniczona ilością procesorów
na jakiej można ją uruchomić.
Oracle Standard Edition One pierwszy raz ukazała się wraz z wersją
10g.
Jest to tania edycja bazy danych Oracle nie różniąca się niczym w stosunku
do Oracle Standard Edition poza ograniczeniami licencyjnymi takimi między
innymi jak: brak możliwości uruchomienia w konfiguracji klastrowej, ograniczenie
na pracę w maszynach mających możliwość instalacji maksymalnie dwóch
procesorów.
Oracle Express Edition (nie należy jej mylić z wielowymiarową bazą
danych Oracle Express) jest darmową, ale bardzo ograniczoną (między innymi
wykorzystanie jednego procesora, wykorzystanie maksymalnie 1 GB RAM, obsługa
maksymalnie 4 GB danych użytkownika) edycją SZBD Oracle. Oracle Express
Edition jest prezentowana po raz pierwszy w wersji 10gR2.
Oracle Personal jest edycją w pełni funkcjonalną, kompatybilną z
dowolną wersją rodziny relacyjnych baz danych Oracle, przeznaczoną do użytku
indywidualnego.
Oracle Lite jest systemem zarządzania bazą danych przeznaczonym do
zastosowań mobilnych.
Od wersji 9i silniki bazy danych pomiędzy wszystkimi edycjami (wyłączając
edycję Lite) jest ten sam z wprowadzeniem do niego adekwatnych dla edycji
ograniczeń. W wersjach wcześniejszych silniki wersji Standard oraz Enterprise
były tworzone osobno
Firebird i Fyracle
Firebird
Firebird – 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.
Serwer jest rozwijany na bazie kodu źródłowego serwera InterBase 6.0
udostępnionego przez firmę Inprise
Corp
(obecnie znana jako Borland
Software Corp) w lipcu 2000 roku na podstawie licencji InterBase
Public License 1.0.
Nowe moduły dodane do serwera objęte są licencją Initial Developer's Public
License.
Obie licencje są zmodyfikowanymi nieco wersjami Mozilla
Public License v.1.1.
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
FyracleFyracle jest specjalną wersją Firebird - bazy danych open source - pozwalającą
korzystać ze składni języka SQL w wersji PL/SQL, zaimplementowanej w serwerach Oracle.
Jej
celem jest ułatwienie przenoszenia aplikacji napisanych dla Oracle do środowiska
open
source.
Fyracle składa się z trzech elementów:
- rozszerzeń bazy Firebird, takich jak obsługa dziedziczonych i tymczasowych
tabel, hierarchiczne zapytania, silnik języka PL/SQL, wsparcie dla semantyki
specyficznej dla Oracle - takiej jak równoważność pustych napisów i NULL w
pewnych kontekstach;
- biblioteki klienckiej, która tłumaczy składnię specyficzną dla Oracle do
wersji zrozumiałej dla serwera Firebird, na przykład zmiana w złączeniach JOIN
zamiana (+)
na składnię połączeń zgodną z ANSI;
- kompilatora PL/SQL, który przekształca kod źródłowy takich elementów
języka jak procedury składowane, funkcje i wyzwalacze na kod bajtowy zrozumiały
dla wspomnianego wyżej
silnika PL/SQL.
Fyracle obecnie potrafi poprawnie wykonać wszystkie przykłady dołączone do
Oracle 7. Cały czas dodawane są kolejne możliwości.
Celem jest pełna zgodność z
Oracle 9.
Przykładem zastosowania Fyracle jest dostępny jako open source system ERP/CRM "Compiere".
Dzięki użyciu Compiere z Fyracle zostaje zmniejszone zapotrzebowanie na zasoby
komputera w porównaniu do Oracle i jest znacznie prostsze do zarządzania przez
typowych użytkowników Compiere. Innym przykładem jest użycie Fyracle jako bazy
danych przez nie wymagające wielkich wydajności aplikacje napisane w Visual Basic, Delphi lub Oracle Developer/2000 z Oracle
Developer Suite. Takie aplikacje są łatwiejsze do dystrybucji z Fyracle niż
z najnowszymi wydaniami Oracle.
IBM DB2 - relacyjny serwer danych z rodziny
Information Management Software.
Baza IBM DB2 v9.5 oferowana jest w trzech komercyjnych edycjach: Express,
Workgroup oraz Enterprise oraz bezpłatnej edycji DB2 Express-C.
Wszystkie edycje
DB2 oparte są o ten sam kod i różnią się ograniczeniami licencyjnym wynikającymi z zastosowanej platformy
sprzętowej oraz ewentualnych opcjonalnych komponentów.
Wszystkie edycje
zawierają ten sam zestaw graficznych narzędzi administracyjnych, które dostępne
są standardowo także w języku polskim.
Bezpłatna edycja DB2 Express-C może być
stosowana w komercyjnych rozwiązaniach i nie ogranicza wielkości bazy danych.
Do
każdego serwera bezpłatnej bazy można wykupić wsparcie techniczne na okres
jednego roku (DB2 Express-C FTL).
Wykupione wsparcie techniczne umożliwia dostęp
do regularnie publikowanych przez IBM uaktualnień kodu oraz daje możliwość
konfiguracji bazy w architekturze o wysokiej dostępności.
Edycje komercyjne IBM DB2 v9.5:
- Express:
- Maksymalna liczba procesorów na serwerze: 200 PVU
- Maksymalny rozmiar wykorzystywanej pamięci: 4GB
- Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)
- Workgroup:
- Maksymalna liczba procesorów na serwerze: 400 PVU
- Maksymalny rozmiar wykorzystywanej pamięci: 16GB
- Obsługiwane platformy: Linux, Windows, UNIX
- Enterprise:
- Maksymalna liczba procesorów na serwerze: bez ograniczeń
- Maksymalny rozmiar wykorzystywanej pamięci: bez ograniczeń
- Obsługiwane platformy: Linux, z/Linux, Windows, UNIX
- Express-C FTL (Fixed Time License)
- Maksymalna liczba wykorzystywanych rdzeni: 4 rdzenie na maksymalnie dwóch
procesorach.
- Maksymalny rozmiar wykorzystywanej pamięci: 4GB
- Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)
Edycje bezpłatne IBM DB2 v9.5:
- Express-C
- Maksymalna liczba wykorzystywanych rdzeni: 2 rdzenie
- Maksymalny rozmiar wykorzystywanej pamięci: 2GB
- Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)
Microsoft Access - system obsługi relacyjnych baz
danych, wchodzący w skład pakietu biurowego Microsoft Office dla środowiska Windows.
Od wersji
2.0 dostępny w wersji polskiej.
Bazy danych Access są zapisywane w pojedynczych plikach (rozszerzenie
mdb, skompilowana wersja mde).
Jest to wygodne w przypadku
prostych zastosowań, jednak kosztem wydajności, wielodostępności oraz bezpieczeństwa danych.
Aby uniknąć
takich problemów Access można podłączyć do zewnętrznych źródeł danych (do
dowolnego źródła obsługującego popularne oprogramowanie
pośredniczące, np. do serwera Microsoft SQL Server, PostgreSQL lub innej bazy MS Access).
W takim
przypadku Access spełnia rolę graficznego interfejsu dla zewnętrznych źródeł
danych, a nie całego systemu obsługi baz danych.
Access posiada własny, wbudowany aparat bazy danych (Microsoft Jet), który pełni funkcje wewnętrznej
bazy danych.
Istnieje możliwość rezygnacji z MS Jet wykorzystując projekty
programu Microsoft Access (rozszerzenie adp), ale wówczas wszystkie
elementy bazy danych przechowywane są wyłącznie na tym podłączonym serwerze.
Do przykładowych zastosowań można zaliczyć prostsze aplikacje dla małych i
średnich firm dotyczące analizy oraz przetwarzania danych.
Microsoft Access
można również wykorzystać do szybkiego prototypowania aplikacji
bazodanowych.
Dostęp do baz danych utworzonych w Microsoft Access wymaga posiadania
programu Access, bądź też napisania osobnego programu z użyciem zewnętrznych
narzędzi.
Wyjątkiem jest najbardziej rozbudowana wersja Developer, która
umożliwia też tworzenie gotowej aplikacji zawartej w jednym pliku
wykonywalnym.
Cechy MS Access
W wersji 2003 (MS Access 2003) Access ma następujące ograniczenia:
- maksymalny rozmiar bazy danych to 2 GB (w tej przestrzeni muszą się
również zmieścić obiekty systemowe, np. indeksy),
- maksymalna liczba obiektów w bazie: 32 768, [aktualnie baza acces
może pomieścić ponad 1 milion rekordów lecz wadą jest czas reakcji po zapytaniu
użytkownika
- optymalna ilość rekordów wynosi około 50 tys. bez zastosowania
relacji, 500 tys. ze stosowaniem relacji.
- maksymalna liczba jednoczesnych użytkowników: 255 (w praktyce dużo
mniej),
- maksymalna liczba pól w tabeli: 255,
- maksymalny rozmiar tabeli: 2 GB (wraz z obiektami systemowymi)
Poza tym Microsoft Access zawiera wbudowany interpreter VBA (ang. Visual Basic for
Applications).
Darmowy hosting zapewnia PRV.PL