湖南通信职业技术学院
数据库课程实训报告
设计题目:学院图书管理系统
学生姓名:严倩
系 别:计算机系
专 业:计算机管理
班 级:计管091
学 号:200902030150
指导教师: 邹薛标
20##年12月1日
目录
一、概述
1.1项目背景……………………………………………………………3
1.2课程设计目的………………………………………………………3
1.3题目名称……………………………………………………………3
1.4开发环境……………………………………………………………3
二、需求分析
2.1 基本要求 ………………………………………………………4
2.2 实现的方法 ……………………………………………………4
三、数据库设计
3.1 概念模型设计………………………………………………………4
3.2 逻辑数据库设计……………………………………………………5
3.3 数据库的物理设计…………………………………………………6
四、系统实现的具体功能和创建的各类代码…………………………………7
五、实训心得……………………………………………………………………10
一、概述
1.1 项目背景
图书管理系统是学院图书馆事务管理的一个重要内容,管理图书馆的各种信息,对学院图书馆来说是很重要的,这也是图书管理员的一个大问题。在这种情况下,一个可以规范化,自动化的图书管理系统对于图书馆来说显得至关重要。
最初的图书管理,都是靠人力完成,在图书馆规模比较小的时候,人力可以很好完成,但随着规模的增大,图书数量越来越多,这种管理的压力也越来越大,各种弊端显示出来。网络的到来给这带来了很大的便利,特别是对于图书管理员来说。
1.2课程设计目的
1. 熟悉大型数据库管理系统的结构与组成;
2. 熟悉数据库应用系统的设计方法和开发过程;
3. 掌握一种数据库管理系统SQL SERVER2005的应用技术;
4. 熟悉数据库设计工具的使用;
5. 熟悉数据库安全的相关知识和技术;
6. 熟悉数据库系统的管理和维护。
1.3题目及要求
题目:学院图书管理系统
图书管理员可以通过图书编号来查询到该图书的详细资料,并且查询出该书的借出还入情况,以及借书者的个人资料等,该系统为图书管理员的管理提供了方便快捷。
要求:
1. 充分了解软件设计的全过程。
2. 从开始的系统需求分析到最后的代码编写,都要有详细的计划,设计文档应按照课程设计的要求书写。
3. 系统中的数据表设计应合理、高效,尽量减少数据冗余。
4. 数据库及表要易于维护、方便升级。
5. 必须包括数据库、表、查询、数据录入、删除、更新、约束建立等代码每人提交一个实训报告和可行的运行代码。
1.4 设计环境
1)、操作系统:windows XP
2)、数据库系统:Microsoft SQL Server 2005企业版
二、需求分析
2.1 基本要求
按照题目的要求,要实现的基本功能有以下几条:
1)能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除;
2)能够实现对读者档案的查询和编辑管理;
3)能够进行罚款功能;
4)能够进行借阅历史的查询功能;
2.2 实现方法
按照要求,实现管理员的登录权限:
1)提供管理员对图书明细查询的功能;
2)管理员对图书等具有查询和修改权限;
3)按照借书的基本流程进行信息管理;
三、数据库设计
3.1 概念模型设计
3.2 逻辑数据库设计
针对图书管理信息系统的需求,通过对借书流程的分析,设计如下面的数据项和数据结构:
管理员信息表,包括的数据项有:(管理员编号、姓名、密码、);
学生信息表,包括的数据项有:(学号、姓名、班级、性别、年龄、住址);其中,学生学号设为主键约束;
图书信息表,包括的数据项有:(图书编号、图书名称、图书作者、图书价格、作者性别、图书语言、出版日期、出版社);其中图书编号设为主键约束;
借书信息表,包括的数据项有:(图书编号、借出时间、还书时间、学生编号);
图书更换信息表,包括的数据项有:(图书编号、损坏或丢失时间、更换时间);
3.4 数据库的物理设计
完成了数据库的逻辑设计之后,即可开始数据库的物理设计。基于以上数据库逻辑设计,考虑到程序设计的简易性及通用性,本图书管理信息系统采用的SQL Servier数据库,并在其下创建了5个数据表。
管理员----- management
学生----- stuinfo
图书-----bookinfo
借书记录-----lendinfo
图书更换-----change
四、系统实现的具体功能和创建的各类代码
create table management -----创建表
(
adno varchar (10), -----管理员编号
adname varchar(10)not null, -----管理员姓名
admima varchar(20)not null, -----登录密码
);
insert into management values('20030901','jak','adimi1');
insert into management values('20030902','jim','adimi2');
insert into management values('20030903','jay','adimi3');-----插入数据
select * from management -----查询语句
create table stuinfo -----创建表
(
stuno varchar(20)primary key not null -----学号
constraint chk_stuno -----check 约束语句
check(stuno like'2008090203[0-5][0-9]'),
stuname varchar(10)not null,
class varchar(20)not null,
stusex char(2)not null
constraint chk_stusex
check(stusex in('男','女')),
birthday datetime,
stuplace varchar(50)
)
insert into stuinfo values('200809020301','jack','stu2','男','1986-05-10','湖南');
insert into stuinfo values('200809020302','jack','stu2','男','1986-05-10','湖南');
insert into stuinfo values('200809020303','jack','stu2','男','1986-05-10','湖南');
insert into stuinfo values('200809020304','jack','stu2','男','1986-05-10','湖南');
update stuinfo
set stuname='meggie',stusex='女'
where stuno='200809020301' -----数据更新语句
delete stuinfo where stuno='200809020302' -----数据删除语句
select * from stuinfo
go
create table bookinfo
(
bookno varchar(20)not null primary key ,
bookname varchar(20)not null,
bookauthor varchar(20)not null,
bookprice varchar(10)not null,
atsex char(2)not null
constraint chk_atsex
check(atsex in('男','女')),
booklangguage varchar(10)not null,
bookday datetime,
bookplace varchar(10),
)
insert into bookinfo values('45233549451','《青年文摘》','舒婷','20','女','中文','1992-01-01','北京出版社');
insert into bookinfo values('45233549452','《我们的故事》','严倩','18','女','中文','1992-01-01',上海出版社');
insert into bookinfo values('45233549453','《生活》','邹薛标','18','男','中文','1992-01-01','北京出版社');
insert into bookinfo values('45233549454','《我们的故事》','严倩','18','女','中文','1992-01-01','北京');
insert into bookinfo values('45233549455','《我们的故事》','严倩','18','女','中文','1992-01-01','北京');
update bookinfo
set bookname='《青春印记》',
where stuno=''45233549455'
select * from bookinfo
go
create table lend
(
bookno varchar(20)not null ,
lendday datetime,
returnday datetime,
stuno varchar(12) not null,
);
Insert into lend
values('45233549451','1999-05-10','1999-05-20','200809020311');
insert into lend
values('45233549452','1999-05-10','1999-05-20','200809020311');
insert into lend
values('45233549453','1999-05-10','1999-05-20','200809020311');
insert into lend
values('45233549454','1999-05-10','1999-05-20','200809020311');
insert into lend
values('45233549455','1999-05-10','1999-05-20','200809020311');
select * from lend
create table change
(
bookno varchar(20)not null ,
losetime datetime,
changetime datetime,
);
insert into change values('45233549451','1999-05-10','1999-05-20');
insert into change values('45233549452','1999-05-10','1999-05-20');
insert into change values('45233549453','1999-05-10','1999-05-20');
insert into change values('45233549454','1999-05-10','1999-05-20');
insert into change values('45233549455','1999-05-10','1999-05-20');
select * from change
五、实训心得
这个星期是我们SQL Server 数据库管理课的实训,经过一个星期的实训,我对数据库这门课程有了更深的了解,简单的说下我对数据库的理解吧。我觉得它就是创建一些表格,然后再用一些语句根据他们之间的关系,把它们组合在一起,这周的实训我选择的是学院图书管理系统。首先我对创建该系统进行了项目背景与市场需求的分析,然后再开始动手做。
这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。
其实现在想想数据库学起来也是不难的,但有一点必须注意,那就是上课必须跟着老师的进度走,一定要注意听讲,勤做笔记.这样,你学起来就会得心应手,没什么困难。
总之,这是一门很值得学的课程,自己学过获益匪浅,就算自己将来不从事这个行业,但是至少对数据不再陌生,甚至还略知一二。呵呵…谢谢老师~!