• Nie Znaleziono Wyników

1 BAZY DANYCH 1.1

N/A
N/A
Protected

Academic year: 2021

Share "1 BAZY DANYCH 1.1"

Copied!
4
0
0

Pełen tekst

(1)

1 BAZY DANYCH

1.1 Relacyjne bazy danych 1.1.1 Model

W momencie, gdy komputery stały się ogólnodostępne, zaczęły być wykorzystywane przez korporacje jako jedno z podstawowych narzędzi pracy, do analizy i przetwarzania danych. Jednak szybko zorientowano się, że konieczne jest dostarczenie wydajnych narzędzi do przechowywania tych danych. Nim wprowadzono rozbudowane systemy baz danych, do ich składowania używane były tzw. zbiory płaskich plików (ang. flat files), których pomysłodawcą był Hollerith [23]. Nazwa ‘płaskie pliki’ wynikała z faktu, iż był to w istocie zbiór niepowiązanych ze sobą plików. Dane zgromadzone w takiej postaci wykluczały właściwie tworzenie relacji między nimi. Przeglądanie ich było bardzo kłopotliwe (i co gorsza kosztowne), gdyż chcąc uzyskać dostęp do danego rekordu, za każdym razem należało przeszukiwać taki plik od początku. Wiązał się z tym też fakt, że do składowania tych plików idealne były taśmy magnetyczne (skoro i tak za każdym razem plik jest czytany od początku taśma pasuje do tego sposobu przeglądania wyśmienicie) – w czasach ich świetności był to sposób składowania danych o wiele tańszy niż np. pamięć dyskowa. Był to więc atut tej technologii, jednak dziś dyski twarde są na tyle tanie, że nie warto brać go pod uwagę. Co więcej nie jest on w stanie zrekompensować jej minusów (choć do dziś używa się jej np. do archiwizacji)[25]:

a) problemy wynikające ze współdzielenia danych przez dwie lub więcej aplikacji, b) brak mechanizmów zabezpieczających (kopie zapasowe, backup),

c) problemy wynikające ze zmiany struktury plików, d) brak jednolitego formatu danych.

Krokiem na przód, w stosunku do plików płaskich, było wprowadzenie systemu BDAM [54] (ang. Basic Direct Access Method). Wraz z upowszechnieniem dysków twardych podjęto starania by ominąć liniową naturę systemu plików płaskich, a pamięć dyskowa sprzyjała temu, gdyż tu istniała możliwość identyfikacji każdego bloku danych poprzez tzw.

adres dyskowy. Ponieważ metoda BDAM uzyskuje bezpośredni dostęp do rekordów, ich przetwarzanie i dostęp do nich są o wiele szybsze. Ponadto po raz pierwszy oddzielono dostęp fizyczny od logicznego dostępu do danych. Oznaczało to, że użytkownik nie musiał martwić się tym, gdzie dany rekord składowany jest fizycznie, a uzyskiwał do niego dostęp na podstawie klucza. Jednak metoda ta posiadała wielką wadę polegająca na tym, że zasada jej działania, która polegała na tym, iż rekordy są rozproszone po całym dysku, a wolna przestrzeń pomiędzy nimi nie może zostać wykorzystana. To prowadziło do znacznego marnotrawstwa przestrzeni dyskowej.

Kolejną próbą opracowania systemu opartego o płaskie pliki, a jednak ulepszonego w porównaniu do samych plików płaskich czy systemu BDAM, był ISAM [54] (ang. Indexed Sequential Access Method) stworzony przez firmę IBM. Jego działanie oparte było o istnienie plików z indeksami, które w najprostszej postaci składały się z dwóch pól: symbolicznego klucza, oraz adresu dyskowego powiązanego z tym kluczem. Plik zawierający indeksy na ogół jest przechowywany jako oddzielny plik. Aby odszukać rekord, system przeszukuje indeks w celu odnalezienia klucza, a następnie pobiera rekord z określonej pozycji na dysku.

Takie podejście w sposób bardzo efektywny wykorzystuje przestrzeń dyskową, ponieważ rekordy przechowuje obok siebie.

Systemy zarządzania bazami danych to coś więcej niż tylko jednolite repozytorium danych, musi on posiadać również następujące cechy:

 odtwarzanie niekompletnych transakcji,

(2)

 obsługa dostępu przez wielu użytkowników jednocześnie,

 mechanizm odtwarzania transakcji po awarii,

 język dostępu do danych, który może zostać osadzony w kodzie,

 wewnętrzne narzędzia do zarządzania relacjami pomiędzy danymi.

