Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

Model relacyjny

Z Wikipedii, wolnej encyklopedii

Model relacyjny – model organizacji danych bazujący na matematycznejteorii mnogości, w szczególności na pojęciurelacji. Na modelu relacyjnym oparta jestrelacyjna baza danych (ang.Relational Database) –baza danych, w której dane są przedstawione w postaci relacyjnej.

W najprostszym ujęciu w modelu relacyjnym dane grupowane są w relacje, które reprezentowane są przez tabele. Relacje są pewnym zbioremrekordów o identycznejstrukturze wewnętrznie powiązanych za pomocą związków zachodzących pomiędzy danymi. Relacje zgrupowane są w tzw. schematy bazy danych. Relacją może być tabela zawierająca dane teleadresowe pracowników, zaś schemat może zawierać wszystkie dane dotyczące firmy. Takie podejście w porównaniu do innychmodeli danych ułatwia wprowadzanie zmian, zmniejsza możliwość pomyłek, ale dzieje się to kosztem wydajności.

Historia

[edytuj |edytuj kod]

Twórcą teorii relacyjnych baz danych jestEdgar Frank Codd. Postulaty te zostały opublikowane po raz pierwszy w1970 roku w pracyA Relational Model of Data for Large Shared Data Banks[1]. Praca ta opisuje podstawowe zależności jakie mogą występować pomiędzy danymi trwałymi, oraz wprowadza główne założenia dotyczące modelu relacyjnego dla danych wraz z propozycją formalnych operatorów przeszukiwania danych. W1972 roku, w pracy pt.Relational Completeness of Data Base Sublanguages Codd uszczegółowił opis modelu oraz przedstawił dwa modele formalne odpytywania (przeszukiwania) danych. Tu właśnie po raz pierwszy pojawiły się terminyalgebra relacji orazrachunek relacyjny[2]. Codd pokazał, że oba modele są równoważne.

W czasie kiedy Codd publikował swoje propozycje rozwijały się dwa inne modele danych:model sieciowy orazmodel hierarchiczny. Na rynku baz danych dominowały głównie hierarchiczne bazy danych (m.in. IMS/360). Lata 70. XX wieku przypadają na rozkwit zarówno modelu sieciowego, jak i relacyjnego. W1971 roku grupaCODASYL przygotowała standard dla modelu sieciowego, zaś w1973 roku firmaIBM przygotowałaSystem R będący pierwsząimplementacją zarówno modelu relacyjnego, jak i językaSEQUEL (później SQL). Z upływem czasu model relacyjny stawał się coraz bardziej popularny wśród osób zajmujących się badaniami nad przechowywaniem danych.

W roku1979 firmaRelational Software (później Oracle) wypuściła na rynek pierwszy komercyjny relacyjny system zarządzania bazą danych (RDBMSang.Relational Database Management Systems). Od tego momentu model relacyjny stał się dominującym podejściem do przechowywania trwałych danych zaś ilość badań i opracowań wokół tego tematu wzrosła lawinowo.

Jednym z kluczowych problemów rozwijającego się modelu relacyjnego było podejście do brakującej informacji (np. nieznany numer telefonu, brak numeru mieszkania itp.). Początkowo proponowano kilka specjalnych wartości, które użytkownik mógłby wykorzystać do zaznaczenia takich informacji. Jednak w ostateczności, w1979 roku, Codd wprowadził do modelu pojedynczą specjalną wartośćNULL. Wprowadzenie tej wartości wiązało się m.in. z rozszerzeniem logiki dwuwartościowej operatorów porównania do logiki trójwartościowej (na każde pytanie o równość można odpowiedzieć „Tak”, „Nie”, „Nieznane”)

W dzisiejszym czasie funkcjonuje wiele spojrzeń na model relacyjny. Dwa główne podejścia to podejście formalne – opis modelu poprzez reguły matematyczne można opisywać na wiele różnych sposobów – oraz podejście intuicyjne – spojrzenie na model od strony czysto użytkowej.

