You are on page 1of 29

UNIT - II

 DATABASE DESIGN AND E-R MODEL

Entity-Relationship Model

1. Entity-Relationship (ER) Model is based on the notion of real-world entities and relationships
among them.

2. While formulating real-world scenario into the database model, the ER Model creates entity set,
relationship set, general attributes and constraints.

ER Model is best used for the conceptual design of a database. ER Model is based on −

• Entities and their attributes.

• Relationships among entities. These


concepts are explained below.

What is ER Modeling?

A graphical technique for understanding and organizing the data independent of the actual database
implementation
Component of ER Diagram:

1 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
1. Entity:

1. An entity may be any object, class, person or place. In the ER diagram, an entity can be
represented as rectangles.

2. Consider an organization as an example- manager, product, employee, department etc. can be taken
as an entity

a.
Weak Entity

1. An entity that depends on another entity called a weak entity.

2. The weak entity doesn't contain any key attribute of its own. The weak entity is represented by a double
rectangle.

2. Attribute

The attribute is used to describe the property of an entity. Eclipse is used to represent an attribute. For
example, id, age, contact number, name, etc. can be attributes of a student.

a. Key Attribute

The key attribute is used to represent the main characteristics of an entity. It represents a primary key.
The key attribute is represented by an ellipse with the text underlined.

b. Composite Attribute

An attribute that composed of many other attributes is known as a composite attribute. The
composite attribute is represented by an ellipse, and those ellipses are connected with an ellipse.

2 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
c. Multivalued Attribute d. Derived Attribute

An attribute can have more than one value. These attributes are known as a multivalued attribute. The
double oval is used to represent multivalued attribute.For example, a student can have more than one
phone number.

An attribute that can be derived from other attribute is known as a derived attribute. It can be
represented by a dashed ellipse.
For example, A person's age changes over time and can be derived from another attribute like Date of
birth.

MAPPING CONSTRAINTS (OR) RELATIONSHIP

The logical association among entities is called relationship. Relationships are mapped with entities in
various ways. Mapping cardinalities define the number of association between two entities.

Mapping cardinalities −
3 – Dr.Antony Paul Raj. A
Dept. of Computational Studies, School of Arts and Science, SMVEC
• one to one

• one to many

• many to one

• many to many

Cardinality defines the number of entities in one entity set, which can be associated with the number of
entities of other set via relationship set.

1. One-to-one − One entity from entity set A can be associated with at most one entity of entity set B
and vice versa.

2. One-to-many − One entity from entity set A can be associated with more than one entities of entity
set B however an entity from entity set B, can be associated with at most one entity.

3. Many-to-one − More than one entities from entity set A can be associated with at most one entity
of entity set B, however an entity from entity set B can be associated with more than one entity from entity
set A.

4 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
4. Many-to-many − One entity from A can be associated
with more than one entity from B and vice versa.

E-R DIAGRAM

ER-Diagram is a visual representation of data that describes how data is related to each other. Here are the
geometric shapes and their meaning in an E-R Diagram –

5 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
Sample E-R Diagrams:

Consider the entity-relationship diagram in Figure 2.8, which consists of two entity sets, customer and loan,
related through a binary relationship set borrower. The attributes associated with customer are customerid,
customer-name, customer-street, and customer-city. The attributes associated with loan are loannumber and
amount. In Figure 2.8, attributes of an entity set that are members of the primary key are underlined.

The relationship set borrower may be many-to-many, one-to-many, many-to-one, or one-to-one. To


distinguish among these types, we draw either a directed line ( →) or an undirected line (—) between the
relationship set and the entity set in question. • A directed line from the relationship set borrower to the
entity set loan specifies that borrower is either a one-to-one or many-to-one relationship set, from customer
to loan; borrower cannot be a many-to-many or a one-to-many relationship set from customer to loan.

6 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
Figure 2.8 E-R diagram corresponding to customers and loans.

An undirected line from the relationship set borrower to the entity set loan specifies that borrower is either
a many-to-many or one-to-many relationship set from customer to loan.

If the relationship set borrower were one-to-many, from customer to loan, then the line from borrower to
customer would be directed, with an arrow pointing to the customer entity set (Figure 2.9a). Similarly, if the
relationship set borrower were many-to-one from customer to loan, then the line from borrower to loan
would have an arrow pointing to the loan entity set (Figure 2.9b). Finally, if the relationship set borrower
were one-to-one, then both lines from borrower would have arrows:

