Upload
nemah-alsayed
View
100
Download
0
Embed Size (px)
Citation preview
Library’s Database Design for Dar Al-Hekma University
Database Management MIS 4301
Nemah Alsayed
Ferdous Mohammed
Monday, May 2nd, 2016
1
Abstract:
This project is a requirement of the course Database management, where we as students are exposed to a real life business environment and are required to design a database for a real client, Dar Al Hekma’s library. The database design will match the DAH library specification and needs, this will also include user’s documentation that will be submitted to the library. Furthermore, our project is divided into five phases which are the planning, analysis, design and implementation. In the planning phase, we sent a proposal to the library which was later approved by the library director. Interviews were then conducted with reference librarian Ms.Weam to gather information about the library processes and to identify our scope. Then in the analysis phase, we studied the existing systems and data storing methods in detail to identify the opportunities before starting the next phase of the project. The opportunity identified was to design a database that fits their requirements and could be used even after the expansion of the library. A conceptual model was created in the design phase followed by physical design. This report documents the steps to complete the design for the database and is divided into five chapters which require their own deliverables.
2
Acknowledgments
The outcome of this project required feedback from many people, and we are thankful to have got them along the completion of our project, hence we would like to use this opportunity to thank all who have directly or indirectly helped us to accomplish this project. We are grateful especially to Ms.Waem Almuzain who accepted us to do our project with her great help in answering all our questions and providing us with all documents we needed. Despite her a busy schedule managing the library affairs. We would like to thank all the library staff for being encouraging of students and very friendly. We also thank Dr. Mohamed Fares for his support and mentorship throughout the project.
3
Table of ContentsChapter 1: Introduction ……………………………………………………………….71.1 Company ………………………………………………………………...………….71.2 Dar Al-Hekma University’s Library………………………………..………….….71.3 Library’s Mission and Vision ……………………………………….…………….71.4 Organizational Chart ………………………………………………………………8
1.5 Similar Businesses…………………………………………………………………..8
1.6 Project Overview …………………………………………………………………...8
1.6.1 Project’s Scope ……………………………………………………………8
1.6.2 Tools Used by the Customers…………………………………………….9
1.6.3 Customer’s Point of View………………………………………………..10
1.7 Project’s Deliverables………………………………………………………….....10
Chapter 2: Database Requirements …………………………………………………..11
2.1 Requirements Collection Process ………………………………………………11
2.2 Stakeholders ……………………………………………………………………11
2.3 Actors …………………………………………………………………………….12
2.4 Work Flow Process ………………………………………………………………12
2.5 Use case scenarios ………………………………………………………………..15
2.6 Narrative Requirements …………………………………………………………16
2.7 Entities and relationships ………………………………………………………..17
2.8 Functional Requirements ………………………………………………………..18
2.9 Non Functional Requirements …………………………………………………..19
2.10 Project Plan …………………………………………………………………….20
2.11 Project Budget ………………………………………………………………….21
Chapter 3: Database Design ………………………………………………………23
3.1 Enhanced Entity-Relationship Diagram (ERD) ………………………….....23
3.2 Relational Schema……………………………………………………………..243.3 Normalization………………………………………………………………….243.4 Data Samples …………………………………………………………………..27
Chapter 4: Database implementation …………………………………………………31
4.1 Justification of Using Indexes ……………………………………………...31
4
5 Chapter 5: Conclusion……………………………………………………………….32
Appendix A……………………………………………………………………………….33
References…………………………………………………………………………33
Appendix B………………………………………………………………………………..34
Interview questions ……………………………………………………………….34
Appendix C………………………………………………………………………………...35
Library’s Forms …………………………………………………………………..35
5
6
Chapter 1: Introduction
1.1 Company
Our client is Dar Al-Hekma University’s Library. Dar Al-Hekma University is a non-profit, private university for females in Jeddah, Saudi Arabia, established in 1999. Their mission is to graduate accomplished women, leaders and entrepreneurs. Their vision is to be a premier institution of higher education for women in Saudi Arabia to promote high standards of character and learning in keeping with Islamic teachings. Its graduates will be capable of bringing about positive change for the betterment of self, family, society and humanity, with the aim of serving and pleasing the Creator. (Dar Al-Hekma Annual Report, 2014).
According to the registrars, there is a total of 1580 students currently registered in the university. In addition to 179 faculty members and 437 staffs according to HR department. The university is planning future expansion to cater to the increasing numbers of students. They developed an expansion plan including new buildings, facilities, and majors. The expansion project aims to accommodate 4,000 students for current and future schools and academic degree programs.
1.2 Dar Al-Hekma University’s Library
The library is located in the first floor and has two divisions, the main library and the technical services library. With a total of 10 library’s staff. The library’s operations are divided into three categories: collections, databases, and services. The library has around 49,000 print items and over 150 journals and magazines. In addition, the library is subscribed to 18 online databases each specialized on a subject ranging from education, design, business, law, and general etc. Examples of the most popular databases are EBSCO Host, The wall street journal, and Pro Quest. Last year the library processed a total of 3705 new additions to the current collection and lent a total of 13428 items. Library’s’ users reached 117290 according to library’s director’s statistics.
The reasons we chose DAH library are: first, existing opportunity for database design that is tailored according to customer’s specific requirements. Second, to eliminate manual operations such as registering visitors and fines processing thus reducing inconsistency of data. Third, it will improve the management of library collections by the librarians and ease their work. Last, the library is a convenient location inside the university and has very friendly staff who are willing to contribute into the project.
1.3 Library’s Mission and Vision
The library’s mission is summarized as: “To provide an environment of learning and investigation that effectively supports the college programs of study and their curricula, research, faculty, staff, students and community outreach.” The library follows their mission in the acquisition, organization, and delivery of information to the Dar Al Hekma University community to fulfil their information needs. They maintain leadership by committing to excellent quality and creating a friendly environment, while promoting the use of progressive and innovative technology and information literacy, and providing an accessible facility for
7
studying and researching in addition to making sure that the collections in the library are up-to-date.
1.4 Organizational Chart
Figure 1: Library’s Organizational Chart.
1.5 Similar Businesses
The University of Business and Technology (UBT) has similar size library, with its central library in Dahban which is responsible for acquisitions and supervision of operations, and branch library in Jeddah’s campus. (UBT, 2015)
Al Batterjee Medical College’s Library, which contains collections of books and electronic resources for the needs of students, faculty, and staff. It has two branches one at male and other at female sections. (Batterjee Medical College, 2015)
Effat University is a similar business to Dar Al-Hekma University. Its library provides similar services to DAH’s but it is larger in scale and has more resources. It has an approximate of 25,000 items including academic works, magazines, newspapers, fiction, and literature. They are subscribed to over one hundred academic databases including JSTOR, Academic Search Complete, APA's PsycArticles, Credo Reference, and many more. They use Glifos library system. (Effat University Library, 2013)
1.6 Project Overview
1.6.1 Project’s Scope
Scope defines the project’s boundaries, or in other words which business process the project may or may not address. The decision of what to include in our scope was based on whether the data we collected is related to our definition of our mini-world. It is also important to have a clear picture of scope beforehand and agreement with the clients, to avoid project’s failure. This database design project will cover all the library collections including books, serials,
8
and multimedia items, like films, audio discs, DVD discs, as well as journals, and magazines included in both English and Arabic catalogs. It will also cover all the different types of users including registering visiting patrons and their subscriptions. In addition to the different services they use in the library like searching, reserving, and borrowing items. Moreover, it will cover loans handling and all the fines which could occur according to the library’s policies. Last, it will cover the librarians’ information such as their type and working hours.
This design will not cover some of the activities which are directly related to the PSSD and partially related to the library. Including books orders processing, handling of donated and gifted books, library materials which are weeded and removed from circulation, as the PSSD dispose of them. Plus the databases the library is subscribed to as those services are negotiated and paid for by the PSSD. Also, community service hours done by library or students are not included because they are handled by CS officers and stored into different database. Last, we will not cover the reservations of study rooms and orientation day as it is usually done informally.
1.6.2 Tools Used by the Customers
The Library uses OCLC system and ARUC (Arabic Union Catalog) software to manage the library’s collections. Processing is done in-house with the help of automated union catalogs. Also, all print and some electronic material are included in the online public access catalog (OPAC) which is offered under OCLC system as well as the OLIB Online Library’s Catalog which can be accessed through http://library.dah.edu.sa/webview .Users can access electronic databases like EBSCO through a link on the OPAC interface (the Library’s portal). OCLC is a comprehensive systems that covers the collections handling and borrowing process. Besides OLIB, it has intranet for library staffs, which we saw with the help of Ms. Weaam, and she showed us how she uses it for the borrowing process as one of its main functions. She scans RFID tags, which are attached to each book, and readers called 3M is used to read the tags when book is borrowed and students’ IDs when it is returned. Librarians attach security strips and Radio Frequency Identification (RFID) tags to all Library materials. Last, all data is stored in OCLC’s database which is managed by the OCLC’s company and maintained by them, not by Dar Al-Hekma’s IT department. IT department maintains all the remaining services of the Library, like PCs.
Application Description
GCstar It is an application used to manage collections such as books, movies, videogames etc. Information such as the location of the item you lent can also be retrieved through this app. (GCstar, 2012).
Tellico Tellico is a collection manager for keeping track of your books, bibliographies, videos, music, comic books and video games. (Tellico, n.d.)
Data Crow Data Crow is a powerful media cataloger and organizer that allow users to manage all their audio, software, book, movie, and photo collections in one customizable tool. The program can create a huge database containing all your collected items. (Data Crow
9
Cataloger, 2014).
Table1: Similar Applications in the Market.
1.6.3 Customer’s Point of View
We interviewed the library staff and they were satisfied with the current system they use, and how it facilities the borrowing process. However, they thought they could improve the manual process of recording fines and registering patrons. This, we figured was an opportunity because those process are time consuming and could result in mistakes. Additionally, they wanted to expand their collections and library’s size in the future with the university expansion. Our design of database will be suitable to use and doesn’t need modification after the university expansion because it is designed specifically to their requirements. It will also have added features that doesn’t exist in the old system such as supported courses by a collection item, loans handled by which librarian, and total automation of registering patrons and fines handling.
1.7 Project’s Deliverables
A copy of this project will be delivered to Dr. Mariam Gard, the library director, and Ms. Weaam Almuzain, to keep it in the library’s documents as a reference for future developments. Training will also be scheduled for the library members if they requested any to show them step by step how to use the new database.
10
Chapter 2: Database Requirements
2.1 Requirements Collection Process
First step in gathering information was observation; we observed the roles of the librarians on the help desk and what kind of tasks they do. They are responsible of the borrowing processes, which is facilitated by using RFID tags, attached to each book, and readers to read the tags and students’ IDs, they have access to the library system. They also help students or staff in finding the right resources in the library. They are also responsible for scanning, and printing. Upon our observations, we found that there are 2 printers, 4 scanners and 44 computers in the main library. The technical services library is not for visiting, only the library workers are allowed there. They have 7 staff who are responsible for receiving the books from the purchasing department and they bind them, attach the RFID tags, screen them, and make them ready to use in the main library. We observed and talked to the library main users, students. Their main activates was using library’s devices and books. They search books first using OLIB, note the shelve number, and then look for the book/material.
Second, we conducted an interview with Ms.Weaam Almuzain, Reference Librarian, to gather the requirements, and inquire about library’s process. A total of 2 meetings were held with the Ms.Weam with an approximate of 30 minutes each. We asked a total of 24 questions, attached interview questions in appendix, and took notes of her answers. We wanted to get a feel of how their current system works and their expectations from the database that we will design. We also wanted to gather an in depth information about the library’s day to day operations as she is always on the help desk interacting with both, system and customers.
Third, we used data analysis approach which according to (Munro et al. as cited in De& Sen, 1984) includes examining files, records, and reports that management uses for decision making. Then asking the director/ manger about extra information which helps in discarding supposed requirements. It is old approach and reliable. We reviewed all the documents used in the library, for internal staff, director and external users. Including policies and provisions, borrowing rules, collections development, forms for visiting patrons, and statistics from the current database. Last, we always got chance to visit the library to inquire about the documents and ask questions, also we send emails beforehand to the library staff if we need to ask additional questions.
2.2 Stakeholders
A stakeholder is a person or organization that has an interest in the project. We as students working on the project took the role of database designers. Our university, Library, and IT, and MIS department are of the main stakeholders. As we used various methods to collect the necessary information needed to design a database, we required participation of library’s workers, customers including students, visitors, faculty, and staff. Last, the project’s manager Dr. Mohamed Fares, who will guide the project until it’s finished.
2.3 Actors
Actors are those who will directly interact with the database to exchange information. In the library case, the users interacting with the database are librarians, students, registered
11
patrons, faculty, and staff. All end users occasionally access the database, they perform similar tasks such as searching, borrowing and reserving items from the library collection. They also pay fines for overdue, damaged, or lost items and have to return the items they borrowed. However, their privileges are not the same as the main users, librarians, who are responsible to registering users of all types into the system. As well as manging library’s collections, loans, and fines. While different types of user have different privileges in using the library resources as the library polices differ based on user type. Those polices are elaborated in table 2 below in the narrative requirements.
2.4 Work Flow Process
This section describes the current library process from start to finish. Currently, the process starts when the technical library receives materials shipments from PSSD. The librarians prepare the books/items in the technical library, attach RFID tags to materials, bind, and screen them. They then insert new materials information into OLIB system and deliver materials to the main library. The librarians arrange materials on shelves based on Dewey decimal classifications. Users can search for desired items manually or using OLIB. If they couldn’t find it, they ask reference librarian/ submit request. If they found it, they note shelf number, pick up book and go to reference desk to borrow it. Librarian checks user’s type, if the user is a visitor, they check subscription, if there is no subscription they ask the user to pay 500 to register them as visiting patron. If the user is student/faculty/staff, they ask the user present her ID and check her loan status. If they have overdue or late due, the user has to return the material and pay fines. If they don’t have any, librarian checks if material is reference or audio/visual. If it is, librarian would ask library’s director for permission to borrow material. If it isn’t, librarian scans material s RFID tags and user s ID and stamps at the end of the material the end of loan duration. Emails are send to user to remind her of the loan due date. User returns borrowed items. Librarian checks due date and if item is damaged. If it is overdue/damaged, user pays fines. If it isn’t, librarian scans user ID to drop the loan. Librarian collects statistics about users and borrowed items and a report is submitted to the library director. Below is the flow chart diagram that illustrates the process.
12
Figure 2: Work Flow Diagram.
13
2.5 Use case scenarios
Figure 3: Use Cases Diagram
This section breaks down the process of borrowing an item by describing the actors that interact with the system. The actors of the system are entities that interact with the system in some way: whether they directly provide input into the system, receive an output from the system, or are affected by it indirectly. In this project, the actors are the librarian, student, registered patron and faculty. Relationships in the use case diagram are called Association. There are two types of associations used in our project’s use case diagram, they are extend and include. The extend is optional and can be used to further add more use cases whereas the include represents a use case that cannot occur unless a preceding use case has been completed. Our use case diagram begins when all actors enter their username and password. The student, registered patron and faculty can then search their desired item. They can also select, borrow and request new item if they want. The librarian updates and removes items. Cases that weren’t mentioned in the use case diagram include Liberian inserting new users and receiving fines.
14
2.6 Narrative Requirements
The Library has two branches, each branch is responsible for different tasks. The main library’s librarians hold primary responsibility for the development of the Library collection. The librarians must work with faculty to identify print, non-print, multi-media and electronic materials for the Library collection. The Library uses multiple methods of identifying items for purchase, such as user requests, publisher brochures, websites, academic magazines, and memberships. Faculty, staff and students can submit recommendations to the Library for materials to be purchased. The Library purchases between one and three copies of each resource, according to demand. The Library supports the following collection areas: First, General Reference Collection, such as encyclopaedias, thesauri, handbooks, directories and yearbooks. Second, Core Curriculum which are materials are selected to support general knowledge. Third, Academic Programs. Forth, Leisure Reading, both fiction and non-fiction. The Library collects print and electronic books, print and electronic serials. The Library purchases films, videocassettes, audio discs, DVD discs and other audio-visual formats when they offer the most effective learning experiences. English is the primary language of the collection, but Arabic and other languages materials can also be acquired. All collection items information are stored into the system such as authors, publishes, publishing date, and shelf mark.
Current Dar Al-Hekma students, faculty, staff and registered visiting patrons are permitted to borrow items from the Library. Their information such as IDs, names are stored into the system. Students, faculty and staff are required to present their DAH ID card and visiting patrons are required to use their visitor card in order to borrow library resources. The DAH ID card may be used for checkout only by the person to whom the card is issued. Users must return library materials in good condition, on or before the due date. Users must obtain the permission of the Library Director to borrow Reference and audio-visual resources. Users are not permitted to take Library materials out of the Library until the loan has been recorded. Users are responsible for all material checked out on their card and for any fines incurred for lost, overdue, or damaged items. Users must ensure that all circulated library materials have been returned before requesting the Library Director's signature on their clearance form. Users are responsible for bringing books into the library for renewal before the due date. The Library will send three overdue notices to the university or registered email address of the user after the due date for returning borrowed material has passed. After the third notice is sent, the item will be treated as a lost item if not returned. Borrowing privileges for different types of users are explained in more details in the table below.
User type Number of borrowed items DurationStudent Permitted to borrow:
1. 8 books from the main collection.2. 1 Reference, l Audio Visual and/or 1
bound.3. Students are not permitted to borrow
Faculty Reference collection items.
1. 14 days for main collection.
2. Overnight use or weekend use for references.
Faculty Permitted to borrow:
1. 10 Main Collection or Faculty
1. 14 days or whole semester.
2. 7 days.
15
Reference books.2. 3 audio-visual materials.3. 1 Reference item.4. 3 periodical issues from circulating
journal titles.5. Are allowed to request via email for
library materials to be delivered to their offices for borrowing purposes.
3. Overnight or weekend use.
4. Overnight or weekend use.
Visiting patron Permitted to borrow:1. 1 book from the Main Collection at a
time.2. Cannot borrow any other format of
library resources.
1. 14 days.
Table 2: Library’s User’s Borrowing Privileges.
Fines are assessed in all days of the Library operations. Library privileges will be suspended if a user accumulates fines of SR50 or more. Fines incurred by visiting patrons are subtracted from their deposit. The Librarian will not sign an employee's clearance form until all Library charges and fines have been cleared. Fines descriptions and amounts are explained in details in the table below.
Fine description Item type AmountLoan overdue Main Collection and Faculty
Reference items.1 SR a day
Loan overdue Periodicals, audio-visual materials, and reference items.
5 SR a day
Lost or damaged items Main Collection or Faculty Reference items.
SR 350 plus the late fee
Lost or damaged items periodicals SR 100 plus the late feeLost or damaged items Audio-visual materials, reference
items and bound periodicals.SR 500 plus the late fee
Table 3: Library’s Fines Description.
2.7 Entities and relationships
Entities Attributes Relationships
Library collections Barcode, tittle, Author, ISBN, Publisher, Language, Form, Publishing date, Location, Shelf-mark.
Managed by (Technical Library)
16
Librarian ID, Name, working hours Supervised by (Library director)
User User ID, User name 1.Searches (Library collections)2.Reserves (Library collections)3.Borrows(Library collections)4.Returns (Loans)5. Pays (Fine)
General Reference Reference Type No relationship
Core curriculum Area No relationship
Academic programs Course No relationship
Leisure reading Reading Type No relationship
Loan Loan ID, date, transaction, due, Fine ID, Librarian ID, User ID, Barcode
Handled by (General Librarian)
General Librarian No attributes Handles (Loans)
Technical Librarian No attributes Manages (Library collection)
DAH member Type No relationship
Visitor Subscription No relationship
Library director ID, Name, working hours Supervise (Librarian)
Fine Fine ID, Loan ID, User ID, Type, Barcode, date, Amount
Paid by (user)
Table 4: Entities and Relationships.
2.8 Functional Requirements
1. Show all information about the users who borrowed books in a given month. 2. Show all the loans which should be returned today (date on the system) with user’s
information. 3. Provide information about a selected item.
17
4. Show the library's collections which are on loan, including barcode, title, UserID who borrowed it and when is loan due.
5. Count the number of loans for each user. 6. List each user name, type, fineID, and amount for a given UserID. 7. Whenever a user of type visitor is inserted, show a message asking for deposit receipt
to activate their subscription. 8. Show the number of users served a librarian by using LibarianID.9. If a user has fine amount more than 50 SR will show a message to be suspended their
privileges when their information is inserted.
2.9 Non Functional Requirements
(Doorn & Rivero 2002) identify functional requirements as methods or procedures and processes related to database performance, while non-functional requirements are properties or guidelines that must be accomplished to enhance performance. They range on various areas such as security, output quality, and performance. We estimated the numbers of library users, on and offline, to be 6000 user covering students, all faculty, staff, visitors and new students. All these numbers need a powerful database server with fast network connection while accessing the database.
Availability and backup are crucial because many users will need to access the library’s collections off site so it should be available 24/7. (Vieira, 2009) explained that SQL server provides network libraries that configures and talks to the network’s protocols, they should be installed on server and client computers.
Backup is important because customers’ data is very valuable asset to any organization, besides library’s collections data is the core of the library’s business operations. Nowadays, more organizations are using a private cloud for data backup while others are still using backup tapes. It is up for IT department to choose backup method after weighting advantages and costs. Cloud disadvantage that it needs fast connection, while tapes requires special readers and should be saved off site. According to (Vieira, 2009) there is three types of backup in SQL server: full backup, differential, which writes what have changed since last full backup, and transaction log.
Security is very important aspect of database, we define it as the access to database whether to a confidential data or to do modifications. The system will ask for users’ authentication through User ID and password. The DBA can manage security by assigning privileges to users and limiting their authority to view or modify data. It can be implemented by using triggers and views. Also, security is important in the network connections, using firewalls and intrusion detection systems is needed. Last, maintenance, which is the job of the DBA to maintain the database.
18
2.10 Project Plan
ID TaskMode
Task Name Duration Start Finish
1 Database Management project 59 days Wed 2/10/16 Sat 4/30/16
2 Looking for a company 2 days Wed 2/10/16 Thu 2/11/16
3 Submmiting permession letter to library
1 day Thu 2/11/16 Thu 2/11/16
4 Writing interview questions 2 days Tue 2/23/16 Wed 2/24/16
5 Interview 2 days Tue 2/23/16 Wed 2/24/166 Survey and observations 2 days Wed 2/24/16 Thu 2/25/16
7 Reading the prochures and documentaions of the library
2 days Sat 2/27/16 Mon 2/29/16
8 Chapter 1: Introduction 3 days Mon 2/29/16 Wed 3/2/16
9 Background of the organization1 day Mon 2/29/16 Mon 2/29/1610 Project overview 1 day Tue 3/1/16 Tue 3/1/1611 Project Deliverables 1 day Wed 3/2/16 Wed 3/2/1612 Chapter 2: Database
Requirments15 days Mon 2/22/16 Fri 3/11/16
13 Requirments collection process1 day Mon 2/29/16 Mon 2/29/1614 Stakeholders 1 day Tue 3/1/16 Tue 3/1/1615 Actors 1 day Tue 3/1/16 Tue 3/1/16
Nemah Alsayed,Ferdous Mohammed
Nemah Alsayed,Ferdous Mohammed
Ferdous Mohammed ,Nemah Alsayed
Nemah Alsayed,Ferdous Mohammed Nemah Alsayed,Ferdous Mohammed
Nemah Alsayed,Ferdous Mohammed
Ferdous Mohammed Nemah Alsayed,Ferdous Mohammed Nemah Alsayed
Nemah AlsayedFerdous Mohammed Nemah Alsayed
S W S T M F T S W S T M F T S W S T M F T SJan 31, '16 Feb 14, '16 Feb 28, '16 Mar 13, '16 Mar 27, '16 Apr 10, '16 Apr 24, '16
ID TaskMode
Task Name Duration Start Finish
14 Stakeholders 1 day Tue 3/1/16 Tue 3/1/1615 Actors 1 day Tue 3/1/16 Tue 3/1/1616 Workflow 1 day Tue 3/1/16 Tue 3/1/1617 Usecases 2 days Wed 3/2/16 Thu 3/3/1618 Narrative Requirments 1 day Thu 3/3/16 Thu 3/3/1619 Entities and relationships 2 days Sun 3/6/16 Mon 3/7/1620 Functional requirments 2 days Tue 3/8/16 Wed 3/9/1621 Nonfanctional requirments 2 days Tue 3/8/16 Wed 3/9/1622 project plan 1 day Wed 2/24/16 Wed 2/24/1623 project budget 1 day Thu 3/10/16 Thu 3/10/1624 Chapter3: Database Design 9 days Sun 3/13/16 Wed 3/23/1625 ER Diagram 3 days Sun 3/13/16 Tue 3/15/1626 Relational Schema 2 days Tue 3/15/16 Wed 3/16/1627 Normalization 2 days Wed 3/16/16 Thu 3/17/1628 Data Sample 2 days Fri 3/18/16 Mon 3/21/1629 Chapter 4: Database
implementation 11 days Mon 3/21/16 Sun 4/3/16
30 Tables 1 day Mon 3/21/16 Mon 3/21/1631 Views 1 day Mon 3/21/16 Mon 3/21/1632 User defined functions 2 days Tue 3/22/16 Wed 3/23/1633 User defined stored procedures 2 days Wed 3/23/16 Thu 3/24/1634 Triggers 1 day Fri 3/25/16 Fri 3/25/1635 Queries 2 days Fri 3/25/16 Mon 3/28/16
Ferdous Mohammed Nemah AlsayedNemah Alsayed
Nemah Alsayed,Ferdous Mohammed Ferdous Mohammed
Nemah Alsayed,Ferdous Mohammed Ferdous Mohammed Nemah Alsayed
Nemah AlsayedFerdous Mohammed
Ferdous Mohammed Nemah AlsayedFerdous Mohammed ,Nemah Alsayed
Nemah Alsayed,Ferdous Mohammed
Ferdous Mohammed Nemah Alsayed
Ferdous Mohammed ,Nemah AlsayedNemah Alsayed,Ferdous Mohammed Ferdous Mohammed
Ferdous Mohammed ,Nemah Alsayed
S W S T M F T S W S T M F T S W S T M F T SJan 31, '16 Feb 14, '16 Feb 28, '16 Mar 13, '16 Mar 27, '16 Apr 10, '16 Apr 24, '16
19
ID TaskMode
Task Name Duration Start Finish
18 Narrative Requirments 1 day Thu 3/3/16 Thu 3/3/1619 Entities and relationships 2 days Sun 3/6/16 Mon 3/7/1620 Functional requirments 2 days Tue 3/8/16 Wed 3/9/1621 Nonfanctional requirments 2 days Tue 3/8/16 Wed 3/9/1622 project plan 1 day Wed 2/24/16 Wed 2/24/1623 project budget 1 day Thu 3/10/16 Thu 3/10/1624 Chapter3: Database Design 9 days Sun 3/13/16 Wed 3/23/1625 ER Diagram 3 days Sun 3/13/16 Tue 3/15/1626 Relational Schema 2 days Tue 3/15/16 Wed 3/16/1627 Normalization 2 days Wed 3/16/16 Thu 3/17/1628 Data Sample 2 days Fri 3/18/16 Mon 3/21/1629 Chapter 4: Database
implementation 11 days Mon 3/21/16 Sun 4/3/16
30 Tables 1 day Mon 3/21/16 Mon 3/21/1631 Views 1 day Mon 3/21/16 Mon 3/21/1632 User defined functions 2 days Tue 3/22/16 Wed 3/23/1633 User defined stored procedures 2 days Wed 3/23/16 Thu 3/24/1634 Triggers 1 day Fri 3/25/16 Fri 3/25/1635 Queries 2 days Fri 3/25/16 Mon 3/28/1636 SQL notes 2 days Tue 3/29/16 Wed 3/30/1637 Chapter 5: conclusion 8 days Thu 3/31/16 Sat 4/9/1638 Writing Up 13 days Sat 4/9/16 Tue 4/26/16
Ferdous Mohammed Nemah Alsayed,Ferdous Mohammed
Ferdous Mohammed Nemah Alsayed
Nemah AlsayedFerdous Mohammed
Ferdous Mohammed Nemah AlsayedFerdous Mohammed ,Nemah Alsayed
Nemah Alsayed,Ferdous Mohammed
Ferdous Mohammed Nemah Alsayed
Ferdous Mohammed ,Nemah AlsayedNemah Alsayed,Ferdous Mohammed Ferdous Mohammed
Ferdous Mohammed ,Nemah AlsayedNemah Alsayed,Ferdous Mohammed
Nemah Alsayed,Ferdous Mohammed Nemah Alsayed,Ferdous Mohammed
S W S T M F T S W S T M F T S W S T M F T SJan 31, '16 Feb 14, '16 Feb 28, '16 Mar 13, '16 Mar 27, '16 Apr 10, '16 Apr 24, '16
Figure 4: Project’s Plan.
2.11 Project Budget
The project budget is a detailed estimate of all the costs required to complete project tasks. An approximate of the costs associated with this project is calculated as shown in the below table.
Description Cost
Time (this includes total number of hours spent working on the project)
96 hours
This project is free of charge as part of course requirements.
Transportation 1500SR
Communication (mobile charges) 200SR
Hardware (USB, Laptops, mobile, ipad) 6000SR
Software (this includes software’s used which includes project management software, SQL server management studio and Microsoft Visio)
Creately used to create use cases
All were downloaded by Ms.Najla (Free of charge). Creately is free online tool.
Subtotal 7700SR
20
Table 5: Project’s Budget.
21
Chapter 3: Database Design
3.1 Enhanced Entity-Relationship Diagram (ERD)
Figure 5: ERD
22
3.2 Relational Schema
1. LIBRARY_DIRECTOR (DirID, DirName, WorkingHours)2. LIBRARIAN (LibID, LibName, WorkingHours, LibType, Director) 3. MANAGES (LibrarianID, Barcode) 4. LIBRARY’S_COLLECTIONS (Barcode, ISBN, Title, Publisher,
PublishingDate, 5. COLLECTION_AUTHOR (Barcode, Author) 6. COLLECTION_LANGUAGE (Barcode, Language)7. COLLECTION_SHELFMARK (Barcode, Shelfmark)8. USERS (UserID, UserName, UserType, DAHType, Subscription) 9. SEARCHES (UserID, Barcode)10. RESERVES (UserID, Barcode, ReservationDate)11. BORROWS (UserID, Barcode)12. FINE (FineID, Date, Amount, FineType, Barcode, LoanID, UserID)13. LOAN (LoanID, Date, Due, Transaction, Barcode, LibrarianID, UserID, FineID)
3.3 Normalization
Normalization is the process used to group attributes together that belongs to the same relation. It is used to minimize redundancy and reduce relations with anomalies to produce a better structured tables thus conserving more space. It also enforces referential integrity constraints and ease data insertion. (Hoffer, Prescott & McFadden 2002)
1. LIBRARY_DIRECTOR (DirID, DirName, WorkingHours)
FD1: DirID → DirID, DirName, WorkingHours
LIBRARY_DIRECTOR relation is in the first normal form because (DirName, WorkingHours) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (DirName, WorkingHours) are fully functionally dependant on the primary key DirID of the LIBRARY_DIRECTOR relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
2. LIBRARIAN (LibID, LibName, WorkingHours, LibType, Director)
FD1: LibID → LibID, LibName, WorkingHours, LibType, Director
LIBRARIAN relation is in the first normal form because (LibName, WorkingHours, LibType, Director) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (LibName, WorkingHours, LibType, Director) are fully functionally dependant on the primary key LibID of the LIBRARIAN relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
23
3. MANAGES (LibrarianID, Barcode)
FD1: {LibrarianID, Barcode} → LibrarianID, Barcode
MANAGES relation is in the first normal form because (LibrarianID, Barcode) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because (LibrarianID, Barcode) are prime attributes and fully functionally dependant on the primary key LibrarianID, Barcode of the MANAGES relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
4. LIBRARY’S_COLLECTIONS (Barcode, ISBN, Title, Publisher, PublishingDate, Form, Location, Reference_Type, Area, Course, ReadingsType)
FD1: Barcode → Barcode, ISBN, Title, Publisher, PublishingDate, Form, Location, Reference_Type, Area, Course, ReadingsType
LIBRARY’S_COLLECTIONS relation is in the first normal form because (ISBN, Title, Publisher, PublishingDate, Form, Location, Reference_Type, Area, Course, ReadingsType) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (ISBN, Title, Publisher, PublishingDate, Form, Location, Reference_Type, Area, Course, ReadingsType) are fully functionally dependant on the primary key Barcode of the LIBRARY’S_COLLECTIONS relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
5. COLLECTION_AUTHOR (Barcode, Author)
FD1: {Barcode, Author} → Barcode, Author
COLLECTION_AUTHOR relation is in the first normal form because (Barcode, Author) are not multi-valued or composite attributes, because they were removed while mapping ER into relational schema. It is in the second normal form as well because (Barcode, Author) are prime attributes and fully functionally dependant on the primary key Barcode, Author of the COLLECTION_AUTHOR relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
6. COLLECTION_LANGUAGE (Barcode, Language)
FD1: {Barcode, Language} → Barcode, Language
COLLECTION_LANGUAGE relation is in the first normal form because (Barcode, Language) are not multi-valued or composite attributes, because they were removed while mapping ER into relational schema. It is in the second normal form as well because (Barcode, Language) are prime attributes and fully functionally dependant on the primary key Barcode, Language of the COLLECTION_LANGUAGE relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
24
7. COLLECTION_SHELFMARK (Barcode, Shelfmark)
FD1: {Barcode, Shelfmark} → Barcode, Shelfmark
COLLECTION_SHELFMARK relation is in the first normal form because (Barcode, Shelfmark) are not multi-valued or composite attributes, because they were removed while mapping ER into relational schema. It is in the second normal form as well because (Barcode, Shelfmark) are prime attributes and fully functionally dependant on the primary key Barcode, Shelfmark of the COLLECTION_SHELFMARK relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
8. USERS (UserID, UserName, UserType, DAHType, Subscription)
FD1: UserID → UserID, UserName, UserType, DAHType, Subscription
USERS relation is in the first normal form because (UserName, UserType, DAHType, Subscription) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (UserName, UserType, DAHType, Subscription) are fully functionally dependant on the primary key UserID of the USERS relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
9. SEARCHES (UserID, Barcode)
FD1: {UserID, Barcode} → UserID, Barcode
SEARCHES relation is in the first normal form because (UserID, Barcode) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because (UserID, Barcode) are prime attributes and fully functionally dependant on the primary key UserID, Barcode of the VISITOR relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
10. RESERVES (UserID, Barcode, ReservationDate)
FD1: {UserID, Barcode} → UserID, Barcode, ReservationDate
RESERVES relation is in the first normal form because (UserID, Barcode) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because non-prime attributes (ReservationDate) are fully functionally dependant on the primary key UserID, Barcode of the RESERVES relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
11. BORROWS (UserID, Barcode)
FD1: {UserID, Barcode} → UserID, Barcode
25
BORROWS relation is in the first normal form because (UserID, Barcode) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because (UserID, Barcode) are prime attributes and fully functionally dependant on the primary key UserID, Barcode of the BORROWS relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
12. FINE (FineID, Date, Amount, FineType, LoanID, UserID, Barcode)
FD1: FineID → FineID, Date, Amount, FineType, LoanID, UserID, Barcode
FD2: LoanID → LoanID, Barcode, UserID, FineID
FINE relation is in the first normal form because (Date, Amount, FineType, LoanID, UserID, Barcode) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (Date, Amount, FineType, LoanID, UserID, Barcode) are fully functionally dependant on the primary key FineID of the FINE relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
13. LOAN (LoanID, Date, Due, Transaction, Barcode, LibrarianID, UserID, FineID)
FD1: LoanID → LoanID, Date, Due, Transaction, Barcode, LibrarianID, UserID, FineID
FD2: FineID → LoanID, UserID, Barcode
LOAN relation is in the first normal form because (Date, Due, Transaction, Barcode, LibrarianID, UserID, FineID) are not multi-valued or composite attributes based on the requirements. It is in the second normal form as well because every non-prime attribute (Date, Due, Transaction, Barcode, LibrarianID, UserID, FineID) are fully functionally dependant on the primary key Barcode of the LOAN relation. Last, the relation is in the third normal form because it satisfies the first and second, and there is no transitive dependencies of any non-prime attributes to the primary key.
3.4 Data Samples
1. LIBRARY_DIRECTOR
DirID DirName WorkingHours1520 Dr. Mariam Gard 8 a.m.- 5 p.m.
Note that there is only one Library director according to our requirements.
2. LIBRARIAN
LibID LibName WorkingHours LibType Director1325 Ms. Ebtisam Ali 8 a.m.- 3 p.m. Technical 15201715 Ms. Weaam Almuzain 9 a.m. – 4 p.m. General 1520
3. MANAGES
26
LibrarianID Barcode1715 T09981491825 T09999284
4. USER
UserID UserName UserType DAHType Subscription1220042 Nemah Alsayed DAHMember Student NULL1220081 Ferdous
MohammedDAHMember Student NULL
1210027 Noor Alsayed Visitor NULL Active
5. SEARCHES
UserID Barcode1220042 T00510061023369 T04444510
6. RESERVES
UserID Barcode ReservationDate1023369 T0088801 2016/4/291224893 T04444510 2016/4/30
7. BORROWS
UserID Barcode1220081 T00510061120064 T0998149
27
8. LIBRARY’S_COLLECTIONS
Barcode T0088801 T04444510 T0051006ISBN 0810965380 9780415781565 0760049041Title Câezanne
To Van GoghEnvironmental AnthropologyToday
Database systems : design, implementation, and management
Publisher Metropolitan Museum of Art
Routledge Cambridge
Publishing Date
1999 2011 1997
Form Print Print PrintLocation Main Library Main
LibraryMainLibrary
Reference_Type
Monograph Monograph Monograph
Area Arts HumanEcology
Database Systems
Course Null ANTH1301 MIS4301ReadingsType
Null Null Null
9. COLLECTION_AUTHOR
Barcode AuthorT0088801 Distel, AnneT0088801 Stein, Susan AlysonT0088801 Musâee d'Orsay
10. COLLECTION_LANGUAGE
Barcode LanguageT0088801 EnglishT09999284 Portuguese
11. COLLECTION_SHELFMARK
Barcode ShelfmarkT0088801 709.3 DIS c.1T0088801 709.03 DIS c.2T00331 TEX 701.1 GET 2002 c.1
28
12. FINE
FineID Date Amount FineType LoanID Barcode UserID103666 2016/3/20 20 SR Overdue 103674 T0051006 1220042122364 2016/5/4 375 SR Damaged 103886 T0998149 1120064
13. LOAN
LoanID Date Due Transaction
Barcode LibrarianID UserID
103886 2016/4/20 2016/5/4 Return T0998149 1825 1120064109648 2016/4/27 2016/5/16 Borrow T0088801 1825 1210027
29
Chapter 4: Database implementation
4.1 Database Implementation and SQL Code5. /* Database design for DAH's Library6. Nemah Alsayed and Ferdous Mohammed 7. Database Management MIS 4301 Project 8. Monday, May 2nd, 2016 */ 9.10.-- Creating the Library Database11.CREATE DATABASE DAHLibrary;12.13.-- Making DAHLibrary the current database14.USE DAHLibrary; 15.16.-- Creating tables17.-- 1. Creating the table LIBRARY_DIRECTOR 18.CREATE TABLE LIBRARY_DIRECTOR (19. DirID INT PRIMARY KEY, 20. DirName VARCHAR (50) NOT NULL,21. WorkingHours VARCHAR (20)22. ); 23.24.-- 2. Creating the table LIBRARYS_COLLECTIONS 25.CREATE TABLE LIBRARYS_COLLECTIONS (26. Barcode VARCHAR (30) PRIMARY KEY,27. ISBN VARCHAR (15) NOT NULL, 28. Title NVARCHAR (300) NOT NULL, 29. Publisher NVARCHAR (100) NOT NULL,30. PublishingDate DATE NOT NULL,31. Form VARCHAR (50) NOT NULL, -- Form: {Print,
Electronic, Films, Videocassettes, Audio discs, DVD, Computer File}32. Location VARCHAR (30) NOT NULL, -- Location: {Main Library,
Technical Library}33. Reference_Type VARCHAR (50) NOT NULL, -- Reference_Type:
{Encyclopaedia, Thesauri, Handbook, Directory, Yearbook, Monograph, etc.}34. Area VARCHAR (50), -- Area:
{Astronomy, Anatomy, Bibliography, Database, etc.} 35. Course VARCHAR (10), -- Course:
{Arts1301, MIS4301, etc.}36. ReadingsType VARCHAR (30) -- ReadingsType: {Fiction,
Non-fiction}37. );38.39.-- 3. Creating the table COLLECTION_AUTHOR 40.CREATE TABLE COLLECTION_AUTHOR (41. Barcode VARCHAR (30),42. AuthorVARCHAR (100),43. PRIMARY KEY (Barcode, Author),44. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)45. ); 46.47.-- 4. Creating the table COLLECTION_LANGUAGE 48.CREATE TABLE COLLECTION_LANGUAGE (49. Barcode VARCHAR (30),
30
50. Language VARCHAR (50),51. PRIMARY KEY (Barcode, Language),52. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)53. );54.55.-- 5. Creating the table COLLECTION_SHELFMARK 56.CREATE TABLE COLLECTION_SHELFMARK (57. Barcode VARCHAR (30),58. Shelfmark VARCHAR (50),59. PRIMARY KEY (Barcode, Shelfmark),60. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)61. );62.63.-- 6. Creating the table LIBRARIAN (LibID, LibName, WorkingHours, LibType,
Director) 64.CREATE TABLE LIBRARIAN (65. LibID INT PRIMARY KEY, 66. LibName VARCHAR (50) NOT NULL,67. WorkingHours VARCHAR (20),68. LibType VARCHAR (25) NOT NULL, -- Type: {Technical
Librarian, Main Librarian}69. Director INT FOREIGN KEY REFERENCES LIBRARY_DIRECTOR(DirID)70. ); 71.72.-- 7. Creating the table USER (UserID, UserName, UserType, DAHType,
Subscription) 73.CREATE TABLE USERS (74. UserID INT PRIMARY KEY,75. UserName VARCHAR(100) NOT NULL,76. UserType VARCHAR(20) NOT NULL, -- UserType: {DAHMemeber,
Visitor}77. DAHType VARCHAR(10), -- DAHType: {Student,
Faculty, Staff}78. Subscription VARCHAR(20) 79. );80.81.-- 8. Creating the table LOAN 82.CREATE TABLE LOAN ( 83. LoanID INT PRIMARY KEY,84. Date DATE NOT NULL,85. Due DATE NOT NULL,86. Transactions VARCHAR(50) NOT NULL,87. Barcode VARCHAR (30) FOREIGN KEY REFERENCES
LIBRARYS_COLLECTIONS(Barcode), 88. LibrarianID INT FOREIGN KEY REFERENCES
LIBRARIAN(LibID),89. UserID INT FOREIGN KEY REFERENCES
USERS(UserID)90. ); 91.92.-- 9. Creating the table FINE 93.CREATE TABLE FINE ( 94. FineID INT PRIMARY KEY,95. Date DATE NOT NULL, 96. Amount INT NOT NULL,97. FineType VARCHAR(50) NOT NULL,
98. LoanID INT FOREIGN KEY REFERENCES LOAN(LoanID),
31
99. Barcode VARCHAR(30) FOREIGN KEY REFERENCES LIBRARYS_COLLECTIONS(Barcode),
100. UserID INT FOREIGN KEY REFERENCES USERS(UserID)
101. ); 102.103. -- 10. Creating the table MANAGES 104. CREATE TABLE MANAGES (105. LibrarianID INT,106. Barcode VARCHAR (30),107. PRIMARY KEY (LibrarianID, Barcode),108. FOREIGN KEY (LibrarianID) REFERENCES LIBRARIAN(LibID), 109. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)
110. ); 111. 112. -- 11. Creating the table SEARCHES 113. CREATE TABLE SEARCHES (114. UserIDINT,115. Barcode VARCHAR (30),116. PRIMARY KEY (UserID, Barcode),117. FOREIGN KEY (UserID) REFERENCES USERS(UserID), 118. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)
119. ); 120.121. -- 12. Creating the table RESERVES 122. CREATE TABLE RESERVES (123. UserID INT,124. Barcode VARCHAR (30),125. ReservationDate DATE NOT NULL,126. PRIMARY KEY (UserID, Barcode),127. FOREIGN KEY (UserID) REFERENCES USERS(UserID),128. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)
129. ); 130.131. -- 13. Creating the table BORROWS 132. CREATE TABLE BORROWS (133. UserID INT,134. Barcode VARCHAR (30),135. PRIMARY KEY (UserID, Barcode),136. FOREIGN KEY (UserID) REFERENCES USERS(UserID), 137. FOREIGN KEY (Barcode) REFERENCES LIBRARYS_COLLECTIONS(Barcode)
138. ); 139.140. -- Inserting Data into the tables141. -- 1. Inserting data into the LIBRARY_DIRECTOR table142. INSERT INTO LIBRARY_DIRECTOR VALUES ( '1520', 'Dr. Mariam Gard', '8
a.m.- 5 p.m.'); 143.144. -- Checking inserted data145. SELECT * FROM LIBRARY_DIRECTOR; 146.147. -- 2. Inserting data into the LIBRARYS_COLLECTIONS table
32
148. INSERT INTO LIBRARYS_COLLECTIONS VALUES ('T0088801', '0810965380','Câezanne To Van Gogh','Metropolitan Museum of Art','1999','Print','Main Library','Monograph','Arts',Null,Null),
149. ('T04444510', '9780415781565','Environmental Anthropology','Routledge','2011','Print','Main Library','Monograph','Human Ecology','ANTH1301',Null),
150. ('T0051006', '0760049041', 'Today Database systems: design, implementation, and management','Cambridge','1997','Print','Main Library','Monograph','Database Systems','MIS4301',Null),
151. ('T0998149', '0073215538', 'Anatomy & physiology revealed','McGraw-Hill Higher Education','2007','Computer File','Main Library','Audio Visuals','Anatomy','BIOL1301',Null),
152. ('T09999284', '0722532938', 'The Alchemist','HarperCollins','1993','Print','Main Library','Monograph','Self-realization',Null,'Fiction'),
153. ('T0987693', '0586210091', 'Marquis de Sade : a biography','Flamingo','1993','Print', 'Technical Library','Monograph','8th century-Biography',Null,'Non-fiction'),
154. ('T00331', '007112411X', 'Gilbert''s living with art', 'McGraw-Hill','2002','Print', 'Technical Library','Text Book','Art appreciation','Arts1301',Null);
155. -- Checking inserted data
156. SELECT * FROM LIBRARYS_COLLECTIONS;157.158. -- 3. Inserting data into the COLLECTION_AUTHOR table 159. INSERT INTO COLLECTION_AUTHOR VALUES('T0088801','Distel, Anne'), 160.
('T0088801','Stein, Susan Alyson'),161.
('T0088801','Musâee d''Orsay'), 162.
('T04444510','Kopnina, Helen'),163.
('T04444510','Shoreman-Ouimet, Eleanor'), 164.
('T0051006','Rob, Peter'), 165.
('T0051006','Coronel, Carlos'), 166.
('T0998149','Schneider, R. E.'), 167.
('T09999284','Paulo Coelho'), 168. ('T00331',
'Getlein, Mark'), 169.
('T0987693','Goldhammer, Arthur'), 170.
('T0987693','Lever, Maurice'); 171. -- Checking inserted data
172. SELECT * FROM COLLECTION_AUTHOR;173.
33
174. -- 4. Inserting data into the COLLECTION_LANGUAGE table 175. INSERT INTO COLLECTION_LANGUAGE VALUES( 'T0088801','English'), 176.
('T04444510','English'), 177.
('T0051006','English'), 178.
('T0998149','English'), 179.
('T09999284','English'),180.
('T09999284','Portuguese'),181.
('T00331','English'), 182.
('T0987693','English'), 183.
('T0987693', 'French'); 184. -- Checking inserted data
185. SELECT * FROM COLLECTION_LANGUAGE;186.187. -- 5. Inserting data into the COLLECTION_SHELFMARK table 188. INSERT INTO COLLECTION_SHELFMARK VALUES('T0088801','709.3 DIS
c.1'), 189.
('T0088801','709.03 DIS c.2'),190.
('T04444510','304.2 ENV'),191.
('T0051006','005.74 ROB'), 192.
('T0998149','REF 612 ANA v.1'),193.
('T09999284','869.3 COE'),194.
('T00331','TEX 701.1 GET 2002 c.1'),195.
('T0987693','FR 843.6 LEV');196. -- Checking inserted data
197. SELECT * FROM COLLECTION_SHELFMARK;198.199. -- 6. Inserting data into the LIBRARIAN table 200. INSERT INTO LIBRARIAN VALUES ('1325', 'Ms. Ebtisam Ali', '8 a.m.- 3
p.m.', 'Technical', '1520'),201. ('1715', 'Ms. Weaam
Almuzain', '9 a.m. – 4 p.m.', 'General','1520'),202. ('1025', 'Ms. Abeer
Noman','8 a.m.- 3 p.m.', 'Technical', '1520'), 203. ('1925','Ms. Hanan Al
Sayegh', '8 a.m.- 3 p.m.','Technical', '1520'),204. ('1825', 'Ms. Haya
Shoaib', '9 a.m. – 4 p.m.', 'General', '1520'); 205. -- Checking inserted data
206. SELECT * FROM LIBRARIAN;207.
34
208. -- 7. Inserting data into the USERS table 209. INSERT INTO USERS VALUES ('1220042', 'Nemah Alsayed','DAHMember',
'Student', NULL), 210. ('1220081', 'Ferdous
Mohammed','DAHMember', 'Student', NULL), 211. ('1120064', 'Shaikha
Khyat','DAHMember', 'Student', NULL), 212. ('1719', 'Ms. Sarah
Swick','DAHMember', 'Faculty', NULL), 213. ('1310025', 'Safia
Bawazeer','DAHMember', 'Student', NULL), 214. ('1224893', 'Lana Ahmed',
'DAHMember','Student', NULL), 215. ('1210027', 'Noor Alsayed',
'Visitor', NULL, 'Active'), 216. ('1023369','Maha Algamdi',
'Visitor', NULL,'Suspended');217. -- Checking inserted data
218. SELECT * FROM USERS;219.220. -- 8. Inserting data into the LOAN table221. INSERT INTO LOAN VALUES ('103674', '2016/3/3', '2016/3/17', 'On
hold', 'T0051006', '1715', '1220042'),222. ('103886', '2016/4/20','2016/5/4',
'Return', 'T0998149', '1825', '1120064'), 223. ('109648', '2016/4/27',
'2016/5/16', 'Borrow', 'T0088801', '1825', '1210027'), 224. ('108244', '2016/1/18',
'2016/2/3', 'On hold', 'T04444510', '1715', '1719'), 225. ('102589', '2016/2/10',
'2016/3/14', 'Return', 'T00331', '1825', '1310025'),226. ('156897', '2016/4/26',
'2016/5/12', 'Borrow', 'T0987693', '1825', '1224893'),227. ('103688', '2016/4/15',
'2016/4/29', 'Borrow', 'T00331', '1715', '1719'), 228. ('103676', '2016/4/15',
'2016/5/5', 'Borrow', 'T0051006', '1715', '1220081');229. -- Checking inserted data
230. SELECT * FROM LOAN; 231.232. -- 9. Inserting data into the FINE table233. INSERT INTO FINE VALUES ('103666', '2016/3/20', '20', 'Overdue',
'103674', 'T0051006', '1220042'),234. ('122364', '2016/5/4', '375',
'Damaged', '103886','T0998149', '1120064'), 235. ('102369', '2016/2/3', '350',
'Lost', '108244', 'T04444510','1719'), 236. ('103688', '2016/3/6', '100',
'Overdue', '102589', 'T00331','1310025'); 237.238. -- Checking inserted data
239. SELECT * FROM FINE;240.241. -- 10. Inserting data into the MANAGES table242. INSERT INTO MANAGES VALUES ( '1715', 'T0998149'),
35
243. ( '1825', 'T09999284');244. -- Checking inserted data
245. SELECT * FROM MANAGES;246.247. -- 11. Inserting data into the SEARCHES table248. INSERT INTO SEARCHES VALUES ('1220042', 'T0051006'), 249. ('1023369', 'T04444510'); 250.251. -- Checking inserted data
252. SELECT * FROM SEARCHES;253.254. -- 12. Inserting data into the RESERVES table 255. INSERT INTO RESERVES VALUES ('1023369', 'T0088801', '2016/4/29'), 256. ('1224893', 'T04444510',
'2016/4/30'); 257.258. -- Checking inserted data
259. SELECT * FROM RESERVES;260.261. -- 13. Inserting data into the BORROWS table 262. INSERT INTO BORROWS VALUES ('1220081', 'T0051006'), 263. ('1120064', 'T0998149'); 264.265. -- Checking inserted data
266. SELECT * FROM BORROWS;267.268. -- Adding more data needed to test queries 269. INSERT INTO LIBRARYS_COLLECTIONS VALUES ('T0999718' , '0631233172',
'The Blackwell encyclopedia of management', 'Blackwell Pub', '2005', 'Print', 'Main Library', 'Encyclopedia', 'Management', 'BMGT1301', NULL),
270.('T0897786', '0852853149', 'Hugo Japanese in three months', 'Dorling
Kindersley', '2003', 'Print', 'Main Library', 'Monograph', 'Japanese Language', NULL, 'Non-fiction'),
271.('T09988177', '0089353149', 'Cross-cultural communication: how
culture affects communication', 'Insight Media', '2005', 'DVD', 'Main Library', 'Audio Visuals', 'Communication and Culture', 'MGMT4319', NULL),
272.('T0000522', '0946621608', 'Freedom of expression in Islam', 'Islamic
Texts Society', '1997', 'Print', 'Main Library', 'Monograph', 'Religion of Islam', NULL, NULL),
273.('T09999940', '0978128396', 'Arabic for dummies', 'Wiley', '2006',
'Print', 'Main Library', 'Monograph', 'Arabic Language', NULL, NULL), 274.
('T0000164', '0070158282', 'Management information systems', 'McGraw-Hill', '1985', 'Print', 'Main Library', 'Text Book', 'Information Systems', 'MIS1301', NULL),
275.('T0005285', '0781719240', 'Research Methodology', 'Lippincott',
'1999', 'Print', 'Main Library', 'Monograph', 'Research', 'BBUS3303', NULL),
36
276.('T0050612', '0070602662', 'College Algebra', 'McGraw-Hill', '1998',
'Print', 'Main library', 'Text Book', 'Algebra problems', 'BBUS4301', NULL),
277.('T028356', '9781447145424', 'A Guide to Computer Network Security',
'Springer', '2012', 'Print', 'Main Library', 'Monograph', 'Computer Network', 'MIS3301', NULL);
278.279. INSERT INTO COLLECTION_LANGUAGE VALUES('T0999718', 'English'),280.
('T0897786', 'English'),281.
('T0897786', 'Japanese'),282.
('T09988177', 'English'),283.
('T0000522', 'English'),284.
('T09999940', 'English'),285.
('T0000164', 'English'), 286.
('T0005285', 'English'), 287.
('T0050612', 'English'),288.
('T028356', 'English'); 289.290. INSERT INTO COLLECTION_SHELFMARK VALUES ('T0999718', 'REF 658.003 BLA
v.1'), 291.
('T0897786', '495.683421'), 292.
('T09988177', 'REF 303.482 CRO c.1'),293.
('T0000522', '297.272 KAM'),294.
('T09999940', '492.7824 BOU'),295.
('T0000164', '658.4038 DAV'),296.
('T0005285', '610.73072 REA c.1'),297.
('T0050612', '512.9076 SPI'), 298.
('T028356', '005.8 KIZ'); 299.300. INSERT INTO COLLECTION_AUTHOR VALUES('T0999718', 'Cooper, Cary L.'), 301. ('T0999718',
'Argyris, Chris'), 302. ('T0999718',
'Starbuck, William H.'), 303. ('T0897786',
'Breen, John'), 304.
('T09988177', 'Odyssey Productions'),
37
305. ('T0000522', 'Kamali, Mohammad Hashim'),
306.('T09999940', 'Bouchentouf, Amine'),
307. ('T0000164', 'Davis, Gordon Bitter'),
308. ('T0000164', 'Olson, Margrethe H.'),
309. ('T0005285', 'Downs,Florence S.'),
310. ('T0050612', 'Spiegel, Murray R.'),
311. ('T0050612', 'Moyer, Robert E.'),
312. ('T028356', 'Kizza, Joseph Migga');
313.314. INSERT INTO LOAN VALUES ('109649', '2016/5/29', '2016/6/14',
'Borrow', 'T028356', '1825', '1210027'),315. ('109650', '2016/4/3',
'2016/4/17', 'Borrow', 'T0050612', '1715', '1210027'),316. ('109651', '2016/3/3',
'2016/4/17', 'Borrow', 'T0005285', '1825', '1210027'),317. ('109652', '2016/2/3',
'2016/2/17', 'Borrow', 'T0000164', '1715', '1210027'),318. ('109653', '2016/2/3',
'2016/2/17', 'Borrow', 'T09999940', '1825', '1210027'),319. ('109654', '2016/4/3',
'2016/4/17', 'Borrow', 'T0000522', '1825', '1210027'),320. ('109655', '2016/5/29',
'2016/6/14', 'Borrow', 'T09988177', '1715', '1210027');321.322. INSERT INTO BORROWS VALUES ('1210027','T028356'),323. ('1210027','T0050612'),324. ('1210027', 'T0005285'),325. ('1210027', 'T0000164'),326. ('1210027', 'T09999940'),327. ('1210027', 'T0000522'),328. ('1210027', 'T09988177'), 329. ('1210027', 'T0088801'), 330. ('1719', 'T04444510'), 331. ('1310025', 'T00331'),332. ('1224893','T0987693'),333. ('1719', 'T00331'); 334.335. -- Functional Requirements and Queries 336. -- 1. Show all information about the users who borrowed books in a
given month. 337. -- Writing the query, example of given month is April 338. SELECT *339. FROM USERS AS U JOIN LOAN AS L340. ON U.UserID = L.UserID341. WHERE L.DATE BETWEEN '2016-04-01' AND '2016-04-30' AND
L.Transactions='Borrow'342.343. -- 2. Show all the loans which should be returned today (date on the
system) with user’s information. 344. -- Writing the query
38
345. SELECT cast (GETDATE() as DATE) AS Today, * FROM USERS346. AS U JOIN LOAN AS L ON U.UserID = L.UserID347. WHERE L.Due = cast (GETDATE() as DATE ) AND L.Transactions='Borrow'348.349. /* Explanation: In order to compare the due date column in the LOAN
table, the date should be in the format of yyyy/mm/dd,350. while the GETDATE function returns date with time in yyyy/mm/dd
hh:mi:ss:mmm format 351. that's why we casted it into DATE which is in the format of
yyyy/mm/dd. 352. Cast documentation
https://msdn.microsoft.com/en-us/library/ms187928.aspx */ 353.354. -- 3. Provide information about a selected item. 355. -- By creating a procedure that takes barcode as a parameter and
provides information about the selected item/barcode356. -- Provides information from 4 tables as joins 357. -- Writing the query 358. CREATE PROCEDURE ProvideCollectionInfo359. @varBarcode VARCHAR(30)360. AS361. SET NOCOUNT ON;362. SELECT L.Barcode, L.ISBN, L.Title, L.Publisher,
L.PublishingDate, L.Form, L.Location, L.ReadingsType, 363. L.Area, L.Course, L.ReadingsType, A.Author, LA.Language,
S.Shelfmark364. FROM LIBRARYS_COLLECTIONS AS L INNER JOIN
COLLECTION_AUTHOR AS A 365. ON L.Barcode = A.Barcode366. INNER JOIN COLLECTION_LANGUAGE AS LA 367. ON A.Barcode = LA.Barcode368. INNER JOIN COLLECTION_SHELFMARK AS S 369. ON LA.Barcode = S.Barcode370. WHERE L.Barcode =@varBarcode AND A.Barcode =@varBarcode
AND LA.Barcode =@varBarcode AND S.Barcode =@varBarcode371. 372. -- Testing the procedure by excuting it 373. EXEC dbo.ProvideCollectionInfo 'T028356'; 374.375. -- 4. Show the library's collections which are on loan, including
barcode, title, UserID who borrowed it and when is loan due. 376. --By creating a view to show the library's collections which are on
loan, including barcode, title, UserID who borrowed it and when is loan due 377. -- Creating the view 378. CREATE VIEW CollectionsOnLoan 379. AS 380. SELECT L.Barcode, L.Title, LO.UserID, LO.Due381. FROM LIBRARYS_COLLECTIONS AS L JOIN LOAN AS LO382. ON L.Barcode = LO.Barcode;383. -- Test 384. SELECT * FROM CollectionsOnLoan; 385.386. --5. Count the number of loans for each user.387. -- By creating a procedure that counts the number of loans for each
user by providing user ID as a parameter 388. -- Creating the procedure 389. CREATE FUNCTION countUsersLoans (@varUID INT) 390. RETURNS INT
39
391. AS392. BEGIN393. RETURN (394. SELECT COUNT(*) 395. FROM LOAN 396. WHERE UserID=@varUID397. )398. END;399. 400. -- Test 401. SELECT dbo.countUsersLoans('1210027') AS NumberofLoans;402. SELECT dbo.countUsersLoans('1719')AS NumberofLoans;403.404. -- 6. List each user name, type, fineID, and amount for a given
UserID. 405. -- By creating a procedure that list each user name, type, fineID,
and amount by providing her ID as a parameter406. -- Creating the procedure407. CREATE PROCEDURE pUserFine 408. @varUID INT409. AS410. SET NOCOUNT ON;411. SELECT U.UserName, U.UserType, F.FineID, F.Amount 412. FROM USERS AS U JOIN FINE AS F ON U.UserID=F.UserID413. WHERE U.UserID = @varUID;414.415. -- Executing the procedure416. EXEC pUserFine '1719';417.418. -- 7. Whenever a user of type visitor is inserted, show a message
asking for deposit receipt to activate their subscription. 419. -- By creating a trigger on users table, which print the message upon
inserting usertype visitor. 420. -- Creating the trigger 421. CREATE TRIGGER Subscription 422. ON USERS423. AFTER INSERT 424. AS425. BEGIN426. SELECT 'Please submit a receipt of your deposit from
accounting to activate your subscription' AS ActivateSubscription427. FROM inserted428. WHERE UserType ='Visitor' AND Subscription IS NOT NULL;429. END; 430. 431. -- Test 432. INSERT INTO USERS VALUES ('1023390','Maha Algamdi', 'Visitor',
NULL,'Suspended'); 433. DELETE FROM USERS WHERE UserID='1023390'; 434. DROP TRIGGER Subscription; 435.436. --8. Show the number of users served a librarian by using
LibarianID437. -- By Retrieve the number of users served by librarian Ms. Weaam
Almuzain, using her LibarianID 1715438. SELECT COUNT(DISTINCT UserID) AS Numberofusers439. FROM LOAN440. WHERE LibrarianID= '1715';
40
441.442. -- 9. If a user has fine amount more than 50 SR will show a message
to be suspended their privileges when their information is inserted. 443. -- By create a trigger that upon insertion in Fine table, if user has
a fine amount more than 50 SR it will show the message 444. -- Creating the trigger 445. CREATE TRIGGER trFineAmount 446. ON FINE 447. AFTER INSERT 448. AS449. BEGIN450. SELECT 'User''s privileges to be suspended because fines are
over 50 SR'451. FROM inserted 452. WHERE Amount > 50453. END;454.455. -- Test 456. INSERT INTO FINE VALUES ('103667', '2016/3/20', '20', 'Overdue',
'103674', 'T0051006', '1220042');457. INSERT INTO FINE VALUES ('122368', '2016/5/4', '375', 'Damaged',
'103886','T0998149', '1120064'); 458.459. DELETE FROM FINE WHERE FineID ='103667' ;460. DELETE FROM FINE WHERE FineID ='122368'; 461.462. --Creating indexes463. --Create non clustered index on User table464. CREATE INDEX IX_USERS_USERName465. ON USERS (USERName);466.467. --Create non clustered index on Loan table468. CREATE INDEX IX_LOAN_Due469. ON LOAN (Due);470.471. --Create non clustered on Library collections table472. CREATE INDEX IX_LIBRARYS_COLLECTIONS473. ON LIBRARYS_COLLECTIONS(Tittle);474.475. --Create non clustered index on collection shelfmark table476. CREATE INDEX IX_COLLECTION_SHELFMARK477. ON COLLECTION_SHELFMARK(Shelfmark);478.479. -- Justifications for using indexes are in the report file. 480. -- End of the Project
4.2 Justification of Using Indexes
(Hoffer, Ramesh & Topi, 2016) Indexes are used to improve the efficiency of retrieval of records, non-clustered indexes were used to help speed up access to the records, and they are secondary and not unique. Some attributes are frequently used to search besides primary keys such as users’ names, loans dues, collection’s title, and shelf mark. We specifically chose these
41
tables as they have more rows as indexes are more useful on larger tables. Thus without the use of non-clustered index accessing them will take longer.
Chapter 5: Conclusion
This project was part of database management course requirements, where we took the role of database designers to serve a real business. The duration of the project was one semester, in which we had to do the analysis, design, and implementation of database for DAH’s library. We were able to complete the design using SQL server according to our scope and mapped schema. Projects’ success or failure is based on two criteria, budget and time. While these project is within budget, we were able to finish it on time. However, time management was challenging as we were overloaded. We learned how to work under pressure, communicate with customers, and think critically to analyse life situations into computerized solutions. Moreover, it improved our team work and coordination. Besides time management, some of the challenges we faced were in writing the functional and non-functional requirements, we had to do extensive research and brain storming. In the future, we would like to add more features that further supports the library policies, such as limiting visitors of borrowing other reference types beside books by implementing controls on the database. Also, a procedure that retrieves all the items on the same shelf as the selected item. Last, we would like to make the design more comprehensive by adding separate tables for publishers’ and authors’ contacts information, and technical library’s operations.
42
Appendix A
References:
About Effat University library | Effat University Library. (2013). Retrieved May 1, 2016, from http://library.effatuniversity.edu.sa/?q=content/about-effat-university-library
Batterjee Medical College - BMC. (2015). Retrieved May 1, 2016, from http://www.bmc.edu.sa/
Dar Al-Hekma Annual Report 2013-2014. (2014). Retrieved May 1, 2016, from http://www.dah.edu.sa/Lists/TimelineArchive/Attachments/15/13-14 screen- evrsion.pdf
Data Crow - Cataloger. (2014). Retrieved May 01, 2016, from
http://www.datacrow.net/
De, P., & Sen, A. (1984). A New Methodology for Database Requirements Analysis. MIS Quarterly, 8(3), 179-193.
Doorn, J. H., & Rivero, L. C. (2002). Database integrity: Challenges and solutions. Hershey, PA: Idea Group.
GCstar - Home. (2012). Retrieved May 01, 2016, from http://www.gcstar.org/
Hoffer, J. A., Prescott, M. B., & McFadden, F. R. (2002). Modern database management. Upper Saddle River, NJ: Prentice Hall.
43
Hoffer, J. A., Ramesh, V., & Topi, H. (2016). Modern database management. London: Pearson Education Limited.
KDE - Tellico - Collection Manager. (n.d.). Retrieved May 01, 2016, from https://www.kde.org/applications/office/tellico/
UBT Library: About the Library. (2015). Retrieved May 01, 2016, from http://www.ubt.edu.sa/Library/About-the-Library
Vieira, R. (2009). Beginning Microsoft SQL Server 2008 Programming. Indianapolis, IN: Wrox.
44
Appendix B
Interview Questions
1. Background information about the library.2. Similar libraries in the field. E.g. Effat university library. 3. Library’s mission and vision if any.4. Organizational Chart.5. Who works in the library and what are their positions? E.g. senior librarian,
manager…. 6. Who are the users of the library? E.g. students and staff….7. What’s inside the library, for example data we can record like books, journals,
hardware…..8. What activities the user can do in the library? E.g. borrowing, browsing, printing. 9. What applications and systems the librarian uses?10. Automated and manual activities from previous question. 11. Can non-students or alumni borrow books from Dar Al-Hekma library?12. When a student borrow a book, what information do you record in the system?13. Talk about printing/scanning rules. 14. How many users/borrowers do you have? 15. What are the library subscriptions? Like Ebsco.16. Information of each subscription like duration for example. 17. How does the library purchase books, for example the librarian purchase them?18. How the data is stored currently in the library? In a database, excel….19. What are the rules of the library? e.g. students can’t borrow if they have fees to pay 20. Do you have an instructions or manual for staff to use?21. Can you show us some of the documents you use to store information about library’s
performance or activities?22. Are you satisfied with your database performance/ do you face any problems? 23. Who can access the library database? And who maintains it?24. What are the most important functions you think the database should provide?
45
Appendix C
Library Forms
46