DBMS Lecture 1
DBMS Lecture 1
Database
1. Data:
○ Raw facts and figures that can be processed to produce meaningful
information.
2. Database Schema:
○ The structure that defines the organization of data in a database,
including tables, fields, relationships, indexes, etc.
3. Tables:
○ Collections of related data entries consisting of rows and columns.
Each row represents a unique record, and each column represents a
field of the record.
4. Fields (Columns):
○ Attributes of the data stored in a table. Each field has a specific
data type, such as integer, string, date, etc.
5. Records (Rows):
○ Individual entries in a table. Each record contains data for each field
defined in the table.
6. Primary Key:
○ A unique identifier for a record in a table. No two rows can have the
same primary key value.
7. Foreign Key:
○ A field in one table that uniquely identifies a row in another table,
establishing a relationship between the two tables.
8. Indexes:
○ Data structures that improve the speed of data retrieval operations
on a database table.
9. Views:
○ Virtual tables created by a query joining one or more tables. They
provide a way to present data without storing it physically.
Types of Databases
1. Relational Databases:
○ Use tables to store data and SQL (Structured Query Language) for
querying and managing data. Examples: MySQL, PostgreSQL,
Oracle, SQL Server.
2. NoSQL Databases:
○ Designed for specific data models and have flexible schemas. They
include document databases, key-value stores, column-family
stores, and graph databases. Examples: MongoDB, Cassandra,
Redis, Neo4j.
3. Object-Oriented Databases:
○ Store data in the form of objects, similar to object-oriented
programming. Examples: ObjectDB, db4o.
4. Hierarchical Databases:
○ Organize data in a tree-like structure. Examples: IBM Information
Management System (IMS).
5. Network Databases:
○ Use a graph structure to represent relationships among data.
Examples: Integrated Data Store (IDS), CA-IDMS.
6. Time-Series Databases:
○ Optimized for storing and querying time-series data. Examples:
InfluxDB, TimescaleDB.
7. NewSQL Databases:
○ Combine the scalability of NoSQL systems with the ACID
guarantees of traditional relational databases. Examples: Google
Spanner, CockroachDB.
Database Management System (DBMS)
Components of a DBMS
1. Database Engine:
○ The core service for accessing and processing data.
2. Database Schema:
○ Metadata that defines the structure of the database, including
tables, indexes, views, and relationships.
3. Query Processor:
○ Translates user queries into low-level instructions for the database
engine.
4. Transaction Manager:
○ Ensures that all database transactions are processed reliably and
adhere to ACID (Atomicity, Consistency, Isolation, Durability)
properties.
5. Storage Manager:
○ Manages the storage of data on disk, including data files, index
files, and log files.
6. Database Utilities:
○ Tools for backup, recovery, data import/export, and database
maintenance.
Functions of a DBMS
1. Data Definition:
○ Allows users to define the database structure using Data Definition
Language (DDL) statements like CREATE, ALTER, and DROP.
2. Data Manipulation:
○ Provides tools for inserting, updating, deleting, and querying data
using Data Manipulation Language (DML) statements like SELECT,
INSERT, UPDATE, and DELETE.
3. Data Security:
○ Ensures that only authorized users can access and manipulate data.
It provides authentication, authorization, and encryption
mechanisms.
4. Data Integrity:
○ Enforces data integrity constraints to maintain data accuracy and
consistency, including primary key, foreign key, unique, and check
constraints.
5. Data Backup and Recovery:
○ Provides tools and processes for backing up data and restoring it in
case of data loss or corruption.
6. Data Concurrency:
○ Manages concurrent access to data by multiple users, ensuring data
consistency and isolation of transactions.
7. Data Abstraction:
○ Provides a level of abstraction between the physical storage of data
and user interactions, allowing users to interact with data at a
higher level.
8. Performance Tuning:
○ Offers tools and techniques for optimizing database performance,
including indexing, query optimization, and storage management.
Types of DBMS
1. Hierarchical DBMS:
○ Data is organized in a tree-like structure. Example: IBM's IMS.
2. Network DBMS:
○ Data is organized in a graph, allowing many-to-many relationships.
Example: Integrated Data Store (IDS).
3. Relational DBMS (RDBMS):
○ Data is stored in tables, and relationships are managed using
foreign keys. Example: MySQL, PostgreSQL, Oracle.
4. Object-Oriented DBMS:
○ Data is stored as objects, similar to object-oriented programming.
Example: ObjectDB.
5. NoSQL DBMS:
○ Designed for specific data models and flexible schemas. Examples:
MongoDB (document-based), Redis (key-value), Cassandra
(column-family), Neo4j (graph).
Popular DBMS Software
1. MySQL:
○ An open-source relational database management system. Widely
used for web applications.
2. PostgreSQL:
○ An open-source object-relational database system known for its
robustness and standards compliance.
3. Oracle Database:
○ A commercial RDBMS known for its advanced features and high
performance.
4. Microsoft SQL Server:
○ A relational database management system developed by Microsoft,
widely used in enterprise environments.
5. MongoDB:
○ A NoSQL document-oriented database that uses JSON-like
documents for data storage.
6. Cassandra:
○ A distributed NoSQL database designed for handling large amounts
of data across many commodity servers.
7. Redis:
○ An in-memory key-value store known for its high performance.
8. SQLite:
○ A lightweight, file-based relational database system commonly
used in embedded systems and mobile applications.
1. Complexity:
○ DBMS software can be complex and require specialized knowledge
for installation, configuration, and maintenance.
2. Cost:
○ Commercial DBMS software can be expensive, including licensing
and hardware costs.
3. Performance:
○ For very small applications, the overhead of a DBMS might be
unnecessary and could degrade performance.
4. Resource Intensive:
○ DBMS systems can require significant system resources, including
memory, CPU, and storage.
Lecture 2