Baza danych (ang. data base) – pojęcie szeroko rozumianej elektronicznej
kartoteki, uważane za miejsce do przechowywania danych, plików i itp. C.J. Date,
znany autorytet w dziedzinie zarządzania bazami danych twierdzi iż „baza danych to
nic innego jak skomputeryzowany system przechowywania rekordów”.
Zwrot „baza danych” może być również używany do określenia wszystkiego –
zaczynając od pojedynczego zbioru danych, takiego jak spis telefonów, a kończąc na
skomplikowanym zestawie narzędzi służących do zarządzania, manipulowania
i sterowania danymi. Zatem bazę danych należy rozumieć jako zorganizowany zbiór
informacji, który zawiera jednolity rodzaj danych.
Można zatem stwierdzić iż użytkownik systemu opartego na bazie danych,
mający do dyspozycji narzędzia do przeprowadzania rozmaitych operacji na danych jest
w stanie dodawać nowe informacje do bazy, wydobywać szczególnie istotne z jego
punktu widzenia dane, a także usuwać wpisy które zostały uznane za zbędne lub
zdublowane.
Bazę danych tworzą tabele. Tabela bazy danych podzielona jest na kolumny
i wiersze. Pola tabeli określają rodzaj informacji zawartych w poszczególnych
kolumnach. Wiersze tabeli zwane rekordami, zawierają informacje o jednym elemencie
tabeli bazy danych i aby ułatwić identyfikację danej informacji stosuje się numerację
pól.. Numerowanie rekordów pozwalana na dowolne sortowanie (porządkowanie)
danych w celu odnalezienia wymaganej informacji. Aby wyszukać wymaganą
informację należy, w tym celu utworzyć kryterium wyboru (wyszukiwania), zwane
zapytaniem lub filtrem.
W węższym rozumieniu baza danych rozumiana jako zbiór uporządkowanych
i ułożonych ze sobą tematycznie danych, jest złożona z elementów o określonej
strukturze: rekordów lub obiektów. Z Bazami danych związane są mechanizmy
zarządzania, modyfikowania określające między innymi zasady porządkowania,
wyszukiwania i edycji.
Często potocznie bazą danych określa się oprogramowanie do tworzenia
i zarządzania bazami danych. Dlatego należy zauważyć, iż termin „baza danych” nie
obejmuje Aplikacji. Jest pojęciem wykluczającym Program/Aplikację składającą się
z formularzy i raportów wykorzystywanych bezpośrednio przez użytkownika, a także
dodatków – takich jak oprogramowanie pośredniczące.
Najczęściej spotykanym rodzajem baz są relacyjne bazy danych, w których dane
grupowane są w wielu tablicach powiązanych ze sobą tzw. relacjami. W dobie sieci
komputerowych i Internetu coraz częściej mamy do czynienia z bazami rozproszonymi
- bazami danych przechowywanymi w różnych, nieraz bardzo odległych od siebie
miejscach sieci. A zatem „bazy danych pozwalają na wykonywanie szeregu operacji na
przechowywanych polach i rekordach, w szczególności na sortowanie według dowolnie
zdefiniowanych kryteriów, uzupełnianie o nowe elementy oraz przeszukiwanie według
zadanych słów kluczowych. Operacje te mogą być dowolnie łączone i rozbudowywane -
służą do tego specjalne języki, z których najpopularniejszym jest SQL.
Poniżej został przedstawiony podział baz danych:
Ze względu na budowę:
a) Relacyjne bazy danych
b) Hierarchiczne bazy danych
c) Sieciowe bazy danych
d) Obiektowe bazy danych
e) Obiektowo - relacyjne bazy danych
Ze względu na sposób zarządzania bazami danych:
a) Operacyjne bazy danych
b) Analityczne bazy danych
Wszystkie typy baz danych łączy ze sobą kilka podstawowych cech.
Są to:
Możliwość bezpośredniego, interakcyjnego, uzyskiwania informacji z bazy
poprzez formułowanie pytań.
Możliwość przechowywania danych w postaci trwałej i zarządzanie
pamięcią wtórną, w której przechowuje się informacje bazy danych.
Zapewnienie kontroli jednoczesnego dostępu do danych.
Możliwość odzyskiwania danych w przypadku błędów pracy systemu i
ochrony danych przed niepowołanym dostępem.
Analityczne bazy danych.
Ten typ baz wykorzystywany jest przede wszystkim do przechowywania danych
historycznych i informacji związanych z pewnymi wydarzeniami. Są to dane, które nie
wymagają modyfikowania, są one statyczne tzn. bardzo rzadko, lub w ogóle nie ulegają
zmianom. Bazy te są wykorzystywane po to, aby np. przeanalizować tendencje rynkowe
lub na podstawie długoterminowych danych statystycznych przewidzieć prognozy na
przyszłość. Przykładem takiej bazy są np. bazy testów chemicznych lub danych
pomiarowych.
Operacyjne bazy danych.
Bazy operacyjne są to bazy wykorzystywane wszędzie tam, gdzie istnieje
potrzeba gromadzenia danych oraz ich modyfikowania. Ten typ baz przechowuje dane
dynamiczne, tzn. takie, które ulegają ciągłym zmianom i przedstawiają aktualny stan
rzeczy, której dotyczą. Zazwyczaj to ten typ bazy można spotkać w różnych
przedsiębiorstwach i organizacjach, gdyż jest to jeden z najpopularniejszych typów baz
danych. Przykładem takiej bazy danych są np. bazy inwentaryzacyjne lub bazy obsługi
zamówień.
Hierarchiczne bazy danych
Jest to pierwsza udana elektroniczna implementacja bazy danych, do dnia
dzisiejszego jeszcze używana w dużych magazynach. Powstała na początku lat
sześćdziesiątych, oparta jest o strukturę drzewiastą o wielu gałęziach. Wszystkie
elementy danych w bazie hierarchicznej są zorganizowane w bardzo logiczny sposób.
Oznacza to, iż każda wartość obiektu danych jest logicznie powiązaną z jedną lub
kilkoma wartościami innego obiektu danych. Hierarchiczna baza danych ma wiele zalet:
przede wszystkim jest łatwa do wdrożenia, ma bardzo prostą i łatwą do zrozumienia
strukturę, oraz zazwyczaj bardzo krótki czas dostępu.
Sieciowe bazy danych
Jest to zmodyfikowana wersja modelu hierarchicznego, stworzona przede
wszystkim w celu rozwiązania problemów związanych z bazami danych opartych
właśnie o model hierarchiczny. Elementy danych w tym modelu, są zorganizowane
w strukturę drzewiasta podobnie jak w przypadku modelu hierarchicznego. Jednak,
inaczej niż w modelu hierarchicznym, model sieciowy pozwala na definiowanie relacji
wiele-wiele w postaci struktury drzewiastej bez powtarzania poszczególnych wartości
w ramach obiektu danych. Zaletą sieciowego modelu baz danych jest szybkość, z jaką
można odczytać dane, oraz większe możliwości bazy.
Obiektowe bazy danych (ODBMS – Object Data Base Management Systems)
Obiektowe bazy danych są efektem połączenia koncepcji opracowanych na
gruncie: bazy danych, obiektowych języków programowania i ogólnych rozważań na
temat obiektowego postrzegania świata. Jednym z podstawowych celów tego typu bazy
danych jest bezpośrednie odwzorowanie obiektów i powiązań między nimi
wchodzących w skład aplikacji na zbiór obiektów i powiązań w bazie danych. Cechą
ODBMS jest to, że pozwalają one na przechowywanie danych o dowolnej strukturze,
zdefiniowanej przez projektanta, co skutkuje tym, iż Obiektowa baza danych sprawdza
się wszędzie tam, gdzie relacyjna baza danych napotyka trudności. Przykładem może
być dynamicznie rozwijający się serwis WWW.
Relacyjno - obiektowe bazy danych
(ORDBMS – Object-Relational Data Base Management Systems)
ORDBMS jest stosunkowo nowym modelem baz danych, który powstał w wyniku
ewolucji systemów relacyjnych w kierunku obiektowych. Posiada wszystkie cechy bazy
relacyjnej rozszerzonej o możliwości bazy obiektowej. ORDBMS posiada przede
wszystkim możliwość przechowywania danych multimedialnych, przestrzennych, czy
np. abstrakcyjnych; co do tej pory dla bazy relacyjnej nie było możliwe do uzyskania.
Jednocześnie prosty interfejs powoduje, że ORDBMS są zdecydowanie bardziej
"przyjazne" dla przeciętnego użytkownika.
Relacyjne bazy danych (RDBMS - Relational Data Base Management Systems)
Za autora technologii relacyjnych baz danych uważa się E. F. Codda.
Relacyjne bazy danych charakteryzują się tym, iż wiele tabel danych może być między sobą
powiązanych.
Bazy relacyjne posiadają wewnętrzne języki programowania, wykorzystujące zwykle SQL (Structured Query Language – strukturalny język zapytań)
do operowania na danych, za pomocą których tworzone są zaawansowane funkcje
obsługi danych.
Dane przechowywane w relacyjnej bazie danych mogą posiadać następujące rodzaje,
czyli formy ich zapisu:
- znakowy (ang. character) - dana moŜe przybierać tylko wartości znaków
pisarskich (alfabetycznych)
• liczbowy (ang. number) - dana moŜe przechowywać tylko liczby
• logiczny (ang. logical) - dana moŜe przybierać tylko dwie wartości: prawda, fałsz (tak, nie)
• data (ang. date)
-dana może przyjmować postać daty i czasu np. Rok. miesiąc.dzień godz:min:sek
• alfanumeryczny (ang. alphanumeric) - dana może przybierać wartości znaków ASCII oraz cyfry
• numeryczny (ang. numeric) - wartościami danej mogą być tylko cyfry i znaki:
+ (plus), - (minus).
• walutowy (ang. currency) - dana może przyjmować wartości liczbowe razem
z symbolem waluty
• notatnikowy (ang. memo) - dana może być oddzielnym zbiorem tekstowym
służącym do przechowywania dowolnych opisów.
• binarny (ang. binary) - dana może być np. plikiem dźwiękowym lub filmowym.
• graficzny (ang. graphic) - dana przechowuje grafikę np. rysunki.
Podzielenie danych na tabele pozwala wprowadzić do systemu bazy danych
informacje na temat sposobu poprawnego łączenia powiązanych danych w logiczną
całość. W tym celu definiuje się relacje między tabelami.
Relacje występujące w relacyjnych bazach danych dzielą się na 3 kategorie:
• Relacje jeden-do-jednego
• Relacje jeden-do-wielu
• Relacje wiele-do-wielu
Relacje typu jeden-do-jednego
Relacje te charakteryzują się tym ,że dla każdej instancji jednego z dwóch rekordów
istnieje dokładnie jedna instancja drugiego rekordu np. czek i opłata (opłata jest
realizowana za pomocą jednego czeku i za pomocą jednego czeku można zrealizować
tylko jedną opłatę). Ten typ relacji spotykany jest rzadko, ponieważ większość informacji
powiązanych w ten sposób można zawrzeć w jednej tabeli. Relacje jeden-do-jednego
stosuje się czasami do podziału tabeli z wieloma polami, w celu odizolowania części
tabeli ze względów bezpieczeństwa, albo do przechowania informacji odnoszącej się
tylko do podzbioru tabeli głównej.
Relacje typu jeden-do-wielu
Relacje te charakteryzują się tym, iż dla każdej instancji jednego rekordu istnieje wiele
instancji drugiego rekordu. Relacja jeden-do-wielu jest realizowana poprzez utworzenie
atrybutu w rekordzie po stronie wiele, aby umieścić w nim klucz rekordu znajdującej się
po stronie jeden. Tak utworzony atrybut rekordu po stronie wiele nosi nazwę klucza
obcego ponieważ jest on głównym kluczem w innej tabeli. Relacja jeden-do-wielu jest
najbardziej powszechnym typem relacji.
Relacje typu wiele-do-wielu
W relacji wiele-do-wielu, rekord w tabeli A może mieć wiele dopasowanych do niego
rekordów z tabeli B i tak samo rekord w tabeli B może mieć wiele dopasowanych do
niego rekordów z tabeli A. Jest to możliwe przez zdefiniowanie trzeciej tabeli (nazywanej
tabelą łącza), której klucz podstawowy składa się z dwóch pól - kluczy obcych z tabel A
i B. Relacja wiele-do-wielu jest definiowana jako dwie relacje jeden-do-wielu z trzecią
tabelą. Na przykład, tabele "Zamówienia" i "Produkty" mogą być powiązane relacją
wiele-do-wielu zdefiniowaną przez utworzenie dwóch relacji typu jeden-do-wielu z tabelą
"Opisy zamówień".
Zasada działania bazy danych
Dane zapisywane są w bazie przeważnie w postaci pojedynczego pliku
o odpowiedniej strukturze. Każdy wpis w bazie danych nazywany jest rekordem, z kolei
rekordy składają się z pól. Przyjmując, że baza danych zawiera dane adresowe osoby,
każdy rekord odpowiadał będzie pojedynczej osobie. Szczegółowe informacje takie jak
nazwisko, imię, adres, numer telefonu czy adres zamieszkania znajdą się w oddzielnych
polach.
Najczęściej spotykanym rodzajem baz są relacyjne bazy danych, w których dane
grupowane są w wielu tablicach powiązanych ze sobą tzw. relacjami. W dobie sieci
komputerowych i Internetu coraz częściej mają zastosowanie z bazy rozproszone - bazy
danych przechowywane w różnych, nieraz bardzo odległych od siebie miejscach sieci.
Bazy danych pozwalają na wykonywanie szeregu operacji na polach
i rekordach, w szczególności na sortowanie według dowolnie zdefiniowanych kryteriów,
uzupełnianie o nowe elementy oraz przeszukiwanie według zadanych słów kluczowych.
Operacje te mogą być dowolnie łączone i rozbudowywane. Aby umożliwić te operacje
stworzono do tego celu specjalne języki, z których najpopularniejszym jest SQL.
Należy również wyjaśnić, iż język SQL „Structured query language [SQL]”
(strukturalny język zapytań) - to język zapytań opracowany przez IBM. Został on też
zaadaptowany przez Oracle Corporation do zastosowania na inne platformy (w tym
PC). SQL jest obecnie standardem w większości profesjonalnych DBMS, szczególnie
opartych na architekturze klient-serwer. SQL zawiera ok. 60 poleceń i jest używany do
tworzenia i modyfikacji zapytań oraz sterowania dostępem do danych zorganizowanych
w tablicach. SQL może być używany zarówno jako interfejs interaktywny, jak również
jako wbudowane polecenia w programie aplikacji.
Większość baz danych działa w oparciu o model klient-serwer. Moduł serwera
bazy danych ma wiele cech właściwych systemom operacyjnym: pozwala
administrować kontami użytkowników, umożliwia określanie praw dostępu do baz
danych, często udostępnia własny wiersz poleceń. Z kolei moduł klienta pozwala na
administrowanie bazami danych oraz przeglądanie ich zawartości - kierowanie zapytań
i odbieranie odpowiedzi.
W Internecie bazą danych może być zbiór artykułów list dyskusyjnych, oferta
księgarni wysyłkowej, książka adresowa użytkowników, itp. Przykładowo - zadając
pytanie wyszukiwarce, w rzeczywistości korzystamy z jej ogromnej wewnętrznej bazy
danych przechowującej informacje o zawartości i położeniu setek milionów
dokumentów internetowych. Szereg "tradycyjnych" baz danych (jak np. rozkłady jazdy,
katalogi biblioteczne, itp.) udostępnianych jest do użytku publicznego w sieci Internet.
Do korzystania z internetowych baz danych wystarczy zwykła przeglądarka WWW.
Wyświetla ona stronę WWW zawierająca graficzny interfejs dostępu (najczęściej jest to
mniej lub bardziej rozbudowany formularz) komunikujący się z bazą danych w jednym
z popularnych języków programowania - zwykle PHP, Perl lub Java.
Przedstawionego poniżej podziału użytkowników baz danych dokonał Dariusz Figura,
w pracy „Obiektowe bazy danych”.
Użytkownicy
Użytkownicy systemu bazy danych dzielą się na trzy grupy:
•Programiści aplikacji (application programmers) – są oni odpowiedzialni za pisanie (implementowanie) programów i aplikacji wykorzystujących bazy danych w takich językach jak PHP, C#. Pisane przez programistów programy przetwarzają dane na wszystkie typowe
sposoby – wyszukując istniejącą informację, dodając nową informację, usuwając lub
zmieniając informację. Wszystkie te funkcje są wykonywane poprzez podanie odpowiedniego polecenia do DBMS.
• Użytkownicy (users) – osoby bezpośrednio komunikujące się z systemem za pośrednictwem stacji roboczych lub terminali. Przeważnie użytkownicy uzyskują dostęp do bazy danych za pomocą jednej z aplikacji. Aplikacja taka może być dostarczona wraz z oprogramowaniem (przykładem jest środowisko MySQL oraz towarzysząca obsłudze baz danych aplikacja PhpMyAdmin). Aplikacja
taka ma wbudowany procesor języka zapytań (query language processor). Za pomocą tego procesora użytkownik może wydawać polecenia wysokiego poziomu, które są tłumaczone na odpowiednie zapytania do bazy (takie jak SELECT, INSERT). Duża liczba systemów spotykanych
w dzisiejszym świecie posiada także dodatkowe wbudowane interfejsy, w których użytkownicy wcale nie wydają jawnych instrukcji takich jak SELECT, lecz zamiast tego wykonują
operacje np. przez wybór odpowiednich gotowych pozycji w menu (lista rozwijalna) lub wypełnienie rubryk formularza. Interfejsy te sterowane przez menu lub formularze są łatwiejsze dla osób nie posiadających wystarczającej wiedzy do obsługi takiego systemu. Ograniczenie opcji
wyboru dla użytkownika ogranicza również jego możliwości ingerencji w strukturę bazy danych,
a co z tym idzie zmniejsza prawdopodobieństwa zaistnienia błędnego zapytania. 19 Interfejsy sterowane poleceniami (terminal) wymagają natomiast pewniej znajomości posługiwania się językiem zapytań. Ponieważ język ten jest bardziej elastyczny, niż interfejsy oparte na menu lub
formularzach, umożliwiają one pewne funkcje, których nie ma w innych interfejsach.
•Administratorzy baz danych (Data Base Administrators) – są to osoby odpowiadająca za dane zawarte w bazie. Do zadań administratora należy przede wszystkim podejmowanie decyzji, o tym, które dane powinny być przechowywane, a następnie określanie zasad utrzymywania danych
i postępowania z przechowywanymi danymi. Przykładem takiej funkcji jest osoba, która wskazywałaby, kto i jaką operacje może wykonać, na jakich danych i w jakich okolicznościach – innymi słowy – osoba odpowiedzialna za bezpieczeństwo danych. Należy tutaj również
podkreślić, iż administrator danych jest kierownikiem, czyli osobą, która również musi posiadać wiedzę techniczną związaną z systemem. Osoba będąca technikiem – specjalistą w dziedzinie IT – jest administrator bazy danych (DBA), której zadaniem jest tworzenie rzeczywistej bazy danych
oraz implementacji technicznych sposobów kontroli potrzebnych do realizacji różnych decyzji podejmowanych przez kierownika. DBA odpowiada ponadto za zapewnienie odpowiedniej wydajności systemu i realizacje wielu innych usług technicznych.
Wymianę informacji w Internecie podzielić można według kryterium – kto
z kim wymienia się informacjami lub danymi. Stosując to kryterium wydzielić można 3
rodzaje wymiany informacji:
Bussines to Customer (B2C): odpowiednik tradycyjnej wymiany danych
pomiędzy firmą a klientami
Bussines to Bussines (B2B): wymiana informacji i danych między
firmami, instytucjami i organizacjami
Customer To Customer (C2C): odpowiednik forum internetowego, gdzie
użytkownicy wymieniają się swoją wiedzą i wszelkimi informacjami
Projektowana w niniejszej pracy struktura bazy danych, która jest podstawą do
stworzenia systemu obsługującego tą strukturę znajduje miejsce w każdej z trzech
wymienionych wyżej sektorów.