Strong Entity and Weak Entity


7 – Dr.Antony Paul Raj. A
Dept. of Computational Studies, School of Arts and Science, SMVEC
In the above example the entity EMPLOYEE has an attribute E-id that can qualify as primary key therefore
it is a strong entity.

• The entity DEPENDENT is not possessing any attribute that can qualify as a primary key therefore it
is a weak entity

• As per the relational Database rules every entity should possess a primary key therefore primary
key for DEPENDENT entity was build using the primary key of EMPLOYEE entity.

ER DESIGN ISSUES (BCA)

In ER Diagram we use various designing shapes that represent a relationship, an entity, and its
attributes. However, users often mislead the concept of the elements and the design process of the
ER diagram. Thus, it leads to a complex structure of the ER diagram and certain issues that does not
meet the characteristics of the real-world enterprise model.

Here, we will discuss the basic design issues of an ER database schema in the following points:

1) Use of Entity Set vs Attributes

The use of an entity set or attribute depends on the structure of the real-world enterprise that is
being modelled and the semantics associated with its attributes. It leads to a mistake when the user
use the primary key of an entity set as an attribute of another entity set. Instead, he should use the
relationship to do so. Also, the primary key attributes are implicit in the relationship set, but we
designate it in the relationship sets.

2) Use of Entity Set vs. Relationship Sets

It is difficult to examine if an object can be best expressed by an entity set or relationship set. To
understand and determine the right use, the user need to designate a relationship set for describing
an action that occurs in-between the entities. If there is a requirement of representing the object as
a relationship set, then its better not to mix it with the entity set.
00:00/05:19

8 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
3) Use of Binary vs n-ary Relationship Sets

Generally, the relationships described in the databases are binary relationships. However, nonbinary
relationships can be represented by several binary relationships. For example, we can create and
represent a ternary relationship 'parent' that may relate to a child, his father, as well as his mother.
Such relationship can also be represented by two binary relationships i.e, mother and father, that
may relate to their child. Thus, it is possible to represent a non-binary relationship by a set of distinct
binary relationships.

4) Placing Relationship Attributes

The cardinality ratios can become an affective measure in the placement of the relationship
attributes. So, it is better to associate the attributes of one-to-one or one-to-many relationship sets
with any participating entity sets, instead of any relationship set. The decision of placing the specified
attribute as a relationship or entity attribute should possess the charactestics of the real world
enterprise that is being modelled.

For example, if there is an entity which can be determined by the combination of participating entity
sets, instead of determing it as a separate entity. Such type of attribute must be associated with the
many-to-many relationship sets. Thus, it requires the overall knowledge of each part that is involved
in a desgining and modelling an ER diagram. The basic requirement is to analyse the real-world
enterprise and the connectivity of one entity or attribute with other.

RELATION SCHEMA: (BCA)

The relation schema describes the column heads for the table. The schema specifies the relation‟s name,
the name of each field (column, attribute) and the „domain‟ of each field. A domain is referred to in a
relation schema by the domain name and has a set of associated values.

Example:

Student information in a university database to illustrate the parts of a relation schema. Students (Sid:
string, name: string, login: string, age: integer, gross: real)

This says that the field named „sid‟ has a domain named „string‟.The set of values associated with domain
„string‟ is the set of all character strings.

Relation Instance:

1. This is a table specifying the information.

2. An instance of a relation is a set of ‘tuples’, also called „records‟, in which each tuple has the same
number of fields as the relation schemas.

3. A relation instance can be thought of as a table in which each tuple is a row and all rows have the
same number of fields.

9 – Dr.Antony Paul Raj. A


Dept. of Computational Studies, School of Arts and Science, SMVEC
4. The relation instance is also called as „relation‟.Each relation is defined to be a set of unique tuples
or rows.

KEYS (BCA)
o Keys play an important role in the relational database.
o It is used to uniquely identify any record or row of data from the table. It is also used to establish and
identify relationships between tables.

For example, ID is used as a key in the Student table because it is unique for each student. In the
PERSON table, passport_number, license_number, SSN are keys since they are unique for each
person.

10 – Dr.Antony Paul Raj.


A
Dept. of Computational Studies, School of Arts and Science, SMVEC
Types of keys:

1. Primary key

