数据库课程设计之学生信息管理系统.docx
- 文档编号:30505300
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:19
- 大小:231.12KB
数据库课程设计之学生信息管理系统.docx
《数据库课程设计之学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之学生信息管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计之学生信息管理系统
一、引言
1.课程实验目的
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
课程设计的目的:
∙加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;
∙在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;
∙学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;
∙为毕业设计和以后工作打下必要基础。
2.课程实验题目:
设计一个大学教学数据库应用。
该系统涉及学生、教师、课程、分组、登记、数据。
3.课程设计要求:
运用数据库基本理论与应用知识,在微机RDBMS(SQLServer)的环境上建立一个数据库应用系统。
要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。
1.用E-R图设计指定题目的信息模型;
2.设计相应的关系模型,确定数据库结构;
3.分析关系模式各属于第几范式,阐明理由;
4.设计应用系统的系统结构图,确定系统功能;
5.使用对象许可和命令许可、角色控制设计安全性控制检查程序;
6.通过设计关系的主码约束、外码约束和使用CHECK、RULE实现完整性控制;
7.为每一参照关系设计插入、删除、修改触发器;
8.实现应用程序设计、编程、优化功能;
9.对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;
10.分析遇到的问题,总结并写出课程设计报告;
11.自我评价
二、
用E-R图设计选定题目的信息模型
学生实体的E-R图
教师实体E-R图
课程实体E-R图
分组实体E-R图
教师任课实体E-R图
三、设计相应的关系模型,确定数据库结构
*STUDENTS(student,student_name,address,zip,city,state,sex)
*TEACHERS(teacher,teacher_name,phone,salary)
*COURSES(course,course_name,department,nurc_credits)
*SECTION(section,teacher,course,num_students)
*ENROLLS(course,section,student,grade)
∙分析关系模式各属于第几范式,阐明理由;
STUDENTS属于BCNF,因为其中的每个决定因素都包含了码
TEACHERS属于BCNF,因为其中的每个决定因素都包含了码
COURSES属于BCNF,因为其中的每个决定因素都包含了码
ENROLLS属于BCNF,因为其中的每个决定因素都包含了码
SECTION属于BCNF,因为其中的每个决定因素都包含了码
∙设计关系的主码约束、外码约束和使用CHECK实现完整性控制;
STUDENTS信息基本表
createtableSTUDENTS(
studentchar(8)primarykey,
student_namechar(20),
addresschar(20),
zipchar(10),
citychar(20),
statechar(8),
sexchar
(2));
TEACHERS基本表
createtableTEACHERS(
teacherchar(8)primarykey,
teacher_namechar(10),
phonechar(10),
salarychar(8));
COURSES基本表
createtableCOURSES(
coursechar(8)primarykey,
course_namechar(20),
departmentchar(20),
nurc_creditschar(4));
SECTION表
createtableSECTION(
sectionchar(4),
teacherchar(8)primarykey,
coursechar(8),
num_studentschar(4),
foreignkey(course)referencesCOURSES(course));
ENROLLS表
createtableENROLLS(
coursechar(8),
sectionchar(4),
studentchar(8),
gradeSMALLINT,
primarykey(course,section,student),
foreignkey(course)referencesCOURSES(course),
foreignkey(student)referencesSTUDENTS(student));
∙为参照关系设计插入、删除、修改触发器;
∙实现应用程序设计、编程、优化功能;
∙对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;
四、源程序代码清单
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication2
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoid学生ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromSTUDENTS",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"STUDENTS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//学生基本信息
privatevoid教师ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromTEACHERS",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"TEACHERS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//教师基本信息
privatevoid课程ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromCOURSES",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"COURSES");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//课程基本信息
privatevoid分组ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromSECTION",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"SECTION");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//分组基本信息
privatevoid登记ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromENROLLS",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"ENROLLS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//登记基本信息
privatevoid查询1ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("select*fromCOURSESwheredepartmentIN('Math','English')",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"COURSES");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索系名为“Math”和“English”的课程表信息
privatevoid查询2ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectteacher_name,phonefromTEACHERSorderbyteacher_name",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"TEACHERS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//按字母顺序列出教师姓名和电话号码
privatevoid查询3ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectteacher_name,phonefromTEACHERSwherephonenotlike'257%'",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"TEACHERS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索电话号码不是以“257”打头的教师姓名和电话号码
privatevoid查询4ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectcourse_name,department,nurc_creditsfromCOURSESwheredepartment='Math'andnurc_credits>'3'",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"COURSES");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索数学系所有成绩大于3的课程名、系名、学分
privatevoid查询5ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectstudent_name,studentfromSTUDENTSwherenotexists(select*fromENROLLSwhereSTUDENTS.student=ENROLLS.student)",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"STUDENTS,ENROLLS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索没有选修任何课的学生姓名、学号
privatevoid查询6ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectstudentfromSTUDENTSwherenotexists(select*fromENROLLS,COURSESwhereSTUDENTS.student=ENROLLS.studentandCOURSES.course=ENROLLS.courseandcourse_name='CalculusIv')",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"STUDENTS,ENROLLS,COURSES");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索没有选修课程“CalculusIv”的学生学号
privatevoid查询7ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectdistinctstudentfromENROLLSAwherenotexists(select*fromTEACHERSwhereteacher_name='Dr.Lowe'andnotexists(select*fromENROLLSBwhereB.course=A.course))",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"TEACHERS,ENROLLS");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索至少选修教师“Dr.Lowe”所开全部课程的学生学号
privatevoid查询8ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectCOURSES.course,count(num_students),COURSES.course_namefromSECTION,COURSESwhereCOURSES.course=SECTION.coursegroupbyCOURSES.course_name,COURSES.course",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"COURSES,SECTION");
dataGridView1.DataSource=ds1.Tables[0];
conn.Close();
}//检索每门课学生登记的人数、相应的课程名、课程号、分组号
privatevoid查询9ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringconnectionStr="DataSource=qinjia-PC;InitialCatalog=sjk;IntegratedSecurity=True";
SqlConnectionconn=newSqlConnection(connectionStr);
conn.Open();
SqlDataAdaptersdr1=newSqlDataAdapter("selectstudent_namefromSTUDENTSwherestudentin(selectstudentfromENROLLSgroupbystudenthavingcount(*)>2)",conn);
DataSetds1=newDataSet();
sdr1.Fill(ds1,"STUDENTS,ENROLLS");
dataGridVie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 信息管理 系统