数据库课程设计课程设计报告——《学生学籍管理系统》学院:信息科学与工程学院班级:控制0805班学号:0909081021姓名:伍中意日期:2009-12-20目录前言……………………………………………………………1摘要……………………………………………………………1一、绪论………………………………………………………2二、系统需求分析……………………………………………22.1开发软件…………………………………………………22.2设计方法…………………………………………………22.3数据字典…………………………………………………22.4数据流图…………………………………………………3三、关系数据模型的设计……………………………………63.1系统概念模型………………………………………………73.2E-R图………………………………………………………73.3SQL表关系图……………………………………………83.4数据库物理结构设计………………………………………8四、系统实现…………………………………………………94.1数据库的建立………………………………………………94.2Delphi应用程序开发………………………………………104.3各功能模块的设计…………………………………………114.4窗体设计……………………………………………………14附录……………………………………………………………17前言:目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系统,以便完成对学生信息的管理。学生信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了可能。在采用和实施学生信息管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。学校管理人员只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。采用和实施学生信息管理系统不仅仅是为了提高工作效率。应该看到,在实施学生信息管理系统后,经过整合的、较为全面、准确、一致和相容的信息不仅可以让学校领导对本学校学生资源的现状有一个比较全面和准确的认识,同时也可以生成综合的分析报表供学校领导人在决策时参考。摘要:本次课程设计采用SQL数据库与Delphi结合的方式,通过用SQL建立起基本表,然后分析各表之间的联系,以及要实现的功能,然后通过Delphi来设计用户操作界面,从而完成学生管理系统的设计。一、绪论SQL是一种介于关系代数与关系演算之间的语言,其功能包括数据查询(query)、数据操作(datamanipulation)、数据定义(datadefinition)和数据控制(datacontrol)四个方面,是一个通用的,功能极强的关系数据库语言。目前SQL语言已经成为关系数据库的标准语言。SQL具有高度统一、高度非过程化、采用面向集合操作方式、支持三级模式结构、具有一种语法、两种使用方式、结构简洁、易学易用的特点,所以为广大用户和业界所接受,成为国际标准。做学生管理系统是由于现在学校学生数量很多,而学生信息的管理及其课程管理与选课过程都是一个大量的重复的工作,且信息散乱,本系统的作用就是使这些散乱的信息具体化、直观化。二、系统需求分析2、1开发软件采用Delphi可视化编译环境,开发windows应用程序;采用SQLSever数据库作为支撑,构建一套规范且符合教学管理需求的教学管理系统。2、2设计方法采用规范式设计法,分为四个阶段:需求分析、概念设计、逻辑设计、物理设计。数据库采用基于E-R模型以及基于3NF的设计方法。2、4数据字典数据项学生表(XS)名称数据类型大小约束Xh(主键)char10notnullXmchar10notnullXbchar10nullCssjchar10nullZychar10nullZxfchar10nullBzchar10nullKchchar10Notnull课程表(XS_KC)名称数据类型大小约束Xh(主键)char10NotnullXchchar100nullCjchar10null性别表(XBM)名称数据类型大小约束XbChar10NotnullXbmChar10Notnull数据约束(1)实体完整性约束:基本关系的所有主键的属性都不能取空值且主键作为唯一性标识。需要满足该约束的主键:学生表(XS).学号(xh)、课程表(KCB).课程编号(kch).(2)参照完整性约束:外键的值只能取空值或等于关联主键的值。需要满足该约束的外键:学生表(XS).学号与课程表(KCB)课程号外键关联.(3)用户定义完整性约束:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。需要满足该约束的属性:学生表(XS).学号,课程表(KCB).课程编号,.都不能为空,学生表(XS).性别只能为男或女。数据流图数据存储信息XS表:Xh(主键)、Xb、Xb、Cssj、Zy、Zxf、Bz、Kch(外键)。KC表:Kch(主键)、kCM、Cj。XBM表:Xb、Xbm。三、关系数据库的模型建立3、1系统概念模型学生信息管理E-R图学生课程录入查询学生信息课程成绩3、2SQL表关系图学生管理课程课程信息学生查询学生信息属于成绩属于3、3数据库的物理结构设计数据库物理模型可以从概念模型转化形成,物理模型设计产生数据库数据库的物理结构,即将数据库设计映射到一个具体的类型的物理数据库上。逻辑结构中的实体会形成物理结构中的数据表。将该数据库设计映射到SQL数据库上,生成学生管理系统的数据库表XS、KCB、XBM,如下为这三个表的结构:四、系统实现4、1数据库建立使用SQL语言在SQLServer2000的查询分析器中建基本表。具体处理流程如下:创建XS表:创建XS_KC表:创建XBM表:我们还可以在企业管理器中创建表,操作比较简单,在这里不做过多解释。4、2Delphi应用程序开发使用Delphi7作为开发工具,完成与SQLServer数据库的连接,以及用户界面的设计。4、2、1系统功能模块图系统各功能模块图功能的实现添加功能:使用ADOQuery组件的Append方法或SQL语句添加数据。修改功能:使用ADOQuery组件的Edit方法或SQL语句修改数据。删除功能:使用ADOQuery组件的Delete方法或SQL语句删除数据。查询功能:通过编辑ADOQuery组件的SQL语句进行查询。信息的显示:对于批量数据使用DBGrid组件显示,对于单个数据使用Edit、DBEdit、Combobox以及DataTimepicker等组件显示。数据的输入:使用Edit、DBEdit、Combobox以及DataTimepicker等组件进行数据的输入。学生管理系统学生信息管理课程成绩管理修改查询插入删除查询连接数据库采用ADO方式连接和访问数据库。使用ADOConnection组件连接SQLServer数据库:连接数据库属性设计:4、4窗体设计主界面:查询界面:修改界面:插入界面:删除界面:附录Delphi应用程序源代码一、工程代码数据库链接:unitUnit1;interfaceusesSysUtils,Classes,DB,ADODB;typeTXSCJDM=class(TDataModule)XSCJADOConnection:TADOConnection;XSCJADOCommand:TADOCommand;XSCJADODataSet:TADODataSet;ADOStoredProc1:TADOStoredProc;XSCJDataSource:TDataSource;private{Privatedeclarations}public{Publicdeclarations}end;varXSCJDM:TXSCJDM;implementation{$R*.dfm}end.主界面unitUnit6;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Menus,ExtCtrls,jpeg;typeTXSCJGL=class(TForm)Panel1:TPanel;MainMenu1:TMainMenu;MainMenu2:TMainMenu;N1:TMenuItem;N3:TMenuItem;Select_Button:TMenuItem;Update_Button:TMenuItem;Delete_Button:TMenuItem;N6:TMenuItem;Insert_Button1:TMenuItem;Insert_Button2:TMenuItem;Image1:TImage;Image2:TImage;procedureSelect_ButtonClick(Sender:TObject);procedureInsert_Button1Click(Sender:TObject);procedureUpdate_ButtonClick(Sender:TObject);procedureDelete_ButtonClick(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varXSCJGL:TXSCJGL;implementationusesUnit7,Unit8,Unit9,Unit3;{$R*.dfm}procedureTXSCJGL.Select_ButtonClick(Sender:TObject);beginXSCJGL.Visible:=false;CX.Show;end;procedureTXSCJGL.Insert_Button1Click(Sender:TObject);beginXSCJGL.Visible:=false;CR1.Show;end;procedureTXSCJGL.Update_ButtonClick(Sender:TObject);beginXSCJGL.Visible:=false;XG.Show;end;procedureTXSCJGL.Delete_ButtonClick(Sender:TObject);beginXSCJGL.Visible:=false;SC.Show;end;end.查询:unitUnit7;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Grids,StdCtrls,ExtCtrls,DBGrids,jpeg;typeTCX=class(TForm)Panel2:TPanel;Label1:TLabel;Edit1:TEdit;Button1:TButton;Button2:TButton;Panel3:TPanel;DBGrid1:TDBGrid;Label2:TLabel;Image1:TImage;procedureButton1Click(Sender:TObject);procedureButton2Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varCX:TCX;implementationusesUnit6,Unit1;{$R*.dfm}procedureTCX.Button1Click(Sender:TObject);VarXh,Sql:String;beg