数据库原理及应用课程设计

article/2025/10/3 19:25:08

数据库原理及应用课程设计

1.概述

1.1本设计的背景和意义
1.设计的数据库管理系统背景:
由于高校的规模大,学生人和老师人数多,教务系统,图书馆等其他资源的增加,从而设计一个学生信息管理系统。
2.设计的意义
为了方便学校对学生的信息进行管理,同时顺应互联网时代的发展,数据库和降低人工成本,同时提高学生信息的保密性,查询的效率提升,此外,与传统的信息管理这有助于提升学校的办学效率,提高学校的知名度。
1.2数据库设计开发工具
本设计采用的数据开发工具为SQL Server 2008
Microsoft Visio 2009

需求分析

2.1需求概述
学生信息管理系统的作用:
用于学校等教育机构的,学生,老师的信息管理,查询,维护,更新等高效率操作,该系统操作简单,便于对学工信息的管理。
2.2功能需求
学生信息管理系统实现的功能:
用于学生对个人信息的查询,添加,修改等管理。
学生成绩的录入,修改,删除,查询等功能。
2.3数据需求
班级:班级编号,班级专业,班级院系;一个班级有多个学生,每一个学生只能属于一个班级,需要记录学生的,学生编号,学生姓名,性别,年龄,出生日期。

课程:有课程编号,课程名称,所需学分,同时一个学生可以选择多个课程,多个课程又可以被同一个学生选择,学生在选修结束后会得到相应的成绩,同时,一个老师可以教授多个课程,多个课程又可以被同一个老师教授,老师可以得到相应的评分

概念结构设计

3.1局部E-R图
3.1.1学生班级局部E-R图
在这里插入图片描述
3.1.2教师信息局部E-R图
在这里插入图片描述
3.1.3课程信息局部E-R图
在这里插入图片描述3.1.4学生信息局部E-R图在这里插入图片描述
3.2完整E-R图
在这里插入图片描述班级(班级号,所属专业,所属院系)
学生(学生编号,学生姓名,性别,出生日期,班级编号,其中班级编号为外码,
参照班级表中的班级编号)
教师(教师编号,教师姓名,性别,出生日期)
课程(课程编号,课程名称,所需学分)
成绩表(学生编号,课程编号,成绩)
其中学生编号是外码,参照学生表中学生编号
课程编号为外码,参照课程表中的课程编号
评分表(教师编号,课程编号,评分)
其中教师编号是外码,参照教师表中教师编号
课程编号为外码,参照课程表中的课程编号

逻辑结构设计

4.1建立关系模式
根据概念结构设计,可转换得到如下关系模式:
学生表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
学生编号 Char(6) N Y N 6位数
学生姓名 Varchar(20) N N N 无
性别 Char(2) N N N 默认为“男或女
出生日期 Datetime N N N 无
班级编号 Char(6) N N Y
教师表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
教师编号 Char(6) N Y Y 6位数
教师姓名 Varchar(20) N N N 无
性别 Char(2) N N N 默认为“男或女
出生日期 Datetime N N N 无
课程表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
课程编号 Char(6) N Y Y 6位数
课程名 Varchar(20) N N N 无
教师编号 Char(6) N N Y 6位数
所需学分 Varchar(20) Y N N 无

班级表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
班级编号 Char(6) N Y N 无 前两位字母代表专业,后三位代表班级
班级专业 Varchar(20) N N N 无
所属院系 Varchar(20) N N N 无

成绩表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
学生编号 Char(6) N Y Y 6位数
课程编号 Char(6) N N Y 6位数
成绩 Varchar(20) N N N 无

评分表
列名 数据类型 允许为空 主键 外键 CHECK约束 备注
教师编号 Char(6) N Y Y 6位数
课程编号 Char(6) N N Y 6位数
评分 Varchar(20) N N N 无

4.2关系模式规范化处理
分析关系模式是否达到第三范式,如果没达到,将其分解为达到第三范式要求;如果需要反规范化处理,则进行反规范化处理。

上述关系模式均达到第三范式要求

数据库实现

5.1建立数据库
创建homework数据库

Create database homework

