2024 SCHEME
[Link] THE QR CODES
join our WhatsApp group get into our website
For WhatsApp group website for more materials
CLICK THE LOGO TO JOIN
OUR TELEGRAM CHANNEL
for notes and discussion and updates
OUR WHATSAPP GROUP
for note updates and notifications
OUR WEBSITE
get in and download all 2024 materials
CS208 Principles of Database Design Module II MESCE Kuttipuram
Contents:
Relational Model: (8 Hours)
Relational Model Concepts: Domains, Attributes, Tuples and Relations, Relational Model Constraints and
Relational Database Schemas.
Transformation of ER diagram to Relational Schema.
Relational Algebra Operations: SELECT, PROJECT, RENAME, SetTheoretic Operations, JOIN and DIVISION.
Relational Model:
Relational Model Concepts:
The relational model represents the database as a collection of relations. A relation is thought
of as a table of values, each row in the table represents a collection of related data values.
Structure of Relational Databases: Represents data as a collection of relations.
Row of the Table or Tuple represents a collection of related data values.
Column represents attribute name.
Degree of a relation is the Number of attributes of its relation schema.
Cardinality is total number of values in domain
Domain D is a set of atomic values. By atomic means that each value in the domain is
indivisible as far as the relational model is concerned. Some examples of domains follow:
Social_security_numbers: The set of valid 9-digit social security numbers.
Names: The set of names of persons.
A data type or format is also specified for each domain. The data type for Employee_ages is an
integer number between 15 and 80. A domain is thus given a name, data type, and format.
A relation schema R, denoted by R(A1, A2, . . ., An), is made up of a relation name R and a
list of attributes A1, A2, . . ., An. Each attribute Ai is the name of a role played by some
domain D in the relation schema R. D is called the domain of Ai and is denoted by dom(Ai). A
relation schema is used to describe a relation; R is called the name of this relation. The degree
of a relation is the number of attributes n of its relation schema.
Relational Model Constraint:
Domain constraints specify that the value of each attribute A must be an atomic value from
the domain dom(A). It includes Numeric, Characters, Booleans, Fixed-length, strings,
Variable-length strings, Date, time.
Key Constraints: A Key is a single attribute or combination of two or more attribute of an
entity set that is used to identify one or more instances of the set.
K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible
relation r(R). A superkey SK specifies a uniqueness constraint that no two distinct tuples in a
state r of R can have the same value for SK. Every relation has at least one default superkey—
the set of all its attributes.
The attribute set {SSN} is a key of EMPLOYEE because no two EMPLOYEE tuples can have
the same value for SSN. Any set of attributes that includes SSN—for example, {SSN, Name,
Address}—is a superkey.
Department of Information Technology 1 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
K is a candidate key if K is minimal. It is minimal superkey. A relation schema may have
more than one key and each of the keys is called a candidate key.
The superkey {SSN, Name, Address}is not a key of EMPLOYEE, because removing Name or
Address or both from the set still leaves us with a superkey.
Primary key: A candidate key chosen as the principal means of identifying tuples within a
relation. We use the convention that the attributes that form the primary key of a relation
schema are underlined. The remaining candidate keys are called Alternate Key.
Integrity Constraints:
Entity Integrity: If attribute A of relation R(r) is a prime attribute of R(r), then A
cannot accept null values.
Referential Integrity: Given two relation R and S, suppose R refers to the relation S
via a set of attributes that form the primary key of S and this set of attribute forms a
foreign key in R. Then the value of the foreign key in tuple in R must either be equal to
the primary key of a tuple of S or be entirely null.
For example: The attribute DNO of EMPLOYEE gives the department number for
which each employee works; hence, its value in every EMPLOYEE tuple must match
the DNUMBER value of some tuple in the DEPARTMENT relation.
Synthesizing ER Diagram to Relational Schema:
Step 1: Mapping of Regular Entity Types:
For each regular (strong) entity type E in the ER schema, create a relation R that
includes all the simple attributes of E.
Choose one of the key attributes of E as the primary key for R. If the chosen key of
E is composite, the set of simple attributes that form it will together form the primary
key of R.
Step 2: Mapping of Weak Entity Types
For each weak entity type W in the ER schema with owner entity type E, create a
relation R and include all simple attributes (or simple components of composite
attributes) of W as attributes of R.
In addition, include as foreign key attributes of R the primary key attribute(s) of the
relation(s) that correspond to the owner entity type(s).
The primary key of R is the combination of the primary key(s) of the owner(s) and
the partial key of the weak entity type W, if any.
Step 3: Mapping of Binary 1:1 Relation Types
For each binary 1:1 relationship type R in the ER schema, identify the relations S
and T that correspond to the entity types participating in R. There are three possible
approaches:
(1) Foreign Key approach: Choose one of the relations-S, say-and include as
foreign key in S as the primary key of T. It is better to choose an entity type with
total participation in R in the role of S.
(2) Merged relation option: An alternate mapping of a 1:1 relationship type is
possible by merging the two entity types and the relationship into a single relation.
This may be appropriate when both participations are total.
(3) Cross-reference or relationship relation option: The third alternative is to set
up a third relation R for the purpose of cross-referencing the primary keys of the two
relations S and T representing the entity types.
Department of Information Technology 2 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Step 4: Mapping of Binary 1: N Relationship Types.
For each regular binary 1: N relationship type R, identify the relation S that
represent the participating entity type at the N-side of the relationship type.
Include as foreign key in S the primary key of the relation T that represents the
other entity type participating in R.
Include any simple attributes of the 1: N relation type as attributes of S.
Step 5: Mapping of Binary M:N Relationship Types.
For each regular binary M:N relationship type R, create a new relation S to
represent R.
Include as foreign key attributes in S the primary keys of the relations that
represent the participating entity types; their combination will form the primary key of
S.
Also include any simple attributes of the M:N relationship type (or simple
components of composite attributes) as attributes of S.
Step 6: Mapping of Multivalued attributes.
For each multivalued attribute A, create a new relation R. This relation R will
include an attribute corresponding to A, plus the primary key attribute K-as a foreign
key in R-of the relation that represents the entity type of relationship type that has A
as an attribute.
The primary key of R is the combination of A and K. If the multivalued attribute is
composite, we include its simple components.
Step 7: Mapping of N-ary Relationship Types.
For each n-ary relationship type R, where n>2, create a new relationship S to
represent R.
Include as foreign key attributes in S the primary keys of the relations that
represent the participating entity types.
Also include any simple attributes of the n-ary relationship type (or simple
components of composite attributes) as attributes of S.
Case Study # 1
Synthesize ER diagram for the COMPANY to Relational schema, given
Figure 2.1: ER Diagram of Company database
Department of Information Technology 3 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Figure 2.2: Result of mapping Company ER schema into a relational schema
Relation Primary Key Foreign Key
Super_SSN,
EMPLOYEE SSN
Dno
DEPARTMENT Dnumber Mgr_ssn
DEPT_LOCATIONS { Dnumber, Dlocation } Dnumber
PROJECT { Pnumber, Plocation } Dnum
Essn,
WORKS_ON { Essn, Pno }
Pno
DEPENDENT { Essn, Dependent_name } Essn
Figure 2.3: Shows the Primary Key and Foreign Key of the different relation for the Company database
Relational Algebra:
Six basic operators
SELECT: The select operation selects tuples that satisfy given condition. The
SELECT is a unary operation. The result of the SELECT operation will be another
relation having the same attributes (same degree) as R. The number of tuples in the
resulting relation is always less than or equal to the number of tuples in R.
Syntax: σ<selectioncondition>(R)
Example: Select all employees who either working MKTG department and
make over $25000 per year, or work in PROJ department and makeover $30000.
σ(DEPT=’MKTG’AND SALARY>25000) OR (DEPT=’PROJ’AND SALARY>30000) (EMPLOYEE)
Department of Information Technology 4 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
PROJECT: The projection of a relation is defined as a projection of all its tuples
over some set of attributes. The project operation is used to retrieve specific attributes /
columns from a relation. The PROJECT operation is also a unary operation. The result
of the PROJECT operation will be another relation having only the attributes specified
in <attributelist> and in the same order as they appear in the list. Hence, its degree is
equal to the number of attributes in <attributelist>. If the attribute list includes only
non-key attributes of R, duplicates tuples are likely to occur and the PROJECT
operation removes any duplicate tuples. So, the number of tuples in the resulting
relation of PROJECT operation is always less than or equal to the number of tuples.
Syntax: Π<attributelist>(R)
Example: List each employee’s firstname, lastname and salary.
Π FNAME, LNAME, SALARY (EMPLOYEE)
UNION: This is a binary operation. The union operation results in a relation that
includes all tuples that are in either (or both) of the two relations. The relations on
which union operation is applied should be union compatible. Two relations are union
compatible if they have the same arity (degree or number of attributes) and the domains
of the corresponding attributes are identical. The UNION operation also removes the
duplicate tuples from the resulting relation.
Syntax: R=PUQ has tuples drawn from P & Q such that
R ={ t | t € P or t € Q } and max(|P|,|Q|)≤|R|≤|P|+|Q|.
Example: List the name & address of all students and faculty members.
Π FNAME, ADDRESS (STUDENT) U Π FNAME, ADDRESS (FACULTY)
INTERSECTION: ∩ This is a binary operation. The intersection operation results in a
relation that includes all tuples that are in both of the two relations. Ie. It selects
common tuples in two relations. The relations on which intersection operation is
applied should be union compatible. Two relations are union compatible if they have
the same arity (degree or number of attributes) and the domains of the corresponding
attributes are identical.
Syntax: R=P∩Q such that
R = { t | t € P and t € Q } and 0 ≤ |R |≤ min ( |P| ,|Q| )
Example: List the names and address of all customers who have both a
loan and an account
Π FNAME, ADDRESS (LOAN) ∩ Π FNAME, ADDRESS (ACCOUNT)
SET DIFFERENCE (or MINUS): – The SET DIFFERENCE operation results in a
relation that includes all tuples that are in the first relation, but not in the second
relation. The relations on which set difference operationis applied should be union
compatible.
Syntax: R = P - Q such that R = { t | t € P and t not € Q } and 0 ≤ |R| ≤ |P|
Example: List the names and address of all customers (accountholders) who
doesn’t have a loan.
Π FNAME, ADDRESS (ACCOUNT) – Π FNAME, ADDRESS (LOAN)
Department of Information Technology 5 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Figure 2.4: The set operations UNION, INTERSECTION, and MINUS
(a) Two union compatible relations. (b) STUDENT U INSTRUCTOR.
(c) STUDENT ∩ INSTRUCTOR. (d) STUDENT – INSTRUCTOR.
(e) INSTRUCTOR – STUDENT
CARTESIAN PRODUCT (or CROSS PRODUCT) : x The CARTESIAN
PRODUCT operation is used to obtain all possible combinations of tuples from two
relations. This is a binary operation. In general, the result of P(A1,A2,…..,An) X
Q(B1,B2,….,Bm) is a relation R with n+m attributes R(A1,A2,…..,An,B1,B2,….,Bm),
in that order. The degree of resulting relation is n+m. The resulting relation R has one
tuple for each combination of tuples –one from P and one from Q. So, the number of
tuples in R will be number of tuples in P multiplied by number of tuples in Q; ie. |P|*|Q|
Syntax: R=PXQ such that {t1 || t2 | t1 € P and t2 € Q}and |R| =| P| *| Q|
RENAME: The RENAME operation is used to rename either the relation name,or
the attribute names, or both.
Additional Operations
JOIN: The JOIN operation, denoted by , is used to combine related tuples from
two relations into single tuples. In general, the result of JOIN operation of two relations
P(A1,A2,…..,An) and Q(B1,B2,….,Bm) is a relation R with n + m attributes
R(A1,A2,…..,An,B1,B2,….,Bm), in that order. The join operation retrieves all tuples
from the Cartesian product of the two relations with a matching condition. The main
difference between Cartesian product and JOIN operation is that the JOIN retrieves
only combinations of tuples from two relations satisfying the join condition where as
Cartesian product retrieves all combinations of tuples.
Syntax: P <joincondition>Q
Example: Get the name of the manager of each department in the
organization. List the department name and first & last names of department manager.
DEPT_MGR<- DEPARTMENT MGRSSN=SSN EMPLOYEE
RESULT<- Π DNAME, FNAME, LNAME (DEPT_MGR)
Department of Information Technology 6 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
THETA JOIN: A general join condition is of the form
<condition> AND <condition> AND...AND <condition>
where each <condition> is of the form Ai θ Bj, Ai is an attribute of P, Bj is an attribute of Q, Ai
and Bj have the same domain, and θ (theta) is one of the comparison operators {=, <, ≤, >, ≥,
≠}. A JOIN operation with such a general join condition is called a THETA JOIN. Tuples
whose join attributes are NULL or for which the join condition is FALSE do not appear in the
result
EQUIJOIN: Join operations that involve join conditions with equality comparisons (=) only
are called EQUIJOINs. This is the most common JOIN operation. The result of EQUIJOINs
will have one or more pairs of attributes that have identical values in every tuple.
NATURALJOIN (*): As explained above, the resulting relation of EQUIJOINs will always
have one or more pairs of attributes with identical values. A new operation called
NATURALJOIN, denoted by *, is used to eliminate the duplicate superfluous attributes in an
EQUIJOIN condition. The standard definition of NATURALJOIN requires that the two join
attributes (or each pair of join attributes) have the same name in both relations. If this is not the
case, rename operation has to be applied first to convert the name of the join attribute of one
relation same as that of the join attribute in second relation.
Suppose we want to combine each PROJECT tuple with the DEPARTMENT tuple that
controls the project. In the following example, first we rename the Dnumber attribute of
DEPARTMENT to Dnum—so that it has the same name as the Dnum attribute in PROJECT—
and then we apply NATURAL JOIN
DEPT ← ρ(Dname, Dnum, Mgr_ssn, Mgr_start_date)(DEPARTMENT)
PROJ_DEPT ← PROJECT * DEPT
LEFTOUTERJOIN ( ): The LEFTOUTERJOIN is written as P Q where P and Q
are relations. The result of the leftouterjoin is the set of all combinations of tuples in P and Q
that have matching values on their common attribute, in addition to tuples in P that have no
matching tuples in Q. If no matching tuple is found in Q, then the attributes of Q in the join
result are filled or padded with NULL values
RIGHTOUTERJOIN ( ): The RIGHTOUTERJOIN is written as P Q where P and Q
are relations. The result of the rightouterjoin is the set of all combinations of tuples in P and Q
that have matching values on their common attribute, in addition to tuples in Q that have no
matching tuples in P. If no matching tuple is found in P, then the attributes of P in the join
result are filled or padded with NULL values
FULLOUTERJOIN ( ): The FULLOUTERJOIN in effect combines the results of the
left and right outer joins. The fullouterjoin is written as P Q where P and Q are relations.
The result of the fullouterjoin is the set of all combinations of tuples in P and Q that have
matching values on their common attribute, in addition to tuples in P that have no matching
tuples in Q and tuples in Q that have no matching tuples in P. It keeps all tuples in both the left
and the right relations when no matching tuples are found, padding them with NULL values as
needed
Department of Information Technology 7 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
CARTESIAN PRODUCT example : PROJECT_DEPARTMENT
Pname Pnumber Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
ProductY 1 Sugarland 5 Research 5 333445555 1988-05-22
ProductZ 2 Houston 5 Research 5 333445555 1988-05-22
Computerization 10 Stafford 4 Research 5 333445555 1988-05-22
Reorganization 20 Houston 4 Research 5 333445555 1988-05-22
Newbenefits 30 Stafford 1 Research 5 333445555 1988-05-22
ProductX 3 Bellaire 5 Administration 4 987654321 1995-01-01
ProductY 1 Sugarland 5 Administration 4 987654321 1995-01-01
ProductZ 2 Houston 5 Administration 4 987654321 1995-01-01
Computerization 10 Stafford 4 Administration 4 987654321 1995-01-01
Reorganization 20 Houston 4 Administration 4 987654321 1995-01-01
Newbenefits 30 Stafford 1 Administration 4 987654321 1995-01-01
ProductX 3 Bellaire 5 Headquarters 1 888665555 1981-06-19
ProductY 1 Sugarland 5 Headquarters 1 888665555 1981-06-19
ProductZ 2 Houston 5 Headquarters 1 888665555 1981-06-19
Computerization 10 Stafford 4 Headquarters 1 888665555 1981-06-19
Reorganization 20 Houston 4 Headquarters 1 888665555 1981-06-19
Newbenefits 30 Stafford 1 Headquarters 1 888665555 1981-06-19
Result PROJECT X DEPARTMENT
Department of Information Technology 8 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
JOIN example PROJECT_DEPARTMENT
Pname Pnumber Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
ProductY 1 Sugarland 5 Research 5 333445555 1988-05-22
ProductZ 2 Houston 5 Research 5 333445555 1988-05-22
Computerization 10 Stafford 4 Administration 4 987654321 1995-01-01
Reorganization 20 Houston 4 Administration 4 987654321 1995-01-01
Newbenefits 30 Stafford 1 Headquarters 1 888665555 1981-06-19
Result PROJECT Dnum= Dnumber DEPARTMENT
NATURALJOIN example PROJECT_DEPT
Pname Pnumber Plocation Dnum Dname Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 333445555 1988-05-22
ProductY 1 Sugarland 5 Research 333445555 1988-05-22
ProductZ 2 Houston 5 Research 333445555 1988-05-22
Computerization 10 Stafford 4 Administration 987654321 1995-01-01
Reorganization 20 Houston 4 Administration 987654321 1995-01-01
Newbenefits 30 Stafford 1 Headquarters 888665555 1981-06-19
Result PROJECT * Dnum= Dnumber DEPT
Figure 2.5: Shows the CARTESIAN PRODUCT, JOIN operation done on relation
PROJECT and DEPARTMENT and NATURALJOIN operation done on relation
PROJECT and DEPT
Department of Information Technology 9 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
PROJECT1 DEPARTMENT1
Pname Pnum Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
ProductY 1 Sugarland 3 Administration 4 987654321 1995-01-01
Computerization 10 Stafford 4 Headquarters 1 888665555 1981-06-19
Newbenefits 30 Stafford 1 HR 6 111115555 1982-08-20
LEFTOUTER JOIN example PROJECT1_DEPARTMENT1
Pname Pnumber Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
ProductY 1 Sugarland 3 NULL NULL NULL NULL
Computerization 10 Stafford 4 Administration 4 987654321 1995-01-01
Newbenefits 30 Stafford 1 Headquarters 1 888665555 1981-06-19
Result PROJECT1 Dnum= Dnumber DEPARTMENT1
RIGHTOUTER JOIN example PROJECT1_DEPARTMENT1
Pname Pnumber Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
Computerization 10 Stafford 4 Administration 4 987654321 1995-01-01
Newbenefits 30 Stafford 1 Headquarters 1 888665555 1981-06-19
NULL NULL NULL NULL HR 6 111115555 1982-08-20
Result PROJECT1 Dnum= Dnumber DEPARTMENT1
FULLOUTER JOIN example PROJECT1_DEPARTMENT1
Pname Pnumber Plocation Dnum Dname Dnumber Mgr_ssn Mgr_start_date
ProductX 3 Bellaire 5 Research 5 333445555 1988-05-22
ProductY 1 Sugarland 3 NULL NULL NULL NULL
Computerization 10 Stafford 4 Administration 4 987654321 1995-01-01
Newbenefits 30 Stafford 1 Headquarters 1 888665555 1981-06-19
NULL NULL NULL NULL HR 6 111115555 1982-08-20
Result PROJECT1 Dnum= Dnumber DEPARTMENT1
Figure 2.6: Shows the LEFTOUTER JOIN , RIGHTOUTER JOIN, FULLOUTER
JOIN operation done on relation PROJECT1 and DEPARTMENT1
Department of Information Technology 10 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
DIVISION (÷): The division is a binary operation. The DIVISION operation is useful for a
special kind of query that sometimes occurs in database applications. The result of DIVISION
operation will be a relation with attributes unique to P; that is attributes in P which are not in Q.
The tuples in the resulting relation of a DIVISION operation are those tuples in P ( excluding
the attributes of Q) where there are tuples in combination with every tuple in Q.
P Q ResultP ÷ Q
A
B
a1
b1
a2
b4
a3
A
B
a1
b1
a4
A B
a1 b1
a2 b1 A
a3 b1 a1
a4 b1 a2 B
a1 b2 a3 NULL
a3 b2 a4
a2 b3 a5
a3 b3
a4 b3
a1 b4 B
a2 b4 b1
A
a3 b4 b2
NULL
a5 b4 b3
b4
B
A b1
a1 b2
b4
Figure 2.7: Examples of DIVISION operation
Department of Information Technology 11 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Department of Information Technology 12 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Department of Information Technology 13 Prof Lino Abraham Varghese
Downloaded from [Link]
CS208 Principles of Database Design Module II MESCE Kuttipuram
Focused Question Bank
PART A
1. Illustrate how referential integrity constraint is represented using a foreign key.
2. Distinguish between super key, candidate key and primary key using a real convincing
example.
3. Show how the division operation can be implemented using the basic relation algebra
operations. Illustrate its application through a realistic example.
4. In a relationship of degree 2, how can we decide if an attribute of the relationship can
be moved to one of the entity sets?
5. Given the relations PROFESSOR(PID,PNAME, DEPT, SALARY) and
STUDENT(ROLLNO, NAME, CLASS, ADVISER) where ADVISER is a foreign key
to PROFESSOR, write one equivalent relational algebra expression of the following:
i. Π PNAME ( SALARY>30000 (PROFESSOR))
ii. Π SNAME(DEPT=CSE’(STUDENT⋈ PROFESSOR))
ADVISER=PID
PART B
1. EMPLOYEE(ENO, NAME, ADDRESS, DOB,AGE, SALARY, DNUM, SUPERENO)
DEPARTMENT(DNO, DNAME, DLOCATION, DPHONE, MGRENO)
PROJECT(PNO, PNAME, PLOCATION, PCOST, CDNO)
In the above relations DNUM is a foreign key that identifies the department to which an
employee belongs. MGRENO is a foreign key identifying the employee who manages
the department. CDNO is a foreign key identifying the department that controls the
project.
SUPERENO is a foreign key identifying the supervisor of each employee.
Write relational algebra expressions for the following queries:-
(a) Names of female employees whose salary is more than 20000.
(b) Salaries of employee from ‘Accounts’ department
(c) Names of employees along with his/her superviser’s name
(d) For each employee return name of the employee alog with his department name
and the names of projects in which he/she works.
Department of Information Technology 14 Prof Lino Abraham Varghese
Downloaded from [Link]
2024 SCHEME
[Link] THE QR CODES
join our WhatsApp group get into our website
For WhatsApp group website for more materials
CLICK THE LOGO TO JOIN
OUR TELEGRAM CHANNEL
for notes and discussion and updates
OUR WHATSAPP GROUP
for note updates and notifications
OUR WEBSITE
get in and download all 2024 materials