資料庫專周報告

2021-03-04 06:33:36 字數 5281 閱讀 8149

課程設計

課程: 資料庫應用課程設計

題目: 圖書借閱管理

專業: 資訊管理與資訊系統

班級: 信管0901

座號姓名

2023年3 月 3 日

一、系統定義

1、圖書借閱管理

背景資料:

在高校中,學生的數量較多,圖書的數量也比較多,每天圖書的借閱量比較大,採用手工的處理方式已經不能滿足這種需要了,因此需要開發乙個能夠處理平時借閱處理的資訊系統,這個資訊系統負責主要處理圖書館日常的借書、還書和查詢業務

二、需求分析

1.根據系統分析,圖書管理系統的要求如下 :

(1)需求分析:

1)實現新進圖書的資料錄入。

2)實現對所有購進圖書的分類查詢和分類統計。

3)能夠按書名、作者等分類查詢現有圖書的數量。

4)能夠實現借還書操作。

(2)系統效能要求:

系統安全、可靠;

1) 功能齊全;

2) 操作方便、介面友好;

3) 易於維護和擴充。

(3)系統的功能分析:

密碼設定:每個操作員均有自己的密碼,可以防止非本系統人員進入本系統;又因每個人的許可權不一致,故可以防止越權操作。

資料維護:為了存放圖書、讀者檔案的全部資料,本系統將每一本圖書和每位讀者的資訊進行管理。系統維護包括對各種表記錄的修改、刪除、新增等操作。

系統查詢及統計:可以對所有購進圖書的分類查詢和分類統計,能夠按書名、作者等分類查詢現有圖書的數量。

系統管理:進行人員管理、資料輸入。

報表統計:包括統計圖書資訊、讀者資訊、借閱資訊,管理人員資訊等。

其它操作:包括修改密碼、新增使用者等。

2、資料流圖

。三、系統設計

1、概念結構設計

畫出系統e-r圖。

2、邏輯結構設計

將e-r圖(或其他概念設計圖)轉換為具體的dbms對應的關係模式。

基本表:

借閱者(借閱者編號,姓名,性別,登陸密碼,型別,出生日期,系別,圖書借閱次數,總罰金)

借閱者型別(型別編號,型別名稱,可藉總數,借閱天數)

管理者(管理者編號,姓名,性別,登陸密碼,出生日期)

圖書型別(型別編號,型別名稱,庫存總量)

圖書(圖書編號,索引號,書名,型別,作者,出版社,**,借出次數,購買日期)

圖書量(索引號,現存量,庫存總量)

借閱資訊(借閱者編號,圖書編號,借閱日期,應還日期,歸還日期,續借次數,狀態,罰金,罰金狀態)

檢視:tushu(索引號,書名,型別,作者,出版社,**,現存量,庫存總量,借出次數,購買日期,型別編號)

關係:借閱者.型別(來自)借閱者型別

圖書.型別(來自)圖書型別

借閱資訊.借閱者編號(來自)借閱者.借閱者編號

借閱資訊.圖書編號(來自)圖書.圖書編號

圖書量.索引號(來自)圖書.索引號

3、系統功能模組圖

功能流程圖:

系統流程圖

四、詳細設計

登陸介面:登陸,退出

借閱者介面:個人資訊,借閱查詢,圖書檢索

管理者介面:借閱者管理(借閱者檔案管理,借閱者型別管理),圖書管理(圖書型別管理,圖書檔案管理),管理員檔案管理,退出介面

借閱者檔案介面:借閱者增加,借閱者刪除,借閱者刪除,借閱者退出介面

借閱者型別管理介面:檢視,更改,增加,刪除,關閉

圖書型別管理介面:檢視,更改,刪除,查詢,增加,關閉

圖書檔案管理介面:檢視,刪除,修改,增加,關閉

圖書其他介面:類別查詢,統計

管理者檔案介面:增加管理者,刪除管理者,修改管理者密碼,查詢,退出介面

五、系統實現與測試

1、開發平台和工具選擇

說明選擇原因、環境要求等。

2、系統測試

在執行圖書檔案時候出現這樣的錯誤

發現是儲存過程的原因,所以把儲存過程改了。

sql**:

use 圖書管理系統

--建立借閱表

