《数据库系统概论》课程设计论文

合集下载

数据库课程设计论文

数据库课程设计论文

目录一绪论 (1)1.1 课题背景及现状 (1)1.2 开发工具介绍 (1)二需求分析 (2)三概要设计 (5)四逻辑设计 (8)五详细设计 (10)六测试结果 (21)七小结 (21)参考文献 (24)一绪论1.1 课题背景及现状软件定义:仓库管理系统在当今时代,随着社会,技术,尤其是计算机的发展,人工智能已经成为时代的需求,而纯人工已经成为过去。

在这样一个背景下!仓库的存储作为一个时代的产物,信息化,智能化也成为必须了。

同时开发一个仓库管理系统也变得紧迫的需要。

仓库管理系统用于对企业出入库的日常管理,是一套高效的信息管理系统。

它能够为企业提供先进的业务信息管理解决方案,改进传统的工作方式,提高企业所经营物品的供、销、存的运转效率,缩短管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。

软件定义:从客户的需求开始,从对客户的需求的分析,到数据流程图完成,然后,概念设计,E-R图的设计,接下来,将E-R图转换成关系模型,当然这个关系模型要满足一定的范式地要求,这样要是根据实际的情况决定的!再接下来,设计数据库,进行详细的设计,根据客户的需求选择是做成c/s,还是b/s形式!!最后是软件的测试和维护。

这个整个的过程是一个完整的流程,这个过程被称为软件开发。

成品为软件。

1.2 开发工具介绍这次项目主要是使用Eclipse和Microsoft SQL Server2000。

Sqlsever2000 数据开发工具!Sqlsever2000是微软公司开发的智能的,大型的实用型的数据库设计工具!目前在市场上大部分公司用的是oracle,bb2等数据开发工具。

因为我们课堂上介绍的是Sqlsever2000,我就选用了它。

Eclipse是开放源代码的项目,其本身是用Java语言编写。

Eclipse是我们在学习Java中使用过的工具,它的功能比较完整!乍一看起来,Eclipse的界面有点象JBuilder,但实际操作进程中会发现它更象IVJ,毕竟开发Eclipse的主导用量是开发IVJ的原班人马。

浅析高校《数据库系统概论》的教学方法论文

浅析高校《数据库系统概论》的教学方法论文

浅析高校《数据库系统概论》的教学方法论文浅析高校《数据库系统概论》的教学方法论文论文关键词:数据库;学习需求;教学方法论文摘要:该文从《数据库系统概论》教学实践出发,在教学设计中结合学生的学习实际、突出学习需求,在教学方法上采用多种教学方法,抓住学生急于应用的心理进行教学,提高了学生的学习效率,取得了较好的教学效果。

《数据库系统概论》是高校计算机专业的必修专业课,同时它也是一门理论和实践性都较强的学科,传统的“黑板上讲理论,机房里练操作”的授课模式很难激发学生的学习兴趣,教学效果不佳。

往往一学期教学结束,和学生谈起本课程的学习,学生只是记住几个概念,至于数据库的技术没有多少能深入理解,更别提能应用于实际。

数据库的应用虽然十分广泛,到处都是数据库,银行里、商店里、网络上等等。

但是因为它是藏在“后台”的,不像多媒体、WWW等等,既作为对象,又作为外壳,直接呈现在人们面前,所以要简明扼要、深入浅出、生活化地诠释它,显然有更高的难度。

本人在《数据库系统概论》教学实践中体会到,不能只看中理论,觉得学生只要知道是怎么一回事就可以了,需要学生亲身去参与项目的开发,去经历基本真实的项目制作,才能掌握知识。

因此,在实际的教学中,采用任务驱动的案例教学法,配合直观的教学媒体,并布置学生的课下任务,多管齐下,让学生更全面的了解、使用数据库技术。

1教学方法概述对于计算机专业的课程来讲,教学方法大致有以下几种:1.1讲授法这种方法能够使学生在短时间内获得大量系统的科学知识。

但运用不好,学生学习的主动性、积极性不易发挥,就会出现教师满堂灌、学生被动听的局面。

在讲述数据库概念的时候,常采用这种方法。

1.2讨论法这种方法是在教师的指导下,学生以小组为单位,围绕教材的中心问题,各抒己见,通过讨论或辩论活动,获得知识或巩固知识。

在该课程的教学中,采用一两次,如并发事务的处理。

在讨论中引导学生围绕题目发表意见,然后在结束时,概括讨论的情况,使学生获得了正确的观点和系统的知识。

数据库课程设计 银行储蓄管理系统

数据库课程设计 银行储蓄管理系统

《数据库系统概论》课程设计报告设计题目:银行储蓄管理系统姓名:学号:班级:设计起止时间:需求分析:在对软件工程相关知识学习之后,我们对设计软件有了基本的认识和一些应用技能。

在数据库的课程设计中,我们计划做一个小型的银行储蓄管理系统,包括了基本的存取转,和管理员对日常工作的管理功能。

功能设计:(1).客户:包括存款,取款,转账,查询余额,查看流水,密码修改功能(2).管理员:新增用户,删除用户,查看用户,员工绩效,VIP用户判别,储备金预警分析。

