数据库课程设计概要_第1页
数据库课程设计概要_第2页
数据库课程设计概要_第3页
数据库课程设计概要_第4页
数据库课程设计概要_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、 信息工程学院课程设计报告设计名称: 数据库课程设计 姓 名:学 号:专业班级:系 (院):设计时间:设计地点:指导老师:一课程设计目的数据库课程设计是为数据库原理与应用课程而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。通过本实验达到以下目的:(1) 培养学生具有C/S和B/S/S模式的数据库应用软件系统的设计和开发能力。(2) 熟练掌握一种数据库系统(如SQL SERVER)的使用。(3) 熟练掌握一种数据库应用软件开发工具(如POWERBUILDER 、ASP、VB.NET)的使用。(4) 通过设计实际的数据库系统应用课题,进一步熟悉数据库管

2、理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。二课程设计任务与要求:1、任务:学生选课系统问题描述:1) 学校现有课程若干门。2) 课程表的信息有课程号、名字、学分、学期、课时等。3) 学生表的信息有学生号、名字、性别、年龄、。4) 选课表的信息有选修课程号、学生的学号、课程学分。5) 用户表信息有用户名、用户密码、用户权限。2、设计要求:1) 实现学生表中学生信息的插入、修改、删除。2) 实现课程表中课程信息的插入、修改、删除。3) 实现选课表中得选修课程的选课信息查询、进行课程选择。4) 管理员进行登陆后才能访问此数据库。5)设计一完整的数据库。要求掌握数据库的设计的每个步

3、骤;掌握数据设计各阶段的输入、输出、设计环境、目标和方法;熟练的使用SQL语言实现数据库以与数据库重要对象的建立、应用和维护。三课程设计说明书1 需求分析(1)数据需求学生选修信息系统需要完成功能主要有:1、课程基本信息的输入查询、修改、删除,包括课程号、课程名字、学期、课程学分等。2、学生基本信息的的输入查询、修改、删除,包括学号、学生、学生性别、学生年龄、系别等。3、学生选课的基本信息的选课信息查询、学生进行课程选择。4、管理员的基本信息的输入、查询、修改、包括用户名、密码。(2)事务需求在课程信息部分,要求:a.可以查询课程信息。b.可以对课程信息进行插入、修改与删除的操作。在学生信息部

4、分,要求:a.可以查询学生信息:b.可以对学生信息进行维护,包括插入、修改与删除的操作。在学生选课信息管理部分,要求:。a.可以学生选课信息。b.可以对学生选课信息进行查询与学生选课操作。在用户登录信息管理部分,要求:a.能够使用用户信息进行登录访问b.可以对用户个人信息进行修改、删除维护操作 (3)关系模式(1)课程类别(课程编号,课程名、课程学分、学期、课程学时)(2)学生类别(学生号,学生,学生性别,学生年龄,学生系别 )(3) 学生选课类别(课程号,学生号,学生成绩)(4) 用户类别(用户名,用户密码,用户权限)(4)数据流程图(DFD)课程信息查询课程信息课程信息分数信息学生信息课程

5、信息息用户用户用户用户用户学生信息管理系统用户分数查询用户用户学生信息查询学生用户分数信息用户删除修改信息图1-1顶层数据流图登 录P1F1P3删除修改查询P2管理P4D2D3D4D1F2F3F5F4图1-2一层数据流图P数据流数据处理D数据存储F注:D1 用户表D2 课程表 D3 成绩表D4 学生表F1 登录信息F3,F4,F5各种选课、学生信息 F2 用户信息F6各种信息P2.1选择查询F5.1P2.2课程信息查询P2.3成绩信息查询P2.5学生信息查询D3D2D4F7F5.3F5.2F5图1-3二层数据流图P4.1选择P4.3学生信息管理P4.4课程信息管理P4.2成绩信息管理D3D2D

