7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
1/12
Wykład wstępny
Podstawowe pojęcia relacyjnych baz danych
(RBD)
Streszczenie
Wykład wyjaśnia podstawowe pojęcia dziedziny baz danych. W szczególności jest
omówiony relacyjny model danych, na którym jest oparta budowa
współczesnych, komercyjnych baz danych. Załączona jest także informacja o
architekturze klientserwer używanej w aplikacjach baz danych oraz o historii
rozwoju baz danych.
Baza danych
Podstawowe fakty:
Dane są takim samym zasobem firmy jak każdy inny (np. pracownicy,
materiały, urządzenia) i wymagającym, tak samo jak one, zarządzania.
Informacja
to dane razem z ich semantyką znaczeniem dla firmy.
Zarządzanie danymi jest realizowane poprzez system informacyjny
obsługujący zapotrzebowania na informacje dla pewnego fragmentu
rzeczywistości w firmie.
Baza danych stała się standardową metodą wprowadzenia struktury do
procesu zarządzania danymi.
Baza danych jest częścią systemu informacyjnego firmy.
Aspekty systemu informacyjnego
podkreślające jego implementacyjny charakter:
aplikacja baz danych, gdy chcemy zwrócić uwagę na charakter
programistyczny i szczególne miejsce bazy danych w całej aplikacji;
system informatyczny, gdy chcemy zwrócić uwagę na ogólne środki
informatyczne a więc także na używane oprogramowanie i sprzęt.
Dlaczego warto interesować się bazami danych?
Wszechobecność informacji:
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
2/12
od serwisów działających na przeglądarkach internetowych,
po aplikacje naukowe.
Zbiory danych o coraz większej różnorodności i wielkości:
biblioteki elektroniczne, multimedialne bazy danych, interaktywne
video, projekty badania genomu człowieka, projekt obserwacji Ziemi
(NASA).
Przy konstrukcji systemów baz danych wykorzystuje się większość działów
informatyki:
systemy operacyjne, teorię informatyki, sztuczną inteligencję, logikę,
języki programowania, multimedia, inżynierię oprogramowania.
Obszar systemów baz danych reprezentuje jeden z największych i
najbardziej aktywnych segmentów rynku.
Relacyjny model danych
Relacyjny model danych pojawił się po raz pierwszy w artykule naukowym
Edgara Codda w 1970 roku.
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. Założenia:
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 Wykładowcy
IdWykładowcy
Imię Nazwisko Tytuł
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
3/12
1237
Jan
Kowalski
Doktor
3245
Maciej
Jankowski
Docent
8976
Artur
Malinowski
Profesor
Tabela Przedmioty
NazwaPrzedmiotu
Kod IdWykładowcy
Bazy danych
BDA
1237
Projektowanie systemów informacyjnych
PSI
3245
Technologie internetowe
TIN
3245
Programowanie obiektowe
POB
8976
Systemy decyzyjne
SDE
1237
Znaczenie IdWykładowcy w tabeli Przedmioty
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.
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
4/12
Klucz główny i jednoznaczny
Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany
kluczem głównym zbiór złożony z jednej lub więcej kolumn, w których
wartości jednoznacznie identyfikują cały wiersz.
Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w skrócie
kluczem) ma tę samą własność co klucz główny przy czym klucz główny jest
tylko jeden, kluczy jednoznacznych 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 zbiór złożony z jednej lub więcej kolumn, których
wartości występują jako wartości ustalonego klucza głównego lub
jednoznacznego 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"
Teraz pytanie:
Ile kluczy obcych może mieć tabela?
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
5/12
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
False
False
False
Null
Null
False
Null
Operator negacji
NOT
NOT True False Null
False True
Null
Czas na krótkie pytanie:
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
6/12
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
Teraz krótkie pytanie:
Jaka jest wartość wyrażenia "(Null=Null) Is Null"?
Więzy spójności danych
są to warunki poprawności danych w tabelach.
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, więzy klucza jednoznacznego.
Więzy NOT NULL.
Więzy referencyjne (więzy spójności referencyjnej): wartość klucza obcego
może być albo Null albo musi występować jako wartość powiązanego z nim
klucza głównego (lub jednoznacznego).
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
Czas na krótkie pytanie:
popularny model danych, w którym nie zawsze są przestrzegane więzy
spójności referencyjnej?
Perspektywa (view)
wirtualna tabela, którą posługują się użytkownicy np.
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
7/12
PrzedmiotyWykładowcy:
NazwaPrzedmiotu
Wykładowca
Bazy danych
Kowalski
Projektowanie systemów informacyjnych
Jankowski
Technologie internetowe
Jankowski
Programowanie obiektowe
Malinowski
Systemy decyzyjne
Kowalski
Zawartość zwykłej perspektywy jest na życzenie wyliczana przez system ze
źródłowych tabel. Nie jest na stałe zapisywana w bazie danych. W pewnych
sytuacjach wygodniej jest zapisać zawartość perspektywy w bazie danych a
następnie korzystać z jej „materializacji”. Taki specjalny rodzaj perspektywy nosi
nazwę perspektywy zmaterializowanej.
Indeks
jest to dodatkowa struktura danych umożliwiająca szybki dostęp do wierszy
tabeli na podstawie wartości w określonej kolumnie lub kolumnach np. indeks
zbudowany na kolumnie Nazwisko umożliwia szybkie wyszukiwanie danych
wykładowcy w oparciu o jego nazwisko. Przypomina indeks (skorowidz) w
książce.
Poziomy relacyjnej bazy danych
Te same dane w bazie danych mogą być w różny sposób widziane i w różny
sposób przetwarzane w zależności od wyboru odpowiedniego poziomu abstrakcji
– realizowanego przez dany system. Podstawowe realizowane poziomy abstrakcji
to:
Poziom użytkowy – widoki na dane i programy, którymi posługuje się
użytkownik.
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
8/12
Poziom logiczny (koncepcyjny) – zbiór tabel, perspektyw i indeksów.
Poziom fizyczny – zbiór plików z danymi i z indeksami.
Przy czym perspektywy definiuje się na poziomie logicznym a używa się na
poziomie użytkowym; indeksy definiuje się na poziomie logicznym a używa się
na poziomie fizycznym. Jeśli chodzi o tabele to definiuje się na poziomie
logicznym a używa się zarówno na poziomie użytkowym jak i fizycznym.
Z poziomu użytkowego korzystają głównie końcowi użytkownicy systemu. Z
poziomu logicznego korzysta głównie administrator danych systemu. Natomiast z
poziomu fizycznego korzysta głównie administrator bazy danych – nazywany w
skrócie dba. Oczywiście projektant bazy danych definiuje i zajmuje się
wszystkimi trzema poziomami.
Korzystanie z poszczególnych poziomów odbywa się do pewnego stopnia w
sposób niezależny. Na przykład, można zmieniać położenie danych na dysku i ich
zapis bez potrzeby zmiany struktury logicznej tabel; można zmieniać tabele bez
konieczności zmiany programów aplikacyjnych o ile programy aplikacyjne są
oparte na perspektywach a nie tabelach. W pierwszym przypadku mamy do
czynienia z tak zwaną niezależnością fizyczną danych, w drugim z niezależnością
logiczną danych.
W naszej przykładowej bazie danych aplikacja może polegać na wyświetlaniu
informacji, kto prowadzi dany wykład czyli zawartości perspektywy Przedmioty
Wykładowcy. W pewnym momencie może się okazać, że jeden wykład jest
prowadzony przez dwóch lub więcej wykładowców. Schemat bazy danych oparty
na dwóch tabelach: Wykładowcy i Przedmioty jest już niewystarczający i
wymaga dodania nowej tabeli łączącej wykładowców z przedmiotami oraz
zmiany definicji perspektywy PrzedmiotyWykładowcy. Są to zmiany realizowane
na poziomie logicznym bazy danych. Natomiast sam program aplikacyjny oparty
na perspektywie PrzedmiotyWykładowcy nie wymaga zmiany. Jest to przykład
zastosowania zasady niezależności logicznej danych.
Z zastosowaniem zasady niezależności fizycznej danych mamy do czynienia w
sytuacji, gdy dotychczas używany dysk zapełni się i zajdzie potrzeba dodania
nowego dysku. Nowe wiersze wprowadzane do tabel będą teraz zapisywane na
nowym dysku. Natomiast ani schematy tabel ani programy aplikacyjne nie
wymagają żadnej zmiany.
Katalog (słownik danych), metadane
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
9/12
jest to zbiór tabel i perspektyw opisujących schemat bazy danych to jest
definicje wszystkich jej obiektów (na każdym z trzech poziomów bazy danych).
Na przykład metadaną dotyczącą tabeli jest nazwa kolumny oraz jej typ danych.
Istotne jest użycie relacyjnego modelu danych w tym celu. Zatem metadane są
zapisywane i przetwarzane w taki sam sposób jak zwykłe dane.
Architektura klientserwer
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 (jest to język o nazwie SQL
omawiany na wykładzie 9).
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.
Historia baz danych
1951 Firma Univac wprowadziła taśmę magnetyczną do przechowywania
danych (oprócz dotychczasowych dziurkowanych kart).
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
10/12
1956 Firma IBM wprowadziła stacje twardych dysków magnetycznych do
przechowywania danych.
1961– Integrated Data Store IDS (Charles Bachman, General Electric)
pierwszy SZBD, początek sieciowego modelu danych.
196570 – Information Management System IMS (IBM) – hierarchiczny
model danych.
1970 – Edgar Codd (19242003), IBM – 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 ANSI/ISO: 1989, 1992 SQL2, 1999
SQL:1999 – model obiektoworelacyjny, trwają prace nad następnymi
standardami SQL3 i SQL4.
Lata osiemdziesiąte – badania nad dedukcyjnymi i obiektowymi bazami
danych.
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
11/12
1997 Standard obiektowych baz danych ODMG 2.0.
Lata dziewięćdziesiąte – rozszerzenie baz danych o nowe aspekty:
architektury wielowarstwowe, rozproszenie, integrację, równoległość,
Internet, hurtownie danych, OLAP, multimedia, bazy dokumentów w tym
XML, GIS (Geographical Information Systems), ERP (Enterprise Resource
Planning) oraz MRP (Management Resource Planning) pakiety takie jak
SAP, Baan, Oracle, PeopleSoft, Siebel, CRM (Customer Relationship
Management).
Podsumowanie
W wykładzie tym zostały wyjaśnione podstawowe pojęcia związane z bazami
danych oraz znaczenie baz danych w aplikacjach informatycznych. W
szczególności został przedstawiony główny model danych współczesnych baz
danych mianowicie
relacyjny model danych
a w jego ramach takie pojęcia jak:
tabela
,
klucz
,
klucz główny
,
klucz obcy
,
perspektywa
, pseudowartość
NULL
,
więzy spójności
w tym
spójności referencyjnej
.
Słownik pojęć
dwuwymiarowa struktura danych złożona z kolumn i wierszy. Na
przecięciu wiersza i kolumny znajduje się elementarna dana. W wierszu jest
zapisywany rekord danych opisujący obiekt (np. rekord danych opisujący osobę
lub firmę) lub pewien związek między obiektami. Każda kolumna zawiera zbiór
elementarnych danych opisujących jeden atrybut obiektu np. nazwę firmy lub
nazwisko osoby.
zbiór kolumn (często jednoelementowy), których wartości jednoznacznie
określają wiersz (obiekt).
wyróżniony klucz, którego używa się jako identyfikatora obiektu.
zbiór kolumn (często jednoelementowy), których wartości występują
jako wartości ustalonego klucza głównego lub jednoznacznego w tej lub innej
tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.
konstrukcja określająca brak wartości (danych).
wirtualna tabela, którą posługują się użytkownicy definiowana
7.04.2015
Relacyjny model danych
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w0.htm
12/12
na poziomie logicznym, używana na poziomie użytkowym.
warunki poprawności danych w tabelach relacyjnej
bazy danych.
warunek poprawności danych mówiący, że wartości klucza
obcego mogą być albo Null albo muszą występować jako wartości powiązanego z
nim klucza głównego (lub jednoznacznego).
Zadania
1. Podaj przykład dwóch tabel połączonych związkiem klucz obcy – klucz główny.
Określ ich klucze główne. Czy posiadają one klucze alternatywne
(jednoznaczne)? Określ jeden (lub więcej) kluczy obcych. Narysuj dwie tabele i
wprowadź do nich po kilka wierszy z zachowaniem więzów spójności
referencyjnej.
2. Zastanów się nad znaczeniem danych i informacji w twoim życiu. Czy
korzystasz z systemów do przechowywania danych? Czy można je nazwać bazą
danych?
Strona przygotowana przez Lecha Banachowskiego 03/13/09 .