You are on page 1of 21

CMP 404: DATABASE MANAGEMENT DESIGN II

TUTORIAL QUESTIONS

Q1
(a) What is a database?
 A database is an organised collection of data stored and accessed electronically.
 The data in a database is specially organized for rapid search and retrieval by a computer.
 It is usually controlled by a database management system.
 The data contains information relevant to an enterprise.

(b) Explain the following database terminologies

• Database Management System

Database management system (DBMS)—Software that serves as an intermediary between the user and
the database. It is a collection of interrelated data and a set of programs to access those data.
DBMS is a set of software programs that controls the organization, storage, management, and retrieval
of data in a database. The DBMS accepts requests for data from an application program and instructs
the operating system to transfer the appropriate data.
The primary goal of a DBMS is to provide a way to store and retrieve database information that is both
convenient and efficient.

• Schema

Schema is a language that allows database administrator to define the database structure. It is referred
to as overall design of the database.
A database schema corresponds to the variable declarations (along with associated type definitions) in
a program. Each variable has a particular value at a given instant.
Database systems have several schemas, partitioned according to the levels of abstraction. The
physical schema describes the database design at the physical level, while the logical schema describes
the database design at the logical level. A database may also have several schemas at the view level,
sometimes called subschemas, that describe different views of the database.

• Database Language

Database language comprises of a data-definition language and a data-manipulation language. A data-


definition language to specify the database schema and a data-manipulation language to express
database queries and updates. In practice, the data-definition and data-manipulation languages are not
two separate languages; instead they simply form parts of a single database language, such as the
widely used SQL language.

• Database Administrator (DBA)


One of the main reasons for using DBMSs is to have central control of both the data and the programs
that access those data. A person who has such central control over the system is called a database
administrator (DBA). The functions of a DBA include:
• Schema definition. The DBA creates the original database schema by executing a set of
data definition statements in the DDL.
• Storage structure and access-method definition.
• Schema and physical-organization modification. The DBA carries out changes to the
schema and physical organization to reflect the changing needs of the organization, or to alter
the physical organization to improve performance.
• Granting of authorization for data access. By granting different types of authorization,
the database administrator can regulate which parts of the database various users can access.
The authorization information is kept in a special system structure that the database system
consults whenever someone attempts to access the data in the system.
 ◦ Periodically backing up the database, either onto tapes or onto remote servers, to prevent loss
of data in case of disasters such as flooding.
 ◦ Ensuring that enough free disk space is available for normal operations, and upgrading disk
space as required.
 ◦ Monitoring jobs running on the database and ensuring that performance is not degraded by
very expensive tasks submitted by some users

• Database Architecture

Database architecture is defined as the underlying computer system on which the database system runs.
Database systems can be centralized, or client-server, where one server machine executes work on
behalf of multiple client machines. Database systems can also be designed to exploit parallel computer
architectures. Distributed databases span multiple geographically separated machines

• Normalisation

Normalization is a method for designing a relational database in order to generate a set of relation
schemas that allows us to store information without unnecessary redundancy, yet also allows us to
retrieve information easily. The approach is to design schemas that are in an appropriate normal form.

• Metadata

Metadata can be referred to as data about data; that is, data concerning data characteristics and
relationships.
It refers to information on database schema and all the other information regarding access, storage,
built in programs or any other information about database elements or usage.

• Query Manager
A query manager schedules query execution and directs queries to the appropriate tables inside a data
warehouse. The manager speeds up response and processing times, delivers data to users in easily
digestible formats, and also stores profiles.

With the aid of diagram, describe a simplified database system environment


A database environment is a collective system of components that comprise and regulates the group of
data, management, and use of data, which consist of software, hardware, people, techniques of
handling database, and the data also.
Here, the hardware in a database environment means the computers and computer peripherals that are
being used to manage a database, and the software means the whole thing right from the operating
system (OS) to the application programs that include database management software like M.S. Access
or SQL Server.  Again the people in a database environment include those people who administrate
and use the system. The techniques are the rules, concepts, and instructions given to both the people
and the software along with the data with the group of facts and information positioned within the
database environment.

Consider a database used to record the marks that students get in different exams of different
course offerings (sections).
 •Construct an E-R diagram that models exams as entities, and uses a ternary relationship,
for the database.

 •Construct an alternative E-R diagram that uses only a binary relationship between
student and section. Make sure that only one relationship exists between a particular
student and section pair, yet you can represent the marks that a student gets in different
exams.

SQL

A. ,
SQL stands for Strutured Query Language but it can do much more than just query a database. It can
define the structure of the data, modify data in the database, and specify security constraints. Simply
put, SQL is a language of databases.
B.
CREATE TABLE Students (Matric_No VARCHAR(9) PRIMARY KEY,
first_name VARCHAR(20) NOT NULL,
age INTEGER NOT NULL,
CHECK (age>25)
);

C.
i. name of all branches in OOU
Π branch name
(σ branch−city ¿ OOU ( branch ) )
'
ii. find the names of borrowers who have a loan in branch ‘down-town’
Π customer name
( σ branc h =downtown
nae
( borrower ×loan× branch ) )

Q2

(a) List six major steps that you would take in setting up a database for a particular
enterprise.
Six major steps in setting up a database for a particular enterprise are:

 Define the high-level requirements of the enterprise (this step generates a document known as
the system requirements specification.)
 Define a model containing all appropriate types of data and data relationships.
 Define the integrity constraints on the data.
 Define the physical level.
 For each known problem to be solved on a regular basis (e.g., tasks to be carried out by clerks
or Web users) define a user interface to carry out the task, and write the necessary application
programs to implement the user interface.
 Create/initialize the database.

(b) Explain the concept of physical data independence and its importance in database system.
Data independence is the ability to modify a scheme definition in one level without affecting a scheme
definition in a higher level. There are two classes of data independence: (i) Physical data independence
and (ii) Logical data independence
Physical data independence is the ability to modify the physical scheme without making it necessary
to rewrite application programs. Such modifications include changing from unblocked to blocked
record storage, or from sequential to random access files.
Importance
Modifications at this level are usually to improve performance without causing application programs to
be rewritten

(c) Explain the difference between physical and logical data independence.

 Physical data independence is the ability to modify the physical scheme without making it
necessary to rewrite application programs. Such modifications include changing from unblocked to
blocked record storage, or from sequential to random access files.

 Logical data independence is the ability to modify the conceptual scheme without making it
necessary to rewrite application programs. Such a modification might be adding a field to a record; an
application program’s view hides this change from the program.

(d) List four significant differences between file-processing system and a DBMS

FILE PROCESSING SYSTEM DATABASE MANAGEMENT


SYSTEM

In this system, accessing data is DBMS provides very flexible access to


inefficient and inconvenient data

a file-processing system coordinates only A database management system


the physical access. coordinates both the physical and the
logical access to the data,

data written by one programin a file- A databasemanagement system reduces


processing system may not be readable the amount of data duplication by
by another program. ensuring that a physical piece of data is
available to all programs authorized to
have access to it

a file-processing system is designed to A database management system is


allow predetermined access to data (i.e., designed to allow flexible access to data
compiled programs) (i.e., queries),

A file-processing systemis usually A database management system is


designed to allow one or more programs designed to coordinate multiple users
to access different data files at the same accessing the same data at the same time.
time. In a file-processing system, a file
can be accessed by two programs
concurrently only if both programs have
read-only access to the file.

It is difficult to ensure atomicity in this DBMS can handle Atomicity problems


conventional file-processing system well

(e) Explain the difference between two-tier and three-tier architecture. Which is better suited
for web applications? Why?
1. Two-Tier Database Architecture –
In two-tier, the application logic is either buried inside the User Interface on the client or within the
database on the server (or both). With two-tier client/server architectures, the user system interface is
usually located in the user’s desktop environment and the database management services are usually in
a server that is a more powerful machine that services many clients.
2. Three-Tier Database Architecture –
In three-tier, the application logic or process lives in the middle-tier, it is separated from the data and
the user interface.
Best
Three-tier systems are more scalable, robust and flexible. In addition, they can integrate data from
multiple sources. In the three-tier architecture, a middle tier was added between the user system
interface client environment and the database management server environment. There are a variety of
ways of implementing this middle tier, such as transaction processing monitors, message servers, or
application servers.
Difference Between Two-Tier And Three-Tier Database Architecture
Two-Tier Database Architecture Three-Tier Database Architecture
It is a Client-Server Architecture. It is a Web-based application.
In two-tier, the application logic is either In three-tier, the application logic or
buried inside the user interface on the client process resides in the middle-tier, it is
or within the database on the server (or separated from the data and the user
both). interface.
Two-tier architecture consists of two Three-tier architecture consists of three
layers : Client Tier and Database (Data layers : Client Layer, Business Layer and
Tier). Data Layer.
It is easy to build and maintain. It is complex to build and maintain.
Two-tier architecture runs slower. Three-tier architecture runs faster.
It is less secured as client can communicate It is secured as client is not allowed to
with database directly. communicate with database directly.
It results in performance loss whenever the It results in performance loss whenever
users increase rapidly. the system is run on Internet but gives
more performance than two-tier
architecture.
Example – Contact Management System Example – Designing registration form
created using MS-Access or Railway which contains text box, label, button or a
Reservation System, etc. large website on the Internet, etc.

Q3
There are a large number of commercial database system in use today such as IBM, DB2,
Oracle, Microsoft SQL Server, Sybase, MySQL, and IBM Informix. Discuss any TWO of the
commercial database system.
Oracle
Currently, Oracle is the number one commercially supported database and one of the widely used
RDBMS overall. owned by Oracle Corporation
5 Key Features

 Proprietory RDBMS.
 Offers ACID transactional guarantee. In terms of CAP, it offers immediate Consistency as a
single Server.
 Advanced Multi-Model databases supporting Structured Data (SQL), Semi-Structured
Data(JSON, XML), Spatial Data, and RDF Store. Offers multiple access pattern depending
on the specific Data Model
 Offers Blockchain Tables.
 Supports both OLTP and OLAP workload.

MySQL
MySQL is one of the most popular and widely used SQL databases. It is also one of the most used
databases in Web Applications. Some of the world’s largest Web-Scale applications (e.g., Facebook,
Uber) uses MySQL.
This is one of the most popular relational database systems. Originally an open-source solution,
MySQL now is owned by Oracle Corporation. Today, MySQL is a pillar of LAMP application
software. That means it’s a part of Linux, Apache, MySQL, and Perl/PHP/Python stack. Having C and
C++ under the hood, MySQL works well with such system platforms as Windows, Linux, MacOS,
IRIX, and others.
5 Key Features
 Open source RDBMS with two licensing models: free Community Server and proprietary
Enterprise Server.
 Offers ACID transactional guarantee (with InnoDB engine). In terms of CAP, it offers
immediate Consistency.
 Offers horizontal partitioning (sharding) via its Shared Nothing MySQL Cluster. As a
result, it offers high availability and high throughput with low latency and near-linear
Scaling.
 With its MySQL Cluster, it offers multi-master ACID transactions.
 Multi-model database and supports both structured data (SQL) and semi-structured data
(JSON).

PostgreSQL

PostgreSQL is one of the oldest open-source and free databases. It has tremendous community support
and is used in the Community as well as in the industry. It is one of the most popular and most used
databases. It is also the most Advanced Open Source Relational Database.

PostgreSQL has a lot of similarities with MySQL. It’s aimed at strengthening the standards of
compliance and extensibility. Consequently, it can process any workload, for both single-machine
products and complex applications. Owned and developed by PostgreSQL Global Development Group,
it still remains completely open-source. This DBMS is available for use with such platform systems as
Microsoft, iOS, Android, and many more.
5 Key Features
 Open Source RDMBS with a very permissible PostgreSQL license. There are many
extensions of PostgreSQL with various advanced features.
 Offers ACID transactional guarantee. In terms of CAP, it offers immediate Consistency as a
single Server.
 Citus Data, a PostgreSQL extension, offers much-coveted Distributed SQL features, i.e., a
database with the transactional guarantee of an SQL database and horizontal scaling of
NoSQL database.
 It offers more Advanced indexes liked partial Index, Bloom Filters. Also, creating an Index
in PostgreSQL is non-blocking.
 It is a feature-rich multi-model database supporting Structured Data (SQL), Semi-Structured
Data (JSON, XML), Key-Value, Spatial Data.

Q4
Consider the following expressions which use the result of a relational algebra operation as the
input to another operation. For each expression, explain in words what the expression does
(a) 𝜎 year ≥ 2009 (take) ⋈ students
Return rows of the input relation where year is greater than or equal to 2009. Then compare with
students and Output pairs of rows from the two relations that have the same value on all attributes that
have the same name.
(b) 𝜎 year ≥ 2009 (take ⋈ students)
Return rows of the input relation where year is greater than or equal to 2009. Then compare with
students and Output pairs of rows from the two relations that have the same value on all attributes that
have the same name.
(c) 𝛱ID, name, course_id (student ⋈ takes)
Output specified attributes from all rows of the input relation. Remove duplicate tuples from the
output.
Q5
Consider the relational database below
Employee (person_name, street, city)
Works (person_name, company_name, salary)
Company (company_name, city)
Give and expression in the relational algebra to express each of the following queries:

(a) Find the name of all employee who live in the city of “Agoiwoye”
Π perso n name
(σ city ¿ Agoiwoy e ( employee ) )
' '

(b) Find the names of all employees whose salary is greater than N100,000.00
Π perso n name
( σ salary >100000 ( employee × works ) )

(c) Find the names of all employees who live in “Ago-Iwoye” and whose salary is greater then
N100,000.00.
Π perso n name
(σ city ¿ Ago−Iwoy e , salary >100000 ( employee × works ) )
' '

Q6
Consider the relational database above, give an expression in the relational algebra to express
who work for each of the following queries:
(a) Find the name of all employees who work for “First Bank Nigeria PLC”,
Π perso n name
(σ company−name ¿ FirstBankPlc ' ( employee × works ) )
'

(b) Find the names and cities of residence of all employees “First Bank Nigeria PLC”,
Π perso n name , city (σ company−name ¿ FirstBankPlc ' ( employee × works ))
'

(c) Find the names, street address, and cities of residence of all employees who work for “First
Bank Nigeria PLC”, and earn more than N10,000.00
Π perso n name , street ,city ( σ company−name ¿ FirstBankPl c , salary> 10,000 ( employee × works ) )
' '

Q7
Let us design a database for a bank, including information about customers and their accounts.
Information about a customer includes their name, address, phone and social security number.
Accounts have numbers, types (e.g. saving, checking) and balance. We also need to record the
customer(s) who own an account. Give a description in ODL of this database. Pick appropriate
types for all attributes and relationship.
CREATE TABLE Customers ( name CHAR(20),
address CHAR(30),
phone CHAR(20),
SIN INTEGER );

Q8
Write the following queries, based on our running movie database example
Movie (title, year, length, incolor, studioName, procedure#)
StarsIn(MovieTitle, moviewYear, starName) MovieStar(name, address,
gender, birthday) moviewExec (name, address, cert#, networth) studio (name,
address, presc#)
In SQL,

(a) Find the address of OOU Radio


SELECT address
FROM studio
WHERE name =’OOU Radio’

(b) Find Alli Baba’s birthday


SELECT birthday
FROM MovieStar
WHERE name =’Alli Baba’

(c) Find all the stars that appeared in either a movie made in 2012 or a movie with
“Love” in the title.
SELECT i.starName
FROM MovieStar AS s, StarsIn as i
WHERE s.name = i.starName
movie_year =2012 and movietitle like ‘%love%’

(d) Find all executies worth at least N10,000,000

(e) Find all stars who either are made or live in ‘Ago-Iwoye’ (have Ago-Iwoye as a part
of their address).

Q9
Consider the SQL query
Select distinct p.a1
From p, r1, r2
Where p.r1 = r1.r1 OR p.r1 = r2.a1
Under what condition does the preceding query select values of p,r1 that are either in r1 or in
r2? Examine carefully the cases where one of r1 or r2 may be empty.
The query selects those of p.a1 that are equal to some value of r1.a1 or r2.a1 if and only if both r1 and
r2 are non-empty. If one or both of r1 and r2 are empty, the cartesian product of p, r1 and r2 is empty,
hence the result of the query is empty. If p itself is empty, the result is empty.

Q10
Compare and contrast

• Relational Database Model


• Network Database Model
• Hierarchical Database Model
(a) Hierarchical model:
This model presents data to users in a hierarchy of data elements that can be represented in a sort of
inverted tree. In a sales order processing system, a customer may have many invoices raised to him and
each invoice may have different data elements. Thus, the root level of data is customer, the second
level is invoice and the last level is line items such as invoice number, date, product, quantity, etc.

But where there are many-to-many relationships between two entities, this model would not be
appropriate. Figure 9.4 shows the hierarchical model of data for a sales order processing application.

(b) Network model:


In the network model of database, there are no levels and a record can have any number of owners and
also can have ownership of several records.

As there is no definite path defined for retrieval of data, the number of links is very large and thus
network databases are complex, slow and difficult to implement. In view of the difficulty in
implementation, network model is used only when all other options are closed.
The typical example of a network database may be the employee and the department he/she has
worked or can work with in future. Figure 9.5 shows the network model of data for an employee
information system.

(c) Relational model:


The most recent and popular model of database design is the relational database model. This model
was developed to overcome the problems of complexity and inflexibility of the earlier two models in
handling databases with many-to-many relationships between entities.

These models are not only simple but also powerful. In the relational database, each file is perceived as
a flat file (a two-dimensional table) consisting of many lines (records), each record having key and
non-key data item(s). The key item(s) is the data element(s) that identifies the record. Figure 9.6 shows
the files, and the fields that each record shall have in a customer invoicing system.

Q11
(a) With a typical example, explain what is meant by Database Normalization?
Another method for designing a relational database is to use a process commonly known as
normalization. The goal is to generate a set of relation schemas that allows us to store information
without unnecessary redundancy, yet also allows us to retrieve information easily. The approach is to
design schemas that are in an appropriate normal form. To determine whether a relation schema is in
one of the desirable normal forms, we need additional information about the real-world enterprise that
we are modeling with the database.

The need for database normalization are


 Repetition of information
 Inability to represent certain information

Example

Suppose that instead of having the two separate tables instructor and department, we have a single
table, faculty, that combines the information from the two tables (as shown in Figure 1.4). Notice that
there are two rows in faculty that contain repeated information about the History department,
specifically, that department’s building and budget. The repetition of information in our alternative
design is undesirable. Repeating information wastes space. Furthermore, it complicates updating the
database. Suppose that we wish to change the budget amount of the History department from $50,000
to $46,800. This change must be reflected in the two rows; contrast this with the original design, where
this requires an update to only a single row. Thus, updates are more costly under the alternative design
than under the original design. When we perform the update in the alternative database, we must
ensure that every tuple pertaining to the History department is updated, or else our database will show
two different budget values for the History department

(b) Define 1NF, 2NF and 3NF


1NF (First Normal Form) Rules
A relation is in 1NF if it contains an atomic value.

 Each table cell should contain a single value.


 Each record needs to be unique.
The above table in 1NF-

2NF (Second Normal Form) Rules


A relation will be in 2NF if it is in 1NF and all non-key attributes are fully functional dependent on the
primary key.

 Rule 1- Be in 1NF
 Rule 2- Single Column Primary Key that does not functionally dependant on any subset of
candidate key relation

It is clear that we can’t move forward to make our simple database in 2nd Normalization form unless
we partition the table above.

3NF (Third Normal Form) Rules


A relation will be in 3NF if it is in 2NF and no transition dependency exists.

 Rule 1- Be in 2NF
 Rule 2- Has no transitive functional dependencies

To move our 2NF table into 3NF, we again need to again divide our table.

Below is a 3NF example in SQL database:


(c) Compare the following with examples

• Functional Dependencies
• Transitive dependency
Q14
(a) Suppose that there is a database system that never fails. Is a recovery manager
required for this system?
Even in this case, the recovery manager is needed to perform rollback of aborted transactions for cases
where the transaction itself fails.
(b) Database system implementers have paid much more attention to the ACID properties than
have file-system implementers. Why might this be the case.
Database systems usually perform crucial tasks whose effects need to be atomic and durable, and
whose outcome affects the real world in a permanent manner. Examples of such tasks are monetary
transactions, seat bookings, etc. hence, the ACID properties have to be ensured. In contrast, most users
of file systems would not be willing to pay the price (monetary, displace, time) of supporting ACID
properties.
(c) Justify the following statement. Concurrent execution of transactions is more important
when data must be fetched from (slow) disk or when transactions are long and is less
important when data are in memory and transactions are very short.
Only stable storage ensures true durability. Even nonvolatile store is susceptible to data loss, albeit less
so than volatile storage. Stable storage is only an abstraction. It is approximated to redundant use of
nonvolatile storage in which data are not replicated but distributed physically to reduce to near zero the
change of a single event causing data loss.
(d) What is a cascadeless schedule? Why is cascadelessness of schedules desirable? Are there
any circumstances under which it would be desirable to allow non-cascadeless schedule?
Explain your answers.
A cascadeless schedule is one where, for each pair of transaction T i and Tj such that Tj reads data items
previously written by TI, the commit operation of Ti appeas before the read operation of Tj.
Cascadeless schedule are desirable because the failure of a transaction does not lead to the aborting of
any other transaction. Of course this comes at the cost of less concurrency. If failures occur rarely, so
that we can pay the price of cascading aborts for the increased concurrency, noncascadeless schedules
might be desirable.
Q15
(a) Consider a database for a bank where the database system uses snapshot isolation. Describe a
particular scenario in which a nonserialisable execution occurs would present a problem for
the bank.
Suppose that the bank enforces the integrity constraint that the sum of balances in the checking and the
savings account of a customer must not be negative. Suppose the checking and savings balances for a
customer are $100 and $200 respectively.
Suppose that transaction T1 withdraws $200 from the checking account and verifying the integrity
constraints by reading both the balances. Suppose that the concurrent transaction T 2 withdraws $200
from the checking account after verifying the integrity constraint by reading both the balances.
Since each of the transactions check the integrity constraints on its own snapshot, if they run
concurrently, each will believe that the sum of the balances after the withdrawal is $100, and therefore
its withdrawal does not violate the integrity constraint. Since the two transactions update different data
items, they do not have any update conflict, and under snapshot isolation both of them can commit.
This is a non-serializable execution which results in a serious problem.

(b) Consider the following two transactions


T13: Read (A);
Read (B);
If A :=0 then B := B + 1; Write (B)

T14: Read (B);


Read (A);
If B := 0 then A := A + 1; Write (A).
Let the consistency requirement be A = 0 V B = 0, with A =B = 0

(i) Show that every serial execution involving these two transactions preserve the
consistency of the database.
(ii) Show a concurrent execution of T13 and T14 that produces a nonserializable schedule.

(iii) Is there a concurrent execution of T13 and T14 that produces a serializable schedule?
There is no parallel execution resulting in a serializable schedule. From part a. we know that a
serializable schedule results in A = 0 ∨ B = 0. Suppose we start with T1 read(A). Then when the
schedule ends, no matter when we run the steps of T2, B = 1. Now suppose we start executing T2 prior
to completion of T1. Then T2 read(B) will give B a value of 0. So when T2 completes, A = 1. Thus B
= 1 ∧ A = 1 → ¬ (A = 0 ∨ B = 0). Similarly for starting with T2 read(B).

Q16

a. What do you understand by OLAP and Data warehousing

A data warehouse is a repository of data gathered from multiple sources and stored under a common,
unified database schema. Data stored in warehouse are analyzed by a variety of complex aggregations
and statistical analyses, often exploiting SQL constructs for data analysis.

A data warehouse serves as a repository to store historical data that can be used for analysis.

OLAP is Online Analytical processing that can be used to analyze and evaluate data in a warehouse.
The warehouse has data coming from varied sources. OLAP tool helps to organize data in the
warehouse using multidimensional models.

b. Describe the circumstances in which you would chose to use embedded SQL rather
than SQL alone or only a general-purpose programming language
Writing queries in SQL is typically much easier than coding the same queries in a general-purpose
programming language. However not all kinds of queries can be written in SQL. Also nondeclarative
actions such as printing a report, interacting with a user, or sending the results of a query to a graphical
user interface cannot be done from within SQL. Under circumstances in which we want the best of
both worlds, we can choose embedded SQL or dynamic SQL, rather than using SQL alone or using
only a general-purpose programming language.

Embedded SQL has the advantage of programs being less complicated since it avoids the clutter of the
ODBC or JDBC function calls, but requires a specialized preprocessor.

c. Write a Java function using JBDC metadata feature that takes a ResultSet as input
parameter, and prints out the result in tabular form, which appropriate names as
column headings.
a. Concurrency Controls in Database Management System is a procedure of managing
simultaneous operations without conflicting with each other. It ensures that Database
transactions are performed concurrently and accurately to produce correct results without
violating data integrity of the respective Database.

Concurrency Control is the working concept that is required for controlling and managing the
concurrent execution of database operations and thus avoiding the inconsistencies in the
database.
 

b. Locking protocol

You might also like