学生选课系统数据库设计「建议收藏」

学生选课系统数据库设计「建议收藏」1.1需求分析数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。SQLserver2005就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。SQL的优点在于它集

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.1需求分析

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。

SQLserver 2005就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。SQL 的优点在于它集数据查询、数据操纵、数据定义和数据控制功能于一体。

通过调查本地的学校,根据学校的具体情况设计学生选课信息管理系统。主要功能有:

1. 学生管理:学生信息查询、插入、删除、修改等

2. 选课管理:选课信息查询、插入、删除、修改等

3.成绩管理:成绩的查询。

4. 系统管理:操作员信息的管理

5. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等

学生选课系统数据库设计「建议收藏」

1.2数据字典

数据流图表达了数据与处理的关系,数据流图作为直观了解系统运行机理的手段,并没有具体描述个类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。数据字典用来说明数据流图中出现的所有元素的详细定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。

数据字典包括的项目有数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。可使用一些符号来表示数据结构、数据流和数据存储的组成。

数据元素 数据类型 长度 数据来源
学号 char 9 学生表
学生姓名 char 20 学生表
性别 char 2 学生表
年龄 smalldatetime default 学生表
所在系 char 20 学生表
课程号 char 4 课程表
课程名 char 40 课程表
选修课 char 4 课程表
学分 char 4 课程表
学号 char 5 成绩表
课程号 char 3 成绩表
成绩 char 3 成绩表
管理员ID char 4 管理员表
管理员姓名 char 12 管理员表
权限 char 20 管理员表

(1)学号={学号,唯一标识学生,类型:char,长度:9,与课程号唯一标识这门课成绩}。

 2.1 系统E-R图

学生选课系统数据库设计「建议收藏」

学生选课系统数据库设计「建议收藏」

表2-1 学生信息表Student的表结构

主码

列    名

数据类型

宽度

小数位

空否

备  注

Pk

Sno

Char

9

 

N

学号

 

Sname

Char

20

 

N

姓名

 

Ssex

Char

2

 

Y

性别

 

Ssage

SmallDatetime

 

 

Y

出生日期

 

Sdept

Char

20

 

Y

所在系

表2-2 课程信息表Course的表结构

主码

列    名

数据类型

宽度

小数位

空否

备  注

Pk

Cno

Char

4

 

N

课程代码

 

Cname

Char

40

 

N

课程名称

 

Cpno

char

4

 

Y

先修课程

 

Credit

Decimal

4

1

Y

学分

表2-3 选课成绩表SC的表结构

主码

列    名

数据类型

宽度

小数位

空否

备  注

Pk

Sno

Char

5

 

N

学号

Cno

Char

3

 

N

课程代码

 

Grade

Decimal

3

1

Y

成绩

表2-4 管理员表Admin的表结构

主码

列    名

数据类型

宽度

小数位

空否

备  注

Pk

Admin_id

Char

4

 

N

操作员编号

 

Admin_name

Char

12

 

N

操作员姓名

 

Permission

Char

20

 

Y

权限

2.2初始关系模式

Student(Sno,Sname,Ssex,Ssage,Sdept)

其中各项含义分别为:学生(学号,姓名,性别,年龄,所在系)

Course(Cno,Cname,Cpno,Credit)

其中各项含义分别为:课程(课程代码,课程名称,先修课程,学分)

SC(Sno,Cno,Grade)

其中各项含义分别为:选修(学号,课程代码,成绩)

Admin(Amin_id,Admin_name, Permission)

其中各项含义分别为:操作员(操作员编号,操作员姓名,权限)

2.3规范化处理

经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。(下划线代表主码,斜体外码)

