Database Management Systems: A DBMS is characterized by the capability to support efficient access to huge amounts of data, which persists over time. It is also characterized by support for powerful query languages and for durable transactions that can execute concurrently in a manner that appears atomic and independent of other transactions.
Comparison With File Systems: The conventional file systems are insufficient as database systems, because they fail to support efficient search, efficient modifications to small pieces of data, complex queries, controlled buffering of useful data in main memory, or atomic and independent execution of transactions.
Relational Database Systems: Today, most database systems are based on the relational model of data, which organizes information into tables. SQL is the language most often used in these systems.
Secondary and Tertiary Storage: Large databases are stored on secondary storage devices, generally disks. The major databases require tertiary storage devices, which are several orders of magnitude more capacious than disks, but also several orders of magnitude slower.
Client-Server Systems: Database management systems generally support a client-server architecture, with the most important database elements at the server and the client used to interface with the user.
Future Systems: Main trends in database systems include support for very large "multimedia" objects such as videos or images and the combination of information from many separate information sources into a single database.
Database Languages: There are languages or language elements for defining the structure of data (data-definition languages) and for querying and alteration of the data (data-manipulation languages).
Components of a DBMS: The main elements of a database management system are the storage manager, the query processor, and the transaction manager.
The Storage Manager: This element is responsible for storing data, metadata (information about the schema or structure of the data), indexes (data structures to speed the access to data), and logs (records of changes to the database). This data is kept on disk. An important storage-management component is the buffer manager, which keeps portions of the disk contents in main memory.
The Query Processor: This element parses queries, optimizes them by selecting a query plan, and implements the plan on the stored data.
The Transaction Manager: This element is responsible for logging database modifications to support recovery after a system crashes. It also supports concurrent execution of transactions in a way that assures atomicity (a transaction is performed either completely or not at all), and isolation (transactions are executed as if there were no other concurrently executing transactions).
- relational model
- storage manager
- transaction manager
- Relational Algebra
- Semistructured Data
- From ODL Designs to Object-Relational Designs
- Nested Relations
- The Object-Relational Model
- Representing Set-Valued Attributes
- Nonatomic Attributes in Classes
- From ODL Designs to Relational Designs
- Declaring Keys in ODL
- Other Data Models
- From E/R Diagrams to Relational Designs
- Tuples / Domains
- The Relational Data Model
- The Entity-Relationship Data Model
- Database System Implementation
- Database Programming
- Database Design
- Transaction Processing
- Storage and Buffer Management
- Smaller and Smaller Systems
- Relational Database Systems