Skip to main content

Relational Algebra

Relational Algebra

Relational algebra is a procedural query language. It gives a step-by-step process to obtain the result of the query. It uses operators to perform queries.

Types of Relational Operation



1. Select Operation:
  • The select operation selects tuples that satisfy a given predicate. 
  • It is denoted by sigma (σ).
  1. Notation: σ p(r)

Where:

σ is used for selection prediction
r is used for relation
p is used as a propositional logic formula which may use connectors like: AND OR and NOT. These relational can use as relational operators like =, ≠, ≥, <, >, ≤.

For example: LOAN Relation

BRANCH_NAME

LOAN_NO

AMOUNT

Downtown

L-17

1000

Redwood

L-23

2000

Perryride

L-15

1500

Downtown

L-14

1500

Mianus

L-13

500

Roundhill

L-11

900

Perryride

L-16

1300



Input:
  1. σ BRANCH_NAME="perryride" (LOAN)
Output:

BRANCH_NAME

LOAN_NO

AMOUNT

Perryride

L-15

1500

Perryride

L-16

1300



2. Project Operation:
  • This operation shows the list of those attributes that we wish to appear in the result. Rest of the attributes are eliminated from the table.
  • It is denoted by ∏.
  1. Notation: ∏ A1, A2, An (r)
Where
A1, A2, A3 is used as an attribute name of relation r.

Example: CUSTOMER RELATION

NAME

STREET

CITY

Jones

Main

Harrison

Smith

North

Rye

Hays

Main

Harrison

Curry

North

Rye

Johnson

Alma

Brooklyn

Brooks

Senator

Brooklyn


Input:
  1. ∏ NAME, CITY (CUSTOMER)
Output:

NAME

CITY

Jones

Harrison

Smith

Rye

Hays

Harrison

Curry

Rye

Johnson

Brooklyn

Brooks

Brooklyn



3. Union Operation:
  • Suppose there are two tuples R and S. The union operation contains all the tuples that are either in R or S or both in R & S. 
  • It eliminates the duplicate tuples. It is denoted by ∪.
  1. Notation: R ∪ S

A union operation must hold the following condition:
  • R and S must have the attribute of the same number.
  • Duplicate tuples are eliminated automatically.

Example:

DEPOSITOR RELATION

CUSTOMER_NAME

ACCOUNT_NO

Johnson

A-101

Smith

A-121

Mayes

A-321

Turner

A-176

Johnson

A-273

Jones

A-472

Lindsay

A-284



BORROW RELATION

Input:
  1. ∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
Output:

CUSTOMER_NAME

Johnson

Smith

Hayes

Turner

Jones

Lindsay

Jackson

Curry

Williams

Mayes



4. Set Intersection:
  • Suppose there are two tuples R and S. The set intersection operation contains all tuples that are in both R & S.
  • It is denoted by intersection ∩.
  1. Notation: R ∩ S

Example: Using the above DEPOSITOR table and BORROW table

Input:
  1. ∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
Output:

CUSTOMER_NAME

Smith

Jones



5. Set Difference:
  • Suppose there are two tuples R and S. The set intersection operation contains all tuples that are in R but not in S.
  • It is denoted by intersection minus (-).
  1. Notation: R - S

Example: Using the above DEPOSITOR table and BORROW table

Input:
  1. ∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
Output:

CUSTOMER_NAME

Jackson

Hayes

Willians

Curry



6. Cartesian product
  • The Cartesian product is used to combine each row in one table with each row in the other table. It is also known as a cross product.
  • It is denoted by X.
  1. Notation: E X D

Example:

EMP_ID

EMP_NAME

EMP_DEPT

1

Smith

A

2

Harry

C

3

John

B



EMPLOYEE

DEPARTMENT

DEPT_NO

DEPT_NAME

A

Marketing

B

Sales

C

Legal



Input:
  1. EMPLOYEE X DEPARTMENT
Output:

EMP_ID

EMP_NAME

EMP_DEPT

DEPT_NO

DEPT_NAME

1

Smith

A

A

Marketing

1

Smith

A

B

Sales

1

Smith

A

C

Legal

2

Harry

C

A

Marketing

2

Harry

C

B

Sales

2

Harry

C

C

Legal

3

John

B

A

Marketing

3

John

B

B

Sales

3

John

B

C

Legal



7. Rename Operation:

The rename operation is used to rename the output relation. It is denoted by rho (ρ).

Example: We can use the rename operator to rename STUDENT relation to STUDENT1.

1.ρ(STUDENT1, STUDENT)

Comments

Popular posts from this blog

Languages in DBMS

Languages in DBMS Structured Query Language(SQL) as we all know is the database language by the use of which we can perform certain operations on the existing database and also we can use this language to create a database. SQL uses certain commands like Create, Drop, Insert, etc. to carry out the required tasks. These SQL commands are mainly categorized into five categories as: DDL – Data Definition Language DQL – Data Query Language DML – Data Manipulation Language DCL – Data Control Language TCL – Transaction Control Language Now, we will see all of these in detail. DDL (Data Definition Language): DDL or Data Definition Language actually consists of the SQL commands that can be used to define the database schema. It simply deals with descriptions of the database schema and is used to create and modify the structure of database objects in the database. DDL is a set of SQL commands used to create, modify, and delete database structures but not data. These commands are normally ...

Indexing in DBMS

Indexing in DBMS Indexing is used to optimize the performance of a database by minimizing the number of disk accesses required when a query is processed.  The index is a type of data structure. It is used to locate and access the data in a database table quickly. Index structure: Indexes can be created using some database columns. The first column of the database is the search key that contains a copy of the primary key or candidate key of the table. The values of the primary key are stored in sorted order so that the corresponding data can be accessed easily.  The second column of the database is the data reference. It contains a set of pointers holding the address of the disk block where the value of the particular key can be found. Indexing Methods Ordered indices The indices are usually sorted to make searching faster. The indices which are sorted are known as ordered indices. Example: Suppose we have an employee table with thousands of record and each of which is 10 byte...

SQL Injection

SQL Injection The SQL Injection is a code penetration technique that might cause loss to our database. It is one of the most practiced web hacking techniques to place malicious code in SQL statements, via webpage input. SQL injection can be used to manipulate the application's web server by malicious users. SQL injection generally occurs when we ask a user to input their username/userID. Instead of a name or ID, the user gives us an SQL statement that we will unknowingly run on our database. For Example - we create a SELECT statement by adding a variable "demoUserID" to select a string. The variable will be fetched from user input (getRequestString). demoUserI = getrequestString("UserId"); demoSQL = "SELECT * FROM users WHERE UserId =" +demoUserId; Types of SQL injection attacks SQL injections can do more harm other than passing the login algorithms. Some of the SQL injection attacks include: Updating, deleting, and inserting the data: An attack can mo...