Charakterystyka elementów bazodanowych

Charakterystyka elementów bazodanowych

Zagadnienia: encja, atrybut, krotka, dziedzina, klucz (główny, kandydujący, obcy, prosty, złożony).

Znajomość budowy bazy danych wymaga zwykle fachowego określenia jej elementów. Twórca relacyjnego modelu danych – E.F. Codd – w pracy Relacyjny model danych dla dużych banków  nie używa terminów tabela, kolumna, wiersz, lecz zamiast nich stosuje pojęcia: relacja (zamiast tabela), atrybu (zamiast kolumna),  krotka (zamiast wiersz). Terminy te będą tłumaczone na przykładach w dalszej części podręcznika, ponieważ właściwe zrozumienie teorii baz danych jest kluczowe dla ich przyszłych projektantów i administratorów.

Podobnie jak w innych specjalistycznych dziedzinach wiedzy, również w przypadku informatyki posługujemy się uniwersalnym językiem do opisu elementów baz danych. W celu odniesienia się do rzeczywistości prezentowanej w bazie danych posługujemy się terminem encja.

O encji (enity) mówimy wtedy, gdy potrzebujemy określić coś, co reprezentuje obiekt lub grupę obiektów. Pojęcia encji używamy, aby określić nie tylko obiekty fizyczne, lecz także niematerialne. Przykładami encji mogą być takie obiekty jak: OSOBA,  cechami mogą być wzrost, numer buta, waga. Cechy te nazywane są atrybutami encji. Istnieje pogląd wskazujący na podobieństwo pomiędzy encją a obiektem (w programowaniu obiektowym). Porównanie to wskazuje na właściwości, atrybuty encji i ich podobieństwo do klas obiektu.

Dla graficznej reprezentacji encji trybutów oraz związków używane są diagramy związków encji. Owale reprezentują atrybuty encji (autor, tytuł, ISBN), same encje zaś reprezentowane są przez prostokąty. Relacje pomiędzy encjami pokazane SA za pomocą równoległoboku.

Kolejnym często spotykanym terminem jest krotka.

 Krotka  (tuple) może być zdefiniowana następująco: jeśli tabela spełnia wymogi relacji (jest relacją), a jej kolumny są atrybutami, to krotka jest wierszem (rekordem). Krotka przechowuje stałe wartości o różnych typach danych, których to typów nie można zmodyfikować w kolejnej krotce. Dlatego typy, np. tytuł, ISBN, dla następnych krotek jednej tabeli będą stałe, a ich zawartości będą się różnić. Odczyt krotki wymaga podania jej tabeli będą stałe, a ich zawartości będą się różnić. Odczyt krotki wymaga podania jej indeksu (w naszym przykładzie niepowtarzalnego numeru ISBN).

Atrybut  definiowany jest jako kolumna relacji mająca identyfikator (nazwę). W relacyjnym modelu baz danych, gdy dwuwymiarową tabelę nazwiemy relacją (gdy spełnia warunki relacji), wówczas posiadające nazwę  kolumny tej tabeli nazywamy atrybutami.

Ważną cech tabeli – relacji jest to, że kolejność atrybutów nie powinna mieć znaczenia.

Przykład

Przyjmując książkę w bibliotece jako encję,  możemy wskazać jej następujące atrybuty:

  • ISBN,
  • tytuł,
  • autor,
  • wydawnictwo,
  • liczba książek,
  • rok wydania.

Poniższy przykład pokazuje, że dla encji Książka mamy dwie krotki, mimo że teoretycznie mamy 3 książki (suma wartości w kolumnie Liczba_ksiazek).

ISBN Tytul Autor Wydawnictwo Liczba_ksiazek Rok_wydania
234-83-2623-741-0 Janko Muzykant Henryk Sienkiewicz Greg

1

1999

978-83-2623-748-0 W pustyni i w puszczy Henryk Sienkiewicz Zielona Sowa

2

2010

                    

Dziedzina jest zbiorem wartości, jakie może przyjąć atrybut krotki. Jeśli kolumna tabeli przechowywać będzie numery kuli używanych do losowania Lotto, dziedzina atrybutu będą numery od 1 do 49. Gdy kolumna przechowywać będzie liczbę książek, wówczas zakładamy, że będą to wartości całkowite (ponieważ w bibliotece nie występują egzemplarze ułamkowe książek, n 0,5 książki), zatem dziedzina kolumny będą wartości całkowite integer. W bazi danych typ kolumny (dziedzina) może zostać zdefiniowany jako  int(1), co oznacza, że w kolumnie książki mogą znajdować się liczby całkowite o maksymalnej długości nieprzekraczającej jedenastu znaków.

Przykład definicji typu kolumny dla bazy danych MySQL

Liczba_ksiazek int(11)