SQL – podstawy języka relacyjnych baz danych

advertisement
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Podstawy teorii baz danych
Literatura dotycząca (teorii) baz danych
•
•
•
•
•
•
•
•
•
•
P.Benyon-Davies, Systemy baz danych, Wydawnictwo Naukowo-Techniczne, Warszawa 1998.
T.Connolly, C.Begg, Systemy baz danych. Praktyczne metody projektowania, implementacji i zarządzania, t.1, RM, 2004.
T.Connolly, C.Begg, Systemy baz danych. Praktyczne metody projektowania, implementacji i zarządzania, t.2, RM, 2004.
C.J.Date, Wprowadzenie do baz danych, (seria: Klasyka informatyki) WNT Warszawa 2000
R.Elmasri, S.B.Navathe, Wprowadzenie do baz danych, Helion 2005
M.J.Hernandez, Bazy danych dla zwykłych śmiertelników, Wyd. EDU-MIKOM, Warszawa 1998.
J.D.Ullman i J.Widom, Podstawowy wykład z systemów baz danych, WNT Warszawa 2000
J.D.Ullman, Systemy baz danych (tłum. z jęz. ang.), Wydawnictwa Naukowo-Techniczne, Warszawa 1988.
M. J. Hernandez, Projektowanie baz danych dla każdego. Przewodnik krok po kroku. Helion 2014
B.Jankowski, A.Regmunt, Bazy danych uczymy się na przykładach, MIKOM, cena 38,60 zł
Literatura dotycząca Microsoft Access
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Danuta Mendrala, Marcin Szeliga, Access 2013 PL. Kurs. Helion 2013
Lambert Joan, Cox Joyce, Microsoft Access 2013. Krok po kroku, Microsoft 2013
Danuta Mendrala, Marcin Szeliga, Access 2010 PL. Kurs. Helion 2010
Danuta Mendrala, Marcin Szeliga, Access 2010 PL. Ćwiczenia praktyczne. Helion 2010
Michael R. Groh, Access 2010. Biblia. Helion 2013
Curtis D. Frye, Microsoft Access 2010 PL. Praktyczne podejście, Helion
Danuta Mendrala, Paweł Szeliga, Access 2007PL. Ćwiczenia praktyczne,
Michale Groh, Joseph C.Stockman, Gavin Povell, Access 2007. Biblia, grudzień 2007,
Danuta Mendrala, Paweł Szeliga, Access 2007PL. Kurs, luty 2007,
Matthew McDonald, Nieoficjalny podręcznik Access 2007 PL, lipiec 2007,
Andrew Unsworth, Access 2007. Seria praktyk, kwiecień 2009,
Paul McFedries, Access 2007 PL. Formuły, raporty, kwerendy. Rozwiązania w biznesie, lipiec 2009,
Ken Bluttman, Wayne Freeze, Access. Analiza danych. Receptury, maj 2008,
Maciej Groszek, ABC Access 2007, kwiecień 2007,
Helen Feddeman, Microsoft Access. Podręcznik administratora, czerwiec 2006,
Tomasz Nabiałek, ABC 2007 Accessa, Wydawnictwo Edition, grudzień 2006,
Bogdan Krzymowski, Access 2007 PL poradnik dla nieinformatyków, Wyd. HELP, czerwiec 2007,
Steve Lambert, M. Dow Lambert III, Joan Preppernau,, Microsoft Office Access 2007 wersja polska Krok po kroku,
Wydawnictwo READ ME / EREMIS październik 2007,
Mirosław Sławik, Microsoft Access 2007 dla każdego, Wydawnictwo Videograf 2007,
Zarys historii baz danych
 Pierwsze próby użycia komputerów do przechowywania i przetwarzania dużych zasobów informacyjnych – od
razu zaznaczyły się dwa kierunki:

pierwszy, bardzo pragmatyczny, sprowadzał się do budowania konkretnych, zamówionych przez
użytkownika systemów, np. do obsługi rachunków banku czy do automatyzacji katalogów w bibliotece

drugi kierunek wyznaczały prace o charakterze narzędziowym. Celem tworzonych środków było
dostarczenie projektantom systemów informacyjnych narzędzi ułatwiających budowanie takich systemów
(język programowania COBOL).
 Najwcześniejsze znane użycie terminu „data base” miało miejsce w listopadzie 1963 r. – pojawiło się w ramach
sympozjum naukowego o nazwie ”Development and Management of a Computer-centered Data Base”
 Termin „Database” jako pojedyncze słowo pojawiło się w Europie we wczesnych latach 70-tych poprzedniego
stulecia i przy końcu tej dekady zostało użyte w większości amerykańskich czasopism ( DB jest oczywiście skrótem).
 Lata sześćdziesiąte przyniosły ogromny wzrost zainteresowania skomputeryzowanymi systemami baz danych, co
wynikało m.in. z wprowadzenia na rynek komputerów rodziny IBM 360, znacznie lepiej przystosowanych do
przetwarzania informacji nienumerycznych niż wcześniejsze maszyny.

potrzeba posiadania przez projektantów systemów baz danych uniwersalnych narzędzi do możliwie szybkiego
tworzenia różnorakich baz danych, bez potrzeby budowania oprogramowania dla każdej nowozakładanej baz,
1
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak

oddzielenie sposobu postrzegania bazy danych przez użytkownika od jej realizacji na poziomie struktur i
operacji wewnętrznych komputera
-
poziom logiczny – poziom, z którego na bazę patrzy użytkownik,
-
poziom fizyczny – poziom związany z samym komputerem,
-
niezależność bazy danych – jakiekolwiek zmiany na poziomie fizycznym nie powinny wpływać na
logiczny obraz bazy danych,
 Pierwszy system zarządzania bazą danych (SZBD) został utworzony na początku lat 60-tych. Był nim utworzony
w General Electric w 1961 r. Integrated Data Store IDS – początki sieciowego modelu baz danych.
 Druga poł. lat 60-tych – wprowadzenie modelu hierarchicznego - Information Management System IMS (IBM).
 1970 r. – wprowadzenie przez Edgara Coda (IBM) podstaw modelu relacyjnego – dr Edgar F.Codd – artykuł w
czerwcowym numerze pisma „Communications of the ACM” o tytule „Relacyjny model danych dla dużych banków
danych współużytkowanych”, w którym zostały nakreślone główne idee stworzonego przez niego relacyjnego
modelu baz danych