3.功能流程图:银行管理系统登陆管理员客户销户查看员工绩效VIP判别资金储备金判别开户存款取款转账余额显示查看流水修改密码详细设计:1.E-R图模型operatecustombankstaffCphoneCtimeCpassCRmoneyCnameCidBidSphoneSnameSidSpassSItimeBname BmoneyBid1112.根据E-R 图设计关系表 (1).银行信息表(bank )字段名 字段类型及长度 允许空 主键说明 Bid nchar (9) no PK 银行号 Bname nchar (20) no银行名 Bmoney numeric (20,3) no 银行余额(2).客户信息表(custom )字段名 字段类型及长度 允许空主键说明 Cid nchar (9) noPK 客户ID Cname nchar (10) no 客户姓名 Cpass nchar (10) no 密码 Ctime nchar (20) no注册时间Bid nchar (9) no 所在银行行号 外码(Bank (Bid )) Crmoney numeric (10,3) no账户余额 Cphone nchar (11) no 客户电话 (3).员工(管理员)表(staff ) 字段名 字段类型及长度 允许空主键 说明 Sid nchar (9) noPK 员工ID Sname nchar (10) no 员工姓名 Spass nchar (10) no 登陆密码 SItime nchar (20) no入行时间Sphone nchar(11) no 联系电话(4).流水信息表字段名字段类型及长度允许空主键说明Oid nchar(9) no PK 流水号Cid nchar(9) no 客户ID 外码(Custom(Cid))Bid nchar(9) no 银行ID 外码(Bank(Bid))Sid nchar(9) no 员工ID 外码(Staff(Sid))Otype smallint no 操作类型Otime nchar(20) no 操作时间Omoney numeric(10,3) yes 交易金额OBmoney numeric(10,3) yes 上次余额OAmoney numeric(10,3) yes 账户余额三个实体:bank,staff,custom一个联系:operate关系图:SQL语句:/*建表*/create table Bank(Bid nchar(9) primary key,Bname nchar(20) not null,Bmoney numeric(20,3) not null)create table Custom( Cid nchar(9) not null,Cname nchar(10) not null,Cpass nchar(10) not null,Ctype smallint not null,Ctime nchar(20) not null,Ccode nchar(18) not null,Bid nchar(9) not null,Crmoney numeric(10,3) not null,Cphone nchar(11) not null,primary key(Cid),foreign key(Bid) references Bank(Bid) /*在客户表中以Bank表的主码作为一个外键,并对他进行级联更新*/on update cascade,)create table Staff(Sid nchar(9) primary key, /*在列级定义主码*/Sname nchar(10) not null,Spass nchar(10) not null,SItime nchar(20) not null,Sphone nchar(11) not null)create table Operate(Oid nchar(9) not null,Cid nchar(9) not null,Bid nchar(9) not null,Sid nchar(9) not null,Otype nchar(10) not null,Otime nchar(20) not null,Oflag smallint not null,Omoney numeric(10,3),OBmoney numeric(10,3),OAmoney numeric(10,3),primary key(Oid,Cid,Sid),foreign key (Cid) references Custom(Cid) /*以用户表主码为一个外键,进行级联删除*/on delete cascade,foreign key(Sid) references Staff(Sid) /*以员工表的主码作为外键,当删除引起冲突的时候,拒绝删除*/on delete no action,foreign key (Bid) references Bank(Bid)on update cascade)insert into Bank values('00001','中国银行小寨分行',10000)update Bank set Bname='中国银行经开分行' where Bid='00002'select * from Bank;delete from Bank where Bid='1' or Bid='2';insert into Custom values('6505001','花花','111',0,'2012/12/10/08:26:00','610424************','00001','1500','14345678912')insert into Staff values('7985000','自助服务','111','2002/01/07','12331654613')delete from Custom where Bid='2';insert into Operate values('2406002','6505001','00001','7985001','哈哈','2012年12月18日14时12分',0,0,2900,2900)insert into Operate values('2406005','6505007','00001','7985001','嘿嘿','2012年12月18日14时12分',0,0,2900,2900)select * from Custom;select * from Operate;select * from Staff;select * from Bank;delete from Operatedrop table Customdrop table Bankdrop table Staff;drop table Operate;select * from Bank;delete from Operate where Oid='6505001'drop view BMoney;create view BMoneyasselect Omoneyfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype = '取款';create view BInMoneyasfrom Operatewhere Oflag = 0 and Omoney>2000 and Otype='存款';create view VIPasselect Ctypefrom Customwhere Ctype=1;select count(*) from BMoney;select count(*) from BInMoney;select count(*) from VIP;update Bank set Bmoney='10000' where Bid='00001';update Bank set Bmoney='+bmoney' where Bid='"+Bid+"'";update Bank set Bmoney='10200.000000' where Bid='00001'程序代码:客户部分:a.void CClientDlg::OnButtonIn() //存款函数{// TODO: Add your control notification handler code hereCInDlg InDlg;if (InDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)InDlg.m_InNum;temp+=temp1;str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2+=temp1; bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' where Bid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "存款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1); OAmoney = str2;OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_ time,flag,Omoney,OAmoney,OBmoney);ado.ExecuteSQL((_bstr_t)sql);ado.E xitConnect(); }}b.v oid CClientDlg::OnButtonGet() //取款函数{// TODO: Add your control notification handler code hereCGetDlg GetDlg;;if (GetDlg.DoModal()==IDOK){double temp,temp1;ADOConn ado;CString sql = "select * from Custom where Cname='"+Cname+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str;//将交易前钱数暂存temp=atof(str);temp1=(double)GetDlg.m_GetNum;if (temp>temp1){temp-=temp1; str.Format("%f",temp); CString str3 = str;//暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql) int num= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;Oid.Format("%d",++num);Oid=str+Oid; Sid="7985001"Bid = bid; double temp2;sql = "select * from Bank where Bid='"+Bid+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString bmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");temp2 = atof(bmoney); temp2-=temp1;bmoney.Format("%f",temp2);sql = "update Bank set Bmoney='"+bmoney+"' whereBid='"+Bid+"'";ado.ExecuteSQL((_bstr_t)sql);CString Otype = "取款";CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");Otime = m_time; int flag = 0;Omoney.Format("%f",temp1);OAmoney = str2;OBmoney = str3; sql.Format("insert into Operate values('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time,flag,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();}else{AfxMessageBox("账户余额不足!"); }}}c.void CClientDlg::OnButtonTurn(){/ TODO: Add your control notification handler code hereCTurnDlg TurnDlg;if (TurnDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select * from Custom";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int flag = 0;while (!ResultSet->adoEOF)CString TCusId = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString TCusMon = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney"); //收钱客户在操作前的余额CString str5 = TCusMon; TCusId.Remove(' ');if (TCusId==TurnDlg.m_TurnId){double temp,temp1;sql = "select * from Custom where Cname='"+Cname+"'";ResultSet = ado.GetRecordSet((_bstr_t)sql);CString str = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bid");CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");CString str2= str; //将交易前钱数暂存temp=atof(str);temp1=(double)TurnDlg.m_TurnNum; if (temp>temp1){flag = 1;temp-=temp1; //住客户钱数减少str.Format("%f",temp);CString str3 = str; //暂存交易后金额sql = "update Custom set Crmoney='"+str+"' "+"where Cname='"+Cname+"'";do.ExecuteSQL((_bstr_t)sql); temp=atof(TCusMon);//收钱客户钱数增加temp+=temp1;TCusMon.Format("%f",temp); sql = "update Custom set Crmoney='"+TCusMon+"' "+"where Cid='"+TCusId+"'";ado.ExecuteSQL((_bstr_t)sql); sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);int num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney,OBmoney;int Otype; Oid.Format("%d",++num); Oid=str+Oid;Sid="7985001";Bid = bid; Otype = 2; CString m_time; CTime time;time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d 日%X");Otime = m_time; Omoney.Format("%f",temp1);OAmoney = str2; OBmoney = str3;sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",Oid,str4,Bid,Sid,Otype,m_time ,Omoney,OAmoney,OBmoney); ado.ExecuteSQL((_bstr_t)sql);sql.Format("insert into Operate values('%s','%s','%s','%s',%d,'%s',%s,%s,%s)",TCusId,str4,Bid,Sid,Otype,m_t ime,Omoney,str5,TCusMon); ado.ExecuteSQL((_bstr_t)sql);ado.ExitConnect();break; }else{AfxMessageBox("账户余额不足!");break; }}ResultSet->MoveNext();}if(flag==0){AfxMessageBox("该账户不存在!"); }}}d.v oid CClientDlg::OnButtonHistoy() //历史记录查询{// TODO: Add your control notification handler code hereCShowHistory showDlg;ame = Cname;showDlg.DoModal();}e.v oid CClientDlg::OnButtonAlter(){// TODO: Add your control notification handler code hereCAlterDlg alteDlg;if(alteDlg.DoModal()==IDOK){ if (alteDlg.m_AItem==0){if (alteDlg.m_Alter1==alteDlg.m_Alter2) {ADOConn ado; CString sql = "update Custom set Cname='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!"); }else {AfxMessageBox("两次姓名输入不一致,请重新输入!"); }}else if(alteDlg.m_AItem==1){if (alteDlg.m_Alter1==alteDlg.m_Alter2) { ADOConn ado;CString sql = "update Custom set Cpass='"+alteDlg.m_Alter1+"' whereCname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }elseif (alteDlg.m_Alter1==alteDlg.m_Alter2){if (alteDlg.m_Alter1.GetAt(0)=='1'&&alteDlg.m_Alter1.GetLength()==11)ADOConn ado; CString sql = "update Custom setCphone='"+alteDlg.m_Alter1+"' where Cname='"+Cname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("电话号码修改成功!"); }else {AfxMessageBox("电话号码格式不对!");} } else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } }}}管理员部分:a.void CStaffDlg::OnButtonInsert() //添加新成员{// TODO: Add your control notification handler code hereCInsertDlg insertDlg;if (insertDlg.DoModal()==IDOK){if (insertDlg.m_Phone.GetAt(0)=='1'&&insertDlg.m_Phone.GetLength()==11){ADOConn ado;CString sql = "select count(*) Num from Custom whereCcode='"+insertDlg.m_Code+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num==0){CString str = "650500";sql = "select count(*) num from Custom";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Cid,Cpass,Bid,Pmoney; double dou;Cid.Format("%d",++Num); Cid = str+Cid;Cpass = "000000";CString m_time; Bid= "00001";CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");dou = (double)insertDlg.m_Pmoney;Pmoney.Format("%f",dou);// Otime = m_time; sql.Format("insert into Custom values('%s','%s','%s','%s',%s,'%s',%s,%s)",Cid,insertDlg.m_Name,Cpass,m_time,insertDlg.m_Code,Bid,Pmoney,insertDlg.m_Phone);ado.ExecuteSQL((_bstr_t)sql);sql = "select count(*) num from Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "新注册";Oid.Format("%d",++Num);str = "240600";Oid = str+Oid; Bid= "00001";int flag = 0; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,Pmoney,OAmoney,Pmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("新增客户成功!"); }else{AfxMessageBox("该证件号已经注册!"); }}}b.void CStaffDlg::OnButtonDelete() //注销客户{// TODO: Add your control notification handler code hereCDelDlg delDlg;if (delDlg.DoModal()==IDOK){if (delDlg.m_DelId1==delDlg.m_DelId2){ADOConn ado;count(*) Num from Custom where Cid='"+delDlg.m_DelId1+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CString str = "650500";sql = "delete from Custom whereCid='"+delDlg.m_DelId1+"'";ado.ExecuteSQL((_bstr_t)sql); CString Bid,Cid;Cid = "6505000";CString m_time;CTime time; time = CTime::GetCurrentTime();m_time = time.Format("%Y年%m月%d日%X");sql = "select count(*) numfrom Operate";ResultSet = ado.GetRecordSet((_bstr_t)sql);Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("num"));CString Oid,OAmoney,Otype; Otype = "注销用户";Oid.Format("%d",++Num);tr = "240600";Oid = str+Oid; Bid= "00001";int flag = 2; OAmoney = "0";sql.Format("insert into Operatevalues('%s','%s','%s','%s','%s','%s',%d,%s,%s,%s)",Oid,Cid,Bid,Sid,Otype,m_time,flag,OAmoney,OAmoney,OAmoney); ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("注销客户成功!"); }else{AfxMessageBox("不存在该用户!"); }}else {AfxMessageBox("两次输入用户ID不一致,请重新输入!"); }}}c.void CStaffDlg::OnButtonResher() 查询客户{// TODO: Add your control notification handler code hereCAlterDlg altDlg; if (altDlg.DoModal()==IDOK){if (altDlg.m_AItem==0) {if (altDlg.m_Alter1==altDlg.m_Alter2) {ADOConn ado;CString sql = "update Staff set Sname='"+altDlg.m_Alter1+"' whereSname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("姓名修改成功!");}else{AfxMessageBox("两次姓名输入不一致,请重新输入!"); }} else if(altDlg.m_AItem==1){if (altDlg.m_Alter1==altDlg.m_Alter2){ADOConn ado;CString sql = "update Custom set Spass='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql); AfxMessageBox("密码修改成功!"); }else{AfxMessageBox("两次密码输入不一致,请重新输入!"); }}else{if (altDlg.m_Alter1==altDlg.m_Alter2){if (altDlg.m_Alter1.GetAt(0)=='1'&&altDlg.m_Alter1.GetLength()==11){ADOConn ado;CString sql = "update Custom set Sphone='"+altDlg.m_Alter1+"' where Sname='"+Sname+"'";ado.ExecuteSQL((_bstr_t)sql);AfxMessageBox("电话号码修改成功!"); }else{AfxMessageBox("电话号码格式不对!");} }else{AfxMessageBox("两次电话输入不一致,请重新输入!"); } } }d.void CStaffDlg::OnButtonMoneyctrl() //资金管理{// TODO: Add your control notification handler code hereCSerchDlg serDlg;if (serDlg.DoModal()==IDOK){ADOConn ado;CString sql = "select count(*) Num from Custom where Cid='"+serDlg.m_Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);int Num = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));if (Num!=0){CCusInfoDlg cusDlg;cusDlg.Cid = serDlg.m_Cid ADOConn ado;CString sql = "select * from Custom where Cid='"+cusDlg.Cid+"'";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);cusDlg.m_Cname = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cname");cusDlg.m_Cid = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cid");cusDlg.m_Code = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Ccode");cusDlg.m_Phone = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Cphone");cusDlg.m_Rmoney = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Crmoney");cusDlg.DoModal();ado.ExitConnect();}else{AfxMessageBox("不存在该客户!"); }}}e.void CStaffDlg::OnButtonAlter() //信息修改{CMoneyDlg monDlg; ADOConn ado;CString sql = "select count(*) Num from BMoney ";_RecordsetPtr ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_GetNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from BInMoney";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_InNum = atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select count(*) Num from VIP";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_VIPNum= atoi((LPCTSTR)(_bstr_t)ResultSet->GetCollect("Num"));sql = "select * from Bank where Bid='00001'";ResultSet = ado.GetRecordSet((_bstr_t)sql);monDlg.m_Cash = (LPCTSTR)(_bstr_t)ResultSet->GetCollect("Bmoney");ado.ExitConnect();monDlg.DoModal();}f.void CStaffDlg::OnButtonAnyse() //员工业绩分析{// TODO: Add your control notification handler code hereCStaffIDlg staDlg;staDlg.DoModal();}心得体会:这次课程设计体会非常深刻,首先在团队合作方面,我觉得自己作为队长没有两道好我的小队,这是我的失职。

