• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

Basic Operators in Relational Algebra

The Relational Model is a way of structuring data using relations, which are a collection of tuples that have the same attributes. Relational Algebra is a procedural query language that takes relations as input and returns relations as output. Here, we’ll explore the basic operators of Relational Algebra using below tables.

Table 1: STUDENT_SPORTS

ROLL_NOSPORTS
1Badminton
2Cricket
2Badminton
4Badminton

Table 2: EMPLOYEE

EMP_NONAMEADDRESSPHONEAGE
1RAMDELHI945512318
5NARESHHISAR978291822
6SWETARANCHI985261721
4SURESHDELHI915676818

Table 3: STUDENT

ROLL_NONAMEADDRESSPHONEAGE
1RAMDELHI945512318
2RAMESHGURGAON965243118
3SUJITROHTAK915625320
4SURESHDELHI915676818

1. Selection operator (σ)

Selection operator is used to selecting tuples from a relation based on some condition.

Syntax:

σ (Condition)(Relation Name)

σ (Condition)(Relation Name)

Extract students whose age is greater than 18 from STUDENT relation given in Table 3

σ (AGE>18)(STUDENT)

σ (AGE>18)(STUDENT)

Note: SELECT operation does not show any result, the projection operator must be called before the selection operator to generate or project the result. So, the correct syntax to generate the result is:

∏(σ(AGE>18) (STUDENT))

∏(σ(AGE>18) (STUDENT))

Result:

ROLL_NONAMEADDRESSPHONEAGE
3SUJITROHTAK915625320

2. Projection Operator (∏)

Projection operator is used to project particular columns from a relation.

Syntax:

∏(Column 1,Column 2….Column n)(Relation Name)

∏(Column 1,Column 2….Column n)(Relation Name)

Extract ROLL_NO and NAME from STUDENT relation given in Table 3

∏(ROLL_NO,NAME)(STUDENT)

∏(ROLL_NO,NAME)(STUDENT)

Result:

ROLL_NONAME
1RAM
2RAMESH
3SUJIT
4SURESH

Note: If the resultant relation after projection has duplicate rows, it will be removed. For Example ∏(ADDRESS)(STUDENT) will remove one duplicate row with the value DELHI and return three rows.

3. Cross Product(X)

Cross product is used to join two relations. For every row of Relation1, each row of Relation2 is concatenated. If Relation1 has m tuples and and Relation2 has n tuples, cross product of Relation1 and Relation2 will have m x n tuples.

Syntax:

Relation1 X Relation2

Relation1 X Relation2

To apply Cross Product on STUDENT relation given in Table 1 and STUDENT_SPORTS relation given in Table 2,

STUDENT X STUDENT_SPORTS

STUDENT X STUDENT_SPORTS

Result:

ROLL_NONAMEADDRESSPHONEAGEROLL_NOSPORTS
1RAMDELHI9455123181Badminton
1RAMDELHI9455123182Cricket
1RAMDELHI9455123182Badminton
1RAMDELHI9455123184Badminton
2RAMESHGURGAON9652431181Badminton
2RAMESHGURGAON9652431182Cricket
2RAMESHGURGAON9652431182Badminton
2RAMESHGURGAON9652431184Badminton
3SUJITROHTAK9156253201Badminton
3SUJITROHTAK9156253202Cricket
3SUJITROHTAK9156253202Badminton
3SUJITROHTAK9156253204Badminton
4SURESHDELHI9156768181Badminton
4SURESHDELHI9156768182Cricket
4SURESHDELHI9156768182Badminton
4SURESHDELHI9156768184Badminton

4. Union (U)

Union on two relations R1 and R2 can only be computed if R1 and R2 are union compatible (These two relations should have the same number of attributes and corresponding attributes in two relations have the same domain). Union operator when applied on two relations R1 and R2 will give a relation with tuples that are either in R1 or in R2. The tuples which are in both R1 and R2 will appear only once in the result relation.

Syntax:

Relation1 U Relation2

Relation1 U Relation2

Find the person who is either student or employees, we can use Union operators like:

STUDENT U EMPLOYEE

STUDENT U EMPLOYEE

RESULT:

ROLL_NONAMEADDRESSPHONEAGE
1RAMDELHI945512318
2RAMESHGURGAON965243118
3SUJITROHTAK915625320
4SURESHDELHI915676818
5NARESHHISAR978291822
6SWETARANCHI985261721

5. Minus (-) or Set Difference

Minus on two relations R1 and R2 can only be computed if R1 and R2 are union compatible. Minus operator when applied on two relations as R1-R2 will give a relation with tuples that are in R1 but not in R2. Syntax:

Relation1 - Relation2

Relation1 - Relation2

Find the person who is a student but not an employee, we can use minus operator like:

STUDENT - EMPLOYEE

STUDENT - EMPLOYEE

Result:

ROLL_NONAMEADDRESSPHONEAGE
2RAMESHGURGAON965243118
3SUJITROHTAK915625320

6. Rename(ρ)

Rename operator is used to rename a relation or its attributes for clarity or further operations.

Syntax:

ρ(new_relation_name, original_relation)

ρ(new_relation_name, original_relation)

To rename STUDENT relation to STUDENT1, we can use rename operator like:

ρ(STUDENT1, STUDENT)

ρ(STUDENT1, STUDENT)

If you want to create a relation STUDENT_NAMES with ROLL_NO and NAME from STUDENT, it can be done using rename operator as:

ρ(STUDENT_NAMES, ∏(ROLL_NO, NAME)(STUDENT))

ρ(STUDENT_NAMES, ∏(ROLL_NO, NAME)(STUDENT))

Extended Relational Algebra Operators

  • Intersection (∩)
  • Division (÷)
  • Join Operations (⋈)
  • Natural Join
  • Theta Join
  • Equi Join

These operators provide more functionality for complex queries in relational databases.