Początkowo systemy zarządzania dostępem do baz danych bazowały na rozwiązaniach BDAM lub/i VSAM [54] (bardzo zbliżone do ISAM). Firma IBM, wprowadzając prototyp bazy danych na rynek, uświadomiła wszystkim jak istotną kwestią jest przechowywanie danych oraz spójne zarządzanie i kontrola. To zapoczątkowało prace nad hierarchicznym modelem bazy danych [58]. Wykorzystywał on wskaźniki będące logicznym połączeniem pomiędzy jednostkami danych. Metoda ta idealnie nadawała się do przedstawiania relacji będących w naturalny sposób hierarchicznymi. Zasadniczo polega ona na układaniu danych w drzewo. To miało bezpośrednie przełożenie na dużą szybkość działania na takich strukturach.

Jednak rozwiązanie takie ma szereg wad:

 dostęp do niższych warstw jest możliwy tylko poprzez warstwy nadrzędne,

 trudności w modelowaniu relacji typu wiele-do-wielu,

 skomplikowane wstawianie i kasowanie danych.

Kolejnym pomysłem był model sieciowy [12]. Dane w tym modelu, wyposażone są w wewnętrzne identyfikatory. Związki semantyczne pomiędzy danymi reprezentowane są natomiast poprzez powiązania referencyjne lub wskaźnikowe. Struktura danych tworzy zatem graf (inaczej sieć – stąd nazwa). Jednak i ten model zbyt złożony i trudny w użyciu. Sieciowe bazy danych, tak jak hierarchiczne, przysparzają wielkich trudności w nawigacji, ponadto implementacja zmian strukturalnych jest niezmiernie kłopotliwa.

Dopiero w roku 1970 Edgar Ted Codd z firmy IBM zaprezentował relacyjny model danych[9]. Model ten przewidywał, że dane są przechowywane w prostych plikach liniowych, nazwanych „relacjami” lub inaczej „tabelami”. Ważną cechą, która zapewniła sukces temu właśnie pomysłowi była jego prostota (w odróżnieniu od wcześniejszych rozwiązań).

1.1.2 Relacje

E. F. Codd [9] model relacyjny zdefiniował przy użyciu ścisłych narzędzi matematycznych, zwłaszcza teorii zbiorów i oparł na jednej podstawowej strukturze danych, którą jest relacja matematyczna, które powiązane są ze sobą w postaci zbioru i tworzą bazę danych. Pojęcie relacji można uważać za pewną abstrakcję intuicyjnego pojęcia tabeli, zbudowanej z wierszy i kolumn, w której na przecięciu każdej kolumny z każdym wierszem występuje określona wartość. Relacja wyznaczona jest przy pomocy schematu relacji.

Formalnie schematem relacji nazywa się zbiór posiadający nazwę, postaci:

R = {A

1

, A

2

, ..., A

n

} (2.1)

gdzie A

1

, A

2

, ..., A

n

są atrybutami ( nazwami kolumn ).

Każdemu atrybutowi przyporządkowana jest dziedzina DOM (A) czyli dopuszczalny zbiór wartości.

Dziedziną relacji określonej wzorem 2.1 nazywamy sumę dziedzin wszystkich atrybutów relacji.

Relacja zdefiniowana wzorem 2.1 jest to skończony zbiór r = { t

1

, t

2

, ... , t

m

} odwzorowań:

t

i

: R -> DOM ( R) takich, że dla każdego j , 1 <= j <= n, t

i

( A

j

) należy do DOM ( A

j

)

(3)

Każde takie odwzorowanie nazywa się krotką (lub wierszem). Krotka odpowiada wierszowi w tabeli. Każda relacja musi posiadać klucz główny, dzięki któremu można zapewnić, że wiersze nie będą powtarzały się w relacji. Kluczem głównym jest jedna lub więcej kolumn tabeli, w których wartości jednoznacznie identyfikują każdy wiersz w tabeli.

Do łączenia danych przechowywanych w różnych tabelach wprowadzono klucze obce, które są kolumną lub grupą kolumn tabeli, która przyjmuje swoje wartości z tej samej dziedziny, co klucz główny tabeli powiązanej z nią w bazie danych.

1.1.3 Założenia relacyjnego modelu danych

Dla relacji muszą być spełnione wymienione niżej warunki [9]:

 każdy schemat relacji w bazie danych ma jednoznaczną nazwę,

 każdy atrybut relacji ma jednoznaczną nazwę w ramach jednego schematu relacji,

 wszystkie wartości w tym samym atrybucie muszą być tego samego typu,

 porządek atrybutów w relacji nie jest istotny,

 każdy krotka w relacji musi być różna,

 porządek krotek nie jest istotny,

 każde pole leżące na przecięciu kolumny i wiersza w relacji powinno zawierać wartość atomową, czyli tylko jeden element dziedziny atrybutu,

 każda relacja zawiera klucz główny.

