當前位置:編程學習大全網 - 源碼下載 - 急!求個數據庫課程的設計!!

急!求個數據庫課程的設計!!

《數據庫原理及應用》課程設計

數據庫原理課程設計任務書

壹、目的

1. 掌握計算機管理信息系統設計的壹般方法,主要包括系統分析、系統設計的組織和實施。

2. 關系型數據庫管理系統的編程技術,並能獨立完成壹般小系統的程序設計、調試運行等工作。

3. 培養把所學知識運用到具體對象,並能求出解決方案的能力。

二、任務(任選其壹)

A.運用關系型數據庫管理系統,實現本院圖書館管理信息系統。具體要求如下:

—圖書、資料的登記、註銷和查詢。

—借書證管理,包括申請、註銷借書證,查詢借書證持有人等。

—借還圖書、資料的登記、超期處理,超期拒借等。

—圖書、資料查詢,借、還圖書和資料情況查詢。

—圖書、資料借閱情況的統計分析,拒此作為圖書館圖書、資料訂夠的依據之壹。(本項不作為基本要求)

B. 運用關系型數據庫管理系統,實現服務電話管理系統

向客戶現場派技術人員的服務公司可以用服務電話管理系統跟蹤客戶、員工、工作訂單、發票、付款等等。

要求:

數據庫要存儲以下信息:

—客戶信息

—客戶工需單信息

—完成工需單所需人工

—完成工需單所需部件

—部件信息

—付款信息

—雇員信息

完成的功能:

—輸入/查看 客戶工需單信息

—輸入/查看部件、雇員等其它信息

—付款

—打印發票等

三、結果形式

1. 設計報告:含E-R圖、數據字典、關系模式、關系實例、查詢描述、關系代數、SQL實現的查詢語言及查詢結果。

2. 上機實現。

四、考核

1. 課程設計態度(20分)。

2. 遞交的書面材料(40分)。

3. 上機運行情況(40分)

目錄

1.問題描述 2

1.1背景 2

1.2數據需求 2

1.3事物需求 3

1.4關系模式 3

2.方案圖表設計 3

2.1 E-R圖 3

2.2數據流程圖 8

2.3數據字典 9

2.4關系圖: 11

3.數據庫源代碼 12

3.1數據庫建立 12

3.2數據初始化 14

4.結果數據處理 17

4.1單表查詢 17

4.2超期處理 19

4.3還書操作 20

4.4借書操作 22

4.5書籍狀態 24

4.6讀者狀態 24

5.結束語 26

5.1課程設計心得 26

1.問題描述

1.1背景

隨著圖書館規模的不斷擴大,圖書數量也相應的增加,有關圖書的各種信息量也成倍增加,面對著龐大的信息量,傳統的人工方式管理會導致圖書館管理上的混亂,人力與物力過多浪費,圖書館管理費用的增加,從而使圖書館的負擔過重,影響整個圖書館的運作和控制管理,因此,必須制定壹套合理、有效,規範和實用的圖書管理系統,對圖書資料進行集中統壹的管理。

另壹方面,IT產業和Internet獲得了飛速發展,計算機應用已滲透到了各個領域,引起信息管理的革命,實現了信息的自動化處理,提高了處理的及時性和正確性。

提高圖書管理工作效率,作到信息的規範管理,科學統計和快速查詢,讓圖書館更好的為學校,社會服務。

1.2數據需求

圖書館管理信息系統需要完成功能主要有:

1. 讀者基本信息的輸入,包括借書證編號、讀者姓名、讀者性別。

2.讀者基本信息的查詢、修改,包括讀者借書證編號、讀者姓名、讀者性別等。

3.書籍類別標準的制定、類別信息的輸入,包括類別編號、類別名稱。

4.書籍類別信息的查詢、修改,包括類別編號、類別名稱。

5.書籍庫存信息的輸入,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期、登記日期。

6.書籍庫存信息的查詢,修改,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期登記日期等。

7.借書信息的輸入,包括讀者借書證編號、書籍編號、借書日期。

