Vous êtes sur la page 1sur 43

RUAHACOLLEGE UNIVERSITY RCS 201: Database Design 3 unit course

Lecturer Mr Mgaya Gervas B

1
Database System Concepts 1.1 Silberschatz, Korth and Sudarshan

OBJECTIVES OF THE COURSE


To provide students with an awareness of the need for a database system, its role in an organization and the standard database management system (DBMS) architecture. To provide students with skills to analyse database requirement and design well-structured relational database designs

RCS 201 Database Design

LEANING OUTCOMES
At the end of this course you should be able to: 1. 2. 3. Explain what is a database Discuss the advantage and disadvantages of database and explain the architecture of databases Describe the different approaches to database design and list down the advantages of the relational model design Perform INF,2NF, and BCNF normalization, ER and EER modelling Design and implement well-structured relational database
RCS 201 Database Design 3

4. 5.

Assessment modality
The course will be assessed as follows:

Lectures and practicals attendance: 10marks Two individual timed tests @ 15 marks= 30 Total coursework 40%

NOTE: THERE WILL BE NO MAKE UP WHAT SO EVER! WORK HARD!


RCS 201 Database Design 4

TEXTBOOKS
1. Elmasri,Ramez & Shamkant Fundamental of Database Systems 2. Date, C.J Introduction to Database Systems REFERENCE BOOKS 1.SilberschatzKorthSudarshan Database System Concepts, Fourth Edition

RCS 201 Database Design

Plan for Intro to DB Systems I

What is:
A database Data A database management system (DBMS)

Reading: Chapter 1 of the textbook

6
Database System Concepts 1.6 Silberschatz, Korth and Sudarshan

Definition of Data (Datum)


Data is a value of a property of an individual UoD object or a relationship (between two UoD objects) at a particular period of time Example

UoD object(s)

James

James & CompSci

Property
Time Value

Age
Feb 2007 21

Number of Points
Feb 2007 240
7

Database System Concepts

1.7

Silberschatz, Korth and Sudarshan

Definition of a Database
A database is a collection of related data Essential database characteristics are: -Represents an aspect of the real world (miniworld,Universe of Discourse (UoD)),
Well structured (even has a strict regular structure), Reflects (or should reflect) current state of the UoD, Has users and applications, and Stored in a permanent (persistent) computer memory Managed by a Database Management System (DBMS)

All these characteristics have to be met

8
Database System Concepts 1.8 Silberschatz, Korth and Sudarshan

What Is a Database?
Real World

Facts about world and behaviour of world

represented in
contents and operations of a database
facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database more facts more facts more facts more facts more facts more facts more facts more facts more facts more facts facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database some more rather long facts about the world in the databse some more rather long facts about the world in the databse some more rather long facts about the world in the databse some more rather long facts about the world in the databse some more rather long facts about the world in the databse some more rather long facts about the world in the databse

Database

facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database facts about the world in a database

Users

9
Database System Concepts 1.9 Silberschatz, Korth and Sudarshan

A Sample Database
Studen t LName FName StudId Smith Bond Smith Course Susan James Susan Major 131313 Comp 007007 Math 555555 Comp Hours 2+1 Dept Comp Grade StudId 007007 007007 007007 CourId C302 C301 M214 Grade A+ A A+

131313
555555 131313 555555

C301
C301 C302 C302

BC D E

CName CourId DB Sys C302

SofEng C301
DisMat M214

2+0
4+1

Comp
Math

10
Database System Concepts 1.10 Silberschatz, Korth and Sudarshan

Database Application Areas


Database Applications:

Banking: all transactions Airlines: reservations, schedules Universities: registration, grades Sales: customers, products, purchases Manufacturing: production, inventory, orders, supply chain Human resources: employee records, salaries, tax deductions

Databases touch all aspects of our lives

11
Database System Concepts 1.11 Silberschatz, Korth and Sudarshan

Database Management System (DBMS)


A database management system (DBMS) is a collection of programs that enables users to create and maintain a database.

The DBMS is hence a general-purpose software system that facilitates the processes of defining, constructing, and manipulating databases for various applications. Defining a database involves specifying the data types, structures, and constraints for the data to be stored in the database.
Constructing the database is the process of storing the data itself on some storage medium that is controlled by the DBMS. Manipulating a database includes suchSilberschatz, Korth and Sudarshan functions 1.12
12

Database System Concepts

Database Management System (DBMS)


