数据库实验报告华北电力大学.doc_第1页
数据库实验报告华北电力大学.doc_第2页
数据库实验报告华北电力大学.doc_第3页
数据库实验报告华北电力大学.doc_第4页
数据库实验报告华北电力大学.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告(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,SQL Server 2005/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图如下:姓名帐号密码管理员11更新管理帐号nn密码 n1借阅借阅者姓名图书作者借阅编号状态借阅日期出版社出生年月性别 名称编号描述类别出版日期 2、 系统逻辑结构设计2.1根据以上E-R图得到系统逻辑模型如下:借阅者(借阅者帐号,借阅者姓名,借阅者密码,借阅者性别,借阅者出生年月)图书(图书编号,名称,作者,类别名称,状态,出版社,出版日期,描述)管理员(管理员编号,管理员姓名,管理员密码)类别(类别编号,类别名称)借阅(借阅编号,借阅者帐号,图书编号,借阅日期)说明:以上关系中,下划线部分为对应关系的主码,加黑部分为外码,且所有属性均非空。 2.2满足三范式的证明:关系名依赖关系证明借阅者关系:借阅者帐号- 借阅者密码;借阅者帐号- 借阅者姓名;借阅者编号- 借阅者性别;借阅者编号- 借阅者出生年月。不存在传递函数依赖,也不存在不完全函数依赖,属于3NF。图书关系图书编号- 图书名称;图书编号- 作者;图书编号- 出版社;图书编号- 出版日期;图书编号- 图书状态图书编号- 图书类别;图书编号- 图书描述。 从关系的函数依赖集可以看出,关系中不存在传递函数依赖,也不存在不完全函数依赖,因此属于3NF。管理员关系管理员编号 -管理员姓名;管理员编号 -管理员密码。 从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。类别关系:类别编号- 类别名称。 该关系中只含有一个函数依赖,属于3NF。借阅关系:借阅编号- 图书编号;借阅编号- 借阅者编号;借阅编号- 借阅日期。 从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。 2.3参照完整性各个关系间的参照情况如下图所示: 2.4 SQL语言创建各表借阅者表:CREATE TABLE TB_Reader( Rnum varchar(20) primary key, Rname varchar(20) not null, Rpwd varchar(20) not null, Rsex varchar(20) not null, Rbirth varchar(20) not null)图书表:CREATE TABLE TB_Book( Bnum varchar(20) primary key, Bname varchar(20) not null, Bstate int not null, Btype varchar(20) not null, Bauthor varchar(20) not null, Bpublisher varchar(20) not null, Bpublish varchar(20), Bdescrib varchar(20) ,foreign key(Btype) references TB_Type(typename)管理员表:CREATE TABLE TB_Admin( Anum varchar(20) primary key, Aname varchar(20) not null, Apwd varchar(20) not null,)借阅表:CREATE TABLE TB_Borrow( Id int primary key, Bnum varchar(20) not null, Rnum varchar(20) not null, Rtime varchar(20) not null, Rtime varchar(20), foreign key(Bnum) references Book(Bnum), foreign key(Rnum) references Reader(Rnum), on delete cascade on update cascade)权限表:CREATE TABLE TB_Type( Typenum varchar(20) primary key, Typename varchar(20) not null,)建表结果: Tb_Admin 管理员信息表字段值数据类型约束描述AnumVarchar(20)Primary Key管理员编号AnameVarchar(20)NOT NULL管理员姓名ApwdVarchar(20)NOT NULL管理员登录密码 Tb_Reader 借阅者信息表字段值数据类型约束描述RnumVarchar(20)Primary Key借阅者编号RnameVarchar(20)NOT NULL借阅者姓名RpwdVarchar(20)NOT NULL借阅者登录密码RsexVarchar(20)NOT NULL借阅者性别RbirthVarchar(20)NOT NULL借阅者的出生年月 Tb_Book 图书信息表字段值数据类型约束描述BnumVarchar(20)Primary Key图书编号BnameVarchar(20)NOT NULL图书名称BstateInt默认是0图书的借阅状态,借出是1BtypeVarchar(20)NOT NULL图书类型BauthorVarchar(20)NOT NULL图书作者BpublisherVarchar(50)NOT NULL图书出版社BpublishVarchar(20)图书出版日期BdescribVarchar(200)图书的描述 Tb_Type 图书类型信息表字段值数据类型约束描述TypenumVarchar(20)Primary Key类型编号TypenameVarchar(20)NOT NULL图书所属类型名称 Tb_Borrow 借书/还书信息表字段值数据类型约束描述IdIntPrimary Key, 自增标识符BnumVarchar(20)NOT NULL图书编号RnumVarchar(20)NOT NULL借阅者编号BtimeVarchar(20)借书日期RtimeVarchar(20)还书日期2.5建成各表的截图l Admin表l Book表l Borrow表l Reader表l Type表3. 连接并操作数据库举例:3.1连接数据库 4.界面设计与运行结果 根据系统所需实现的功能及系统的用户类型不同,将界面设计如下:u 登陆界面u 借阅者操作界面u 管理员操作界面u 管理员管理界面u 借阅者管理界面u 图书管理界面u 图书类别管理界面三、课程设计总结或结论通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据表的创建,学会了不少有关数据库开发过程中的知识。同时增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,约束项的设置,使逻辑更严密。此外在前台界面编写时自学了很多C#编程语言的知识,收获很大。在实验过程中,遇到的问题很多,比如插入操作在前台页面获取的值为空,数据库拒绝了此插入操作,我的解决方法是将所有表的所有属性都改成了不能为空,避免了数据在页面和数据库之前传输操作时的错误.在整个过程中,我上网和从书中查了不少资料,学以致用,自我创新,从学到用,从用又到学,不断修改,完善系统。虽然不能达到老师要求那样的约束完善的图书馆管理系统,特别是对借阅者借阅图书部分的实现比较简单。但在这短短的一周,也实现了较为完善的基本功能,体会到加强理论学习对完善系统会有很多帮助。另外,在发现问题、分析问题和解决问题的过程中,学到了很多东西,最后感谢老师的悉心教导。 四、参考文献1 王珊,萨师煊.数据库系统概论 高等教育出版社.2 宋雨. 软件工程. 北京:中国电力出版社,2007(2).3 宋雨,程晓荣,黄志强. 计算机综合实践指导. 北京:清华大学出版社,2004(3).4 刘婕,张琳. C#.NET2.0+SQL Server动态网站开发从基础到实践. 北京:电子工业出版社,2007(1).5 Pressman RS,郑人杰,马素霞. 软件工程: 实践者的硏究方法M. 北京:机械工业出版社,2011(10).6 李铭. C#高级编程. 北京:清华大学出版社,2010(11). 附录 Admin表: Book表: Borrow表: Reader表: Type表: 类图:部分程序代码:/MainLoginusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using BLL;namespace Library public partial class MainLogin : Form BLL.ReaderBLO rb = new ReaderBLO(); AdminBLO ab = new AdminBLO(); public MainLogin() InitializeComponent(); comboBox1.SelectedIndex = 0; private void bt_login_Click(object sender, EventArgs e) string num=tb_num.Text.Trim(); string pwd=tb_pwd.Text.Trim(); int index = comboBox1.SelectedIndex; if (index=0) bool flag = rb.IsReaderLogin(num, pwd); if (flag) Form adl = new ReaderManage(num, pwd); this.Hide(); adl.Show(); else MessageBox.Show(账户和密码不匹配,请重新输入!, 警告, MessageBoxButtons.OK); tb_num.Text = ; tb_pwd.Text = ; tb_num.Focus(); else bool flag = ab.IsAdminLogin(num, pwd); if (flag) Form adl = new AdminManage(); this.Hide(); adl.Show(); else MessageBox.Show(账户和密码不匹配,请重新输入!, 警告, MessageBoxButtons.OK); tb_num.Text = ; tb_pwd.Text = ; tb_num.Focus(); private void bt_exit_Click(object sender, EventArgs e) Application.Exit(); private void llb_login_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) Form adl = new AdminLogin(); this.Hide(); adl.Show(); protected override void OnClosing(CancelEventArgs e) /退出提示,真的要退出,才允许退出 if (MessageBox.Show(this, 确认退出?, 提示信息:, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) e.Cancel = false; else e.Cancel = true; private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) try System.Diagnostics.Process.Start(/389604229/profile); catch /访问链接失败 /AdminManageusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using BLL;namespace Library public partial class AdminManage : Form BookBLO bb = new BookBLO(); AdminBLO ab = new AdminBLO(); public AdminManage() InitializeComponent(); bt_TopManage.Enabled = false; /分别按图书编号、图书名、出版社查找图书 private void bt_sure_Click(object sender, EventArgs e) string num = tb_num.Text.Trim(); DataTable dt = bb.SearchBorrowBookByNum(num); if (dt.Rows.Count0) dataGridView1.DataSource = dt; bt_TopManage.Enabled = true; tb_num.Enabled = false; else MessageBox.Show(未找到相应编号的图书!, 警告, MessageBoxButtons.OK); private void bt_TopManage_Click(object sender, EventArgs e) string num= tb_num.Text.Trim(); bool b = ab.LogoutBookByBnum(num); if (b) MessageBox.Show(更新图书状态成功!, 提示, MessageBoxButtons.OK); dataGridView1.DataSource=bb.SearchBorrowBookByNum(num); tb_num.Enabled = true; tb_num.Text = ; else MessageBox.Show(更新图书状态未成功!, 提示, MessageBoxButtons.OK); private void 类别管理ToolStripMenuItem_Click(object sender, EventArgs e) Form adl = new TypeManage(); /this.Hide(); adl.Show(); private void 图书管理ToolStripMenuItem_Click(object sender, EventArgs e) /图书信息添加页面 Form adl = new ManageBook(); /this.Hide(); adl.Show(); private void 借阅者管理ToolStripMenuItem_Click(object sender, EventArgs e) Form adl = new ManageReader(); /this.Hide(); adl.Show(); private void 管理员管理ToolStripMenuItem_Click(object sender, EventArgs e) /添加管理员页面 Form adl = new ManageAdmin(); /this.Hide(); adl.Show(); private void 退出登录ToolStripMenuItem1_Click(object sender, EventArgs e) MainLogin lo = new MainLogin(); lo.Show(); this.Visible = false; /ReaderManageusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using BLL;namespace Library public partial class ReaderManage : Form BookBLO bb = new BookBLO(); ReaderBLO rb = new ReaderBLO(); private string rNum; private string rPsw; public ReaderManage() InitializeComponent(); comboBox1.SelectedIndex = 0; public ReaderManage(string num, string psw) InitializeComponent(); comboBox1.SelectedIndex = 0; rNum = num; rPsw = psw; dataGridView1.AllowUserToResizeColumns = false; dataGridView1.AllowUserToResizeRows = false; dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; private void bt_sure_Click(object sender, EventArgs e)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论