图书馆管理系统——《数据库概论》课程设计报告书

图书馆管理系统——《数据库概论》课程设计报告书

《数据库系统概论》课程设计实验报告书安徽工业大学计算机学院姓名专业班级学号指导教师需源代码可联系我2011年12 月17 日目录1 绪论 (1)2 系统需求分析与设计 (2)2.1 用户需求分析 (2)2.1.1 用户需求 (2)2.1.2 系统功能需求 (2)2.13开发工具 (2)2.2 功能模块图及分模块功能描述 (2)2.2.1 系统的功能模块图 (2)2.3 数据库设计 (3)2.3.1 系统E-R图 (3)2.3.2 数据库逻辑结构设计 (6)借阅表 (6)图书表 (6)预定表 (6)3 系统实施 (8)3.1 建立数据库 (8)3.2 数据库连接读取 (10)3.3 主要模块实施 (12)3.3.1 登录模块的开发 (13)3.3.2主要界面 (13)总结 (16)参考文献 (16)附录:部分源代码 (16)1 绪论随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行。

在一些中小型的图书馆中,大部分工作仍需要手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态及时地调整图书结构。

为了更好的适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。

2 系统需求分析与设计2.1 用户需求分析2.1.1 用户需求随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。

2.1.2 系统功能需求图书馆管理信息系统需要完成功能主要有:1..读者基本信息的输入,包括学号、姓名、性别等。

数据库系统概论课程设计报告

数据库系统概论课程设计报告

