Relationele algebra is een procedurele zoektaal. Het biedt een stapsgewijs proces om het resultaat van de zoekopdracht te verkrijgen. Het gebruikt operators om zoekopdrachten uit te voeren.
Soorten relationele operaties
1. Selecteer Bediening:
- De selectiebewerking selecteert tupels die aan een bepaald predikaat voldoen.
- Het wordt aangegeven met sigma (σ).
Notation: σ p(r)
Waar:
P wordt gebruikt voor selectievoorspelling
R wordt gebruikt voor relatie
P wordt gebruikt als een propositionele logische formule die connectoren kan gebruiken zoals: AND OR en NOT. Deze relationele operatoren kunnen als relationele operatoren worden gebruikt, zoals =, ≠, ≧, , ≦.
Bijvoorbeeld: LENINGrelatie
BRANCH_NAME | LENING_NR | HOEVEELHEID |
---|---|---|
Centrum | L-17 | 1000 |
Redhout | L-23 | 2000 |
Perryrit | L-15 | 1500 |
Centrum | L-14 | 1500 |
Mianus | L-13 | 500 |
Rondheuvel | L-11 | 900 |
Perryrit | L-16 | 1300 |
Invoer:
σ BRANCH_NAME='perryride' (LOAN)
Uitgang:
wat maakt een pc snel
BRANCH_NAME | LENING_NR | HOEVEELHEID |
---|---|---|
Perryrit | L-15 | 1500 |
Perryrit | L-16 | 1300 |
2. Projectuitvoering:
- Deze bewerking toont de lijst met attributen die we in het resultaat willen laten verschijnen. De overige attributen worden uit de tabel verwijderd.
- Het wordt aangegeven met ∏.
Notation: ∏ A1, A2, An (r)
Waar
A1 , A2 , A3 wordt gebruikt als attribuutnaam van een relatie R .
Voorbeeld: KLANTRELATIE
NAAM | STRAAT | STAD |
---|---|---|
Jones | Voornaamst | Harrison |
Smit | noorden | Rogge |
Hooi | Voornaamst | Harrison |
Kerrie | noorden | Rogge |
Johnson | Ziel | Brooklyn |
Beken | Senator | Brooklyn |
Invoer:
∏ NAME, CITY (CUSTOMER)
Uitgang:
NAAM | STAD |
---|---|
Jones | Harrison |
Smit | Rogge |
Hooi | Harrison |
Kerrie | Rogge |
Johnson | Brooklyn |
Beken | Brooklyn |
3. Operatie van de Unie:
- Stel dat er twee tupels R en S zijn. De samenvoegingsoperatie bevat alle tupels die zich in R of S bevinden, of beide in R & S.
- Het elimineert de dubbele tupels. Het wordt aangegeven met ∪.
Notation: R ∪ S
Een vakbondsoperatie moet aan de volgende voorwaarde voldoen:
iteratie van de kaart in Java
- R en S moeten het attribuut van hetzelfde nummer hebben.
- Dubbele tupels worden automatisch geëlimineerd.
Voorbeeld:
SPOSITOR RELATIE
KLANTNAAM | ACCOUNT NUMMER |
---|---|
Johnson | A-101 |
Smit | A-121 |
Mayes | A-321 |
Turner | A-176 |
Johnson | A-273 |
Jones | A-472 |
Lindsay | A-284 |
LEEN RELATIE
KLANTNAAM | LENING_NR |
---|---|
Jones | L-17 |
Smit | L-23 |
Hayes | L-15 |
Jackson | L-14 |
Kerrie | L-93 |
Smit | L-11 |
Williams | L-17 |
Invoer:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
Uitgang:
KLANTNAAM |
---|
Johnson |
Smit |
Hayes |
Turner |
Jones |
Lindsay |
Jackson |
Kerrie |
Williams |
Mayes |
4. Kruispunt instellen:
- Stel dat er twee tupels R en S zijn. De bewerking voor het instellen van snijpunten bevat alle tupels die zich in zowel R als S bevinden.
- Het wordt aangegeven met snijpunt ∩.
Notation: R ∩ S
Voorbeeld: Met behulp van de bovenstaande DEPOSITOR-tabel en LEN-tabel
Invoer:
np std
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
Uitgang:
KLANTNAAM |
---|
Smit |
Jones |
5. Verschil instellen:
- Stel dat er twee tupels R en S zijn. De bewerking voor het instellen van snijpunten bevat alle tupels die zich in R maar niet in S bevinden.
- Het wordt aangegeven door het snijpunt min (-).
Notation: R - S
Voorbeeld: Met behulp van de bovenstaande DEPOSITOR-tabel en LEN-tabel
Invoer:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
Uitgang:
KLANTNAAM |
---|
Jackson |
Hayes |
Williams |
Kerrie |
6. Cartesisch product
- Het Cartesiaanse product wordt gebruikt om elke rij in de ene tabel te combineren met elke rij in de andere tabel. Het wordt ook wel een kruisproduct genoemd.
- Het wordt aangegeven met X.
Notation: E X D
Voorbeeld:
MEDEWERKER
EMP_ID | EMP_NAME | EMP_DEPT |
---|---|---|
1 | Smit | A |
2 | Harry | C |
3 | John | B |
AFDELING
DEPT_NO | DEPT_NAME |
---|---|
A | Marketing |
B | verkoop |
C | Legaal |
Invoer:
verborgen apps op dit apparaat
EMPLOYEE X DEPARTMENT
Uitgang:
EMP_ID | EMP_NAME | EMP_DEPT | DEPT_NO | DEPT_NAME |
---|---|---|---|---|
1 | Smit | A | A | Marketing |
1 | Smit | A | B | verkoop |
1 | Smit | A | C | Legaal |
2 | Harry | C | A | Marketing |
2 | Harry | C | B | verkoop |
2 | Harry | C | C | Legaal |
3 | John | B | A | Marketing |
3 | John | B | B | verkoop |
3 | John | B | C | Legaal |
7. Hernoeming:
De hernoemingsbewerking wordt gebruikt om de uitvoerrelatie te hernoemen. Het wordt aangegeven met rho (P).
Voorbeeld: We kunnen de hernoemingsoperator gebruiken om de STUDENT-relatie te hernoemen naar STUDENT1.
ρ(STUDENT1, STUDENT)