SQL server课程设计+C#窗体设计 、教务管理数据库的设计、实现及访问及优化窗体

**

SQL server课程设计+C#窗体设计 附源码

**

课程: 数据库原理及应用

所有数据仅供参考,不具有实际意义

设计题目 : 教务管理数据库的设计、实现及访问

设计人:Ewigkeit
学 号: 2017252101**
同组者: 无
系别:信息工程系

摘 要
       数据库技术是信息处理的核心技术之一,广泛应用于各类信息系统。数据库的安全性、可靠性和使用效率越来越受到重视。数据库的设计(Database Design),指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求),提高用户工作效率。根据需求分析,针对一个具体的应用系统,要保证构造一个满足用户数据处理需求、冗余数据较少的数据库。
        数据库是管理信息系统的后台,存储着所有数据库系统的信息,数据库设计的好坏,直接影响到系统的运行效率,良好的数据库设计,可以提高数据的存储效率,及其在操作过程中数据的一致性,会减少数据冗余,避免数据异常的情况,提高数据库的实用性;数据库设计设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护,通过合理的分析、设计数据库各个结构有利于程序的初步实现,逐渐完善扩展其功能,进一步满足用户的需求。
       关键词:数据库设计(Database Design),分析、设计数据库,减少数据冗余、避免数据异常

Abstract
       Database technology is one of the core technologies of information processing, which is widely used in various information systems. More and more attention has been paid to the security, reliability and efficiency of database. Database design refers to the construction of the optimal database mode, the establishment of database and its application system for a given application environment, so that it can effectively store data, meet the application needs of various users (information requirements and processing requirements), and improve the work efficiency of users. According to the requirement analysis, for a specific application system, it is necessary to construct a database that meets the user’s data processing requirements and has less redundant data.
       Database is the backstage of management information system, which stores all the information of database system. The quality of database design directly affects the operation efficiency of the system. A good database design can improve the storage efficiency of data and the consistency of data in the operation process, reduce data redundancy, avoid the abnormal situation of data, and improve the practicability of database; The contents of database design include: requirement analysis, conceptual structure design, logical structure design, physical structure design, database implementation and database operation and maintenance. Through reasonable analysis and design of each structure of database, it is conducive to the preliminary realization of the program, and gradually improve and expand its functions to further meet the needs of users.
       Keywords:database design, analyze and design database, reduce data redundancy and avoid data abnormality

设计说明
       本课程设计以教务管理数据库设计为例,从数据收集、整理,到处理数据库各实体属性及其之间联系,并从概念设计(ER图-信息分析和定义)绘制相应的E-R图、分析实体和联系转换为关系表,处理各实体关系模式,达到相应数据库范式设计要求,设计各个数据表的逻辑结构,从逻辑结构设计确定各个字段的属性,包括字段数据类型、长度、是否为Null值、完整性约束等属性,到物理设计(存储方式、索引等).,再到用SQL Server关系数据库管理系统(DBMS)创建数据库,及其用到相关T-SQL语句(DDL、DML、DCL)实现操作该数据库,如触发器,存储过程,自定义函数等,并用Visual Studio实现数据库的连接与访问,通过可视化人机交互界面,初步实现对教务管理数据库的数据进行相应的操作,初步满足用户的需求。
       :T-SQL语句(DDL、DML、DCL)后续在实现教务管理数据库过程中会说明其使用的操作。
       关键词:数据库设计(Database Design),SQL Server(DBMS),T-SQL,Visual Studio

教务管理数据库的设计、实现及访问

目 录

1 引 言

1.1 开发背景

       随着高等院校地域范围的扩大及录取学生人数不断增加,学生的信息管理越来越趋于复杂化,信息的存储及规范化的处理慢慢的成为一难题,使得信息数据的管理难度也越来越大,信息的安全性也变得十分重要,信息如何合理、快速、规范的管理学生的信息数据成为每一个高校所面对的问题。

1.2 研究的目的与意义

       数据库系统的创建用来管理信息系统及其数据库的安全性、可靠性和使用效率越来越受到重视,数据的高效化管理,有利于数据的简易可视化,变得不再凌乱,难以管理,数据库的开发、管理也越来越使人们青睐。
       学生信息数据集成化,有利于信息的高度集中管理,可满足管理员的现实需求,实现一对多的信息管理,也可多对多的信息分析,对学生信息数据的操作变得更加简单,方便,用数据库管理数据信息,大大提高了保护信息的安全性和信息规范化管理。

1.3 数据库设计定义及其内容

       数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
       数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。

2 数据库总体设计过程

       数据库设计过程概括:本课程设计以教务管理数据库为例,设计与管理教务管理数据库,从数据的收集,整理,创建数据库基本结构,分析个实体属性的各关系模式及其实体与属性间的相互联系,创建各数据表间的完整性约束,并对数据表进行相应的数据操作,及到后期设计创建创建登录名和数据库用户账户,定义角色等,最后,用Visual Studio实现数据库的连接与访问。