数据库系统概论课程设计报告学院:计算机科学与通信工程学院班级:软件1301班姓名:***学号:**********指导教师:***2015年7月8日一需求分析1 运行环境Microsoft Visual Studio 2005Microsoft SQL Server 20052 程序所实现的功能(1)对库存管理系统中的学生信息实现增删改查;(2)对库存管理系统中的教师信息实现增删改查;(3)对库存管理系统中的课程信息实现增删改查;(4)对数据库管理系统中的分组信息实现增删改查;(5)对数据库管理系统中的登记信息实现增删改查;并完成以下题目创建数据库的结构创建各基本表的结构编制输入子系统,完成数据的录入检索系名为“Math”和“English”的课程表信息按字母顺序列出教师姓名和电话号码检索电话号码不是以“257”打头的教师姓名和电话号码检索数学系所有成绩大于3的课程名、系名、学分检索没有选修任何课的学生姓名、学号检索没有选修课程“Calculus Iv”的学生学号检索至少选修教师“Dr. Lowe”所开全部课程的学生学号检索每门课学生登记的人数、相应的课程名、课程号、分组号检索选修两门以上课程的学生姓名检索只有男生选修的课程和学生名检索所有学生选修的课程名、学生名、授课教师名、该生成绩删去名为“Joe Adams”的所有记录把教师“Scango”的编号改为“666”统计教师“Engle”教的英语课的学生平均分统计各门课程的选课人数统计学生来自省的省名输出如下报表:(21)输出操作结果和程序清单二设计过程1.E-R图2.关系模型学生(学号,姓名,地址,邮政编码,市,省,性别)教师(教师编号,姓名,电话号,工资)课程(课程号,课程名,系名,学分)分组(教师编号,课程号,学生数,组号)登记(学号,课程号,组号,评分)学习(学生号,教师号)教授(教师号,课程号)属于(老师,分组)该关系属于第一范式,因为存在部分函数依赖。

数据库系统概论

数据库系统概论

数据库系统概论一、本文概述《数据库系统概论》是一篇全面介绍数据库系统基本概念、原理、技术和应用的综合性文章。

文章旨在为读者提供一个系统、深入的数据库知识体系,帮助读者了解数据库系统的基本原理、设计方法、优化技术以及发展趋势。

本文将从数据库系统的基本概念入手,逐步深入探讨数据库系统的体系结构、数据模型、关系数据库、SQL语言、数据库设计、数据库保护、数据库管理系统以及数据库新技术等方面的内容。

通过本文的阅读,读者将能够全面掌握数据库系统的基本理论和实践应用,为后续的数据库学习、开发和管理打下坚实的基础。

二、数据库系统基础知识数据库系统是现代信息技术的重要组成部分,它提供了高效、稳定的数据存储、管理和查询功能。

在理解数据库系统之前,我们需要掌握一些基础知识。

数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。

数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库管理系统(DBMS)是数据库的核心软件,它负责数据库的建立、使用和维护。

DBMS提供了一系列的功能,包括数据的定义、查询、更新、控制等,使得用户可以方便地对数据库进行操作。

数据库系统还包括了数据库管理员(DBA)和最终用户。

DBA负责数据库的设计、维护和管理,确保数据库的安全、稳定和高效运行。

最终用户则通过各种应用程序或工具与数据库进行交互,实现数据的查询、更新等操作。

在数据库系统中,数据模型是一个关键的概念。

数据模型是对现实世界数据特征的抽象,它描述了数据、数据间的联系以及数据的约束。

常见的数据模型包括层次模型、网状模型和关系模型等。

其中,关系模型以其简洁明了、易于理解和实现的特点,成为了当前主流的数据模型。

数据库系统的安全性、完整性和并发性是三个重要的性能指标。

安全性是指保护数据库免受非法访问和破坏的能力;完整性是指确保数据库中数据的正确性、一致性和有效性;并发性是指多个用户同时访问数据库时,数据库系统能够保持正确、高效的运行状态。

数据库课程设计数据库系统概论

数据库课程设计数据库系统概论

目录一、实验目的二、实验要求三、实验题目四、实验设计五、实验小结一、实验目的:1.加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;2.在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;4.为毕业设计和以后工作打下必要基础。

二、实验要求运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。

要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。

1.概念设计2.逻辑设计订户(编号,姓名,住址);报刊目录(代号,名称,期刊,单价);订单(编号,代号,日期,起订期,终定期,订单量);投递卡(编号,代号,期号,份量);主码通过横线给出。

该关系属于第一范式3.完整性设计关系主码、外码约束三、实验题目(1)创建数据库的结构(2)创建各基本表的结构(3)编制输入子系统,完成数据的录入(4)检索地址为“太平路4890号”的订户信息(5)检索份数多于3的期号(6)检索订阅“01-01”报刊代号的订户名、报刊名、订阅份数(7)检索没有订阅“人民日报”的订户号(8)检索至少订阅“人民日报”的订户名(9)检索至少订阅了“人民日报”的所有期号的订户号(10)检索未订阅代号为“03-01”报刊的订户名(11)检索被多个订户订阅的报刊之代号(12)增加一种报刊“04-01,经济信息报,周报,0.5”(13)删去报刊代号为“01-03”的报刊(14)把订户号“161213”改为“161225”(15)把“090104”订户所订的“01-03”报刊的截止日期改为12(16)检索订阅期在1到12月份的各种报刊的代号和总数(17)检索每种报刊的订阅总数,并给出报刊代号(18)统计各种报刊的订户数(19)输出如下报表:订户姓名报刊名称期号日期起订期终订期份数(20)输出操作结果和程序清单课程设计补充内容:1.创建视图:报刊订阅:查询出用户杨春花订阅情况(字段根据自己设计选择即可)2.授权操作:请创建用户YANG ,并授予他可以查询,修改第一题所建视图的权限。

数据库课程设计论文

数据库课程设计论文

数据库课程设计论文一、教学目标本课程的教学目标是使学生掌握数据库的基本概念、原理和方法,培养学生运用数据库技术解决实际问题的能力。

具体目标如下:1.知识目标:(1)理解数据库的基本概念,如数据、数据模型、数据库管理系统等。

(2)掌握数据库的基本操作,如创建、修改、删除表和索引,以及数据的增、删、改、查等。

(3)了解数据库的设计规范,能够使用实体-关系模型设计简单的关系数据库。

(4)熟悉数据库的性能优化和事务管理。

2.技能目标:(1)能够使用数据库管理系统(如MySQL、Oracle等)进行数据库的创建、管理和维护。

(2)具备编写简单的SQL语句进行数据操作的能力。

(3)学会使用数据库设计工具(如ERWin、PowerDesigner等)进行数据库设计。

(4)掌握数据库性能监控和调优技巧。

3.情感态度价值观目标:(1)培养学生对数据库技术的兴趣,认识到数据库在信息社会中的重要地位。

(2)培养学生严谨的科学态度,注重实践与理论相结合。

(3)培养学生团队协作精神,学会与他人共同解决问题。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数据库基本概念:数据、数据模型、数据库管理系统等。

2.数据库基本操作:创建、修改、删除表和索引,数据的增、删、改、查等。

3.数据库设计:实体-关系模型、关系数据库设计规范等。

4.数据库性能优化:索引、分区、事务管理等。

5.数据库事务:事务的概念、性质、并发控制等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解基本概念、原理和方法。

2.案例分析法:分析实际案例,让学生学会将理论知识应用于实际问题。

3.实验法:让学生动手实践,加深对数据库操作的理解。

4.讨论法:分组讨论,培养学生的团队协作能力和解决问题的能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《数据库原理与应用》等。

2.参考书:《数据库系统概念》、《数据库系统实现》等。

数据库系统原理论文教学改革论文:数据库系统原理课程建设的思考

数据库系统原理论文教学改革论文:数据库系统原理课程建设的思考

数据库系统原理论文教学改革论文:数据库系统原理课程建设的思考【摘要】“数据库系统原理”课程是计算机及相关专业的一门重要的专业基础课。

文中针对该课程的建设问题,从教学理念、教学方法和手段以及实践教学等方面进行了研究与探索,并对课程建设成果进行了积极实践,取得了较好的效果。

