SQLServer数据库课程设计报告.docx
- 文档编号:4081536
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:17
- 大小:263.87KB
SQLServer数据库课程设计报告.docx
《SQLServer数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
SQLServer数据库课程设计报告
武汉工业学院
《数据库系统》
课程设计说明书
设计题目:
选课管理系统
姓名陶向东
学院_数学与计算机学院_
专业计算机类
学号*********
指导教师李禹生
2012年6月8日
一、读书笔记
1)SQL数据库的实际应用
①、SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:
这一部分又称为“SQLDDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:
这一部分又称为“SQLDML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:
对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:
规定SQL语句在宿主语言的程序中使用的规则。
②、在如今的互联网系统中主要存在B-S模式和C-S模式,B-S模式指的是浏览器服务器模式,C-S模式指的是客户服务器模式。
两者的相同部分就是SERVER服务器,SERVER服务器是指的专用计算机,它拥有大容量存储设备和高性能计算功能,用于存储复杂的用户数据,这些复杂臃繁的数据以关系模型存储也就是二维表的形式存储,各二维表之间以相同的字段形成联系,这样存储的好处是具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
在这些专用计算机运行着位于用户与操作系统之间的一层数据管理软件。
数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统,其主要功能包括数据定义,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。
而数据库系统是指的在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
2)SQL数据库的安全性
①、计算机系统的三类安全性问题
1.所谓计算机系统安全性,是指为计算机系统建立和采用的各种安全保护措施,以保护计算机系统中的硬件、软件、及数据,防止其偶然或恶意的原因是系统遭到破坏,数据遭到更改或泄露等。
2.技术安全:
计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。
3.管理安全:
由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。
4.政策法律:
政府部门建立的有关计算机犯罪、数据安全保密的法律准则和政策法规、法令。
②、数据库安全性控制
1.用户标识与鉴别:
用户标识、口令。
2.存取控制:
定义用户权限,并将用户权限登记到数据字典中、合法权限检查。
③、自主存取控制(DAC)方法:
1.授权与回收:
GRANT语句,GRANTSELECTONTABALESCTOPUBLIC;//把对表SC的查询权限授予所有用户;REVOKE语句,REVOKESELECTONTABLESCFROMPUBLIC;//收回所有用户对表SC的查询权限;创建数据模式的权限,
CREATEUSER
[WITH][DBA|RESOURCE|CONNECT];
2.数据库角色:
角色创建,给角色授权,将一个角色授权给其他角色或用户,角色权限收回。
④、强制存取控制(MAC)方法。
3)SQL数据库的设计
1.数据库设计:
对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各个用户的应用需求,包括信息管理要求和数据操作要求。
2.数据库设计的特点:
数据库建设的基本规律:
“三分技术,七分管理,十二分基础数据”;机构(数据)设计和行为(处理)设计相结合。
3.数据库设计方法:
计算机的基础知识,软件工程的原理和方法,程序设计的方法和技巧,数据库的基本知识,数据库设计技术,应用领域知识。
4.数据库设计的基本步骤:
需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。
4)SQL作为后台数据库与前台开发工具的结合
前台开发工具用于做前台页面,设计出可视化的图形界面,使不同权限的用户都便于操作整个系统。
而前台页面与后台数据库连接最关键的地方则在于SQL语句。
各种开发语言都提供了其连接数据库的类,通过这些类的相应方法实现连接数据库、对数据源的各种操作,包括查询、插入、删除、更新操作、返回操作结果等。
当点击图形界面相应的控件时,通过监听触发产生相应的SQL语句,然后执行SQL语句将返回的结构显示在图形界面上。
5)SQL查询命令的应用
SQL提供select语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。
分为:
1.单表查询2.连接查询3.嵌套查询4.集合查询。
6)SQL在VB、ASP或其他自选语言中的实际应用
SQL在C#中的实际应用:
首先实现对数据库的连接,必须创建一个字符型的连接语句:
StringConnectionString="DataSource=localhost;InitialCatalog=students;PersistSecurityInfo=True;UserID=sa;Password=txd100511726";
然后创建一个SqlConnection类对象实现对数据库的连接
SqlConnectionmyCon=newSqlConnection(ConnectionString);
通过事件产生SQL语句,stringselectSQL="selectSNO学号,SNAME姓名,SSEX性别,SAGE年龄,U_STUDENTS.CID班号,MAJOR专业,CLASS班级,DEPARTMENT系别fromdbo.U_STUDENTS,dbo.U_CLASSES
wheredbo.U_STUDENTS.CID=dbo.U_CLASSES.CIDandSNO='"+textBox6.Text+"'";
然后创建SqlCommand对象,SqlCommandmyCom=newSqlCommand();
执行SQL语句,实现对数据源的各种操作,然后返回操作结果。
二、系统分析
1开发背景
学生选课管理系统的设计为选课及成绩管理提供了一个良好的工具,此系统要帮助学校管理学生选课成绩管理。
使学生课程成绩更便于管理。
2需求分析(功能需求分析,数据流程分析即数据流图等)
学生选课管理系统的设计为选课及成绩管理提供了一个良好的工具,此系统基本实现了设计的要求,即登录系统(通过用户名和密码),管理(录入、查询、修改和删除)学生、课程基本资料,管理(录入、查询、修改和删除)学生所选课程成绩,修改用户密码等功能。
在此基础上,我还对系统进行了改进,特别是加强了查询的功能,使我们能更直观、有效地查询到我们想要的数据。
三、系统设计
1系统总体结构
系统的模块划分为如图所示,分别为:
用户登录、学生信息管理、课程信息管理、选课成绩管理、用户管理5个模块。
每个模块负责相应的功能。
系统采用ADO.NET技术实现对数据库的访问操作,使用SQLServer2005作为后台数据库。
①用户登录模块
提供用户登录界面,输入用户名,密码进行登录。
②学生信息管理模块
学生信息管理模块,用于管理学生的基本信息,所包括的字段有:
学号、姓名、性别、年龄、班级号,提供对学生信息的录入、查询、修改和删除的操作。
③课程信息管理模块
课程信息管理模块用于管理课程的信息,所包含的字段有:
课程号、课程号、学分和教师,提供对课程信息的录入、查询、修改和删除的操作。
④选课成绩管理模块
选课成绩管理模块用于管理学生的选课与成绩,所包含的字段有:
学号、课程号和成绩,提供对选课成绩信息的录入、查询、修改和删除的操作。
⑤用户管理模块
用户管理模块用于用户账号和密码的管理,其功能包括添加用户,注销用户和修改密码。
2数据库结构设计
①数据库列表:
表单号
表单名
功能
U_STUDENTS
学生信息表
储存学生个人信息
U_COURSES
课程信息表
储存每科课程的信息
U_SCORES
选修成绩表
储存学生所选修的课程的成绩
USERS
用户表
储存用户的账号与密码
U_CLASSES
班级表
存储班级信息
②数据库E-R图
③数据库表单
创建“USERS”并添加各字段,如图所示:
创建“U_STUDENTS”并添加各字段,如图所示:
创建“U_COURSES”并添加各字段,如图所示:
创建“U_SCORES”并添加各字段,如图所示:
创建“U_CLASSES”并添加各字段,如图所示:
④主要查询功能的SQL语句:
查询学生信息
按学号查找
selectSNO学号,SNAME姓名,SSEX性别,SAGE年龄,U_STUDENTS.CID班号,MAJOR专业,CLASS班级,DEPARTMENT系别fromdbo.U_STUDENTS,dbo.U_CLASSESwheredbo.U_STUDENTS.CID=dbo.U_CLASSES.CIDandSNO='"+textBox6.Text+"'";
按姓名查找
selectSNO学号,SNAME姓名,SSEX性别,SAGE年龄,U_STUDENTS.CID班号,MAJOR专业,CLASS班级,DEPARTMENT系别fromdbo.U_STUDENTS,dbo.U_CLASSESwheredbo.U_STUDENTS.CID=dbo.U_CLASSES.CIDandSNAME='"+textBox7.Text+"'
添加学生记录
selectSQL="selectSNO学号,SNAME姓名,SSEX性别,SAGE年龄,U_STUDENTS.CID班号,MAJOR专业,CLASS班级,DEPARTMENT系别fromdbo.U_STUDENTS,dbo.U_CLASSESwheredbo.U_STUDENTS.CID=dbo.U_CLASSES.CIDandSNAME='"+textBox7.Text+"'";
修改学生记录
updatedbo.U_STUDENTSsetSNAME='"+textBox2.Text+"',SSEX='"+textBox3.Text+"',SAGE='"+textBox4.Text+"',CID='"+textBox5.Text+"'whereSNO='"+textBox1.Text+"'";
删除学生记录
deletefromdbo.U_STUDENTSwhereSNO='"textBox1.Text+'";
查询课程信息
selectSQL="selectCNO课程号,COURSE课程名,CREDIT学分,TEACHER教师fromdbo.U_COURSESwhereCNO='"+textBox4.Text+"'";(按课程号查询)
selectCNO课程号,COURSE课程名,CREDIT学分,TEACHER教师fromdbo.U_COURSESwhereCOURSE='"+textBox5.Text+"'";(按课程名查询)
删除课程信息
deletefromdbo.U_COURSESwhereCNO='"+textBox1.Text+"'
修改课程记录
"updatedbo.U_COURSESsetCOURSE='"+textBox2.Text+"',CREDIT='"+textBox3.Text+"',TEACHER='"+textBox6.Text+"'whereCNO='"+textBox1.Text+"'";
添加课程记录
insertintodbo.U_COURSES(CNO,COURSE,CREDIT,TEACHER)values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox6.Text+"')";
查询选修课成绩
selectdbo.U_STUDENTS.SNO学号,dbo.U_STUDENTS.SNAME姓名,dbo.U_COURSES.CNO课程号,dbo.U_COURSES.COURSE课程名,dbo.U_COURSES.TEACHER教师,dbo.U_SCORES.SCORE成绩from
dbo.U_STUDENTS,dbo.U_COURSES,dbo.U_SCORES
wheredbo.U_STUDENTS.SNO=dbo.U_SCORES.SNOanddbo.U_COURSES.CNO=dbo.U_SCORES.CNO";
3开发方案的选择(主要是前端开发平台的选择与方案的比较)
前台开发方案主要有两种大方向:
主要存在B-S模式和C-S模式,B-S模式指的是浏览器服务器模式,C-S模式指的是客户服务器模式。
B-S模式可以选择ASP、JSP、PHP等通过浏览器解析运行网页文件来实现相应功能。
C-S模式可选前台开发语言较多,主要有:
JAVA,C#,C++等,通过窗体来实现相应功能。
四、系统实施
选课成绩模块的设计与实现(模块功能、运行界面、源代码)
1.运行界面:
2.源代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceProject2
{
publicpartialclassForm5:
Form
{
publicForm5()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text==""||textBox3.Text=="")
{
MessageBox.Show("必须填写学号和课程号!
填完修改信息再按修改按钮!
");
return;
}
stringUpdateSQL="updatedbo.U_SCORESsetSCORE='"+textBox5.Text+"'whereSNO='"+textBox1.Text+"'andCNO='"+textBox3.Text+"'";
ExcuteSQL(UpdateSQL);
MessageBox.Show("修改成功!
");
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
Form2form2=newForm2();
this.Hide();
form2.Show();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(textBox1.Text==""&&textBox3.Text=="")
{
MessageBox.Show("学号和课程号是必填项,请填完后再单击添加按钮!
");
return;
}
stringInsertSQL="insertintodbo.U_SCORES(SNO,CNO,SCORE)values('"+textBox1.Text+"','"+textBox3.Text+"','"+textBox5.Text+"')";
ExcuteSQL(InsertSQL);
MessageBox.Show("添加成功!
");
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(textBox1.Text==""&&textBox3.Text=="")
{
MessageBox.Show("必须填写学生学号和课程号,请填完后再单击删除按钮!
");
return;
}
stringDeleteSQL="deletefromdbo.U_SCORESwhereSNO='"+textBox1.Text+"'andCNO='"+textBox3.Text+"'";
ExcuteSQL(DeleteSQL);
MessageBox.Show("删除成功!
");
}
privatevoidDisplay()
{
StringConnectionString="DataSource=localhost;InitialCatalog=students;PersistSecurityInfo=True;UserID=sa;Password=txd100511726";
SqlConnectionmyCon=newSqlConnection(ConnectionString);
myCon.Open();
SqlCommandmyCom=newSqlCommand();
myCom.CommandType=CommandType.Text;
stringcomstr="selectU_STUDENTS.SNO,U_STUDENTS.SNAME,U_COURSES.CNO,U_COURSES.COURSE,U_SCORES.SCOREfromdbo.U_STUDENTS,dbo.U_COURSES,dbo.U_SCORESwhereU_STUDENTS.SNO=U_SCORES.SNOandU_COURSES.CNO=U_SCORES.CNO";
myCom.CommandText=comstr;
myCom.Connection=myCon;
SqlDataReadermyReader=myCom.ExecuteReader();
myReader.Read();
textBox1.Text=myReader.GetString(0);
textBox2.Text=myReader.GetString
(1);
textBox3.Text=myReader.GetInt16
(2).ToString();
textBox4.Text=myReader.GetString(3);
textBox5.Text=myReader.GetInt32(4).ToString();
myReader.Close();
myCon.Close();
}
privatevoidExcuteSQL(stringSQL)
{
StringConnectionString="DataSource=localhost;InitialCatalog=students;PersistSecurityInfo=True;UserID=sa;Password=txd100511726";
SqlConnectionmyCon=newSqlConnection(ConnectionString);
myCon.Open();
SqlCommandmyCom=newSqlCommand();
myCom.CommandType=CommandType.Text;
myCom.CommandText=SQL;
myCom.Connection=myCon;
myCom.ExecuteNonQuery();
myCon.Close();
}
privatevoidtextBox3_TextChanged(objectsender,EventArgse)
{
}
privatevoidForm5_Load(objectsender,EventArgse)
{
Display();
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
StringConnectionString="DataSource=localhost;InitialCatalog=students;PersistSecurityInfo=True;UserID=sa;Password=txd100511726";
SqlConnectionmyCon=newSqlConnection(ConnectionString);
myCon.Open();
stringselectSQL="selectdbo.U_STUDENTS.SNO学号,dbo.U_STUDENTS.SNAME姓名,dbo.U_COURSES.CNO课程号,dbo.U_COURSES.COURSE课程名,dbo.U_COURSES.TEACHER教师,dbo.U_SCORES.SCORE成绩fromdbo.U_STUDENTS,dbo.U_COURSES,dbo.U_SCORESwheredbo.U_STUDENTS.SNO=dbo.U_SCORES.SNOanddbo.U_COURSES.CNO=dbo.U_SCORES.CNO";
SqlCommandmyCom=newSqlCommand();
SqlDataAdaptermyadpt=newSqlDataAdapter(selectSQL,myCon);
DataSetdataset=newDataSet();
dataGridView1.DataSource=dataset;
dataset.Clear();
myadpt.Fill(dataset);
dataGridView1.DataSource=dataset.Tables[0].DefaultView;
myCon.Close();
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
StringConnectionString="DataSource=localhos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 数据库 课程设计 报告