o It is the first key used to identify one and only one instance of an entity uniquely. An entity can contain
multiple keys, as we saw in the PERSON table. The key which is most suitable from those lists becomes
a primary key.
o In the EMPLOYEE table, ID can be the primary key since it is unique for each employee. In the
EMPLOYEE table, we can even select License_Number and Passport_Number as primary keys since
they are also unique.

o For each entity, the primary key selection is based on requirements and developers.

2. Candidate key

o A candidate key is an attribute or set of attributes that can uniquely identify a tuple.
o Except for the primary key, the remaining attributes are considered a candidate key. The candidate
keys are as strong as the primary key.

For example: In the EMPLOYEE table, id is best suited for the primary key. The rest of the attributes,
like SSN, Passport_Number, License_Number, etc., are considered a candidate key.

11 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
3. Super Key

Super key is an attribute set that can uniquely identify a tuple. A super key is a superset of a candidate
key.

For example: In the above EMPLOYEE table, for(EMPLOEE_ID, EMPLOYEE_NAME), the name of two
employees can be the same, but their EMPLYEE_ID can't be the same. Hence, this combination can
also be a key.Java

The super key would be EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME), etc.

4. Foreign key

o Foreign keys are the column of the table used to point to the primary key of another table.

o Every employee works in a specific department in a company, and employee and department are two
different entities. So we can't store the department's information in the employee table. That's why
we link these two tables through the primary key of one table.
o We add the primary key of the DEPARTMENT table, Department_Id, as a new attribute in the
EMPLOYEE table.
o In the EMPLOYEE table, Department_Id is the foreign key, and both the tables are related.

12 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
5. Alternate key

There may be one or more attributes or a combination of attributes that uniquely identify each tuple
in a relation. These attributes or combinations of the attributes are called the candidate keys. One
key is chosen as the primary key from these candidate keys, and the remaining candidate key, if it
exists, is termed the alternate key. In other words, the total number of the alternate keys is the total
number of candidate keys minus the primary key. The alternate key may or may not exist. If there is
only one candidate key in a relation, it does not have an alternate key.

For example, employee relation has two attributes, Employee_Id and PAN_No, that act as candidate
keys. In this relation, Employee_Id is chosen as the primary key, so the other candidate key, PAN_No,
acts as the Alternate key.

6. Composite key

Whenever a primary key consists of more than one attribute, it is known as a composite key. This
key is also known as Concatenated Key.

13 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
For example, in employee relations, we assume that an employee may be assigned multiple roles,
and an employee may work on multiple projects simultaneously. So the primary key will be
composed of all three attributes, namely Emp_ID, Emp_role, and Proj_ID in combination. So these
attributes act as a composite key since the primary key comprises more than one attribute.

7. Artificial key

The key created using arbitrarily assigned data are known as artificial keys. These keys are created
when a primary key is large and complex and has no relationship with many other relations. The data
values of the artificial keys are usually numbered in a serial order.

For example, the primary key, which is composed of Emp_ID, Emp_role, and Proj_ID, is large in
employee relations. So it would be better to add a new virtual attribute to identify each tuple in the
relation uniquely.

GENERALIZATION (BCA)
o Generalization is like a bottom-up approach in which two or more entities of lower level combine to
form a higher level entity if they have some attributes in common.

o In generalization, an entity of a higher level can also combine with the entities of the lower level to
form a further higher level entity.
o Generalization is more like subclass and superclass system, but the only difference is the approach.
Generalization uses the bottom-up approach.
o In generalization, entities are combined to form a more generalized entity, i.e., subclasses are
combined to make a superclass.

For example, Faculty and Student entities can be generalized and create a higher level entity Person.

14 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
SPECIALIZATION (BCA)
o Specialization is a top-down approach, and it is opposite to Generalization. In specialization, one
higher level entity can be broken down into two lower level entities.

o Specialization is used to identify the subset of an entity set that shares some distinguishing
characteristics.

o Normally, the superclass is defined first, the subclass and its related attributes are defined next, and
relationship set are then added.

For example: In an Employee management system, EMPLOYEE entity can be specialized as TESTER
or DEVELOPER based on what role they play in the company.

AGGREGATION (BCA)

In aggregation, the relation between two entities is treated as a single entity. In aggregation,
relationship with its corresponding entities is aggregated into a higher level entity.

For example: Center entity offers the Course entity act as a single entity in the relationship which is
in a relationship with another entity visitor. In the real world, if a visitor visits a coaching center then
he will never enquiry about the Course only or just about the Center instead he will ask the enquiry
about both.

