admin 管理员组

文章数量: 887021


2023年12月22日发(作者:站长窝源码)

海南大学应用科技学院

数据库系统原理课程设计报告

————图书管理系统

组 长:

学 号:

组 员:

学 号:

组 员:

学 号:

组 员:

学 号:

指导老师:

起始时间:

起始时间:

2

目录

第一章

1.1

1.2

1.3

概述 …………………………………………3

项目背景……………………………………………3

软件定义………………………………………………3

编写目的………………………………………………3

1.4

第二章

2.1

2.2

2.3

第三章

3.1

3.2

第四章

4.1

4.2

4.3

4.4

第五章

第六章

第七章

第八章

开发环境………………………………………………3

需求分析………………………………………4

信息要求……………………………………………4

处理要求……………………………………………7

安全性与完整性要求……………………………8

概念结构设计…………………………………21

流程图及数据字典…………………………………21

全局E-R图…………………………………………23

逻辑结构设计…………………………………24

关系模式……………………………………………24

基本表………………………………………………25

视 图………………………………………………30

索 引………………………………………………32

数据库与表的创建与实施……………………33

主要模块设计及代码…………………………38

总结……………………………………………41

参考文献………………………………………41

3

第一章 概述

1.1 项目背景

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,是与世界接轨的重要条件。

1.2 编写目的

记录图书借阅情况是非常繁琐工作。使用计算机可以高速,快捷地完成工作。有鉴于此,开发一套图书馆信息管理系统,是十分必要的。采用数据库技术开发的图书馆信息管理系统可以用来实现对图书的信息管理,可以提高管理的效率。图书馆都是封闭式管理,要求藏书全部公开开放,师生共享,开架阅览。这种阅览方式是适合当前我国国情、发挥图书馆应用作用的最佳方式,也是素质教育的最好体现。它充分发挥了图书馆的功效,最大限度地为师生服务,这也是图书馆自动化管理的最终目标。实现这一目标,必须有现代化的管理手段和管理体制。

1.3 软件定义

图书管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。利用信息控制企业的行为;帮助企业实现其规划目标。在现代大中型企业纷纷利用的系统。

1.4 开发环境

图书馆管理系统的开发环境是 Microsoft SQL Server 2005

4

第二章 需求分析

2.1信息要求

图书馆信息管理系统对于学校图书馆的管理十分重要,所以,图书馆信息管理系统不但要为图书管理者提供充足的信息和快捷的查询手段,也要为学生查询提供必要和快捷的查询手段。

2.1.1数据字典

定义:数据字典是数据库的重要部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等。数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。

#为了管理更方便,所以设定管理员编号,管理员个数未知,因此长度暂设为20。

#管理员登入时需要用到用户名来登入,设定一个用户名数据项,用户名依个人喜好设定,但也不要太过长难记,因此给它长度为20.

数据项:管理员编号 数据项:用户名

简述:定义管理员的唯一标识 简述:定义管理员的用户名

数据类型:字符型 数据类型:字符型

数据长度:20 数据长度:20

#管理员登入的时候必需要有密码登入,这样才能给它权限去管理数据库,密码长度基本定在20,这样密码不会太长,长度合适即保障安全,也免忘记密码。

#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

数据项:密码 数据项:学号

简述:定义管理员口令 简述:定义读者的唯一标识

数据类型:字符型 数据类型:字符型

数据长度:20 数据长度:20

#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。

5

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为10

数据项:姓名 数据项:专业班级

简述:定义读者姓名 简述:定义读者的专业班级

数据类型:字符型 数据类型:字符型

数据长度10 数据长度:10

#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

数据项:图书编号 数据项:书名

简述:定义图书的唯一标识 简述:定义图书的书名

数据类型:字符型 数据类型:字符型

数据长度:20 数据长度:20

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

数据项:作者 数据项:分类

简述:定义图书作者的姓名 简述:定义图书的分类

数据类型:字符型 数据类型:字符型

数据长度:20 数据长度:10

#图书的上架时间对于对新书渴望的读者来说那是必要的,读者可以通过查询来知道新书上架的时间,从而第一时间内借到自己想看的书,日期以XXXXXX形式存在,长度设为20.

