You are on page 1of 81

DATABASE MANAGEMENT

SYSTEMS

1.1
Database Management System (DBMS)
 Collection of interrelated data
 Set of programs to access the data
 DBMS contains information about a particular enterprise
 DBMS provides an environment that is both convenient and
efficient to use.
 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

1.2
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

1.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
 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

1.4
View of Data
An architecture for a database system

1.5
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.

1.6
Data Models

 A collection of tools for describing


 data
 data relationships
 data constraints
 Entity-Relationship model
 Relational model
 Other models:
 object-oriented model
 semi-structured data models
 Older models: network model and hierarchical model

1.7
Entity-Relationship Model

Example of schema in the entity-relationship model

1.8
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

1.9
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

1.10
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

1.11
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
 E.g. people accessing database over the web, bank tellers, clerical
staff

1.12
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
 Monitoring performance and responding to changes in
requirements

1.13
Entity Sets

 A database can be modeled as:


 a collection of entities,
 relationship among entities.
 An entity is an object that exists and is distinguishable from other
objects.
 Example: specific person, company, event, plant
 Entities have attributes
 Example: people have names and addresses
 An entity set is a set of entities of the same type that share the same
properties.
 Example: set of all persons, companies, trees, holidays

1.14
Attributes
 An entity is represented by a set of attributes, that is descriptive
properties possessed by all members of an entity set.
Example:
customer = (customer-id, customer-name,
customer-street, customer-city)
loan = (loan-number, amount)
 Domain – the set of permitted values for each attribute
 Attribute types:
 Simple and composite attributes.
 Single-valued and multi-valued attributes
 E.g. multivalued attribute: phone-numbers
 Derived attributes
 Can be computed from other attributes
 E.g. age, given date of birth

1.15
Composite Attributes

1.16
E-R Diagrams

 Rectangles represent entity sets.


 Diamonds represent relationship sets.
 Lines link attributes to entity sets and entity sets to relationship sets.
 Ellipses represent attributes
 Double ellipses represent multivalued attributes.
 Dashed ellipses denote derived attributes.
 Underline indicates primary key attributes (will study later)
1.17
Keys
 A super key of an entity set is a set of one or more attributes
whose values uniquely determine each entity.
 A candidate key of an entity set is a minimal super key
 Customer-id is candidate key of customer
 account-number is candidate key of account
 Although several candidate keys may exist, one of the
candidate keys is selected to be the primary key.

1.18
Weak Entity Sets (Cont.)
 We depict a weak entity set by double rectangles.
 We underline the discriminator of a weak entity set with a
dashed line.
 payment-number – discriminator of the payment entity set
 Primary key for payment – (loan-number, payment-number)

1.19
Specialization

 Top-down design process; we designate subgroupings within an


entity set that are distinctive from other entities in the set.
 These subgroupings become lower-level entity sets that have
attributes or participate in relationships that do not apply to the
higher-level entity set.
 Depicted by a triangle component labeled ISA (E.g. customer “is
a” person).
 Attribute inheritance – a lower-level entity set inherits all the
attributes and relationship participation of the higher-level entity
set to which it is linked.

1.20
Specialization Example

1.21
SQL

1.22
Objectives

 Explore basic commands and functions of SQL


 How to use SQL for data administration (to create tables, indexes,
and views)
 How to use SQL for data manipulation (to add, modify, delete, and
retrieve data)
 How to use SQL to query a database to extract useful information

23
1.23
Introduction to SQL

 SQL functions fit into two broad categories:

Data definition language


 SQL includes commands to:
– Create database objects, such as tables, indexes, and
views
– Define access rights to those database objects

 Data manipulation language


 Includes commands to insert, update, delete, and
retrieve data within database tables

24
1.24
Introduction to SQL (continued)

 SQL is relatively easy to learn


 Basic command set has vocabulary of less than 100 words
 Nonprocedural language
 American National Standards Institute (ANSI) prescribes a standard
SQL
 Several SQL dialects exist

25
1.25
Introduction to SQL (continued)

26
1.26
Introduction to SQL (continued)

27
1.27
Introduction to SQL (continued)

28
1.28
Data Definition Commands

 Examine simple database model and database tables that will form
basis for many SQL examples
 Understand data environment

29
1.29
The Database Model

30
1.30
Creating the Database

 Following two tasks must be completed:

 Create database structure


 Create tables that will hold end-user data
 First task:

 RDBMS creates physical files that will hold


database
 Tends to differ substantially from one RDBMS
to another