【关键词】数据库系统原理课程建设教学改革实践教学一、引言《数据库系统原理》课程是计算机及相关专业的核心课程,主要研究数据库系统、数据模型、数据库查询语言、关系数据库设计、数据库系统实现技术等,还包括分布式数据库、并行数据库、面向对象数据库、数据仓库、数据挖掘、信息存储与信息检查、多媒体信息处理、数字图书馆等新技术。

为了适应现代数据库技术的发展趋势,使学生比较全面、系统地掌握数据库管理系统的基本概念和基本知识以及实现技术,掌握数据库应用系统的设计原理、技术和方法,本文在课程的教学理念、教学内容、教学方法和手段、课程实践、测试方法等方面进行了探索,在培养学生理论知识与实践能力两方面均取得了明显的效果,为设计数据库、学习和使用各种数据库开发工具、从事数据库管理工作、开发新型数据库系统打下了良好的基础。

二、教学改革探索1.新的教学理念针对培养适应社会发展需要的计算机技术人才的目标,以及多年教学实践中发现的问题,本文提出了“广、深、新、用”这一新的教学理念,制定了有特色的教学内容,解决了数据库系统原理教学中存在的“窄、浅、旧、轻视系统实现技术和新技术”问题。

(1)“广”。

在教学中注重教学内容的广度,不但讲授数据库的基本概念、模型、语言、数据库设计技术、关系数据库等基本内容,还深入讲授系统实现的理论、技术和算法,也讲授数据库领域新技术。

(2)“深”。

在教学中强调数据库管理系统实现技术的深度,深化数据库管理系统实现技术、理论和算法的讲授,并将相关的教学内容分解到各实践教学环节中,形成理论和实践相结合的教学模式。

(3)“新”。

将数据库最新的研究成果融会贯通于课堂教学中。

数据库课程设计------人事管理系统设计

数据库课程设计------人事管理系统设计

《数据库系统概论》课程设计课程设计题目人事管理系统设计一.摘要为了完善全面的人事管理功能,使人事企业管理流程合理化和自动化处理和分析各种有价值的信息,以支持决策者制定人事企业管理战略发展计划。

该系统采用了SQLServer2000数据库开发环境,使用专用数据库接口连接,其存取速度快、安全性好,便于管理和操作。

整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成人事管理全过程,包括员工的基本信息、学历和任职信息、家庭状况、奖惩信息、员工各种信息的修改、对于转出、辞职、退休员工信息的删除等管理工作。

经过实际使用证明,该文所设计的人事管理系统可以满足公司人事管理方面的需要。

二、前言随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事档案的管理势在必行。

人事管理系统是现代企业管理工作不可缺少的一部分,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。

人事管理系统可以用于支持企业完成劳动人事管理工作,有如下3个方面的目标。

1.支持企业实现规范化的管理。

2.支持企业高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。

3.支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有的员工数目决定招聘的人数等。

三、系统设计3.1设计思想尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用的目的。

1.系统应符合学校人事管理的规定,满足学校日常人事管理工作需要,并达到操作过程中的直观、方便、实用、安全等要求。

2.系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。

3.系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。

3.2 系统功能分析该系统需要完成如下功能:1. 实现部门、职务、职称等信息的管理;2. 实现职工信息的管理:3. 实现职工学习经历和任职经历的管理;4. 实现职工家庭关系的管理;5. 实现奖惩信息的管理;6. 创建存储过程查询各部门各种职称的职工数量;7. 创建视图查询各职工的工号、姓名、部门、职务信息;8.创建触发器当增加、删除职工和修改职工部门信息时自动修改相应部门的职工人数;9.建立数据库相关表之间的参照完整性约束。

数据库系统概论课程设计

数据库系统概论课程设计

目录1 绪论 (2)1.1 概述 (2)1.1.1 问题的提出 (2)1.1.2 本课题的意义 (2)1.2 开发环境与工具介绍................................................................................... 错误!未定义书签。

1.2.1 简介.................................................................................... 错误!未定义书签。

1.2.2 xxx研究状况.................................................................................... 错误!未定义书签。

2 系统需求分析与设计 (2)2.1 用户需求分析 (2)2.1.1 用户需求 (2)2.1.2 系统功能需求 (2)2.1.3 系统性能需求 (2)2.1.4 数据分析 (2)2.2 功能模块图及分模块功能描述 (2)2.2.1 系统的功能模块图 (2)2.2.2 系统功能模块简介 (3)2.3 数据库设计 (3)2.3.1 系统E-R图 (3)2.3.2 数据库逻辑结构设计....................................................................... 错误!未定义书签。

3 系统实施 (5)3.1 建立数据库 (6)3.2 数据库连接 (6)3.3 主要模块实施 (6)3.3.1 登录模块的开发 (6)3.3.2 xxxxx (11)3.4 系统测试 (14)3.4.1 软件测试的对象 (14)3.4.2 软件测试的结果 (14)4 系统说明 (14)4.1 开发环境 (14)4.2 系统安装、配置与发布应用程序的步骤 (14)总结 (15)参考文献 (15)附录:部分源代码....................................................................................................... 错误!未定义书签。

数据库课程设计--学生选课成绩管理系统

数据库课程设计--学生选课成绩管理系统

《数据库系统概论》课程设计实验报告书姓名:学号:专业:软件工程班级:软093班学院:计算机一概述1.1.1 问题的提出随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。

几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。

系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。

基本要求:完成学生、班级、课程表的维护。

完成成绩表的维护、浏览查找。

按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率。

统计某学生、某学期的所有课程的平均成绩。

完成用户管理功能。

完成数据备份与恢复功能,1.1.2 本课题的意义通过该课程设计,可以达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

1.2设计环境① Oracle 11G② C# .net平台二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。

