Monday, 19 March 2012

B.Sc Paper III (Database Management Systems) Syllabus (Theory & Lab)

90 hrs
(3 hrs/ week)

B.Sc(Computer Science): III Year
THEORY PAPER – III
Database Management Systems

Unit-1 : Database Systems Introduction and Fundamentals. 18 hrs
Database Systems: Introducing the database and DBMS, Why the database is important,
Historical Roots: Files and File Systems, Problems with File System Data Management, Database
Systems.
Data Models: The importance of Data models, Data Model Basic Building Blocks, Business
Rules, The evaluation of Data Models, Degree of Data Abstraction.
The Relational Database Model: A logical view of Data, Keys, Integrity Rules, Relational Set
Operators, The Data Dictionary and the system catalog, Relationships with in the Relational
Database, Data Redundancy revisited, Indexes, Codd’s relational database rules.
(Chapters:1: 1.2 to 1.6,2,3)

Unit-2 : Data Modeling and Normalization 18 hrs
Entity Relationship Model: The ER Model, Developing ER Diagram, Database Design
Challenges: Conflicting Goals.
Advanced Data Modeling: The Extended Entity Relationship Model, Entity clustering, Entity
integrity: Selecting Primary keys, Design Cases: Learning Flexible Database Design.
Normalization of database tables: Database Tables and Normalization, The need for
Normalization, The Normalization Process, Improving the design, Surrogate Key Considerations,
High level Normal Forms, Normalization and database design, denormalization.
(Chapters: 4,6,5)

Unit-3 : Interaction with Databases and Construction of Information System 18 hrs
Introduction to SQL: Data Definition Commands, Data Manipulation Commands, Select queries,
Advanced Data Definition Commands, Advanced Select queries, Virtual Tables, Joining
Database Tables.
Advanced SQL: Relational Set Operators, SQL Join Operators, Subqueries and correlated
queries, SQL Functions, Oracle Sequences, Updatable Views, and Procedural SQL.
Database Design: The Information System, The Systems Development Life Cycle, The Database
Life Cycle, Database Design Strategies, Centralized Vs Decentralized design.
(Chapters: 7,8(8.1 to 8.7),9)

Unit-4 : Transaction Management in DBMS Environment. 18 hrs
Transaction Management and Concurrency Control: What is transaction, Concurrency control,
Concurrency control with locking Methods, Concurrency control with time stamping methods,
concurrency control with optimistic methods, database recovery management.
Distributed Database Management Systems: The evolution of Distributed Database Management
Systems, DDBMS advantages and Disadvantages, Distribution Processing and Distribution
Databases, Characteristics of Distributed database management systems, DDBMS Components,
Levels of Data and Process distribution, Distributed database Transparency Features, Distributed
Transparency, Transaction Transparency, Performance Transparency and Query Optimization,
Distributed Database Design, Client Server VS DDBMS.
(Chapters: 10, 12)

Unit-5 : Data Warehouse Concepts and Database Administration. 18 hrs
The Data Warehouse: The need for data analysis, Decision support systems, The data warehouse,
Online analytical processing, Star schemas, Data mining, SQL extension for OLAP.
Database Administration: Data as a Corporate asset, The need for and role of databases in an
organization, The evolution of the database administration function, The database environment’s
Human Component, Database administration Tools, The DBA at work: Using Oracle for
Database Administration.
(Chapter: 13:13.1 to 3.5,13.7,13.8,15:15.1,15.2,15.4,15.5,15.6,15.8)

Prescribed Text Book:
1. Peter Rob, Carlos Coronel, Database Systems Design, Implementation and Management,
Seventh Edition, Thomson (2007)
Reference Books:
1. Elimasri / Navathe, Fundamentals of Database Systems, Fifth Edition, Pearson Addison
Wesley (2007).
2. Raman A Mata – Toledo/Panline K Cushman, Database Management Systems, Schaum’s
Outlibe series, Tata McGraw Hill (2007).
3. C.J.Date, A.Kannan, S.Swamynathan, An Introduction to Database Systems, Eight Edition,
Pearson Education (2006).
4. Michel Kifer, Arthur Bernstein, Philip M. Lewis, Prabin K. Pani Graphi, Database Systems:
An application oriented Approach, second edition, pearson education (2008).
5.
Atul Kahate, Introduction to Database Management Systems, Pearson Education (2006).

