数据库实验报告华北电力大学.docx

上传人:b****5 文档编号:8104739 上传时间:2023-01-28 格式:DOCX 页数:30 大小:1.64MB
下载 相关 举报
数据库实验报告华北电力大学.docx_第1页
第1页 / 共30页
数据库实验报告华北电力大学.docx_第2页
第2页 / 共30页
数据库实验报告华北电力大学.docx_第3页
第3页 / 共30页
数据库实验报告华北电力大学.docx_第4页
第4页 / 共30页
数据库实验报告华北电力大学.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

数据库实验报告华北电力大学.docx

《数据库实验报告华北电力大学.docx》由会员分享,可在线阅读,更多相关《数据库实验报告华北电力大学.docx(30页珍藏版)》请在冰豆网上搜索。

数据库实验报告华北电力大学.docx

数据库实验报告华北电力大学

 

课程设计报告

(2014--2015年度第2学期)

 

名称:

数据库原理课程设计

题目:

图书管理信息系统

院系:

计算机系

班级:

计科1203

学号:

学生姓名:

指导教师:

熊海军

设计周数:

1

成绩:

日期:

2015年6月25日

《数据库原理课程设计》课程设计

任务书

一、目的与要求

1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。

通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。

为后继课程和毕业设计打下良好基础。

2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。

3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。

是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。

二、主要内容

针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。

大致分为如下步骤:

1.理解系统的数据库需求,分析实体及实体间联系,画出E-R图:

1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。

2.设计实体之间的联系,包括联系类型和联系的属性。

最后画出完整的E-R图。

2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:

1)把E-R图转换为逻辑模式;

2)规范化设计。

使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。

3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。

4)用SQL语言完成数据库内模式的设计。

3.数据库权限的设计:

1)根据系统分析,完成授权操作;

2)了解学习收回权限的操作。

4.完成用户界面的设计,对重要数据进行加密。

5.连接数据库,用宿主语言实现系统所需的各种操作:

1)实现数据记录的录入、删除、查询和修改。

2)以视图的形式完成复杂查询,比如多表、多条件等。

三、进度计划

序号

设计(实验)内容

完成时间

备注

1

根据任务书完成信息模型(概念模型、逻辑模型、完整性、规范化)的设计,并基于选用的DBMS实现该信息模型,然后录入初始数据

2

根据任务书完成各种数据定义和数据操作,并保留所有SQL语句。

3

数据库权限设计,用户界面设计

4

用可视化开发工具环境开发学生选定的信息系统(C/S或者B/S模式)

5

系统的完善与验收

四、设计(实验)成果要求

1.在DBMS(如oracle,SQLServer2005/2008,DB2等)上完成完整的数据库的设计;

2.使用可视化开发平台完成信息系统,要求可以正确运行;

3.完成实验报告。

五、考核方式

1.在微机上检查数据库模式的设计、三大完整性的设计、关系属于几范式等;

2.在微机上检查系统的运行结果,要求学生阐述使用的相关技术;

3.实验报告的检查。

六、题目附录

1.学生信息管理信息系统

2.图书管理信息系统

3.物资管理信息系统

4.汽车销售管理信息系统

5.超市管理信息系统

6.通讯录管理信息系统

7.工资管理信息系统

8.酒店管理信息系统

9.小区物业管理信息系统

学生姓名:

指导教师:

年月日

一、课程设计(综合实验)的目的与要求

1.本实验是为计算机科学与技术等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。

通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。

为后继课程和毕业设计打下良好基础。

2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。

3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。

是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。

2、设计(实验)正文

1、系统功能图

系统详细描述与E-R图设计

一个借阅者可以借阅多种图书,每种图书可以被多个借阅者借阅(假设每种馆藏副本不止一本)。

每种图书有一个唯一的ID号作为标志,每一个借阅者和管理员有一个唯一的借阅者或管理员号,每一个图书对应一个图书类别,每一个图书类别有一个唯一的图书类别编号来定义不同的图书类别。