Podejście intuicyjne

[edytuj |edytuj kod]
Schemat modelu relacyjnego

W modelu relacyjnym każda relacja (prezentowana w postaci np. tabeli) posiada unikatową nazwę,nagłówek izawartość. Nagłówek relacji to zbiór atrybutów, gdzie atrybut jest parąnazwa_atrybutu:nazwa_typu, zawartość natomiast jest zbiorem krotek (reprezentowanych najczęściej w postaci wiersza w tabeli). W związku z tym, że nagłówek jestzbiorem atrybutów nie jest ważna ich kolejność. Atrybuty zazwyczaj utożsamiane są z kolumnami tabeli. Każda krotka (wiersz) wyznacza zależność pomiędzy danymi w poszczególnych komórkach (np. osoba o danym numerze PESEL posiada podane nazwisko i imię oraz adres)

Każda relacja (tabela) posiada tzw.klucz główny (ang.primary key)[3]. Klucz ten jest unikatowym identyfikatorem w relacji i może być kombinacją kilku kolumn, często jednak obejmuje jedną kolumnę (jeden atrybut). Klucz ma za zadanie jednoznacznie identyfikować każdą krotkę (wiersz) – wartości w wyznaczonych kolumnach są jako zestaw niepowtarzalne w danej tabeli.

Innym rodzajem klucza jest tzw.klucz obcy (ang.foreign key). Jest to zbiór atrybutów jednej tabeli (relacji) wskazujący wartościklucza kandydującego innej tabeli. Służy do wskazywania zależności pomiędzy danymi składowanymi w różnych tabelach. Klucze w modelu relacyjnym służą m.in. do sprawdzania spójności danych w bazie. Głównie dotyczy to kluczy obcych, na które nałożony jest wymóg, że w tabeli wskazywanej musi istnieć wartość klucza wskazującego.

Dodatkowym elementem modelu relacyjnego jest zbiór operacji służących do przeszukiwania i manipulacji danymi. Od strony formalnej takie zbiory operacji kojarzone są z tzw.algebrą relacji oraz zrachunkiem relacyjnym. Od strony praktycznej najbardziej popularnymjęzykiem zapytań dla modelu relacyjnego jest językSQL

Przedstawienie relacji w postaci tabeli jest jedynie pewną reprezentacją graficzną. Relację można również przedstawić w postaci zbioru punktów w przestrzeni n-wymiarowej, gdzie punkt reprezentuje krotkę w relacji składającej się z n atrybutów.

Podejście formalne

[edytuj |edytuj kod]

Cały model relacyjny jest oparty na matematycznym pojęciurelacji. W skrócierelacją n-członową (n{\displaystyle n}-arną) nazywamy dowolnypodzbióriloczynu kartezjańskiego pewnych zbiorów

rX1×X2××Xn.{\displaystyle r\subseteq X_{1}\times X_{2}\times \ldots \times X_{n}.}

W podejściu formalnymschematem R relacji nazywamy niepusty zbiór nazw atrybutów (w skrócieatrybutów)R={A1,A2,,An}.{\displaystyle R=\{A_{1},A_{2},\dots ,A_{n}\}.} Każdemu atrybutowiAi{\displaystyle A_{i}} przypisany jest zbiór wartościDom(A){\displaystyle Dom(A)} zwany dziedziną (domeną,typem danych) atrybutuA.{\displaystyle A.} Jest to nazwany i skończony zbiór wartości, jakie może przyjmować dany atrybut. Wartośćn{\displaystyle n} określana jest mianemstopnia relacji R bądźarnością relacji R.

Instancja schematu relacjiR{\displaystyle R} to relacja na zbiorze dziedzin atrybutówAi:{\displaystyle A_{i}{:}}

rDom(A1)×Dom(A2)××Dom(An).{\displaystyle r\subseteq Dom(A_{1})\times Dom(A_{2})\times \ldots \times Dom(A_{n}).}