2.1 数据库信息收集、整理

       数据库信息收集、整理,分析教务管理数据库所含有的实体(“学生”、“教师”、“课程”、“班级”、“专业”、“部门”、“选课”、“授课”、“成绩”、“用户”)的个数,并确定各个实体的属性和实体联系类型,收集足够数量的数据,注意各数据之间的关系,并录入数据到excel工作表中。
学生表:
在这里插入图片描述
教师表:
在这里插入图片描述

课程表:
个人输入数据制表
班级表:
个人输入数据制表
专业表:
个人输入数据制表
部门表:
个人输入数据制表
选课表:
个人输入数据制表
课表表:
个人输入数据制表
成绩表:
个人输入数据制表
用户表:
个人输入数据制表

2.2 数据库概念结构设计

     数据库概念结构设计:主要工作是根据用户需求设计概念性数据模型,从用户角度看数据库,反映用户的现实环境,用典型方法E-R图(实体、联系、属性)方法,用实体-联系模型表示。
(1)确定实体:客观存在的事物;
(2)确定联系:指客观世界中实体与实体之间的联系;
(3)确定实体联系类型:一对一关系,一对多关系,多对多关系;
(4)绘制局部E-R图:处理局部实体与属性的联系建立局部实体模块;
(5)绘制总体E-R图:处理局部实体模块,注意其实体属性模块的联系,绘制全局实体E-R图;
(6)获得概念模型;
   注:▲实体型:用矩形表示.
          ▲属性:用椭圆形表示.
          ▲联系:用菱形表示.
如下图,所有教务管理数据库所含有的实体的局部E-R图:
1.1学生实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
学生(学号,姓名,性别,身份证号,班级编号,籍贯,学籍,民族,政治面貌)
在这里插入图片描述
1.2教师实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
教师(职工编号,姓名,性别,身份证号,部门编号,学历,职称,民族,政治面貌)
在这里插入图片描述
1.3课程实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
课程(课程编号,课程名称,专业编号,学分,总课时,课程类型,授课形式)
在这里插入图片描述
1.4班级实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
班级(班级编号,班级名称,部门编号,专业编号)
在这里插入图片描述
1.5专业实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
专业(专业编号,专业名称,学制,部门编号)
在这里插入图片描述
1.6部门实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
部门(部门编号,部门名称,负责人,联系电话)
在这里插入图片描述
1.7选课实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
选课(选课ID,班级编号,授课编号,学号)
在这里插入图片描述
1.7选课实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
选课(选课ID,班级编号,授课编号,学号)
在这里插入图片描述
1.8课表实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
课表(授课编号,课程编号,授课教师,时间天,时间节,上课地点)
在这里插入图片描述
1.9成绩实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
成绩(学号,课程编号,成绩,考试次数,是否补修,是否重考,成绩确定)
在这里插入图片描述
1.10用户实体属性图:实体(属性)(由于难于设置表格,所以采用截图的方式展示)
用户(用户ID,姓名,密码,用户类型,启用日期)
在这里插入图片描述
    根据实体模块E-R图的相互联系,确定实体联系类型,处理好实体联系类型(一对一,一对多,多对多联系类型)的对应关系结合客观事实绘制实体-联系总体E-R图:
如下图:
    实体及部分属性全局E-R图:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述

2.3 数据库逻辑结构设计

    逻辑结构设计主要是将E-R图转换为关系模式,设计关系模式达到相应的范式要求,对数据的概念结构设计进一步优化,完善数据库的结构模型:
(1)实体转换为关系:实体名转换为关系名,实体属性转换为关系的属性;
(2)关系的规范化处理:通过关系规范化处理,关系模式优化设计,尽量减少数据冗余,消除函数依赖和传递依赖,得到三范式的关系模式;
如下,各实体间的关系模式:
关系模式:
  学生(学号,姓名,性别,身份证号,班级编号,籍贯,学籍,民族,政治面貌)
  教师(职工编号,姓名,性别,身份证号,部门编号,学历,职称,民族,政治面貌)
  课程(课程编号,课程名称,专业编号,学分,总课时,课程类型,授课形式)
  班级(班级编号,班级名称,部门编号,专业编号)
  专业(专业编号,专业名称,学制,部门编号)
  部门(部门编号,部门名称,负责人,联系电话)
  选课(选课ID,班级编号,授课编号,学号)
  课表(授课编号,课程编号,授课教师,时间天,时间节,上课地点)
  成绩(学号,课程编号,成绩,考试次数,是否补修,是否重考,成绩确定)
  用户(用户ID,姓名,密码,用户类型,启用日期)

2.4 数据库物理结构设计

    数据库的物理结构设计是在逻辑结构设计的基础上,进一步设计数据模型的物理细节,确定个数据表包括的字段名称、数据类型、长度及关键字,确立数据表间的完整性约束,包括主键,外键,检查约束,唯一约束,默认值的设置:
(1)学生数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(2)教师数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(3)课程数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(4)班级数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(5)专业数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(6)部门数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(7)选课数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(8)课表数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(9)成绩数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述
(10)用户数据表设计:(由于难于设置表格,所以采用截图的方式展示)
在这里插入图片描述

