数据库实习报告:图书管理系统

湖南通信职业技术学院

数据库课程实训报告

设计题目:学院图书管理系统

学生姓名:严倩

    别:计算机系

    业:计算机管理

    级:计管091

    号:200902030150

指导教师: 邹薛标

20##121

目录

一、概述

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 数据库管理课的实训,经过一个星期的实训,我对数据库这门课程有了更深的了解,简单的说下我对数据库的理解吧。我觉得它就是创建一些表格,然后再用一些语句根据他们之间的关系,把它们组合在一起,这周的实训我选择的是学院图书管理系统。首先我对创建该系统进行了项目背景与市场需求的分析,然后再开始动手做。

这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。

其实现在想想数据库学起来也是不难的,但有一点必须注意,那就是上课必须跟着老师的进度走,一定要注意听讲,勤做笔记.这样,你学起来就会得心应手,没什么困难。

     总之,这是一门很值得学的课程,自己学过获益匪浅,就算自己将来不从事这个行业,但是至少对数据不再陌生,甚至还略知一二。呵呵…谢谢老师~!

 

第二篇:大型数据库 图书管理系统实习报告

目录

一、摘要

1.1项目背景……………………………………………………………2

1.2课程设计目的………………………………………………………2

1.3题目名称……………………………………………………………2

1.4开发环境……………………………………………………………2

二、需求分析

2.1 基本要求   ………………………………………………………3

2.2 实现的方法   ……………………………………………………3

三、数据库设计

3.1 数据库概念结构设计………………………………………………3

3.2数据库逻辑结构设计………………………………………………4

3.3 数据库物理设计……………………………………………………4

四、数据流图及程序结构框图…………………………………………………6

五、程序源代码及其说明………………………………………………………10

六、总结…………………………………………………………………………13

一、摘要

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 2000

二、需求分析

2.1 基本要求

 按照题目的要求,要实现的基本功能有以下几条:

1)能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除;
2)能够实现对读者档案的查询和编辑管理;
3)能够进行罚款功能;
4)能够进行借阅历史的查询功能;
2.2 实现方法

按照要求,实现管理员的登录权限:

1)提供管理员对图书明细查询的功能;

2)管理员对图书等具有查询和修改权限;

3)按照借书的基本流程进行信息管理;

三、数据库设计

  3.1 数据库概念结构设计

3.2数据库逻辑结构设计

针对图书管理信息系统的需求,通过对借书流程的分析,设计如下面的数据项和数据结构:

注册信息表,包括的数据项有:(管理员类别、注册编号、密码、);

学生信息表,包括的数据项有:(编号、学号、姓名、班级、性别、年龄);

图书信息表,包括的数据项有:(图书编号图书名称、图书类别、图书价格、作者性别、图书语言、出版日期、出版社);

借书信息表,包括的数据项有:(图书编号、借出时间、还书时间、学生编号);

3.3数据库物理设计

完成了数据库的逻辑设计之后,即可开始数据库的物理设计。基于以上数据库逻辑设计,考虑到程序设计的简易性及通用性,本图书管理信息系统采用的SQL Servier数据库,并在其下创建了以下数据表。

四、数据流图及程序结构框图

五、程序源代码及其说明

菜单界面代码:


Private Sub m_about_Click()

    frmAbout.Show

End Sub

Private Sub m_book_Click()

    frmBookManage.Show

End Sub

Private Sub m_bookquery_Click()

    frmBookQuery.Show

End Sub

Private Sub m_exit_Click()

    Unload Me

End Sub

Private Sub m_lend_Click()

    frmLoanManage.Show

End Sub

Private Sub m_lend_report_Click()

    dsrBorrowManageReport.Show

End Sub

Private Sub m_lendp_Click()

    dsrLibraryRankReport.Show

End Sub

Private Sub m_punish_Click()

    frmPunishManage.Show

End Sub

Private Sub m_punish_report_Click()

    dsrFineManageReport.Show

End Sub

Private Sub m_reader_Click()

    frmReaderManage.Show

End Sub

Private Sub m_readerquery_Click()

    frmReaderQuery.Show

End Sub

Private Sub m_rigister_Click()

    RegisterNewUsers.Show

End Sub

Private Sub MDIForm_Load()

    If OA = True Then m_rigister.Enabled = False

End Sub


用户登陆界面代码:


Option Explicit

Private Sub CmdCancel_Click()

    Unload Me

End Sub

