版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理与应用教程实验报告数据库分析与设计-图书管理系统一、需求说明要实现一个简化得图书管理系统,在此图书管理系统中只涉及学生信息、借阅信息与管理者信息得管理。此系统要求能够记住书籍得基本信息、学生得信息与管理者得信息。该系统得业务要求为:一名学生可以在不同得日期多次借阅同一本书。一名学生可以同时借阅多本不同得图书。一本书可以在不同得时间借给不同得学生.一名学生不能在同一天对同一本书借阅多次.一名管理员可以同时管理多本图书.该系统得基本信息包括:学生信息:姓名,学号,学院,专业,年级。图书信息:图书名称,图书编号,出版社名称,出版日期,作者,就是否可借.管理员信息:管理员姓名,管理员编号。除
2、上述要求外,该系统还需产生如下报表:学生借阅图书信息表:学号,图书编号,图书名称,借阅日期,应归还日期。图书管理表:管理日期,管理员编号,管理员姓名。二、数据库结构设计2、1概念结构设计概念结构设计就是根据需求分析得结果产生概念结构设计得E-R模型。由于这个系统比较简单,因此这里采用自顶向下得设计方法。自顶向下设计得关键就是首先要确定系统得核心活动。所谓核心活动就就是系统中得其她活动都要围绕这个活动展开或与此活动密切相关确定了核心活动之后,系统就有了可扩展得余地。对于这个图书管理系统,其核心活动就是图书,学生与图书之间就是通过学生借阅图书发生联系得,管理员与图书之间就是通过管理员管理图书发生联
3、系得。至此,此系统包含得实体有:图书:用于描述课程得基本信息,用图书编号标识学生:用于描述学生得基本信息,用学号标识。管理员:用于描述管理员得基本信息,用管理员编号标识。由于一名学生可以借阅多本图书,并且一本书可以在不同时间借给不同得学生.因此,学生与图书之间就是多对多得联系.又由于一本图书可以由多名管理员管理,而且一名管理员可以管理多本图书。因此,管理员与图书之间也就是多对多得联系.其基本ER模型如图1所示:根据需求分析得结果,该ER模型模型中个实体所包含得属性如下:学生:姓名,学号,学院,专业,年级。图书:图书名称,图书编号,出版社名称,出版日期,作者,就是否可借.管理员:管理员姓名,管理
4、员编号。各联系本身应具有得属性为:借阅:学号,图书编号,图书名称,借阅日期,应归还日期.管理:管理日期,管理员编号,管理员姓名。2、2逻辑结果设计这个ER模型转换出得关系模式如下,其中主码用下划线标识:学生(空匕姓名,学院,专业,年级)图书(图书编号、图书名称,出版社名称,出版日期,作者,就是否可借)管理员(管理员编号.管理员姓名)借阅(学号,图书标号,图书名称,借阅日期,应归还日期),其中图书编号为引用“图书”关系模式得外码;学号为引用“学生”关系模式得外码.管理(管理日期,管理员编号,管理员姓名),其中管理员编号为引用“管理员”关系模式得外码。(1)确定各管就是模式就是否属于第三范式经过分
5、析发现,“学生”、“图书”、“管理员”、“借阅”与“管理”5个关系模式中,都不存在部分依赖与传递依赖关系,因此都属于第三范式2)确定信息得完整性该教学管理系统要产生:学生借阅图书信息、图书管理2个报表,分别分析如下:“学生借阅图书信息表”包括学号、图书编号、图书名称、借阅日期、应归还日期。其中“学号”可由“学生"关系模式得到,“图书编号"、“图书名称”、“借阅日期”、“应归还日期”可由“借阅”关系模式得到,因此可以满足学生借阅图书信息表得要求。“图书管理表”包括管理日期、管理员编号、管理员姓名。其中“管理日期”可由“管理”关系模式得到,“管理员编号”,“管理员姓名”可由“管
6、理员”关系模式得到。因此,所有关系模式满足所有报表得信息要求。至此,关系模式设计完毕。下面给出创建这些关系表得SQL语句示例,其中得数据类型可根据实际情况调整,为方便理解,表名、列名均用中文表示。CREATETABLE学生表(学号char(10)PRIMARYKEY,姓名char(10)NOTNULL,学院chiar(20)NOTNULL,专业chiar(20)NOTNULL,年级char(8)NOTNULL)CREATETABLE图书表(图书编号char(20)PRIMARYKEY,图书名称char(20)NOTNULL,出版社名称char(20)NOTNULL,出版日期datetimeNO
7、TNULL,作者char(10)NOTNULL)CREATETABLE管理员表(管理员编号char(10)PRIMARYKEY,管理员姓名char(10)NOTNULL)CREATETABLE借阅表(学号char(10)NOTNULL,姓名char(10)NOTNULL,图书编号char(20)NOTNULL,图书名称char(20)NOTNULL,借阅日期datetimeNOTNULL,应归还日期datetimeNOTNULL,PRIMARYKEY(学号,图书编号),FOREIGNKEY(学号)REFERENCES学生表(学号),FOREIGNKEY(图书编号)REFERENCES图书表(图
8、书编号)CREATETABLE管理表(管理日期datetimeNOTNULL,管理员编号char(10)NOTNULL,管理员姓名char(10)NOTNULL,PRIMARYKEY(管理日期,管理员编号),FOREIGNKEY(管理员编号)REFERENCES管理员表(管理员编号)2、2、2设计外模式(1)学生借阅图书信息表我们将该报表直接用查询语句得形式生成,将动态查询条件作为查询语句中得数据筛选条件。例如,假设要为大三学生生成借阅图书情况得报表,则语句如下:SELECT学号,姓名,图书名称FROM借阅表WHERE年级=大三(2)图书管理表该表可以查询出在哪一天由哪位管理员借出了哪些图书,
9、因此,直接用查询语句生成。SELECT图书编号,图书名称,管理日期,管理员编号,管理员姓名FROM借阅表JOIN管理表ON借阅表、借阅日期=管理表、管理日期三、数据库行为设计对于数据库应用系统来说,最常用得功能就是安全控制功能,数据得增、删、改、查功能以及生成报表得功能。本系统也应包括这些基本得操作。3、 1安全控件任何数据库应用系统都需要安全控件功能,这个图书管理系统也不例外。假设将系统得用户分为如下几类:图书馆系统管理人员:具有系统得全部操作权限。教务部门:具有对学生基本信息、图书信息与管理员信息得维护权学生:具有对图书信息得查询权。在实现时,可将每一类用户定义为一个角色,这样在授权时只需
10、对角色授权,而无需对每个具体得用户授权。3、2数据操作功能数据操作功能包括对这些数据得录入、删除、修改功能.具体如下:(1)数据录入包括对这5张表得录入。只有具有相应权限得用户才能录入相应表中得数据。( 2)数据删除包括对这5张表得删除.只有具有相应权限得用户才能删除相应表中得数据。数据得删除要注意表之间得关联关系。比如在删除“学生表”中得数据之前,应先删除该学生在“借阅表"中得信息,然后再学生表中删除该学生,以保证不违反参照完整性约束。另外,在实际执行删除操作之前应该提醒用户就是否真得要删除数据,以免发生误操作.( 3)数据修改当某些数据发生变化或某些数据录入不正确时,应该允许用户
11、对数据库中得数据进行修改,修改数据得操作一般就是先根据一定得条件查询出要修改得记录然后在对其中得某些记录进行修改,修改完成后再回到数据库中同数据得录入与删除一样,只有具有相应权限得用户才能修改相应表中得数据.( 4)数据查询在数据库应用系统中,数据查询就是最常用得功能.数据查询应根据用户提出得查询条件进行,在设计系统时应首先征求用户得查询需求,然后根据这些需求整理出系统应具有得查询功能。一般允许所有使用数据库得人都具有查询数据得权限。本系统提出得查询要求有:根据学号、学院、专业等信息查询学生得基本信息。根据图书编号查询图书得基本信息。根据管理员编号查询管理员得基本信息。统计各个年级学生借书得总
12、数量。等等。3、3应用程序实现3、31语言及DBMS得选择制作这5个表得数据库使用DBMS得就是ACCESS,然后用VB语言编写程序代码,实现程序得各个功能。其中用到了ADO数据控件与DataGrid控件。3、32应用程序得编写(1)学生表VB代码PrivateSubmand1_Click()'"添加"命令按钮AdodcStudent、Recordset、AddNew'使”添加与”删除"按钮成为不可用状态mand1、Enabled=Falsemand3、Enabled=Fa1se使”更新"按钮成为可用状态mand4、Enabled=Tru
13、e清空文本框中显示得内容Text1>Text=""Text2、Text=""Text3、Text=""Text4、Text="Text5、Text=""EndSubPrivateSubmand2_Click()'"退出"命令按钮EndEndSubPrivateSubmand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBox("确实要删除此行记录吗?",vbExclamation+vbYes
14、No+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除AdodcStudent、Recordset、DeleteAdodcStudent>Recordset、MoveNextIfAdodcStudent、Recordset、EOF=TrueThenAdodeStudent、Recordset、MoveLastEndIfEndIfEndSubPrivateSubmand4_Click()'"更新"命令按钮将文本框中得当前值写入结果集中相应字段中AdodcStudent、Recordset、Fie1ds(&q
15、uot;学号")=Trim(Text1>Text)AdodcStudent、Recordset、Fields("姓名")=Trim(Text2、Text)AdodcStudent、Recordset、Fie1ds("学院")=Trim(Text3、Text)AdodcStudent、Recordset、Fie1ds("专业")=Trim(Text4>Text)AdodcStudent、Recordset、Fie1ds("年级")=Trim(Text5、Text)使更新生效AdodcStuden
16、t、Recordset、Update使"添加"与"删除”按钮成为可用状态mandl、Enabled=Truemand3、Enabled=TrueEndSubPrivateSubmand5Click()'"上一条"命令按钮AdodcStudent、Recordset、MovePreviousEndSubPrivateSubmand6_Click()'"下一条"命令按钮AdodcStudent、Rec0rdset、MoveNextEndSub(2)图书表VB代码PrivateSubmand2_Click()
17、9;"添加"命令按钮AdodcBook、Recordset、AddNew'使"添加”与”删除"按钮成为不可用状态mand2、Enabled=Falsemand3、Enabled=False使更新”与"取消按钮成为可用状态mand4、Enabled=Truemand5、Enabled=True清空文本框中显示得内容Text1、Text="”Text2、Text=""Text3、Text="Text4、Text="”Text5、Text="”EndSubPrivateSubmand
18、3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBox("确定要删除此行记录?",vbExclamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除AdodcBook、Recordset、DeleteAdodcBook、Recordset、MoveNextIfAdodcBook、Recordset>EOF=TrueThenAdodcBook、Recordset、MoveLastEndIfEndIfEndSubPrivateSub
19、mand4_C1ick()'"更新"命令按钮'将文本框中得当前值写入结果集中相应字段中AdodeBook、Recordset、Fie1ds("图书编号")=Trim(Text1、Text)AdodcBook、Recordset、Fields("图书名称")=Trim(Text2、Text)AdodcBook、RecordsetFie1ds("出版社名称")=Trim(Text3>Text)AdodcBook、Recordset、Fie1ds("出版日期")=Trim(Tex
20、t4、Text)AdodcBook、Recordset、Fie1ds("作者")=Trim(Text5、Text)使更新生效AdodcBook、Recordset、Update使”添加"与删除"按钮成为可用状态mand2、Enabled=Truemand3、Enab1ed=True'使"取消按钮成为不可用状态mand5、Enabled=FalseEndSubPrivateSubmand5_Click()mand2、Enab1ed=Truemand3、Enabled=Truemand5、Enabled=FaiseEndSubPrivate
21、Submand6_Click()'”上一条”命令按钮AdodcBook、Recordset、MovePreviousEndSubPrivateSubmand7_Click()'"下一条"命令按钮AdodcBook、Recordset、MoveNextEndSub(3)管理员表VB代码PrivateSubmand1_C1ick()/"退出"命令按钮EndEndSubPrivateSubmand2_C1ick()'"添加"命令按钮AdodcManager、Recordset、AddNew'使添加"
22、与"删除”按钮成为不可用状态mand2、Enabled=Falsemand3、Enabled=Fa1se'使"更新"按钮成为可用状态mand4、Enabled=True'清空文本框中现实得内容Text1、Text="”Text2、Text=EndSubPrivateSubmand3_Click()'"删除"命令按钮DimresAsIntegerres=MsgBox("确实要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提示用户If
23、res=vbYesThen'如确实要删除AdodcManager、Recordset、DeleteAdodcManager、Recordset、MoveNextIfAdodcManager、Recordset、EOF=TrueThenAdodcManager、Recordset、MoveLastEndIfEndIfEndSubPrivateSubmand4_Click()'"更新"命令按钮将文本框中得当前值写入结果集中相应字段中AdodcManager、Recordset、Fields("管理员编号")=Trim(Textl、Text)A
24、dodcManager、Recordset、Fie1ds("管理员姓名")=Trim(Text2、Text)'使更新生效AdodcManager、Recordset、Update使”添加”与"删除按钮成为可用状态mand2、Enabled=Truemand3、Enabled=TrueEndSubPrivateSubmand5_C1ick()'"上一条"命令按钮AdodcManager、Recordset、MovePreviousEndSubPrivateSubmand6_Click()'"下一条"命令
25、按钮AdodcManager、Recordset、MoveNextEndSub(4)借阅表VB代码PrivateSubmand1_C1ick()'"退出"命令按钮EndEndSubPrivateSubmand2_Click()'"上一条"命令按钮AdodcBorrown、Recordset、MovePreviousEndSubPrivateSubmand3C1ick()'"下一条”命令按钮AdodcBorrown、Recordset、MoveNextEndSubPrivateSubmand4_C1ick()'&q
26、uot;添加"命令按钮AdodcBorrown、Recordset、AddNew使添加”与”删除”按钮成为不可用状态mand4、Enab1ed=Fa1semand5>Enabled=False使”更新按钮成为可用状态mand6、Enabled=True'清空文本框中现实得内容Text1>Text=""Text2、Text=Text3、Text=""Text4、Text="Text5、Text="”Text6、Text=""EndSubPrivateSubmand5_Click()
27、9;"删除"命令按钮DimresAsIntegerres=MsgBox("确实要删除此行记录吗?",vbExclamation+vbYesNo+vbDefau1tButton2)'提示用户Ifres=vbYesThen'如确实要删除AdodcBorrown、Recordset、DeleteAdodcBorrown、Recordset、MoveNextIfAdodcBorrown、Recordset、EOF=TrueThenAdodcBorrown、Recordset、MoveLastEndIfEndIfEndSubPrivateSubma
28、nd6_Click()/“更新"命令按钮'将文本框中得当前值写入结果集中相应字段中AdodcBorrown、Recordset、Fie1ds("学号")=Trim(Textl、Text)AdodcBorrown、Recordset、Fields,姓名")=Trim(Text2、Text)AdodcBorrown、Recordset、Fie1ds("图书编号")=Trim(Text3、Text)AdodcBorrown、Recordset、Fields("图书名称")=Trim(Text4、Text)Adod
29、cBorrown>Recordset、Fie1ds("借阅日期")=Trim(Text5、Text)AdodcBorrown、Recordset、Fields("应归还日期")=Trim(Text6、Text)使更新生效AdodcBorrown、Recordset、Update使添加”与”删除”按钮成为可用状态mand4、Enabled=Truemand5>Enabled=TrueEndSub(5)管理表VB代码PrivateSubmand1Click()/"退出"命令按钮EndEndSubPrivateSubmand2_
30、Click()'"添加"命令按钮AdodcManagement、Recordset、AddNew'使"添加”与"删除”按钮成为不可用状态mand2、Enabled=Falsemand3、Enabled=Fa1se使”更新"按钮成为可用状态mand4、Enabled=True清空文本框中现实得内容Text1、Text="”Text2>Text=""Text3、Text=""EndSubPrivateSubmand3_Click()'"删除"命令按钮
31、DimresAsIntegerres=MsgBox("确实要删除此行记录吗?",vbExclamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如确实要删除AdodcManagement、Recordset、DeleteAdodcManagement、Recordset、MoveNextIfAdodcManagement、Recordset、EOF=TrueThenAdodcManagement、Recordset、MoveLastEndIfEndIfEndSubPrivateSubmand4_C1ic
32、k()'"更新"命令按钮'将文本框中得当前值写入结果集中相应字段中AdodcManagement、Recordset、Fields("管理日期")=Trim(Text1、Text)AdodcManagement、Recordset、Fields("管理员编号")=Trim(Text2>Text)AdodcManagement、Recordset、Fields("管理员姓名")=Trim(Text3、Text)'使更新生效AdodcManagement、Recordset、Update使
33、"添加”与删除”按钮成为可用状态mand2、Enabled=Truemand3、Enabled=TrueEndSubPrivateSubmand5Click()'"上一条"命令按钮AdodcManggement、Recordset、MovePreviousEndSubPrivateSubmand6_Click()'"下一条”命令按钮AdodcManagement、Recordset、MoveNextEndSub3、33应用程序得使用说明为数据库中5个表设计得VB工程中,其基本类型相似,由于涉及到参照完整性约束,因此这里将重点说明“学生表&
34、quot;与“借阅表"得使用说明,“图书表"与“管理员表”参照“学生表”,“管理表参照“借阅表”。(1)学生表使用说明启动VB程序,打开“学生表”得工程文件,并运行该程序1)单击“上一条” “下一条”按钮,移动指针将上下移动到相应得条目可以在文本框中输入数据,2)单击“添加M按钮,窗体上得文本框控件将清空,数据将同时显示在“学生表”得最后一行条目中。3)单击“更新”按钮,数据将完整地添加到“学生表”中4)要删除更新得数据时,先将移动指针指向要删除得条目,然后单击“删除”按钮,新添加得数据将从“学生表”中删除5)单击“退出”按钮,结束程序代码,退出运行界面。(2)图书表使用说明启动VB程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版瓷砖行业知识产权保护合同
- 2024技术开发无限连带担保协议
- 2024年高标准房产证办理服务委托合同3篇
- 2025版新能源光伏设备采购与并网服务合同3篇
- 2025年咸阳货运从业资格证考试内容
- 2024石材加工厂财务管理与审计的合同协议
- 2024年银行间金融衍生品交易合同
- 2024年高端装备制造项目投资合作协议
- 2025年城市综合体停车场特许经营合同3篇
- 2024独家代理协议标准格式版B版
- GB/T 1094.7-2024电力变压器第7部分:油浸式电力变压器负载导则
- 型滤池计算说明书
- 格力离心机技术服务手册
- 水泥搅拌桩计算(完美)
- 注塑机成型工艺参数表
- 旭化成离子交换膜的介绍
- JJRB轻钢龙骨隔墙施工方案要点
- 有关DPM的问题
- 石油石化用化学剂产品质量认可实施细则
- 快递证明模板
- 木地板木基层隐蔽验收记录.doc
评论
0/150
提交评论