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

yizhihongxing

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

第一节 需求描述与分析

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

一、功能性需求

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 教师使用模块功能测试

原文链接:https://www.cnblogs.com/QiaoPengjun/p/17288085.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:数据库系统原理之数据库应用设计与开发实例 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • 简单解决Windows中MySQL的中文乱码与服务启动问题

    下面就为大家详细讲解“简单解决Windows中MySQL的中文乱码与服务启动问题”的完整攻略。 问题描述 在 Windows 系统下使用 MySQL 数据库时,有时会遇到以下两个问题: 修改 MySQL 数据库中文编码后,出现中文乱码; 启动 MySQL 服务失败。 解决方案 问题一:修改 MySQL 数据库中文编码后,出现中文乱码 步骤一:修改 MySQL…

    MySQL 2023年5月18日
    00
  • php中关于mysqli和mysql区别的一些知识点分析

    mysqli与mysql的区别 MySQLi是MySQL的一种改进版本,和MySQL相比,MySQLi提供了更好的性能、更好的功能,还支持面向对象和过程式API。 MySQLi相对于MySQL来说有以下的不同: MySQLi支持面向对象和过程式的接口,而MySQL仅支持过程式的接口。 MySQLi包含了MySQL的所有功能,还新增加了一些特有的功能和优化。 …

    MySQL 2023年5月19日
    00
  • MySQL查看表中的约束的4种方法

    MySQL中查看表中的约束有以下几种方法: DESC命令 使用DESC命令可以查看表的结构,包括所有的列和约束。 语法:DESC 表名; 示例: DESC students; SHOW CREATE TABLE命令 使用SHOW CREATE TABLE命令可以查看表的创建语句,其中包括所有的列和约束。 语法:SHOW CREATE TABLE 表名; 示例…

    MySQL 2023年3月9日
    00
  • Mysql索引性能优化问题解决方案

    让我为你详细讲解如何优化Mysql索引的性能。 Mysql索引性能优化问题解决方案 1. Mysql索引简介 Mysql的索引是一种数据结构,通过对表格中的数据进行排序,方便快速地查找和检索,从而提高查询效率。Mysql中常用的索引有B-Tree索引、HASH索引和FULLTEXT索引等。 2. Mysql索引性能优化问题 在实际开发中,大量数据操作可能会导…

    MySQL 2023年5月19日
    00
  • mysql #1062 –Duplicate entry ‘1’ for key ‘PRIMARY’

    当执行INSERT INTO语句时,可能会遇到“Duplicate entry ‘1’ for key ‘PRIMARY’”错误,这是因为插入的记录已经存在于表中,这可能是由于表的主键重复引起的错误。以下是解决该问题的完整攻略。 首先,检查您的数据库表结构并确保主键在表中唯一。如果不是唯一的,请更改表结构,使其主键唯一。您可以使用以下命令将主键定义为自增长:…

    MySQL 2023年5月18日
    00
  • Linux下MySql 1036 错误码解决(1036: Table ‘xxxx’ is read only)

    当我们在Linux下使用MySQL时,可能会遇到1036错误码,该错误码的含义是“Table ‘xxxx’ is read only”,也就是指被访问的表只读,无法进行写入操作。下面是解决该错误码的完整攻略: 1.查看访问权限 首先,我们需要检查访问该表的用户是否具备写入权限。可以使用如下命令查看当前用户的权限: SHOW GRANTS; 输出结果中会列出当…

    MySQL 2023年5月18日
    00
  • 如何单机部署多个 MySQL 8.0 实例 ?

    在服务器资源有限的情况下,可利用该方案快速搭建各类 mysql 架构方案。各 MySQL 实例共享一个 mysqld 主程序,但各实例数据目录是独立的,存放在不同的文件夹中;好了、废话不多说,直接上干货,具体搭建步骤如下 原文链接 环境介绍 实例 主机 mysql port mysqlx port datadir mysql1 192.168.31.100 …

    MySQL 2023年4月18日
    00
  • Ubuntu下启动、停止、重启MySQL,查看错误日志命令大全

    针对Ubuntu下启动、停止、重启MySQL,查看错误日志命令,我为您提供以下攻略。 启动MySQL服务 要启动MySQL服务,可以通过以下命令: sudo service mysql start 示例说明:假设您的MySQL服务在Ubuntu系统中已经安装并且配置好了,这条命令可以启动MySQL服务。您可以在终端中输入以上命令来启动MySQL服务。 停止M…

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部