Private Sub CmdOk_Click()

    Dim miCount As Integer              '用于记录输入密码次数

    Dim str As String

    str = "select 密码,管理员类别 from 管理员用户表 where 用户名 = '" & Trim(txtUserName.Text) & "'"

    Adodc1.RecordSource = str

    Adodc1.Refresh

    If Adodc1.Recordset.EOF = True Then

        MsgBox "用户名错误,请重新输入", vbExclamation, "警告"

        txtUserName.Text = ""

        txtUserName.SetFocus

    Else

        If Trim(Adodc1.Recordset.Fields("密码")) = Trim(txtPassword.Text) And (OrdinaryUser.Value = True Or SuperUser.Value = True) Then

        If OrdinaryUser.Value = True Then

            OA = True

        Else

            SA = True

        End If

        frmmdi.Show

        Unload Me

     Else

        MsgBox "密码或管理员类别错误,请重新输入", vbExclamation, "警告"

        txtPassword.Text = ""

        txtPassword.SetFocus

      End If

    End If

    miCount = miCount + 1

    If miCount >= 3Then Unload Me

End Sub


读者管理信息界面代码:


Private Sub CmdAdd_Click()

    Adodc1.Recordset.AddNew

    CmdAdd.Enabled = False

    CmdDel.Enabled = False

    CmdOk.Enabled = True

    CmdCancel.Enabled = True

    MsgBox "添加读者信息成功"

End Sub

Private Sub CmdCancel_Click()

    Adodc1.Refresh

    CmdAdd.Enabled = True

    CmdDel.Enabled = True

    CmdOk.Enabled = False

    CmdCancel.Enabled = False

End Sub

Private Sub CmdDel_Click()

    X = MsgBox("确实要删除当前记录吗?", vbYesNo + vbQuestion)

    If X = vbYes Then

    Adodc1.Recordset.Delete

    Adodc1.Recordset.MoveNext

    If Adodc1.Recordset.EOF = True Then

    Adodc1.Recordset.MoveLast

    End If

    Else

    Adodc1.Refresh

    End If

End Sub

Private Sub Cmdexit_Click()

    Unload Me

End Sub

Private Sub CmdFirst_Click()

    Adodc1.Recordset.MoveFirst

    CmdFirst.Enabled = False

    CmdPre.Enabled = False

    CmdNext.Enabled = True

    CmdLast.Enabled = True

End Sub

Private Sub CmdLast_Click()

    Adodc1.Recordset.MoveLast

    CmdFirst.Enabled = True

    CmdPre.Enabled = True

    CmdNext.Enabled = False

    CmdLast.Enabled = False

End Sub

Private Sub CmdNext_Click()

    Adodc1.Recordset.MoveNext

    CmdFirst.Enabled = True

    CmdPre.Enabled = True

    If Adodc1.Recordset.EOF = True Then

    Adodc1.Recordset.MoveLast

    CmdLast.Enabled = False

    CmdNext.Enabled = False

    End If    End Sub

Private Sub CmdOk_Click()

    Adodc1.Recordset.Update

    CmdAdd.Enabled = True

    CmdDel.Enabled = True

    CmdOk.Enabled = False

    CmdCancel.Enabled = False

End Sub

Private Sub CmdPre_Click()

   Adodc1.Recordset.MovePrevious

    CmdNext.Enabled = True

    CmdLast.Enabled = True

    If Adodc1.Recordset.BOF = True Then

    Adodc1.Recordset.MoveFirst

    CmdFirst.Enabled = False

    CmdPre.Enabled = False

    End If

End Sub

Private Sub Form_Load()

    CmdFirst.Enabled = False

    CmdPre.Enabled = False

    CmdNext.Enabled = True

    CmdLast.Enabled = True

    CmdAdd.Enabled = True

    CmdDel.Enabled = True

    CmdOk.Enabled = False

    CmdCancel.Enabled = False

    CmdFirst.FontSize = 12

    CmdPre.FontSize = 12

    CmdNext.FontSize = 12

    CmdLast.FontSize = 12

    CmdAdd.FontSize = 12

    CmdDel.FontSize = 12

    CmdOk.FontSize = 12

    CmdCancel.FontSize = 12

    Cmdexit.FontSize = 12

    Label1.FontSize = 12

    Label2.FontSize = 12

    Label3.FontSize = 12

    Label4.FontSize = 12

    Text1.FontSize = 12

    Text2.FontSize = 12

    Text3.FontSize = 12

    Text4.FontSize = 12

End Sub


图书信息查询界面代码:


Private Sub Cmdexit_Click()

    Unload Me

End Sub