8.借書信息的查詢、修改,包括借書證編號、讀者編號、讀者姓名、書籍編號、書籍名稱、借書日期等。

9.還書信息的輸入,包括借書證編號、書籍編號、還書日期。

10.還書信息的查詢和修改,包括還書讀者借書證編號、讀者姓名、書籍編號、書籍名稱、借書日期、還書日期等。

11.超期還書罰款輸入,還書超出期限包括超出期限還書的讀者借書證號,書籍編號,罰款金額。

12.超期還書罰款查詢,刪除,包括讀者借書證編號、讀者姓名、書籍編號、書籍名稱,罰款金額等

1.3事物需求

(1)在讀者信息管理部分,要求:

a.可以查詢讀者信息。

b.可以對讀者信息進行添加及刪除的操作。

(2 )在書籍信息管理部分,要求:

a.可以瀏覽書籍信息,要求:

b.可以對書籍信息進行維護,包括添加及刪除的操作。

(3)在借閱信息管理部分,要求:。

a.可以瀏覽借閱信息。

b.可以對借閱信息進行維護操作。

(4)在歸還信息管理部分,要求:

a.可以瀏覽歸還信息

b.對歸還信息可修改維護操作

(5)在管理者信息管理部分,要求:

a.顯示當前數據庫中管理者情況。

b.對管理者信息維護操作。

(6)在罰款信息管理部分,要求:

a.可以瀏覽罰款信息

b.對罰款信息可以更新

1.4關系模式

(壹) 書籍類別(種類編號,種類名稱)

(二) 讀者(借書證編號,讀者姓名,讀者性別,讀者種類,登記時期)

(三) 書籍(書籍編號,書籍名稱,書籍類別,書記作者,出版社名稱,出版日期,登記日期)

(四) 借閱(借書證編號,書籍編號,讀者借書時間)

(五) 還書(借書證編號,書籍編號,讀者還書時間)

(六) 罰款(借書證編號,讀者姓名,借書證編號,書籍編號,讀者借書時間)

以上通過關系代數方法的進行運算得到所需要的結果,在實驗結果中可以看到。

2.方案圖表設計

2.1 E-R圖

根據1)所要實現的功能設計,可能建立它們之間的關系,進而實現邏輯結構功能。

圖書管理信息系統可以劃分的實體有:書籍類別信息實體、讀者信息實體、書籍信息實體、借閱記錄信息實體,歸還記錄信息實體。用E-R圖壹壹描述這些實體。

2.1.1類別實體E-R圖:

圖2-1類別實體E-R圖

2.1.2讀者信息實體E-R圖:

圖2-2 讀者信息實體E-R圖

2.1.3信息實體E-R圖:

圖2-3信息實體E-R圖

2.1.4.記錄信息實體E-R圖:

圖2-4 記錄信息實體E-R圖

2.1.5記錄信息實體E-R圖:

圖2-5記錄信息實體E-R圖

2.1.6罰款信息實體E-R圖:

圖2-6罰款信息實體E-R圖

2.1.6總的信息實體E-R圖:

圖2-7總的信息實體E-R圖

2.2數據流程圖

D5

歸還信息錄入 基本信息錄入

D2

D1

基本信息錄入 基本信息錄入

D3

D4

借閱信息錄入

讀者信息返回 書籍信息返回

圖2-7系統的數據流程圖

2.3數據字典

表2-1 book_sytle 書籍類別信息表

表中列名 數據類型 可否為空 說明

bookstyleno varchar not null(主鍵) 種類編號

bookstyle Varchar not null 種類名稱

表2-2 system_readers讀者信息表格

表中列名 數據類型 可否為空 說明

readerid varchar not null(主鍵) 讀者借書證號

readername varchar not null 讀者姓名

readersex varchar not null 讀者性別

readertype varchar null 讀者種類

regdate datetime null 登記日期

表2-3 system_book書籍信息表

表中列名 數據類型 可否為空 說明

bookid Varchar Not null(主鍵) 書籍編號

bookname Varchar Not null 書籍名稱