3 数据库的实现

    本课程设计数据库的实现选用SQL Server 数据库管理系统来创建数据库,数据库文件的参数可采用默认值直接创建数据库。

3.1 数据库的建立(sql)

进入SQL Server 数据库管理系统,新建查询

--创建数据库
create database 教务管理201725210155
on
(
   name ='教务管理201725210155',
   filename='D:\SQLserver\教务管理201725210155.mdf',
   size = 10mb , 
   maxsize = unlimited,
   filegrowth =1024mb
)
log on 
(
   name ='教务管理201725210155_log',
   filename='D:\SQLserver\教务管理201725210155_log.ldf',
   size = 10mb , 
   maxsize = unlimited,
   filegrowth =1024mb
)

3.2 数据表的创建(sql)

    选中刚创建的数据库–教务管理201725210155,根据自己设计的物理结构,确定字段名,数据类型,长度,及是否为空等,先创建主键及唯一约束,便于后续外键的添加,在此数据库下创建数据表:(当然你也可以边创建表边创建约束条件,但是要注意创建表顺序)

--创建数据表
use 教务管理201725210155
create table 学生
(
    学号  varchar(20) not null primary key,
	姓名  varchar(20)	not null,
	性别	  varchar(2)	not null,
    身份证号	varchar(30)	not null unique,
    班级编号	varchar(20)	not null, 
    籍贯  varchar(20)	not null,
    学籍	 varchar(10)	not null,
    民族	 varchar(10)	not null,
    政治面貌	varchar(10)	not null,
)
create table 教师
(
    职工编号	 varchar(20)	not null primary key,	
    姓名	 varchar(20)	not null,			
    性别	 varchar(2)	not null,			  
	身份证号	 varchar(30)	not null unique,
	部门编号	 varchar(20) not null,	
	学历	 varchar(20)not null,			
	职称	 varchar(10)	not null,			
	民族	 varchar(10)not	null,		
	政治面貌	 varchar(10)	not null,	
)
create table 课程
(
    课程编号	varchar(20)	not null primary key,
    课程名称	varchar(100)not null unique,
    专业编号	varchar(20)	not null,
    学分	varchar(10)	not null,		
    总课时	varchar(10)	not null,		
    课程类型	varchar(20)	not null,	
    授课形式	varchar(20)	not null,
)
create table 班级
(
    班级编号 varchar(20)not null primary key,
    班级名称 varchar(50) not null unique,	
    部门编号 varchar(20)not null,	
    专业编号 varchar(20)not null,
) 
create table 专业
(
    专业编号 varchar(20) not null primary key,	
    专业名称 varchar(50) not null ,	
    学制	varchar(10)	 not null,			
    部门编号 varchar(20) not null,
)
create table 部门
(
    部门编号 varchar(20)not null primary key,	
    部门名称 varchar (50)not null unique,	
    负责人	 varchar(10)not null,			
    联系电话 varchar(20)not null			
)

create table 选课
(
    选课ID	int identity(1,1) primary key not null  ,
    班级编号 varchar(20) not null,	
    授课编号 varchar(50) not null,	
    学号 varchar(20) not null,
)
create table 课表
(
    授课编号 varchar(50) not null primary key,	
    课程编号 varchar(20) not null,
    授课老师 varchar(20) not null,
    时间天 varchar(10) not null,				
    时间节 varchar(50) not null,				
    上课地点 varchar(20) not null,	
)
create table 成绩
(
    学号 varchar(20) not null, 
    课程编号 varchar(20)not null ,
    成绩 int not null,			
    考试次数 smallint not null,		
    是否补修 varchar(10) not null,		
    是否重考 varchar(10)not null,		
    成绩确定 varchar(10) not null,
    constraint PK_成绩_学号_课程编号 primary key (学号,课程编号)
)
create table 用户
(
    用户ID int identity(1,1) not null primary key ,
    姓名 varchar(20) not null  unique,	
    密码 varchar(30) not null,			
    用户类型 varchar(20) not null,			
    启用日期 datetime not null		
)

建立完整性约束数据库关系图如下:
在这里插入图片描述
                                                              数据库关系图

3.3 导入数据

    将事先准备的excel文件中导入所有的记录数据。如果导入数据过程中出现错误,认真分析错误原因,对数据表进行修改后重新导入,保证所有数据导入成功。
在这里插入图片描述
确定数据源:
在这里插入图片描述
到达这一步选择数据源(这里用excel表格导入),在导入数据过程中可能会出现这样错误
在这里插入图片描述
    这时根据情况分析需不需要下载一个Microsoft Office Access Database Engine,如果下载,安装好了,还是导入不成功的话,就修改一下上图第三步,修改excel版本,同时注意自己收集数据的Excel表格的保存格式,通过这些解决方式应该可以完成数据的导入,注意数据导入的映射关系(编辑映射启用标识插入),排出错误问题,成功导入数据。

  • 12
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThereisnothingtoenvyIcan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值