Relacja (baza danych) - Relation (database)

Relacja, krotka i atrybut reprezentowane odpowiednio jako tabela, wiersz i kolumna.

W teorii relacyjnych baz danych relacja , zgodnie z oryginalną definicją EF Codd , jest zbiorem krotek (d 1 , d 2 , ..., d n ), gdzie każdy element d j jest członkiem D j , domeny danych . Pomimo oryginalnej definicji Codda i w przeciwieństwie do zwykłej definicji w matematyce, nie ma uporządkowania elementów krotek relacji. Zamiast tego każdy element jest określany jako wartość atrybutu . Atrybutem jest nazwa połączona z domeną (obecnie powszechnie określany jako rodzaj lub typ danych ). Wartość atrybutu jest nazwa atrybutu połączeniu z elementem dziedziny tego atrybutu, a krotka jest zestaw wartości atrybutów, w którym żadne dwa odrębne elementy mają taką samą nazwę. W związku z tym na niektórych kontach krotka jest opisana jako funkcja odwzorowująca nazwy na wartości.

Zbiór atrybutów, w którym nie ma dwóch odrębnych elementów o tej samej nazwie, nazywamy nagłówkiem . Z powyższych definicji wynika, że ​​każdej krotce odpowiada unikalny nagłówek, będący zbiorem nazw z krotki, sparowanych z domenami, z których pobierane są elementy domeny krotki. Zestaw krotek, które odpowiadają temu samemu nagłówkowi, nazywa się body . Relacja jest zatem nagłówkiem sparowanym z treścią, przy czym nagłówek relacji jest jednocześnie nagłówkiem każdej krotki w jej ciele. Liczba atrybutów składających się na nagłówek nazywana jest stopniem , który to termin odnosi się również do krotek i relacji. Termin n- krotka odnosi się do krotki stopnia n ( n ≥ 0).

EF Codd użył terminu „relacja” w jego matematycznym sensie relacji skończonej , zbioru krotek na pewnym zbiorze n zbiorów S 1S 2 , .... , S n . Tak więc, zgodnie z Założeniem Zamkniętego Świata , relacja n -arna jest interpretowana jako rozszerzenie pewnego n -adycznego predykatu : wszystkie i tylko te n -krotki, których wartości, podstawione w predykacie za odpowiednie zmienne wolne, dają twierdzenia, które zawierają prawda, pojawiają się w relacji.

Termin schemat relacji odnosi się do nagłówka połączonego z zestawem ograniczeń zdefiniowanych w ramach tego nagłówka. Relacja może być zatem postrzegana jako instancja schematu relacji, jeśli ma nagłówek tego schematu i spełnia obowiązujące ograniczenia.

Czasami przyjmuje się, że schemat relacji zawiera nazwę. Definicję relacyjnej bazy danych ( schemat bazy danych , czasami określany jako schemat relacyjny) można zatem traktować jako zbiór nazwanych schematów relacji .

W implementacjach domena każdego atrybutu jest de facto typem danych, a nazwany schemat relacji jest de facto zmienną relacyjną ( w skrócie relvar ).

W SQL , języku baz danych dla relacyjnych baz danych, relacje są reprezentowane przez tabele , gdzie każdy wiersz tabeli reprezentuje pojedynczą krotkę, a wartości każdego atrybutu tworzą kolumnę.

Przykłady

Poniżej przykład relacji posiadającej trzy nazwane atrybuty: 'ID' z domeny liczb całkowitych oraz 'Nazwa' i 'Adres' z domeny łańcuchów :

Identyfikator (liczba całkowita) Nazwa (ciąg) Adres (ciąg)
102 Yonezawa Akinori Naha, Okinawa
202 Nilay Patel Sendai, Miyagi
104 Murata Makoto Kumamoto, Kumamoto
152 Matsumoto Yukihiro Okinawa, Okinawa

Predykatem dla tej relacji, używającym nazw atrybutów do oznaczenia wolnych zmiennych, może być „ Identyfikator numeru pracownika jest znany jako Imię i mieszka pod adresem ”. Badanie relacji mówi nam, że istnieją tylko cztery krotki, dla których orzeczenie jest prawdziwe. Na przykład pracownik 102 jest znany tylko pod tym imieniem Yonezawa Akinori i nie mieszka nigdzie indziej niż w Naha na Okinawie. Poza wymienionymi czterema pracownikami nie ma innego pracownika, który posiadałby jednocześnie nazwisko i adres.

Zgodnie z definicją ciała , krotki ciała nie pojawiają się w określonej kolejności - nie można powiedzieć „Krótka 'Murata Makoto' znajduje się nad krotką 'Matsumoto Yukihiro'”, ani nie można powiedzieć „Krótka ' Yonezawa Akinori jest pierwszą krotką." Podobny komentarz dotyczy wierszy tabeli SQL.

Zgodnie z definicją nagłówka , atrybuty elementu również nie pojawiają się w określonej kolejności, podobnie jak elementy krotki. Podobny komentarz nie dotyczy tutaj SQL, który definiuje kolejność kolumn tabeli.

Zmienne relacji

Relacyjna baza danych składa się z nazwanych zmiennych relacyjnych (zmiennych relacyjnych) w celu aktualizacji bazy danych w odpowiedzi na zmiany w świecie rzeczywistym. Aktualizacja do pojedynczej zmiennej relacyjnej powoduje zastąpienie treści relacji przypisanej do tej zmiennej innym zestawem krotek. Zmienne relacyjne są podzielone na dwie klasy: zmienne relacyjne bazowe i zmienne relacyjne pochodne , te ostatnie znane również jako zmienne relacyjne wirtualne, ale zwykle określane jako widok krótkoterminowy .

Zmienna podstawa związek jest zmienną związek, który nie pochodzi od innych zmiennych zależności. W SQL termin tabela podstawowa oznacza w przybliżeniu bazową zmienną relacyjną.

Widok może być zdefiniowany przez wyrażenie używające operatorów algebry relacyjnej lub rachunku relacyjnego . Takie wyrażenie operuje na jednej lub kilku relacjach i po ocenie daje inną relację. Wynik jest czasami określany jako relacja "pochodna", gdy operandy są relacjami przypisanymi do zmiennych bazy danych. Widok jest definiowany przez nadanie takiemu wyrażeniu nazwy, tak aby nazwa mogła być później użyta jako nazwa zmiennej. (Zauważ, że wyrażenie musi wtedy wymieniać co najmniej jedną zmienną relacyjną bazową).

Korzystając z języka definicji danych (DDL), jest w stanie zdefiniować podstawowe zmienne relacji. W SQL CREATE TABLEskładnia służy do definiowania tabel bazowych. Oto przykład.

CREATE TABLE List_of_people (
 ID INTEGER,
 Name CHAR(40),
 Address CHAR(200),
 PRIMARY KEY (ID)
)

Język definicji danych (DDL) jest również używany do definiowania pochodnych zmiennych relacji. W SQL CREATE VIEWskładnia służy do definiowania pochodnej zmiennej relacyjnej. Oto przykład.

CREATE VIEW List_of_Okinawa_people AS (
 SELECT ID, Name, Address
  FROM List_of_people
  WHERE Address LIKE '%, Okinawa'
)

Zobacz też

Bibliografia