6、4F4F4.1F4.2F4.3F8图1-4二层数据流图(5)数据字典 为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计与以后的实现提供供有关元素一致性定义和详细的描述数据流字典数据流名称:读者登录 标志符:F1别名:无来源:用户去向:查询处理过程(P)数据组成:用户名+密码+用户权限数据流名称:学生信息查询 标志符:F5.3别名:无来源:用户去向: 查询处理过程(P2.3)数据组成: 学号+性别+年龄+系别数据流名称:课程信息查询 标志符:F5.1别名:无来源:用户去向: 查询处理过程(P2.

7、1)数据组成: 课程号+课程名+学分+学时+课时数据流名称:成绩信息查询 标志符:F5.2别名:无来源:用户去向: 查询处理过程(P2.2)数据组成: 学号+课程号+分数数据流名称:学生信息管理 标志符:F4.2别名:无来源:用户去向: 查询处理过程(P4.2)数据组成: 学号+性别+年龄+系别数据流名称:课程信息管理 标志符:F4.3别名:无来源:用户去向: 查询处理过程(P4.3)数据组成:课程号+课程名+学分+学时+课时数据流名称:成绩信息管理 标志符:F4.1别名:无来源:用户去向: 查询处理过程(P4.4)数据组成:学号+课程号+分数数据存储字典:数据存储名称:用户数据库 标志符:D

8、1描述:所有用户的信息流入数据流:F1涉与处理:P4 P5数据组成:用户名+密码+用户权限数据存储名称:课程数据库 标志符:D2描述:所有课程信息的详细资料流入数据流:F3涉与处理:P4 P5数据组成:课程号+课程名+学分+学时+课时数据存储名称:成绩数据库 标志符:D3描述:所有用户的成绩数据详细资料流入数据流:F3涉与处理:P4 P5数据组成:学号+课程号+分数数据存储名称:学生数据库 标志符:D4描述:所有学生信息的详细资料流入数据流:F3涉与处理:P4 P5数据组成:学号+性别+年龄+系别数据处理字典:数据处理名称:用户登录 标志符:P1处理定义:登录系统 激发条件:所输入用户民和密码

9、正确输入:F1输出:F4,F5,F6数据处理名称:查询选择 标志符:P2.1处理定义:选择查询方式 激发条件:已选择查询方式输入:F5输出:F7数据处理名称:学生查询选择 标志符:P2.2处理定义:选择查询方式 激发条件:已选择查询方式输入:F4输出:F7数据处理名称:成绩查询选择 标志符:P2.3处理定义:选择查询方式 激发条件:已选择查询方式输入:F4输出:F7数据处理名称:课程查询选择 标志符:P2.4处理定义:选择查询方式 激发条件:已选择查询方式输入:F4输出:F7数据处理名称:管理选择 标志符:P4.1处理定义:选择管理功能 激发条件:选择输入:F4输出:F8数据处理名称:成绩管理

10、选择 标志符:P4.2处理定义:选择管理功能 激发条件:选择输入:F4输出:F8数据处理名称:学生管理选择 标志符:P4.3处理定义:选择管理功能 激发条件:选择输入:F4输出:F8数据处理名称:课程管理选择 标志符:P4.4处理定义:选择管理功能 激发条件:选择输入:F4输出:F82 概要设计(1)实体图与E-R图所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。该选课系统可以划分的实体有:用户实体,学生实体,课程实体,选课记录实体。用户信息实体图:用户信息用户密码用户XX用户权限图2-1 用户实体与其属性图学生信息实体图:学生信息所在系学生学号学生XX学生性别学生年龄图2-

11、2 学生实体与其属性图课程信息实体图课程信息课时课程编号课程名学分学期图2-3 课程实体与其属性图选课记录信息实体图选课信息课程编号学生学号成绩图2-4 选课记录实体与其属性图选修学生信息实体课程信息实体属于用户信息实体选课信息实体记录记录mn总的E-R图:m111nm图2-5 总的E-R图3逻辑设计表3-1课程表表中列名数据类型可否为空说明CnoVarchar(10)not null(主键)课程号CnameVarchar(20)not null课程名Ccredtintnull学分Csemesterintnull学期Cperiodintnull课时表3-2学生表表中列名数据类型可否为空说明Sn

