Site icon Java blog

SQL #1: schemat bazy danych

sql basics

Historia

Koncepcja baz danych jest prawie tak stara jak cała informatyka. Ogólna idea baz danych polega na posiadaniu wyspecjalizowanego programu (silnika bazodanowego), który mógłby wyszukiwać dane przede wszystkim po ich zawartości a nie po linkach do nich. Schemat bazy danych, to inaczej sposób opisania relacji i struktur Twoich danych. Kolejnym problemem było powtarzanie się danych oraz powolne ich przetwarzanie. Wyróżniamy różne rodzaje baz danych, np. relacyjne (oparte o ideę B-drzewa*), hierarchiczne lub tzw. NoSQL. Obecnie wciąż najpopularniejsze są bazy relacyjne, chodź coraz częściej ustępują bazom NoSQL (np. Mongo).

Przykładowe relacyjne bazy danych:

Rodzaje relacji

Relacja(ang. relationship) to powiązanie pomiędzy parą tabel. Istnieje ona wtedy, gdy dwie tabele są połączone przez klucz podstawowy i klucz obcy. Każda relacja, jaką zawiera Twój schemat bazy danych jest opisywana przez typ więzi istniejący między dwoma tabelami, typ uczestnictwa oraz stopień uczestnictwa tych tabel.

Schemat bazy danych w formie diagramu ERD

W tworzeniu specyfikacji systemowej jest analiza i modelowanie struktury informacji. Taki model to inaczej schemat bazy danych. Dla stworzenia takiego modelu dla struktury danych najczęściej stosuje się diagramy pojęciowe (konceptualne). ERD (ang. entity relationship diagram) jest graficznym odpowiednikiem modelu związku encji ERM (ang. entity relationship model).

Wyróżniane jest kilka konwencji zapisu diagramów ERD:

Do stworzenia diagramu należy zrozumieć następujące podstawowe pojęcia:

Każdy związek ma dwa końce i każdy z nich ma przypisane następujące atrybuty:

przykłady relacji

opcjonalność związku :

Normalizacja

Schemat bazy danych można przekształcić, w taki sposób, aby tabele w niej zawarte posiadały taka strukturę, aby nie duplikowały się wzajemnie. Z drugiej strony, ponieważ każda relacja w bazie danych, oznacza tworzenie kolejnych indeksów (co powoduje coraz większe obciążenie silnika bazodanowego), należy znaleźć złoty środek pomiędzy bardziej złożoną strukturą a optymalnym wyszukiwaniem. Kolejne stopnie normalizacji opisują ten proces.

Klucze

Ogólne założenia:

Jeśli zbiór tworzący klucz jest jednoelementowy to mówi się wtedy o kluczu prostym, w przeciwnym przypadku jest to klucz złożony.

Klucz unikalny (ang. unique key) – jest to wartość, która w obrębie jednej tabeli jest niepowtarzalna, tak wiec nie mogą pojawia się dwa wiersze o tej samej wartości unikalnej. Np. PESEL lub nr ISBN dla książki. Dla kolumny można wymusić to, by była ona unikalna poprzez ustalenie indeksu unikalnego UNIQUE.

Klucz podstawowy, klucz główny (ang. primary key) – jest to klucz, który służy do jednoznacznej identyfikacji każdego wiersza w tabeli. Takim kluczem może być np. nr albumu studenta lub nr PESEL. Istnieje także możliwość utworzenia sztucznego klucza, który będzie nadawany automatycznie poprzez system bazy danych.

Klucz obcy (ang. foreign key) – ten typ klucza wykorzystywany jest do tworzenia relacji pomiędzy parą tabel. Wartość klucza obcego w jednej tabeli (tabeli zależnej) musi korespondować do wartości klucza podstawowego lub kandydującego w drugiej tabeli (tabeli nadrzędnej). Klucz obcy wymusza więzi integralności (referances).

Referencje

Przy ustalaniu zależności pomiędzy tabelami można ustalić, jakie działania będą podejmowane w przypadku , gdy zostanie zaktualizowany schemat bazy danych lub przy usunięciu rekordu z tabeli nadrzędnej:

*Długi ale bardzo interesujący artykuł jak działają bazy relacyjne: http://coding-geek.com/how-databases-work/

Exit mobile version