#另外一项借阅时间则是对于管理员来说十分重要,记录下了借阅时间,这样才能看读者是否太久未归还书,对自己借出去的图书也是一种保护,格式与上架时间一样,所以长度也设为20.

数据项:上架时间 数据项:借阅时间

简述:定义图书的上架日期 简述:定义图书的借阅日期

数据类型:整型 数据类型:整型

数据长度:20 数据长度:20

6

2.1.2数据流图

定义:

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。

设计:

图书管理系统与管理员、用户(读者)之间分别有数据的交互(见图2-1)

读者通过查看借阅表、图书表查看借阅与图书信息,借阅图书;管理者可查看、修改、更新所有表,达到管理图书和读者的目的。(见图2-2)

2-1

7

2-2

2.2 处理要求

1. 能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理。

2. 能够对一定数量的读者进行相应的信息存储与管理。

3. 能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。

4.正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。

5.满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。

其中包括两大系统:(见图2-3)

一、学生图书借阅系统 图书借阅,个人修改登陆密码系统

二、管理图书借阅系统 管理图书、借阅、读者信息系统

8

2-3

2.3安全性与完整性要求

定义:

数据库的安全性与完整性属于数据库的保护的内容。

安全性主要是指对数据库的存取控制,防止未授权使用的人员非法存取他不应存取的数据,防止数据泄密,防止数据被破坏。

完整性是指保证数据的正确和一致,使数据库中的数据在任何时刻都是有效的。包括保持数据的正确性、准确性、有效性。实现方式有:一是通过定义和使用完整性约束规则;二是通过触发器(Trigger)和存储过程(Stored Procedure)等