bookstyle Varchar Not null 書籍類別

bookauthor Varchar Not null 書籍作者

bookpub Varchar Null 出版社名稱

bookpubdate Datetime Null 出版日期

bookindate Datetime Null 登記日期

isborrowed Varchar Not Null 是否被借出

表2-4 borrow_record 借閱記錄信息表

表中列名 數據類型 可否為空 說明

readerid Varchar Not null(外主鍵) 讀者借閱證編號

bookid Varchar Not null(外主鍵) 書籍編號

borrowdate Varchar Not null 讀者借書時間

表2-5 return_record 借閱記錄信息表

表中列名 數據類型 可否為空 說明

readername Varchar Not null(外主鍵) 讀者借閱證編號

readerid Varchar Not null(外主鍵) 書籍編號

returndate datetime Not null 讀者還書時間

表2-6 reader_fee 罰款記錄信息表

readerid varchar Not null 讀者借書證編號

readername varchar Not null 讀者姓名

bookid varchar Not null(外主鍵) 書籍編號

bookname varchar Not null 書籍名稱

bookfee varchar Not Null 罰款金額

borrowdate datetime Not Null 借閱時間

2.4關系圖:

圖2-8數據庫存表關系圖

3.數據庫源代碼

3.1數據庫建立

3.1.1創建數據庫

USE master

GO

CREATE DATABASE librarysystem

ON

( NAME = librarysystem,

FILENAME = 'd:\librarysystem.mdf',

SIZE = 10,

MAXSIZE = 50,

FILEGROWTH = 5 )

LOG ON

( NAME = 'library',

FILENAME = 'd:\librarysystem.ldf',

SIZE = 5MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

GO

3.1.2書本類別表建立

create table book_style

(

bookstyleno varchar(30) primary key,

bookstyle varchar(30)

)

3.1.3創建書庫表

create table system_books

(

bookid varchar(20) primary key,

bookname varchar(30) Not null,

bookstyleno varchar(30) Not null,

bookauthor varchar(30),

bookpub varchar(30) ,

bookpubdate datetime,

bookindate datetime ,

isborrowed varchar (2) ,

foreign key (bookstyleno) references book_style (bookstyleno),

)

3.1.4借書證表建立

create table system_readers

( readerid varchar(9)primary key,

readername varchar(9)not null ,

readersex varchar(2) not null,

readertype varchar(10),

regdate datetime

)

3.1.5借書記錄表建立

create table borrow_record

( bookid varchar(20) primary key,

readerid varchar(9),

borrowdate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid),

)

3.1.6還書記錄表建立

create table return_record

( bookid varchar(20) primary key,

readerid varchar(9),

returndate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid)

)

3.1.7罰款單表建立*/

create table reader_fee

( readerid varchar(9)not null,

readername varchar(9)not null ,

bookid varchar(20) primary key,

bookname varchar(30) Not null,

bookfee varchar(30) ,

borrowdate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid)

)

3.2數據初始化

3.2.1將書籍類別加入表book_style中

insert into book_style(bookstyleno,bookstyle)values('1','人文藝術類')

insert into book_style(bookstyleno,bookstyle)values('2','自然科學類')

insert into book_style(bookstyleno,bookstyle)values('3','社會科學類')

insert into book_style(bookstyleno,bookstyle)values('4','圖片藝術類')

insert into book_style(bookstyleno,bookstyle)values('5','政治經濟類')

insert into book_style(bookstyleno,bookstyle)values('6','工程技術類')

insert into book_style(bookstyleno,bookstyle)values('7','語言技能類')

