Algebra relacyjna

Oczekuje się, że systemy relacyjnych baz danych będą wyposażone w język zapytań, który może pomóc użytkownikom w wykonywaniu zapytań dotyczących instancji bazy danych. Istnieją dwa rodzaje języków zapytań - algebra relacyjna i rachunek relacyjny.

Algebra relacyjna

Algebra relacyjna jest proceduralnym językiem zapytań, który przyjmuje instancje relacji jako dane wejściowe i dostarcza instancje relacji jako dane wyjściowe. Używa operatorów do wykonywania zapytań. Operator może być jednym z nichunary lub binary. Przyjmują relacje jako wkład i dają relacje jako wynik. Algebra relacyjna jest wykonywana rekurencyjnie na relacji, a wyniki pośrednie są również uważane za relacje.

Podstawowe operacje algebry relacyjnej są następujące:

  • Select
  • Project
  • Union
  • Ustaw inny
  • Iloczyn kartezjański
  • Rename

Omówimy wszystkie te operacje w kolejnych sekcjach.

Wybierz operację (σ)

Wybiera krotki, które spełniają zadany predykat z relacji.

Notation- σ p (r)

Gdzie σ oznacza predykat selekcji i roznacza relację. p jest formułą logiki przyimkowej, która może używać łączników, takich jakand, or, i not. Te terminy mogą używać operatorów relacyjnych, takich jak - =, ≠, ≥, <,>, ≤.

For example -

σsubject = "database"(Books)

Output - Wybiera krotki z książek, których tematem jest „baza danych”.

σsubject = "database" and price = "450"(Books)

Output - Wybiera krotki z książek, których tematem jest „baza danych”, a „cena” to 450.

σsubject = "database" and price = "450" or year > "2010"(Books)

Output - Wybiera krotki z książek, których tematem jest „baza danych”, a „cena” to 450, lub z książek wydanych po 2010 roku.

Działanie projektu (∏)

Projektuje kolumny, które spełniają dany predykat.

Notacja - ∏ A 1 , A 2 , A n (r)

Gdzie A 1 , A 2 , A n to nazwy atrybutów relacjir.

Zduplikowane wiersze są automatycznie eliminowane, ponieważ relacja jest zbiorem.

For example -

subject, author (Books)

Wybiera i projektuje kolumny nazwane jako temat i autor z relacji Książki.

Operacja Unii (∪)

Wykonuje binarny związek między dwiema podanymi relacjami i jest zdefiniowany jako -

r ∪ s = { t | t ∈ r or t ∈ s}

Notation - r U s

Gdzie r i s są albo relacjami bazy danych, albo zestawem wyników relacji (relacja tymczasowa).

Aby operacja unii była ważna, muszą spełniać następujące warunki:

  • r, i s musi mieć taką samą liczbę atrybutów.
  • Domeny atrybutów muszą być zgodne.
  • Zduplikowane krotki są automatycznie eliminowane.
author (Books) ∪ ∏ author (Articles)

Output - Wyświetla nazwiska autorów, którzy napisali książkę lub artykuł lub jedno i drugie.

Ustaw różnicę (-)

Wynikiem operacji na ustawieniach różnicy są krotki, które są obecne w jednej relacji, ale nie występują w drugiej.

Notation - r - s

Znajduje wszystkie krotki, które są obecne w r ale nie w s.

author (Books) − ∏ author (Articles)

Output - Zawiera nazwiska autorów, którzy napisali książki, ale nie artykuły.

Iloczyn kartezjański (Χ)

Łączy informacje o dwóch różnych relacjach w jedną.

Notation - r Χ s

Gdzie r i s są relacjami, a ich wynik będzie zdefiniowany jako -

r Χ s = {qt | q ∈ r it ∈ s}

σauthor = 'tutorialspoint'(Books Χ Articles)

Output - Daje relację, która pokazuje wszystkie książki i artykuły napisane przez tutorialspoint.

Zmiana nazwy operacji (ρ)

Rezultatem algebry relacyjnej są również relacje, ale bez nazwy. Operacja rename pozwala nam zmienić nazwę relacji wyjściowej. Operacja „rename” jest oznaczona małą grecką literąrho ρ .

Notation- ρ x (E)

Gdzie wynik wyrażenia E jest zapisany pod nazwą x.

Dodatkowe operacje to -

  • Ustaw przecięcie
  • Assignment
  • Połączenie naturalne

Rachunek relacyjny

W przeciwieństwie do algebry relacyjnej, rachunek relacyjny jest językiem zapytań nieproceduralnych, to znaczy mówi, co należy zrobić, ale nigdy nie wyjaśnia, jak to zrobić.

Rachunek relacyjny istnieje w dwóch formach -

Rachunek relacyjny krotki (TRC)

Filtrowanie zakresów zmiennych po krotkach

Notation- {T | Stan: schorzenie}

Zwraca wszystkie krotki T, które spełniają warunek.

For example -

{ T.name |  Author(T) AND T.article = 'database' }

Output - Zwraca krotki z 'imieniem' od autora, który napisał artykuł o 'bazie danych'.

TRC można określić ilościowo. Możemy użyć egzystencjalnych (∃) i uniwersalnych kwantyfikatorów (∀).

For example -

{ R| ∃T   ∈ Authors(T.article='database' AND R.name=T.name)}

Output - Powyższe zapytanie da taki sam wynik jak poprzednie.

Domain Relational Calculus (DRK)

W DRC zmienna filtrująca używa domeny atrybutów zamiast całych wartości krotek (jak to zrobiono w TRC, wspomniano powyżej).

Notation -

{a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n )}

Gdzie a1, a2 to atrybuty, a P oznacza formuły zbudowane na podstawie atrybutów wewnętrznych.

For example -

{< article, page, subject > | 
      
        ∈ TutorialsPoint ∧ subject = 'database'} 
      

Output - Poddaje artykuł, stronę i temat z relacji TutorialsPoint, gdzie tematem jest baza danych.

Podobnie jak TRC, DRC można również zapisać przy użyciu egzystencjalnych i uniwersalnych kwantyfikatorów. DRK obejmuje również operatorów relacyjnych.

Siła wyrażenia rachunku relacji krotek i rachunku relacji domeny jest równoważna algebrze relacyjnej.