12、oVarchar(10)not null(主键)学生号Snamevarchar(8)not nullSsexvarchar(2)not null性别Sageintnot null年龄SdeptVarchar(20)null院系表3-3成绩表表中列名数据类型可否为空说明CnoVarchar(10)Not null(主键)课程号SnoVarchar(10)Not null(主键)学生号gradeintnull成绩表3-4 用户表表中列名数据类型可否为空说明userNameVarchar(16)Not null(主键)用户名userPasswordVarchar(16)Not null密码userP

13、urviewVarchar(8)null用户权限4 关系图4-15 物理设计数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。(1) 建立索引: 对课程表在Cno属性列上建立聚集索引,在Cname,Ccredt,Csemester,Cperiod属性列上建立非聚集索引。 对学生表在Sno属性列上建立聚集索引,在Sname,Ssex,Sage,Sdept属性列上建立非聚集索引 对成绩表在Cno,

14、Sno属性列上建立聚集索引,在grade属性列上建立非聚集索引 对用户表在userName属性列上建立聚集索引,在userPassword,userPurview属性列上建立非聚集索引(2) 存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排与存储结构,以与确定系统存储参数的配置。将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以系统将日志文件和数据文件存放在不同磁盘上。6.数据库建立(1)创建数据库create database lllon(name=lll_data,filename='E:sqll

15、ll_data.mdf',size=5MB,maxsize=20MB,filegrowth=2MB)log on(name=lll_log,filename='E:sqllll_log.ldf',size=1MB,maxsize=20MB,filegrowth=20%)(2)创建学生信息表create table 学生表 (Sno char(10) primary key,Sname char(10) unique,Ssex char(5),Sage int,Sdept char(8);(3)创建课程信息表create table 课程表 (Cno char(10),

16、Primary key (cno),Cname char(10),Ccredt char(10)Csemester char(10)Cperiod char(10);(4)创建成绩表create table 成绩表 (Sno char(10),Cno char(10), grade smallint, Primary key(sno,cno), foreign key(sno) references student(sno), foreign key(cno) references course(cno);(5)创建用户表create table 用户表 (userName char(10)u

17、serPassword char(20)userPurview char(10))7.数据初始化(1)往学生信息表插入数据insert into 学生表(Sno,Sname,Ssex,Sage,Sdept)values('11341','晨','男',20,'cs');insert into学生表values('11342','晨','女',19,'cs');insert into学生表values('11343','王敏','

18、女',18,'ma');insert into 学生表values('11344','立','男',20,'is');(2)往课程信息表插入数据insert into课程表(Cno Cname Ccredt Csemeste Cperiod)values('1001','数据库','4',3,80);insert into课程表values('1002','数学','5,2,75');insert into课程表

19、values('1003','信息系统','4,2,65');insert into 课程表 values('1004','操作系统','3,3,90');(3)往成绩表插入数据insert into 成绩表(sno,cno,grade)values('11341','1001',92);insert into成绩表values('11342','1002',85);insert into成绩表values('11343'

20、;,'1003',88);insert into成绩表values('11344','1004',90);(4)往用户表插入数据insert into 用户表(username userPassword userPurview)values(春振,123,超级用户)insert into 用户表values(龙龙,123,管理员)insert into 用户表values(毋康康,123,一般用户)insert into 用户表values(吕斌,123,管理员)8数据库权限管理该系统设置三种类型的用户(1) 管理员:龙龙,吕斌(2) 超级用户:

21、春振(3) 一般用户:毋康康9、建立触发器,存储过程-建立学生信息管理的存贮过程create procedure studentmessageasbeginselect sno,sname from tbl_学生表endgoexec studentmessagego-建立课程信息的存贮过程create procedure coursemessageasbeginselect sno,sname from tbl_课程表endgoexec coursemessagego-创建触发器score_grade_tricreate trigger score_grade_trion sc for ins

22、ert,updateasdeclare score_read intselect score_read=grade from insertedif score_read>=0 and score_read<=100beginprint '操作完成'returnendelsebeginprint '成绩输入不合法,请重新输入!'rollback transactionend-创建触发器triscsnocreate trigger triscsnoon sc for updateasif update(sno)begindeclare sno_old c

23、har(10),count intselect sno_old=sno from deletedselect count=count(*) from student where sno=sno_oldif count>0rollback transactionEnd10 系统实现(1) 系统功能模块图:系统功能模块图如图10-1学生选课管理系统登录子系统学生信息管理子系统课程信息管理子系统学生选课信息管理子系统学生信息添加学生信息修改学生信息删除课程信息添加课程信息修改课程信息删除选课信息的查询进行课程选择图10-1系统功能模块图四个子系统的功能如下:登录子系统: 可以实现学生选课系统管

24、理员。学生信息管理子系统:主要用于管理员对学生信息添加、修改、删除操作,实现学生信息数据的更新。课程信息管理子系统:主要用于管理员对选修课程信息的添加、修改、删除管理,实现课程信息数据的更新。成绩表管理子系统:主要用于管理员对选课信息的查询和学生进行选课操作。(2) 前台开发平台的选择:VB.NET(3) VB.NET与数据库的连接ADO.NET是VB.NET访问数据库的主要方式。ADO.NET的数据访问方式ADO.NET 的数据存取API 提供3 种数据访问方式:a)通过ODBC 相连,访问支持早期ODBC 协议的数据库。b)通过OLEDB 相连,访问SQL Server2005, Micr

25、osoftAccess, Oracle 或者其他有提供OLE DB 连接能力的数据库c)使用SqlConnection 直接SQL Server2005相连VB.NET访问数据库的具体过程a)创建数据库连接ADO.NET 中使用sqlConnection 类对SQL Server2005以与更高版本进行连接,这个类的构造函数接受一个可选参数,称为连接字符串,该字符串用于定义正在连接的数据库的类型、位置以与其他信息,这些属性用分号分隔,通常该字符串包含如下信息:Data Source 特性:指定SQL Server 数据库所在计算机名称; Initial Catalog 特性:指定连接的SQL