通过设置管理员和借阅者不同权限使管理员对图书信息和管理员信息具有增删改的权限,借阅者可以借阅图书。

 

根据用户需求,对象的类描述如下:

类描述

属性

事件

Reader

借阅者类

✧借阅者编号

✧借阅者姓名

✧借阅者登录密码

✧借阅者性别

✧借阅者的出生年月

✧修改密码

✧查询书籍

✧查询超期图书

Admin

管理员类

✧管理员登录账号

✧管理员姓名

✧管理员密码

✧图书的增加、删除和修改

✧借阅者的增加、删除和修改

✧图书类型的增加、删除和修改

Book

图书类

✧图书编号

✧图书名称

✧图书的状态

✧图书类型

✧图书作者

✧图书出版社

✧图书出版日期

✧图书的描述

✧按类型选出图书

✧按编号选出图书

✧按内容选出图书

✧按出版社选出图书

Type

图书类型类

✧类型编号

✧图书所属类型名称

✧图书类型的添加、删除

✧图书类型的修改

Borrow

借阅类

✧标识符

✧图书编号

✧借阅者编号

✧借书日期

✧预定图书

✧借阅图书

 

1.4根据以上分析设计出系统的E-R图如下:

 

 

2、系统逻辑结构设计

2.1根据以上E-R图得到系统逻辑模型如下:

借阅者(借阅者帐号,借阅者姓名,借阅者密码,借阅者性别,借阅者出生年月)

图书(图书编号,名称,作者,类别名称,状态,出版社,出版日期,描述)

管理员(管理员编号,管理员姓名,管理员密码)

类别(类别编号,类别名称)

借阅(借阅编号,借阅者帐号,图书编号,借阅日期)

说明:

以上关系中,下划线部分为对应关系的主码,加黑部分为外码,且所有属性均非空。

2.2满足三范式的证明:

关系名

依赖关系

证明

借阅者关系:

借阅者帐号->借阅者密码;

借阅者帐号->借阅者姓名;

借阅者编号->借阅者性别;

借阅者编号->借阅者出生年月。

不存在传递函数依赖,也不存在不完全函数依赖,属于3NF。

图书关系

图书编号->图书名称;

图书编号->作者;

图书编号->出版社;

图书编号->出版日期;

图书编号->图书状态

图书编号->图书类别;

图书编号->图书描述。

从关系的函数依赖集可以看出,关系中不存在传递函数依赖,也不存在不完全函数依赖,因此属于3NF。

管理员关系

管理员编号->管理员姓名;

管理员编号->管理员密码。

从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。

类别关系:

类别编号->类别名称。

该关系中只含有一个函数依赖,属于3NF。

借阅关系:

借阅编号->图书编号;

借阅编号->借阅者编号;

借阅编号->借阅日期。

从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。

 

2.3参照完整性

各个关系间的参照情况如下图所示:

2.4SQL语言创建各表

借阅者表:

CREATETABLETB_Reader

Rnumvarchar(20)primarykey,

Rnamevarchar(20)notnull,

Rpwdvarchar(20)notnull,

Rsexvarchar(20)notnull,

Rbirthvarchar(20)notnull

图书表:

CREATETABLETB_Book

Bnumvarchar(20)primarykey,

Bnamevarchar(20)notnull,

Bstateintnotnull,

Btypevarchar(20)notnull,

Bauthorvarchar(20)notnull,

Bpublishervarchar(20)notnull,

Bpublishvarchar(20),

Bdescribvarchar(20),

foreignkey(Btype)referencesTB_Type(typename)

管理员表:

CREATETABLETB_Admin

Anumvarchar(20)primarykey,

Anamevarchar(20)notnull,

Apwdvarchar(20)notnull,

借阅表:

CREATETABLETB_Borrow

Idintprimarykey,

Bnumvarchar(20)notnull,

Rnumvarchar(20)notnull,