(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。

容易地完成学生信息的查询操作。

(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;2.3 数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:Student基本情况数据表,结构如下:Teach基本情况数据表,结构如下Course数据表,结构如下:Stu_cour情况数据表,结构如下:Score情况数据表,结构如下:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,学院,班级,年龄,性别。

数据库系统概论课程设计指导书范文

数据库系统概论课程设计指导书范文

《数据库系统概论》课程设计指导书班级计算机2011-1、2指导教师杜义君塔里木大学信息工程学院计算机软件教研室2010年6月12日《数据库系统概论》课程设计指导书一、课程设计目的、性质和任务《数据库》是计算机系本科的一门专业基础课。

本课程的设置目的是为了使学生掌握数据库的基本原理、方法和应用技术,能应用现有的数据库管理系统和软件开发工具,掌握数据库结构的设计和数据库应用系统的开发方法。

课程设计的目的是:(1)培养学生运用所学课程《数据库》的理论知识和技能,分析解决计算机应用实际问题的能力。

(2)培养学生掌握用《数据库》的知识设计计算机课题的思想和方法。

(3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

(4)通过课程设计,要求学生在指导教师的指导下,独立完成设计课题的全部内容,包括:A.通过调查研究和上机实习,收集和调查有关技术资料。

B.掌握设计课题的基本步骤和方法。

C.根据课题的要求进行上机实验调试。

课程设计任务:本课程是一门理论性,系统性较强的一门专业基础课,通过本课程的学习,培养学生分析和设计各种实际应用系统的理论基础。

通过对本课程的学习,使学生初步掌握各种数据库建模及数据库应用系统开发的常见基本方法。

随着高科技的发展,有关边缘学科的发展,以及本学科的内容加深充实,理论上升,本课程为之亦提供了必要的理论基础。

本课程主要研究数据库的基本概念、原理和设计方法,SQL语句等主要内容。

课程设计完成要求:通过对本课程的学习,要求学生掌握数据库原理和设计方法,熟练掌握数据库中的基本概念,原理,通过程序的设计和调试加强学生的动手能力,分析问题、解决问题的能力,增强学生综合运用所学知识的能力。

本课程是一门实践性非常强的科目,学习过程中要使学生受到必要的实验技能训练。

二、课程设计题目及主要开发环境:设计题目:参照设计任务书开发环境:数据库可以选用微软的ACCESS、SQL SERVER或其他公司的数据库产品,只选择其中的一种数据库产品就可以。

数据库系统概论课程设计

数据库系统概论课程设计

摘要随着信息技术在教务管理上越来越深入而广泛的应用,教务管理系统的实施在技术上已逐步成熟。

教务管理系统是一个不断发展并创新的具有潜力的系统,任何一个学校要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的教务管理系统。

本文介绍了在VS2012 C#.NET环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个简单的教务管理信息系统的过程。

通过根据本学校的教务管理,模仿了一套行之有效的计算机管理学生、教师和课程的方案。

文章介绍了教务管理系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。

关键词:管理员管理、教师管理、学生管理、C#与SQL Sever 应用教务管理系统1.系统概述此系统模拟了学校的教务管理系统,具有管理员、教师和学生的独自登陆界面,并分别为其服务。

1.1系统需求及分析经过调查,要求系统具有一下几个基本功能:(1)由于操作人员的计算机知识普遍较差,要求有良好的人机界面;(2)由于该系统的使用对象多,要求有较好的权限管理;(3)原始数据修改简单方便,支持多条件修改;(4)方便的数据查询,支持多条件查询;(5)在相应的权限下,删除数据方便简单,数据稳定性好;因为此系统主要面对学校的教务管理人员、教师和学生,所以管理员具有增删改自己信息、教师信息、课程信息、学生信息的基本功能,教师要具有修改个人信息、学生成绩录入、修改和管理、课程的管理等基本功能,学生具有修改个人信息、查看成绩、选课情况等基本功能。

这些功能都在 C# 语言和SQL Sever 2008 数据库下可以实现。

1.2系统的功能简介管理员:管理员管理、教师管理、学生管理、课程管理、特殊管理;窗体界面如下:教师:挂机、个人信息、个人课程、成绩管理;窗体界面如下:窗体界面如下:1.3系统开发目标出于本系统是学校教务管理的一个综合性的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。

数据库系统概论课程设计_08计本12

数据库系统概论课程设计_08计本12

《数据库系统概论》课程设计一、目的:《数据库系统概论》课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。

本课程设计实验主要围绕两方面内容:数据库设计和基本数据库编程实践。

通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和基本开发技术。

1. 掌握数据库设计的基本方法,熟悉数据库设计的步骤;2. 通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力;3. 学习基本数据库编程方法。

二、本课程设计内容与要求掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。

通过使用MS SQL SERVER2005,建立所设计的数据库,并在此基础上实现数据库查询、连接等基本操作操作。

1、需求分析根据给定的设计课题,绘制的DFD、DD图表以及书写相关的文字说明。

2、概念结构设计绘制所选课题详细的E-R图。

3、逻辑结构设计将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。

4、物理结构设计选定实施环境,存取方法等。

5、数据实施和维护用MS SQL SERVER2005建立数据库结构,加载(测试/虚拟)数据,能体现对数据库的保护(安全性和完整性控制等)。

实现各种查询、链接应用程序,并能对数据库做简单的维护操作。

6、设计小结:总结课程设计的过程、体会及建议。

7、其他:参考文献、致谢等。

三、上机任务1、库、基本表的建立和修改:在SQL SERVER环境下用SQL语言建立库以及库中基本表。

2、数据加载:用手工录入或导入等方法实现基本表中的数据加载。

3、单表查询以及多表查询:在建立的基本表中使用select基本格式和聚集函数;设计合适的视图,实现多表间查询。

4、触发器:根据需要设计触发器,如实现表间关联字段修改时的完整性等问题。

《数据库系统概论》课程设计

《数据库系统概论》课程设计

第 1 页共19 页《数据库系统概论》课程设计姓名:学号:学院:班级:指导老师:目录1、绪论2、系统需求分析与设计3、系统实施4、总结5、代码1 绪论2第 3 页共19 页1.1 概述通过数据库概论这门课程的学习,开发一个简单具有使用意义的学生成绩管理系统来对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。

1.2 开发环境(1)本系统采用Microsoft Visual C++ 6.0作为开发工具,C++为开发语言,采用Oracle 9i版本数据库管理系统建立数据库,先在Oracle中设计并制作各部分需要调用的数据库,并进行初始数据的输入,再进行界面的设计和事件代码的编写。

(2)学生成绩管理系统研究意义随着学校的扩大和发展,学生成绩管理系统是一个教育单位不可缺少的部分,它对于学校的学生和管理者来说都是至关重要的,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理成绩系统,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,是与世界接轨的重要条件。

2 系统需求分析与设计2.1 用户需求分析2.1.1 用户需求要求不同的实体(学生、教师和管理员)登录系统后,能够进行合理范围的内的对数据库中的数据进行操作。

2.1.2 系统功能需求1.学生:查询每一门课程的成绩;查询所有课程的平均成绩;查询所有选课信息;修改密码。

2.教师:添加学生成绩;修改学生成绩;查询学生成绩(按条件查询);查询所有授课信息;修改密码。

数据库课程设计(论文)

数据库课程设计(论文)

教师网上成绩录入系统开发学部信息学部年级2010专业网络2班学号2010482289姓名李强指导教师张寿华2012年 12 月25日1、课程设计的目的使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。

2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)1)教师信息的管理:教师的基本信息、所教课程、授课时间、教师密码等信息的录入、修改和删除;2)学生信息的管理:学生基本信息的录入、修改和删除;3)课程信息的管理:课程基本信息的录入、修改和删除;4)选课信息的管理:生所选课程基本信息的录入、修改和删除;5)成绩管理:成绩的录入和修改6)信息的查询与统计:能按不同条件对各类信息进行查询,能按多个条件对成绩信息、选课信息等进行统计3、主要参考文献[1]张莉《SQL SEVER数据库原理及应用》[2]萨师煊王珊著.《数据库系统概论》第三版.高等教育出版社[3]施伯乐丁宝康汪卫.《数据库系统教程》高等教育出版社2003年第2版[4]庄成三等.《数据库系统原理及其应用》.电子工业出版社4、课程设计工作进度计划第1天:选题、完成需求分析第2天:数据库概念结构设计第3天:数据库逻辑结构设计及物理实现第4天:应用程序开发第5天:程序调试分析和结果、编写课程设计报告目录摘要 (6)1、简述 (7)1.1目的与要求 (7)1.2设计环境 (7)2、教师网上成绩录入系统需求分析 (8)2.1调查用户需求 (8)2.2用户对系统的要求 (8)2.2.1功能 (8)2.2.2系统要求 (8)2.2.3完整性要求 (9)2.3系统功能的设计和划分 (9)2.3.1教师管理部分 (9)2.3.2教师操作管理部分 (9)2.4数据流图 (9)2.4.1总体结构 (9)2.4.2用户登录 (10)2.4.3教师登录 (10)2.5数据字典 (11)2.5.1数据项 (11)2.5.2数据结构 (12)3、概念结构设计 (13)3.1根据需求分析,设计系统的E-R图 (13)3.2各实体E-R图 (13)3.2.1学生实体的E-R图 (13)3.2.2课程实体的E-R图 (13)3.2.3教师实体的E-R图 (13)3.2.4成绩实体的E-R图 (14)3.3设计完成的总E-R图 (14)4、逻辑结构设计 (15)4.1设计逻辑结构时的要点 (15)4.2关系模式 (15)4.3将E-R图转换为关系模式 (16)5、物理结构设计 (17)5.1存储方法设计 (17)目录6、数据库的实施 (18)6.1创建数据库 (18)6.2创建表 (18)7、应用程序开发、运行及调试 (20)7.1应用程序开发工具、环境 (20)7.2应用程序运行及调试 (20)8、课程设计总结 (27)9、参考文献 (28)摘要摘要学生课程及成绩管理系统是目前高校不可缺少的系统,然而其中的教师网上成绩录入系统也是相当重要的功能模块之一。

