Relational Model
Relational Model
Example of tabular data in the relational model
Attributes
A Sample Relational Database
SQL
SQL: widely used non-procedural language
Example: Find the name of the customer with customer-id
192-83-7465
select customer.customer_name
from customer
where customer.customer_id = ‘192-83-7465’
Example: Find the balances of all accounts held by the
customer with customer-id 192-83-7465
select [Link]
from depositor, account
where depositor.customer_id = ‘192-83-
7465’ and
depositor.account_number =
account.account_number
Application programs generally access
databases through one of
Language extensions to allow
embedded SQL
Application program interface (e.g.,
ODBC (Open Database Connectivity)/JDBC (Java Database
Connectivity)
) which allow SQL queries to be sent
to a database
Database Design
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?
Physical Design – Deciding on the physical layout of the
database
The Entity-Relationship Model
Models an enterprise as a collection of entities and
relationships
Entity: a “thing” or “object” in the enterprise that is
distinguishable from other objects
Described by a set of attributes
Relationship: an association among several entities
Represented diagrammatically by an entity-relationship
diagram:
Object-Relational Data Models
Extend the relational data model by including object
orientation and constructs to deal with added data
types.
Allow attributes of tuples to have complex types,
including non-atomic values such as nested relations.
Preserve relational foundations, in particular the
declarative access to data, while extending modeling
power.
Provide upward compatibility with existing relational
languages.
XML: Extensible Markup Language
Defined by the WWW Consortium (W3C)
Originally
intended as a document markup
language not a database language
The ability to specify new tags, and to create
nested tag structures made XML a great way
to exchange data, not just documents
XML has become the basis for all new
generation data interchange formats.
A wide variety of tools is available for parsing,
browsing and querying XML documents/data
Storage Management
Storage manager is a program module that
provides the interface between the low-level data
stored in the database and the application programs
and queries submitted to the system.
The storage manager is responsible to the following
tasks:
Interaction with the file manager
Efficient storing, retrieving and updating of data
Issues:
Storage access
File organization
Query Processing
[Link] and translation
2. Optimization
3. Evaluation
Query Processing (Cont.)
Alternative ways of evaluating a given query
Equivalent expressions
Different algorithms for each operation
Cost difference between a good and a bad way of
evaluating a query can be enormous
Need to estimate the cost of operations
Depends critically on statistical information about
relations which the database must maintain
Need to estimate statistics for intermediate
results to compute cost of complex expressions
Transaction Management
A transaction is a collection of operations that
performs a single logical function in a database
application
Transaction-management component ensures
that the database remains in a consistent (correct)
state despite system failures (e.g., power failures
and operating system crashes) and transaction
failures.
Concurrency-control manager controls the
interaction among the concurrent transactions, to
ensure the consistency of the database.
Database Architecture
The architecture of a database systems is greatly
influenced by
the underlying computer system on which the
database is running:
Centralized
Client-server
Parallel (multi-processor)
Distributed
Database Users
Users are differentiated by the way they expect to interact with
the system
Application programmers – interact with system through
DML calls
Sophisticated users – form requests in a database query
language
Specialized users – write specialized database applications
that do not fit into the traditional data processing framework
Naïve users – invoke one of the permanent application
programs that have been written previously
Examples, people accessing database over the web, bank
tellers, clerical staff
Database Administrator
Coordinates all the activities of the database system;
the database administrator has a good understanding
of the enterprise’s information resources and needs.
Database administrator's duties include:
Schema definition
Storage structure and access method definition
Schema and physical organization modification
Granting user authority to access the database
Specifying integrity constraints
Acting as liaison with users
Monitoring performance and responding to changes
in requirements
Overall System Structure
History of Database Systems
1950s and early 1960s:
Data processing using magnetic tapes for storage
Tapes provide only sequential access
Punched cards for input
Late 1960s and 1970s:
Hard disks allow direct access to data
Network and hierarchical data models in widespread use
Ted Codd defines the relational data model
Would win the ACM Turing Award for this work
IBM Research begins System R prototype
UC Berkeley begins Ingres prototype
High-performance (for the era) transaction processing
1980s:
Research relational prototypes evolve into commercial
systems
SQL becomes industrial standard
Parallel and distributed database systems
Object-oriented database systems
1990s:
Large decision support and data-mining applications
Large multi-terabyte data warehouses
Emergence of Web commerce
2000s:
XML and XQuery standards
Automated database administration
Questions?
END.