Relacyjny model danych
1970 rok - Edgar Codd
W terminologii matematycznej - baza danych jest zbiorem relacji. Stąd
historycznie pochodzi nazwa relacyjny model danych i relacyjna baza
danych.
W matematyce definiuje się relację jako podzbiór iloczynu kartezjańskiego zbiorów wartości.
Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i wierszy.
IdWykładowcy |
Imię |
Nazwisko |
Tytuł |
1237 |
Jan |
Kowalski |
Doktor |
3245 |
Maciej |
Jankowski |
Docent |
8976 |
Artur |
Malinowski |
Profesor |
Liczba kolumn jest z góry ustalona.
Z każdą kolumną jest związana jej nazwa oraz dziedzina, określająca zbiór wartości, jakie mogą wystąpić w kolumnie.
Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny.
Wiersz reprezentuje jeden rekord informacji np. osobę.
W modelu relacyjnym abstrahujemy od kolejności wierszy (rekordów) i kolumn (pól
w rekordzie).
Tabela przedmiotów
NazwaPrzedmiotu |
Kod |
IdWykładowcy |
Bazy danych |
BD |
1237 |
Projektowanie systemów informacyjnych |
PSI |
3245 |
Technologie internetowe |
TI |
3245 |
Programowanie obiektowe |
PO |
8976 |
Systemy decyzyjne |
SD |
1237 |
Znaczenie IdWykładowcy:
Jego wartość nie opisuje cechy wykładu.
Reprezentuje związek danego przedmiotu z wykładowcą, o którym informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora możemy rozpoznać w innej tabeli wiersz właściwego wykładowcy i odczytać o nim informacje.
Istotne jest więc, aby identyfikator ten jednoznacznie określał danego wykładowcę - w modelu relacyjnym nie ma innej możliwości identyfikacji wiersza tylko poprzez wartości kolumn, które jednoznacznie identyfikują wiersz.
Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany kluczem głównym - jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują cały wiersz.
Klucz alternatywny (klucz jednoznaczny lub w skrócie klucz) ma tę samą własność co klucz główny przy czym klucz główny jest tylko jeden, kluczy alternatywnych w tabeli może być więcej niż jeden.
W tabeli Przedmioty kluczem głównym jest KodPrzedmiotu, kluczem alternatywnym jest NazwaPrzedmiotu.
W tabeli
Wykładowcy
kluczem głównym jest
IdWykładowcy. Nazwisko nie musi być kluczem!
Klucz obcy
Klucz obcy jest to jedna lub więcej kolumn, których wartości występują jako wartości ustalonego klucza głównego lub alternatywnego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.
W tabeli
Przedmioty
kluczem obcym jest
IdWykładowcy, którego wartości pochodzą z kolumny
IdWykładowcy w tabeli
Wykładowcy.
Na przykład, wartość 1237 występująca w wierszu przedmiotu
"Bazy danych" tabeli Przedmioty stanowi odwołanie do wiersza w tabeli
Wykładowcy, w którym są zapisane informacje o wykładowcy o nazwisku
"Kowalski":
"Przedmiot Bazy danych jest wykładany przez
Jana Kowalskiego"
NULL – "brak wartości"
Dziedziny kolumn są rozszerzane o specjalny obiekt Null - oznaczający brak wartości –
chwilowy bądź
wynikający z istoty rzeczy (coś innego niż napis pusty czy zero).
Wszystkie porównania i operacje na danych, w których argumentem jest Null dają w wyniku Null (również Null=Null).
Jest to więc w efekcie trzecia wartość logiczna obok True i False.
Operator alternatywy OR
OR |
True |
False |
Null |
True |
True |
True |
True |
False |
True |
False |
Null |
Null |
True |
Null |
Null |
Operator koniunkcji AND
AND |
True |
False |
Null |
True |
True |
False |
Null |
False |
True |
False |
False |
Null |
Null |
False |
Null |
Operator negacji NOT
NOT |
True |
False |
Null |
|
False |
True |
Null |
Predykaty Is Null oraz Is Not Null
Pozwalają stwierdzić, czy dana wartość jest Null czy nie:
"X Is Null" = True gdy, X jest Null
"X
Is Null" =
False gdy, X nie jest Null
"X=Null" =
Null dla wszystkich X
Perspektywa (view)
Przedmioty-Wykładowcy:
NazwaPrzedmiotu |
Wykładowca |
Bazy danych |
Kowalski |
Projektowanie systemów informacyjnych |
Jankowski |
Technologie internetowe |
Jankowski |
Programowanie obiektowe |
Malinowski |
Systemy decyzyjne |
Kowalski |
Poziomy
relacyjnej bazy danych
Poziom użytkowy – zestawienia danych (perspektywy) i programy, którymi posługuje się użytkownik.
Poziom logiczny (koncepcyjny) – zbiór tabel.
Poziom fizyczny – zbiór plików z danymi i z indeksami.
Niezależność poziomów bazy danych.
Więzy spójności (warunki poprawności
danych)
Dla pojedynczych wartości w wierszu np. 0<Wiek<140
Dla kilku wartości w wierszu np.
Data_urodzenia<Data_zatrudnienia
Więzy klucza głównego (alternatywnego).
Więzy referencyjne: wartości klucza obcego mogą być albo Null albo muszą występować jako wartości powiązanego z nim klucza głównego (lub alternatywnego).
Bardziej skomplikowane reguły wymagające zastosowania bardziej skomplikowanego języka np. "Suma wszystkich zarobków pracowników działu X = Fundusz płac działu X"
Architektura klient-serwer
Aplikacje bazodanowe składają się zwykle z co najmniej dwóch części:
strony klienta - na stacji roboczej użytkownika,
strony serwera – na komputerze zawierającym serwer bazy danych czyli bazę danych wraz z jej systemem zarządzania (SZBD).
Funkcje aplikacji po stronie serwera bazy danych
Przechowywanie i organizacja dostępu do danych.
Wykonywanie instrukcji języka baz danych (SQL).
Sprawowanie kontroli nad spójnością danych.
Zarządzanie zasobami bazy danych w tym kontami użytkowników.
Funkcje aplikacji po stronie klienta
Kontakt z użytkownikiem (interfejs użytkownika).
Wyjaśnianie użytkownikowi stanu obliczeń w tym błędów i sytuacji wyjątkowych.
Przyjmowanie od niego zleceń na operacje, wykonywanie tych zleceń lub przesyłanie ich w postaci instrukcji języka SQL do serwera bazy danych.
1961– Integrated Data Store IDS (Charles Bachman) - pierwszy SZBD, początek sieciowego modelu danych.
1965-70 – Information Management System IMS (IBM) – hierarchiczny model danych.
1970 – Edgar Codd – relacyjny model danych.
1971 – CODASYL, standard sieciowego modelu danych.
1976 – Peter Chen – model związków encji (ERD, ERM), brak standardu do tej pory.
Początek lat siedemdziesiątych - w laboratorium badawczym IBM w San Jose powstał prototyp języka SQL o nazwie Sequel.
1973 - pierwszy system zarządzania relacyjną bazą danych (System R w firmie IBM).
1979 - firma Relational Software (później Oracle) wprowadziła na rynek pierwszą komercyjną wersję systemu zarządzania relacyjną bazą danych.
1987 pierwszy standard języka SQL (ISO),
Kolejne wersje standardu: 1989, 1992 SQL2, 1999 SQL’1999 – model obiektowo-relacyjny, trwają prace nad następnymi standardami SQL3 i SQL4.
Lata osiemdziesiąte – badania nad dedukcyjnymi i obiektowymi bazami danych.
1997 - Standard obiektowych baz danych ODMG 2.0.
1999 – Nieoficjalna wersja nowego standardu języka obiektowo-relacyjnych baz danych (SQL’1999).
Lata dziewięćdziesiąte – rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, rozproszenie, równoległość, Internet, hurtownie danych, OLAP, multimedia, GIS (Geographical Information Systems), ERP (Enterprise Resource Planning), MRP (Management Resource Planning), CRM (Client Relationship Management).