DBMS Summary

Introduction to DBMS

  • Data: Known facts that can be recorded and have implicit meaning.
  • Database: An organized collection of logically related data and its description, designed to meet an organization's information requirements.
  • DBMS (Database Management System): Software that interacts with end-users, applications, and the database to capture and analyze data.

Applications of Database Technology

  • Supermarkets, banking, libraries, airline reservations, universities, e-commerce, social media, healthcare, weather monitoring, Google, and GIS.
  • Storage and retrieval of multimedia and web content.
  • Autonomous monitoring and action in real-time systems (e.g., stock market, weather forecasting).

Evolution of Database Technology

  • Prehistory: File systems, hierarchical and network systems.
  • Revolution: Relational database technology.
  • Post-relational era: Complex data organizations, object technology influence, complex applications (distributed and web-based).

File-Based Approach

  • Each application program defines and manages its own data.
  • Limitations:
    • Separation and isolation of data.
    • Duplication of data.
    • Data dependence.
    • Incompatible file formats.
    • Fixed queries/proliferation of application programs.
  • Manual filing systems fail with large data or cross-referencing.

Data Redundancy

  • Storing the same data multiple times which leads to:
    • Unnecessary increase in size of databases.
    • Data inconsistency.
    • Decreased efficiency.

Relational Database Approach

  • Introduced in 1970 by T. Codd.
  • Aims to remove limitations of file-based approach.
  • Data definition is stored separately and independently.

Database Management System (DBMS)

  • Collection of programs for creating and maintaining a database.
  • Facilitates defining, constructing, manipulating, and sharing databases.
  • Examples: MSAccess, MySQL, Oracle, SQL Server.
  • Common features: Relational model, SQL as query language.
  • Functions includes:
    • Transactions, data storage, retrieval, update.

Characteristics of the Database Approach

  • Self-describing nature (metadata, database catalog, data dictionary).
  • Insulation between programs and data (program-data independence).
  • Data abstraction: Hiding irrelevant details.
  • Multiple views of the data.
  • Sharing of data and multiuser transaction processing.

Advantages of using a DBMS

  • Minimal data redundancy.
  • Restricting unauthorized access (Database Security).
  • Efficient query processing (Indexing, hashing, query optimization).
  • Enforcing integrity constraints (Data type, primary key, business rules).
  • Providing multiple user interfaces.
  • Backup and Recovery.
  • Reduced application development time.
  • Concurrent access and crash recovery.
  • Database facilitate sharing of data.

Disadvantages of using a DBMS

  • High initial investment in hardware, software, and training.
  • Need for specialized personnel (experts).
  • Higher impact of failure.
  • Complexity.
  • Overhead for security, concurrency control, recovery, and integrity functions.

Functions of a DBMS

  • Data Storage, Retrieval, and Update.
  • Transaction Support.
  • Concurrency Control Services.
  • Recovery Services.
  • Security/Authorization Services.
  • Integrity Services.

Components of the DBMS environment

  • Hardware, Software (DBMS, Network software, Programming languages).
  • Data, Procedures.
  • People (Data & database administrators, Database designers, Application developers, End-users).

People Involved

  • End-Users: Clients needing information from the database.
  • Practitioners: Responsible for the database system and its software (e.g., DBAs, designers, developers).

Database Administrators (DBA)

  • Responsible for authorizing access, coordinating use, and acquiring resources.
  • Accountable for security breaches and poor system response time.
  • Database Designers
  • Responsible for identifying data and choosing appropriate structures to represent and store this data.

Object-Oriented and NOSQL Databases

  • OODBs emerged with OOP languages to store complex objects.
  • NOSQL (Not Only SQL) databases for managing large amounts of data with fast search and retrieval.