31
1.31
The Database Schema

 Authentication

Process through which DBMS verifies that


only registered users are able to access
database
 Log on to RDBMS using user ID and
password created by database
administrator
 Schema

 Group of database objects—such as tables


and indexes—that are related to each other
32
1.32
Data Types

 Data type selection is usually dictated by nature of data and by


intended use
 Pay close attention to expected use of attributes for sorting and data
retrieval purposes

33
1.33
Data Types (continued)

34
1.34
Creating Table Structures

 Use one line per column (attribute) definition


 Use spaces to line up attribute characteristics and constraints
 Table and attribute names are capitalized
 NOT NULL specification
 UNIQUE specification

35
1.35
Creating Table Structures (continued)

 Primary key attributes contain both a NOT NULL and a UNIQUE


specification
 RDBMS will automatically enforce referential integrity for foreign
keys
 Command sequence ends with semicolon

36
1.36
SQL Constraints

 NOT NULL constraint


Ensures that column does not accept nulls
 UNIQUE constraint
 Ensures that all values in column are unique
 DEFAULT constraint
 Assigns value to attribute when a new row is added to
table
 CHECK constraint
 Validates data when attribute value is entered
37
1.37
SQL Indexes

 When primary key is declared, DBMS


automatically creates unique index
 Often need additional indexes
 Using CREATE INDEX command, SQL indexes
can be created on basis of any selected attribute
 Composite index
Index based on two or more attributes
 Often used to prevent data duplication

38
1.38
Data Manipulation Commands

 Adding table rows


 Saving table changes
 Listing table rows
 Updating table rows
 Restoring table contents
 Deleting table rows
 Inserting table rows with a select subquery

39
1.39
Adding Table Rows

 INSERT

 Used to enter data into table


 Syntax:
 INSERT INTO columnname
VALUES (value1, value2, … , valuen);

40
1.40
Adding Table Rows (continued)

 When entering values, notice that:


Row contents are entered between parentheses
 Character and date values are entered between
apostrophes
 Numerical entries are not enclosed in apostrophes
 Attribute entries are separated by commas
 A value is required for each column
 Use NULL for unknown values

41
1.41
Saving Table Changes

 Changes made to table contents are not physically


saved on disk until, one of the following occurs:
Database is closed
 Program is closed
 COMMIT command is used
 Syntax:
 COMMIT [WORK];
 Will permanently save any changes made to any
table in the database

42
1.42
Listing Table Rows

 SELECT

 Used to list contents of table


 Syntax:
 SELECT columnlist
FROM tablename;
 Columnlist represents one or more attributes, separated by
commas
 Asterisk can be used as wildcard character to list all attributes

43
1.43
Updating Table Rows

 UPDATE

 Modify data in a table


 Syntax:
 UPDATE tablename
SET columnname = expression [, columname =
expression]
[WHERE conditionlist];
 If more than one attribute is to be updated in row, separate
corrections with commas

44
1.44
Restoring Table Contents

 ROLLBACK
 Used to restore database to its previous condition
 Only applicable if COMMIT command has not
been used to permanently store changes in
database
 Syntax:
 ROLLBACK;
 COMMIT and ROLLBACK only work with
data manipulation commands that are used
to add, modify, or delete table rows
45
1.45
Deleting Table Rows

 DELETE

 Deletes a table row


 Syntax:
 DELETE FROM tablename
[WHERE conditionlist ];
 WHERE condition is optional
 If WHERE condition is not specified, all rows from specified table
will be deleted

46
1.46
Inserting Table Rows with a
Select Subquery

 INSERT

Inserts multiple rows from another table (source)


 Uses SELECT subquery
 Query that is embedded (or nested) inside another
query
 Executed first

 Syntax:
 INSERT INTO tablename SELECT columnlist FROM
tablename;

47
1.47
Selecting Rows with
Conditional Restrictions

 Select partial table contents by placing restrictions on rows to be


included in output

 Add conditional restrictions to SELECT


statement, using WHERE clause
 Syntax:

 SELECT columnlist
FROM tablelist
[ WHERE conditionlist ] ;

48
1.48
Conditional Restrictions
(continued)

49
1.49
Selecting Rows with
Conditional Restrictions (continued)

50
1.50
Arithmetic Operators:
The Rule of Precedence

 Perform operations within parentheses


 Perform power operations
 Perform multiplications and divisions
 Perform additions and subtractions

51
1.51
Arithmetic Operators:
The Rule of Precedence (continued)

52
1.52
Special Operators

 BETWEEN

 Used to check whether attribute value is


