Database Concepts and Management Overview
Database Concepts and Management Overview
(IV) _____ is the time of temporal data that record when a fact was recorded in a
database? Transaction time
(VI) If the database modifications occur while the transaction is still active, the
transaction is said to use the _____ modification technique? immediate
modification
(VII) What is view?
A view is a virtual table derived from one or more tables or view
(XII) Which forms are based on the concept of transitive functional dependency
_____? Third Normal Form (3NF) and Boyce-Codd Normal Form (BCNF) are based
on the concept of transitive functional dependency.
Group-B (Short Answer Type Question)
Answer any three of the following
2. What is a View ? View does not take any memory space. Justify. How do you
create an Insertable and Updatable view ?
A View is a virtual table in a database, defined by a SQL query. It displays data
from one or more base tables or other views without storing the data physically.
Justification: View Does Not Take Memory Space
A view does not occupy memory because it does not store data. Instead, it stores
only the SQL query definition. When you query the view, the database
dynamically executes the query on the underlying tables and retrieves the results.
GROUP – C
ANS ANY 3
(a) Why are certain functional dependencies called trivial functional dependencies
What is Functional Dependency?
A functional dependency occurs when one attribute uniquely determines another
attribute within a relation. It is a constraint that describes how attributes in a table
relate to each other. If attribute A functionally determines attribute B we write
this as the A→B.
Functional dependencies are used to mathematically express relations among
database entities and are very important to understanding advanced concepts in
Relational Database Systems.
Example:
roll_n
o name dept_name dept_building
42 abc CO A4
43 pqr IT A3
44 xyz CO A4
45 xyz IT A3
46 mno EC B2
47 jkl ME B2
From the above table we can conclude some valid functional dependencies:
roll_no → { name, dept_name, dept_building },→ Here, roll_no can
determine values of fields name, dept_name and dept_building, hence a
valid Functional dependency
roll_no → dept_name , Since, roll_no can determine whole set of {name,
dept_name, dept_building}, it can determine its subset dept_name also.
dept_name → dept_building , Dept_name can identify the dept_building
accurately, since departments with different dept_name will also have a
different dept_building
More valid functional dependencies: roll_no → name, {roll_no, name} ⇢
{dept_name, dept_building}, etc.
Here are some invalid functional dependencies:
name → dept_name Students with the same name can have different
dept_name, hence this is not a valid functional dependency.
dept_building → dept_name There can be multiple departments in the
same building. Example, in the above table departments ME and EC are in
the same building B2, hence dept_building → dept_name is an invalid
functional dependency.
More invalid functional dependencies: name → roll_no, {name,
dept_name} → roll_no, dept_building → roll_no, etc.
Armstrong’s axioms/properties of functional dependencies:
1. Reflexivity: If Y is a subset of X, then X→Y holds by reflexivity rule
Example, {roll_no, name} → name is valid.
2. Augmentation: If X → Y is a valid dependency, then XZ → YZ is also valid by
the augmentation rule.
Example, {roll_no, name} → dept_building is valid, hence {roll_no, name,
dept_name} → {dept_building, dept_name} is also valid.
3. Transitivity: If X → Y and Y → Z are both valid dependencies, then X→Z is
also valid by the Transitivity rule.
Example, roll_no → dept_name & dept_name → dept_building, then
roll_no → dept_building is also valid.
Types of Functional Dependencies in DBMS
1. Trivial functional dependency
2. Non-Trivial functional dependency
3. Multivalued functional dependency
4. Transitive functional dependency
1. Trivial Functional Dependency
In Trivial Functional Dependency, a dependent is always a subset of the
determinant. i.e. If X → Y and Y is the subset of X, then it is called trivial
functional dependency
Example:
42 abc 17
43 pqr 18
44 xyz 18
(b) Use Armstrong's axioms to prove the soundness of the union rule.
The proof of Soundness –
Set of functional dependencies that can be derived with logic from a given set of
functional dependencies (Fclosure) and the set of functional dependencies that can
be inferred from Armstrong’s Axioms (Farmstrong) are same. In terms of sets, if we
want to show equality, then we mention that one is a proper subset of the other.
Hence, we need to prove that,
In each step we would apply the rules of reflexivity, augmentation and transitivity.
(If we derive from Axioms which are only 3 in number, the repeated application of
them would also give similar results.)
Rule of Reflexivity –
This rule states that if E is a proper subset of G, then G implies E (G ⟶ E ). This
rule always results in correct Functional Dependencies because it is a trivial
functional dependency.
Rule of Augmentation –
This rule states that for G ⟶ E , if we add Z on both sides, then we would
get G Z ⟶ Z E , which would be a correct functional dependency.
If ta and tb have the same corresponding values in G and Z (GZ),
It would mean that they have same corresponding value for G,
which would mean that they have same corresponding value for E, since G implies
E,
it would also mean that they correspond to E and Z (EZ).
Rule of Transitivity –
This rule states that if G ⟶ E , E ⟶ Z then G determines Z (G ⟶ Z )
If ta and tb have the same corresponding values in G
which would mean that they have same corresponding value for E, since G implies
E holds,
it would also mean that they correspond to E, since E implies Z holds.
So, applying these 3 rules will always give rise to correct functional dependencies
(even if we apply them m number of times).
Hence proved.
(c) Compute the closure of the following set F of Ds for each relation schema
R = (A, B, C, D, E)
A -> BC
CD -> F
B -> D
E -> A
List the candidate key for R.
(a) Why is normalization necessary? Compare between BCNF and 3rd Normal
form.
The main reason for normalizing the relations is removing these anomalies.
Failure to eliminate anomalies leads to data redundancy and can cause data
integrity and other problems as the database grows. Normalization consists of a
series of guidelines that helps to guide you in creating a good database structure.
Data modification anomalies can be categorized into three types:
o Insertion Anomaly: Insertion Anomaly refers to when one cannot insert a
new tuple into a relationship due to lack of data.
o Deletion Anomaly: The delete anomaly refers to the situation where the
deletion of data results in the unintended loss of some other important
data.
o Updatation Anomaly: The update anomaly is when an update of a single
data value requires multiple rows of data to be updated.
It is comparatively more
It is less stronger than BCNF.
stronger than 3NF.
The redundancy is
The redundancy is high in 3NF.
comparatively low in BCNF.
Transaction statements
All transaction statements such
such as COMMIT,
as COMMIT and ROLLBACK are
Transaction ROLLBACK, and SAVEPOINT
allowed in procedures.
statements are not allowed in triggers.
Aggregate
Function Description Syntax
SELECT AVG(column_name)
Calculates the average value
AVG() FROM table_name;
SELECT COUNT(column_name)
Counts the number of rows
COUNT() FROM table_name
Scalar
function Description Syntax
Rounds a number to a
SELECT ROUND(column_name,
specified number of
decimals) FROM table_name;
ROUND() decimals
NOT NULL: This constraint tells that we cannot store a null value in a
column. That is, if a column is specified as NOT NULL then we will not be
able to store null in this particular column any more.
UNIQUE: This constraint when specified with a column, tells that all the
values in the column must be unique. That is, the values in any row of a
column must not be repeated.
PRIMARY KEY: A primary key is a field which can uniquely identify each row
in a table. And this constraint is used to specify a field in a table as primary
key.
FOREIGN KEY: A Foreign key is a field which can uniquely identify each row
in a another table. And this constraint is used to specify a field as Foreign
key.
CHECK: This constraint helps to validate the values of a column to meet a
particular condition. That is, it helps to ensure that the value stored in a
column meets a specific condition.
DEFAULT: This constraint specifies a default value for the column when no
value is specified by the user.
1. Select Operation:
o The select operation selects tuples that satisfy a given predicate.
o 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 =, ≠, ≥, <, >, ≤.
Input:
1. σ BRANCH_NAME="perryride" (LOAN)
Output:
2. Project Operation:
o 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.
o 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
Input:
1. ∏ NAME, CITY (CUSTOMER)
Output:
NAME CITY
Jones Harrison
Smith Rye
Hays Harrison
Curry Rye
Johnson Brooklyn
Brooks Brooklyn
3. 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 ∪.
1. Notation: R ∪ S
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
Williams
Mayes
4. 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 ∩.
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:
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 (-).
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
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.
1. Notation: E X D
Example:
EMPLOYEE
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
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)
2.
C) Explain each operation with example. What are the differences between
DDL,DML,DCL.
What are SQL Commands?
SQL Commands are like instructions to a table. It is used to interact with the
database with some operations. It is also used to perform specific tasks, functions,
and queries of data. SQL can perform various tasks like creating a table, adding
data to tables, dropping the table, modifying the table, set permission for users.
SQL Commands are mainly categorized into five categories:
DDL – Data Definition Language
DQL – Data Query Language
DML – Data Manipulation Language
DCL – Data Control Language
TCL – Transaction Control Language
1. Data Definition Language (DDL) in SQL
DDL or Data Definition Language actually consists of the SQL commands that can
be used to defining, altering, and deleting database structures such
as tables, indexes, and schemas. It simply deals with descriptions of the database
schema and is used to create and modify the structure of database objects in the
database
Common DDL Commands
Example of DDL
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
hire_date DATE
);
In this example, a new table called employees is created with columns for
employee ID, first name, last name, and hire date.
2. Data Query Language (DQL) in SQL
DQL statements are used for performing queries on the data within schema
objects. The purpose of the DQL Command is to get some schema relation based
on the query passed to it. This command allows getting the data out of the
database to perform operations with it. When a SELECT is fired against a table or
tables the result is compiled into a further temporary table, which is displayed or
perhaps received by the program.
DQL Command
Example of DQL
SELECT first_name, last_name, hire_date
FROM employees
WHERE department = 'Sales'
ORDER BY hire_date DESC;
This query retrieves employees’ first and last names, along with their hire dates,
from the employees table, specifically for those in the ‘Sales’ department, sorted
by hire date.
3. Data Manipulation Language (DML) in SQL
The SQL commands that deal with the manipulation of data present in the
database belong to DML or Data Manipulation Language and this includes most of
the SQL statements. It is the component of the SQL statement that controls
access to data and to the database. Basically, DCL statements are grouped with
DML statements.
Common DML Commands
Command Description Syntax
Update existing
UPDATE table_name SET column1 = value1,
UPDATE data within a
column2 = value2 WHERE condition;
table
Delete records
DELETE from a database DELETE FROM table_name WHERE condition;
table
Table control
LOCK LOCK TABLE table_name IN lock_mode;
concurrency
Call a PL/SQL or
CALL CALL procedure_name(arguments);
JAVA subprogram
Describe the
EXPLAIN EXPLAIN PLAN FOR SELECT * FROM
access path to
PLAN table_name;
data
Example of DML
INSERT INTO employees (first_name, last_name, department)
VALUES ('Jane', 'Smith', 'HR');
This query inserts a new record into the employees table with the first name
‘Jane’, last name ‘Smith’, and department ‘HR’.
4. Data Control Language (DCL) in SQL
DCL (Data Control Language) includes commands such
as GRANT and REVOKE which mainly deal with the rights, permissions, and other
controls of the database system. These commands are used to control access to
data in the database by granting or revoking permissions.
Common DCL Commands
Removes previously
granted privileges from a REVOKE [GRANT OPTION FOR]
user account, taking away privilege_type [(column_list)] ON
REVOKE
their access to certain [object_type] object_name FROM
database objects or user [CASCADE];
actions.
Example of DCL
GRANT SELECT, UPDATE ON employees TO user_name;
This command grants the user user_name the permissions to select and update
records in the employees table.
5. Transaction Control Language (TCL) in SQL
Transactions group a set of tasks into a single execution unit. Each transaction
begins with a specific task and ends when all the tasks in the group are
successfully completed. If any of the tasks fail, the transaction fails. Therefore, a
transaction has only two results: success or failure. We can explore more
about transactions here.
Common TCL Commands
Example of TCL
BEGIN TRANSACTION;
UPDATE employees SET department = 'Marketing' WHERE department = 'Sales';
SAVEPOINT before_update;
UPDATE employees SET department = 'IT' WHERE department = 'HR';
ROLLBACK TO SAVEPOINT before_update;
COMMIT;
In this example, a transaction is started, changes are made, and a savepoint is set.
If needed, the transaction can be rolled back to the savepoint before being
committed.
Important SQL Commands
1. SELECT: Used to retrieve data from a database.
2. INSERT: Used to add new data to a database.
3. UPDATE: Used to modify existing data in a database.
4. DELETE: Used to remove data from a database.
5. CREATE TABLE: Used to create a new table in a database.
6. ALTER TABLE: Used to modify the structure of an existing table.
7. DROP TABLE: Used to delete an entire table from a database.
8. WHERE: Used to filter rows based on a specified condition.
9. ORDER BY: Used to sort the result set in ascending or descending order.
[Link]: Used to combine rows from two or more tables based on a related
column between them.
Group-A 2023-2024
(Very Short Answer Type Question
1. Answer any ten of the following
1. During the ______ phase, the local variables that hold the write
operations are copied to the database
Syntax 1
R3 <- ⨝(R1) <join_condition> (R2)
where R1 and R2 are two relations to be joined and R3 is a relation that will hold
the result of the join operation.
Example
Temp <- ⨝(student) [Link]==[Link](Exam)
where S and E are aliases of the student and exam respectively
SQL JOIN Example
Consider the two tables below as follows:
Table 1 - Student
Table 2 - StudentCourse
Both these tables are connected by one common key (column) i.e. ROLL_NO.
We can perform a JOIN operation using the given SQL query:
SELECT s.roll_no, [Link], [Link], [Link], [Link], sc.course_id
FROM Student s
JOIN StudentCourse sc ON s.roll_no = sc.roll_no;
Output:
AG
ROLL_NO NAME ADDRESS PHONE E COURSE_ID
xxxxxxxxx
1 HARSH DELHI 18 1
x
xxxxxxxxx
2 PRATIK BIHAR 19 2
x
xxxxxxxxx
3 PRIYANKA SILIGURI 20 2
x
xxxxxxxxx
4 DEEP RAMNAGAR 18 3
x
xxxxxxxxx
5 SAPTARHI KOLKATA 19 1
x
Validation Phase
All concurrent data items are checked to ensure serializability will not be validated
if the transaction updates are actually applied to the database. Any changes in the
value cause the transaction rollback. The transaction timestamps are used and the
write-sets and read-sets are maintained.
To check that transaction A does not interfere with transaction B the following
must hold −
TransB completes its write phase before TransA starts the read phase.
TransA starts its write phase after TransB completes its write phase, and the
read set of TransA has no items in common with the write set of TransB.
Both the read set and write set of TransA have no items in common with
the write set of TransB and TransB completes its read before TransA
completes its read Phase.
Write Phase
The transaction updates applied to the database if the validation is successful.
Otherwise, updates are discarded and transactions are aborted and restarted. It
does not use any locks hence deadlock free, however starvation problems of data
items may occur.
Problem
S: W1(X), r2(Y), r1(Y), r2(X).
T1 -3
T2 – 4
Check whether timestamp ordering protocols allow schedule S.
Solution
Initially for a data-item X, RTS(X)=0, WTS(X)=0
Initially for a data-item Y, RTS(Y)=0, WTS(Y)=0
For W1(X) : TS(Ti)<RTS(X) i.e.
TS(T1)<RTS(X)
TS(T1)<WTS(X)
3<0 (FALSE)
=>goto else and perform write operation w1(X) and WTS(X)=3
For r2(Y): TS(T2)<WTS(Y)
4<0 (FALSE)
=>goto else and perform read operation r2(Y) and RTS(Y)=4
For r1(Y) :TS(T1)<WTS(Y)
3<0 (FALSE)
=>goto else and perform read operation r1(Y).
For r2(X) : TS(T2)<WTS(X)
4<3 (FALSE)
=>goto else and perform read operation r2(X) and RTS(X)=4
Strong entities have either total A weak entity has a total participation
participation or partial
Strong Entity Weak Entity
participation. constraint.
Primary Indexing
Working of Primary Indexing
In primary indexing, the data file is sorted or clustered based on the
primary key as shown in the below figure.
An index file (also known as the index table) is created alongside the data
file.
The index file contains pairs of primary key values and pointers to the
corresponding data records.
Each entry in the index file corresponds to a block or page in the data file.
Secondary indexing is a database management technique used to create
additional indexes on data stored in a database. The main purpose of secondary
indexing is to improve the performance of queries and to simplify the search for
specific records within a database. A secondary index provides an alternate means
of accessing data in a database, in addition to the primary index. The primary
index is typically created when the database is created and is used as the primary
means of accessing data in the database. Secondary indexes, on the other hand,
can be created and dropped at any time, allowing for greater flexibility in
managing the database.
Group-C
Answer any three of the following
7. How does a B-tree differ from a B+ tree ? Outline an algorithm for insertion of a
record in a B+ t Construct a B+ tree for the following set of key values under the
assumption that the number of key values that fit in a node is 3. Key values are ( 3,
10, 12, 14, 29, 38, 45, 55, 60, 68 ). Use your algorithm to show the steps involved
for inserting 11 and 30
Basis of
Comparison B tree B+ tree
All internal and leaf nodes have Only leaf nodes have data
Pointers
data pointers pointers
Basis of
Comparison B tree B+ tree
Sequential access is
Sequential access to nodes is not
Access possible just like linked
possible
list
B+ Trees used in
B-Trees used in Databases, Search
Application Multilevel Indexing,
engines
Database indexing
8. Consider the relational database, where the primary keys are underline
Employee(ename,street,city)
Works(ename,company_name,salary)
Company(company_name,city)
Manages(ename,manager_name)\
Write the query expressions for each of the following queries in special language:
a. Find the names of all employees who work for the First Bank Corporation.
b. Find the names of all employees who live in the same city and on the same
street as do their managers.
[Link] the employee name,employee number for all employees who earn more
than average salary.
d. Display the employee number, employee name for all employees who work in a
department with any employee whose name contains a 'T'.
9. What is the concept of sub-query in terms of SQL?
What is the use of DROP command and what are the differences between DROP,
TRUNCATE and DELE commands?
What is Correlated Subquery in DBMS?What is the main difference between
UNION a UNION ALL?
10. What is the difference between DBMS and RDBMS?
What is Entity Integrity and Referential Integrity?
11. Why ER model is used? Benefits of ER modeling.
Entity is a thing or an object in real world. As the name suggests that Entity
Relationship model uses collection of basic objects called entities &
[Link] develops a very simple and easy to design view of data. Entity
relationship model is widely used in Database design. To get some clarity about
an ER-Model look at the following example:
From the above example we can see the relationship WORK_FOR is between
entities EMPLOYEE and DEPARTMENT. It is a sample diagram as the original
diagram includes many entities and relationships.
Advantages
1. SIMPLE : It is simple to draw an ER diagram when we know entities and
relationships.
2. EFFECTIVE : It is an effective communication tool.
3. EASY TO UNDERSTAND : The design of ER is very logical and hence they are
easy to design and [Link] show database capabilities like how
tables, keys and columns are used to find a solution to the given question.
4. INTEGRATED : The ER Model can be easily integrated with relational model.
5. USEFUL IN DECISION MAKING : Since some of the entities in the database
are analyzed by an ER-Diagram, So by drawing an ER-Diagram we come to
know what kind of attributes and relationship exist between them.
6. EASY CONVERTION : It can be easily converted to other type of models.
7. DATABASE TROUBLESHOOTING : ER diagrams are used to analyze existing
databases to find and resolve the key issues in logic or deployment. Drawing
the diagram should reveal where it’s going wrong.
8. FLEXIBLE: ER models are flexible and can be modified easily to
accommodate changes in the database design or structure.
9. MINIMIZES DATA REDUNDANCY: ER models help minimize data redundancy
by identifying and eliminating duplicate data entries.
[Link]: ER models can be used for databases of varying sizes, from
small to large.
[Link] REPRESENTATION: ER models provide a visual representation of the
database structure, making it easier for stakeholders to understand and
provide feedback.
[Link]: ER models provide useful documentation for future
reference, making it easier to maintain and update the database in the long
run.
Disadvantages
1. LOSS OF INFORMATION: While drawing an ER Model some of the
information can be hidden or lost.
2. LIMITED RELATIONSHIP: ER model can represent limited relationships as
compared to other models and It is not possible to indicate primary keys
and foreign keys when they’re expected.
3. NO REPRESENTATION FOR DATA MANIPULATION: It is not possible to
represent data manipulation(commands like
insert(),delete(),alter(),update()) in ER model.
4. NO INDUSTRY STANDARD: There is no industry standard for notations of an
ER diagram.
5. DATA INCONSISTENCY: Due to improper Normalization some data
inconsistency may occur so, while creating an ER diagram at least it should
be in third normal form.
6. MISSING CARDINALITIES: Missing relationship cardinalities, so everything
looks like a one-to-one relationship. One-to-one relationships are actually
quite rare.
7. DIFFICULT TO MODIFY: ER models can be difficult to modify once they are
created. Any changes made to the model may require extensive rework,
which can be time-consuming and expensive.
8. LIMITED ATTRIBUTE REPRESENTATION: ER models may not be able to
represent all the attributes required for a particular problem domain. This
can lead to either the loss of important data or the creation of a complex
and unwieldy model.
9. LACK OF SUPPORT FOR BUSINESS RULES: ER models do not provide
support for business rules, which can make it difficult to ensure data
integrity and enforce constraints.
[Link] TO SCALE: ER models can be difficult to scale to accommodate
larger data sets. As the amount of data in the database grows, the ER model
may need to be modified to handle the increased complexity.
[Link] ON USER UNDERSTANDING: ER models rely heavily on the
understanding of the user to correctly identify the entities and
relationships. If the user does not have a good understanding of the
problem domain, the resulting ER model may not accurately represent the
data.
[Link] SUPPORT FOR ABSTRACTION: ER models are not designed to
support abstraction, which can make it difficult to represent complex
relationships or data structures in a simple and intuitive way.
Find the minimum number of tables required to represent the given ER diagram in
relational model.
Applying the rules that we have learnt, minimum 6 tables will be required-