数据库系统概论课程设计.doc

数据库系统概论课程设计.doc

图书馆数据库管理系统目录一、图书馆管理系统E-R 图 (1)二、图书馆管理系统功能实现示意图 (2)三、图书馆管理系统功能图例 (3)3.1 读者借阅图书 (3)3.2 读者归还图书 (3)3.3 读者续借图书 (4)3.4 读者查询借阅图书情况 (4)3.5 读者检索图书信息 (5)四、图书馆管理系统附加功能 (6)4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值 (6)4.2 查询每个学生对书本的借阅数量 (8)4.3 查询各个专业的学生借阅书本的数量 (10)一、图书馆管理系统E-R 图教师借阅图书期限较长,并且允许借阅的书本量较大。

因此,将教师借阅关系与学生借阅关系分开较为适宜。

二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:tri_Book图书库tri_SreturnBook三、图书馆管理系统功能图例3.1 读者借阅图书Execute RBorrowBook '读者号','图书分类号'--------------读者借阅图书实例 use LibrarySystem goexec RBorrowBook T006324,'D630.3 L836'--其中T006324以T 为标识,代表教师编号 exec RBorrowBook S070407101,'D630.3 L836'---其中S070407101以S 为标识,代表学生学号go -----结果如下:3.2 读者归还图书Execute RReturnBook '读者号','图书分类号'----------------读者归还图书实例 use LibrarySystem goexec RReturnBook T006324,'D630.3 L836' exec RReturnBook S070407101,'D630.3 L836' go -----结果如下:图书信息表 Book由存储过程RindexBook 查找匹配图书信息 综合信息输出给读者读者检索图书 RIndexBook3.3 读者续借图书Execute RRenewBook '读者号','图书分类号' --------------读者续借图书实例use LibrarySystemgo-------读者借阅图书exec RBorrowBook T006324,'D630.3 L836' exec RBorrowBook S070407101,'D630.3 L836' gowaitfor delay '0:0:5'--------读者续借图书exec RRenewBook T006324,'D630.3 L836' exec RRenewBook S070407101,'D630.3 L836' go-----结果如下:3.4 读者查询借阅图书情况Execute RQueryBook '读者号'------------读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook S070407101go-----结果如下:3.5 读者检索图书信息Execute RIndexBook '关键词' ------------读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-------结果如下:四、图书馆管理系统附加功能4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值---------------往学生表S中插入一列"系部",其值等于学号中代表系部的位的值use LibrarySystemgoalter table Studentadd SdeptNo char(2)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SDeptNo=substring(@sno,4,2)where Sno=@snoset @i=@i+1endselect*from Studentgo-----------结果如下:-------------往学生表S中插入一列"专业号",其值等于学号中代表专业的位的值use LibrarySystemgoalter table Studentadd SMajorNo varchar(50)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SMajorNo=substring(@sno,4,4)where Sno=@snoset @i=@i+1endgo-----------结果如下:4.2 查询每个学生对书本的借阅数量--查询每个学生对书本的借阅数量use LibrarySystemgoselect Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名from StudentBook,Student,Bookwhere Student.Sno=StudentBook.Sno andStudentBook.ClassifyNo=Book.ClassifyNoorder by Student.Snocompute count(Student.Sno)by Student.Snogo-----------结果如下:4.3 查询各个专业的学生借阅书本的数量use LibrarySystemgodeclare @tempDept table(专业编号char(4)primary key,专业varchar(30)not null,学生借阅书本数量int default 0)Insert into @tempDept(专业编号,专业) select Mno,Mname from Majordeclare @i int,@total int,@no char(10)select @total=count(*),@i=1 from StudentBookwhile(@i<@total) beginselect top1 @no=Sno from StudentBook where Sno not in(select top(@i-1) Sno from StudentBook)update @tempDeptset学生借阅书本数量=学生借阅书本数量+1where专业编号=substring(@no,4,4)set @i=@i+1endselect*from @tempDeptselect @total as学生借阅书本总量go -----------结果如下:。

数据库系统概论课程设计报告书.doc

数据库系统概论课程设计报告书.doc

《数据库系统概论》课程设计报告书图书馆管理信息系统第一步:需求分析1.功能需求分析图书管理用于添加、修改、删除、查询图书信息读者管理用于添加、删除、更新、查询学生信息外借-归还图书用于记录学生信息、图书信息、外借时间和归还时间图书分类对图书的类型进行分类读者分类对读者的类型分类用户管理对使用系统的用户进行管理心得体会:我们选择了图书管理作为我们设计的数据库课程,之所以选择它是因为我们对其他方面应用的工作过程还不太了解。

图书管理包括借书、还书、图书的入库、出库、图书查询等过程。

我们所设计的数据库包含了以上所有功能。

更进一步,我们还可以改进设计使图书管理过程完全达到无人化操作,这样不仅节约了大量人力物力。

还使图书管理过程更简洁方便。

但由于所需要的一些技术现在还无法很好地实现,所以这也还仅仅是一个设想。

2.数据需求分析3.我们在这里创建六个基本表,分别是booksInfo 图书信息表,readers 读者信息表borrowInfo 外借-归还图书表bookType 图书类型信息表readersType 读者类型信息表employees 图书管理员信息表心得体会:在数据需求分析阶段,需要设计好数据库运行时所需数据的模型,数据间的关系以及数据成员之间的数据冗余,尽量做到可以保障数据的安全性及误操作的可恢复性,要保证数据在插入、删除时不发生异常。

我们所设计的几个数据表包括图书信息表、读者信息表、外借-归还图书表、图书类型信息表、读者信息类型表、图书管理员信息表。

在设计时考虑到了数据冗余所带来的数据插入、删除异常情况,但由于操作而进行的恢复数据却设计不周。

3.数据流图源点/终点:图书管理员、学生数据流:图书信息(图书编号,图书名称,图书类型,作者,出版社,出版日期,总页数,内容简介,总数量,进库日期,图书备注)读者信息(读者编号,读者姓名,读者性别,读者类型,读者系别,读者备注)事务(图书编号,事务类型[借/还],数量)记录信息(图书信息、读者信息和日期)更新信息(图书信息、读者信息与日期)数据存储:图书信息表,读者信息表外借-归还图书表图书类型信息表读者类型信息表图书管理员信息表心得体会:一定要将数据流图与流程图中用箭头表示的控制流分清楚,否则会造成混乱画不出正确的数据流图数据流图主要描述做什么,而非怎么做,如考虑具体细节,会造成数据流图的过渡繁琐,达不到数据流图的功能遵循类似结构化程序设计方法:自顶向下,逐步求精的原则,可更好地完成此项任务,但要注意当进一步分解涉及如何具体实现一个功能时就不应再分解了4.系统数据字典booksInfo表其中bookId为主码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

理学院《数据库系统概论》课程设计论文题目:宁夏医科大学图书管理系统数据库设计学号:专业班级:姓名:日期:摘要在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。

对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。

为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高图书借阅信息管理效率的目的。

采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。

基于这个问题,开发了大学图书馆借阅系统。

系统采用C/S模式,实现了借还书的方便、高效性、有效性和及时性。