In a nutshell, A collection of programs that enable:
Defining (describing the structure), Populating by data (Constructing), Manipulating (querying, updating), Preserving consistency, Protecting from misuse, Recovering from failure, and Concurrent using

of a database.

13
Database System Concepts 1.13 Silberschatz, Korth and Sudarshan

A Simplified Database System Layout


DBA Users/ Programmers
Application Programs/ Interactive Queries

Database System
DBMS

Database Description

DDL Compiler

Data Access

Query Processor

Catalog

Database
14

Database System Concepts

1.14

Silberschatz, Korth and Sudarshan

Database system=database +DBMS


Why do We Use a DBMS? Suppose we need to build a university information system. How do we

Store the data? (use file structure..) Query the data? (write a programme..) Update the data safely?(write more programmes..) Provide different views on the same data? Deal with crashes?

15
Database System Concepts 1.15 Silberschatz, Korth and Sudarshan

Purpose of Database System


In the early days, database applications were built 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 part

of program code
Hard to add new constraints or change existing ones

16
Database System Concepts 1.16 Silberschatz, Korth and Sudarshan

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


E.g. 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

E.g. two people reading a balance and updating it at the same time

Security problems
Database systems offer solutions to all the above problems

17
Database System Concepts 1.17 Silberschatz, Korth and Sudarshan

When Not to Use a DBMS


In spite of the advantages of using a DBMS, there are a few situations in which such a system may involve unnecessary overhead costs as that would not be incurred in traditional file processing. The overhead costs of using a DBMS are due to the following:
High initial investment in hardware, software, and training. Generality that a DBMS provides for defining and processing data. Overhead for providing security, concurrency control, recovery, and integrity functions.

18
Database System Concepts 1.18 Silberschatz, Korth and Sudarshan

3 Levels of Abstraction
1.Physical level describes how a record (e.g., customer) is stored. 2.Logical level: describes data stored in database, and the relationships among the data. type customer = record name : string; street : string; city : integer; end;

3. View level: application programs hide details of data types. Views can also hide information (e.g., salary) for security purposes.

19
Database System Concepts 1.19 Silberschatz, Korth and Sudarshan

View of Data
An architecture for a database system

20
Database System Concepts 1.20 Silberschatz, Korth and Sudarshan

Instances and Schemas


Similar to types and variables in programming languages Schema the logical structure of the database

e.g., 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.

21
Database System Concepts 1.21 Silberschatz, Korth and Sudarshan

Introduction to Data Modeling


Semantic data models attempt to capture the meaning of a database. Practically, they provide an approach for conceptual data modeling.
Over the years there have been several different semantic data models that have been proposed. By far the most common is the entity-relationship data model, most often referred to as simply the E-R data model. The E-R model is often used as a form of communication between database designers and the end users during the developmental stages of a database.

Database System Concepts

1.22

Silberschatz, Korth and Sudarshan

Data Models
Data models is a collection of tools for describing

data data relationships data semantics data constraints

Entity-Relationship model

Conceptual model to identify data & important relationships


Relational model

mathematical model based on set-theory


Most commercial DBMSs are based on it
Other models:

Object-oriented model, Object-relational model semi-structured data models Older models: network model and hierarchical model
23
Database System Concepts 1.23 Silberschatz, Korth and Sudarshan

Entity-Relationship Model

Example of schema in the entity-relationship model

24
Database System Concepts 1.24 Silberschatz, Korth and Sudarshan

Entity Relationship Model (Cont.)


E-R model of real world

Entities (objects)
E.g. customers, accounts, bank branch

Relationships between entities


E.g. Account A-101 is held by customer Johnson Relationship set depositor associates customers with accounts

Widely used for database design

Produces specification of the data and relationship to maintain in the database.


Database design in E-R model usually converted to design in the relational model (coming up next) which is used for storage and processing

25
Database System Concepts 1.25 Silberschatz, Korth and Sudarshan

Relational Model
Attributes

Example of tabular data in the relational model


Customer-id 192-83-7465 019-28-3746 192-83-7465 321-12-3123 019-28-3746 customername Johnson Smith Johnson Jones Smith customerstreet customercity Palo Alto Rye Palo Alto Harrison Rye accountnumber

Alma
North Alma

A-101
A-215 A-201

Main
North

A-217
A-201

26
Database System Concepts 1.26 Silberschatz, Korth and Sudarshan

A Sample Relational Database

27
Database System Concepts 1.27 Silberschatz, Korth and Sudarshan

Data Definition Language (DDL)


