Paweł Łukasiewicz
2020-07-10
Paweł Łukasiewicz
2020-07-10
Udostępnij Udostępnij Kontakt
Wprowadzenie

Wpis ten został podzielony na dwie części. Jak doskonale wiecie uważam, że długie wpisy potrafią zmęczyć Czytelnika. Wrażenie takie jest potęgowane, gdy uczymy się nowych rzeczych. W pierwszej cześci omówimy:

  • krótką historię systemów zarządzania relacyjnymi bazami danych;
  • wyjaśnimy pojęcie tabeli, pola, rekodu oraz kolumny;
  • zdefiniujemy 'wartość' NULL.

Druga część to zagadnienia nieco bardziej skomplikowane:

  • ograniczenia;
  • integralność danych;
  • normalizacja baz danych.

RDBMS

Tak jak wspomniałem w poprzednim wpisie RDBMS to skrót od Relational Database Management System - system zarządzania relacyjną bazą danych. Opiera się on na modelu relacyjnym wprowadzonym przez E.F. Codd’a, który uznawany jest za 'ojca' relacyjnych baz danych.

Spójrzmy jeszcze nieco w przeszłość patrząc na kluczowe daty:

  • 1970 – wspomiany wcześniej Dr. Edgar F. Codd pracujący dla IBM opisuje relacyjny model baz danych;
  • 1974 – język SQL ujrzał światło dziennie;
  • 1978 – na rynku ukazuje się produkt o nazwie System/R - jest to efekt rozwijania przez IBM pomysłów ‘ojca baz danych’;
  • 1979 - Relational Software, znany dzisiaj jako Oracle, wypuszcza na rynek(produkt komercyjny) pierwszy system zarządzania relacyjnymi bazami danych;
  • 1986 – SQL staje się standardem.


Tabele

Table są obiektami w bazie danych, które służą do przechowywania danych. Składają się z powiązanych ze sobą kolumn i wierszy. Jest to również najprostsza forma przechowywania danych w relacyjnej bazie danych. Spójrzcie na poniższy przykład:

+----+--------+--------+---------+-------+
| ID | BRAND  | MODEL  | ENGINE  | POWER |
+----+--------+--------+---------+-------+
|  1 | Audi   | RS6 C6 | V10 5.0 |  580  |
|  2 | Audi   | S8 D3  | V10 5.2 |  450  |
|  3 | Audi   | R8 II  | V10 5.2 |  540  |
|  4 | xxx    | xxx    | xxx     |  xxx  |
|  5 | xxx    | xxx    | xxx     |  xxx  |
|  6 | xxx    | xxx    | xxx     |  xxx  |
|  7 | Audi   | NULL   | NULL    |  NULL |
|  8 | xxx    | xxx    | xxx     |  xxx  |
+----+--------+--------+---------+-------+


Pola

Pola to mniejsze jednostki (entities) na które podzielona jest każda tabla. W naszym przypadku tabela CARS składa się z szeregu pól:

  • ID
  • BRAND
  • MODEL
  • ENGINE
  • POWER

Pola, to tak naprawdę kolumny, które mają na celu przechowywanie określonych informacji o każdym rekodzie znajdującym się w tabeli.


Rekord

Rekord – potocznie zwany wierszem danych zawartych w tabeli. W naszym przypadku mamy 8 rekordów a reprezentacja pierwszego z nich to:

+----+--------+--------+---------+-------+
|  1 | Audi   | RS6 C6 | V10 5.0 |  580  |
+----+--------+--------+---------+-------+


Kolumna

Rekord jest poziomą jednostką danych zawartych w tabeli. Kolumna jest odwrotnością, stanowi pionową jednostkę danych zawartych w tabeli. W przypadku naszej tabeli kolumna MODEL zawiera informacje o wszystkich modelach aut zdefiniowanych w naszej tabeli:

+--------+
| MODEL  |
+--------+
| RS6 C6 |
| S8 D3  |
| R8 II  |
| xxx    |
| xxx    |
| NULL   |
| xxx    |
+--------+


Wartość NULL

Przejdźmy teraz do wyjaśnienia znaczenia 'wartości' NULL, którą mogliście zobaczyć w jednym z powyższych rekordów. NULL oznacza, że dane pole jest polem BEZ WARTOŚCI.

Pole NULL jest polem, które zostało pozostawione puste podczas tworzenia. Wartość tego pola jest inna niż wartość zerowa lub pole zawierające jedynie spacje.