Przede wszystkim bardzo polecam artykuł naukowy, w którym dr Edgar Frank Codd opublikował ogólne ramy relacji dla ogółu społeczeństwa w 1970 r., Tj . Relacyjny model danych dla dużych banków danych . Tam w sekcji 1.1 „Wprowadzenie” sam dr Codd stwierdza, że:
Artykuł dotyczy zastosowania teorii relacji elementarnych w systemach zapewniających wspólny dostęp do dużych banków sformatowanych danych.
© Association for Computing Machinery. Komunikat ACM , tom 13, wydanie 6 (str. 377-387), czerwiec 1970 r.
Tak więc relacja terminów i (stąd) relacja pochodzą z tła matematycznego. Dr Codd - który, oprócz swoich kwalifikacji akademickich i badawczych, miał około 20 lat doświadczenia z pierwszej ręki w obliczeniach i przetwarzaniu informacji - przewidział ogromne zalety zastosowania tej relacji (oczywiście abstrakcyjnej konstrukcji) w dziedzinie administracji danymi .
Nie jestem matematykiem, ale w gruncie rzeczy relacja jest powiązaniem między zbiorami , zbiór jest zbiorem elementów ( ten zasób zewnętrzny podaje definicję relacji matematycznej, która może pomóc w zrozumieniu go z innej perspektywy). Podczas pracy z pomocą systemu zarządzania bazą danych SQL (zwięzłość DBMS) dobrze znanym przybliżeniem relacji jest tabela , w którym to przypadku zachodzi skojarzenie między typami jej kolumn . Oczywiście na platformach SQL, które oferują obsługę DOMAIN (np. Firebird i PostgreSQL ), powiązanie występuje międzydomeny ustalone dla kolumn danej tabeli; znaczące szczegóły znajdują się w poniższych sekcjach.
W związku z tym ponownie przytoczę dr Codda, który w sekcji 1.3 „Relacyjny pogląd na dane” twierdzi, że:
Termin relacja jest tu używany w jego przyjętym sensie matematycznym. Biorąc pod uwagę zbiory S 1 , S 2 , ⋯, S n (niekoniecznie różne), R jest relacją na tych n zbiorach, jeśli jest to zbiór n- pary, z których każdy ma swój pierwszy element z S 1 , jego drugi element od S 2 i tak dalej. 1 Będziemy odnosić się do S j jako j -tego domenie z R . Jak zdefiniowano powyżej, mówi się, że R ma stopień n. Relacje stopnia 1 są często nazywane jednymi , stopień 2 dwójkowy , stopień 3 trójskładnikowy , a stopień n n-ary .
1 Bardziej zwięźle, R jest podzbiorem iloczynu kartezjańskiego S 1 × S 2 × S 3 ⋯ × S n .
© Association for Computing Machinery. Komunikat ACM , tom 13, wydanie 6 (str. 377-387), czerwiec 1970 r.
I zgadzam się z innymi odpowiedziami, ponieważ bardzo istotne jest zwrócenie uwagi, że dr Codd dokonał pewnych zmian w relacji matematycznej, aby uzyskać jak najwięcej z tego w zakresie zarządzania danymi, i są one wyjaśnione w artykule, o którym mowa wcześniej i w całej jego obszernej bibliografii .
Relacja i związek
Warto wspomnieć o tym, że w kontaktach z tymi tematami mogą pojawić się zamieszanie z powodu podobieństw dotyczących codziennych (niematematycznych, nietechnicznych) definicji terminów relacja i relacja - które nie są moim ojczystym językiem angielskim jest szczególnie zrozumiałe—.
Widok podmiot-relacja oraz model relacyjny
Innym czynnikiem, który moim zdaniem może również powodować zamieszanie (i jest ściśle związany z technicznymi konotacjami dwóch przywołanych powyżej terminów) jest to, że podczas uczenia się projektowania baz danych student lub praktyka jest zazwyczaj najpierw wprowadzany do metodologii zaproponowanej przez Dr Peter Pin-Shan Chen w widoku danych relacji między bytem (opublikowanym w 1976 r.), Który sugeruje dwa różne narzędzia (tj. Byt i relację ) do nakreślenia schematu pojęciowego , a następnie dopiero po zdefiniowaniu tego schematu jest stabilny, uczeń lub praktykujący jest zaznajomiony z relacyjnymi terminami i instrumentami (np. relacją ) podczas deklarowanialogiczny układ odpowiedniej bazy danych. W koncepcyjnym układzie odniesienia związek zawiera konotacje, które są znacznie bliższe codziennemu sensowi tego słowa.
Być może ta okoliczność dodatkowo zwiększa kwestię relacji i relacji - ale sekwencja najpierw zdefiniowania schematu pojęciowego, a następnie zadeklarowania odpowiedniego projektu logicznego jest oczywiście całkiem odpowiednia, co szczegółowo omówię w poniższych sekcjach—.
Odpowiedzi na każde z twoich pytań
Uważam, że uwzględnienie tych trzech pytań jest naprawdę istotne, ponieważ stanowią szerszy kontekst dla tego postu, więc nie należy ich pomijać. W ten sposób, oprócz wyłącznie adresowania dlaczego terminy relacja i relacyjne są wykorzystywane (co z pewnością jest bardzo znaczący i jest tytuł tego postu, ale to nie cały post), powiedział subquestions może pomóc w rozumienia bardziej zakresu relacja i model relacyjny , gdy ktoś jest zaangażowany w projekt zarządzania cały informacyjnym (dość istotne, ponieważ ta strona o administracji bazami danych), a zatem działa na różnych poziomach abstrakcji. W ten sposób podzielę się z wami poniższymi szczegółami.
Pytanie nr 1
Dlaczego na przykład Osoba jest uważana za „relację”? W języku angielskim relacja to rzeczownik opisujący, w jaki sposób powiązane są dwa podmioty. Nie odnosi się do samych bytów. W kontekście relacyjnych baz danych „relacja” odnosi się do samych podmiotów. Czemu?
Poziom koncepcyjny
W danym środowisku biznesowym Osoba może być uważana za typ jednostki w zależności od tego, jak ludzie, którzy tam pracują (eksperci biznesowi i projektanci baz danych) ją konceptualizują . I tak, w tym środowisku biznesowym mogą istnieć różne właściwości będące przedmiotem zainteresowania w odniesieniu do typu jednostki Osoba , np. Imię , Data urodzenia , Płeć itp.
Ponadto typ jednostki Osoba może posiadać określone typy relacji (lub powiązania lub połączenia ) ze sobą lub innymi typami jednostek; np. Osoba może być powiązana z typem jednostki o nazwie UserProfile , który z kolei może mieć własne właściwości, na przykład nazwę użytkownika i hasło .
Ale (a) typy jednostek, (b) ich odpowiednie właściwości, (c) typy relacji między typami jednostek oraz (d) relacje między samymi właściwościami są pojęciami „należącymi” do konkretnego środowiska biznesowego, w którym się znajdują uznane za istotne. Są to urządzenia używane przez projektantów baz danych, którzy ściśle współpracują z ekspertami biznesowymi w celu zdefiniowania kontekstowego schematu koncepcyjnego na etapie projektowania.
Tak więc, na poziomie koncepcyjnym, zasadniczo pracujemy ze strukturą pomysłów, które powstają w segmencie zainteresowań świata rzeczywistego, tj. (1) prototypy rzeczy i (2) prototypy relacji między prototypami rzeczy , z którymi nie pracujemy (3) relacje - wykorzystanie tego ostatniego terminu w sensie relacyjnych ram danych -.
Poziom logiczny
Po tym, jak Osoba została precyzyjnie wyznaczona jako typ bytu na poziomie pojęciowym, a jeśli ktoś chce wdrożyć relacyjną bazę danych, która przekazuje znaczenie Osoby i wszystkie związane z nią pojęcia, to faktami dotyczącymi bytów tego typu można zarządzać na mocy relacji matematycznej na poziomie logicznym i skorzystaj z naukowych operacji, które można wykonać na tym abstrakcyjnym konstrukcie (tj. zdefiniować, ograniczyć i manipulować).
Tak, można nazwać określoną relację Osoby podczas definiowania logicznego układu bazy danych, ale to nie przekształca koncepcji Osoby w „prawdziwym świecie” w relację, podchodzi się do niej jako takiej ze względu na korzyści, które uzyskuje się przy zarządzaniu informacjami o tym, np. zastosowanie na nim operacji algebry relacyjnej w celu uzyskania nowych relacji (i dlatego uzyskuje się „nowe” informacje). Wymienione korzyści stają się bardziej widoczne, biorąc pod uwagę fakt, że byty określonego typu tworzą zestaw, a wartości pewnej właściwości również tworzą zestaw.
I tak, jak wspomniano w poprzednich akapitach i w innych odpowiedziach, jednym z najważniejszych aspektów relacji jest połączenie między jej domenami - które są zwykle używane do przedstawienia właściwości typów jednostek lub powiązań, które są częścią schemat koncepcyjny—. Powiedzmy na przykład, że zadeklarowaliśmy następującą (trójskładnikową) relację:
Salary (PersonNumber, EffectiveDate, Amount)
… I załóżmy, że w danym środowisku biznesowym krotka - która (i) oznacza konkretną jednostkę , tj. Instancję typu jednostki z obowiązującego schematu pojęciowego, i (ii) której odpowiednikiem SQL jest wiersz -
… Miałoby znaczenie
- „Wynagrodzenie wypłacone osobie wskazanej przez PersonNumber w
x
dniu wejścia w życie y
odpowiada kwocie z
” .
W związku z tym - aby opisać rzeczy w przybliżeniu - połączenie między tymi trzema domenami ma pierwszorzędne znaczenie, wszystkie są ze sobą powiązane (i tak, relacja jedności dotyczyłaby tylko jednej domeny). Związek między wszystkimi wartościami pewnej domeny jest również bardzo znaczący, ponieważ stanowią one zestaw dokładnego typu . Ponadto zawartość każdej krotki Salary
relacji musi pasować do struktury twierdzenia zilustrowanego powyżej.
Koncepcyjne szczebla relacje i logiczny poziomu stosunków
Jak wykazano, zajmowałem się teraz zarządzaniem bazami danych na dwóch różnych poziomach abstrakcji, mianowicie pojęciowym i logicznym - i istnieje jeszcze niższy poziom znany jako fizyczny , który w SQL DBMS zwykle obejmuje np. Indeksy, strony, zakresy, itp.-.
Tak więc, zgodnie z wcześniej wyjaśnionymi pojęciami, na poziomie logicznym pracuje się wyłącznie z (a) relacjami matematycznymi, gdzie (b) relacje lub powiązania pojęciowe są reprezentowane przez (c) wartości zawarte w krotkach takich relacji matematycznych, a wspomniane wartości są zwykle rozdzielane ograniczeniami OBCYMI KLUCZAMI, aby mogły dokładnie reprezentować odpowiednie relacje.
I tak, jednostki asocjacyjne , tj. Instancje typów relacji o stosunku liczności wiele do wielu (M: N), mogą być przekazywane za pomocą krotek pojedynczej relacji matematycznej - z odpowiednimi zadeklarowanymi odpowiednio ograniczeniami kierunek-.
Pytanie nr 2)
Rozumiem, że model relacyjny powstał po modelach hierarchicznych i sieciowych. Ale w tych modelach byty również mają ze sobą relacje. Dlaczego więc nazywać ten model modelem relacyjnym? Czy istnieje bardziej szczegółowe wyrażenie / termin? A może powinniśmy powiedzieć, że wszystkie trzy modele są modelami relacyjnymi, ale modele hierarchiczne i sieciowe to określone typy modeli relacyjnych?
Sieciowe i hierarchiczne DBMS poprzedzały ich formalne wsparcie teoretyczne
Należy wskazać, że teoretyczne wsparcie wokół podejść hierarchicznych i sieciowych zostało w rzeczywistości utworzone w oparciu o wcześniej istniejące DBMS, w celu, między innymi, przetestowania i ustalenia poprawności (1) wspomnianych rodzajów oprogramowania i (2) powiązanych praktyk zarządzania danymi - z mojego punktu widzenia zjawisko do góry nogami -.
Niekompletny w porównaniu z ramami relacyjnymi
Biorąc to pod uwagę, chociaż istnieją hierarchiczne i sieciowe DBMS, które poprzedzają model relacyjny, a nawet gdy dr Codd określał każde z tych podejść jako „model”, żaden nie jest zdefiniowany jako taki w taki sam sposób, jak ramy relacyjne. Relacyjny paradygmat zapewnia konstrukty naukowe dla (i) definicji, (ii) ograniczenia i (iii) manipulacji danymi, a podejście hierarchiczne i sieciowe nie ma pełnego wsparcia teoretycznego, aby objąć wszystkie trzy rodzaje wcześniej wspomnianych konstrukcji.
Funkcje sieciowe i hierarchiczne
Jak już wspomniano, typy jednostek i relacji są urządzeniami na poziomie pojęciowym, nie należą one do podejść hierarchicznych ani sieciowych, z których każde oferuje określone mechanizmy reprezentujące wspomniane aspekty:
Paradygmat sieci obejmuje dwa urządzenia do reprezentacji danych, tj. Węzły i łuki (i ta cecha oczywiście implikuje dwa różne rodzaje operacji manipulacji danymi), które w przeciwieństwie do modelu relacyjnego, który (zgodnie z zasadą informacyjną ) wymaga tylko jednej konstrukcji (relacja) uwidacznia niepotrzebną złożoność związaną z pracą w sieci. Na przykład, biorąc pod uwagę, że korzysta on z dwóch instrumentów reprezentacyjnych, podejście sieciowe narzuca niepraktyczne stronniczość zapytań, które utrudniają manipulację danymi.
Ze swojej strony, widok hierarchiczny proponuje reprezentowanie danych za pomocą (fizycznych!) Plików złożonych z rekordów (które z kolei składają się z pól ) zorganizowanych w trójpodobny układ; tj. jeden rekord nadrzędny połączony prawdopodobnie z wieloma podrzędnymi odpowiednikami za pośrednictwem wskaźników , który tworzy fizyczną ścieżkę dostępu w odniesieniu do manipulacji danymi. Podejście to jest również niekorzystne, ponieważ stanowi zaplątanie między aspektami koncepcyjnymi i fizycznymi, więc zmiany w fizycznych układach pamięci wymagają reorganizacji struktur danych, co z kolei wymaga zmian w zakresie operacji manipulacji danymi.
Jak pokazano, widoki hierarchiczne i sieciowe narzucają swoje konstrukcje na dane, które mają być zarządzane, podczas gdy model relacyjny proponuje eleganckie administrowanie danymi w ich naturalnej strukturze za pomocą zestawów powiązanych faktów (z których n kolejnych rodzajów zestawów nie przewiduje się faza projektowania, można wyprowadzić i tak dalej!).
Model relacyjny nie ma podmodeli
I, co dość ważne, ani widok hierarchiczny, ani widok sieci nie są konkretnymi typami modeli relacyjnych, są to po prostu inne paradygmaty, które ktoś może zastosować do (a) budowania DBMS i (b) tworzenia baz danych, ale należy pamiętać, że hierarchiczny a podejścia sieciowe są uważane za przestarzałe od dziesięcioleci.
Pytanie nr 3)
Co jeśli mamy samodzielne jednostki, które nie są ze sobą powiązane. Powiedz: osoba, drzwi i drzewo. Czy termin „relacja (al)” nadal obowiązuje?
Tak, ma to zastosowanie, jeśli (1) zarządza się informacjami o tych typach bytów za pomocą dostosowanych relacji matematycznych i (2) wykonuje odpowiednie operacje relacyjne na poziomie logicznym w pewnej bazie danych administrowanej przy wsparciu danego relacyjnego DBMS .
Nie ma znaczenia, czy na poziomie pojęciowym wspomniane typy jednostek nie mają żadnych typów relacji z innymi typami jednostek (i warto zauważyć, że typ jednostki może mieć stosunek współczynnika liczebności jeden do zera, jeden lub wiele z samym sobą), a zatem nie przekazuje się ani nie wymusza żadnego związku między wartościami krotek rozważanych relacji.