Specification notation for defining the database schema

E.g. 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
language in which the storage structure and access methods

used by the database system are specified


Usually an extension of the data definition language

28
Database System Concepts 1.28 Silberschatz, Korth and Sudarshan

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 Nonprocedural user specifies what data is required without specifying how to get those data
SQL is the most widely used query language

29
Database System Concepts 1.29 Silberschatz, Korth and Sudarshan

SQL
SQL: widely used non-procedural language

E.g. 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 E.g. find the balances of all accounts held by the customer with customer-id 192-83-7465 select account.balance 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/JDBC) which allow SQL queries to be sent to a database
30
Database System Concepts 1.30 Silberschatz, Korth and Sudarshan

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


Nave users invoke one of the permanent application

programs that have been written previously


E.g. people accessing database over the web, bank tellers, clerical staff

31
Database System Concepts 1.31 Silberschatz, Korth and Sudarshan

Database Administrator
Coordinates all the activities of the database

system; the database administrator has a good understanding of the enterprises 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
32
Database System Concepts 1.32 Silberschatz, Korth and Sudarshan

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.

33
Database System Concepts 1.33 Silberschatz, Korth and Sudarshan

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

34
Database System Concepts 1.34 Silberschatz, Korth and Sudarshan

DBMS Architecture

Client API

Client

Query Parser

Query Optimizer
Relational Operators

Execution Engine

File and Access Methods

Buffer Management
Disk Space Management

Concurrency and Recovery

Disk
Database System Concepts

DB
35
1.35 Silberschatz, Korth and Sudarshan

Key Issues: Memory Hierarchy


CPU Cache Speed Goes Down

Main Memory

Price Goes Up
Hard Disk

Reliability Goes Up

Tape/CD
36
Database System Concepts 1.36 Silberschatz, Korth and Sudarshan

Detailed Overall System Structure

37
Database System Concepts 1.37 Silberschatz, Korth and Sudarshan

Application Architectures

Two-tier architecture: E.g. client programs using ODBC/JDBC to communicate with a database Three-tier architecture: E.g. web-based applications, and applications built using middleware
38
Database System Concepts 1.38 Silberschatz, Korth and Sudarshan

Top Database Groups


Academia:
1) Stanford University, 2) University of Wisconsin, Madison, 3) University of California, Berkeley, 4) University of Maryland, College Park, 5) University of Washington.

Research Labs:
1) IBM Almaden Research Lab, 2) AT&T Research Labs, 3) Microsoft Research Lab, 4) Lucent Technologies.

Database Products:
1) Oracle, 2) IBM DB2, 3) MySQL, 4) Sybase, 5) MS SQL Server, 6) Informix.

39
Database System Concepts 1.39 Silberschatz, Korth and Sudarshan

Database Professionals
Database implementers

Build modules that go inside the DBMS Students in ICOM 6005


Database application developers

Build application that run on top of the DBMS, and are used by endusers to interact with their data. Students in ICOM 5016
Database Administrators

Create database schema Maintain and tune the DBMS engine Maintain and tune the data in the DBMS

Students in ICOM 5016


Corporations need them ($$$)
40
Database System Concepts 1.40 Silberschatz, Korth and Sudarshan

SUMMARY

In this presentation we defined a database as a collection of related data, where data means recorded facts. A typical database represents some aspect of the real world and is used for specific purposes by one ormore groups of users. A DBMS is a generalized software package for implementing and maintaining a computerized database. The database and software together form a database system.

We identified several characteristics that distinguish the database approach from traditional file-processing applications:

41
Database System Concepts 1.41 Silberschatz, Korth and Sudarshan

Summary continue..
Existence of a catalog. Program-data independence and program-operation independence. Data abstraction. Support of multiple user views. Sharing of data among multiple transactions.

We then discussed the main categories of database users, or the "actors on the scene": Administrators. Designers. End users. System analysts and application programmers.
42
Database System Concepts 1.42 Silberschatz, Korth and Sudarshan

Summary conti...
We noted that, in addition to database users, there are several categories of support personnel, or "workers behind the scene," in a database environment: DBMS system designers and implementers. Tool developers. Operators and maintenance personnel.

We listed some additional advantages of the database approach over traditional file-processing systems:
potential for enforcing standards. Reduced application development time. Flexibility. Availability of up-to-date information to all users. Economies of scale.

43
Database System Concepts 1.43 Silberschatz, Korth and Sudarshan

Vous aimerez peut-être aussi