Ponieważ każda relacjar{\displaystyle r} jest nierozłącznie związana ze swoim schematem relacjiR,{\displaystyle R,} często można spotkać oznaczenier(R){\displaystyle r(R)} czytane jako „relacjar{\displaystyle r} typuR{\displaystyle R}”. Może istnieć wiele relacji przyporządkowanych do danego schematu.

Krotką (n-tką) typuR{\displaystyle R} nazywamy uporządkowany ciąg wartościt=<v1,v2,,vn>,{\displaystyle t=<v_{1},v_{2},\dots ,v_{n}>,} taki że

tDom(A1)×Dom(A2)××Dom(An).{\displaystyle t\in Dom(A_{1})\times Dom(A_{2})\times \ldots \times Dom(A_{n}).}

Zatem relacjar{\displaystyle r} typuR{\displaystyle R} to nic innego jak skończony zbiór krotekk{\displaystyle k} typuR.{\displaystyle R.} W konsekwencji w modelu relacyjnym krotki w danej relacji nie mogą się powtarzać, oraz ich kolejność nie ma znaczenia.

Schematem bazy danych jest skończony zbiórR{\displaystyle \mathbb {R} } wszystkich schematów relacjiRj.{\displaystyle R_{j}.}Instancją schematu bazy (w skróciebazą danych)R{\displaystyle \mathbf {R} } jest zbiór wszystkich relacjirk(Rj).{\displaystyle r_{k}(R_{j}).}

Klucz kandydujący w relacjir(R){\displaystyle r(R)} jest podzbioremK{\displaystyle K} zbioru atrybutówR{\displaystyle R} jednoznacznie identyfikującym każdą krotkę wr.{\displaystyle r.} Dodatkową własnością tego klucza jest jego minimalność – żaden podzbiór zbioruK{\displaystyle K} nie jest unikatowy dla wszystkich krotek wr.{\displaystyle r.} Klucz kandydujący zawierający więcej niż jeden atrybut nazywa się kluczem złożonym, zaś zawierający dokładnie jeden atrybut – kluczem prostym. Dla każdej relacji musi zostać wybrany dokładnie jeden z kluczy kandydujących na tzw.klucz główny.

Dla danej relacjir1(R){\displaystyle r_{1}(R)} podzbiór atrybutówFK{\displaystyle FK} zbioruR{\displaystyle R} określany jest mianemklucza obcego jeżeli spełnia następujące warunki:

W modelu relacyjnym wyróżniona jest specjalna ustalona wartośćNULL{\displaystyle NULL} należąca do każdej dziedziny atrybutów. Służy ona do oznaczania brakującej (nieznanej, nieistniejącej) informacji.

Interpretacja modelu w logice pierwszego rzędu

[edytuj |edytuj kod]

Innym, nieco mniej powszechnym, podejściem jest traktowanie modelu relacyjnego jakomodelulogiki pierwszego rzędu.

NiechR{\displaystyle R} będzie schematem relacji o arnościn.{\displaystyle n.}Faktem nadR{\displaystyle R} nazywamy wyrażenieR(a1,a2,,an),{\displaystyle R(a_{1},a_{2},\dots ,a_{n}),} gdzieaiDom(Ai).{\displaystyle a_{i}\in Dom(A_{i}).} Relacjąr{\displaystyle r} (instancją schematu) nadR{\displaystyle R} jest skończony zbiórfaktów nadR.{\displaystyle R.}

Dla danego schematu bazyR,{\displaystyle \mathbb {R} ,} instancją bazyR{\displaystyle \mathbf {R} } jest skończony zbiór będącysumą wszystkich relacjirk{\displaystyle r_{k}} nadRj,{\displaystyle R_{j},} gdzieRjR.{\displaystyle R_{j}\in \mathbb {R} .}

Integralność

[edytuj |edytuj kod]

Opróczstruktury danych na model relacyjny składają się również integralność i manipulacja.

