CIT 3203 Database Administration Notes
CIT 3203 Database Administration Notes
CIT 3203 Database Administration Notes
Purpose: To introduce the concept of rational database and the techniques and tools for
developing and utilizing databases in business.
Objectives By the end of the course units the learner should be able to;
Explain the principles underlying relational database
Design and develop a practical database system
Use structured query language (SQL) to access and manipulate data.
Course Content
Introduction to database concepts – tuples, attributes
Database models – Flat, Hierarchy, Network, Relational and object oriented.
Database management systems, Integrity and security in database systems.
Concurrency.
Normalization 1st, 2nd and 3rd normal form.
SQL – Data manipulation, Definition and control
Database modeling, Conceptual , logical and physical models
Networked and distributed database systems. (partial and full)
Data warehousing and mining.
Learning objectives:
Data management: focuses on data collection, storage and retrieval, constitutes a core
activity for any organization. To generate relevant information efficiently you need quick
access to data (raw facts) from which the required information is produced. Efficient data
management requires the use of a computer database. A database is a shared, integrated
computer structure that houses a collection of:
End -user data: raw facts of interest to the user.
Meta data: The Meta data provides a description of the data characteristics and the set
of relationships that link the data found within the database.
The database: resembles a very well organized electronic filing cabinet in which
powerful software referred to as DBMS helps manage the cabinet‟s contents.
DBMS: Database Management system that enables the creation of and management of
the database
1.2 Database vs. file based system
Such a typical filing /processing system has the limitation of more and more files and
application programs being added to the system at any time. Such a scheme has a
number of major disadvantages:
1. Data redundancy and inconsistency - Since the files and application programs
are created by different programmers over a long period of type, the files are
likely to have different formats and the programs may be written in several
programming languages. Moreover, the same piece of information may be
duplicated in several files. This redundancy leads to higher storage and access
costs. It may also lead to inconsistency i.e. the various copies of the same data
may no longer agree.
2. Difficulty in accessing - Suppose that one of the bank officers needs to find out
the names of all customers who live within the city's 78-phone code. The officer
would ask the data processing department to generate such a list. Such a request
may not have been anticipated while designing the system originally and the only
options available are:-
Database system
Unlike the file system with many separate and unrelated files, the Database consists of
logically related data store in a single data repository. The problems inherent in file
systems make using the database system very desirable and therefore, the database
represents a change in the way the end user data are stored accessed and arranged.
6. Security - Only authorized people must access confidential data. The DBA ensures
that proper access procedures are followed including proper authentication schemes
process that the DBMS and additional checks before permitting access to sensitive
data. Different levels of security can be implemented for various types of data or
operations.
8. Data Independence - It involves both logical and physical independence logical data
independence indicates that the conceptual schemes can be changed without affecting
the existing external schemes. Physical data independence indicates that the physical
storage structures/devices used for storing the data would be changed without
necessitating a change in the conceptual view or any of the external use.
2. Centralization Problems
The database eliminates most of the file systems' data inconsistencies, anomalies and
structural dependency problems. The current generation of DBMS software stores not
only the data structures in a central location but also stores the relationships between the
database components. The DBMS also takes care of defining all the required access paths
of the required component.
The term database system refers to an organization of components that define and
regulate the collection storage, management and use of data within a database
environment. The database system is composed of 5 major parts i.e.
a. Hardware d. Procedures
b. Software e. Data
c. People
Hardware
This identifies all the systems physical devices e.g. the composition peripherals, storage
devices etc.
Software
These are a collection of programs used by the computers within the database system.
i. O.S - manages all hardware components and makes it possible for all other
and software to run on the composition.
ii. The DBMS - manages the database within the database system e.g. Oracle,
DB2, Ms Access etc.
iii. Applications programs and utilities to access and manipulate data in the
DBMS.
People
These are all database systems users:-
1. Systems administrator - Oversees the database systems general operations.
2. Database administrator (DBA) - Manages the DBMS use and ensures that the
database is functioning properly. His functions include:
3. Database designers - These are the database architects who design the database
structure.
i. Sophisticated users - These interact with the system without writing programs.
They form their requests in a database query language.
ii. Specialized database applications that do not fit in the traditional data
processing framework e.g. CAD Systems, knowledge based & expect
systems.
iii. Application programmers: These interact with the system through the DML
& applications.
iv. Naive – Unsophisticated user who interact with the systems by invoking one
of the permanent application programs that have been written previously.
Procedures
These are instructions and rules that govern the design and use of the database
system.
They enforce standards by which business is conducted within the organisation an
with customers.
They also ensure that there is an organized way to monitor and audit both the data
that enter the database and the information that is generated through the use of such
data.
Data
This covers the collection for facts stored in the database and since data is the raw
material from which information is generated the determination of what data is to be
stored into the database and how the data is to be organized is a vital part of the database
1.3 Database languages
A DBMS is software used to build, maintain and control database systems. It allows a
systematic approach to the storage and retrieval of data in a computer.
Most DBMS(s) have several major components, which include the following:
1. Data Definition Language (DDL) - These are commands used for creating and
altering the structure of the database.
The structures comprise of Field Names, Field sizes, Type of data for each field, File
organizational technique. The DDL commands are used to create new objects, alter
the structure of existing ones or completely remove objects from the system.
2. Data Manipulation language (DML) - This is the user language interface and is used
for executing and modifying the contents of the database. These commands allow
access and manipulation of data for output. They include commands for adding,
inserting, deleting, sorting, displaying, painting etc. These are the most frequently
used commands once the database has been created.
Interactive Data Manipulation Language (DML) - DML includes a query language
based on both relational calculus. It includes commands to insert tuples into, delete
tuples from and modify tuples in the database.
Embedded DML - This is designed for use within general purpose programming
languages such as PL/1. Cobol, Pascal, Fortran and C.
3. Data Control Language (DCL) - These are commands used to control access to the
database in response to DML commands. It acts as an interface between the DML
and the OS. It provides security and control to the data.
i. View Definition - The SQL DDL includes commands for specifying access rights to
relations and view.
ii. Integrity - The SQL DDL includes commands for specifying integrity constraints that
the data stored in the database must satisfy. Updates that violate integrity constraints
as disallowed.
iii. Transaction Control - SQL includes commands for specifying the beginning and
ending of transactions. Several implementations also allow explicit locking of data
for concurrency control.
Basic Structure of SQL Statement
SELECT
This corresponds o a projection operation of the relational algebra. Its used to list the
attributed desired in the result of a query.
FROM
This corresponds to a Cartesian product operation of the relational algebra. It lists the
relations to be scanned in the evaluation of the expression
WHERE
Corresponds to the predicate of the relational algebra. It consist of a predicate involving
attributes of the relations that appear in the FROM clause.
FROM
R1, R2, R3, .....................Rn
WHERE
P
Select clause
Examples (i) SELECT Branch name
FROM Loan
STUDENT COURSE
Code Stud.id Name Code Title
IMIS 001 Charles IMIS Info. Systems
BIT 002 Mary BIT Bachelor of IT
BIT 003 Maina CIT Cert in IT
CIT 004 Judy DIT Dip in IT
The select clause can also contain arithmetical expressions involving operations +, -, *,
and operating on constants or attributes of tables e.g.
SELECT Branch_name, Loan_number, Amount*100
FROM loan
Where Clause
Specifies a condition that has to be met. SQL uses the logical connectives AND, OR and
NOT in the where clause. It also uses operands of logical connectives <, < =, >, >=, =
and < >. It also includes a BETWEEN operations e.g.
(i) Select loan_number
From loan
(ii) Select loan_number
From loan
Where branch_name = "River Road" and Amount Between 10,000 And 15,000.
From Clause
This specifies the source (relations), which is a Cartesian product. The SQL uses the
notion relation-name. Attribute-name to avoid ambiguity in case where an attribute
appears in the schemer of more that one relation e.g.
Example
Select Customer_name, borrower. loan number
From borrower, loan
Where borrower.loan_number = loan.loan_number
AND branch_name= "Moi Avenue"
This will return the name of the customer the loan-number is the customer loan no.
appears in Moi Avenue.
SQL provides a mechanism for renaming both relations and attributes by use of the As
clause it is of the form
Old_name AS New_name. e.g.
By default the order by clause lists items in ascending order. To specify the sort order use
'desc' for descending order or „asc‟ for ascending e.g.
Select *
From loan
Order by amount desc, loan-number desc
Aggregate Functions
These are functions that take a collection (set or multi-set) of values as input and return a
single value. These are
Average: Avg
Minimum: Min
Maximum: Max
Total: Sum
Count: Count
The input to sum and average must be a collection of numbers but the other operators can
operate on collection of non-numeric data-types e.g. strings
Example
(i) SELECT Branch name, Avg(balance)
FROM Account
GROUP BY Branch -name
Null Values
Null values indicate absence of information about the value of an attribute. e.g.
SELECT loan-number
FROM loan
WHERE Amount is Null
Tuple Variables
A tuple variable in SQL must be associated with a particular relation
They are defined in the FROM clause via the use of the AS clause. e.g.
String Operations
Most commonly used operation on strings is pattern matching using “LIKE”.
Two characters are used
Percent (%) - matches any sub-string
Underscore (-) - matches any character
Patterns are case sensitive i.e. uppercase do not match lower case characters.
Examples
(i) “Mary %” matches any string beginning with “Mary”
(ii) “%ry” Matches any string containing “ry” as a sub-string e.g. very, mary, ary etc.
(iii) “- - -“ Matches any string of exactly three characters.
(iv) “- - -%” Matches any string of at least 3 characters.
The query to find customer names for all customers whose addresses include the sub-
string “main” would be:-
SELECT Customer-name
FROM Customer
WHERE Customer -street LIKE “%main %”
For patterns to include special pattern characters (i.e. % and _) SQL allows the
specification of an escape character. The escape character is placed immediately before a
special pattern character to indicate the special pattern. Character is to be treated like a
normal character. The key work ESCAPE is used.
Examples.
LIKE “ab\%cd%”ESCAPE “\” - matches all strings beginning with “ab%cd”
LIKE “ab\\cd%” ESCAPE”\” - matches all strings beginning with “ab\cd”
Mismatches.
SQL allows the search for mismatches using the NOT LIKE comparison operator Set
Operations.
SQL and Set
SQL operations Union, Intersect and Except operate on relations and correspond to the
relational operations , and -,
(i) Union
UNION
(SELECT Customer_name
FROM Borrower)
To indicate duplicates
UNION ALL
(SELECT Customer_name
FROM Borrower)
To find customers who have both a loan and an account at the bank
To find customers who have an account but no loan at the bank we write
EXCEPT
(SELECT Customer_name
FROM Borrower)
Example
SELECT Loan_number
FROM Loan
WHERE Amount is NULL
To test for the absence of a null value we use the predicate “IS NOT NULL”
VIEWS
Example
CREATE VIEW Customer AS
(SELECT Branch_name, Customer_name
FROM Depositor.account)
WHERE Depositor.Account_number, Account.account_number
NB: A create view clause creates a view definition in the database which stays there until
a command DROP View (view name) is executed.
(i) Deletion
DELETE FROM r
WHERE P
P represents the predicate, r represent the relation.
The statement first finds all tuples t in r which P(t) is true & then deletes them from r
Where clause can be omitted in which case all tuples in P are deleted.
Example
DELETE FROM Loan
- Deletes all tuples from the loan relation.
(ii) Insertion
To insert data into a relation:-
Specify a tuple to be inserted or
Write a query whose result is a set of tuples to be inserted
Tuples to be inserted must be in the correct arity.
Example
(iii) Updates
To change a value in a tuple without changing all values the UPDATE statement can be
used.
Examples
(i) UPDATE Account
SET Balance = Balance * 1.05
(ii) UPDATE Account
SET Balance = Balance *1.06
WHERE balance >10,000
Update Of A View
A modification is permitted through a view only if the view in question is defined in
terms of one relation of the actual relational database i.e. of a logical level db
Example
CREATE VIEW Branch_loan AS
SELECT Branch_name, loan_number
FROM loan
INSERT INTO Branch_loan
VALUES (“Moi Avenue”, “Accoo8”)
Syntax
CREATE TABLE r(A1D1, A2D2, -----, AnDn,
[Integrity Constraints],
…………
………...
………...
[Integrity - constraints]
Examples
(i) CREATE TABLE Customer
(Customer_name CHAR(20) NOT NULL,
Customer_street CHAR(30),
Customer_city CHAR(30),
PRIMARY KEY (customer_name))
Vehicle itself is an abstraction that includes the types; car, truck, bus and lorry.
Consider a non- database environment of a number of application programs as shown
below:
Application 1 will contain values for the attributes employee Name and Employee.
Address and this record can be described in pseudo-code as
In a database environment, data can be stored in this application and their requirement be
integrated by whoever is responsible for centralized control (DBA).
The integrated version would appear as recorded containing attributes required by both
applications.
The record will appear as:
Type Employee = record
Employee.Name:string
Employee.soc-sec.no: Integer
Employee.Address:string
Employee.Annual_Salary: double
End
The views supported are derived from the conceptual record by using appropriate
mapping.
The application programs no longer require information about the storage structure;
storage device types or access methods. These are absorbed by the DBMS.
User
1 User
2
Conceptual View
Employee.Name:String
Employee.Soc_Sec_No:Integer DBA
Employee.Address:String
Employee.Annual_Sal:Double
Internal View
Name:String Length 25 Offset 0
Soc_Sec_No:Integer 9 Offset 25
Address: String Length 5 Offset 34
Salary: 9,2 dec Offset 39
The 3 level scheme architecture is called the ANSI/SPARC model (American National
Standard Institute/Standards Planning and Requirements Committee.)
It is divided into 3 levels:
External
Conceptual
Internal
The view of each level is described as a scheme, which is an outline or a plan that
describes the records and relations existing in the view. It also describes the way in
which entities at one level of abstraction can be mapped onto the next level.
External Level (External or User view)
This is at the highest level of database abstraction where only those portions of the
database of concern to the user or application programs are included.
Any number of user views may be possible, some of which may be identical.
Each external view is described by means of a scheme called external scheme, which
consists of a definition of the logical records and the relationships in the external view.
It also contains the method of devising the objects in the external view from the objects in
the conceptual view (entities, attributes and relationships).
Internal View
This is the lowest level of abstraction closest to the physical storage method used.
It indicated how data would be stored and describe the data structures and access methods
to be used by the database. The internal schema implements it.
External Level
User/application view View A View B View C
Conceptual View
Conceptual Level
Internal View
Internal Level
Data Independence
This is the immunity of users/application programs from changes in storage structure and
access mechanism.
The 3 levels of abstractions along with the mappings from internal to conceptual and
from conceptual to external provide 2 distinct levels of data independence i.e.:
Logical Data Independence
Physical Data Independence
This indicates that the conceptual schema can be changed without affecting the existing
external schema.
The mapping between the external and conceptual levels would absorb the change.
It also insulates application programs from operations such as combining two records into
one or splitting an existing record into 2 or more records. The LDI is achieved by
providing the external level or user view database.
The application programs or users see the database as described by the respective
external view.
DBMS provided a mapping from this view to the conceptual view.
NB: The view at conceptual level of the database is the sum total of the current and
anticipated views of the database.
This indicates that the physical storage structures or devices used for storing the data can
be changed without necessitating a change in the conceptual view or any of the external
view. Any change is absorbed by the mapping between the conceptual and internal
views.
1.5 Classification of DBMS
This is a database system that supports one user at a time such that if user A is using the
database, users B & C must wait until user A complete his or her database work.
If a single user database runs on a personal computer it‟s called a desktop database.
This is a database that supports multiple users at the same time for relatively small
number e.g. 50 users in a department the database is referred to as a workgroup database.
While one, which supports many departments is called an enterprise database.
This is a database system that supports a database distributed across several different
sites.
This is a database system that supports immediate response transaction e.g. sale of a
product.
Learning objectives:
1. Entity sets
An entity is a thing or object in the real world that is distinguishable from all other
objects. It may be concrete e.g. a person or a book or it may be abstract e.g. a loan,
holiday a concept etc. An entity set is a set of entities of the same type that share the
same properties or attitudes e.g. a set of all persons who are customers of a bank.
2. Relationship sets
Example of relationship
Residence is an example of a relationship that can exist between the entities City and
Employee; Exam is an example of a relationship that can exist between the entities
Student and Course.
An instance of a relationship is an n-tuple made up of instances of entities, one for each
of the entities involved.
The pair (Johanssen,Stockholm), or the pair (Peterson,Oslo), are examples of instances in
the relationship Residence.
Types of Relationships
i. One to one relationship (1:1) - An entity in A is associated with utmost one entity in
a b
1 1
a b
2 2
a b
3 3
iii. One to Many relationship (1:M) - An entity in A is associated with any number of
a an entity in B can be associated
entities in B while b with at most one entity in A .
4 4
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
iv. Many to one relationship (M:1) - An entity in A is associated with at most one entity
in B and an entity in B can be associated with a number of entities in A.
a1 b1
a2 b2
a3 b3
a4 b4
a5 b5
v. Many to many (M:N) - An entity in A is associated with at least one entity in B and
an entity in B can be associated with a number of entities in A.
a b
1 1
a b
2 2
a b
3 3
a b
Existence Dependencies
4 4
If the existence of an entity X depends on the existence of entity Y, then X is said to be
existence dependent on Y. If Y is deleted, so is X. Y is said to be the dominant entity and
X is said to be subordinate entity.
Ternary Relationships
Identifiers
Identifiers (or keys) consist of one or more attributes which identify uniquely instances of
an entity. In many cases, an identifier is formed by one or more attributes of the entity
itself: in this case we talk about an internal identifier. Sometimes, however, the attributes
of an entity are not sufficient to identify its instances unambiguously and other entities
are involved in the identification. Identifiers of this type are called external identifiers.
An identifier for a relationship consists of identifiers for all the entities it relates. For
example, the identifier for the relationship (Person-) Owns(-Car) is a combination of the
Person and Car identifiers.
Schema with Identifiers
3. Attributes
Characteristics of Attributes
1. Simple and Composite attributes - e.g. a customer name or first name, middle name,
last name. Composite attributes are necessary if a user wishes to refer to entire
attribute on some occasions and to only a component of the attributes on other
occasions.
2. Single valued and Multi valued Attribute - The social security number or ID number
can only have a single value at any instance and therefore its said to be single valued.
An attribute like dependant name can take several values ranging from o-n thus it is
said to be multi valued.
3. Null Attributes - A null value is used when an entity does not have a value for an
attribute e.g. dependent name.
4. Calculated attribute - The value for this type of attribute can be derived from the
values of other related attributes or entities e.g.
i. Employment length value can be derived from the value for the start date and
the current date.
ii. Loans held can be a count of the number of loans a customer has.
Attribute example
Composite Attributes
It is sometimes convenient to group attributes of the same entity or relationship that have
closely connected meanings or uses. Such groupings are called composite attributes.
Schema with Attributes
Specialization
An entity set may include sub-groupings of entities that are distinct in some way from
other entities in the set. This is called specialization of the entity set e.g. the entity bank
account could have different types e.g.
Credit account
Checking account
Savings account - interest rate
Checking account - overdraft amount
For the standard if may be divided by number count of checks gold minimum balance
and an interest payment.
Senior checking account - age limit
A specialised entity set may be specialised by one or more distinguishing features.
Aggregation
This is abstraction through which relationship are heated as higher-level entities e.g. the
relationship set borrower and the entity sets customer and loan can be treated as a higher
set called borrower as a whole.
Student Payment
Lecturer Student
NB: Whenever the degree of a relationship is many to many we must decompose the
relationship to one-to -one or one-to-many. The decomposition process will create a new
entity.
Optional
Family Child
Mandatory
Course Student
Generalizations
These represent logical links between an entity E, known as parent entity, and one or
more entities E1,...,En called child entities, of which E is more general, in the sense that
they are a particular case.
In this situation we say that E is a generalization of E1,...,En and that the entities E1,...,En
are specializations of E.
Properties of Generalization
Every instance of a child entity is also an instance of the parent entity. Every property of
the parent entity (attribute, identifier, relationship or other generalization) is also a
property of a child entity. This property of generalizations is known as inheritance.
Types of Generalizations
A generalization is total if every instance of the parent entity is also an instance of one of
its children, otherwise it is partial. A generalization is exclusive if every instance of the
parent entity is at most an instance of one of the children, otherwise it is overlapping.
The generalization Person, of Man and Woman is total (the sets of men and the women
constitute „all‟ the people) and exclusive (a person is either a man or a woman).
The generalization Vehicle of Automobile and Bicycle is partial and exclusive, because
there are other types of vehicle (for example, motor bike) that are neither cars nor
bicycle.
The generalization Person of Student and Employee is partial and overlapping, because
there are students who are also employed.
Generalization Hierarchies
Total generalization is represented by a solid arrow. In most applications, modeling the
domain involves a hierarchy of generalizations that includes several
The E-R Model, as an E-R Diagram
Learning objectives:
Super key
An attribute or a set of attributes, that uniquely identifies a tuple within a relation.
Candidate Key
Super key (K) such that no proper subset is a super key within the relation.
In each tuple of R, values of K uniquely identify that tuple (uniqueness).
No proper subset of K has the uniqueness property (irreducibility
Primary Key
Candidate key selected to identify tuples uniquely within relation.
Alternate Keys
Candidate keys that are not selected to be primary key.
Foreign Key
Attribute, or set of attributes, within one relation that matches candidate key of
some (possibly same) relation.
Null
Represents value for an attribute that is currently unknown or not applicable for
tuple.
Deals with incomplete or exceptional data.
Represents the absence of a value and is not the same as zero or spaces, which are
values.
Entity Integrity
In a base relation, no attribute of a primary key can be null.
Referential Integrity
If foreign key exists in a relation, either foreign key value must match a candidate
key value of some tuple in its home relation or foreign key value must be wholly
null.
Enterprise Constraints
Additional rules specified by users or database administrators.
Learning objectives:
The technique is similar to that for a regular entity conversion, except that the primary
key of the owner entity must be included, as a foreign key, in the relation for the weak
entity.
Relationship Conversion
For relationship conversion, it is assumed that the entities participating in the relationship
have already been converted according to the rules identified above.
· Choose one of the relations (say R1) as the controller.
· Add the primary key of the controller to the other relation (R2 in this case) as a foreign
key.
· Also add any attributes associated with Rel to R1.
· Alternative: Merge the two relations into one.(Only appropriate if the individual
relations are not needed in other constructions.)
· If one side is (0,1) and the other (1,1), it is preferable to insert the key from the (0,1)
side into the relation of the (1,1) side. This avoids unnecesary use of null values.
· Insert the primary key K2 of the “1-side” entity as a foreign key into the relation R1 of
the “n-side” entity.
· Also add any attributes associated with Rel to R1.
Many-to-Many Binary Relationship Conversion:
· The new relation S has, as foreign keys, the primary key of each of E1 and E2.
· Include primary key pairs which “match” in the relationship Relationship
· Also include any attributes directly associated with Relationship
· Create a new relation S which contains as attributes each of the primary keys of the
participating entities. These will be foreign keys.
· Also include any attributes directly associated with Relationship
Learning objectives:
What is Normalization?
Normalization is a data analysis technique for producing a set of relations with desirable
properties
There are three basic levels of normalization: First (FNF), Second (SNF), and Third
(TNF) Normal Forms.
It is the TNF that is usually used as the basis for the design of the data model and for
mapping onto a database
Advantages of Normalization
• It is a formal technique with each stage of normalization process eliminating a
particular type of undesirable dependency
• It highlights constraints and dependencies in the data and hence aids in
understanding the nature of data
• The TNF produces well-designed databases which provide a higher degree of
independence
Un-normalized Form
A relation that contains one or more repeating groups i.e. repeated values for particular
attributes with a single record
Functional Dependency
Given a relation R, attribute Y of R is functionally dependent on attribute X of R, if and
only if each X-value in R has associated with it precisely one Y-value in R ( at any one
time) R.X --------------- R.Y
(R.X functionally determines R.Y)
Normalization Steps
Represent the un-normalized relation
List Attributes
Identify Repeating Groups
Identify Key Attributes
Convert to FNF
By removing Repeating Groups
Understand the Dependencies
Functional Dependency Diagrams may be used
Convert to SNF
by removing partial dependencies
Convert to TNF
by removing transitive dependencies
Rationalize the Results
Consider whether to combine any resulting relations that have identical
keys
Discard any relations that is redundant i.e. its attributes are contained
within another relation
Identify foreign keys
Review the names of the relations to ensure they reflect the information
content
Examples on how to remove dependencies
• Un-normalized Relation
INVOICE
InvoiceNo
CustomerNo
CustomerName
Address
City
Phone
Date
OrderNo
Rep
FOB
Code
Description
Qty
UnitPrice
Total
Subtotal
Shipping
Vat
Grandtotal
Paymentmode
Ccno
Ccname
Ccexpiry
Authorizationcode
PRODUCT
InvoiceNo
Code
Description
Qty
UnitPrice
Total
• Normalization Example: SNF
INVOICE
InvoiceNo
CustomerNo
CustomerName
Address
City
Phone
Date
OrderNo
Rep
FOB
Subtotal
Shipping
Vat
Grandtotal
Paymentmode
Ccno
Ccname
Ccexpiry
Authorizationcode
INVOICE-PRODUCT
InvoiceNo
Code
Qty
Total
PRODUCT
Code
Description
UnitPrice
• Normalization Example: TNF
INVOICE
InvoiceNo
CustomerNo *
Date
OrderNo *
Rep
FOB
Subtotal
Shipping
Vat
Grandtotal
Paymentmode
Ccno *
Authorizationcode
CUSTOMER
CustomerNo
CustomerName
Address
City
Phone
CREDIT
Ccno
Ccname
Ccexpiry
INVOICE-PRODUCT
InvoiceNo
Code
Qty
Total
PRODUCT
Code
Description
UnitPrice
Example: An invoice
Address ___________________________
___________________________
Un-normalised data.
2NF (identity and separate non-key attributes not fully dependent on key attribute)
Corresponding ERD
Invoice Product
Invoice
Product
Customer
Disadvantages
UNIVERSITY EXAMINATION
TIME: 2HRS
SECTION A
QUESTION ONE
d) Define the term normalization and explain the three normal forms
7marks
SECTION B
QUESTION ONE
a) Based on the following table
Hotel (hotelNo, hotelName, city)
Room (roomNo,hotelNo, type, price)
Booking (HotelNo,GuestNo, DateFrom, DateTo, RoomNo)
Guest(GuestNo, GuestName, GuestAddress)
Where hotel contains hotel details hotelNo is the primary key
Room contains room details for each hotel and (roomNo, HotelNo) forms
the primary key.
and Guest contains Guest details and GuestNo is the primary key.
QUESTION TWO
a) Describe five advantages of database management system
10marks
b) Explain the three database languages
6marks
c) “The File-based Approach had several challenges” explain the statement
(4marks)
QUESTION THREE
a) Eclipse Ltd plans to computerize its sales ordering and stock control system. A
feasibility study has strongly suggested that a relational database system be
installed. The details of ABC's sales and stock control are as follows:
Customers send in orders for goods. Each order may contain requests for variable
quantities of one or more products from Eclipse's range. Eclipse keeps a stock file
showing for each product the product details and the preferred supplier, the
quantity in stock, the reorder level and other details. Eclipse delivers those goods
that it has in stock in response to the customer order and an invoice is produced
for the despatched items. Any items that were not in stock are placed on a back
order list and these items are usually re-ordered from the preferred supplier.
Occasionally items are ordered from alternative sources. In response to the
invoices that are sent out to Eclipse's customers, the customers send in payments.
Sometimes a payment will be for one invoice, sometimes for part of an invoice
and sometimes for several invoices and part-invoices.
Draw an entity-relationship model, stating any assumptions made.
10marks
QUESTION FOUR
a) Consider the following relation:
OrderItem (OrderNo, ItemCode, Quantity, OrderDate, Description, CustomerNo,
CreditLimit, DeliveryAddress)
The following Functional Dependencies (FDs) apply to OrderItem:
FD1 OrderNo, ItemCode -> Quantity
FD2 OrderNo, ItemCode -> OrderDate
FD3 ItemCode -> Description
FD4 OrderNo -> CustomerNo
FD5 CustomerNo -> CreditLimit
FD6 CustomerNo -> DeliveryAddress
(i) Define the two Transitive Dependencies that can be derived from the FDs
and give an explanation of the derivation.
(4 marks)
(ii) (ii) Given the FDs above, normalise the OrderItem to 3NF, carefully
showing your intermediate steps.
(8 marks)
b) Employees table
Write SQL statements do the following
i. Retrieve all columns in the employee table 2marks
ii. List all the sales representatives 3marks
iii. List the firstname and last name of employees 3marks
THE EAST AFRICAN UNIVERSITY
UNIVERSITY EXAMINATION
SCHOOL OF COMPUTER SCIENCE & INFORMATION TECHNOLOGY
2 HOURS
INSTRUCTIONS
Answer all questions in section A and other TWO in section B
No reference material allowed
Time 2 Hours
QUESTION ONE
a) Define the following terms.
a) database
b) database management system
c) data integrity
d) schema
e) instance
[10mks]
ii) Discuss the business conditions that enable a business database to be effective.
[10mks]
iii) a) distinguish between a logical and physical data independence. [4mks]
b) Explain the purposes of the three DBMS languages [6mks]
SECTION B
QUESTION ONE
TABLE STUDENT:
STUDNO LNAME FNAME INITIAL DOB UNIT CODE
101 Mwangi John N 11/8/80 2100
102 Kimaiyo Peter M 12/12/84 2200
103 Chebet Martha K 2/4/83 2305
104 Oduor Louis M 11/06/80 2200
105 Njuguna Frank G 15/9/85 2100
Using SQL,
i. Create the table STUDENT [3 Mks]
ii. Having created the table structure in (i) above, enter the first two
records into the table. [2 Mks]
iii. Return the names of students taking unit code 9945 [2 Mks]
QUESTION TWO
a) Identify and briefly discuss any SIX of date’s twelve rules of distribution
[12 Mks]
b) What do you understand by E-R Modeling? [2 Mks]
Hence explain briefly terms: [6 Mks]
i. Cardinality
ii. Composite attribute
iii. Weak attribute
QUESTION THREE
a) with the aid of well labeled diagrams describe the three types of relationships.
[12mks]
b) Distinguish between generalization and specialization. [4mks]
c) Explain the roles of a database administrator [5mks]
QUESTION FOUR
a) Explain the term normalization. and hence Outline the nature of the following
normal forms
i) 1st normal form
ii) 2nd normal form
iii) 3rd normal form [3mks]
b) Explain five roles of a data base administrator. [10mks]
c) Discuss the properties of a transaction. [7mks]