ważny jest sposób organizacji struktur danych i dostępu do nich, programy zaś są tylko środkami
prowadzącymi do realizacji tego celu
 1971r. – utworzenie standardu sieciowego modelu baz danych (CODASYL).
 1973 r. - pierwszy system zarządzania relacyjną bazą danych (System R w firmie IBM).
 1974 r. - IBM, San Jose – Structured English Query Language SEQUEL (prototyp SQL)
 1977 r. - firma Relational Software (później Oracle) wprowadziła na rynek pierwszą komercyjną wersję systemu
zarządzania relacyjną bazą danych, tj. pierwszy komercyjny serwer baz danych oparty na SQL.
 1987 r. - pierwszy standard języka SQL (ISO 9075).
 lata 80-te – prace dotyczące modelu obiektowego i dedukcyjnego baz danych
 lata 90- te - rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, bazy z wykorzystaniem
Internetu, rozproszenie, równoległość, hurtownie danych, OLAP, multimedia, GIS (Geographical Information
Systems), bazy dokumentów (w tym XML).
Aktualne kwestie związane z rozwojem baz danych

problemy modelowania i reprezentacji danych,

zapewnienie wiarygodności i spójności danych, zwłaszcza w kontekście ich aktualizowania,

języki wyszukiwania dla różnych typów danych (tekstowych, graficznych, przestrzennych, itd.),

ochrona danych,

komunikacja człowieka z bazą danych,

poszukiwanie nowych organizacji komputerów zorganizowanych na bazy danych.
Baza danych (ang. databases)
 pojęcie sięgające wieków w dziejach ludzkości
 informacja, dane – są to pojęcia określające pewien zasób wiedzy
 w swej historii ludzie od zawsze próbowali i ciągle próbują gromadzić informację i wnioskować na jej podstawie
 komputery są jedynie narzędziami, które ułatwiają współcześnie przetwarzanie ogromnych ilości informacji
2
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Określenia pojęcia bazy danych
Bazy danych to:
 zbiory danych, często dodaje się, iż odpowiednio uporządkowane.
 komputerowe reprezentacje fragmentów istniejącego (niekoniecznie fizycznie) świata rzeczywistego, który jest
przedmiotem zainteresowania użytkowników baz danych. Fragmenty te niekiedy bywają nazywane wycinkami,
światem modelowanym, światem rzeczywistym, itp.
 metoda strukturalizacji zarządzania informacją.
 zbiory danych o określonej strukturze, zapisane na zewnętrznym nośniku pamięciowym komputera, mogące
zaspokoić potrzeby wielu użytkowników korzystających z nich w sposób selektywny, w dogodnym dla siebie
czasie.
 część systemu informacyjnego – obsługuje zapotrzebowania informacyjne pewnego fragmentu rzeczywistości:
- aplikacja bazy danych (oprogramowanie) – gdy chcemy zwrócić uwagę na charakter programistyczny i
szczególne miejsce bazy danych w całej aplikacji.
- system informatyczny (sprzęt) – gdy chcemy zwrócić uwagę na ogólne środki informatyczne, a więc także
na używany sprzęt.
 „serce” Systemu Zarządzania Bazą Danych (SZDB).
Proces modelowania świata rzeczywistego
Proces przechodzenia od świata rzeczywistego do informacyjnej reprezentacji w komputerze nazywamy
modelowaniem świata rzeczywistego.
Z punktu widzenia projektanta bazy danych, w procesie modelowania świata rzeczywistego można wyróżnić
następujące etapy:
i.
wyselekcjonowanie typu informacji, jakie będą potrzebne przyszłym użytkownikom
bazy – konceptualizacja bazy danych,
ii.
zapisania ich w ustrukturalizowanej formie akceptowanej przez komputer –
utworzenie schematu danych, tj. zapisanie „skonceptualizowanego” wycinka w pewnym języku narzuconym przez
komputer (bardziej dokładnie można powiedzieć schemat danych musi być zgodny z tzw. modelem danych),
iii.
wprowadzenia do komputera konkretnych danych odzwierciedlających stan świata rzeczywistego (założenie bazy
danych).
Model danych
Model danych jest to:

spójny zestaw pojęć, który służy do opisywania danych i związków pomiędzy nimi oraz manipulowania danymi
i ich związkami, a także do wyrażania więzów nałożonych na dane w pewnym świecie modelowanym.

pewna reprezentacja wziętych ze świata rzeczywistego obiektów, zdarzeń i powiązań między nimi,

abstrakcja, która koncentruje się na istotnych, swoistych aspektach pewnego fragmentu rzeczywistości, a pomija
cechy przypadkowe.
Z tych powodów model danych musi dostarczać takiego podstawowego zbioru pojęć i oznaczeń, które pozwolą
projektantom baz danych i późniejszym ich użytkownikom na jednoznaczne i precyzyjne przekazywanie własnego
sposobu widzenia danych danego fragmentu rzeczywistości.
3
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Składniki modelu danych
1.
część strukturalna – zawierająca zbiór zasad, zgodnie z którymi powinny być konstruowane bazy danych,
2.
część wykonawcza – opisująca typy dopuszczalnych operacji na danych (w tym operacji wykorzystywanych do
modyfikacji i wyszukiwania danych w bazie oraz do zmiany jej struktury),
3.
zbiór zasad integralności (część opcjonalna), które zagwarantują spójność danych.
Model danych – to pewien ustrukturalizowany, dobrze zdefiniowany sposób opisu świata rzeczywistego.
Modele baz danych

hierarchiczny – świat rzeczywisty jest opisywany za pomocą drzew,

sieciowy – świat modelowany jest opisywany za pomocą grafów,

relacyjny – wykorzystanie tabel dwuwymiarowych (relacji) do opisu fragmentów świata rzeczywistego,

obiektowy – składniki programowania obiektowego (obiekty) wykorzystane w celu opisania rzeczywistości,

logiczny (dedukcyjny) - wykorzystanie logiki, inaczej można też powiedzieć o posłużeniu się językiem
naturalnym w celu opisu rzeczywistości,

aktualnie mówi się także o modelu relacyjno-obiektowym baz danych.
Cechy baz danych
Z pojęciem bazy danych są nierozerwalnie związane przede wszystkim dwie cechy:

trwałość – dane mają być przechowywane przez pewien okres czasu, na ogół nieokreślony z góry, w odróżnieniu
od danych chwilowych – istniejących tylko w momencie działania programu,

zgodność z rzeczywistością – dane w bazie danych muszą stanowić wierne odzwierciedlenie modelowanego
fragmentu rzeczywistości, baza danych musi się też odpowiednio zmieniać. Zapewnienie zgodności z rzeczy wistością jest podstawowym procesem we współczesnych systemach informacyjnych korzystających z baz danych.
Ponadto przy budowie baz danych zwraca się też uwagę na:

kontrolowanie replikacji (powtarzania się) danych – w idealnej sytuacji jeden fakt dotyczący modelowanego
fragmentu rzeczywistości powinien być w bazie danych reprezentowany tylko na jeden sposób, jednak z
uzasadnionych powodów, np. w celu dodatkowego zabezpieczenia danych przed utratą czy w celu szybszego
dostępu do potrzebnych danych, dane mogą być, przy zastosowaniu ścisłej kontroli, zapisywane jednocześnie w
kilku miejscach,

oparcie się na jednym spójnym systemie reprezentacji danych fragmentu rzeczywistości – system ten jest
nazywany modelem danych (np. relacyjny model danych)

współbieżny dostęp do bazy przez wielu użytkowników,

zapewnienie ochrony danych,

niezależność danych – dane i procesy działające na bazie danych powinny być niezależne względem siebie, tzn.
zmiana danych (np. dodanie nowego rodzaju danych) nie powinna wymagać zmiany istniejących procesów ani
też zmiana procesów (np. dodanie nowego raportu) nie powinna pociągać za sobą zmiany istniejących danych.
Scenariusze powstawania bazy danych
1.
przyrostowy (kawałek po kawałku) – dla każdego działu lub odcinka działalności firmy (organizacji) tworzy się
osobną bazę danych i osobny system informacyjny. W sytuacji początkowego braku doświadczenia daje to
możliwość powstania w miarę szybko cząstkowych baz danych i zdobycia początkowych doświadczeń. Wadami
tego rozwiązania jest powtarzanie się informacji (stąd redundancja i niespójności), niemożliwość realizowania
4
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
zadań globalnych, brak pełnego obrazu stanu firmy. Cząstkowe rozwiązania mają znacznie więcej prototypów,
przed uzyskaniem pełnego, w pełni zadowalającego rozwiązania.
2.
zintegrowanego systemu – jest trudniejszy do pełnego zrealizowania, ale za to eliminuje wady poprzedniego
rozwiązania.
Pojęcie informacji i jej podstawowa cecha
Informacja ma wartość, gdy jest:
•
dokładna,
•
dostępna.
Jeśli mamy „zły” sposób poszukiwania informacji, to możemy jej nie odnaleźć i komputer nic nam nie pomoże w tym
zakresie.
Termin informacja będziemy traktować aksjomatycznie.
Podstawowa cecha informacji jest związana z ich strukturą – wyróżniamy:

informacje proste (atomowe) – czyli takie, których w danym kontekście nie można lub nie należy rozkładać na
informacje prostsze,

informacje zagregowane (złożone), które są złożeniem informacji atomowych wedle pewnych zasad.
Przykład: temperatura powietrza i ciśnienie atmosferyczne, mierzone w konkretnym miejscu oraz data ich pomiaru, są
przykładami danych atomowych. Informacje te wspólnie tworzą informację zagregowaną. Informacją zagregowaną w
jeszcze większym stopniu jest zbiór informacji o temperaturze powietrza i ciśnieniu atmosferycznym za miesiąc.
Własności informacji
 Informacje, takie jak temperatura, ciśnienie, data czy relacja kieruje w dotyczą faktów.

Pomiędzy informacjami mogą występować relacje, np. relacja kieruje pomiędzy kierowcą i jego autem.

