W tym kursie postaram się opisać podstawy bazy danych. Opiszę podstawowe definicje oraz przedstawię przykład prostej bazy danych. Jeżeli trafiłeś na ten kurs to zapewne jesteś początkującym w bazach danych i sql. W tym kursie pokażę definicje kluczowych i podstawowych elementów bazy danych, opiszę czym jest:

  • Tabela
  • Kolumna
  • Rekord
  • Relacja
  • Klucz główny
  • Klucz obcy

Wszystko pokażę na konkretnym przykładzie podstawowej bazy danych. W kolejnych kursach bazę tą będziemy wykorzystywać i rozszerzać o nowe elementy.

Ten kurs jest częścią cyklu Kurs SQL

Definicje i podstawy

Najważniejszym zadaniem baz danych jest przechowywanie danych. Dane te są przechowywane w podstawowej strukturze jaką jest tabela (ang. table lub ang. relation). Tabela to miejsce, w którym przechowywane są wszystkie dane, bez tabel nie byłoby zbyt dużego zastosowania dla relacyjnych baz danych. Tabela składa się z kolumn(atrybutów) które definiują jakie dane będą przechowywane. Natomiast same dane przechowywane są w wierszach(rekordy lub krotki). Co jest czym pokazuje poniższy schemat:

definicje
źródło: Model relacyjny

Baza Danych – Przykład

Aby lepie wyobrazić sobie co jest czym i jak jest ze sobą powiązane spróbujmy zaprojektować bazę danych dla realnego przykładu. Jako, że lubię pizzę pomyślałem o bazie danych dla pizzerii.

Nie zastanawiając się zbytnio baza danych pizzerii powinna przechowywać dane:

  • Klientów którzy mają atrybuty:
    • Imię
    • Nazwisko
  • Pizza:
    • Nazwa
    • Rozmiar
    • Cena
  • Zamówienia:
    • Data zamówienia
    • Adres

Przykład

Spróbujemy więc w pierwszej kolejności zaprojektować tabele excelową która przechowywać będzie wszystkie te informacje. Ja ją sobie wymyśliłem tak jak na poniższym obrazku oraz wpisałem przykładowe dane żeby móc lepiej ją sobie wyobrazić:

bazy danych przykład

Tak jak w excelu tak i w bazie danych to co widzimy powyżej to tabela w której przechowywane są zorganizowane dane. Dane poukładane są zgodnie z ich kategoryzacją czyli kolumną oraz zgrupowane są w wiersze.

Baza Danych – Relacje

Idąc dalej gdy popatrzymy na przykładową tabelę wydaje się, że zawiera ona wszystkie niezbędne dane jednak w pewnych momentach może być ona problematyczna. Rozważmy przykład: Co by się stało gdyby Pani o Anna Zaradna zmieniła nazwisko na Zaradna-Nowak? W tej sytuacji musielibyśmy znaleźć wszystkie Anny Zaradne i zmienić im wartość na Zaradna-Nowak. Zgodnie z powyższą definicją tabeli musielibyśmy zmienić cztery rekordy. Podzielmy więc naszą tabelę tak aby każda osoba była innym wpisem w osobnej tabeli:

bazy danych podstawy

Na powyższym schemacie mamy już wydzieloną sekcję dotyczącą klienta. Jednak w tym momencie nie wiemy którą pizzę oraz które zamówienie dotyczy którego klienta. Dlatego też musimy wprowadzić identyfikatory dzięki którym będziemy mogli skojarzyć obie tabele ze sobą. Jeden identyfikator ID w tabeli z klientami oraz ID_KLIENTA w tabeli zamówień i pizzy jak poniżej:

bazy danych

Na powyższym przykładzie widzimy dodanie obu kolumn dzięki który możemy stwierdzić kto dokonał zamówienia. W tym momencie chciałbym wytłumaczyć trzy bardzo ważne pojęcia w relacyjnych bazach danych:

  • Klucz główny (ang. Primary Key) – to kolumna (czasami kilka kolumn) która w jednoznaczny sposób definiuje każdy wiersz danej tabeli. Klucz główny musi zawierać wartości unikalne i nie może zawierać wartości pustych(null). W przykładzie pizzerii kluczem głównym jest kolumna ID w tabeli Klienci. Często wykorzystywanym skrótem Primary Key jest “PK“.
  • Klucz obcy (ang. Foreign Key) – to kolumna (czasami kilka kolumn) która pokazuje powiązanie do innej tabeli. Klucz obcy wskazuje na klucz główny innej tabeli. W przykładzie kluczem obcym jest ID_KLIENTA w tabeli zamówienia ponieważ wskazuje bezpośrednio na kolumnę ID tabeli Klient. Często wykorzystywanym skrótem Foreign Key jest “FK“.
  • Powiązanie (ang. Relationship) – to powiązanie między dwiema tabelami relacyjnych baz danych, gdy jedna tabela ma klucz obcy, który odwołuje się do klucza podstawowego drugiej tabeli. Powiązania pozwalają relacyjnym bazom danych dzielić i przechowywać dane w różnych tabelach, jednocześnie łącząc różne elementy danych.

Istnieje kilka podstawowych typów relacji/powiązań:

  • Relacja jeden do jednego — Oznacza to, że dla jednego rekordu z tabeli A występuje jeden rekord w tabeli B.
  • Relacja jeden do wielu — Oznacza, że dla jednego rekordu z tabeli A występuje wiele rekordów z tabeli B
  • Relacja wiele do wielu — Oznacza, że dla wielu rekordów z tabeli A może występować wiele rekordów z tabeli B. Takie połączenie wymaga dodatkowej tabeli która pozwoli na takie połączenie.

Bazy danych – Ciekawostka

Gdy mówimy o bazach danych często mylimy pojęcia powiązania (ang. relationship) i relacji (ang. relation). Relacja (ang. relation) to tak naprawdę synonim tabeli natomiast powiązanie (ang. relationship) to powiązanie między dwiema tabelami. Jest to jednak tak popularny błąd bądź może lapsus, że chyba nigdy nie usłyszałem słowa relacji w kontekście samej tabeli a zawsze w kontekście “relacji” pomiędzy różnymi tabelami. Sama wikipedia gdy czytamy o powiązaniach wykorzystuje słowo “relacja”. W związku z tym będąc świadomym czym jest relacja dla większości osób będę wykorzystywał pojęcie relacji jako powiązania między tabelami ponieważ stał się on w zasadzie jej tłumaczeniem 🙂

  • Jeśli chcesz być na bieżąco obserwuj mój profil na: Facebooku

  • Jeżeli chcesz znaleźć więcej kursów dla średniozaawansowanych oraz poznać zasady optymalizacji zapytań zapoznaj się z pozostałymi kursami, sprawdź: Kurs Oracle SQL
  • Jeżeli chcesz poznać podstawy baz danych i kurs dla początkujących w SQL odwiedź Kurs SQL

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *