Department of
Computer Science and Engineering
Subject Code / Title
1151CS107 – Database Management Systems
Course Category: Program Core ( Credits-3)
Faculty Name : [Link]
Computer Science & Engineering
Slot No. : S5 and S6
Semster/Year :Winter Semester 2020-2021
Pre-requisite:
Course Code : 1151CS102
Course Name: Data Structures
Links to Other Courses
Sl. No Course Code Course Name
1 Object Oriented Software Engineering
1151CS112
2 1151CS114 Data warehousing and Data mining
3 1152CS139 Data Science
4
1156CS601
Minor Project
5 1156CS701 Major Project
Course Description
Backbone for all major applications today.
Tightly or loosely coupled, intranet or internet based, financial, social,
administrative, and so on.
Based on relational and other models have long formed the basis for such
databases. May differ - share a common set of models, design paradigms and a
Structured Query Language (SQL)
Course examines data structures, file organizations, concepts and principles of
DBMS’s, data analysis, database design, data modeling, database management,
data & query optimization, and database implementation.
Course introduces relational data models; entity-relationship modeling, SQL,
Data normalization, and Database design.
Design of simple multi-tier client / server architectures based and Web-based
database applications is also introduced.
Overview of Database Management Systems
Course Content
UNIT I - INTRODUCTION TO DBMS L–9
Purpose of Database System – Database Schema and Instances-
Views of data – Database Languages - Database System
Architecture – Database users and Administrator – Entity–
Relationship model – E-R Diagrams - Introduction to relational
databases –Structure of relational databases.
UNIT II - RELATIONAL MODEL L–9
Basics of the Relational Model- From E/R Diagrams to Relational
Designs – Keys and Integrity Constraints - Relational Algebra –
Relational Calculus-Tuple –Structured Query language( SQL)
Basic and additional Operations – Nested Queries & Join Queries–
Embedded SQL- Triggers - View Definitions and Modifications.
Course Content…
UNIT III NORMALIZATION L–9
Introduction and problem of data redundancy-Features of good
Relational database design- Functional Dependencies -
Normalization – First Normal Form, Second Normal Form and
Third Normal Form –Advanced Normalization -Boyce/Codd
Normal Form, Fourth Normal Form and Fifth Normal Form-
Dependencies preservation-Case Studies of database system.
UNIT IV TRANSACTION AND CONCURRENCY L – 9
Transaction Concepts – ACID Properties –Transactions and
Schedules- Transaction States - Concurrent Execution-
Serializability- Types of Failure-Recoverability -System
Recovery – Media Recovery – Types of Locks-Two Phase
locking – Deadlock- Detection, Recovery and Prevention.
UNIT V PHYSICAL STORAGE & DATABASE
CONCEPTS Overview of Physical Storage Media –
Magnetic Disks – RAID – Introduction to Distributed Databases
and Client/Server Databases - Statistical Databases-
Multidimensional and Parallel databases- Spatial and
multimedia databases- Mobile and web databases - Object
Oriented Databases-XML Databases.
Text Books:
1. Abraham Silberschatz, Henry F. Korth and S. Sudharshan,
“Database System Concepts”, Sixth Edition, Tata McGraw
Hill, 2011.
2. Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom,
“Database Systems: The Complete Book”, Pearson Education,
Second Edition, 2008.
3. Ramez Elmasri and Shamkant B. Navathe, “Fundamentals of
Database Systems”, Fifth Edition, Pearson Education, 2008.
References Books:
1. Raghu Ramakrishnan, “Database Management Systems”, Third
Edition, McGraw Hill, 2003.
2. [Link], “Database Systems Concepts, Design and Applications”,
First Edition, Pearson Education, 2006.
3. C. J. Date ,”An Introduction to Database Systems” – 8th Edition,
Addison Wesley, 2004.
4. [Link], “Database Systems Concepts, Design and Applications”,
First Edition, Pearson Education, 2006.
Online Resources:
1. [Link]
2.[Link]
ember%[Link]
3. [Link]
UNIT I
INTRODUCTION TO
DBMS
9
UNIT I INTRODUCTION TO DBMS L9
Purpose of Database System – Database Schema and Instances- Views of
data – Database Languages – Database System Architecture – Database users
and Administrator – Entity–Relationship model – E-R Diagrams -
Introduction to relational databases –Structure of relational databases.
Level of learning domain
CO No. Course Outcomes (Based on revised Bloom’s
taxonomy)
Identify and explain the
underlying concepts
CO1 of database K2
technologies
Introduction
Purpose of Database Systems
View of Data
Data Models
Data Definition Language
Data Manipulation Language
Transaction Management
Storage Management
Database Administrator
Database Users
Overall System Structure
Database Systems
DBMS contains information about a particular enterprise
Collection of interrelated data
Set of programs to access the data
An environment that is both convenient and efficient to use
Database systems are used to manage collections of data that are:
Highly valuable
Relatively large
Accessed by multiple users and applications, often at the same
time.
A modern database system is a complex software system whose task
is to manage a large, complex collection of data.
Databases touch all aspects of our lives
Database Applications
Enterprise Information
Sales: customers, products, purchases
Accounting: payments, receipts, assets
Human Resources: Information about employees, salaries, payroll
taxes.
Manufacturing: management of production, inventory, orders, supply
chain.
Banking and finance
customer information, accounts, loans, and banking transactions.
Credit card transactions
Finance: sales and purchases of financial instruments (e.g., stocks
and bonds; storing real-time market data
Universities: registration, grades
Database Applications (Cont.)
Airlines: reservations, schedules
Telecommunication: records of calls, texts, and data usage,
generating monthly bills, maintaining balances on prepaid
calling cards
Web-based services
Online retailers: order tracking, customized
recommendations
Online advertisements
Document databases
Navigation systems: For maintaining the locations of varies
places of interest along with the exact routes of roads, train
systems, buses, etc.
Purpose of Database Systems
Drawbacks of using file systems to store data:
In the early days, database applications were built directly on
top of file systems, which leads to:
Data redundancy and inconsistency:
o Data is stored in multiple file formats resulting in
duplication of
information in different files
Difficulty in accessing data
Need to write a new program to carry out each new task
Data isolation
Multiple files and formats
Integrity problems
Integrity constraints (e.g., account balance > 0) become “ buried” in program
code rather than being stated explicitly
Hard to add new constraints or change existing ones
Purpose of Database Systems (Cont.)
Atomicity of updates
Failures may leave database in an inconsistent state with partial
updates carried out
Example: Transfer of funds from one account to another should
either complete or not happen at all
Concurrent access by multiple users
Concurrent access needed for performance
Uncontrolled concurrent accesses can lead to inconsistencies
Ex: Two people reading a balance (say 100) and updating it by
withdrawing money (say 50 each) at the same time
Security problems
Hard to provide user access to some, but not all, data
Database systems offer solutions to all the above problems
Instances and Schemas
Similar to types and variables in programming languages
Schema – the logical structure of the database
e.g., the database consists of information about a set of customers and accounts and the
relationship between them)
Analogous to type information of a variable in a program
Physical schema: database design at the physical level
Logical schema: database design at the logical level
Instance – the actual content of the database at a particular point in time
Analogous to the value of a variable
Physical Data Independence – the ability to modify the physical schema without
changing the logical schema
Applications depend on the logical schema
In general, the interfaces between the various levels and components should be well
defined so that changes in some parts do not seriously influence others.
17
View of Data
An architecture for a database system
18
Levels of Abstraction
Physical level describes how a record (e.g., customer) is
stored.
Logical level: describes data stored in database, and the
relationships among the data.
type customer = record
name : string;
street : string;
city : integer;
end;
View level: application programs hide details of data types.
Views can also hide information (e.g., salary) for security
purposes.
19
Database Languages
DATA DEFINITION LANGUAGE (DDL)
Specification notation for defining the database schema
E.g.
create table account (
account-number char(10),
balance integer)
DDL compiler generates a set of tables stored in a data
dictionary
Data dictionary contains metadata (i.e., data about data)
database schema
Data storage and definition language
language in which the storage structure and access methods used by the
database system are specified
Usually an extension of the data definition language
20
Data Manipulation Language (DML)
Language for accessing and manipulating the data
organized by the appropriate data model
DML also known as query language
Two classes of languages
Procedural – user specifies what data is required and
how to get those data
Nonprocedural – user specifies what data is required
without specifying how to get those data
SQL is the most widely used query language
21
SQL
SQL: widely used non-procedural language
E.g. find the name of the customer with customer-id 192-83-7465
select [Link]-name
from customer
where [Link]-id = ‘192-83-7465’
E.g. find the balances of all accounts held by the customer with
customer-id 192-83-7465
select [Link]
from depositor, account
where [Link]-id = ‘192-83-7465’ and
[Link]-number = [Link]-number
Application programs generally access databases through one of
Language extensions to allow embedded SQL
Application program interface (e.g. ODBC/JDBC) which allow SQL
queries to be sent to a database
22
Overall System Structure
23
Transaction Management
A transaction is a collection of operations that
performs a single logical function in a database
application
Transaction-management component ensures that the
database remains in a consistent (correct) state despite
system failures (e.g., power failures and operating
system crashes) and transaction failures.
Concurrency-control manager controls the interaction
among the concurrent transactions, to ensure the
consistency of the database.
24
Storage Management
Storage manager is a program module that provides
the interface between the low-level data stored in the
database and the application programs and queries
submitted to the system.
The storage manager is responsible to the following
tasks:
interaction with the file manager
efficient storing, retrieving and updating of data
25
Application Architectures
Two-tier architecture: E.g. client programs using ODBC/JDBC to
communicate with a database
Three-tier architecture: E.g. web-based applications, and
applications built using “middleware”
26
Database Users
Users are differentiated by the way they expect to interact with
the system
Application programmers – interact with system through DML
calls
Sophisticated users – form requests in a database query
language
Specialized users – write specialized database applications that
do not fit into the traditional data processing framework
Naïve users – invoke one of the permanent application
programs that have been written previously
E.g. people accessing database over the web, bank tellers, clerical
staff
27
Database Administrator
Coordinates all the activities of the database system;
the database administrator has a good understanding
of the enterprise’s information resources and needs.
Database administrator's duties include:
Schema definition
Storage structure and access method definition
Schema and physical organization modification
Granting user authority to access the database
Specifying integrity constraints
Acting as liaison with users
Monitoring performance and responding to changes in
requirements
28
Data Models
A collection of tools for describing
data
data relationships
data semantics
data constraints
Entity-Relationship model
Relational model
Other models:
object-oriented model
semi-structured data models
Older models: network model and hierarchical
model
29
Entity-Relationship Model
Example of schema in the entity-relationship model
30
Entity Relationship Model (Cont.)
E-R model of real world
Entities (objects)
E.g. customers, accounts, bank branch
Relationships between entities
E.g. Account A-101 is held by customer Johnson
Relationship set depositor associates customers with accounts
Widely used for database design
Database design in E-R model usually converted to
design in the relational model (coming up next) which is
used for storage and processing
31
Relational Model Attributes
Example of tabular data in the relational model
customer- customer- customer- account-
Customer-
name street city number
id
192-83-7465 Johnson Alma Palo Alto A-101
019-28-3746 Smith North Rye A-215
192-83-7465 Johnson Alma Palo Alto A-201
321-12-3123 Jones Main Harrison A-217
019-28-3746 Smith North Rye A-201
32
A Sample Relational Database
33
Structure of Relational Databases
Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Di
Example: If
customer_name = {Jones, Smith, Curry, Lindsay, …} /* Set of all
customer names */
customer_street = {Main, North, Park, …} /* set of all street names*/
customer_city = {Harrison, Rye, Pittsfield, …} /* set of all city names */
Then r = { (Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield) }
is a relation over
customer_name x customer_street x customer_city
34
Attribute Types
Each attribute of a relation has a name
The set of allowed values for each attribute is called the
domain of the attribute
Attribute values are (normally) required to be atomic; that
is, indivisible
E.g. the value of an attribute can be an account number,
but cannot be a set of account numbers
Domain is said to be atomic if all its members are atomic
The special value null is a member of every domain
The null value causes complications in the definition of
many operations
We shall ignore the effect of null values in our main
presentation and consider their effect later
35
Relation Schema
A1, A2, …, An are attributes
R = (A1, A2, …, An ) is a relation schema
Example:
Customer_schema = (customer_name, customer_street,
customer_city)
r(R) denotes a relation r on the relation schema R
Example:
customer (Customer_schema)
36
Relation Instance
The current values (relation instance) of a relation
are specified by a table
An element t of r is a tuple, represented by a row in
a table
attributes
(or columns)
customer_name customer_street customer_city
Jones Main Harrison
Smith North Rye tuples
Curry North Rye (or rows)
Lindsay Park Pittsfield
customer
37
Relations are Unordered
Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
Example: account relation with unordered tuples
38
Database
A database consists of multiple relations
Information about an enterprise is broken up into parts, with each relation storing one
part of the information
account : stores information about accounts
depositor : stores information about which customer
owns which account
customer : stores information about customers
Storing all information as a single relation such as
bank(account_number, balance, customer_name, ..)
results in
repetition of information
e.g.,if two customers own an account (What gets repeated?)
the need for null values
e.g., to represent a customer without an account
Normalization theory (Chapter 7) deals with how to design relational schemas
39
The customer Relation
40
The depositor Relation
41