5.2数据表创建
5.2.1班级表的创建
create table class(
clno char(6) not null primary key,
major varchar(20) not null,
dept varchar(20) not null
)
5.2.2学生表的创建:
create table students(
sno char(6) not null primary key
check(sno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
sname varchar(20) not null,
ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
sdate datetime not null,
clno char(6) not null foreign key references class(clno)
)
5.2.3教师表的创建:
create table teachers(
tno char(6) not null primary key
check(tno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
tname varchar(20) not null,
ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
sdate datetime not null
)

5.2.4课程表的创建:

create table courses(
cno char(6) not null primary key
check(cno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
cname varchar(20) not null,
pay varchar(20),
tno char(6) not null foreign key references teachers(tno)
)
5.2.5成绩表的创建
create table sgrades(
grade numeric(3, 0) not null,
sno char(6) not null foreign key references students(sno),
cno char(6) not null foreign key references courses(cno)
)

5.2.6评分表的创建
create table tgrade(
tgrade varchar(20) not null,
tno char(6) not null foreign key references teachers(tno),
cno char(6) not null foreign key references courses(cno)
)
5.3数据视图创建
在这里插入图片描述


http://chatgpt.dhexx.cn/article/3IOitD7G.shtml

相关文章

第1章 数据库系统概论---数据库原理及应用

目录 课程学习目标 本课程教学内容 课程教材 课程实践使用的数据库软件 第1章 数据库系统概论 1、数据库系统概述 一、基本概念: 数据:文字,图片等数据化后存入计算机; 数据库(DB)&#xf…

数据库原理及应用(MySQL版)

1. 大小写不论 2. 字符串值可以双引号也可以单引号(数据库只有字符串类型) 3. 以分号结尾 4. 注释方式: 单行注释:–- 注释内容 或 #注释内容 多行注释:/*注释内容*/ 5.MOD(n, d) n - d*INT(n/d) int就是保留整数部分(结果与n符…

java的特点是什么?

ava语言共有十大特点,分别为:简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线索性、动态性。 1、简单性:Java语言继承了C语言的优点,去掉了C中学习起来比较难的多继承、指针等概念,…

java的一些特点

java的一些特点 1.java的特性:面向对象:两大基本概念:类,对象;三大特性:封装,继承,多态 健壮性:去掉了C中的指针, JRE:java运行环境:包含java虚…

Java 特点介绍

面向过程和面向对象的区别与比较 面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过…

java需要有哪些特点_java特点有哪些

java特点包括简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等,java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃…

JAVA语言都有哪些特点

JAVA语言的特点 1. 简单性:Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。 2. 面向对象:Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的…

2021Java学习路线总结

史上最全Java学习路线,从基础到项目实战,超适配2021年度,全网“奥利给”! 目录 ​ Java快速学习路线图 注:新发教程会不定期更新,请持续关注~ Java快速学习路线图 初学者可按照尚硅谷公开的JAVA视频最快…

Java学习路线图(内含大纲+视频)

一、2021新版Java学习路线图—学习路径和内容汇总

2022年Java学习路线图,精心整理

前言: 很多老铁经常问我:哪些是适合Java零基础学习的视频?应该先学哪个后学哪个?等等问题。 那么,怎么解决这些疑问? 一个系统的Java学习路线正是你最需要的,这也是为什么很多前期自学的小白们…

Java学习路线图

非常好的一张Java学习路线图,献给大家(虽然我还在入门哪里。。。)

Java学习路线图(如何快速学Java)

不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议。可能总结的不是很详细,但给出了一个大概的学习路线。希望对大家有帮助哈~ 如何快速学Java 这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了) 学习Jav…

2022年Java学习路线图,精心整理「史上最全」

前言: 很多老铁经常问我:哪些是适合Java零基础学习的视频?应该先学哪个后学哪个?等等问题。 那么,怎么解决这些疑问? 一个系统的Java学习路线正是你最需要的,这也是为什么很多前期自学的小白…

Java学习路线图,2020年最新版!!!

2020年最新Java学习路线,写了很久,这是一份最适合普通大众、科班、非科班的路线! 我想了好几个切入点,最后决定用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,我甚至还收集配套…

2021年最新Java学习路线图

本路线是学习了韩顺平老师Java学习路线图之后做的笔记,有喜欢的小伙伴可以看一下,非常全面详细 脑图地址 有需要脑图的小伙伴可以关注下面公众号,发送【路线】即可获取

2020年最新Java学习路线图(干货)

Java技术可谓博大精深,知识体系非常丰富并且也极其复杂,因此想要学习好java其实并不是一件非常轻松的事。当然,刚跨入编程行业的小白也无需担心,2020年最新路线图中的知识你学完一半基本就可以找个非常不错的开发工作了&#xff0…

Java学习线路图

【老规矩:先点赞收藏,再礼貌阅读!】 毕设的更新有一段时间了,该发的项目基本都发出来了,后面有新项目还会继续更新的,接下来的一段时间想给大家带来一些Java学习的作品,大概内容有个人学习心得总…

你们要的Java学习路线图,来喽

来源:七哥爱编程 你们要的Java学习路线图来了,七哥结合目前工作以及各大主流公司面试和使用的技术整理出了2020最新版Java学习路线图,适合于初、中、高级别的Java程序员,我自己也是按照这个路线来学习的,建议收藏。 同…

2023年完整版Java学习路线图

目录 第一阶段:Java核心基础 第二阶段:数据库核心技术 第三阶段:Java Web内容 第四阶段:企业级框架讲解 第五阶段:分布式微服务架构 第六阶段:技能深入提升 第七阶段:企业级项目实战 Jav…

【转】2023年Java学习路线图-黑马程序员

PS:注意收藏,此套路线图会不定期更新! Java学习路线图(2023版,视频已更新) 入门: Java SE基础 → Java Web(含数据库H5jsvue) 中级: Maven → Git → SSM框架 → MybatisPlus → Spring Boot→ 《传智健康》项目实战…