RELATIONSHIP OF HIGHER DEGREE (BCA)

The degree of relationship can be defined as the number of occurrences in one entity that is
associated with the number of occurrences in another entity.

There is the three degree of relationship:

1. One-to-one (1:1)

2. One-to-many (1:M)

15 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
3. Many-to-many (M:N)

1. One-to-one
o In a one-to-one relationship, one occurrence of an entity relates to only one occurrence in another
entity.

o A one-to-one relationship rarely exists in practice.

o For example: if an employee is allocated a company car then that car can only be driven by that
employee.

o Therefore, employee and company car have a one-to-one relationship.

2. One-to-many
o In a one-to-many relationship, one occurrence in an entity relates to many occurrences in another
entity.
o For example: An employee works in one department, but a department has many employees. o

Therefore, department and employee have a one-to-many relationship.

3. Many-to-many
o In a many-to-many relationship, many occurrences in an entity relate to many occurrences in another
entity.

o Same as a one-to-one relationship, the many-to-many relationship rarely exists in practice.

o For example: At the same time, an employee can work on several projects, and a project has a team
of many employees.

o Therefore, employee and project have a many-to-many relationship.

16 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
RELATIONAL MODEL CONCEPT (BCA)

Relational model can represent as a table with columns and rows. Each row is known as a tuple. Each
table of the column has a name or attribute.

Domain: It contains a set of atomic values that an attribute can take.

Attribute: It contains the name of a column in a particular table. Each attribute Ai must have a
domain, dom(Ai)

Relational instance: In the relational database system, the relational instance is represented by a
finite set of tuples. Relation instances do not have duplicate tuples.

Relational schema: A relational schema contains the name of the relation and name of all columns
or attributes.

Relational key: In the relational key, each row has one or more attributes. It can identify the row in
the relation uniquely.

RELATIONAL QUERY LANGUAGES

Relational query languages use relational algebra to break the user requests and instruct the DBMS to execute
the requests. It is the language by which user communicates with the database. These relational query languages
can be procedural or non-procedural.

17 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
PROCEDURAL QUERY LANGUAGE

A procedural query language will have set of queries instructing the DBMS to perform various transactions in
the sequence to meet the user request. For example, get_CGPA procedure will have various queries to get the
marks of student in each subject, calculate the total marks, and then decide the CGPA based on his total marks.

NON-PROCEDURAL QUERY LANGUAGE

Non-procedural queries will have single query on one or more tables to get result from the database. For example,
get the name and address of the student with particular ID will have single query on STUDENT table.

RELATIONAL ALGEBRA

• Relational algebra is a procedural query language, which takes instances of relations as input and yields
instances of relations as output. It uses operators to perform queries. An operator can be either unary or
binary. They accept relations as their input and yield relations as their output. Relational algebra is
performed recursively on a relation and intermediate results are also considered relations.

• Relational algebra is a widely used procedural query language. It collects instances of relations as input and
gives occurrences of relations as output. It uses various operation to perform this action.

• Relational algebra operations are performed recursively on a relation. The output of these operations is a
new relation, which might be formed from one or more input relations.

Basic Relational Algebra Operations

Unary Relational Operations

• SELECT (symbol: ς)

• PROJECT (symbol: π)

• RENAME (symbol: ρ)

Relational Algebra Operations From Set Theory

• UNION ( υ )

• INTERSECTION ( ∩ )

• DIFFERENCE ( - )

• CARTESIAN PRODUCT ( x )

18 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
Binary Relational Operations

• JOIN

• DIVISION

1. SELECT (σ)

• The SELECT operation is used for selecting a subset of the tuples according to a given selection condition.
Sigma(ς) Symbol denotes it. It is used as an expression to choose tuples which meet the selection condition.
Select operation selects tuples that satisfy a given predicate. ςp(r)

• ς - is the predicate

• r - stands for relation which is the name of the table

• p - is prepositional logic formula which may use connectors like: AND OR and NOT. These relational can use
as relational operators like =, ≠, ≥, , ≤.

ςsubject = "database"(Books)

• Output − Selects tuples from books where subject is 'database'. ςsubject = "database" and price =
"450"(Books)

• Output − Selects tuples from books where subject is 'database' and 'price' is 450. 2. PROJECTION(Π)

