Bootstrap

数据库课程设计mysql

1. 需求分析

1.1 用户需求

在数据库课程设计中,用户需求是系统设计的核心。通过对目标用户群体的调研,我们可以将用户需求细分为以下几类:

  • 管理员需求:

    • 用户管理:管理员需要能够添加、删除和修改系统用户,以及分配相应的权限。
    • 信息维护:管理员需要维护学生、教师和课程的基本信息。
    • 系统设置:管理员需要配置系统参数,如学年学期、专业设置等。
  • 教师需求:

    • 课程管理:教师需要查看和管理所授课程的信息。
    • 学生管理:教师需要查看所授课程的学生名单,了解学生的基本信息。
    • 成绩管理:教师需要录入、修改和查询学生的成绩。
  • 学生需求:

    • 信息查询:学生需要查看个人的基本信息和所选课程信息。
    • 成绩查询:学生需要查看各门课程的成绩和绩点。
    • 选课功能:学生需要在线选课和退课。

1.2 系统功能需求

基于上述用户需求,系统需要具备以下功能:

  1. 用户登录和权限管理: 实现用户的身份认证和权限控制,确保系统安全性。
  2. 学生信息管理: 添加、删除、修改和查询学生的基本信息。
  3. 教师信息管理: 添加、删除、修改和查询教师的基本信息。
  4. 课程信息管理: 添加、删除、修改和查询课程的基本信息。
  5. 选课管理: 学生在线选课和退课,管理员分配课程。
  6. 成绩管理: 教师录入和修改学生成绩,学生查询成绩。
  7. 系统设置: 配置学年学期、专业和班级等基本信息。

2. 概念设计

2.1 实体识别

在数据库的概念设计阶段,实体识别是构建数据模型的基础。通过对用户需求的分析,我们可以识别出以下主要实体:

  • 学生(Student):作为系统的主要用户之一,学生实体是课程信息的接收者和成绩的生成者。
  • 教师(Teacher):教师实体负责课程的教授和学生成绩的评定。
  • 课程(Course):课程实体是教学活动的核心,连接学生和教师。
  • 选课(Enrollment):选课实体记录了学生与课程之间的关系。
  • 成绩(Grade):成绩实体记录了学生在课程中的表现。
  • 专业(Major):专业实体定义了学生所属的学术领域。
  • 院系(Department):院系实体是教师和专业所属的组织单位。

2.2 实体属性

每个实体都有一系列属性,这些属性定义了实体的特征和数据存储的需求:

  • 学生(Student)

    • 学号(student_id):唯一标识一个学生。
    • 姓名(name):学生的姓名。
    • 性别(gender):学生的性别。
    • 年龄(age):学生的年龄。
    • 专业编号(major_id):外键,关联到专业实体。
    • 班级(class):学生所属的班级。
  • 教师(Teacher)

    • 教师编号(teacher_id):唯一标识一个教师。
    • 姓名(name):教师的姓名。
    • 性别(gender):教师的性别。
    • 职称(title):教师的职称。
    • 院系编号(dept_id):外键,关联到院系实体。
  • 课程(Course)

    • 课程编号(course_id):唯一标识一个课程。
    • 课程名称(name):课程的名称。
    • 学分(credit):课程的学分。
    • 学时(hours):课程的学时。
    • 教师编号(teacher_id):外键,关联到教师实体。
  • 选课(Enrollment)

    • 学号(student_id):外键,关联到学生实体。
    • 课程编号(course_id):外键,关联到课程实体。
    • 选课时间(enroll_date):学生选课的时间。
  • 成绩(Grade)

    • 学号(student_id):外键,关联到学生实体。
    • 课程编号(course_id):外键,关联到课程实体。
    • 成绩(grade):学生在课程中的成绩。
  • 专业(Major)

    • 专业编号(major_id):唯一标识一个专业。
    • 专业名称(name):专业的名称。
    • 院系编号(dept_id):外键,关联到院系实体。
  • 院系(Department)

    • 院系编号(dept_id):唯一标识一个院系。
    • 院系名称(name):院系的名称。

2.3 实体间关系

实体间的关系定义了实体如何相互关联,以下是实体间的主要关系:

  • 学生与专业:多对一关系,一个专业可以有多个学生,但一个学生只能属于一个专业。
  • 教师与院系:多对一关系,一个院系可以有多个教师,但一个教师只能属于一个院系。
  • 课程与教师:多对一关系,一门课程由一个教师教授,但一个教师可以教授多门课程。
  • 学生与选课:一对多关系,一个学生可以选修多门课程,但每门课程的选课记录对应一个学生。
  • 课程与选课:一对多关系,一门课程可以被多个学生选修,但每门课程的选课记录对应一门课程。
  • 选课与成绩:一对一关系,一个选课记录对应一条成绩记录,但一个成绩记录只能对应一个选课记录。

3. 逻辑设计

3.1 关系模式设计

关系模式设计是将概念模型转换为逻辑模型的过程,即关系模型。以下是根据概念设计阶段确定的实体和关系,设计的关系模式:

  • 学生(Student)表

    • student_id (INT, PRIMARY KEY):学生编号,主键。
    • name (VARCHAR(50), NOT NULL):学生姓名,非空。
    • gender (CHAR(1), CHECK (gender IN (‘M’, ‘F’))):性别,只能是’M’或’F’。
    • age (INT, CHECK (age BETWEEN 16 AND
;