Integralność to ograniczenie nakładane na bazę danych przez model relacyjny. Dwie podstawowe reguły integralności to integralnośćencji (wartość klucza głównego nie może być wartościąNULL) oraz integralność odwołań (nie mogą istnieć niedopasowane wartości klucza obcego).

Ograniczenieredundancji danych dokonuje się w procesie przejścia do kolejnychpostaci normalnych.

Na elementy manipulacyjne modelu składają się:zbiór operatorów relacyjnych (zwykle reprezentowany przezalgebrę relacji bądźrachunek relacyjny) orazrelacyjny operator przypisania, pozwalający na przypisanie relacji wyniku powstałego z wyrażenia relacyjnego.

Algebra relacji

[edytuj |edytuj kod]
 Osobny artykuł:Algebra relacji.

Algebra relacji to zbiór operatorów, które służą do manipulacji relacjami. Rezultatem działania, jak również argumentami tych operatorów są relacje. Operatory te można podzielić na dwie grupy: operacje na zbiorach oraz operatory zaprojektowane dla modelu relacyjnego

Operacje na zbiorach:

Operacje dla konkretnego modelu:

  • Selekcja – rodzina operatorów parametryzowanych warunkiem logicznym. Jako argument przyjmuje relację, na wyjściu zwraca relację zawierającą tylko te krotki, dla których warunek logiczny był prawdziwy. Przykładowym operatorem selekcji jestσpensja>300(r).{\displaystyle \sigma _{pensja>300}(r).}
  • Projekcja (rzutowanie) – rodzina operatorów parametryzowanych ciągiem indeksów bądź ciągiem nazw atrybutów. Krotki wynikowej relacji powstają poprzezrzutowanie oryginalnych krotek na podany ciąg. Przykładowym operatorem projekcji jestπimie,nazwisko(r).{\displaystyle \pi _{imie,nazwisko}(r).}
  • Przemianowanie – rodzina operatorów parametryzowanych parą atrybutów (A, B), gdzie oba atrybuty mają tę samą dziedzinę. Operator ten zamienia nazwę atrybutu A na B w wynikowej relacji. Przykładowym operatorem może byćδZarobkiPensja(r).{\displaystyle \delta _{Zarobki\to Pensja}(r).}
  • Złączenie – może być zdefiniowane przy użyciu złożenia operatorów iloczynu kartezjańskiego, selekcji i projekcji. Ten operator przyjmuje jako argumenty dwie relacje r(X) i s(Y). W wyniku powstaje relacja v(X∪Y). Dla każdej pary krotek (po jednej z każdej wejściowej relacji), które mają te same wartości dla wspólnych atrybutów, powstaje krotka nowej relacji poprzez dołączenie do pierwszej krotki wartości drugiej krotki. Notacja przykładowa:
dane(<Pesel, Imie, Nazwisko>){\displaystyle \bowtie } oceny(<Pesel, Przedmiot, Ocena>) =dane_oceny(<Pesel, Imie, Nazwisko, Przedmiot, Ocena>)

Obecnie istnieje wiele spojrzeń na algebrę relacji. W niektórych definiowane są dodatkowe operatory, które można wyprowadzić przez złożenie operatorów wspomnianych wyżej. W innych rodziny operatorów selekcji, projekcji i przemianowania są w uproszczeniu traktowane jako pojedyncze operatory.

Rachunek relacyjny

[edytuj |edytuj kod]
 Osobny artykuł:Rachunek relacyjny.

Rachunek relacyjny został zaproponowany przez Codda jakodeklaratywny sposób wyszukiwania informacji, podczas gdy algebra relacji jest podejściem bardziejproceduralnym. Rachunek relacyjny jest oparty na logicznymrachunku predykatów (funkcji zdaniowych). Na rachunek relacyjny składa sięalfabet orazzbiór reguł tworzenia zapytań.

