Database Systems
Introduction
Course Information
• Prof. Dr. Mohamed Kholief
• [email protected] or [email protected] (preferable way of communication)
• No mobile phone calls please (will not be answered and will be blocked)
Course Contents
• Take an English language description and convert it into a working
database application.
• Create E/R models from application descriptions.
• Convert E/R models into relational designs.
• Identify redundancies in designs and remove them using normalization
techniques.
• Create databases in an RDBMS and enforce data integrity constraints
using SQL.
• Write sophisticated database queries using SQL.
• Implement a web interface to a database. (Lab)
• Introduce an advanced database topic (XML)
Course Project
• Project overview
• 2 persons per project.
• Project runs the entire semester with regular assignments and a
final implementation assignment.
• You are free to suggest a project. The project should not be “overly
simple”. You must get approval from the TA before proceeding.
Data vs. Information
• Data:
– Raw facts; building blocks of information
– Unprocessed information
• Information:
– Data processed to reveal meaning
• Accurate, relevant, and timely information
is key to good decision making
• Good decision making is key to survival in
global environment
Introducing the Database
and the DBMS
• Database—shared, integrated computer
structure that houses:
– End user data (raw facts)
– Metadata (data about data)
Introducing the Database
and the DBMS (continued)
• DBMS (database management system):
– Collection of programs that manages database
structure and controls access to data
– Possible to share data among multiple
applications or users
– Makes data management more efficient and
effective
What is a DBMS?
• Database Management System (DBMS) = data + set of instructions to
access/manipulate data
• Features of a DBMS
– Support massive amounts of data
– Persistent storage
– Efficient and convenient access
– Secure, concurrent, and atomic access
• Examples?
– Search engines, banking systems, airline reservations, corporate records,
payrolls, sales inventories.
– New applications: Wikis, biological/multimedia/scientific/geographic data,
heterogeneous data.
Features of a DBMS
• Support massive amounts of data
– Giga/tera/petabytes
– Far too big for main memory
• Persistent storage
– Programs update, query, manipulate data.
– Data continues to live long after program finishes.
• Efficient and convenient access
– Efficient: do not search entire database to answer a query.
– Convenient: allow users to query the data as easily as possible.
• Secure, concurrent, and atomic access
– Allow multiple users to access database simultaneously.
– Allow a user access to only to authorized data.
– Provide some guarantee of reliability against system failures.
Types of Databases
• Single-user:
– Supports only one user at a time
• Multi-user:
– Supports multiple users at the same time
Location of Databases
• Centralized:
– Supports data located at a single site
• Distributed:
– Supports data distributed across several sites
Uses of Databases
• Transactional (or production):
– Supports a company’s day-to-day operations
• Data warehouse:
– Stores data used to generate information
required to make tactical or strategic decisions
• Such decisions typically require “data massaging”
– Often used to store historical data
– Structure is quite different
A Brief History of DBMS
• The earliest databases (1960s) evolved from file systems
– File systems
• Allow storage of large amounts of data over a long period of time
• File systems do not support:
– Efficient access of data items whose location in a particular file is not known
– Logical structure of data is limited to creation of directory structures
– Concurrent access: Multiple users modifying a single file generate non-
uniform results
• Navigational and hierarchical
• User programmed the queries by walking from node to node in the DBMS.
• Relational DBMS (1970s to now)
– View database in terms of relations or tables
– High-level query and definition languages such as SQL
– Allow user to specify what (s)he wants, not how to get what (s)he wants
• Object-oriented DBMS (1980s)
– Inspired by object-oriented languages
– Object-relational DBMS
Contents of Customer File
Basic File Terminology
Why Study Databases?
• Academic
– Databases involve many aspects of computer science
– Fertile area of research
– Three Turing awards in databases
• Programmer
– a plethora of applications involve using and accessing databases
• Businessman
– Everybody needs databases => lots of money to be made
• Student
– Get those last three credits and I don’t have to come back to Blacksburg ever
again!!!
– Google, Oracle, Microsoft, etc. will hire me!!
– Databases sound cool!
– ???
What Will You Learn in this course?
• Implementation
– How do you build a system such as ORACLE or MySQL?
• Design
– How do you model your data and structure your information in a
database?
• Programming
– How do you use the capabilities of a DBMS?
• This course achieves a balance between
– a firm theoretical foundation to designing moderate-sized databases
– creating, querying, and implementing realistic databases and connecting
them to applications
The DBMS Industry
• A DBMS is a software system.
• Major DBMS vendors: Oracle, Microsoft, IBM, Sybase
• Free/Open-source DBMS: MySQL, PostgreSQL, Firebird.
– Used by companies such as Google, Yahoo, Lycos, BASF.
• All are “relational” (or “object-relational”) DBMS.