首页 > 数据库 >数据库系统原理之数据库应用设计与开发实例

数据库系统原理之数据库应用设计与开发实例

时间:2023-04-04 22:11:39浏览次数:43  
标签:教师 课程 系统管理员 数据库 学生 实例 模块 数据库系统 院系

数据库应用设计与开发实例

第一节 需求描述与分析

在此,结合某高校个性化课程在线选课的实际需求,给出一个简化的需求分析

一、功能性需求

1 管理员后台模块

  • 学生信息管理
  • 教师信息管理
  • 课程信息管理
  • 班级信息管理

2 学生使用模块

  • 查询课程
  • 浏览所选课程
  • 查询成绩

3 教师使用模块

  • 我的课程
  • 登分

二、非功能性需求

在线选课系统

浏览器/服务器(B/S) 结构

  • 选课系统质量需求:
    • 可靠性
    • 正确性
    • 兼容性
    • 健壮性

第二节 系统设计

自顶向下 功能模块结构图

一、功能模块设计

  • 登录验证模块
  • 管理员后台模块
    • 学生信息管理模块
    • 教师信息管理模块
    • 课程信息管理模块
    • 院系信息管理模块
  • 学生使用模块
    • 查询课程模块
    • 浏览已选课程模块
    • 选课及退选模块
    • 成绩查询模块
  • 教师使用模块
    • 我的课程模块
    • 登分模块

二、数据库设计

1 确定实体

  • 学生实体用于描述学生的基本信息,包括学号、姓名、性别、密码等信息。
  • 教师实体用于描述教师的基本信息,包括教师工号、姓名、性别、年龄、职称、密码登信息。
  • 课程实体用于描述课程的基本信息,包括课程号、课程名、学分、时间、地点、类别、开课学院、限选人数等信息。
  • 院系实体用于描述院系的基本信息,包括院系名称、办公地点、教师人数等信息。
  • 系统管理员实体用于描述系统管理员的基本信息,包括姓名、ID号、密码登信息。

注意:在数据库设计时,实体的描述信息可根据实际需求进行增加或删减,如果实体的属性较多,在构建 E-R 模型时不一定需要把所有的属性都标识在E-R 模型上,可以另外用文字说明,这样也使得 E-R 模型简明清晰,便于分析。

2 局部信息结构

  • 学生-课程 “选修” 多对多(M:N)
  • 教师-课程 “授课” 一对多(1:N)
  • 教师-院系 “属于” 一对多(1:N)
  • 学生-院系 “属于” 一对多(1:N)
  • 系统管理员-学生 “管理” 多对多 (M:N)
  • 系统管理员-教师 “管理” 多对多 (M:N)
  • 系统管理员-课程 “管理” 多对多 (M:N)
  • 系统管理员-院系 “管理” 多对多 (M:N)

3 全局信息结构

  • 首先将学生-课程E-R图、教师-课程E-R图,教师-院系E-R图、学生-院系E-R图合并成为一个较大的局部信息结构。
    • 学生-教师-课程-院系 E-R 图
  • 将 系统管理员-学生、系统管理员-教师、系统管理员-课程、系统管理员-院系的E-R图合并成为一个较大的局部信息结构。
    • 系统管理员-学生-教师-课程-院系 E-R 图
  • 最后,将 学生-教师-课程-院系 E-R 图和系统管理员-学生-教师-课程-院系 E-R 图合并成为一个本系统的全局 E-R 图。

4 逻辑结构与规范化设计

转换为关系模式,主码用下划线标识

  • 学生(学号、姓名、性别、登录密码、院系编号)
  • 院系(院系编号、系名、学生人数、教师人数、办公地点)
  • 教师(职工号、姓名、性别、年龄、职称、登录密码、院系编号)
  • 课程(课程号、课程名称、课程类别、学分、上课时间、上课地点、开课学院、限选人数、职工号)
  • 系统管理员(ID号、姓名、登录密码)
  • 选修(学号、课程号、成绩)
  • 管理学生(管理员 ID 号、学号、操作时间)
  • 管理院系(管理员 ID 号、院系编号、操作时间)
  • 管理教师(管理员 ID 号、职工号、操作时间)
  • 管理课程( 管理员 ID 号、课程号、操作时间)

E-R 图 关系模式 第三范式

院系

院系编码(院系编号、系名)

院系(院系编号、学生人数、教师人数、办公地点)

课程

课程编码(课程号、课程名称)

课程(课程号、课程类别、学分、上课时间、上课地点、开课学院、限选人数、职工号)

第三节 系统实现

1 数据库的实现

  • 创建数据库
mysql> create database db_xuanke;
Query OK, 1 row affected (0.00 sec)

