数据库实验报告_第1页
数据库实验报告_第2页
数据库实验报告_第3页
数据库实验报告_第4页
数据库实验报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告名 称:数据库原理课程设计 题 目: 图书管理信息系统 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 第十九周 成 绩: 日期:2014年7月10日数据库原理课程设计课程设计任 务 书一、 目的与要求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/2010,DB2等)上完成完整的数据库的设计;2 使用可视化开发平台完成信息系统,要求可以正确运行;3 完成实验报告。五、 考核方式1 在微机上检查数据库模式的设计、三大完整性的设计、关系属于几范式等;2 在微机上检查系统的运行结果,要求学生阐述使用的相关技术;3 实验报告的检查。六、 题目附录1 图书管理信息系统2 物资管理信息系统3 汽车销售管理信息系统4 超市管理信息系统5 通讯录管理信息系统6 工资管理信息系统7 酒店管理信息系统8 小区物业管理信息系统9 大学生个人消费管理系统10 学生成绩管理系统学生姓名: 指导教师: 年 月 日一、课程设计(综合实验)的目的与要求1. 本实验是为软件工程、网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。为后继课程和毕业设计打下良好基础。2. 通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。3. 通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。2、 设计(实验)正文1、 实验内容:图书管理信息系统2、 系统分析2.1 需求分析图书管理信息系统是根据用户对图书管进行借阅归还、管理员对图书进行增删改的需要来设计开发的,目标是给用户和管理员提供更加快速、便利的平台。2.1.1读者对功能的需求登陆:登录系统,进入读者界面。查询图书:可以查询图书馆的书籍信息。借阅图书:可借阅图书馆可借的书归还图书:归还已借书籍。 退出:退出当前页面至登陆界面。2.1.2管理员对功能的需求登陆:登录系统,进入管理员界面。查询图书:可以查询图书馆的书籍信息。添加图书:添加新图书信息。修改图书:修改现有图书信息。删除图书:对现有图书信息进行删除。退出:退出当前页面至登陆界面。2.2 系统功能描述2.2.1用户登录由于此系统设计不同的用户级别,因此要对不同登录用户有不同的用户名和密码。2.2.2查询书籍读者与管理员登陆系统后,都可以通过图书编号查询书籍信息,包括图书编号,图书名称,图书作者,图书类别,出版社,图书状态。2.2.3借阅图书读者登录系统后,可以通过图书编号查看到书籍的状态,然后对图书进行借阅,借阅成功后图书信息更改为“已借”。2.2.4归还图书读者登录系统后,可以通过图书编号查看到书籍的状态,然后对图书进行归还,归还成功后图书信息更改为“可借”。2.2.5添加图书管理员登录系统后,可以添加新的图书,包括图书编号,图书名称,图书作者,图书类别,出版社,图书状态。2.2.6修改图书管理员登录后,可以根据图书编号对图书进行修改,包括图书名称,图书作者,图书类别,出版社,图书状态。2.2.7 删除图书管理员登录后,可以通过图书编号查询到图书信息,然后对图书进行删除,再次查询则查找不到此书。部门管理员登录后,可以选择数据库,并可以对所有的请假信息进行备份和恢复,生成以.bak结尾的备份文件。2.2.8安全退出退出本页面,返回至登录页面。2.3功能模块划分在了解了系统的需求分析和功能描述后,可以将图书馆管理系统划分为以下模块:(1)用户登录管理:用户登录系统,并划分用户的管理权限。(2)图书借阅管理:查看图书信息,借阅图书。(3)图书归还管理:查看图书信息,归还图书(4)图书添加管理:添加图书信息。(5)图书修改管理:根据图书编号修改图书信息。(6)图书删除管理:删除图书信息。 (7)注销管理:退出当前页面至登录界面。2.4系统流程分析员工请假管理系统在应用时首先需要进行登录操作,根据登录用户的权限实现不同的操作,系统总体使用流程图如下所示:图书借阅归还管理读者用户登录 图书查询图书添加管理图书修改管理图书删除管理安全退出管理管理员2.4.1图书借阅归还管理图书管理系统提供了读者借阅和归还书籍的功能,其功能流程图如图书借阅归还管理输入图书编号查询借阅或归还图书修改图书状态2.4.2图书添加管理图书管理系统提供了管理员添加图书的功能,其功能流程图如下: 图书添加管理填写图书信息信息添加添加图书记录2.4.3图书修改管理图书修改管理的主要功能是管理员根据图书编号对图书信息进行修改,更新图书馆的书籍信息。其功能流程图如下:图书修改管理图书信息记录图书信息修改输入新的图书信息取消修改2.4.4图书删除功能图书删除功能的主要功能是管理员对图书信息进行删除操作。其功能流程图如下:图书删除管理图书信息记录选择要删除的图书取消删除2.4.5安全退出管理安全退出管理是用户退出本次登录并转到登录页面的功能。3、数据库设计:该系统使用的是SQL Server2008 R2数据库管理系统。数据库服务器安装的位置为本机,数据库名称为图书管理系统 。3.1数据库分析和设计3.1.1 读者登录E-R实体图读者登录的实体具有读者编号、读者密码2个属性,读者登录E-R实体图如下图所示。读者信息读者编号读者密码3.1.2管理员信息E-R实体图管理员信息的实体具有管理员编号管理员密码2个属性,管理员信息的E-R实体图如下图所示。管理员信息管理员编号管理员密码3.1.3图书信息E-R实体图图书信息的实体具有图书编号,图书名称,图书作者,图书类别,出版社,图书状态。6个属性,部门管理员信息的E-R实体图如下图所示。图书编号图书名称图书类型图书信息图书作者出版社图书状态3.2数据表的创建根据E-R实体图的内容,可以创建图书管理系统中的各个数据表,在此系统中共涉及到3个数据表的应用,分别如下。3.2.1读者登录表读者登录表用于存放登录图书管理系统中的读者登录信息,读者登录表是记录读者的登录信息必不可少的部分,表中各个字段的数据类型、大小以及简短描述如下表1所示。表1读者表字段名数据类型大小字段描述是否允许空读者IDnchar10读者编号,主键否密码nchar50读者密码是3.2.2管理员信息表管理员信息表用于存放图书管理系统中所有管理云的信息,管理员信息表示记录管理员登陆信息的表,表中各个字段的数据类型、大小以及简短描述如下表2所示。表2管理员表字段名数据类型大小字段描述是否允许空管理员IDnchar10管理员编号,主键否密码nchar50管理员密码是3.2.3图书信息表图书信息表用于存放图书管理系统中所有图书的信息。表中各个字段的数据类型、大小以及简短描述如下表3所示。 表3 图书信息表(EmployeeInfo)字段名数据类型大小字段描述是否允许空图书编号nchar10图书编号,主键否图书名称nchar10图书名称否图书作者nchar10图书作者否图书类别nchar10图书类别否出版社nchar10图书出版社否图书状态nchar10图书状态否3.3数据表关系图在图书管理系统中各数据表中不存在外键,每个表都有自己独立的主键。3.4创建存储过程 在SQL数据库中直接采用新建表。 4 SQL数据库和visual studio 2010的连接存在sql server2008 R2数据库里的图书管理系统要和visual studio 2010连接起来,以便让绘制在VS里前台界面可以调用数据库里的数据。 新建一个名为SQLHelper的类,用于vs与数据库的连接,其中编写对数据库的查询,增删改等操作的函数,代码如下using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace 图书 public class SQLHelper private SqlConnection conn = null; /到一个数据库的链接 private SqlCommand cmd = null;/用于C# 编程时对数据库进行操作的类名。C# 中位于SqlClient中的一个类。表示要对SQLSERVER数据库进行操作。 private SqlDataReader sdr = null;/提供一种从 SQL Server 数据库读取行的只进流的方式 public SQLHelper() string connStr =server=JSJ1SQLEXPRESS;User Id=sa;Pwd=;DataBase=图书管理系统; conn = new SqlConnection(connStr);/创建连接对象 private SqlConnection GetConn() if (conn.State = ConnectionState.Closed) conn.Open();/打开连接 return conn; / / 执行不带参数的增删改SQL语句或存储过程 / / 增删改SQL语句或存储过程 / 命令类型 / public int ExecuteNonQuery(string cmdText, CommandType ct) int res; try cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; res = cmd.ExecuteNonQuery(); catch (Exception ex) throw ex; finally if (conn.State = ConnectionState.Open) conn.Close(); return res; / / 执行带参数的增删改SQL语句或存储过程 / / 增删改SQL语句或存储过程 / 命令类型 / public int ExecuteNonQuery(string cmdText, SqlParameter paras, CommandType ct) int res; using (cmd = new SqlCommand(cmdText, GetConn() cmd.CommandType = ct; cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); return res; / / 执行查询SQL语句或存储过程 / / 查询SQL语句或存储过程 / 命令类型 / public DataTable ExecuteQuery(string cmdText, CommandType ct) DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection) dt.Load(sdr); return dt; / / 执行带参数的查询SQL语句或存储过程 / / 查询SQL语句或存储过程 / 参数集合 / 命令类型 / public DataTable ExecuteQuery(string cmdText, SqlParameter paras, CommandType ct) DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection) dt.Load(sdr); return dt; 在使用这些函数时,再创建类对象直接调用图书的添加与修改namespace 图书 public class addDAO SQLHelper helper = new SQLHelper(); public int insertbook(string id, string name,string author,string type,string press,string state)/添加 int flag = 0; string sql = insert into 图书信息表 (图书编号,图书名,图书作者,类别,出版社,图书状态)values(id,name,author,type,press,state); SqlParameter paras = new SqlParameter new SqlParameter(id,id), new SqlParameter(name,name), new SqlParameter(author,author), new SqlParameter(type,type ), new SqlParameter(press,press), new SqlParameter(state,state), ; flag = helper.ExecuteNonQuery(sql,paras, CommandType.Text); return flag; public int updatebook(string id, string name, string author, string type, string press, string state)/修改 int flag = 0; string sql = update 图书信息表 set 图书名=name,图书作者=author,类别=type,出版社=press,图书状态=state where 图书编号=id; SqlParameter paras = new SqlParameter new SqlParameter(id,id), new SqlParameter(name,name), new SqlParameter(author,author), new SqlParameter(type,type ), new SqlParameter(press,press), new SqlParameter(state,state), ; flag = helper.ExecuteNonQuery(sql, paras, CommandType.Text); return flag; 管理员与读者登陆信息查询public class ReaderDAO SQLHelper helper=new SQLHelper(); public DataTable selectByName(string name) string sql = select * from 读者表 where 读者ID= + name + ; return helper.ExecuteQuery(sql, CommandType.Text); class adminDAO SQLHelper helper = new SQLHelper(); public DataTable selectByName(string name) string sql = select * from 管理员表 where 管理员ID= + name + ; return helper.ExecuteQuery(sql, CommandType.Text); 根据图书编号查询图书public class ChaxunDAO SQLHelper helper = new SQLHelper(); public DataTable selectById(string id) string sql = select * from 图书信息表 where 图书编号=+id+; return helper.ExecuteQuery(sql, CommandType.Text); 根据图书编号删除图书public class deleteDAO SQLHelper helper = new SQLHelper(); public int deletebook(string id)/删除 int flag = 0; string sql = delete from 图书信息表 where 图书编号=id; SqlParameter paras = new SqlParameter new SqlParameter(id,id) ; flag = helper.ExecuteNonQuery(sql, paras, CommandType.Text); return flag; internal DataTable selectById(string id) throw new NotImplementedException(); 图书的借阅和归还public class jyghDAO SQLHelper helper = new SQLHelper(); public int jieyuebook(string id)/借阅 int flag = 0; string sql = update 图书信息表 set 图书状态=已借 where 图书编号=id; SqlParameter paras = new SqlParameter new SqlParameter(id,id), ; flag = helper.ExecuteNonQuery(sql, paras, CommandType.Text); return flag; public int guihuanbook(string id)/归还 int flag = 0; string sql = update 图书信息表 set 图书状态=可借 where 图书编号=id; SqlParameter paras = new SqlParameter new SqlParameter(id,id), ; flag = helper.ExecuteNonQuery(sql, paras, CommandType.Text); return flag; 5、系统界面和代码的实现5.1 图书管理系统首页图书管理系统页面如下图所示,作为系统首页,登陆页面具有自动导航的功能,不同用户登陆,根据其不同的身份,将进入不同的系统功能页,读者页面和管理员页面。5.1.1定义命名空间手动添加using System.Data.SqlClient;否则出错。using 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 System.Data.SqlClient;5.1.2定义登录按钮事件:在下面的代码中定义了用户按下“登陆”按钮后所执行的操作。主要实现了用户身份的验证和根据用户身份,分配不同的界面。定义登录按钮的代码如下:private void button1_Click(object sender, EventArgs e) string name = textBox1.Text; string pass = textBox2.Text; if(radioButton1.Checked) DataTable dt=new ReaderDAO().selectByName(name); if (dt.Rows.Count = 0) MessageBox.Show(不存在此用户); else if (dt.Rows0密码.ToString().Trim() != pass) MessageBox.Show(密码错误); else 读者界面 d = new 读者界面(); d.Show(); this.Visible = false; else DataTable st = new adminDAO().selectByName(name); if (st.Rows.Count = 0) MessageBox.Show(不存在此用户); else if (st.Rows0密码.ToString().Trim() != pass) MessageBox.Show(密码错误); else 管理员界面 d = new 管理员界面(); d.Show(); this.Visible = false; 5.1.3定义退出按钮下面的代码定义了用户按下“退出”按钮后的所执行的操作,主要实现了关闭当前页面退出系统的功能。private void button2_Click(object sender, EventArgs e) this.Close(); 5.2读者界面读者界面如下图所示,在该页面中输入图书编号进行图书信息查询,再根据图书状态进行借阅或归还。5.2.1定义“查询”按钮事件下面的代码中定义了按下“查询”按钮后所执行的操作。实现了输入图书编号后,在数据库中查找相应的图书信息,再显示在dataGridView1.DataSource中,定义代码如下:private void button4_Click(object sender, EventArgs e) if (textBox1.Text.Trim() = ) MessageBox.Show(请输入查询条件); return; dataGridView1.DataSource = null; string id = textBox1.Text.Trim(); DataTable dt = new ChaxunDAO().selectById(id); if (dt.Rows.Count = 0) MessageBox.Show(查不到该书籍); else dataGridView1.DataSource = new ChaxunDAO().selectById(id); 5.2.2定义“借阅”按钮事件点击借阅按钮后,图书状态会更改为“已借”,提示“借阅成功”,下次不能再借阅,代码如下:private void button1_Click(object sender, EventArgs e) string id = textBox1.Text.Trim(); int b = new jyghDAO().jieyuebook(id); MessageBox.Show(借阅成功); 5.2.3定义“归还”按钮事件点击归还按钮后,图书状态会更改为“可借借”,提示“归还成功”,下次可再借阅,代码如下:private void button2_Click(object sender, EventArgs e) string id = textBox1.Text.Trim(); int b = new jyghDAO().guihuanbook(id); MessageBox.Show(归还成功); 5.2.4定义“退出”按钮点击退出按钮后,退出当前页面,返回登陆页面重新登录,代码如下: private void button3_Click(object sender, EventArgs e) Form1 t = new Form1(); t.Visible = true; this.Close(); 5.3管理员界面 管理员界面如下图所示,登陆后可输入图书编号进行查询,对图书进行修改删除等操作。5.3.1定义“添加或修改”按钮事件 点击添加或修改按钮后进入添加页面如下,写入图书信息添加或修改。 修改按钮代码如下:private void button3_Click(object sender, EventArgs e) string id = textBox1.Text.Trim(); string 名称 = textBox2.Text.Trim(); string 作者 = textBox3.Text.Trim(); string 类别 = textBox4.Text.Trim(); string 出版社 = textBox5.Text.Trim(); string 状态 = textBox6.Text.Trim(); int b = new addDAO().updatebook(id,名称,作者,类别,出版社,状态); MessageBox.Show(修改成功); 管理员界面 d=new 管理员界面(); d.Show(); this.Close(); 添加按钮代码如下: pivate void button1_Click(object sender, EventArgs e) string id = textBox1.Text.Trim(); string 名称 = textBox2.Text.Trim(); string 作者 = textBox3.Text.Trim(); string 类别 = textBox4.Text.Trim(); string 出版社 = textBox5.Text.Trim(); string 状态 = textBox6.Text.Trim(); int b = new addDAO().insertbook(id,名称,作者,类别,出版社,状态); MessageBox.Show(添加成功); 管理员界面 d = new 管理员界面(); d.Show(); this.Close(); 退出后返回管理员界面:private void button2_Click(object sender, EventArgs e) this.Close(); 管理员界面 d

温馨提示

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

评论

0/150

提交评论