26、Server 数据库的名称;userName 和userPassword 特性:指定用SQL SERVER登录方式的有效名和密码或设置为:integrated security=SSPI设置为Windows 登录方式。b ) 填充数据创建数据源连接以后,接下来创建数据适配器,适配器在创建过程中需要向其传递两个要素:用于包含结构化查询语句的数据描述和用于指明数据库连接信息的连接描述,创建后可利用Fill 方法,将所需的数据填充在一个数据集(DataSet)中。c ) 关闭数据库的连接由于DataSet采用是断开连接的方式,所以当把数据填充到数据集后即可断开与数据库的连接。d)为控件指定数据源数据

27、填充到数据集后,要在窗体上显示出来,则必须把相应的数据表绑定到数据控件上。具体实现代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Windows.Forms;namespace hcypublicclassDataBase publicSqlConnection dataConnection = newSqlConnection();publicSqlD

28、ataAdapter dataAdapter;publicDataSet dataSet = newDataSet();string connstr = "server=PC-20100908TULP;database=mysql;integrated security=SSPI"publicDataSet GetDataFormDB(string sqlStr) try dataConnection.ConnectionString = connstr; dataAdapter = newSqlDataAdapter(sqlStr, dataConnection); da

29、taSet.Clear(); dataAdapter.Fill(dataSet); dataConnection.Close(); catch (Exception ex) MessageBox.Show(ex.Message); dataConnection.Close(); if (dataSet.Tables0.Rows.Count != 0) return dataSet; else returnnull; publicbool UpdateDB(string sqlStr) SqlConnection sqlConn = newSqlConnection(connstr);try S

30、qlCommand cmdTable = newSqlCommand(sqlStr,sqlConn); cmdTable mandType = CommandType.Text; sqlConn.Open(); cmdTable.ExecuteNonQuery(); sqlConn.Close();returntrue; catch (Exception ex) MessageBox.Show(ex.Message);returnfalse; (4) 登录系统模块与代码a) 学生成绩管理系统登录界面如图10-2图10-2学生选课系统登录界面图登陆代码为:try DataBase db = ne

31、wDataBase();DataSet ds = newDataSet();string sqlStr = "select userPassword,userPurview from 用户表 where userName='" + txtuserName.Text.Trim() + "'" ds = db.GetDataFormDB(sqlStr);string str1, str2,str3; str1 = ds.Tables0.Rows0.ItemArray0.ToString().Trim(); str3 = ds.Tables0.