本文通过设计和开发一个中小型高校图书馆管理系统的实践,阐述了高校图书管理软件中所应具有的基本功能、设计、实现。

关键字:图书借阅;人员管理;图书维护;目录1.需求分析说明书 (3)1.1.引言 (3)1.2.需求分析阶段的目标与任务 (3)1.2.1.处理对象 (3)1.2.2.处理功能及要求 (4)1.2.3.安全性和完整性要求 (4)1.3 需求分析阶段成果 (4)2.概念模型设计 (10)2.1 引言 (10)2.2 任务与目标 (10)2.3 阶段结果 (10)3.逻辑模型设计 (12)3.1逻辑设计的任务和目标 (12)3.2数据组织 (12)3.2.1将E-R图转换为关系模型 (12)3.2.2模型优化 (13)3.2.3数据库模式定义 (13)3.2.4 用户子模式定义 (15)3.3数据处理 (16)4.物理模型设计 (16)4.1物理设计阶段的目标与任务 (16)4.2数据存储方面 (17)4.3系统功能模块 (17)4.3.1 读者基本信息的查询和更新模块 (17)4.3.2 图书基本信息的查询和更新模块 (17)参考文献 (18)附录所有的SQL运行语句 (19)1. 需求分析阶段1.1 引言进行系统设计,首先要对系统的现状进行分析。

根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。

每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。

随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平。

该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。

需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。

数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。

明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。

在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。

这样,就把一个大的系统分解成了几个小系统。

这里把系统的层次划分为了四个部分:图书维护,人员信息管理,图书借阅管理,信息查询。

能够实现以下功能:○1进行新书入库、现有图书信息修改以及删除;②能够实现对读者基本信息的查询和编辑管理;③能够进行超期罚款功能;④能够进行借阅信息的查询功能;1.2 需求分析阶段的目标与任务1.2.1处理对象读者信息:读者编号,姓名,性别,学号,学院,专业,年级,类型,类别编号,办证日期管理员信息:管理员编号,姓名,性别,权限,登录口令,住址,电话馆藏图书信息:图书编号,索书号,图书名称,作者,出版社,单价,摘要,关键字,副本数,分类,出版日期,状态借阅信息:图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金借阅历史信息:图书编号,读者编号,图书名,作者,借阅日期,还书日期罚款信息:读者编号,图书编号,图书名,作者,借阅日期,应还日期,归还日期,罚款金额,处理状态,管理员编号1.2.2处理功能及要求1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:1) 图书信息的录入、删除及修改。

2) 图书信息的多关键字检索查询。

3) 图书的出借、返还及超期罚款或丢失赔偿。

2.能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括:1) 读者信息的登记、删除及修改。

2)管理员信息的增加、删除及修改。

3) 读者资料的统计与查询。

3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。

4.对查询、统计的结果能够列表显示。

1.2.3.安全性和完整性要求1)安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。

安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。

2)完整性要求系统完整性要求系统中数据的正确性以及相容性。

可通过建立主、外键,使用check 约束,或者通过使用触发器和级联更新。

1.3 需求分析阶段成果1.3.1 体会与收获系统需求分析主要是通过对本校图书管理员的咨询、请教,了解我校图书馆的管理规则和运行机制,并通过上网搜索有关图书管理系统的知识,了解到了图书管理的现状,以及在管理中的一些问题。

由于是第一次做这样的需求调查,开始总是觉得无从下手,不知道自己该了解、该清楚那些方面的知识,在绘制系统业务流程图时,也遇到了很多的问题,但通过老师的帮助与指导,和自己一遍一遍的分析和完善,才逐步把业务弄清楚,最终顺利完成了需求分析阶段的任务。

1.3.2 图书管理系统业务流程图从读者角度考虑的业务流程图:1.3.3 图书管理系统数据流程图顶层数据流图:第2层数据流图:(读者借阅,读者还书,读者查询,管理员查询,管理员修改)第3层数据流图:(读者借阅)图1.1 业务流程图图 1.2 顶层数据流第3层数据流图:(读者还书)第3层数据流图:(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)第3层数据流图:(管理员添加、删除、修改图书信息)第3层数据流图:(管理员添加、删除、修改读者信息)第3层数据流图:(管理员添加、删除、修改系统用户信息)1.3.4 图书管理系统数据结构表1.2 数据结构列表数据结构编号数据结构名数据结构含义组成DS-1Book馆藏图书信息BookID,BookNo,BookName,BookWriter, BookPublish,BookPrice,BookDate,BookClass, BookMain,BookPrim,BookCopy,BookState, BookRNoDS-2Reader读者信息ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate,DS-3Borrow借阅信息BookID,ReaID,BookName,BookWriter, Outdate,YHdate DS-4History借阅历史BookID,ReaID,BookName,BookWriter, Outdate,IndateDS-5Fine罚款信息BookID,ReaID,BookName,Outdate,Indate,Fine, CLState,MIDDS-6ReaderType读者类别LBID, LBName, LBnum, LBbqx, LBqxDS-7Maneger管理员信息MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre DS-8Room馆室信息RoomNO, RoomMID, RoomNum, RoomAddre1.3.5 处理逻辑描述处理编号处理功能处理过程PR-1判断读者查询涉及的功能模块馆藏图书信息模块、读者信息模块、读者类别信息模块、借阅信息模块、借阅历史信息模块、罚款信息模块、管理员模块、馆室信息模块:先确定查询所涉及的功能模块;然后,根据要查询的内容,确定查询数据流向;最后显示查询结果。

PR-2判断图书、读者修改要涉及的模块,同时把相应的修改数据传到相应的模块之中馆藏图书信息模块、读者信息模块、读者类别信息模块、管理员信息模块、馆室信息模块:先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作。

2. 概念设计阶段2.1 引言系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书管理效率的目的。

主要任务是对读者信息、管理员信息、图书资料信息、借阅信息、归还图书信息、罚款信息的基本信息的操作及外理。

概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。

2.2 任务与目标(1)选择中层数据流为切入点,通常选择实际系统中的子系统;(2)设计分E-R图,即各子模块的E-R图;(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;(4)生成全局E-R图,通过消除冲突等方面。

在本图书管理系统中,从第3层数据流程图下手。

分析各3层数据流图和数据字典,知道整个系统功能围绕“读者”、“管理员”和“图书”的处理。

根据实体与属性间的两条准则:○1作为“属性”,不能再具有需要描述的性质。

○2“属性”不能与其他实体具有联系。

数据流程图2.4 、图2.5、图2.6可综合成借阅子系统的分E-R图3.1,数据流程图2.7可抽象为分E-R图3.2,数据流程图2.8可抽象为分E-R图3.3,数据流程图2.9可抽象为分E-R图3.4。

然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图3.5。

2.3 阶段结果(1)根据不同的对象,从第3层数据流程图入手,分别画出各分E-R图:(a)从数据流程图图(三) 与图(四)抽象出的分E-R图:(c)从数据流程图图(六)抽象出的分E-R图:(d)从数据流程图图(七)抽象出的分E-R图:(e)从数据流程图图(八)抽象出的分E-R图:(2)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R 图,再消除不必要冗余,得到的基本E-R图如下所示:(3)各E-R图各实体的属性如下所示:图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate,BookClass, BookMain, BookPrim, BookCopy, BookState,BookRN)读者:Reader(ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade,ReaPref, ReaDate)管理员:Maneger(MID, MName, MSex, Mpwd, MAuth, MTeleph, MAddre)馆室:Room(RoomNo,RoomMID,RoomNum,RoomAddre)读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx)各E-R图中联系的属性如下所示:借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate)借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate)罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID)3.逻辑设计阶段3.1逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。

相关文档
最新文档