美文网首页
数据库应用设计与开发实例

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

作者: 薛落花随泪绽放 | 来源:发表于2022-08-22 09:43 被阅读0次

    一、需求描述与分析

    1.功能性需求

    用户类型有教务管理员、学生和教师。
    ⑴管理员后台模块
    主要用于系统的数据管理,包括学生管理、教师管理、班级管理和课程管理。具体功能
    ①学生信息管理
    ②教师信息管理
    ③课程信息管理
    ④班级信息管理

    ⑵学生使用模块
    包含三个功能
    ①查询功能
    ②浏览所选课程
    ③查询成绩

    ⑶教师使用模块
    主要有两个功能
    ①我的课程
    ②登分

    2.非功能性需求

    采用B/S结构。还需要质量要求


    image.png

    二、系统设计

    通过自顶向下的设计方法,将在线选课系统设计成模块结构图。

    1.功能模块设计

    image.png

    ①登录验证模块
    ②管理员后台模块
    有学生信息管理、教师信息管理、课程信息管理、班级信息管理。


    image.png

    ③学生使用模块


    image.png

    ④教师使用模块


    image.png

    2.数据库设计

    ①确定实体
    根据前期的设计,确定实体有:学生、教师、课程、院系、班级和系统管理员。所包含的属性信息设计如下:
    i)学生实体用于描述学生的基本信息,包括学号、姓名、性别、密码等信息。

    ii)教师实体用于描述教师的基本信息,包括教师工号、姓名、性别、年龄、职称、密码等信息。

    iii)课程实体用于描述课程的基本信息,包括课程号、课程名、学分、时间、地点、类别、开课学院、限选人数等信息。

    iv)院系实体用于描述院系的基本信息,包括院系名称、办公地点、教师人数等信息。

    v)系统管理员实体用于描述系统管理员的基本信息,包括姓名、ID 号、密码等信息

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

    ②局部信息结构
    i ) 学生-课程E-R图(多对多M-N)


    image.png

    ii) 教师-课程E-R图(1:N)


    image.png

    iii) 教师-院系E-R图(1:N)


    image.png

    iv) 学生-院系E-R图(1:N)


    v) 系统管理员-学生E-R图(多对多M-N)


    image.png

    vi) 系统管理员-教师E-R图(多对多M-N)


    image.png

    vii) 系统管理员-课程E-R图(多对多M-N)


    image.png

    viii) 系统管理员-院系E-R图(多对多M-N)


    image.png

    ③全局信息结构
    i) 首先将学生-课程E-R图、教师-课程E-R图、教师-院系E-R图、学生-院系E-R图合并成为一个较大的局部信息结构。


    image.png

    ii) 再将系统管理员-学生E-R图、系统管理员-教师E-R图、系统管理员-课程E-R图、系统管理员-院系E-R图合并成为一个较大的局部信息结构。


    image.png

    iii) 最后,将两个合并成为一个全局E-R


    image.png

    ④逻辑结构与规范化设计
    将E-R图转换为关系模式,
    学生(学号(主码)、姓名、性别、登录密码、院系编号)
    院系(院系编号(主码)、系名、学生人数、教师人数、办公地点)
    教师(职工号(主码)、姓名、性别、年龄、职称、登录密码、院系编号)
    课程(课程号(主码)、课程名称、课程类别、学分、上课时间、上课地点、开课学院、限选人数、职工号)
    系统管理员(ID 号(主码)、姓名、登录密码)
    选修(学号(主码)、课程号(主码)、成绩)
    管理学生(管理员 ID 号(主码)、学号(主码)、操作时间)
    管理院系(管理员ID号(主码)、院系编号(主码)、操作时间)
    管理教师(管理员ID号(主码)、职工号(主码)、操作时间)
    管理教师(管理员ID号(主码)、课程号(主码)、操作时间)

    三、系统实现

    ①数据库的实现
    创建数据库db_xuanke;

    mysql> create database db_xuanke;
    Query OK, 1 row affected (0.00 sec)
    

    根据应用数据库逻辑结构设计得出的关系模式,创建12张数据表。


    image.png
    image.png
    image.png
    mysql> use db_xuanke;
    Database changed
    --创建学生信息表
    mysql> create table student
        -> (
        -> StuNo int(8) not null auto_increment,
        -> StuName varchar(10) not null,
        -> StuSex char(1) default 'M',
        -> Pwd varchar(8) not null default '00000000',
        -> DeptNo int(8) not null,
        -> primary key(StuNo)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建院系编码表
    mysql> create table deptcode
        -> (
        -> DeptNo int(8) not null primary key auto_increment,
        -> DeptName varchar(10) not null
        -> );
    Query OK, 0 rows affected (0.03 sec)
    
    --创建院系表
    mysql> create table department
        -> (
        -> DeptNo int(8) not null primary key auto_increment,
        -> Numofstudent int(10),
        -> Numofteather int(10),
        -> DeptAddr varchar(10)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建教师表
    mysql> create table teacher
        -> (
        -> TeachNo int(8) not null primary key auto_increment,
        -> TeachName varchar(10) not null,
        -> TeachSex char(1),
        -> TeachAge int(4),
        -> TeachTitle varchar(6),
        -> Pwd varchar(8) not null default '00000000',
        -> DeptNo int(8) not null
        -> );
    Query OK, 0 rows affected (0.04 sec)
    
    --创建课程编码表
    mysql> create table coursecode
        -> (
        -> CourseNo int(8) not null primary key auto_increment,
        -> CourseName varchar(10) not null
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建课程表
    mysql> create table course
        -> (
        -> CourseNo int(8) not null primary key auto_increment,
        -> CourseType varchar(6) not null,
        -> Credit int(2) not null,
        -> CourseTime date,
        -> CourseAddr varchar(10),
        -> DeptName varchar(10) not null,
        -> Limitofnum int(4) not null,
        -> TeachNo int(8) not null
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建系统管理员表
    mysql> create table administrator
        -> (
        -> AdminNo int(8) not null primary key auto_increment,
        -> AdminName varchar(10) not null,
        -> Pwd varchar(8) not null default '00000000'
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建选修表
    mysql> create table electing
        -> (
        -> StuNo int(8) not null auto_increment,
        -> CourseNo int(8) not null,
        -> Score int(4),
        -> primary key(StuNo,CourseNo)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建管理学生表
    mysql> create table adminstu
        -> (
        -> AdminNo int(8) not null auto_increment,
        -> StuNo int(8) not null,
        -> OpTime date,
        -> primary key(AdminNo,StuNo)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建管理院系表
    mysql> create table admindept
        -> (
        -> AdminNo int(8) not null auto_increment,
        -> DeptNo int(8) not null,
        -> OpTime date,
        -> primary key(AdminNo,DeptNo)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    --创建管理教师表
    mysql> create table adminteacher
        -> (
        -> AdminNo int(8) not null auto_increment,
        -> TeachNo int(8) not null,
        -> OpTime date,
        -> primary key(AdminNo,TeachNo)
        -> );
    Query OK, 0 rows affected (0.06 sec)
    
    --创建课程表
    mysql> create table admincourse
        -> (
        -> AdminNo int(8) not null auto_increment,
        -> CourseNo int(8) not null,
        -> OpTime date,
        -> primary key(AdminNo,CourseNo)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    

    ②系统功能的实现
    包括实现必要的数据库行为和应用软件的业务逻辑
    ⑴实现数据库行为
    是实现数据库行为设计的结果,主要完成增、删、改、查等操作。
    i) 安全控制

    ⑵实现应用软件的业务逻辑

    四、系统测试与维护

    1.登录验证功能测试

    image.png

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

    ⑴学生信息管理功能


    image.png

    ⑵课程信息管理功能


    image.png

    3.学生使用模块功能测试

    image.png

    4.教师使用模块功能测试

    image.png

    相关文章

      网友评论

          本文标题:数据库应用设计与开发实例

          本文链接:https://www.haomeiwen.com/subject/nwregrtx.html