Alfabet

  • stałe atomowe (wartości proste): x, y, z,...
  • stałe indeksujące (numery indeksów): 1, 2, 3,...
  • zmienne krotkowe: k1, k2, k3,...
  • stałe atrybutowe (atrybuty): A1, A2, A3,...
  • symbole relacyjne (predykaty): R1, R2, R3,...
  • symbole funkcyjne: ∪,. (kropka)
  • operatory porównań (ozn. jako θ): =, ≠, <, ≤, >, ≥
  • symbole logiczne: ¬, ∨, ∧, ⇒, ∀, ∃
  • ograniczniki (symbole dodatkowe):, | {} ()

Reguły tworzenia wyrażeń – poniższe konstrukcje są poprawnymi wyrażeniami rachunku relacyjnego

  • Termy
    • termy atomowe: a ::= x | t.Ai
    • termy krotkowe: t ::= ki | t ∪ t | [Ai: x] (wartośćx typuAi)
  • Formuły: φ ::= R(t) | a θ a | (φ) | ¬φ | φ∨φ | φ∧φ | φ⇒φ | ∀v φ | ∃v φ (v jest zmienną wolną w φ)
  • Zapytania: {t | φ}, gdzie zbiór zmiennych występujących w t jest równy zbiorowi zmiennych wolnych w φ.

Przykład: Dla relacjiFilmy(Tytuł, Reżyser, Aktor) przykładowym zapytaniem może być:

W których filmach reżyserowanych przez Hitchcocka, on sam nie był aktorem:
{xt | ∃xa Filmy(xt, „Hitchcock”, xa) ∧ ¬ Filmy(xt, „Hitchcock”, „Hitchcock”)}.

Przedstawiony powyżej rachunek to tzw.relacyjny rachunek krotek Codda wprowadzony w 1972. Stał się on podstawą do zbudowania języka SQL. Oprócz rachunku krotek istnieje również wprowadzony późniejrelacyjny rachunek dziedzin będący wzorcem dla językaQBE. Wprowadzając rachunek relacyjny i algebrę relacji Codd pokazał, że są one wzajemnie równoważne[2].

Model relacyjny a SQL

[edytuj |edytuj kod]

Większość współczesnych relacyjnych baz danych korzysta z jakiejś wersji językaSQL pozwalającego wprowadzać zmiany w strukturze bazy danych, jak również zmiany danych w bazie i wybieranie informacji z bazy danych. Język ten opiera się na silniku bazy danych, który pozwala zadawać w języku SQL pewnego rodzaju pytania (kwerendy) i wyświetlaćdane, które spełniają warunki zapytania. Zapytania SQL mogą także wykonywać operacje wstawiania danych, usuwania danych i ich aktualizacji. Język SQL zapewnia również zarządzanie bazą danych. Informacja o samej bazie przechowywana jest w postaci relacji (tabel) wewnątrz bazy danych.

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. A Relational Model of Data for Large Shared Data Banks, E.F. Codd.
  2. abRelational Completeness of Data Base Sublanguages. cs.berkeley.edu. [zarchiwizowane ztego adresu (2011-09-12)]., E.F.Codd.
  3. Encyclopedia of Database Systems. Berlin: Springer US, 2009, s. 2372–2375.

Bibliografia

[edytuj |edytuj kod]
  • Encyclopedia of Database Systems. Berlin: Springer US, 2009.ISBN 978-0-387-49616-0.
  • Ramez A. Elmasri, Shamkant B. Navathe: Fundamentals of database systems. Redwood City, [etc.]: The Benjamin/Cummings Publishing Company, 1994.ISBN 0-8053-1748-1.
  • Serge Abiteboul, Richard Hull, Victor Vianu: Foundations of databases. Reading: Addison-Wesley, 1995.ISBN 0-201-53771-0.
  • E.F. Codd. A Relational Model of Data for Large Shared Data Banks. „Comun. ACM”. 13/6. s. 377–387.DOI:10.1145/357980.358007. 
  • E.F. Codd. Relational Completeness of Data Base Sublanguages. „IBM Research Report”, 1972. 
Źródło: „https://pl.wikipedia.org/w/index.php?title=Model_relacyjny&oldid=77061938
Kategorie:
Ukryte kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp