Prior to database management systems, organizations relied on file-processing systems where operating systems stored raw records in disjoint files. This paradigm introduced critical vulnerabilities that motivated the invention of DBMS:
- Data Redundancy and Inconsistency: Multiple application programs maintained duplicated copies of identical data. Updates to one copy left others stale, causing conflicting states.
- Data Isolation and Program-Data Dependence: Data was scattered across varying file formats. Any alteration in physical record layout necessitated modifying all dependent application code.
- Difficulty in Accessing Data: Ad-hoc queries required writing custom procedural programs from scratch rather than executing concise declarative queries.
- Concurrent Access Anomalies: Simultaneous write operations by concurrent users without synchronization resulted in lost updates and corrupted balances.
- Atomicity and Recovery Failures: Mid-operation hardware crashes left data in partially updated, inconsistent states without automatic rollback mechanisms.
The Three-Schema Architecture separates the user application from the underlying physical storage, providing an abstracted three-tier operational view:
| Schema Level | Scope & Focus | Target Audience & Constructs |
|---|---|---|
| External (View) Level | Describes the customized part of the database relevant to a specific user group; hides rest of DB. | End users, UI screens, specialized SQL views with customized column projections and security masks. |
| Conceptual (Logical) Level | Describes the entire community database structure: entities, data types, relationships, constraints. | Database Administrators (DBA), system architects; tables, schemas, primary/foreign key definitions. |
| Internal (Physical) Level | Describes physical storage structure, block allocations, file organizations, B+ tree indexes, and hashing. | DBMS storage engine, system engineers; tracks disk block pointers, compression, and encryption. |
1. Physical Data Independence: The ability to modify the internal schema (e.g., adding B-tree indexes, changing block sizes, migrating to SSDs) without altering conceptual schemas or application programs.
2. Logical Data Independence: The ability to modify the conceptual schema (e.g., adding an attribute, splitting an entity) without forcing modifications to existing external views or user queries. Logical independence is substantially harder to achieve than physical independence.