3.2.2將已有的圖書加入system_books表中(定義相同的作者出版社的書本編號不壹樣)

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('00125415152','計算機組成原理','6','王愛英','清華大學出版社','2001-01-03','2003-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('00125415153','計算機組成原理','6','王愛英','清華大學出版社','2001-01-03','2003-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('00456456','數據庫原理','6','薩師煊','高等教育出版社','2007-07-02','2007-09-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('12215121','C程序設計','6','譚浩強','清華大學出版社','2002-04-02','2004-03-14','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('9787308020558','計算機體系結構','6','石教英','浙江大學出版社','2004-10-03','2006-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('45456141414','數據結構(C語言版)','6','吳偉民,嚴蔚敏','清華大學出版社','2002-06-28','2004-01-21','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('5455515','中華歷史5000年','1','吳強','北京大學出版社','2005-04-03','2006-05-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('015115','古代埃及','3','趙文華','北京大學出版社','2001-02-02','2002-09-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('1514514','日本文化','1','吳小鵬','北京大學出版社','2002-04-02','2004-03-14','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('15154656','微觀經濟學','5','李小剛','北京大學出版社','2000-10-03','2001-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('5658','影視文學','4','蘇慶東','北京大學出版社','1999-02-28','2000-01-21','1');

insert into

system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('565800020','探索宇宙奧秘','2','蘇慶東','北京大學出版社','1999-02-28','2000-01-21','1');

3.2.3將已有圖書證的讀者加入system_readers表中*/

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620207','陳遠鵬','男','學生','2005-9-23 14:23:56')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620206','陳特','男','學生','2005-09-30 13:24:54.623')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620204','趙銘靜','女','學生','2005-09-27 11:24:54.123')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620202','潘虹','女','學生','2005-09-30 13:24:54.473')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('008415','蔣偉','男','教師','2004-04-30 09:24:54.478')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('001456','李葉風','女','教師','2004-04-30 09:24:54.478')

3.2.4添加已借書讀者的記錄,同時將在已借出的借閱標記置0*/

insert into borrow_record(bookid,readerid,borrowdate)

values('00125415152','X05620202','2007-09-27 11:24:54.123')

update system_books

set isborrowed=0

where bookid='00125415152'

insert into borrow_record(bookid,readerid,borrowdate)

values('00125415153','X05620206','2007-12-27 08:26:51.452')

update system_books

set isborrowed=0

where bookid='00125415153' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('5455515','X05620207','2007-12-27 08:26:51.452')

update system_books

set isborrowed=0

where bookid='5455515' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('015115','X05620204','2007-10-21 12:11:51.452')

update system_books

set isborrowed=0

where bookid='015115' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('15154656','001456','2007-12-28 14:11:51.312')

update system_books

set isborrowed=0

where bookid='15154656' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('565800020','008415','2007-08-28 15:11:31.512')

update system_books

set isborrowed=0

where bookid='565800020' and isborrowed='1'

4.結果數據處理

4.1單表查詢

4.1.1表book_style中查詢演示:

圖4-1 表book_style中內容

4.1.2表system_books中查詢演示:

圖4-2 表system_books中內容

4.1.3將已有圖書證的讀者加入system_readers表中結果查詢:

圖4-3 表system_readers中內容

4.1.4借書紀錄表borrow_record結果查詢:

圖4-4 表borrow_record中內容

4.2超期處理

4.2.1現在對已有借書證的讀者進行查詢借書是否超期(這裏歸定30天):

說明:當前的getdate()以日期為2008年1月6日計算

圖4-4 選出借出超過30天的讀者

4.2.2同時也可以用語句超過天數的讀者進行罰款,加入到罰款單裏面,壹天以0.3元扣除計算:

SQL語言:

insert into reader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)

select system_readers.readerid 讀者借書證編號 ,readername 讀者姓名,

system_books.bookid 書籍編號,bookname 書名,

0.3*(Datediff(day,convert(smalldatetime,borrowdate),getdate())-30) 超過時間天數,

borrowdate 借書時間

from borrow_record ,system_readers ,system_books

where system_readers.readerid=borrow_record.readerid

and system_books.bookid=borrow_record.bookid

and Datediff(day,convert(smalldatetime,borrowdate),getdate())>=30

(所影響的行數為 3 行)

select readerid 書讀者借書證編號,readername 讀者姓名,

bookid 書籍編號,bookfee 超期罰款

from reader_fee

形成各本書對應的罰款金額,按0.3元每天算

圖4-5查看罰款單

4.3還書操作

4.3.1現在對某壹讀者進行還書操作:

1.首先還書要在還書紀錄中添加壹條還書紀錄

2.其次刪除相應書本的借閱紀錄

3.最後在書庫中標記該本書為1,表示歸還了未借,可供其他讀者借閱

說明:學號為X05620207 姓名為陳遠鵬 借閱的565800020書籍編號進行歸還。

SQL語言:

insert into return_record(bookid,readerid,returndate)

select bookid,readerid,getdate()

from borrow_record

where bookid='565800020'

(所影響的行數為 1 行)

delete

from borrow_record

where bookid='565800020'

(所影響的行數為 1 行)

update system_books

set isborrowed=1

where bookid='565800020'

(所影響的行數為 1 行)

三個表的結果如圖:

圖4-6 增加了565800020紀錄

圖4-7 565800020這本書在借書紀錄裏沒有了

圖4-8 標記設為了‘1’

說明:這本書重新回到未被借出標記為1(註,相同的書其編號是不同的)

其結果為還書成功,相應的各表都有變化,對於罰款單通過借閱記錄表borrow_record中更新。

4.4借書操作

4.4.1查詢未被借出的書本:

圖4-9

4.4.2查詢已被借出的書本:

圖4-10

4.4.3申請借書證:

SQL語言:

Insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620211','小華','男','學生',getdate())

圖4-11

說明:查詢相應的紀錄增加了小華這樣壹個讀者的借書證紀錄:

4.4.4註銷借書證:

說明:

1.在註銷之前執行所有的還書過程,就是上面寫到的所述SQL語句,然後執行

delete from system_readers where readerid=' X05620211',

2.小華借書證紀錄就被刪除了,同時要刪除和小華歸還紀錄的內容

delete from return_record where readerid=' X05620211',

4.4.5查詢所有書所對應的類別:

圖4-12

4.5書籍狀態

4.5.1查詢所有工技術類的書:

圖4-13

4.5.2查詢清華大學出版社出版的書:

圖4-14

4.6讀者狀態

4.6.1查詢什麽人借了什麽書:

SQL語言:

select readername 讀者姓名,bookname 書籍名稱

from borrow_record,system_books,system_readers

where system_readers.readerid=borrow_record.readerid

and system_books.bookid=borrow_record.bookid

圖4-15

4.6.2指定潘虹借了什麽書:

SQL語言:

select readername 讀者姓名,bookname 書籍名稱

from borrow_record,system_books,system_readers

where system_readers.readerid=borrow_record.readerid

and system_books.bookid=borrow_record.bookid

and readername='潘虹'

圖4-16

5.結束語

5.1課程設計心得

通過此次數據庫的課程設計,真正達到了學與用的結合,增強了對數據庫方面應用的理解,對自己今後參與開發數據庫系統積累了不少經驗,在實驗過程中,從建立數據開始,對靈據庫設計理念及思想上有更高的認識,從需求分析,到概念設計和邏輯設計,E-R圖的表示,數據字典的創建,懂得了不少有關數據庫開發過程中的知識,在實驗中建表,及其關系模式,關系代數的建立及理解,將SQL語的查詢語句用得淋漓盡致,增強了自己在數據庫中應用SQL語言的靈活性,其中包括,插入、刪除、修改、查詢,牽涉表和表之間的聯系,主建與外主鍵的定義,約束項的設置,使邏輯更嚴密,在學習過程中,我也能過上網查了不少資料,也看了壹些別人設計的圖書館管理信息系統的設計報告,學以致用,自我創新,獨立完成了這份自己的報告,從中在學到用,從用又到學,不斷修改,系統更新。雖然不能達到完善系統,但也做到了盡善盡美,加強理論學習對完善系統會有很多幫助,不管怎麽說,對這次做的課程設計自己覺得還算滿意。

  • 上一篇:asp.net生成偽靜態頁面 簡單實例
  • 下一篇:按鍵精靈能夠同時對多個窗口同時控制嗎?
  • copyright 2024編程學習大全網