UNIT 1
Introduction To Database Management System
A Database Management System (DBMS) is software designed to organize, store, and manage
data efficiently. It enables users to create, retrieve, and manipulate data while maintaining
security, consistency, and integrity. DBMS uses structured query languages like SQL to
interact with the data and ensures compliance with ACID properties for reliable transactions.
Widely used in industries such as banking, e-commerce, finance, education etc, DBMS helps
handle large volumes of data systematically. Popular examples include MySQL, Oracle, and
MongoDB, making it an essential tool for managing data in modern applications.
Purpose of a Database Management System
A Database Management System (DBMS) provides a structured environment for storing and
managing data. Its primary goal is to offer a safe and effective platform for handling large
volumes of information, ensuring that it is organized, secure, and easily accessible. The key
purposes of a database system include:
1. Efficient Storage and Retrieval
The fundamental purpose of a database system is to store and retrieve data efficiently.
Structured data, organized through predefined schemas and data models, allows for quick and
reliable access. Whether it is storing employee details, customer orders, or financial records,
DBMS ensures that data is logically organized, reducing retrieval time.
2. Data Integrity and Accuracy
Data integrity refers to the accuracy and consistency of data throughout its lifecycle. DBMS
enforces rules and constraints defined in the database schema to ensure that only accurate data
is entered and maintained. This prevents data anomalies such as duplication or errors, thereby
enhancing the quality and reliability of the information stored.
3. Data Security
In an era where data breaches and privacy concerns are prevalent, protecting sensitive data is
a priority. DBMS provides robust security mechanisms, including encryption, user access
control, and authentication, to safeguard against unauthorized access. It ensures that only
authorized users can access or modify specific data, maintaining the confidentiality and privacy
of information.
4. Data Redundancy and Consistency
Data redundancy where the same data is stored in multiple places can lead to inconsistencies
and inefficiencies. A DBMS eliminates redundancy by centralizing data storage and using
techniques like normalization. By enforcing consistency across the database, the system
prevents conflicting versions of the same data from being used.
5. Collaboration and Multi-User Access
Modern organizations rely on collaborative workflows, and DBMS facilitates this by allowing
multiple users to access and modify the data simultaneously. It ensures that data consistency is
maintained even when various users are working on the same dataset. Collaboration features
of DBMS support seamless sharing of data across departments and teams, thereby enhancing
teamwork and decision-making.
6. Backup and Recovery
A critical function of any DBMS is data durability. In the event of system failures, crashes, or
disasters, DBMS ensures that data is not lost. With mechanisms for data backup and transaction
management, database systems guarantee that the data can be recovered to its last consistent
state, minimizing the impact of data loss.
7. Scalability and Performance Optimization
Supports large-scale applications with indexing and caching features.
Characteristics of Database System
A DBMS is characterized by several key features that differentiate it from traditional file
systems:
1. Data Integrity
Ensures the accuracy and consistency of data by enforcing integrity constraints (e.g., primary
keys, foreign keys) that prevent invalid data from being entered into the system. Data integrity
is essential for maintaining reliable, trustworthy information.
2. Data Security
Provides robust security mechanisms such as user authentication, authorization, and encryption
to protect sensitive data from unauthorized access. It ensures the privacy and confidentiality of
the data, which is vital for preventing breaches and maintaining trust.
3. Concurrency Control
Manages the simultaneous access of data by multiple users to prevent conflicts, such as race
conditions or lost updates. Concurrency control ensures that transactions are executed in
isolation, maintaining data consistency even with multiple users interacting with the system
concurrently.
4. Scalability
The ability to handle increased data volume, user load, or complexity over time. A scalable
database system can efficiently manage growing amounts of data and users, whether through
horizontal scaling (adding more servers) or vertical scaling (upgrading hardware).
5. Transaction Management (ACID Properties)
Ensures reliable and consistent processing of transactions, even in the case of system failures.
The ACID properties (Atomicity, Consistency, Isolation, Durability) guarantee that
transactions are :
Atomicity: A transaction is all or nothing.
Either all operations in a transaction are completed successfully, or none are.
If any part of the transaction fails, the DBMS rolls back the entire transaction to
maintain consistency.
Example:
If you’re sending money from your account to a friend:
Take money from your account and add money to your friend’s account
If anything fails in between, everything is cancelled.
Consistency- A transaction brings the database from one valid state to another
valid state.
Ensures that rules, constraints, and data integrity are preserved before and after a
transaction.
No data corruption or rule violation occurs.
Example:
If a column only allows positive numbers, no transaction can insert a negative number—even
by mistake.
Isolation: Concurrent transactions don’t interfere with each other.
Each transaction is executed independently, even if multiple transactions are
happening at the same time.
The final result is as if the transactions ran sequentially, not concurrently.
Example:
Two users booking the same seat at the same time only one should succeed.
Durability: Once a transaction is committed, it’s permanently saved, even if the system
crashes.
Committed changes are written to non-volatile storage (e.g., disk).
Power failures, crashes, or errors won’t erase committed data.
Example:
If a user successfully places an order and the system crashes a second later, the order is still
saved when the system restarts.
Applications of DBMS
Database Management Systems have extensive applications across various industries and
domains. Below are some of the key sectors where DBMS plays a crucial role:
1. Business and E-Commerce
DBMS enables businesses to manage large volumes of data related to inventory, customers,
sales, and financial transactions. It supports e-commerce platforms in managing customer
orders, inventory, product catalogs, and payment processing. By improving operational
efficiency, DBMS helps organizations offer better customer service and make informed
business decisions.
2. Healthcare
In healthcare, DBMS is vital for storing and managing patient information, medical records,
and treatment history. Electronic Health Records (EHR) systems, which use DBMS, provide
healthcare professionals with accurate, real-time access to patient data, helping to improve
diagnoses, treatment outcomes, and patient care. Additionally, DBMS supports medical
research and helps in managing medical imaging and test results.
3. Education
Educational institutions use DBMS to store and manage student information, academic records,
and library databases. DBMS aids in automating processes such as course enrollment, grade
tracking, and attendance management. It also assists in research data management, helping
institutions make data-driven decisions for resource allocation and academic planning.
4. Government
Government agencies rely on DBMS to manage vast amounts of public data, including citizen
records, tax details, and social security information. It supports various government functions,
such as tax management, voter databases, law enforcement records, and public health
monitoring. DBMS contributes to greater transparency, accountability, and efficiency in
government operations.
5. Finance
In the financial sector, DBMS is used to manage financial transactions, customer accounts, and
investment portfolios. Banks, insurance companies, and investment firms rely on database
systems to ensure secure, fast, and accurate processing of financial data. DBMS supports
decision-making, regulatory compliance, and fraud prevention.
6. Telecommunications
Telecommunications companies use DBMS to manage call records, billing data, customer
profiles, and network performance metrics. A well-structured database system ensures that
customer interactions, service usage, and billing are tracked efficiently, allowing for accurate
reporting and customer support.
In a Database Management System (DBMS), levels of abstraction refer to the different ways
users and applications view and interact with the database, hiding the complexities of how data
is physically stored and managed. This simplifies interaction, enhances data independence, and
improves security. There are typically three levels of abstraction: physical, logical, and view.
1. Physical Level (Internal Level):
This is the lowest level of abstraction, dealing with how data is physically stored on storage
devices.
It includes details about data organization, data structures, and access methods.
Users at this level are concerned with the physical implementation and optimization of storage.
Example: Describing data as blocks of storage in memory (bytes, gigabytes, etc.).
2. Logical Level (Conceptual Level):
This level describes what data is stored in the database and the relationships between
data entities.
It focuses on the logical structure, such as tables, columns, and relationships.
Users at this level are typically database designers and programmers who work with
the database schema.
Example: Defining tables for customers and orders, and the relationships between them.
3. View Level (External Level):
This is the highest level of abstraction, providing customized views of the database for
different users or applications.
It hides the complexity of the overall database structure and presents only the necessary
data to each user.
Users at this level interact with the database through interfaces and applications.
Example: A customer service representative accessing only customer information
related to their role.
By using levels of abstraction, DBMS can achieve data independence, meaning that changes
at one level (e.g., physical storage) do not necessarily affect other levels (e.g., logical structure
or user views). This allows for flexibility and easier maintenance of the database system.
Types of Database Languages in DBMS
Database languages are specialized languages used to interact with a
database. They allow users to perform different tasks such as defining,
controlling, and manipulating the data. There are several types of
database languages in DBMS, categorized into the following four main
types:
1. DDL (Data Definition Language)
2. DCL (Data Control Language)
3. DML (Data Manipulation Language)
4. TCL (Transaction Control Language)
DML (Data Manipulation Language)
The DML is used to manage and manipulate data within a database.
With DML, you can perform various operations such as inserting,
updating, selecting, and deleting data. These operations allow you to
work with the actual content in your database tables.
Here are the key DML commands:
SELECT: Retrieves data from the table based on specific criteria.
INSERT: Adds new rows of data into an existing table.
UPDATE: Modifies existing data in a table.
DELETE: Removes data from a table.
MERGE: Performs an "upsert" operation, which means updating
existing records or inserting new ones if they don’t exist.
CALL: Executes stored procedures or functions.
LOCK TABLE: Prevents other users from accessing the table
while changes are being made.
1. DDL (Data Definition Language)
The DDL is used to define the database's internal structure and Pattern
of the Database. It is used to define and modify the structure of the
database itself, including the tables, views, indexes, and other schema-
related objects. It deals with the creation and modification of database
schema, but it doesn't deal with the data itself.
Following are the five DDL commands in SQL:
CREATE: Used to create database objects like tables, indexes,
or views.
ALTER: Used to modify the structure of an existing database
object, such as adding a new column to a table.
DROP: Used to delete database objects.
TRUNCATE: Used to remove all rows from a table, without
affecting the structure.
RENAME: Used to change the name of a database object.
DCL (Data Control Language)
It is used to control the access permissions of users to the database.
DCL commands help grant or revoke privileges to users, determining
who can perform actions like reading or modifying data. DCL
commands are transactional, meaning they can be rolled back if
necessary.
The two main DCL commands are:
Grant: Gives user access to the database
Revoke: Removes access or permissions from the user
TCL ( Transaction Control Language )
The TCL commands are used to manage and control transactions in a
database, grouping them into logical units. These commands help
ensure the integrity of data and consistency during complex operations.
Here are the two main commands in this category:
Commit: Saves all the changes made during the current
transaction to the database. These are very useful in the banking
sector.
Rollback: used to restore the database to its original state from
the last commit. This command also plays an important role in
Banking Sectors.
Structure/ Architecture Of DBMS
Database Architecture
Structure of Database Management System is also referred to
as Overall System Structure or Database Architecture but it is different
from the Tier architecture of Database.
Database Architecture refers to the internal components of the
DBMS, including the Query Processor, Storage Manager, and
Disk Storage. It also defines the interaction of these components.
Tier Architecture typically refers to the multi-layered setup in
an application where DBMS serves as the data layer, but it is
distinct from Database Architecture, which refers to the internal
structure and levels (internal, conceptual, and external) of the
DBMS.
Components of a Database System
Query Processor, Storage Manager, and Disk Storage. These are
explained as following below.
Query Processor
The query processor is an important component of a DBMS. It
interprets user queries and executes them precisely. The query process
involves several specialised components that handle different tasks to
convert high-level queries into low-level instructions.
1. DML Compiler: The Data Manipulation Language (DML)
compiler processes user commands like SELECT, INSERT,
UPDATE, and DELETE. It converts these high-level queries into
low-level instructions that the DBMS can understand and
execute.
2. DDL Interpreter: The Data Definition Language (DDL)
interpreter handles statements like CREATE, ALTER, and
DROP. It processes commands that define or modify the structure
of the database, such as creating tables or changing column
properties.
3. Embedded DML Pre-compiler: integrates DML statements into
programming languages like C, Java, or Python. It translates
embedded SQL queries into a format that the DBMS
(SOFTWARE) can process. It is necessary to maintain proper
communication between applications and the database.
4. Query Optimizer: The query optimiser is responsible for
improving query performance. It evaluates multiple ways to
execute a query and selects the most efficient one. This reduces
processing time, so the query execution is done quickly.
Storage Manager
The storage manager is an essential part of a database management
system. It handles how data is stored, retrieved, and managed on
physical storage devices like disks. The storage manager is responsible
for data integrity, security, and efficient access. It includes the
following key components:
1. Authorisation Manager: It’s a check that only lets authorised
users access or modify the database. It verifies user credentials
and permissions to prevent unauthorised access, so the database
is secure.
2. Integrity Manager: The integrity manager enforces rules that
maintain the correctness of the data. For example, it ensures no
duplicate primary keys exist and that foreign key constraints are
followed. This prevents invalid or inconsistent data from entering
the database.
3. Transaction Manager: oversees all database transactions. It
oversees that each transaction is completed fully or not at all
which is needed for maintaining the database's reliability. This
includes handling operations like rollbacks in case of failures and
maintaining data consistency.
4. File Manager: The file manager organises and manages data on
physical storage devices. It handles how data files are created,
read, and written. This component is necessary for efficient
storage utilisation and supports large-scale data management.
5. Buffer Manager: The buffer manager controls the flow of data
between main memory (RAM) and disk storage. It stores
frequently accessed data temporarily in memory to speed up data
retrieval and reduce disk access time.
Disk Storage
Disk storage is a critical component of a database management system
(DBMS). It stores data permanently, ensuring it's accessible even after
a system shutdown. Efficient use of disk storage is key to managing,
retrieving, and organising large datasets. Disk storage in DBMS
involves:
1. Data Files: Data files hold the actual user data in a structured
format. These files store all the records, transactions, and
information required by the application. They are designed for
optimised storage and fast retrieval.
2. Data Dictionary: The data dictionary is also known as metadata
storage and contains detailed information about the database
structure. It records table names, column types, constraints, and
relationships. This acts as a reference for the DBMS so it can
understand how data is organised and used.
3. Indices: Indices are like shortcuts for data access. They create
pointers for specific rows or records, which enables the DBMS to
locate data quickly without scanning the entire database. Indices
are necessary to greatly improve query performance and are
especially needed for large datasets.
Levels of DBMS Architecture
The structure of a Database Management System (DBMS) can be
divided into three main components: the Internal Level, the
Conceptual Level, and the External Level.
1. Internal Level
This level represents the physical storage of data in the database. It is
responsible for storing and retrieving data from the storage devices,
such as hard drives or solid-state drives. It deals with low-level
implementation details such as data compression, indexing, and
storage allocation.
2. Conceptual Level
This level represents the logical view of the database. It deals with the
overall organization of data in the database and the relationships
between them. It defines the data schema, which includes tables,
attributes, and their relationships. The conceptual level is independent
of any specific DBMS and can be implemented using different DBMSs.
3. External Level
This level represents the user's view of the database. It deals with how
users access the data in the database. It allows users to view data in a
way that makes sense to them, without worrying about the underlying
implementation details. The external level provides a set of views or
interfaces to the database, which are tailored to meet the needs of
specific user groups.
Schema Mapping in DBMS
The three levels are connected via schema mapping, ensuring that
changes at one level (e.g., the conceptual level) are accurately reflected
in the others. This process maintains data independence, allowing
changes in physical storage (internal level) without affecting the logical
or user views.
Role of Database Administrator (DBA)
In addition to these three levels, a DBMS also includes a Database
Administrator (DBA) component, which is responsible for managing
the database system. The DBA performs critical tasks such as:
Database design and architecture.
Security management: Implementing role-based access control
(RBAC), encryption, and ensuring strong authentication
measures such as multi-factor authentication (MFA).
Backup and recovery: Regularly creating backups and preparing
recovery plans in case of data loss.
Performance tuning: Optimizing database performance,
including query optimization, indexing, and resource
management to ensure the DBMS runs efficiently
Different Types of Database Keys
1. Super Key
The set of one or more attributes (columns) that can uniquely identify
a tuple (record) is known as Super Key. It may include extra attributes
that aren't essential for uniqueness but still uniquely identify the row.
For Example, STUD_NO, (STUD_NO, STUD_NAME), etc.
A super key is a group of single or multiple keys that uniquely
identifies rows in a table. It supports NULL values in rows.
A super key can contain extra attributes that aren’t necessary for
uniqueness. For example, if the "STUD_NO" column can uniquely
identify a student, adding "SNAME" to it will still form a valid
super key, though it's unnecessary.
Example: Consider the STUDENT table
ADDRES
STUD_NO SNAME S PHONE
1 Shyam Delhi 123456789
2 Rakesh Kolkata 223365796
3 Suraj Delhi 175468965
A super key could be a combination of STUD_NO and PHONE, as
this combination uniquely identifies a student.
2. Candidate Key
The minimal set of attributes that can uniquely identify a tuple is
known as a candidate key. For Example, STUD_NO in STUDENT
relation.
A candidate key is a minimal super key, meaning it can uniquely
identify a record but contains no extra attributes.
It is a super key with no repeated data is called a candidate key.
The minimal set of attributes that can uniquely identify a record.
A candidate key must contain unique values, ensuring that no two
rows have the same value in the candidate key’s columns.
Every table must have at least a single candidate key.
A table can have multiple candidate keys but only one primary key.
Example: For the STUDENT table below, STUD_NO can be a
candidate key, as it uniquely identifies each record.
ADDRES
STUD_NO SNAME S PHONE
1 Shyam Delhi 123456789
2 Rakesh Kolkata 223365796
3 Suraj Delhi 175468965
Table STUDENT_COURSE
STUD_NO TEACHER_NO COURSE_NO
1 001 C001
STUD_NO TEACHER_NO COURSE_NO
2 056 C005
A composite candidate key example: {STUD_NO,
COURSE_NO} can be a candidate key for
a STUDENT_COURSE table.
3. Primary Key
There can be more than one candidate key in relation out of which one
can be chosen as the primary key. For Example, STUD_NO, as well
as STUD_PHONE, are candidate keys for relation STUDENT but
STUD_NO can be chosen as the primary key (only one out of many
candidate keys).
A primary key is a unique key, meaning it can uniquely identify
each record (tuple) in a table.
It must have unique values and cannot contain
any duplicate values.
A primary key cannot be NULL, as it needs to provide a valid,
unique identifier for every record.
A primary key does not have to consist of a single column. In some
cases, a composite primary key (made of multiple columns) can
be used to uniquely identify records in a table.
Databases typically store rows ordered in memory according to
primary key for fast access of records using primary key.
Example:
STUDENT table -> Student(STUD_NO, SNAME, ADDRESS,
PHONE) , STUD_NO is a primary key
Table STUDENT
ADDRES
STUD_NO SNAME S PHONE
1 Shyam Delhi 123456789
2 Rakesh Kolkata 223365796
3 Suraj Delhi 175468965
4. Alternate Key
An alternate key is any candidate key in a table that is not chosen as
the primary key. In other words, all the keys that are not selected as
the primary key are considered alternate keys.
An alternate key is also referred to as a secondary key because it
can uniquely identify records in a table, just like the primary key.
An alternate key can consist of one or more columns (fields) that
can uniquely identify a record, but it is not the primary key
Eg:- SNAME, and ADDRESS is Alternate keys
Example: In the STUDENT table, both STUD_NO and PHONE are
candidate keys. If STUD_NO is chosen as the primary key,
then PHONE would be considered an alternate key.
Primary Key, Candidate Key, and Alternate Key
5. Foreign Key
A foreign key is an attribute in one table that refers to the primary key
in another table. The table that contains the foreign key is called the
referencing table, and the table that is referenced is called the
referenced table.
A foreign key in one table points to the primary key in another
table, establishing a relationship between them.
It helps connect two or more tables, enabling you to create
relationships between them. This is essential for maintaining data
integrity and preventing data redundancy.
They act as a cross-reference between the tables.
For example, DNO is a primary key in the DEPT table and a non-
key in EMP.
Example: Consider the STUDENT_COURSE table
STUD_NO TEACHER_NO COURSE_NO
1 005 C001
2 056 C005
Here, STUD_NO in the STUDENT_COURSE table is a foreign
key that references the STUD_NO primary key in the STUDENT table.
Unlike the Primary Key of any given relation, Foreign Key can be
NULL as well as may contain duplicate tuples i.e. it need not follow
uniqueness constraint. For Example, STUD_NO in the
STUDENT_COURSE relation is not unique.
It has been repeated for the first and third tuples. However, the
STUD_NO in STUDENT relation is a primary key and it needs to
be always unique, and it cannot be null.
Relation between Primary Key and Foreign Key.
6. Composite Key
Sometimes, a table might not have a single column/attribute that
uniquely identifies all the records of a table. To uniquely identify rows
of a table, a combination of two or more columns/attributes can be
used. It still can give duplicate values in rare cases. So, we need to
find the optimal set of attributes that can uniquely identify rows in a
table.
It acts as a primary key if there is no primary key in a table
Two or more attributes are used together to make a composite key .
Different combinations of attributes may give different accuracy in
terms of identifying the rows uniquely.
Example: In the STUDENT_COURSE table, {STUD_NO,
COURSE_NO} can form a composite key to uniquely identify each
record.
Extended E R Model
1. Specialization
Top-down design process; we designate sub-groupings within an
entity set that are distinctive from other entities in the set.
These sub-groupings become lower-level entity sets that have
attributes or participate in relationships that do not apply to the
higher-level entity set.
Depicted by a triangle component labeled ISA (e.g., instructor
“is a” person).
Attribute inheritance – a lower-level entity set inherits all the
attributes and relationship participation of the higher-level entity
set to which it is linked.
In terms of an E-R diagram, specialization is depicted by a
triangle component labeled ISA.
The ISA relationship may also be referred to as a superclass-
subclass relationship.
2. Generalization
• The process of grouping or joining two or more lower level entity
sets to make a higher level entity set on the basis of their common
features is known as generalization.
• It is an Bottom – Up approach.
Specialization and generalization are simple inversions of each other;
they are represented in an E-R diagram in the same way.
Design Constraints on a Specialization/Generalization
Disjoint (d):
This constraint indicates that an instance of the superclass can belong
to at most one of its subclasses. For example, if "Student" is
specialized into "Undergraduate" and "Graduate" with a disjoint
constraint, a student can be either an undergraduate or a graduate, but
not both simultaneously. This is often denoted by a 'd' within a circle
connecting the superclass to its subclasses in an EER diagram.
Overlapping (o):
This constraint indicates that an instance of the superclass can belong
to multiple of its subclasses simultaneously. For example, if "Person"
is specialized into "Employee" and "Student" with an overlapping
constraint, a person could be both an employee and a student at the
same time. This is typically denoted by an 'o' within a circle
connecting the superclass to its subclasses in an EER diagram.
Completeness constraint -- specifies whether or not an entity in the
higher-level entity set must belong to at least one of the lower- level
entity sets within a generalization.
1) Total: an entity must belong to one of the lower-level entity sets
2) partial: an entity need not belong to one of the lower-level entity
sets.
Partial generalization is the default. We can specify total
generalization in an ER diagram by adding the keyword total in
the diagram and drawing a dashed line from the keyword to the
corresponding hollow arrow-head to which it applies (for a total
generalization), or to the set of hollow arrow- heads to which it
applies (for an overlapping generalization).
The student generalization is total: All student entities must be
either graduate or undergraduate. Because the higher-level entity
set arrived at through generalization is generally composed of
only those entities in the lower-level entity sets, the
completeness constraint for a generalized higher-level entity set
is usually total
4. Aggregation
•One limitation of the E-R model is that it cannot express relationships
among relationships.
•Aggregation is an abstraction through which relationships are treated
as higher level entities.
Before Aggregation-
After Aggregation-
Design Issues-
Entities vs. Attributes:
Determining whether a value should be an attribute of an entity or a
separate entity in itself. For example, a phone number could be an
attribute of an employee or a separate entity with its own attributes like
"phone type" (home, work, etc.).
Entities vs. Relationships:
Deciding whether a concept should be modeled as an entity set or a
relationship set. This can impact how relationships are represented and
how data is stored.
Binary vs. N-ary Relationships:
Choosing between binary relationships (relationships between two
entities) and n-ary relationships (relationships involving more than two
entities). While n-ary relationships can be more expressive, they can
also be more complex to implement. Sometimes, n-ary relationships
can be effectively represented by breaking them down into multiple
binary relationships.
Relationship Attributes:
Properly placing attributes related to relationships. For example, if a
relationship is one-to-many, its attributes should generally be placed on
the "many" side of the relationship.
Converting EER diagrams (Specialization or generalization) to
relations-
1) Option 1: One Table per Hierarchy (Single Table Inheritance)
Create one table for the entire hierarchy, with a type/discriminator
attribute and NULLs for unused subclass attributes.
2) Option 2: One Table per Subclass (Class Table Inheritance)
Create a table for the superclass and one for each subclass.
Subclass tables include the primary key of the superclass as a
foreign key (and primary key) and attributes specific to the
subclass.
3) Option 3: One Table per Subclass Only (if every instance belongs
to only one subclass)
Each subclass table has all attributes (including those from the
superclass) and no unified superclass table.
Aggregation-
Create a Relationship Table for the Aggregated Relationship
Treat the original relationship (the one being aggregated) as a separate
entity. Create a table with:
The primary keys of all participating entities in this relationship as for-
eign keys, which together form the primary key of this table.
Any attributes of the relationship.