Każda relacja musi posiadać klucz główny, który zapewni, że żaden wiersz w relacji się nie powieli. Kluczem głównym może być jedna lub więcej kolumn z tabeli, w których to kolumnach wartości jednoznacznie identyfikują każdy wiersz z tabeli. W relacyjnych bazach danych tabele są niezależne, w przeciwieństwie do modeli hierarchicznego i sieciowego, gdzie występują połączenia wskaźnikowe.

Do łączenia danych przechowywanych w różnych tabelach zostały wprowadzone klucze obce. Jest to kolumna lub grupa kolumn tabeli, która przyjmuje swoje wartości z tej samej dziedziny, co klucz główny tabeli powiązanej z nią w bazie danych.

Teoretyczny opis modelu relacyjnego mówi, że operacje na danych definiuje się w terminach tzw. algebry relacyjnej. Algebra ta jest zbiorem ośmiu operatorów. Każdy operator przyjmuje jako argument jedną lub więcej relacji, zwracając jako wynik jedną relacje. Trzy główne operatory algebry relacyjnej to: selekcja (ograniczenie), rzut (projekcja) i złączenie.

Dzięki nim możemy wykonywać większość operacji na danych wymaganych w systemach relacyjnych. Istnieją również dodatkowe operatory - iloczyn, suma, przecięcie, różnica i iloraz. Algebra relacji ma istotne znaczenie dla opisu teoretycznego – natomiast w praktycznych implementacjach relacyjnych baz danych stosuje się języki zapytań. Używane są one do tworzenia, modyfikowania baz danych oraz umieszczania i pobierania z nich danych.

Najpopularniejszym językiem zapytań jest SQL (ang. Structured Query Language), dla którego przez lata pojawiło się wiele różnych standardów, w szczególności SQL-89, SQL-92 i SQL-99.

Wyróżnić można trzy główne grupy zapytań języka SQL:

1) SQL DML (ang. Data Manipulation Language) - Język Manipulacji Danymi.

2) SQL DDL (ang. Data Definition Language) - Język Definicji Danych.

3) SQL DCL (ang. Data Control Language) - Język Kontroli nad Danymi.

Ad. 1) SQL DML służy do operacji na danych - do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to:

 SELECT - pobranie z bazy danych,

 INSERT - umieszczenie danych w bazie,

 UPDATE - zmiana danych,

(4)

 DELETE - usunięcie danych z bazy.

Szczegółowa składnia polecenia SELECT, istotna z punktu widzenia dalszych rozważań, jest następująca:

SELECT nazwy_kolumn FROM nazwy_tabel WHERE warunki

Ad. 2) SQL DDL pozwala operować na strukturach, w których dane są przechowywane, np. dodawać, zmieniać i kasować tabele lub bazy

Ad. 3) SQL DCL ma zastosowanie do nadawania uprawnień do obiektów

bazodanowych.

Cytaty

Powiązane dokumenty

W celu uzyskania dostępu do więcej niż jednej tabeli używanej bazy danych, należy ustalić powiązania pomiędzy wybranymi tabelami.. Powiązania mogą być typu jeden-do-jeden,

Napisać kod wg slajdu (9) w klasie SessionBean1, wpisujący dane do tabeli Option ksiazki_[] dla wybranego tytułu ksiażki z listy tytułów książek (tytuly typu DropDown List)

Utwórz nową bazę danych i nadaj jej nazwę: zaliczenie – nr.mdb gdzie nr to twój numer w dzienniku. Utwórz tabele o nazwach kontrahenci i obroty zawierające następujące

col_name data_type [NOT NULL | NULL] [DEFAULT default_value]. [AUTO_INCREMENT] [UNIQUE [KEY] |

Tak sformułowane polecenie powoduje zwrócenie przez RDBMS wartości ze wszystkich kolumn (decyduje o tym gwiazdka, umieszczona po słowie SELECT) ze

Z kilku tabel można zrobić jedną (więcej możliwości). Mogą być wartości

Klient jest zazwyczaj programem umożliwiającym wpisywanie komend SQL i przeglądanie wyników zapytań. W profesjonalnych systemach baza umiejscowiona jest zazwyczaj na

15. Zamknij tabelę Uczestnicy i otwórz widok relacji. Usuń relację pomiędzy tabelami Uczestnicy i Plcie. Zamknij widok relacji i otwórz widok projektu tabeli Uczestnicy,