Rtimevarchar(20)notnull,

Rtimevarchar(20),

foreignkey(Bnum)referencesBook(Bnum),

foreignkey(Rnum)referencesReader(Rnum),

ondeletecascade

onupdatecascade

权限表:

CREATETABLETB_Type

Typenumvarchar(20)primarykey,

Typenamevarchar(20)notnull,

建表结果:

ØTb_Admin管理员信息表

字段值

数据类型

约束

描述

Anum

Varchar(20)

PrimaryKey

管理员编号

Aname

Varchar(20)

NOTNULL

管理员姓名

Apwd

Varchar(20)

NOTNULL

管理员登录密码

ØTb_Reader借阅者信息表

字段值

数据类型

约束

描述

Rnum

Varchar(20)

PrimaryKey

借阅者编号

Rname

Varchar(20)

NOTNULL

借阅者姓名

Rpwd

Varchar(20)

NOTNULL

借阅者登录密码

Rsex

Varchar(20)

NOTNULL

借阅者性别

Rbirth

Varchar(20)

NOTNULL

借阅者的出生年月

ØTb_Book图书信息表

字段值

数据类型

约束

描述

Bnum

Varchar(20)

PrimaryKey

图书编号

Bname

Varchar(20)

NOTNULL

图书名称

Bstate

Int

默认是0

图书的借阅状态,借出是1

Btype

Varchar(20)

NOTNULL

图书类型

Bauthor

Varchar(20)

NOTNULL

图书作者

Bpublisher

Varchar(50)

NOTNULL

图书出版社

Bpublish

Varchar(20)

图书出版日期

Bdescrib

Varchar(200)

图书的描述

ØTb_Type图书类型信息表

字段值

数据类型

约束

描述

Typenum

Varchar(20)

PrimaryKey

类型编号

Typename

Varchar(20)

NOTNULL

图书所属类型名称

ØTb_Borrow借书/还书信息表

字段值

数据类型

约束

描述

Id

Int

PrimaryKey,自增

标识符

Bnum

Varchar(20)

NOTNULL

图书编号

Rnum

Varchar(20)

NOTNULL

借阅者编号

Btime

Varchar(20)

借书日期

Rtime

Varchar(20)

还书日期

 

2.5建成各表的截图

●Admin表

●Book表

●Borrow表

Reader表

●Type表

3.连接并操作数据库举例:

3.1连接数据库

xmlversion="1.0"encoding="utf-8"?

>

connectionString="DataSource=.;InitialCatalog=Library;PersistSecurityInfo=True;IntegratedSecurity=True;"

providerName="System.Data.SqlClient"/>

4.界面设计与运行结果

根据系统所需实现的功能及系统的用户类型不同,将界面设计如下:

◆登陆界面

 

◆借阅者操作界面

◆管理员操作界面

◆管理员管理界面

◆借阅者管理界面

 

◆图书管理界面

◆图书类别管理界面

三、课程设计总结或结论

通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据表的创建,学会了不少有关数据库开发过程中的知识。

同时增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,约束项的设置,使逻辑更严密。

此外在前台界面编写时自学了很多C#编程语言的知识,收获很大。

在实验过程中,遇到的问题很多,比如插入操作在前台页面获取的值为空,数据库拒绝了此插入操作,我的解决方法是将所有表的所有属性都改成了不能为空,避免了数据在页面和数据库之前传输操作时的错误.

在整个过程中,我上网和从书中查了不少资料,学以致用,自我创新,从学到用,从用又到学,不断修改,完善系统。

虽然不能达到老师要求那样的约束完善的图书馆管理系统,特别是对借阅者借阅图书部分的实现比较简单。

但在这短短的一周,也实现了较为完善的基本功能,体会到加强理论学习对完善系统会有很多帮助。

另外,在发现问题、分析问题和解决问题的过程中,学到了很多东西,最后感谢老师的悉心教导。

四、参考文献