32、Rows0.ItemArray1.ToString().Trim(); str2 = txtPassWord.Text.Trim();if (str1 = str2) if (str3 = comboBox1.Text.ToString().Trim() Form2 ob_Form2 = newForm2();shuzu.userInfo0 = txtuserName.Text.Trim();shuzu.userInfo1 = ds.Tables0.Rows0.ItemArray1.ToString(); ob_Form2.Show();this.Hide(); else MessageBox

33、.Show("用户权限错误,请重新输入"); comboBox1.Text = "" comboBox1.Focus(); else MessageBox.Show("用户名或密码错误,请重新输入"); txtuserName.Text = "" txtPassWord.Text = "" txtuserName.Focus(); catch MessageBox.Show("用户名或密码错误","错误"); 学生选课系统主界面如图10-3略图10-3学生

34、选课系统主界面学生信息管理界面如图10-4 图10-4学生信息管理界面可以进行学生信息的添加、修改、删除操作。代码如下:try if (button1.Text.Trim() = "添加") button1.Text = "确定" ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; else button1.Text = "添加"if (txtID.Text.Trim() != "&quo

35、t; && txtName.Text.Trim() != "") string sqlStr; sqlStr = "insert into 学生表 values('" + txtID.Text.Trim() + "','" + txtName.Text.Trim() + "','" + comSex.Text.Trim() + "','" + txtAge.Text.Trim() + "','&qu

36、ot; + txtSdept.Text.Trim() + "')"DataBase db = newDataBase();bool b; b = db.UpdataDB(sqlStr);if (b = true) if (MessageBox.Show("添加成功!继续添加吗?", "添加学生", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) /Clear();/Obj

37、Close(); RefresData();/button1.Text = "" Form3_Load(null, null); button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; else ObjClose(); button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; dgrdvStudent.Enabled = true; else goto exit; else MessageBox.Sho

38、w("学号和不能为空"); txtID.Focus(); button1.Text = "确定" RefresData(); txtID.SelectAll(); 修改:try if (button2.Text.Trim() = "修改") button2.Text = "确定" button1.Enabled = false; button3.Enabled = false; button4.Enabled = false; txtName.Enabled = true; txtAge.Enabled = tru

39、e; txtSdept.Enabled = true; comSex.Enabled = true; txtName.Focus(); else button2.Text = "修改" button1.Enabled = true; button3.Enabled = true; button4.Enabled = true; ObjClose();string sqlStr; sqlStr = "update 学生表 set Sname='" + txtName.Text.Trim() + "',Ssex='"

40、; + comSex.Text.Trim() + "',Sage='" + txtAge.Text.Trim() + "',Sdept='" + txtSdept.Text.Trim() + "' where Sno='" + txtID.Text.Trim() + "'"DataBase db = newDataBase(); db.UpdataDB(sqlStr); RefresData(); catch (Exception ex) MessageBox

41、.Show(ex.Message); 删除try if (button3.Text.Trim() = "删除") button3.Text = "确定" button1.Enabled = false; button2.Enabled = false; button4.Enabled = false; else button3.Text = "删除" button1.Enabled = true; button2.Enabled = true; button4.Enabled = true; ObjClose();string sql

42、Str; sqlStr = "delete from 学生表 where Sno= '" + txtID.Text.Trim() + "'"DataBase db = newDataBase(); db.UpdataDB(sqlStr); RefresData(); Form3_Load(null, null); catch(Exception ex) MessageBox.Show(ex.Message); 课程信息管理界面如图10-5所示:图10-5课程信息管理界面可以进行被选择课程信息的添加、修改、删除操作。代码如下:添加:try

43、if (button1.Text.Trim() = "添加") button1.Text = "确定" ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; else button1.Text = "添加"if (txtCno.Text.Trim() != "" && ss.Text.Trim() != "") string sqlStr; sqlStr = "insert into 课程表 values('" + txtCno.Text.Trim() + "','" + txtCname.Text + "','" + txtCredit.Text.Tr

温馨提示

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

评论

0/150

提交评论