create table 借閱者(

借閱者編號char(5) primary key,

姓名varchar(8) not null,

性別char(2) check(性別in('男','女') ),

登陸密碼varchar(10) not null,

型別varchar(8),

出生日期datetime,

系別varchar(40),

圖書借閱次數int,

總罰金int

--建立借閱者型別表

create table 借閱者型別(

型別編號char(3) primary key,

型別名稱varchar(8) unique not null,

可藉總量**allint,

借閱天數**allint);

--建立管理者表

create table 管理者(

管理者編號char(5) primary key,

姓名varchar(8) not null,

性別char(2) check(性別in('男','女')),

登陸密碼varchar(10) not null,

出生日期datetime);

--建立圖書型別表

create table 圖書型別(

型別編號char(3) primary key,

型別名稱varchar(40) unique not null,

庫存總量bigint );

--建立圖書表

create table 圖書(

圖書編號char(5) primary key,

索引號char(5) not null,

書名varchar(40) not null,

型別varchar(40),

作者varchar(8),

出版社varchar(40),

**int,

借出次數int,

購買日期datetime,

foreign key(索引號)references 圖書量(索引號));

--建立圖書量

create table 圖書量(

索引號char(5) primary key,

現存量**allint,

庫存總量**allint);

--建立借閱資訊表

create table 借閱資訊(

借閱者編號char(5),

圖書編號char(5),

借閱日期datetime,

應還日期datetime,

歸還日期datetime,

續借次數**allint,

狀態char(4) check(狀態in('未還','已還')),

罰金int,

罰金狀態char(4) check(罰金狀態in('未結','已結')),

foreign key (借閱者編號) references 借閱者(借閱者編號),

foreign key (圖書編號) references 圖書(圖書編號),

primary key(借閱者編號,圖書編號,借閱日期));

--建立圖書檢索檢視

create view tushu

asselect distinct 圖書.索引號,書名,型別,作者,出版社,**,現存量,圖書量.庫存總量,借出次數,購買日期,型別編號

from 圖書,圖書量,圖書型別

where 圖書.索引號=圖書量.索引號and 圖書.型別=圖書型別.型別名稱

--建立增加圖書的觸發器

create trigger tushu_add

on 圖書

for insert

asdeclare @索引號char(5),@型別varchar(40)

select @索引號=索引號from inserted

select @型別=型別from inserted

if @索引號in (select 索引號from 圖書量)

update 圖書量set 庫存總量=庫存總量+1,現存量=現存量+1 where 索引號=@索引號

else

insert into 圖書量values (@索引號,1,1)

update 圖書型別set 庫存總量=庫存總量+1 where 型別名稱in (select 型別from 圖書where 索引號=@索引號)

go--建立刪除圖書的觸發器

create trigger tushu_del

on 圖書

for delete

asdeclare @索引號char(5),@型別varchar(40)

select @索引號=索引號from deleted

select @型別=型別from deleted

update 圖書型別set 庫存總量=庫存總量-1 where 型別名稱in (select 型別from 圖書where 索引號=@索引號)

update 圖書量set 庫存總量=庫存總量-1,現存量=現存量-1 where 索引號=@索引號

if 0 = (select 庫存總量from 圖書量where 索引號=@索引號)

delete from 圖書量where 索引號=@索引號

go--建立求借閱者總罰金的儲存過程

create proc zongfajin

@a char(5),@b char(5),@c int output

asselect @c=sum(abs(datediff(day,getdate(),應還日期)))

from 借閱資訊

where 借閱者編號=@a and 狀態='未還' and 圖書編號<>@b and datediff(day,getdate(),應還日期)<0

go--建立圖書借閱的觸發器

create trigger jieyue_add

on 借閱資訊

for insert

asdeclare @借閱者編號char(5),@圖書編號char(5),@索引號char(5),@借閱天數**allint,@狀態char(4),@總罰金int

select @借閱者編號=借閱者編號from inserted

select @圖書編號=圖書編號from inserted

select @狀態=狀態from inserted

select @索引號=( select 索引號from 圖書where 圖書編號=@圖書編號)

select @借閱天數=(select 借閱天數from 借閱者型別where 型別名稱in (select 型別from 借閱者where 借閱者編號=@借閱者編號))

資料庫設計報告

本系統主要用於旅館或賓館出租的房間管理。1.使用者身份的登記 2.房屋出租管理 3.年收 支情況 本系統包括 標準模組 系統登入模組 主介面模組 系統管理模組 學生基本資訊管理模組 選課模組 成績管理模組。1.標準模組 定義公共變數和過程。2.系統登入模組 進行使用者身份的驗證。3.主介面模組 作為...

資料庫實習報告

南京工業大學土木與工程學院 資料庫課程設計報告書 題目 酒店賓館管理系統 所學專業 地理資訊系統 班級 作者 指導老師 完成日期 目錄1系統概況2 1.1 課題名稱2 1.2 設計環境2 2需求分析2 2.1 系統功能分析2 2.2 系統功能模組設計3 2.2.1.基本資訊管理3 2.2.2前台接待...

資料庫實習報告

目錄1.開發背景 2.功能描述 3.業務流程分析 4.資料流程分析 4.1 資料流程圖 4.2 資料字典 5.概念模型設計 6.邏輯模型設計和優化 7.物理設計和實施 8.課程設計心得體會 一開發背景 隨著科技與資訊科技的高速發展,網路的概念已深入人心。網路在各行各業的發展戰略中佔據了重要的位置,成...