触发器(Trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,经常用于加强数据的完整性约束和业务规则。

设计:

1、对图书管理系统添加管理者和用户(读者),管理者拥有查看、操作所有表的权限,读者只能查看借阅表和图书表。(见图2-4至2-17)

2、创建DDL触发器safety(见图2-18)避免误删、误改表(见图2-19)

创建表的触发器reminder提醒用户对表的(见图2-20、2-21)

9

实现:

DDL触发器safety:

create trigger safety

on database

for drop_table,alter_table

as

print '你必须使触发器无效以执行对表的操作!'

rollback;

触发器reminder以【读者表】的为例:

create trigger reminder

on 读者表

for insert,delete ,update

as

raiserror ('你在插入、修改或删除读者表的数据',16,10)

结果:

1、在计算机管理里创建用户(以管理员:李婷为例):

2-4

2、在系统安全性—》登录名—》创建新登录名,点击【搜索】用【高级】选择用户李婷:

10

2-5

3、创建新登录名“李婷”成功:

2-6

4、用新登录名【A56李婷】创建Windows身份验证用户:

2-7

5、用新登录名【xin】创建SQL Server身份验证用户xin:

11

2-8

6、用创建的新SQL Server身份验证用户xin连接数据库:

2-9

12

7、连接SQL Server身份验证用户xin结果如下:

2-10

8、点击管理员【李婷】的属性:

2-11

9、选择【安全对象】属性,添加需要设置权限的表:

13

2-12

10、勾选对每个表的权限,因为是管理者,对所有表授予权限:

2-13

14

11、点击用户【小五】的属性:

2-14

12、因为是读者,对用户【小五】只授予图书表、借阅表的权限:

15

13、新建用户【小六】,设置属性:

2-15

16

2-16

14、使用sql语句设置读者【小六】对表的权限:

create select,alter,control,delete,update

on 图书表

to 小六

15、显示【小六】对图书表的权限:

17

2-17

16、DDL触发器safety:

18

2-18

17、若删除表则显示出错提醒:

19

2-19

18、触发器reminder

20

2-20

2-21

21

第三章 概念结构设计

定义:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

3.1局部E-R图

3-1书为实体,书名、作者、分类及图书编号为属性,其中图书编号为主键,

3-1

22

3-2中管理者为实体,用户名、密码及管理员编号为属性,其中管理员编号为主键。

3-2

3-3中读者为实体,姓名、专业班级及学号为属性,其中学号为主键。

3-3

23

3.2全局E-R图

整合了3个实体(管理者、读者、书),并分别建立联系(管理读者、管理书、借阅),均为多对多的关系。

24

第四章 逻辑结构设计

4.1 关系模式

定义:关系模型是用二维表来描述现实世界中的事物以及事物之间联系的数据模型。

25

4.2 基本表

定义:基本表是实实在在的保存数据的实体,写入的数据都保存在表中

#图书管理系统属性设计表, 把系统中的几个重要组成部分的属性统一列出,简洁直观。

为了方便查看读者信息创建了读者表:(见图4-1读者表部分)

#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20

为了方便查看有多少图书及其信息创建了图书表:(见图4-1图书表部分)

#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

为了方便查看管理者的信息创建了管理者表:(见图4-1管理者表部分)

#为了管理更方便,所以设定管理员编号,管理员个数未知,因此长度暂设为20。

#管理员登入时需要用到用户名来登入,设定一个用户名数据项,用户名依个人喜好设定,但也不要太过长难记,因此给它长度为20.

#管理员登入的时候必需要有密码登入,这样才能给它权限去管理数据库,密码长度基本定在20,这样密码不会太长,长度合适即保障安全,也免忘记密码。

为了方便查看被借阅的图书信息创建了借阅表:(见图4-1借阅表部分)

#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

26

#学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。

4-1

为了方便查看读者信息创建了读者表:(见图4-2)

#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20

27

4-2

为了方便查看有多少图书及其信息创建了图书表:(见图4-3)

#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

4-3

为了方便查看被借阅的图书信息创建了借阅表:(见图4-4)

#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

#学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是

28

两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。

#借阅时间方便管理者查看图书借出去的时间,以便管理图书。

4-4

为了方便管理者管理图书创建了图书管理表(见图4-5)

#为了管理更方便,所以设定管理员ID,管理员个数未知,因此长度暂设为20。

#图书ID作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项,长度暂定为20.

#图书的上架时间对于对新书渴望的读者来说那是必要的,读者可以通过查询来知道新书上架的时间,从而第一时间内借到自己想看的书,日期以XXXXXX形式存在,长度设为20.

#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.

#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.

#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.

29

4-5

为了方便管理者管理读者创建了读者管理表(见图4-6)

#为了管理更方便,所以设定管理员ID,管理员个数未知,因此长度暂设为20。

#读者管理表中的读者ID是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.

#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。

4-6

30

4.3视图

定义:

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行的数据。

设计:

为了方便查看,分别定义三个视图:(见图4-7)

【读者_借阅_管理】创建读者视角视图,显示读者学号、姓名,图书编号,借阅时间,管理员编号(见图4-8)

【管理】创建管理者视角视图,显示学号,图书编号,管理员编号,用户名,上架时间(见图4-9)

【图书_借阅_管理】创建图书视图,显示学号,图书编号,书名,管理员编号,借阅时间(见图4-10)

实现:

1、 用语句创建【图书_借阅_管理】视图并定义其属性

CREATE VIEW 读者_借阅_管理

AS

SELECT读者表.学号,读者表.姓名,借阅表.图书编号,借阅时间,管理员编号

FROM读者表,借阅表,管理读者表

WHERE 读者表.学号=管理读者表.学号

AND管理读者表.学号=借阅表.学号

GO

2、 用语句创建【管理】视图并定义其属性

CREATE VIEW 管理

AS

SELECT 管理读者表.学号,图书管理表.图书编号,管理员表.管理员编号,用户名,上架时间

FROM 管理员表,管理读者表,图书管理表

WHERE 管理员表.管理员编号=图书管理表.管理员编号

AND管理员表.管理员编号=管理读者表.管理员编号

GO

3、 用语句创建【读者_借阅_管理】视图并定义其属性

CREATE VIEW 读者_借阅_管理

AS

SELECT读者表.学号,读者表.姓名,借阅表.图书编号,借阅时间,管理员编号

FROM读者表,借阅表,管理读者表

WHERE 读者表.学号=管理读者表.学号

AND管理读者表.学号=借阅表.学号

GO

结果:

31

1.一共创建3个视图

4-7

2. 【读者_借阅_管理】

4-8

3. 【管理】

4-9

4. 【图书_借阅_管理】

32

4-10

4.4索引

定义:

索引是对数据库表中一列或多列的值进行排序的一种结构。

设计:

创建索引加快对信息的搜索速度。

实现:(以【读者表】的【读者学号索引】为例,见图4-11)

create index 读者学号索引

on 读者表(学号)

go

结果:

4-11

33

第五章 数据库与表的创建与实施

实现:

1. 用语句进行【图书管理系统】的创建,并说明存放路径及格式等(见图5-1)

CREATE DATABASE 图书管理系统

ON

PRIMARY

(

NAME='图书管理系统',

FILENAME='E:120图书管理系统.mdf',

SIZE=10MB,

MAXSIZE=UNLIMITED,

FILEGROWTH=1MB

)

LOG ON

(

NAME='图书管理系统_log',

FILENAME='E:120图书管理系统_',

SIZE=1MB,

MAXSIZE=UNLIMITED,

FILEGROWTH=10%

)

GO

2. 用语句创建【读者表】并定义其属性(见图5-3)

CREATE TABLE 读者表

(

学号 varchar(20) not null primary key,

姓名 varchar(10) not null,

专业班级 varchar(20)

)

GO

3. 用语句创建【管理员表】并定义其属性(见图5-4)

CREATE TABLE 管理员表

(

管理员编号 varchar(20) not null primary key,

用户名 varchar(10) not null,

密码 varchar(20) not null

)

GO

4. 用语句创建【图书表】并定义其属性(见图5-5)

CREATE TABLE 图书表

(

图书编号 varchar(20) not null primary key,

书名 varchar(20) not null,

34

作者 varchar(10) not null,

分类 varchar(10) not null

)

GO

5. 用语句创建【借阅表】并定义其属性(见图5-6)

CREATE TABLE 借阅表

(

图书编号 varchar(20) not null,

借阅时间 int not null,

书名 varchar(20) not null,

作者 varchar(10) not null,

分类 varchar(10) not null.

学号 varchar(20) not null,

姓名 varchar(10) not null,

专业班级 varchar(20) not null,

CONSTRAINT C1 FOREIGN KEY (学号) REFERENCES 读者表(学号),

CONSTRAINT C2 FOREIGN KEY (图书编号) REFERENCES 图书表(图书编号)

)

GO

6. 用语句创建【图书管理表】并定义其属性(见图5-7)

CREATE TABLE 图书管理表

(

管理员编号 varchar(20) not null,

图书编号 varchar(20) not null,

上架时间 varchar(10) not null,

书名 varchar(20) not null,

作者 varchar(10) not null,

分类 varchar(10) not null,

CONSTRAINT C3 FOREIGN KEY (管理员编号) REFERENCES 管理员表(管理员编号),

CONSTRAINT C4 FOREIGN KEY (图书编号) REFERENCES 图书表(图书编号)

)

GO

7. 用语句创建【管理读者表】并定义其属性(见图5-8)

CREATE TABLE管理读者表

(

管理员编号varchar(20) not null,

学号varchar(20) not null,

专业班级varchar(20) not null,

CONSTRAINT C5 FOREIGN KEY (管理员编号) REFERENCES 管理员表(管理员编号),

CONSTRAINT C6 FOREIGN KEY (学号) REFERENCES 读者表(学号)

)

35

GO

8. 增加表的记录

insert 图书表

values('30011','长相思','桐华','小说')

insert 借阅表

values('长相思','30011','桐华','小说','20006','小八','注会',20110617)

go

9. 修改表的信息

update 图书表

set 分类='文学'

where 图书编号='30010'

go

10. 删除表的记录

delete 图书表

where 图书编号='30010'

go

结果:

1.建立图书管理系统

5-1

2.一共创建6个表

5-2

3. 读者表

36

5-3

4. 管理员表

5-4

5. 图书表

5-5

6. 借阅表

37

5-6

7. 图书管理表

5-7

11. 管理读者表

5-8

38

第六章 主要模块设计及代码

CREATE TABLE读者表

(

学号 varchar(20) not null primary key,

姓名 varchar(10) not null,

专业班级 varchar(20),

GO

CREATE TABLE管理员表

(

管理员编号 varchar(20) not null primary key,

用户名 varchar(10) not null,

密码 varchar(20) not null,

GO

CREATE TABLE 借阅表

(

图书编号 varchar(20) not null,

借阅时间 smalldatetime not null,

书名 varchar(20) not null,

作者 varchar(10) not null,

分类 varchar(10) not null.

学号 varchar(20) not null,

姓名 varchar(10) not null,

专业班级 varchar(20) not null,

CONSTRAINT C5 FOREIGN KEY (学号) REFERENCES 读者表(学号),

CONSTRAINT C5 FOREIGN KEY (图书编号) REFERENCES 图书表(图书编号),

GO

39

CREATE TABLE图书表

(

图书编号 varchar(20) not null primary key,

书名 varchar(20) not null,

作者 varchar(10) not null,

分类 varchar(10) not null,

GO

CREATE TABLE 图书管理表

(

管理员编号 varchar(20) not null,

图书编号 varchar(20) not null,

上架时间 smalldatetime not null,

书名 varchar(20) not null,

作者 varchar(10) not null,

分类 varchar(10) not null.

CONSTRAINT C5 FOREIGN KEY (管理员编号) REFERENCES 管理员表(管理员编号),

CONSTRAINT C5 FOREIGN KEY (图书编号) REFERENCES 图书表(图书编号),

GO

CREATE TABLE管理读者表

(

管理员编号 varchar(20) not null,

学号 varchar(20) not null,

专业班级 varchar(20) not null,

CONSTRAINT C5 FOREIGN KEY (管理员编号) REFERENCES 管理员表(管理员编号),

CONSTRAINT C5 FOREIGN KEY (学号) REFERENCES 读者表(学号),

GO

CREATE VIEW 管理

AS

SELECT 管理读者表.学号,图书管理表.图书编号,管理员表.管理员编号,用户名,上架时间

FROM 管理员表,管理读者表,图书管理表

WHERE 管理员表.管理员编号=图书管理表.管理员编号

AND管理员表.管理员编号=管理读者表.管理员编号

GO

40

CREATE VIEW 图书_借阅_管理

AS

SELECT图书表.图书编号,图书表.书名,借阅表.学号,借阅时间,管理员编号

FROM图书表,借阅表,图书管理表

WHERE 图书表.图书编号=图书管理表.图书编号

AND图书管理表.图书编号=借阅表.图书编号

AND图书管理表.书名=借阅表.书名

GO

CREATE VIEW 读者_借阅_管理

AS

SELECT读者表.学号,读者表.姓名,借阅表.图书编号,借阅时间,管理员编号

FROM读者表,借阅表,管理读者表

WHERE 读者表.学号=管理读者表.学号

AND管理读者表.学号=借阅表.学号

GO

41

第七章 总结

通过一学期的努力,我们小组终于完成了我们的图书管理系统,总算松了一口气,因为是上学期学的知识,难免生疏。吃了很多苦,承受了很大的压力,最后还是通过大家的努力,完成了~感觉到很轻松。回顾这两周所做过的工作和努力,感觉到收获不少,虽然只是做简单的数据库系统,我们都认认真真的从最开始的E-R图到现在的总结,对数据库的结构、组成、原理等都有了更深的认识。

此次我们的设计内容是基于SQL Server2005的数据库应用系统,开发一个图书管理系统,根据图书管理系统的需求设计出图书管理系统的具体功能然后再编写代码。做的时候,觉得很轻松,到写实验报告的时候,才发现自己还有很多的工作没有完成,完成了的也不够好,经过大家几天下来的辛苦修改、完善,我们终于做的有点样子了。在实践过程中,我们都明白了一个道理真正开发一个软件不可能完全靠哪一个人自己的能力去完成,而是要靠一个团队的分工协作,最终才有可能设计出一个完美的程序。我们的程序也许不是老师心中最完美的,但却是我们每个组员心中最完美的系统!

第八章 参考文献

《数据库原理与SQLServer2005应用教程》


本文标签: 图书 读者 管理 管理员 借阅