Relacja też jest informacją i w gruncie rzeczy możemy ją traktować tak samo, jak inne typy informacji.
Proces agregowania (składania informacji w jedną całość) informacji jest zatem określaniem pewnych relacji na
informacjach.
Ważną kategorię wyznaczają takie informacje, które mają charakter reguł lub zasad, gdzie występuje element
uwarunkowania i/lub wynikania. Np. zasada:
jeśli ojciec twojego brata nazywa się X, to twój ojciec nazywa się X
jest w naszym rozumieniu informacją.
Uwaga. Będziemy przyjmować, że w większości rozważanych przypadków, iż informacje w postaci faktów mogą być
albo prawdziwe, albo nieprawdziwe, zaś relacje między informacjami zachodzić lub nie zachodzić, chociaż w życiu
codziennym spotykamy się również z sytuacjami, że nie wiemy czy informacja jest prawdziwa, czy też nie.
Termin „dane”
Przez dane rozumiemy informacje przedstawione w konkretny sposób, za pomocą takiej, a nie innej metody
reprezentacji.
Metoda reprezentacji – to pewien zbiór reguł syntaktycznych, które pozwalają tworzyć napisy (literowe, graficzne,
akustyczne, itp.) oraz zasady interpretowania tych napisów, czyli reguły semantyczne.
Modele danych, o których mówiliśmy powyżej, można traktować jako metody reprezentacji.
Dane, podobnie jak informacje, mogą być proste (atomowe) i zagregowane (złożone).
Dane a informacje
5
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Informacja jest reprezentowana przez różne dane – ta sama informacja ( prosta lub zagregowana) może być
przedstawiona na różne sposoby za pomocą różnych metod reprezentacji. Tym niemniej, może się naturalnie zdarzyć,
że (syntaktycznie) różne dane mają tę samą semantykę, czyli opisują tę samą informację.
Przykład. Tę samą informację o temperaturze powietrza w określonym dniu dla danej miejscowości można
przedstawić dwojako: za pomocą pary (a,b), gdzie a oznacza datę, zaś b – liczbę w stopniach Celsjusza, lub za pomocą
punktu na wykresie w układzie współrzędnych OXY, gdzie na osiach są odpowiednio daty i liczby w stopniach
Celsjusza. Zbiór takich par z ostatniego miesiąca prowadzi do utworzenia tabelki, zaś zbiór punktów pozwala
wykreślić wykres temperatury za ten okres. Choć obie dane są dla meteorologa semantycznie równoważne, trzeba
jednak traktować jako różne obiekty, zwłaszcza wtedy, gdy chcemy dokonywać na nich jakiś manipulacji, np. nanieść
poprawki lub wykonać obliczenia. Dalsza agregacja danych może polegać na dodawaniu kolejnych miesięcy (lub
miejscowości), co prowadzi do dołączenia nowych wierszy w tabelce lub nowych wykresów na płaszczyźnie OXY.
Zauważmy, że mimo dołączania nowych informacji metoda reprezentacji się już nie zmienia.
Należy podkreślić, iż sprawą niezmiernie ważną, jest translacja danych z jednej metody reprezentacji na inną z
zachowaniem semantyki reprezentowanych informacji.
Schemat danych i jego wystąpienia
Agregowanie informacji, ujawnianie relacji, wskazywanie reguł ma na celu ustrukturalizowanie informacji lub inaczej
mówiąc utworzenie schematu danych.
W nieco dokładniejszym ujęciu za bazę danych możemy uważać kolekcję danych zorganizowanych według wzoru
określonego przez schemat danych. W konkretnej chwili czasu baza danych jest wystąpieniem (ang. instance)
schematu danych, tzn. zbiorem danych ustrukturalizowanych zgodnie z przyjętym modelem i schematem danych.
Każdy schemat może mieć wiele wystąpień, co wynika choćby z tego faktu, że do bazy można dopisywać nowe dane,
aktualizować lub usuwać dane już istniejące.
Bazę danych można również określić jako zbiór wszystkich dopuszczalnych wystąpień schematu danych.
Manipulacje na bazie danych mogą powodować, że przechodzi ona z jednego stanu do drugiego, co odpowiada
przejściu od jednego wystąpienia schematu do innego wystąpienia tego samego schematu danych. W powyższej
definicji bazy danych zostało wykorzystane określenie „dopuszczalnych”. Chodzi o to, aby dane zawarte w bazie
odzwierciedlały świat rzeczywisty, a nie wyimaginowane sytuacje.
Systemy oparte na przetwarzaniu plików
Systemy komputerowe oparte na przetwarzaniu plików były pierwszą próbą skomputeryzowania ręcznego
przetwarzania danych, które są wykorzystywane niemal przez wszystkich, nawet w domowych zastosowaniach.
W systemach opartych na tradycyjnym przetwarzaniu plików każdy użytkownik definiuje i implementuje pliki, które
są mu potrzebne do konkretnego zastosowania danego programu, i czynność ta stanowi jeden z elementów
programowania tego zastosowania.
Plik to po prostu zbiór rekordów, które zawierają logicznie ze sobą powiązane dane.
Każdy rekord zawiera zbiór logicznie ze sobą powiązanych pól, z których każde dotyczy pewnej charakterystycznej
cechy opisywanego przez rekord obiektu.
Systemy oparte na przetwarzaniu plików powstały i rozwijały się ze względu na zapotrzebowania ze strony
gospodarki na efektywny dostęp do danych.
6
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Tym niemniej, zamiast założyć centralną bazę danych operacyjnych przedsiębiorstwa, zostało wybrane rozwiązanie
zdecentralizowane, w którym każdy dział firmy gromadził i nadzorował własne dane, przy wykorzystaniu do tego celu
własnych plików i własnego oprogramowania.
Przykład. Powiedzmy, iż jeden użytkownik – niech to będą kadry w pewnej firmie – jest zobowiązany do
utrzymywania pliku zawierającego informacje o pracownikach wraz z ich przebiegiem pracy zawodowej. Programy
drukujące listy pracowników i umożliwiające wpisywanie do pliku nowych informacji o przebiegu pracy zawodowej
są implementowane w postaci jednego z elementów tego zastosowania. Drugi użytkownik – dział księgowości – może
zarządzać wielkością pensji i przyznawaniem premii. Chociaż każdy z tych użytkowników jest zainteresowany
danymi na temat pracowników, to każdy z nich utrzymuje własne pliki (wraz z programami operującymi na tych
plikach), ponieważ każdy z tych użytkowników wymaga pewnych danych, które nie są definiowane w plikach innych
użytkowników. Każdy dział ma dostęp do swoich plików poprzez aplikacje napisane specjalnie dla niego. Pakiet
aplikacji każdego z działów obsługuje wprowadzanie danych, nadzoruje pliki danych oraz umożliwia generowanie
raportów spośród tych, które są dostępne w systemie.
Należy również podkreślić fakt, iż fizyczna struktura plików z danymi oraz zapisanych w nich rekordów danych jest
zdefiniowana w kodzie każdej aplikacji, a zatem dla każdego działu może być inna.
Wady systemów opartych na przetwarzaniu plików
 powielanie danych – efektem zdecentralizowanego gromadzenia danych w systemach opartych na
przetwarzaniu plików była nadmiarowość w ich definiowaniu i przechowywaniu,
 zależność danych od programu – wynika z faktu, iż fizyczna struktura i organizacja plików danych i rekordów
jest zdefiniowana w kodzie aplikacji. Fakt ten rzutuje również na to, iż zmiany w istniejącej strukturze były
zazwyczaj trudne do przeprowadzenia,
 rozproszenie i odseparowanie danych – ponieważ dane są gromadzone w odrębnych plikach, to fakt ten
implikuje, iż znacznie trudniej jest uzyskać potrzebną informację,
 niekompatybilne formaty plików – jest to konsekwencją faktu, iż struktura plików jest zapisana w kodzie
aplikacji, a zatem zależy od języka, w którym napisano aplikację. Jest oczywistym, iż brak kompatybilności
plików sprawia, iż ich jednoczesne przetwarzanie jest bardzo utrudnione,
 ograniczona liczba możliwych zapytań i aplikacji – każdy dział mógł dostosowywać zapytania i raporty do
własnych potrzeb, to mogło stwarzać sytuację, w której jeden z działów nie nadążał z pracą za innym działem.
Model relacyjny baz danych
Krótka historia modelu relacyjnego
Model relacyjny został zaproponowany przez pracownika firmy IBM pracującego wówczas dziale badań tej firmy
E.F.Codda w 1970 r. w jego pracy „A relational model of data for large shared data banks”.
Cechy relacyjnego modelu Codda:
•
opiera się na pojęciu matematycznej relacji, która nieco przypomina tabelę wartości,
•
relacje pełnią rolę podstawowych elementów składających się na konstruowane struktury,
•
jest oparty na teorii zbiorów, logice pierwszego rzędu i rachunku predykatów,
•
niezależność danych,
•
wykorzystuje języki przetwarzania danych oparte na przetwarzaniu zbiorów,
7
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
•
wprowadzenie narzędzi pozwalających rozwiązywać problemy semantyki, spójności i redundancji danych.
Trzy najważniejsze projekty dotyczące rozwoju modelu relacyjnego
 Pierwszym z projektów był prototypowy relacyjny SZBD o nazwie System R z IBM San José Research Laboratory
w Kalifornii, który powstał pod koniec lat siedemdziesiątych ubiegłego wieku. Jego głównym celem było
wykazanie praktycznej przydatności modelu relacyjnego poprzez zaimplementowanie jego struktur i operacji.
Przyczynił się do:
•
rozwoju strukturalnego języka zapytań SQL relacyjnych baz danych
•
stworzenia w latach siedemdziesiątych i osiemdziesiątych różnych komercyjnych, relacyjnych SZBD,
np. DB2 i SQL/DS. w firmie IBM oraz Oracle w firmie Oracle Corporation.
 Drugim takim projektem był INGRES (ang. Interactive Graphics Retrieval System) z University of California w