Student(Sno,Sname,Ssex,Ssage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

Admin(Admin_id,Admin_name,Permission)

3.1物理结构

数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理结构设计。

数据库的物理结构设计通常分为两步:

(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;

(2)对物理结构进行评价,评价的中的是时间和空间效率。

表2-5 学生信息表Student的表索引表

索引

列    名

数据类型

宽度

Sno

Char

9

Sname

Char

20

无 

Ssex

Char

2

无 

Sage

SmallDatetime

 

无 

Sdept

Char

20

表2-6 课程信息表Course的索引表

索引

列    名

数据类型

宽度

Cno

Char

4

Cname

Char

40

Cpno

Char

4

无 

Credit

Decimal

4

表2-7 选课成绩表SC的索引表

索引

列    名

数据类型

宽度

Sno

Char

9

Cno

Char

4

 无

Grade

Decimal

5

表2-8 操作员表Admin的索引表

索引

列    名

数据类型

宽度

Admin_id

Char

4

无 

Admin_name

Char

12

无 

Permission

Char

20

3.2视图

用SQL管理工具建立常用的一个视图,即学生_成绩视图。

菜单栏中单击工具→ 向导→ 数据库→ 创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。

使用SQL语句建立视图的命令如下:

ps(此处本该数据表建成以后再创建视图,为啦清楚表达物理结构设计所以提前)

create view 学生_成绩
as
select sc.sno,sname,course.cno,cname,grade
from student join sc on student.sno= sc.sno
join course on course.cno=sc.cno

 

4.1数据库物理设计完成之后,需要用RDBMS提供的数据定义语言和其他使用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,在经调试产生目标文件。

用SQL语言建数据库和表代码如下:

学生选课信息管理系统数据库代码如下:

Create database 学生选课管理系统
  On
   (Name=mydatabase1,
Filename='d:\数据库\mydatabase.mdf',
Size=3,
Maxsize=10,
Filegrowth=1),
(Name=mydatabase2,
Filename='d:\数据库\mydatabase.ndf',
Size=5,
Maxsize=15,
Filegrowth=2)
Log on
  (Name=mydatabase_log,
Filename='d:\数据库\mydatabase_log.ldf',
Size=5,
Maxsize=10,
Filegrowth=1)
 

学生选课信息管理系统数据表代码如下:

 

create table Student(
Sno char(9)primary key,
Sname char (20) not null,
Sex char(2)check (sex in('','')),
Sbirth smalldatetime,
Sdept char(20)
);
go
create table Course(
Cno char(3)primary key,
Cname char(40)not null,
Cpno   char(4),
 
Credit Decimal(3,1)
)
go
create table SC(
Sno char(9)references Student(Sno),
Cno char(4)references Course(Cno),
Grade decimal(5,1),
constraint pk primary key(Sno,Cno)
)
go
create table Admin(
Admin_id char(9)primary key,
Admin_name char(12)not null,
Permission char(20)default '0'
)
go

数据的载入

INSERT

    INTO <表名>[(<属性列1>[,<属性列2>…)]

   VALUES(<常量1>[,<常量2>]);

以学生表为例插入输入如下:PS(学号是主码,故不可以相同)

   
insert into Student(Sno,Sname,Ssex,Sage,Sdept)values('200215121','李勇','','20','CS'); insert into Student(Sno,Sname,Ssex,Sage,Sdept)values('200215122','刘晨','','19','CS'); insert into Student(Sno,Sname,Ssex,Sage,Sdept)values('200215123','王敏','','18','MA'); insert into Student(Sno,Sname,Ssex,Sage,Sdept)values('200215125','张立','','19','IS');insert into Student(Sno,Sname,Ssex,Sage,Sdept)

 

数据库的修改操作

UPDATE <表名>

   SET<列名>=<表达式>

   [WHERE<条件>];

 

例如:在学生表中修改学号为’200215121’的所在系为’IS’。

update student
set sdept='IS'
where sno='200215121'
 

数据库的删除操作

DELETE

  FROM<表名>

[WHERE<条件>];

 

例如:删除学号为’200215124’的相关信息

delete
from student
where sno='200215124'
 
 

连接数据库和添加课程de代码如下:

private  void button1_Click(object sender,  EventArgs e) 
{
     
     string s =  "server=.;database=学生选课管理系统;integrated security=true;";
            SqlConnection conn =new SqlConnection();
            conn.ConnectionString = s;
            SqlCommand cmd =  new SqlCommand();
              string sql =  string.Format("insert into Course (Cno,Cname,Cpno,Ccredit) values('{0}','{1}','{2}','{3}')",textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text);
              cmd.CommandText = sql;
              cmd.Connection = conn;
              conn.Open();
              cmd.ExecuteNonQuery();
              conn.Close();
              MessageBox.Show("添加成功!");
           }

 

删除代码如下:

修改课程信息

private  void button1_Click(object sender,  EventArgs e)
        {
            DialogResult r =  MessageBox.Show("你确实要删除吗?","提示", MessageBoxButtons.YesNo);
            if (r ==  DialogResult.No) return;
            string s =  "server=.;database=学生选课管理系统;integrated security=true;";
            SqlConnection conn =new SqlConnection();
            conn.ConnectionString = s;
            SqlCommand cmd =  new SqlCommand();
            string sql;
            sql = string.Format("delete from Course where Cno='{0}'", textBox1.Text);
            cmd.CommandText = sql;
            cmd.Connection = conn;
            conn.Open();
            int n = cmd.ExecuteNonQuery();
            conn.Close();
            MessageBox.Show("删除" + n +"条数据");
        

 

 

 







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181788.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • css中绝对定位_绝对定位和相对定位怎么用

    css中绝对定位_绝对定位和相对定位怎么用文章目录相对定位position:relative;特性用途绝对定位position:absolute;绝对定位参考点单独盒子绝对定位参考点:父辈元素设置了相对定位,则子元素绝对定位以父辈元素为参考点。绝对定位水平居中固定定位参考点相对定位position:relative; &lt;styletype="text/css"&gt; .box1{ width:200p…

    2022年10月27日
  • CAP原理和数据高可用性

    CAP原理和数据高可用性对网站而言,数据是最宝贵的资源,硬件可以购买,软件可以重构,但是数据(用户数据,交易数据,商品数据)一旦丢失,对网站的打击可以说是毁灭性的。数据高可用性数据高可用性包括如下几个方面的含义数据持久性保证数据可以持久存储,在各种情况下都不会出现数据丢失。为了实现数据持久性,不但在写入数据是需要写入持久性存储,还需要将数据备份到一个或多个副本,存放在不同的物理存储设备上,在某个存储故障发生是,数据不会丢失

  • mybatis 分页查询 limit

    mybatis 分页查询 limit解决方案:#{pagenumber}—–>${pagenumber}

  • 通讯加密方式?「建议收藏」

    通讯加密方式?「建议收藏」客户端信道处理ProcessMessage1加密通讯 初始唯一标识和加密提供程序 向服务器请求密钥并根据响应的密钥初始化加密提供程序(服务端需验证IP合法性) 根据加密提供程序加密请求消息 向服务器发起请求 根据加密提供程序解密响应流。 返回。2非加密通讯 初始唯一标识和加密提供程序 向服务器请求密钥并根据响应的密钥初始化加密提供程序(服务端需验证IP合法性) 向服务器发起请求 返回…

  • pycharm配置python环境_pycharm环境配置教程

    pycharm配置python环境_pycharm环境配置教程以Windows版演示操作:一、首先安装pycharm1、首先从网站下载pycharm:点击打开链接(链接为:http://www.jetbrains.com/pycharm/download/#section=windows),进入后如下图,根据自己电脑的操作系统进行选择,对于windows系统选择图中红色圈中的区域。选择社区版(免费试用),专业版需要收费。2、下载完成之后如下图:3、直接双击下载好的exe文件进行安装,安装截图如下:4、记得修改安装路径,我..

  • centos7安装php环境_docker搭建php开发环境

    centos7安装php环境_docker搭建php开发环境centos7php环境手动搭建:1.先安装apache:yum安装yuminstallhttpd进入配置文件vi/etc/httpd/conf/httpd.conf(/etc/httpd/conf/httpd.conf为配置文件位置)apache默认就是使用80端口防火墙开启80端口(一般例如在阿里云网站控制台直接开启即可)服务器常用指令:linux常用服务的启动、停止、重启操作服务/操作 启动 停止 重启apache systemctlstarthttpd开启

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号