mysql>

  • 创建表
    • 学生信息表 student
    • 院系编码表 deptcode
    • 院系表 department
    • 教师表 teacher
    • 课程编码表 coursecode
    • 课程表 course
    • 系统管理员表 administrator
    • 选修表 electing
    • 管理学生表 adminstu
    • 管理院系表 admindept
    • 管理教师表 adminteacher
    • 管理课程表 admincourse

2 系统功能的实现

  • 实现数据库行为
    • 安全控制
    • 管理学生
    • 数据库保护
    • 事务与并发控制
    • 数据查询与统计报表
  • 实现应用软件的业务逻辑

第四节 系统测试与维护

1 登录验证功能测试

2 管理员后台主要功能测试

  • 学生信息管理功能
  • 课程信息管理功能

3 学生使用模块功能测试

4 教师使用模块功能测试

标签:教师,课程,系统管理员,数据库,学生,实例,模块,数据库系统,院系
From: https://www.cnblogs.com/QiaoPengjun/p/17288085.html

相关文章

  • flask之蓝图的使用-g对象-数据库连接池
    目录flask之蓝图的使用-g对象-数据库连接池昨日内容补充今日内容详细1蓝图的使用2g对象3数据库连接池补充flask之蓝图的使用-g对象-数据库连接池昨日内容补充#session执行流程 open_session:前端写到cookie到后端后端取出cookie对应的value值解密转到session对象中后续......
  • Android 原生 SQLite 数据库的一次封装实践
    作者:LiBingyan本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。实现思路:通过动态代理获取请求接口参数进行SQL拼凑,并以接口返回值(泛型)......
  • 【flask】蓝图的使用方式 g对象的使用 flask配置数据库连接池
    目录上节回顾今日内容1蓝图的使用2g对象g对象vsrequest对象3数据库连接池上节回顾全局request对象。线程会处理请求,确保线程中的数据不错乱。django_session表:#1cbv使用 -写一个类继承MethodView,写get,post。。。-类属性decorators=[auth,]可以加装饰器......
  • linux下安装数据库
    1、查看是否有安卓数据库输入命令:mysql   2、查看是否存在rpm-qa|grepmariadb  3、将其卸载命令:rpm-e--nodepsmariadb-libs-5.5.68-1.el7.x86_64  4、如果没权限,输入suroot超级管理员账号  5、装依赖包命令:yuminstall-yperlnet-tools......
  • 数据库流行度排名:Oracle 稳居第一
    数据库流行度排名:Oracle稳居第一播报文章砍柴网2018-12-0222:00砍柴网官方百家号关注日前,DB-Engines数据库流行度排行榜公布了最新的一组数据,数据显示,Oracle数据库虽然相比于前两月有所下滑,但依旧家底雄厚位列第一名。第二名同样是来自Oracle的MySQL......
  • flask,蓝图使用,g对象,数据库连接池
    内容回顾cbv使用写一个类继承MethodView写get,post…类属性decorators=[auth]可以加装饰器CBV执行流程跟django的执行流程一样endpoint作用路径别名add_url_rule(view_func=IndexView.as_view(‘index’))为什么endpoint不传,是被路由装饰器装饰的函数名:函数名._name_装饰......
  • Flask框架使用蓝图划分目录、g对象、使用数据库连接池链接数据库
    目录一、使用蓝图划分项目目录1.蓝图的介绍2.蓝图的使用二、介绍flask框架的g对象1.g对象是什么?2.使用代码再次解释g对象三、使用数据库连接池链接数据库1.引入数据库连接池的概念2.在flask框架中使用数据库连接池的步骤一、使用蓝图划分项目目录1.蓝图的介绍flask框架的目......
  • SQL Server 数据库T-SQL编程
    1、T-SQL编程通过SQL语句来完成业务的处理,执行编写好的sql语句,就可以完成业务处理。2、局部变量SQLserver中变量分为:局部变量和全局变量。全局变量,在全局可用,系统自定义,用户不可以定义全局变量,用不不可以修改全局变量,全局变量以“@@”开头局部变量就是一个能够拥有......
  • flask-day3——蓝图的使用、g对象、数据库连接池
    目录一、蓝图(blueprint)1、蓝图介绍2、蓝图的使用3、使用蓝图,划分小型项目目录4、使用蓝图,划分大型项目目录5、其他知识点二、g对象三、数据库连接池四、作业1、什么是gil锁,有什么作用2、python的垃圾回收机制是什么样的3、解释为什么计算密集型用多进程,io密集型用多线程一、蓝图......
  • 【Spring】链接数据库
    添加Maven依赖:<!--spring-jdbc包--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.10.RELEASE</version>......