Berkeley. Projekt ten obejmował utworzenie prototypowego relacyjnego SZBD i dotyczył tych samych ogólnych
zagadnień modelu relacyjnego, co poprzednio omówiony projekt firmy IBM. Doprowadził do stworzenia
akademickiej wersji systemu INGRES, który przyczynił się do upowszechnienia koncepcji systemów relacyjnych.
 Trzecim projektem był system Peterlee Relational Test Vehicle, który był rozwijany w IBM UK Centre w Peterlee.
Projekt ten był bardziej o teoretyczny niż poprzednio dwa wspomniane i miał istotne znaczenie z punktu widzenia
badań nad takimi zagadnieniami, jak przetwarzanie i optymalizacja zapytań oraz rozszerzenia funkcjonalne.
Obecnie istnieje kilkaset relacyjnych SZBD, dostosowanych zarówno do dużych, wielodostępnych komputerów, jak i
do komputerów osobistych (niektóre z nich nie do końca są zgodne z definicją modelu relacyjnego.
Przykładami relacyjnych SZDB są:
 Access i FoxPro firmy Microsoft,
 Oracle firmy Oracle Coropration,
 DB2 firmy IBM,
 InterBase i Delphi firmy Borland,
 Paradox firmy Corel Corporation.
Model relacyjny
Model relacyjny definiuje:
 sposób reprezentowania danych (strukturę),
 metodę ich zabezpieczania (integralność danych),
 operacje, które mogą być na nich wykonywane (manipulowanie danymi).
Relacyjna baza danych
Relacyjną bazę danych można określić jako parę złożoną z następujących składników:
 zbioru tabel, których wiersze opisują obiekty lub związki występujące w modelowanym świecie,
 zbioru zależności semantycznych, które opisują ogólne prawidłowości (zasady, reguły) występujące w
modelowanym wycinku rzeczywistości.
Pierwszy składnik tej pary ujmuje aspekt ilościowy modelowanego świata – tabele zawierają bowiem konkretne dane
faktograficzne, np. :
nazwisko: Kowalski,
adres: 35-247 Łódź, ul. Tatrzańska 7 m.12,
telefon: 621-63-09, itd.
Drugi składnik dostarcza informacji ogólniejszych, np. :
8
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
numer telefonu musi być siedmiocyfrowy;
jeśli osoba jest mężczyzną, to nie może być matką, itd.
Systemy relacyjnych baz danych charakteryzują się następującymi własnościami:

wszystkie dane są reprezentowane koncepcyjnie jako zbiór wartości uporządkowanych w formie wierszy i
kolumn zwanych relacją,

wszystkie wartości są skalarne – oznacza to, że dowolna pozycja relacji na przecięciu kolumny i wiersza zawiera
zawsze jedną i tylko jedną wartość,

wszystkie operacje są wykonywane na całej relacji, a ich wynikiem jest również relacja. Taka właściwość
operacji nazywa się domknięciem.
Model relacyjny:
 wymaga jedynie, aby dane były koncepcyjnie reprezentowane przez relację.
 nie określa on wcale fizycznej reprezentacji danych - w rzeczywistości relacje nie muszą być wcale
reprezentowane fizycznie,
 jest tak zdefiniowany, iż istnienie relacji jest całkowicie niezależne od fizycznej reprezentacji danych.
Definicja relacyjnej bazy danych w terminologii matematycznej
W terminologii matematycznej – relacyjna baza danych jest zbiorem relacji.
Definicja relacji (w matematyce).
Niech dane będą zbiory Z1, Z2,…, Zn. Relacją matematyczną R nad tymi zbiorami nazywamy dowolny podzbiór
iloczynu (produktu) kartezjańskiego nad tymi zbiorami, tj.
R  Z1  Z2  …  Zn = { (z1, z2,…, zn) : zi  Zi , i = 1, 2, …, n }.
Jak wynika z powyższej definicji, relacja (n-członowa) R jest zbiorem n – elementowych ciągów, przy czym i-ty
element ciągu jest elementem zbioru Zi, i=1,2,…,n.
Nieco inną konwencję przyjmuje się w relacyjnym modelu danych. Wynika to z faktu, iż relacja powinna być
uniezależniona od uporządkowania zbiorów, nad którymi jest ona rozważana. Zamiast zatem traktować elementy
n-członowej relacji jako n-elementowe ciągi (a zatem jako funkcje f ze zbioru {1,2,…,n} w zbiór Z1  Z2  …  Zn ,
gdzie f(i)  Zi), traktuje je się jako funkcje nad pewnym n-elementowym zbiorem symboli, zwanych atrybutami. W
zbiorze tym nie musi być określona żadna relacja porządkująca.
Matematyczny opis relacji
Niech dany będzie skończony zbiór U = { A1, A2,…An}, którego elementy nazywamy atrybutami. Niech każdemu
atrybutowi A  U przyporządkowany będzie zbiór wartości DOM(A), zwany dziedziną (domeną) atrybutu A (a
zatem domena atrybutu to zbiór wszystkich możliwych wartości, jakie może przyjmować ten atrybut).
Definicja. Krotką typu U nazywamy dowolną funkcję
f: U 
{ DOM(A) : A  U }
taką, że dla dowolnego A  U, f(A)  DOM(A). Zbiór wszystkich krotek typu U oznaczamy symbolem
KROTKA(U).
Zauważmy, że w ogólnym przypadku zbiór KROTKA(A) może zawierać nieskończenie wiele elementów (krotek),
wtedy mianowicie, gdy któryś ze zbiorów DOM(A) jest zbiorem nieskończonym.
9
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Definicja. Relacją (ang. relation) typu U nazywamy dowolny skończony podzbiór zbioru KROTKA(U). Zbiór
wszystkich relacji typu U oznaczamy REL(U). Relacje typu U oznaczamy symbolami R(U), S(U), T(U), … lub w
skrócie R, S, T, …, gdy wiadomo, o jaki zbiór atrybutów chodzi.
1. Relacje typu U oznaczać będziemy symbolami R(U), S(U), T(U), …. Jeśli z kontekstu wynikać będzie
jednoznacznie o jaki zbiór atrybutów chodzi, pisać będziemy w skrócie R, S, T, …
2. Krotki typu U oznaczać będziemy małymi literami alfabetu, niekiedy z indeksami, primami, itp. Np.. R(U), r1(u),
r’(U), s(U), … Jeśli z kontekstu wynikać będzie jednoznacznie typ krotki, w zapisie będziemy go opuszczać.
3. Podzbiory zbioru atrybutów U oznaczać będziemy dużymi literami z końca alfabetu, X, Y, Z, …
4. Dla zbioru atrybutów {A , B}, zamiast pisać R({A , B}), stosować będziemy zapis R(A , B).
Matematyczny opis relacji
Krotka r typu U często bywa utożsamiana z ciągiem jej wartości. Ponieważ krotka ta jest funkcją, więc ścisłe jej
przedstawienie wymaga zatem zapisu
r = {(A1,a1), (A2,a2), …,(An,an) }
gdzie ai = r(Ai), i = 1, 2, …., n. Zamiast tego często pisze się po prostu ciąg wartości {a1,a2, …,an }
Niech U = { A1, A2,…An}. Zauważmy, że krotkę r(U), ponieważ jest ona funkcją, można przedstawić ją w postaci
tabeli
r
A1
A2
 An
r (A1 ) r (A1 )  r (A n )
Każdą z takich krotek możemy przedstawić za pomocą tabeli. Ponieważ zbiory argumentów wszystkich tych krotek są
identyczne, a zatem możemy je napisać w nagłówku tabeli, a wartości poszczególnych krotek (funkcji) umieścić w
kolejnych wierszach. Uzyskujemy w ten sposób tabelaryczne przedstawienie relacji R:
R:
.
A2
 An
r1 (A 2 )  r1 (A n )
A1
r1 (A1 )
r2 (A1 ) r2 (A 2 )  r2 (A n )




rk (A1 ) rk (A 2 )  rk (A n )
Własności relacji R(U)
1.
Nazwa tabeli jest nazwą relacji, tj. R.
2.
Jeśli U jest zbiorem n-elementowym, to tabela ma n-kolumn, z których każda ma przyporządkowany jeden z
atrybutów ze zbioru U jako swoją nazwę (nie ma dwóch różnych kolumn o tej samej nazwie).
3.
Uporządkowanie kolumn tabeli nie jest istotne.
Przykład ilustrujący pojęcia krotki i relacji
Przykład. Relacja postaci U = { NA, S, NP, E }
U = { NrAlbumu, Student, NrPrzedmiotu, Egzamin}
NrAlbumu
Student
NrPrzedmiotu
Egzamin
A003
Adamiak Marta
BD003
4+
K001
Kowalski Marek
AM001
5
S004
Słowik Elżbieta
AL001
4
Struktura i własności relacji R(U)
10
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
 Przyjmuje się powszechnie reprezentację, przy której pojedyncza relacja jest dwuwymiarową tabelą złożoną z
kolumn i wierszy.
 Nazwa tabeli jest nazwą relacji, tj. R.
 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. W kolumnie o nazwie A  U mogą występować wartości wyłącznie ze zbioru DOM(A).
 Jeśli U jest zbiorem n-elementowym, to tabela ma n-kolumn, z których każda ma przyporządkowany jeden z
atrybutów ze zbioru U jako swoją nazwę - nazwa kolumny nie może powtórzyć się w obrębie relacji.
 Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny.
 Wiersze nie powtarzają się.
 Kolejność kolumn jest nieistotna.
 Kolejność wierszy jest nieistotna (są rozpatrywane jako elementy zbioru).
Przykład relacyjnej bazy danych
BIBLIOTEKA
Opis analityczny: książka jest pisana przez (jednego) autora, czytelnicy wypożyczają książki – ich dowolną liczbę.
Struktura przykładowej relacji
Dane przechowywane w tabeli (relacji). Relacja typu U: = {NK, N, I}
Czytelnicy = { NrKarty, Nazwisko, Imie }.
CZYTELNICY
NrKarty
Nazwisko
Imie
A003
Adamczyk
Marta
K001
Kowalski
Jerzy
B004
Balcerzak
Monika
M006
Modlińska
Elżbieta
…
…
…
pola
11
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Rodzaje połączeń
 połączenie jeden-do-jednego – mówimy, iż relacja A jest połączona z relacją B połączeniem 1 – 1, gdy każdemu
rekordowi tabeli A odpowiada co najwyżej jeden rekord w tabeli B i każdemu rekordowi
z tabeli B odpowiada co najwyżej jeden rekord w tabeli A .
 połączenie jeden-do-wielu – mówimy, że relacja A jest połączona z relacją B połączeniem 1 – , gdy każdemu
rekordowi z tabeli A może odpowiadać dowolnie wiele rekordów w tabeli B i każdemu rekordowi
z tabeli B odpowiada co najwyżej jeden rekord w tabeli A.
 połączenie wiele-do-wielu – mówimy, że relacja A jest połączona z relacją B połączeniem  – , gdy każdemu
rekordowi z tabeli A może odpowiadać dowolnie wiele rekordów w tabeli B i każdemu rekordowi
z tabeli B może odpowiadać dowolnie wiele rekordów w tabeli A.
Zależności funkcyjne
Definicja. Zależnością funkcyjną nazywamy każdy zapis postaci
XY
gdzie X, Y  U są zbiorami krotek. Mówimy wówczas, że Y zależy funkcyjnie od X lub, że X determinuje
funkcyjnie Y. Ogólnie można powiedzieć, że zależność funkcyjna między zbiorami atrybutów X i Y istnieje wtedy,
gdy w każdym stanie istnieje pewna funkcja ze zbioru krotek typu X w zbiór krotek typu Y. W różnych stanach
funkcje te mogą być różne.
Definicja. Niech dana będzie krotka r typu U i niech X  U. Krotkę t typu X nazywamy ograniczeniem krotki r do
zbioru U, co oznaczamy t = r[X], wtedy i tylko wtedy, gdy dla każdego A  X, r(A) = t(A), czyli wtedy, gdy krotki r i
t są identyczne na zbiorze X; na zbiorze U – X mogą być różne.
Definicja. Niech dana będzie relacja R(U) i niech X, Y  U. Mówimy, że w R spełniona jest zależność funkcyjna
X  Y, co zapisujemy R |= X  Y, jeśli dla każdych dwóch krotek r1, r2  R zachodzi:
r1[X] = r2[X]  r1[Y] = r2[Y]
(*).
Schemat relacyjny a relacja
Definicja. Niech dany będzie zbiór atrybutów U i niech F będzie zbiorem zależności funkcyjnych nad U. Parę
uporządkowaną
R = (U, F)
nazywamy schematem relacyjnym o zbiorze atrybutów U i ze zbiorem F zależności funkcyjnych.
Definicja. Relacja R jest przypadkiem (ang. instance) schematu relacyjnego R = (U, F) lub, że jej schematem jest R,
co zapisujemy R| = R lub R| = (U, F), jeśli R jest typu U i spełniona jest w niej każda zależność funkcyjna X  Y  F.
Przykład. Rozważmy relację R(NK, CZ, KK, DW), która odwzorowuje informację o wypożyczeniach, przy czym
(nk, cz, kk, dw)  R oznacza, że czytelnik cz o numerze karty nk wypożyczył książkę o kodzie książki kk w dniu dw.
Niech rozważana relacja R(NK, CZ, KK, DW) ma postać:
R:
NK
CZ
KK
DW
A003 Adamczyk K1054 19 / 01/ 09
.
A003 Adamczyk K1054 22 / 03 / 09
K 001
Kowalski
A0093 04 / 04 / 09
B004
Balcerzak
12
C1077 25 / 05 / 09
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Mamy bowiem, iż równość dwóch różnych krotek dla atrybutu NK pociąga za sobą równość dla atrybutu CZ.
Mogłoby się wydawać, że także dla atrybutów CZ i KK spełniony jest warunek (*) z definicji określającej
zachodzenie zależności funkcyjnej. Nie jest jednak prawdą, że KK zależy funkcyjnie od CZ (ani odwrotnie). Nie jest
to bowiem właściwość niezmiennicza tych atrybutów – dołączenie bowiem np. wiersza (A003, Adamczyk, P1098,
15/05/09) spowoduje, że warunek ten nie będzie już spełniony.
Zależności funkcyjne w zbiorze atrybutów
Przykład. Niech U = {KK, T, G, NA}, gdzie znaczenie poszczególnych atrybutów jest następujące: KK – kod książki,
która jest w bibliotece, T – tytuł książki, G – gatunek książki, NA – nazwisko autora książki.
Zbiór F zależności funkcyjnych na tym zbiorze atrybutów może być następujący:
F = { KK  {T, G}, {T, NA}  KK, KK  {T, NA} ,{KK, T}  NA }
Okazuje się, iż zamiast jednej zależności funkcyjnej KK  {T, NA} można zapisać dwie: KK  T, KK  NA, które
razem są równoważne tej pierwszej. Zauważmy ponadto, że jeśli {T, NA}  KK jest zależnością funkcyjną, to
zależnością funkcyjną jest również np. {T, G, NA}  KK.
Struktura i zawartość informacyjna tabeli KSIAZKI
KodKsiazki
KodAutor
Tytul
Gatunek
K1054
HS234
Potop
powieść historyczna
K2857
SW987
Wesele
dramat
K1059
HS234
Qvo vadis
powieść historyczna
K7651
EO1134
Nad Niemnem
powieść historyczna
K8721
BP2222
Faraon
powieść historyczna
K2233
JS7775
Kordian
dramat
...
...
...
...
Znaczenie pola KodAutor w tabeli KSIAZKI
 Jego wartości nie opisują cech książki.
 Reprezentują związek danej książki z jej autorem, o którym informacja znajduje się w innej tabeli i tylko
korzystając z tego identyfikatora możemy rozpoznać w tej innej tabeli wiersz właściwego autora oraz odczytać o
nim informacje.
 Istotne jest więc, aby ten identyfikator jednoznacznie określał danego autora – w modelu relacyjnym nie ma innej
możliwości identyfikacji wiersza, jak tylko poprzez wartości kolumn, które jednoznacznie identyfikują wiersz.
Klucz kandydujący
Polem klucza nazywamy pole lub pewną liczbę pól, które spełniają następujące własności:

nie zawierają powtarzającej się wartości (unikatowość),

nie zawierają wartości NULL,

żaden podzbiór (właściwy) pól tworzących pole klucza nie jest kluczem (nieredukowalność).
Tabela może zawierać więcej niż jeden klucz.
Atrybuty, które należą do któregoś z kluczy nazywać będziemy atrybutami kluczowymi, a te które nie należą do
żadnego z kluczy – atrybutami niekluczowymi.
13
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Definicja klucza głównego
Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany kluczem głównym (podstawowym) –
ma tę samą własność, co klucz kandydujący, przy czym klucz główny jest tylko jeden, kluczy kandydujących w tabeli
może być więcej niż jeden.
Klucz główny jest wybierany arbitralnie (przez projektanta bazy danych) z kluczy kandydujących. Pozostałe klucze
zwane są kluczami alternatywnymi.
•
•
W tabeli Czytelnicy kluczem głównym jest NrKarty.
•
W tabeli Autorzy kluczem głównym jest KodAutor. Nazwisko nie może być kluczem!
•
W tabeli Ksiazki kluczem głównym jest KodKsiazki, Tytul nie może być kluczem.
W tabeli Wypozyczenia kluczem jest zbiór pól {KodKsiazki, DataWypozyczenia}
Każda tabela musi mieć dokładnie jeden klucz główny.
Kryteria wyboru klucza podstawowego
Kryteriami wyboru klucza głównego mogą być:
 minimalna liczba atrybutów,
 możliwość przewidzenia zakresu wartości klucza – ważne jest, aby klucz główny identyfikował zawsze
jednoznacznie każdą możliwą krotkę, a nie tylko te, które występują w jakimś konkretnym, skończonym zbiorze,
 niewystępowanie wśród wartości klucza wartości nieokreślonych (zerowych)
UWAGA: Jeśli jedyny możliwy klucz kandydujący ma bardzo niewygodną postać – np. składa się ze zbyt wielu pól
lub ma bardzo długie wartości – można skorzystać ze specjalnego typu danych, oferowanego przez poszczególne
systemy zarządzania bazami danych. Przykładowo, aparat bazy danych Microsoft Jet oferuje specjalnie do tworzenia
sztucznych kluczy o wartościach generowanych przez system specjalny typ danych pola tzw. Autonumerowanie, zaś
SQL Server – typ danych Identity. Pola tego typu stanowią ogromnie użyteczne narzędzie, o ile tylko nie będą
używane do jakiegoś innego celu. Są to po prostu tylko jednoznaczne etykiety (rekordów).
Natomiast w bazach Oracle mamy do tego celu specjalne obiekty tzw. sekwencje.
Matematyczny opis definicji klucza
Definicja. Niech dany będzie zbiór atrybutów U i niech F będzie zbiorem zależności funkcyjnych nad U. Parę
uporządkowaną R = (U , F) nazywamy schematem relacyjnym o zbiorze atrybutów U i ze zbiorem F zależności
funkcyjnych.
Definicja. Niech dany będzie schemat relacyjny R = (U , F). Zbiór atrybutów K  U nazywamy kluczem (ang. key)
schematu R wtedy i tylko wtedy, gdy zbiór ten spełnia następujące warunki:
a) K  U  F+ (jednoznaczna identyfikowalność)
b) X  U  F+  ~ ( X  K ) (minimalność)
gdzie symbol F+ oznacza taki najmniejszy zbiór zależności funkcyjnych, który zawiera zbiór F i jest zamknięty ze
względu na reguły wyprowadzeń, tzw. aksjomaty Amstronga.
Przykład. Niech dany będzie schemat relacyjny R = (U, F) postaci
R = ({KK, KA, T, G}, {KK{T, G}, {KK, T}  KA, {KK, T, G}  KA).
Cechę jednoznacznej identyfikowalności mają zbiory: KK, {KK, T}, {KK, T, G},
{KK, KA, T, G}. Najmniejszym z nich jest KK i to właśnie ten atrybut jest kluczem schematu R.
14
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
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
jednoznacznego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.
W tabeli Ksiazki kluczem obcym jest KodAutor, którego wartości pochodzą z kolumny KodAutor w tabeli Autorzy.
W tabeli Wypozyczenia kluczem obcym jest NrKarty, którego wartości pochodzą z kolumny NrKarty w tabeli
Czytelnicy oraz KodKsiazki, którego wartości pochodzą z kolumny KodKsiazki w tabeli Ksiazki.
Na przykład, wartości K1054 i A003 występujące w wierszu tabeli Wypozyczenia stanowią odwołanie do wierszy w
tabeli Ksiazki i Czytelnicy, w którym są zapisane informacje o książce „Potop” i czytelniku o nazwisku „Adamczyk":
„Książka o tytule Potop jest wypożyczana przez Martę Adamczyk"
Każda tabela może mieć więcej niż jeden klucz obcy.
Więzy integralności encji, więzy integralności odwołań, więzy ogólne.
Pojęcie integralności bazy danych dotyczy poprawności i niesprzeczności przechowywanych danych. Integralność jest
zazwyczaj wyrażana w postaci więzów, czyli reguł spójności, które w bazie danych nie mogą zostać naruszone. Więzy
mogą dotyczyć pojedynczego rekordu danych lub mogą odnosić się do związku pomiędzy rekordami.
Administrator bazy danych definiuje więzy integralności, które System Zarządzania Bazą Danych (SZBD) wymusza
przestrzeganie więzów integralności.
Stan bazy danych, który nie spełnia więzów integralności, jest nazywany stanem nieprawidłowym; natomiast stan,
który spełnia wszystkie więzy integralności zdefiniowane w projekcie schematu relacyjnej bazy danych, jest
nazywany stanem prawidłowym.
Wszystkie więzy integralności powinny być definiowane na poziomie schematu relacyjnej bazy danych, jeśli
zgodność z nimi ma być wymuszana we wszystkich stanach tej bazy danych. Oznacza to, że język definiowania
danych (DDL) powinien oferować środki niezbędne do określania różnego rodzaju więzów, które będą następnie
wymuszane przez system zarządzania bazą danych.
Więzy integralności encji, więzy integralności odwołań, więzy ogólne.
Integralność (ang. integrity) łączy w sobie formalną poprawność bazy danych i procesów przetwarzania, poprawność
fizycznej organizacji danych, zgodność ze schematem bazy danych, zgodność z ograniczeniami integralności oraz z
regułami dostępu. Tak rozumiana integralność nie oznacza bynajmniej, iż baza danych prawidłowo odwzorowuje
sytuację i procesy opisanego przez nią świata zewnętrznego. Właściwszym terminem jest tu spójność (ang.
consistency), którą możemy podzielić:
• spójność fizyczna: operacje bazodanowe kończą się sukcesem,
• spójność logiczna: baza danych jest spójna fizycznie, a jej zawartość odpowiada,
schematowi bazy danych i dodatkowym ograniczeniom.
Więzy integralności są warunkami, które powinny być spełnione przez określony podzbiór danych z bazy. Spełnienie
tych warunków świadczy, iż baza danych jest w stanie spójnym. A zatem dzięki więzom integralności nie można
zmodyfikować tak bazy danych, aby znalazła się ona w stanie niespójnym.
Więzy integralności encji określają, że żadna wartość atrybutu (atrybutów) pełniącego rolę klucza głównego nie może
być pusta.
Ograniczenia klucza oraz więzy integralności encji są określane osobno dla poszczególnych relacji.
15
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Wykłady z przedmiotu Podstawy baz danych – Podstawy teorii baz danych. Model relacyjny – dr hab. prof. UŁ. Tadeusz Antczak
Więzy integralności odwołań są definiowane pomiędzy parami relacji – wykorzystuje się je do utrzymania spójności
powiązanych ze sobą krotek, które należą do tych dwóch relacji.
Można powiedzieć, że więzy integralności odwołań oznaczają, iż krotka w jednej relacji, która odwołuje się do innej
relacji, zawsze (w każdym stanie bazy danych) musi wskazywać na istniejącą krotkę tamtej relacji.
Inaczej można powiedzieć, iż jeżeli w relacji istnieje klucz obcy, to jego wartość albo musi być równa wartości klucza
głównego pewnej krotki relacji wskazywanej, albo klucz obcy musi mieć wartości puste dla wszystkich atrybutów.
Więzy ogólne – są to dodatkowe warunki poprawności danych określane przez użytkowników lub administratorów
bazy danych.
Wady relacyjnego modelu danych
 w procesie modelowania tracimy informację o tym, że w świecie rzeczywistym istnieją dwa identyczne obiekty.
Jest to konsekwencją jednej z głównych zasad relacyjnego modelu baz danych, która mówi, iż w relacji nie mogą
wystąpić dwie takie same krotki. A zatem przy ustalonym zestawie atrybutów nie jest możliwe wpisanie dwóch
rekordów o tej samej wartości. Rozwiązaniem tego problemu jest konieczność zwiększenia liczby atrybutów.
 „sztuczny” język opisu rzeczywistości – są nim dwuwymiarowe tabelki
 trudności w przechowywaniu informacji zmiennych w czasie,
 trudności w przechowywaniu informacji niepełnej,
 problemy z przechowywaniem „dużych” obiektów
16
Opracowanie: dr hab. prof. nadzw. Tadeusz Antczak
Download