Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
| 2
Purpose of Database Systems
➔ In the early days, database applications were built directly on top of file systems
➔ Drawbacks of using file systems to store data:
◆ Data redundancy and inconsistency
● Multiple file formats, 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
| 3
Purpose of Database Systems (Cont.)
➔ Drawbacks of using file 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 accessed needed for performance
● Uncontrolled concurrent accesses can lead to inconsistencies
○ Example: Two people reading a balance and updating it 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
| 4
Levels of Abstraction
● Physical level: describes how a record (e.g., customer) is stored.
● Logical level: describes data stored in database, and the relationships among the data.
type customer = record
customer_id : string;
customer_name : string;
customer_street : string;
customer_city : 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.
| 5
View of Data
An architecture for a database system
Instances and Schemas
● Similar to types and variables in programming languages
● Schema – the logical structure of the database
● Example: The database consists of information about a set of customers and accounts and the relationship between them)
● Analogous to type information of a variable in a program
● Physical schema: database design at the physical level
● Logical schema: database design at the logical level
● Instance – the actual content of the database at a particular point in time
● Analogous to the value of a variable
● 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.
| 7
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)
● Semistructured data model (XML)
● Other older models:
● Network model
● Hierarchical model
| 8
Data Manipulation Language (DML)
● Language for accessing and manipulating the data organized by the appropriate data model
● DML also known as query language
● Two classes of languages
● Procedural – user specifies what data is required and how to get those data
● Declarative (nonprocedural) – user specifies what data is required without specifying how to get
those data
● SQL is the most widely used query language
| 9
Data Definition Language (DDL)
➔ Specification notation for defining the database schema
Example: create table account (
account-number char(10),
balance integer)
➔ DDL compiler generates a set of tables stored in a data dictionary
➔ Data dictionary contains metadata (i.e., data about data)
◆ Database schema
◆ Data storage and definition language
● Specifies the storage structure and access methods used
◆ Integrity constraints
● Domain constraints
● Referential integrity (references constraint in SQL)
● Assertions
◆ Authorization
| 10
Relational Model
Attributes
● Example of tabular data in the relational model
| 11
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?
| 12
End of Chapter 1