0% found this document useful (0 votes)
13 views35 pages

Database Management Systems Overview

Uploaded by

asifmiah137210
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views35 pages

Database Management Systems Overview

Uploaded by

asifmiah137210
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

CSE311: Database Management Systems

Dr. Abu Sayed Md. Latiful Hoque


Professor, CSE, BUET
&
Visiting Professor, ECE, NSU
Room SAC 1044B

Contact: mobile 01556346357, email: [Link]@[Link]

1.1
Text book

No Name of Author(s) Title of Book Edition

1 Abraham Silberschatz Database System 7th.


Henry F. Korth, S. Sudarshan Concepts

1.2
Weightage Distribution among Assessment
Tools

Assessment Tools Weightage (%) Remarks


Attendance 5
Quizzes 20 Best 2 out of 3
Midterm 20
Final Exam 30
Lab Work and Project 25
Total 100

1.3
Examinations schedule

Assessment Tools Date


Attendance
Quizzes: QUIZ 1 Week 4
Quizzes: QUIZ 2 Week 8
Midterm Week 10
Quizzes: QUIZ 3 Week 13
Final Exam As per NSU Schedule
Lab Work and Project
Result As per NSU academic calendar

1.4
Database Applications Examples

 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

1.7
Database Applications Examples (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.

1.8
Purpose of Database Systems

In the early days, database applications were built directly on top of file
systems, which leads to:
 Data redundancy and inconsistency: 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

1.9
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

1.10
Data Models
 A collection of tools for describing
• Data
• Data relationships
• Data semantics
• Data constraints
 Relational model
 Entity-Relationship data model (mainly for database design)
 Object-based data models (Object-oriented and Object-relational)
 Semi-structured data model (XML)
 Other older models:
• Network model
• Hierarchical model

1.13
Relational Model

 All the data is stored in various tables.


 Example of tabular data in the relational model

Columns

Rows

Ted Codd
Turing Award 1981

1.14
A Sample Relational Database

1.15
Levels of Abstraction

 Physical level: describes how a record (e.g., instructor) is stored.


 Logical level: describes data stored in database, and the relationships
among the data.
type instructor = record
ID : string;
name : string;
dept_name : string;
salary : integer;
end;
 View level: application programs hide details of data types. Views can
also hide information (such as an employee’s salary) for security
purposes.

1.16
View of Data

An architecture for a database system

1.17
Instances and Schemas

 Similar to types and variables in programming languages


 Logical Schema – the overall logical structure of the database
• Example: The database consists of information about a set of
customers and accounts in a bank and the relationship between them
 Analogous to type information of a variable in a program
 Physical schema – the overall physical structure of the database
 Instance – the actual content of the database at a particular point in time
• Analogous to the value of a variable

1.18
Physical Data Independence

 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.

1.19
Data Definition Language (DDL)

 Specification notation for defining the database schema


Example: create table instructor (
ID char(5),
name varchar(20),
dept_name varchar(20),
salary numeric(8,2))
 DDL compiler generates a set of table templates stored in a data
dictionary
 Data dictionary contains metadata (i.e., data about data)
• Database schema
• Integrity constraints
 Primary key (ID uniquely identifies instructors)

• Authorization
 Who can access what

1.20
Data Manipulation Language (DML)

 Language for accessing and updating the data organized by the


appropriate data model
• DML also known as query language
 There are basically two types of data-manipulation language
• Procedural DML -- require a user to specify what data are needed
and how to get those data.
• Declarative DML -- require a user to specify what data are needed
without specifying how to get those data.
 Declarative DMLs are usually easier to learn and use than are procedural
DMLs.
 Declarative DMLs are also referred to as non-procedural DMLs
 The portion of a DML that involves information retrieval is called a query
language.

1.21
SQL Query Language

 SQL query language is nonprocedural. A query takes as input several


tables (possibly only one) and always returns a single table.
 Example to find all instructors in Comp. Sci. dept
select name
from instructor
where dept_name = 'Comp. Sci.'
 SQL is NOT a Turing machine equivalent language
 To be able to compute complex functions SQL is usually embedded in
some higher-level language
 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

1.22
Database Access from Application Program

 Non-procedural query languages such as SQL are not as powerful as a


universal Turing machine.
 SQL does not support actions such as input from users, output to
displays, or communication over the network.
 Such computations and actions must be written in a host language, such
as C/C++, Java or Python, with embedded SQL queries that access the
data in the database.
 Application programs -- are programs that are used to interact with the
database in this fashion.

1.23
Database Design

The process of designing the general structure of the database:


 Logical Design – Deciding on the database schema. Database design
requires that we find a “good” collection of relation schemas.
• Business decision – What attributes should we record in the
database?
• Computer Science decision – What relation schemas should we
have and how should the attributes be distributed among the
various relation schemas?
 Physical Design – Deciding on the physical layout of the database

1.24
Database Engine

 A database system is partitioned into modules that deal with each of the
responsibilities of the overall system.
 The functional components of a database system can be divided into
• The storage manager,
• The query processor component,
• The transaction management component.

1.25
Storage Manager
 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 OS file manager
• Efficient storing, retrieving and updating of data
 The storage manager components include:
• Authorization and integrity manager
• Transaction manager
• File manager
• Buffer manager

1.26
Storage Manager (Cont.)
 The storage manager implements several data structures as part of the
physical system implementation:
• Data files -- store the database itself
• Data dictionary -- stores metadata about the structure of the
database, in particular the schema of the database.
• Indices -- can provide fast access to data items. A database index
provides pointers to those data items that hold a particular value.

1.27
Query Processor

 The query processor components include:


• DDL interpreter -- interprets DDL statements and records the
definitions in the data dictionary.
• DML compiler -- translates DML statements in a query language into
an evaluation plan consisting of low-level instructions that the query
evaluation engine understands.
 The DML compiler performs query optimization; that is, it picks the
lowest cost evaluation plan from among the various alternatives.
• Query evaluation engine -- executes low-level instructions generated
by the DML compiler.

1.28
Query Processing

1. Parsing and translation


2. Optimization
3. Evaluation

1.29
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.

1.30
Database Architecture

 Centralized databases
• One to a few cores, shared memory
 Client-server,
• One server machine executes work on behalf of multiple client
machines.
 Parallel databases
• Many core shared memory
• Shared disk
• Shared nothing
 Distributed databases
• Geographical distribution
• Schema/data heterogeneity

1.31
Database Architecture
(Centralized/Shared-Memory)

1.32
Database Applications

Database applications are usually partitioned into two or three parts


 Two-tier architecture -- the application resides at the client machine,
where it invokes database system functionality at the server machine
 Three-tier architecture -- the client machine acts as a front end and
does not contain any direct database calls.
• The client end communicates with an application server, usually
through a forms interface.
• The application server in turn communicates with a database
system to access data.

1.33
Two-tier and three-tier architectures

1.34
Database Users

1.35
Database Administrator

A person who has central control over the system is called a database
administrator (DBA). Functions of a DBA include:
 Schema definition
 Storage structure and access-method definition
 Schema and physical-organization modification
 Granting of authorization for data access
 Routine maintenance
 Periodically backing up the database
 Ensuring that enough free disk space is available for normal
operations, and upgrading disk space as required
 Monitoring jobs running on the database

1.36
History of Database Systems

 1950s and early 1960s:


• Data processing using magnetic tapes for storage
 Tapes provided only sequential access

• Punched cards for input


 Late 1960s and 1970s:
• Hard disks allowed direct access to data
• Network and hierarchical data models in widespread use
• Ted Codd defines the relational data model
 Would win the ACM Turing Award for this work
 IBM Research begins System R prototype
 UC Berkeley (Michael Stonebraker) begins Ingres prototype
 Oracle releases first commercial relational database

• High-performance (for the era) transaction processing

1.37
History of Database Systems (Cont.)

 1980s:
• Research relational prototypes evolve into commercial systems
 SQL becomes industrial standard
• Parallel and distributed database systems
 Wisconsin, IBM, Teradata
• Object-oriented database systems
 1990s:
• Large decision support and data-mining applications
• Large multi-terabyte data warehouses
• Emergence of Web commerce

1.38
History of Database Systems (Cont.)

 2000s
• Big data storage systems
 Google BigTable, Yahoo PNuts, Amazon,
 “NoSQL” systems.
• Big data analysis: beyond SQL
 Map reduce and friends
 2010s
• SQL reloaded
 SQL front end to Map Reduce systems
 Massively parallel database systems
 Multi-core main-memory databases

1.39

Common questions

Powered by AI

The relational model, introduced by Ted Codd, stores data in tables with rows and columns, allowing for a more flexible organization and manipulation using operations like select, insert, update, and delete, typically through non-procedural languages like SQL. This model differs from traditional hierarchical and network data models, which organize data in tree-like and graph structures, respectively, limiting data retrieval flexibility and requiring more complex, procedural query languages .

The storage manager acts as a crucial liaison between the low-level data storage and the applications or queries interacting with the database. It handles several tasks, including managing the interaction with the operating system's file manager, efficiently storing, retrieving, and updating data, and maintaining the data dictionary. It also manages data files, buffers, and indices for quick data retrieval and enforces authorization and integrity constraints, ensuring system consistency and security .

The query processing workflow in a DBMS, comprising parsing, optimization, and evaluation, organizes the execution of database queries effectively. Parsing checks query syntax and converts it into an internal form. During optimization, alternative execution strategies are evaluated for cost, selecting the most efficient approach. Finally, evaluation executes the plan. This systematic processing enhances performance by reducing resource usage and speeds up query resolution through optimal path selection .

Advancements from sequential magnetic tapes and card input to advanced relational models have significantly boosted data access and manipulation efficiency. The adoption of SQL as an industrial standard, development of parallel and distributed systems, and introduction of big data architectures like NoSQL have facilitated handling vast datasets. These innovations have improved transactional efficiency, enabled complex query capabilities, and supported large-scale, real-time data processing, accommodating contemporary needs for speed and scalability in web commerce and data-intensive applications .

In a two-tier architecture, the client machine directly interacts with the database server, invoking its functionalities directly. In contrast, a three-tier architecture introduces an intermediate application server; the client communicates with the application server, which in turn interacts with the database server. This separation allows for more efficient distribution of processing tasks, improved scalability, and system security by ensuring client machines do not directly access database systems .

The logical level of abstraction describes the structure and relationship among the data as intended by database designers, akin to data types in programming. It emphasizes data and relationships without specificity on how data is actually stored. The physical level, in contrast, pertains to the actual storage of data, detailing how records are physically stored on a device. This separation allows physical data independence whereby changes to physical storage don't affect logical schema, crucial for flexibility and system management .

Physical data independence allows changes to the physical schema of a database, like storage devices or data formats, without altering the logical schema. This independence is critical in database management as it permits administrators to optimize storage performance and efficiency without requiring redeployment or redesign of applications dependent on the data. It enables easier maintenance and enhancement of databases as technological advancements occur, allowing flexible adaptation to new storage technologies while keeping application logic consistent .

SQL is considered less powerful than a Turing machine because it is a non-procedural query language designed for efficient data retrieval and manipulation, but it lacks capabilities for generalized computation, input/output operations, and dynamic interaction inherent in Turing-complete languages. As a result, SQL must be embedded in higher-level host languages like C++, Java, or Python for comprehensive application development where logic requires control structures, loop iterations, and larger-scale computational tasks .

Procedural data manipulation languages (DMLs) require explicit instructions on how to access and manipulate data, dictating a step-by-step process. Declarative DMLs, like SQL, abstract these steps away, allowing users to specify what data they need without detailing how to retrieve it. Declarative languages are generally easier to learn and use, enhancing usability by allowing users to focus on the needed results rather than the retrieval process, thus improving productivity and reducing complexity in data interaction .

Database systems were developed to address several limitations inherent in file systems, including data redundancy and inconsistency, difficulty in accessing data, data isolation, integrity problems, atomicity of updates, and concurrent access by multiple users. File systems did not adequately protect against these issues, as they resulted in duplication of data, challenges in writing specific programs for data access, issues with maintaining integrity constraints, and difficulty in handling concurrent user interactions without causing inconsistencies .

You might also like