Private Sub cmdquery_Click()

    Dim str As String

    str = "select* from 图书表 where 图书表." & Combo1.Text & " like '" & Trim(Text1.Text) & "%'"

    Adodc1.RecordSource = str

    Adodc1.Refresh

End Sub

Private Sub Combo1_Change()

End Sub

Private Sub Form_Load()

    Combo1.AddItem "借阅状态"

    Combo1.AddItem "借阅次数"

    Combo1.AddItem "出版社"

    Combo1.AddItem "类别"

    Combo1.AddItem "书名"

    Combo1.Text = "借阅状态"

    Text1.Text = ""

    Label1.FontSize = 12

    Label2.FontSize = 12

    Combo1.FontSize = 12

    Text1.FontSize = 12

    cmdquery.FontSize = 12

    cmdexit.FontSize = 12

End Sub


新用户注册界面代码:


Dim i As Integer

Private Sub CmdCancle_Click()

    Unload Me

End Sub

Private Sub CmdEmpty_Click()

    Text1.Text = ""

    Text2.Text = ""

    Text3.Text = ""

End Sub

Private Sub CmdExamine_Click()

    Dim str As String

    Dim pcount As Integer

    str = "select 用户名 from 管理员用户表"

    Adodc1.RecordSource = str

    Adodc1.Refresh

    If Adodc1.Recordset.BOF = False Then   pcount = Adodc1.Recordset.RecordCount

    End If

For i = 1 To pcount

     If

Trim(Adodc1.Recordset.Fields("用户名")) = Trim(Text1.Text) Then

            MsgBox "警告,该用户名已被注册!"

            Text1.SetFocus    Exit For

        End If

       Adodc1.Recordset.MoveNext

        Next i

    If i > pcount Then MsgBox "恭喜你,该用户名可用!": Text2.SetFocus

End Sub

Private Sub CmdRegister_Click()

    Dim str As String

    str = "select* from 管理员用户表"

    Adodc1.RecordSource = str

    Adodc1.Refresh

    If Adodc1.Recordset.BOF = False Then

        pcount = Adodc1.Recordset.RecordCount

    End If

    If i<Adodc1.Recordset.PageCount Then

        MsgBox "对不起,你还没有检查你的用户名是否可用!"

    End If

    If i > Adodc1.Recordset.PageCount And Trim(Text2.Text) = Trim(Text3.Text) Then

        Adodc1.Recordset.AddNew

        Adodc1.Recordset.Fields("用户名") = Trim(Text1.Text)

        Adodc1.Recordset.Fields("管理员类别") = Combo1.Text

        Adodc1.Recordset.Fields("密码") = Trim(Text2.Text)

        Adodc1.Recordset.Update

        MsgBox "恭喜,成功注册新用户!"

    Else     MsgBox "对不起,两次输入密码不一致!"

        Text2.Text = ""

        Text3.Text = ""

        Text2.SetFocus

    End If

End Sub

Private Sub Form_Load()

    Combo1.AddItem "一般管理员"

    Combo1.AddItem "超级管理员"

    Combo1.Text = "一般管理员"

End Sub


六、总结

这两周是我们SQL Server 数据库的实习,经过这次的实习,我对数据库这门课程有了更深的了解,简单的说下我对数据库的理解吧。我觉得它就是创建一些表格,然后再用一些语句根据他们之间的关系,把它们组合在一起,这次的实习我选择的是学院图书管理系统。首先我对创建该系统进行了项目背景与市场需求的分析,然后再开始动手做。

这次我们实习的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实习中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。

在这次的实习中,我也遇到了不少困难。在结合具体的图书管理应用系统和SQL Sever2000,我遇到的困难有很多,比如如何把数据库连接到系统中,如何耐心地往表中输入数据,如何应用触发器,如何熟练掌握设计界面的方法….

其实现在想想数据库学起来也是不难的,熟能生巧嘛,不懂的多问问老师,多自己动手练练,渐渐的就会了。但有一点必须注意,那就是上课必须跟着老师的进度走,一定要注意听讲,勤做笔记.这样,你学起来就会得心应手,没什么困难。

      总之,在这次的实习中我受益匪浅。我们信管专业学的就是编程,系统开发这一方面的知识,这次的实习虽然我们最终做出来的系统还不是很成熟,但这至少勾起了我们对它的兴趣,从而在以后的学习过程中更有学习的动力,这样对以后工作也起到了很大的帮助作用。最后感谢老师们在我们的学习过程中给予我们的教导和帮助。希望我们以后在自己的专业的领域中能踏出一片天地!

相关推荐