• The projection eliminates all attributes of the input relation but those mentioned in the projection list. The
projection method defines a relation that contains a vertical subset of Relation.

19 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
• This helps to extract the values of specified attributes to eliminates duplicate values. (pi) The symbol used
to choose attributes from a relation. This operation helps you to keep specific columns from a relation and
discards the other columns.

3. RENAME (Ρ)

• Rename (ρ) – This is a unary operator used to rename the tables and columns of a relation.
• When we perform self join operation, we have to differentiate two same tables. In such case rename
operator on tables comes into picture.

• When we join two or more tables and if those tables have same column names, then it is always better
to rename the columns to differentiate them. This occurs when we perform Cartesian product operation.

ρ R(E)

Where ρ is the rename operator, E is the existing relation name, and R is the new relation name.
ρ STUDENT (STD_TABLE) – Renames STD_TABLE table to STUDENT

Relational Algebra Operations from Set Theory

1. Union Operation:
o 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.
o It eliminates the duplicate tuples. It is denoted by .
Notation: R S

20 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
A union operation must hold the following condition: o

R and S must have the attribute of the same number. o

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
CUSTOMER_NAME LOAN_NO
Jones L-17
Smith L-23
Hayes L-15
Jackson L-14
Curry L-93
Smith L-11
Williams L-17
Input:

1. ∏ CUSTOMER_NAME (BORROW) ∏ CUSTOMER_NAME (DEPOSITOR)

Output:
CUSTOMER_NAME
Johnson

Smith
Hayes
Turner
Jones
Lindsay
Jackson
Curry
21 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
Williams
Mayes
2. Set Intersection:

o Suppose there are two tuples R and S. The set intersection operation contains all tuples that are in
both R & S.
o It is denoted by intersection ∩.

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
3. Set Difference:

o Suppose there are two tuples R and S. The set intersection operation contains all tuples that are in R
but not in S.
o It is denoted by intersection minus (-).

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
4. Cartesian product

o 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.
o It is denoted by X. Notation: E X D

Example:
22 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
EMPLOYEE
EMP_ID EMP_NAME EMP_DEPT
1 Smith A
2 Harry C
3 John B
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

23 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
JOIN OPERATIONS (BCA)

A Join operation combines related tuples from different relations, if and only if a given join condition is
satisfied. It is denoted by .

Example: EMPLOYEE RELATION

TYPES OF JOIN OPERATIONS

24 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
Computes the join and then adds tuples form one relation that does not match tuples in the other relation to
the result of the join.
Uses null values:
• null signifies that the value is unknown or does not exist
• All comparisons involving null are (roughly speaking) false by definition.
• We shall study precise meaning of comparisons with nulls later

25 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
An outer join is basically of three types: a.
Left outer join
b. Right outer join
c. Full outer join
a. Left outer join:
• Left outer join contains the set of tuples of all combinations in R and S that are equal on their common
attribute names.
• In the left outer join, tuples in R have no matching tuples in S.
• It is denoted by .
Example: Using the above EMPLOYEE table and FACT_WORKERS table

QUERY:EMPLOYEE FACT_WORKERS

26 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
QUERY:EMPLOYEE ⟗ FACT_WORKERS

27 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
QUERY:CUSTOMER ⋈ PRODUCT

INTEGRITY CONSTRAINTS (BCA)

1. Sql constraints are used to specify rules for the data in a table.

2. Integrity constraints are used to ensure accuracy and consistency of the data in a relational database. Data
integrity is handled in a relational database through the concept of referential integrity.

3. Constraints are used to limit the type of data that can go into a table.

4. This ensures the accuracy and reliability of the data in the table. if there is any violation between the
constraint and the data action, the action is aborted.

5. Constraints can be column level or table level. column level constraints apply to a column, and table level
constraints apply to the whole table.

6. The following constraints are commonly used in sql:

NOT NULL - ensures that a column cannot have a null value

UNIQUE - ensures that all values in a column are different

28 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC
PRIMARY KEY - a combination of a not null and unique. uniquely identifies each row in a table

FOREIGN KEY - uniquely identifies a row/record in another table

CHECK - ensures that all values in a column satisfies a specific condition

DEFAULT - sets a default value for a column when no value is specified

INDEX - used to create and retrieve data from the database very quickly

29 – Santhosh Kumar K
A Dept. of Computational Studies, School of Arts and Science,
SMVEC

You might also like