Wybrane zagadnienia relacyjnych baz danych Opracowanie: Wioleta Musiał 1 Formy organizowania informacji w bazach danych Baza danych to uporządkowany zbiór danych z pewnej dziedziny tematycznej, zorganizowany w sposób ułatwiający dostęp do danych i operowanie nimi według określonych kryteriów. System zarządzający danymi w bazie i umożliwiający ich przetwarzanie nazywany jest systemem zarządzania bazą danych (DBMS – Data Base Management System). Baza danych może pracować jako baza jednostanowiskowa, baza ze współdzieleniem plików i baza typu klient-serwer. 2 Baza jednostanowiskowa Baza jednostanowiskowa to najprostszy przypadek bazy danych. Zarówno baza, jak i system zarządzania nią są zainstalowane tylko na jednym komputerze. Dostęp do bazy w danym momencie posiada tylko jeden uprawniony użytkownik. W bazach tego typu nie występuje problem równoczesnego dostępu do danych (współdzielenia plików) przez kilku użytkowników bazy. 3 Baza ze współdzieleniem plików Baza ze współdzieleniem plików zapewnia równoczesny dostęp do danych wielu użytkownikom. Zarówno baza jak i system zarządzania nią jest dostępny na wielu komputerach, które pracują w sieci komputerowej. W ten sposób modyfikacja danych z poziomu jednego komputera jest automatycznie uwzględniana na innych stanowiskach komputerowych mających dostęp do tej bazy. W bazach tego typu współdzielone są jedynie pliki danych, jednak przetwarzanie samych danych odbywa się na każdym komputerze oddzielnie. 4 Baza typu klient-serwer Baza typu klient-serwer. W takim systemie baza danych wraz z systemem zarządzania znajduje się na specjalnym komputerze zwanym serwerem bazy danych. Odpowiada on za zarządzanie danymi, ich przetwarzanie i udostępnianie. Z serwerem komunikują się połączone w sieć komputery użytkowników zwane klientami. Komputer – klient wysyła odpowiednie zapytanie lub polecenie do serwera bazy danych, ten przetwarza dane, a wynik przetwarzania przesyła do komputera – klienta. W systemie klient-serwer pracuje większość baz danych w sieci Internet. 5 Bazy danych mogą różnić się między sobą sposobem, w jaki dane są zorganizowane i powiązane ze sobą. Ze względu na strukturę danych rozróżniamy bazy: kartotekowe, relacyjne, hierarchiczne, sieciowe i obiektowe. 6 Baza hierarchiczna i sieciowa Najstarszym modelem baz danych jest model hierarchiczny. W tym modelu baza posiada strukturę drzewiastą z jednym punktem początkowym i wieloma rozgałęzieniami, podobną np. do struktury drzewa folderów na dysku komputera. Struktura ta opiera się na modelu rodzic-potomek. Zbiór nadrzędny nazywany rodzicem posiada określoną liczbę podzbiorów nazywanych potomkami, te z kolei posiadają kolejne podzbiory. W modelu hierarchicznym zbiór nadrzędny może mieć wiele podzbiorów, jednak każdy podzbiór ma tylko jeden zbiór nadrzędny. 7 Baza hierarchiczna 8 Baza sieciowa Odmianą bazy hierarchicznej jest baza sieciowa. Baza ta posiada strukturę danych przypominającą sieć. W odróżnieniu od bazy hierarchicznej, w bazie sieciowej dowolny zbiór danych może zostać powiązany z każdym innym. Podzbiór (potomek) może być powiązany z wieloma zbiorami nadrzędnymi (rodzicami) lub z żadnym zbiorem. 9 Baza sieciowa 10 Baza obiektowa Baza obiektowa opiera się na modelu obiektowym, łączy w sobie cechy programów komputerowych tworzonych za pomocą nowoczesnych języków programowania obiektowego z cechami aplikacji bazodanowych. Operują one na obiektach (czyli zbiorach połączonych danych i procedur umożliwiających manipulowanie tymi danymi) i tzw. klasach obiektów. 11 Baza kartotekowa Baza kartotekowa jest również nazywana bazą dwuwymiarową. Bazy tego typu posiadają najprostszą strukturę – składają się tylko z jednej tabeli, w której zgromadzone są wszystkie dane. Nazwa „kartotekowa” wzięła się stąd, że każdy rekord takiej bazy można przedstawić w postaci pojedynczej karty, zawierającej wszystkie informacje w nim zapisane. Zastosowanie baz tego typu ogranicza się do gromadzenia małych ilości danych dotyczących jednego tematu. 12 Baza relacyjna Baza relacyjna to najpopularniejsza grupa baz danych. W bazach tego typu dane są przechowywane nie w jednej, lecz w wielu tabelach, przy czym każda tabela przechowuje dane na określony temat. Dodatkowo pomiędzy tabelami tworzone są specjalne powiązania zwane relacjami. Dzięki nim możliwe jest uzyskiwanie informacji z bazy na wiele sposobów, poprzez kojarzenie ze sobą danych pochodzących z różnych tabel. 13 Wybrane zagadnienia relacyjnych baz danych Dane w bazie danych są przechowywane w strukturach zwanych tabelami. Tabele są podstawowymi obiektami baz danych. Przechowują one dane wykorzystywane przez inne obiekty, np. zapytania, formularze czy raporty. Tabela (table) – zbiór (kolekcja) powiązanych ze sobą danych w bazie danych, przedstawiony jako układ poziomych wierszy nazywanych rekordami (krotkami) i pionowych kolumn nazywanych polami rekordu. Tabele zawierają dane różnego typu. 14 W modelu relacyjnym dane wewnątrz bazy są dzielone pomiędzy tabele. Podział danych nazywany jest normalizacją bazy danych. W najprostszym przypadku baza danych może składać się tylko z jednej tabeli. Aby w bazie danych możliwe było szybkie wyszukiwanie i łączenie danych z tabel, każdy rekord tabeli powinien posiadać pole za pomocą, którego byłby jednoznacznie identyfikowany w bazie. Pole tego typu nazywane jest kluczem podstawowym. Klucz podstawowy tworzony jest w oparciu o niepowtarzające się dane. 15 Właściwe określenie klucza podstawowego pozwala uniknąć możliwości powtórzeń w tabeli bazy danych, ponieważ pole klucza podstawowego nie może przechowywać powtarzających się danych. Oprócz kluczy podstawowych w tabelach są tworzone także klucze obce. Klucz obcy to nazwa pola, które w jednej tabeli jest kluczem podstawowym, a w drugiej jest polem łączącym te tabele. W oparciu o te pola mogą być tworzone relacje pomiędzy tabelami. 16