[1]王珊,萨师煊.《数据库系统概论》高等教育出版社.

[2]宋雨.软件工程.北京:

中国电力出版社,2007

(2).

[3]宋雨,程晓荣,黄志强.计算机综合实践指导.北京:

清华大学出版社,2004(3).

[4]刘婕,张琳.C#.NET2.0+SQLServer动态网站开发从基础到实践.北京:

电子工业出版社,2007

(1).

[5]PressmanRS,郑人杰,马素霞.软件工程:

实践者的硏究方法[M].北京:

机械工业出版社,2011(10).

[6]李铭.C#高级编程.北京:

清华大学出版社,2010(11).

 

附录

ØAdmin表:

ØBook表:

ØBorrow表:

ØReader表:

ØType表:

 

Ø类图:

 

部分程序代码:

//MainLogin

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingBLL;

namespaceLibrary

{

publicpartialclassMainLogin:

Form

{

BLL.ReaderBLOrb=newReaderBLO();

AdminBLOab=newAdminBLO();

publicMainLogin()

{

InitializeComponent();

comboBox1.SelectedIndex=0;

}

privatevoidbt_login_Click(objectsender,EventArgse)

{

stringnum=tb_num.Text.Trim();

stringpwd=tb_pwd.Text.Trim();

intindex=comboBox1.SelectedIndex;

if(index==0)

{

boolflag=rb.IsReaderLogin(num,pwd);

if(flag)

{

Formadl=newReaderManage(num,pwd);

this.Hide();

adl.Show();

}

else

{

MessageBox.Show("账户和密码不匹配,请重新输入!

","警告",MessageBoxButtons.OK);

tb_num.Text="";

tb_pwd.Text="";

tb_num.Focus();

}

}

else

{

boolflag=ab.IsAdminLogin(num,pwd);

if(flag)

{

Formadl=newAdminManage();

this.Hide();

adl.Show();

}

else

{

MessageBox.Show("账户和密码不匹配,请重新输入!

","警告",MessageBoxButtons.OK);

tb_num.Text="";

tb_pwd.Text="";

tb_num.Focus();

}

}

}

privatevoidbt_exit_Click(objectsender,EventArgse)

{

Application.Exit();

}

privatevoidllb_login_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)

{

Formadl=newAdminLogin();

this.Hide();

adl.Show();

}

protectedoverridevoidOnClosing(CancelEventArgse)

{

//退出提示,真的要退出,才允许退出

if(MessageBox.Show(this,"确认退出?

","提示信息:

",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)

{

e.Cancel=false;

}

else

{

e.Cancel=true;

}

}

privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)

{

try

{

System.Diagnostics.Process.Start("");

}

catch

{

//访问链接失败

}

}

}

}

 

//AdminManage

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingBLL;

namespaceLibrary

{

publicpartialclassAdminManage:

Form

{

BookBLObb=newBookBLO();

AdminBLOab=newAdminBLO();

publicAdminManage()

{

InitializeComponent();

bt_TopManage.Enabled=false;

}

//分别按图书编号、图书名、出版社查找图书

privatevoidbt_sure_Click(objectsender,EventArgse)

{

stringnum=tb_num.Text.Trim();

DataTabledt=bb.SearchBorrowBookByNum(num);

if(dt.Rows.Count>0)

{

dataGridView1.DataSource=dt;

bt_TopManage.Enabled=true;

tb_num.Enabled=false;

}

else

{

MessageBox.Show("未找到相应编号的图书!

","警告",MessageBoxButtons.OK);

}

}

privatevoidbt_TopManage_Click(objectsender,EventArgse)

{

stringnum=tb_num.Text.Trim();

boolb=ab.LogoutBookByBnum(num);

if(b)

{

MessageBox.Show("更新图书状态成功!

","提示",MessageBoxButtons.OK);

dataGridView1.DataSource=bb.SearchBorrowBookByNum(num);

tb_num.Enabled=true;

tb_num.Te

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1