B.Sc(Computer Science): III Year
PRACTICAL PAPER – III
DBMS Lab
Lab Cycle
Order Tracking Database
The Order Tracking Database consists of the following defined six relation schemas.
EMPLOYEES(ENO,ENAME,ZIP,HDATE)
PARTS(PNO,PNAME,QOH,PRICE,LEVEL) (HINT: QOH: QUALITY ON HAND)
CUSTOMERS(CNO,CNAME,STREET,ZIP,PHONE)
ORDERS(ONO,CNO,ENO,RECEIVED DATE,SHIPPED DATE)
ODETAILS(ONO,PNO,QTY)
ZIPCODES(ZIP,CITY)
Solve the following queries
1. GET ALL PAIRS OF CUSTOMER NUMBERS FOR CUSTOMERS BASED ON SAME ZIP
CODE.
2. GET PART NUMBERS FOR PARTS THAT HAVE BEEN ORDERED BY AT LEAST
TWO DIFFERENT
CUSTOMERS.
3. FOR EACH ODETAIL ROW, GET ONO, PNO, PNAME, QTY AND PRICE VALUES
ALONG WITH
THE TOTAL PRICE FOR THE ITEM. (TOTAL PRICE=PRICE*QTY)
4. GET CUSTOMER NAME AND EMPLOYEE PAIRS SUCH THAT THE CUSTOMER
WITH NAME
HAS PLACED AN ORDER THROUGH THE EMPLOYEE.
5. GET CUSTOMER NAMES LIVING IN FORT DODGE OR LIBERAL.
6. GET CNAME VALUES OF CUSTOMERS WHO HAVE ORDERED A PRODUCT WITH
PNO 10506.
7. GET PNAME VALUES OF PARTS WITH THE LOWEST PRICE.
8. GET CNAME VALUES OF CUSTOMERS WHO HAVE PLACED AT LEAST ONE
ORDER
THROUGH THE EMPLOYEE WITH NUMBER 1000.
9. GET THE CITIES IN WHICH CUSTOMERS OR EMPLOYEES ARE LOCATED.
10. GET THE TOTAL SALES IN DOLLARS ON ALL ORDERS.
90 hrs
(3 hrs/ week)
4
11. GET PART NAME VALUES THAT COST MORE THAN THE AVERAGE COST OF
ALL
PARTS.
12. GET PART NAMES OF PARTS ORDERED BY AT LEAST TWO DIFFERENT
CUSTOMERS.
13. GET FOR EACH PART GET PNO,PNAME AND TOTAL SALES
14. FOR EACH PART, GET PNO,PNAME, TOTAL SALES, WHOSE TOTAL SALES
EXCEEDS
1000
15. GET PNO, PART NAMES OF PARTS ORDERED BY AT LEAST TWO DIFFERENT
CUSTOMERS.
16. GET CNAME VALUES OF CUSTOMERS WHO HAVE ORDERED PARTS FROM ANY
ONE
EMPLOYEE BASED IN WICHITA OR LIBERAL.
SHIPMENT DATABASE
AN ENTERPRISE WISHES TO MAINTAIN THE DETAILS ABOUT HIS SUPPLIERS AND
OTHER CORRESPONDING DETAILS. FOR THAT IT USES THE FOLLOWING TABLES
TABLE S(SID,SNAME,ADDRESS)
PRIMARY KEY : SID
TABLE P(PID,PNAME,COLOR)
PRIMARY KEY : PID
TABLE CAT(SID,PID,COST)
PRIMARY KEY : SID+PID
REFERENCE KEY : SID REFERENCES S.SID
PID REFERENCES P.PID
Solve the following queries
1. FIND THE PNAMES OF PARTS FOR WHICH THERE IS SOME SUPPLIER
2. FIND THE SNAMES OF SUPPLIERS WHO SUPPLY EVERY PART.
3. FIND THE SNAMES OF SUPPLIERS WHO SUPPY EVERY RED PART.
4. FIND THE PNAMES OF PARTS SUPLLIED BY LONDON SUPPLIER AND BY NO
ONE ELSE
5
5. FIND THE SIDS OF SUPPLIERS WHO CHARGE MORE FOR SOME PART OTHER
THAN THE AVERAGE COST OF THAT PART
6. USING GROUP BY WITH HAVING CLAUSE GET THE PART NUMBERS FOR ALL
THE PARTS SUPPLIED BY MORE THAN ONE SUPPLIER.
7. GET THE NAMES OF THE SUPPLIERS, WHO DO NOT SUPPLY PART P2.
8. FIND THE SIDS OF SUPPLIERS WHO SUPPLY A RED AND A GREEN PART
9. FIND THE SIDS OF SUPPLIERS WHO SUPPLY A RED OR A GREEN PART
10.FIND THE TOTAL AMOUNT HAS TO PAY FOR THAT SUPPLIER BY PART
LOCATED FROM LONDON
Employee Database
An enterprise wishes to maintain a database to automate its operations. Enterprise divided into to
certain departments and each department consists of employees. The following two tables
describes the automation schemas
DEPT (DEPTNO, DNAME, LOC)
EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
1. CREATE A VIEW, WHICH CONTAIN EMPLOYEE NAMES AND THEIR MANAGER
NAMES WORKING IN SALES DEPARTMENT.
2. DETERMINE THE NAMES OF EMPLOYEE, WHO EARN MORE THAN THEIR
MANAGERS.
3. DETERMINE THE NAMES OF EMPLOYEES, WHO TAKE HIGHEST SALARY IN
THEIR DEPARTMENTS.
4. DETERMINE THE EMPLOYEES, WHO LOCATED AT THE SAME PLACE.
5. DETERMINE THE EMPLOYEES, WHOSE TOTAL SALARY IS LIKE THE MINIMUM
SALARY OF ANY DEPARTMENT.
6. UPDATE THE EMPLOYEE SALARY BY 25%, WHOSE EXPERIENCE IS GREATER
THAN
10 YEARS.
7. DELETE THE EMPLOYEES, WHO COMPLETED 32 YEARS OF SERVICE.
8. DETERMINE THE MINIMUM SALARY OF AN EMPLOYEE AND HIS DETAILS, WHO
JOIN ON THE SAME DATE.
9. DETERMINE THE COUNT OF EMPLOYEES, WHO ARE TAKING COMMISSION AND
NOT
TAKING COMMISSION.
6
10. DETERMINE THE DEPARTMENT DOES NOT CONTAIN ANY EMPLOYEES.
11. FIND OUT THE DETAILS OF TOP 5 EARNER OF COMPANY.
12. DISPLAY THOSE MANAGERS NAME WHOSE SALARY IS MORE THAN AVERAGE
SALARY OF HIS EMPLOYEES.
13. DISPLAY THOSE EMPLOYEES WHO JOINED THE COMPANY BEFORE 15TH OF
THE
MONTH?
14. DISPLAY THE MANAGER WHO IS HAVING MAXIMUM NUMBER OF EMPLOYEES
WORKING UNDER HIM?
15. PRINT A LIST OF EMPLOYEES DISPLAYING ‘LESS SALARY’ IF LESS THAN 1500
IF EXACTLY 1500 DISPLAY AS ‘EXACT SALARY’ AND IF GREATER THAN 1500
DISPLAY ‘MORE SALARY’?
16. DISPLAY THOSE EMPLOYEES WHOSE FIRST 2 CHARACTERS FROM HIRE DATELAST
2 CHARACTERS OF SALARY?
17. DISPLAY THOSE EMPLOYEES WHOSE 10% OF SALARY IS EQUAL TO THE YEAR
OF JOINING?
18. IN WHICH YEAR DID MOST PEOPLE JOIN THE COMPANY? DISPLAY THE YEAR
AND
NUMBER OF EMPLOYEES.
19. DISPLAY THE HALF OF THE ENAMES IN UPPER CASE AND REMAINING LOWER
CASE
20. DISPLAY ENAME, DNAME EVEN IF THERE NO EMPLOYEES WORKING IN A
PARTICULAR DEPARTMENT(USE OUTER JOIN).
University Database
University wishes to computerise their operations by using the following relations.
Student (snum:Integer, sname: string, major: string, level: string,
age: integer)
Class (name: String, Hour:Integer, room: string, fid: integer)
Enrolled (sum: integer, cname: string)
Faculty (fid: Integer, fname: String, deptid: Integer)
Depart (deptid: Integer, dname: String, loc: integer)
By using above schema definitions, resolve the following queries
1. FIND THE NAMES OF ALL JUNIORS (LEVEL=JR) WHO ARE ENROLLED IN A
CLASS TAUGHT BY SMITH.
7
2. FIND THE AGE OF THE OLDEST STUDENT WHO IS EITHER A HISTORY
MAJOR OR IS ENROLLED IN THE COURSE OF SMITH.
3. FIND THE NAMES OF ALL CLASSES THAT EITHER MEET R128 OR HAVE FIVE
OR MORE STUDENTS ENROLLED.
4. FIND THE NAMES OF ALL STUDENTS WHO ARE ENROLLED IN TWO
CLASSES THAT MEET AT THE SAME HOUR.
5. FIND THE NAMES OF FACULTY MEMBERS WHO TEACH IN EVERY ROOM IN,
WHICH SOME CLASS IS TAUGHT.
6. FIND THE NAMES OF FACULTY MEMBERS FOR WHOM THE COMBINED
ENROLLMENT OF THE COURSES THAT THEY TEACH IS LESS THAN FIVE.
7. PRINT THE LEVEL AND AVERAGE AGE OF STUDENTS FOR THAT LEVEL,
FOR EACH LEVEL.
8. PRINT THE LEVEL AND AVERAGE AGE OF THE STUDENT FOR THAT LEVEL,
FOR ALL LEVELS EXCEPT JR.
9. FIND THE NAMES OF STUDENTS WHO ARE ENROLLED IN THE MAXIMUM
NUMBER OF CLASSES.
10. FIND THE NAMES OF THE STUDENTS WHO ARE NOT ENROLLED IN ANY
CLASS.
Airline Database
An Airline System would like to keep track their information by using the following relations.
Flights (flno: integer, from: string, to: string, distance: integer,
Price: integer)
Aircraft (aid: integer, aname: string, cruising_range: integer)
Certified (eid: integer, aid: integer)
Employees (eid: integer, ename: string, salary: real)
Note that the employees relation describes pilots and other kinds of employees as well;
every pilot is certified for aircraft and only pilots are certified to fly. Resolve the following
queries:
1. FOR EACH PILOT WHO IS CERTIFIED FOR MORE THAN THREE AIRCRAFT, FIND
THE EID’S AND THE MAXIMUM CRUISING RANGE OF THE AIRCRAFT THAT HE
(OR SHE) CERTIFIED FOR.
2. FIND THE NAMES OF PILOTS WHOSE SALARY IS LESS THAN THE PRICE OF
THE CHEAPEST ROUTE FROM LOS ANGELES TO HONOLULU.
3. FIND THE NAME OF THE PILOTS CERTIFIED FROM SOME BOEING AIRCRAFT.
4. FOR ALL AIRCRAFT WITH CRUISING RANGE OVER 1,000 MILES, FIND THE
NAME OF THE AIRCRAFT AND THE AVERAGE SALARY OF ALL PILOTS
CERTIFIED FOR THIS AIRCRAFT.
5. FIND THE AID’S OF ALL AIRCRAFT THAT CAN BE USED FROM LOS ANGELS TO
CHICAGO.
6. PRINT THE ENAMES OF PILOTS WHO CAN OPERATE PLANES WITH CRUISING
RANGE GREATER THAN 3,000 MILES, BUT ARE NOT CERTIFIED BY BOEING
AIRCRAFT.
7. FIND THE TOTAL AMOUNT PAID TO EMPLOYEES AS SALARIES.
8. FIND THE EID’S OF EMPLOYEES WHO ARE CERTIFIED FOR EXACTLY THREE
AIRCRAFTS.
9. FIND THE EID’S OF EMPLOYEE WHO MAKE SECOND HIGHEST SALARY.
8
10. FIND THE AID’S OF ALL THAN CAN BE USED ON NON-STOP FLIGHTS FROM
BONN TO CHENNAI.
PL/SQL PROGRAMS
1. WRITE A PL/SQL PROGRAM TO CHECK THE GIVEN NUMBER IS STRONG OR NOT.
2. WRITE A PL/SQL PROGRAM TO CHECK THE GIVEN STRING IS PALINDROME OR
NOT.
3. WRITE A PL/SQL PROGRAM TO SWAP TWO NUMBERS WITHOUT USING THIRD
VARIABLE.
4. WRITE A PL/SQL PROGRAM TO GENERATE MULTIPLICATION TABLES FOR 2,4,6
5. WRITE A PL/SQL PROGRAM TO DISPLAY SUM OF EVEN NUMBERS AND SUM OF
ODD
NUMBERS IN THE GIVEN RANGE.
6. WRITE A PL/SQL PROGRAM TO CHECK THE GIVEN NUMBER IS POLLINNDROME
OR NOT.
7. THE HRD MANAGER HAS DECIDED TO RAISE THE EMPLOYEE SALARY BY 15%.
WRITE A
PL/SQL BLOCK TO ACCEPT THE EMPLOYEE NUMBER AND UPDATE THE SALARY
OF THAT
EMPLOYEE. DISPLAY APPROPRIATE MESSAGE BASED ON THE EXISTENCE OF THE
RECORD IN EMP TABLE.
8. WRITE A PL/SQL PROGRAM TO DISPLAY TOP 10 ROWS IN EMP TABLE BASED ON
THEIR JOB AND SALARY.
9. WRITE A PL/SQL PROGRAM TO RAISE THE EMPLOYEE SALARY BY 10%, FOR
DEPARTMENT NUMBER 30 PEOPLE AND ALSO MAINTAIN THE RAISED DETAILS
IN THE
RAISE TABLE.
10. WRITE A PROCEDURE TO UPDATE THE SALARY OF EMPLOYEE, WHO ARE NOT
GETTING
COMMISSION BY 10%
11.WRITE A PL/SQL PROCEDURE TO PREPARE AN ELECTRICITY BILL BY USING
FOLLOWING TABLE
TABLE USED: ELECT
NAME NULL? TYPE
MNO NOT NULL NUMBER(3)
CNAME VARCHAR2(20)
CUR_READ NUMBER(5)
PREV_READ NUMBER(5)
NO_UNITS NUMBER(5)
AMOUNT NUMBER(8,2)
SER_TAX NUMBER(8,2)
NET_AMT NUMBER(9,2)
12. WRITE A PL/SQL PROCEDURE TO PREPARE AN TELEPHONE BILL BY USING
FOLLOWING TABLE. AND PRINT THE MOTHLY BILLS FOR EACH CUSTOMER
TABLE USED : PHONE.
NAME NULL? TYPE
----------------------------- -------- ----
TEL_NO NOT NULL NUMBER(6)
9
CNAME VARCHAR2(20)
CITY VARCHAR2(10)
PR_READ NUMBER(5)
CUR_READ NUMBER(5)
NET_UNITS NUMBER(5)
TOT_AMT NUMBER(8,2)
13. WRITE A PL/SQL PROGRAM TO RAISE THE EMPLOYEE SALARY BY 10%,
WHO ARE COMPLETED THERE 25 YEARS OF SERVICE.
14. WRITE A PL/SQL PROCEDURE TO EVALUATE THE GRADE OF A STUDENT WITH
FOLLOWING CONDITIONS:
i. FOR PASS: ALL MARKS > 40
ii. FOR I CLASS: TOTAL%>59
iii. FOR II CLASS: TOTAL% BETWEEN >40 AND <60
iv. FOR III CLASS: TOTAL% =40
AND ALSO MAINTAIN THE DETAILS IN ABSTRACT TABLE.
TABLES USED
TABLE STD
SQL> DESC STD
NAME NULL? TYPE
------------------------------- -------- ----
NO NOT NULL NUMBER
NAME VARCHAR2(10)
INTNO NUMBER
CLASS NOT NULL VARCHAR2(10)
M1 NUMBER
M2 NUMBER
M3 NUMBER
M4 NUMBER
M5 NUMBER
10
TABLE ABSTRACT
SQL> DESC ABSTRACT
NAME NULL? TYPE
------------------------------- -------- ----
STDNO NUMBER
STDNAME VARCHAR2(10)
CLASS VARCHAR2(10)
INTNO NUMBER
TOT NUMBER
GRADE VARCHAR2(10)
PERCENT NUMBER
DAT_ENTER DATE
15. WRITE A PROCEDURE TO UPDATE THE SALARY OF EMPLOYEE, WHO BELONGS
TO
CERTAIN DEPARTMENT WITH A CERTAIN PERCENTAGE OF RAISE.

No comments:

Post a Comment