within a range
 IS NULL

 Used to check whether attribute value is null


 LIKE

 Used to check whether attribute value


matches given string pattern

53
1.53
Special Operators (continued)

 IN

 Used to check whether attribute value


matches any value within a value list
 EXISTS

 Used to check if subquery returns any rows

54
1.54
Advanced Data Definition Commands

 All changes in table structure are made by using ALTER command

 Followed by keyword that produces specific


change
 Following three options are available:
 ADD
 MODIFY
 DROP

55
1.55
Changing a Column’s Data Type

 ALTER can be used to change data type


 Some RDBMSs (such as Oracle) do not permit changes to data
types unless column to be changed is empty

56
1.56
Changing a Column’s Data
Characteristics

 Use ALTER to change data characteristics


 If column to be changed already contains data, changes in column’s
characteristics are permitted if those changes do not alter the data
type

57
1.57
Adding a Column

 Use ALTER to add column

 Do not include the NOT NULL clause for new


column

58
1.58
Dropping a Column

 Use ALTER to drop column

 Some RDBMSs impose restrictions on the


deletion of an attribute

59
1.59
Advanced Data Updates

60
1.60
Copying Parts of Tables

 SQL permits copying contents of selected table columns so that the


data need not be reentered manually into newly created table(s)
 First create the PART table structure
 Next add rows to new PART table using PRODUCT table rows

61
1.61
Adding Primary and Foreign Key
Designations

 When table is copied, integrity rules do not copy, so primary and


foreign keys need to be manually defined on new table
 User ALTER TABLE command

 Syntax:
 ALTER TABLE tablename ADD
PRIMARY KEY(fieldname);
 For foreign key, use FOREIGN KEY in place of
PRIMARY KEY

62
1.62
Deleting a Table from the Database

 DROP

 Deletes table from database


 Syntax:
 DROP TABLE tablename;

63
1.63
Advanced Select Queries

 SQL provides useful functions that can:

 Count
 Find minimum and maximum values
 Calculate averages
 SQL allows user to limit queries to only those entries having no
duplicates or entries whose duplicates may be grouped

64
1.64
Aggregate Functions

65
1.65
Aggregate Functions (continued)

66
1.66
Aggregate Functions (continued)

67
1.67
Aggregate Functions (continued)

68
1.68
Aggregate Functions (continued)

69
1.69
Grouping Data

70
1.70
Grouping Data (continued)

71
1.71
Grouping Data (continued)

72
1.72
Virtual Tables: Creating a View

 View is virtual table based on SELECT query

 Can contain columns, computed columns,


aliases, and aggregate functions from one or
more tables
 Base tables are tables on which view is based
 Create view by using CREATE VIEW command

73
1.73
Virtual Tables: Creating a View
(continued)

74
1.74
Joining Database Tables

 Ability to combine (join) tables on common attributes is most


important distinction between relational database and other
databases
 Join is performed when data are retrieved from more than one table
at a time
 Join is generally composed of an equality comparison between
foreign key and primary key of related tables

75
1.75
Joining Tables with an Alias

 Alias can be used to identify source table


 Any legal table name can be used as alias
 Add alias after table name in FROM clause

 FROM tablename alias

76
1.76
Summary

 SQL commands can be divided into two overall categories:

 Data definition language commands


 Data manipulation language commands
 The ANSI standard data types are supported by all RDBMS vendors
in different ways
 Basic data definition commands allow you to create tables, indexes,
and views

77
1.77
Summary (continued)

 DML commands allow you to add, modify, and


delete rows from tables
 The basic DML commands are SELECT,
INSERT, UPDATE, DELETE, COMMIT, and
ROLLBACK
 INSERT command is used to add new rows to
tables
 SELECT statement is main data retrieval
command in SQL
78
1.78
Summary (continued)

 Many SQL constraints can be used with columns


 The column list represents one or more column names separated by
commas
 WHERE clause can be used with SELECT, UPDATE, and DELETE
statements to restrict rows affected by the DDL command

79
1.79
Summary (continued)

 Aggregate functions

 Special functions that perform arithmetic


computations over a set of rows
 ORDER BY clause

 Used to sort output of SELECT statement


 Can sort by one or more columns and use
either an ascending or descending order
 Join output of multiple tables with SELECT statement

80
1.80
Summary (continued)

 Natural join uses join condition to match only rows with equal values
in specified columns
 Right outer join and left outer join used to select rows that have no
matching values in other related table

81
1.81

You might also like