购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.5 创建数据库表间关联

在实际的数据库创建过程中,通常会创建数据库的表间关联,即确定数据库的模式。这种方式创建的数据库表,通常要严格按照数据库设计的物理结构来定义各个数据库表的结构,同时将数据表中的主、外键确定下来,这样,一个数据库中的所有数据库表定义完成,数据库的结构也就确定了下来。

1.实验目标

已知“新华大学学生信息管理系统”数据库设计结果,概念模型如图4-20所示。

图4-20 概念模型

逻辑结构关系模式如下:

     学院(学院编号,学院名称,院长,电话,地址)
     系(系编号,系名称,系主任,教师人数,班级个数,学院编号)
     班级(班级编号,班级名称,班级人数,班长姓名,专业名称,系编号)
     学生(学号,姓名,性别,出生年月,籍贯,班级编号)
     教师(教师编号,姓名,性别,职称,系编号)
     课程(课程编号,课程名称,学时,学分,学期)
     学生成绩(学号,课程编号,成绩)
     教师授课(教师编号,课程编号,教室编号)

物理结构设计如表4-6~表4-13所示。

表4-6 school表结构

表4-7 department表结构

表4-8 class表结构

表4-9 student表结构

表4-10 teacher表结构

表4-11 course表结构

表4-12 score表结构

表4-13 assignment表结构

利用SQL语句,创建以上所有数据库表。

2.操作步骤

利用SQL语句创建数据库表。

操作步骤如下:

(1)打开浏览器,进入“华为云-账号登录”窗口。

(2)在“华为云-账号登录”窗口登录,进入“华为云”管理平台首页。

(3)在“华为云”管理平台首页选择“控制台”选项,进入“控制台”窗口。

(4)在“控制台”窗口选择“云数据库GaussDB”选项,进入“云数据库GaussDB-管理控制台”窗口。

(5)在“云数据库GaussDB-管理控制台”窗口选择“库管理”菜单命令,打开“库管理”选项卡。

(6)在“库管理”选项卡中单击“SQL窗口”按钮,打开“SQL窗口”。

(7)在“SQL查询”选项卡的SQL编辑区,依次输入、并执行如下SQL语句:

①创建数据库表school。

     CREATE TABLE 'xinhua_gaussdb'. 'school'(
          'School_id' CHAR(1) NOT NULL COMMENT '学院编号',
          'School_name' CHAR(10) NULL COMMENT '学院名称',
          'School_dean' CHAR(6) NULL COMMENT '院长',
          'School_tel' CHAR(13) NULL COMMENT '电话',
          'School_addr' CHAR(10) NULL,COMMENT '地址',
          PRIMARY KEY('School_id')
     )ENGINE=InnoDB
         DEFAULT CHARACTER SET=utf8mb4
         COLLATE=utf8mb4_general_ci
         COMMENT= '学院表';

②创建数据库表department。

     CREATE TABLE 'xinhua_gaussdb'. 'department'(
          'Department_id' CHAR(4) NOT NULL COMMENT '系编号',
          'Department_name' CHAR(14) NULL COMMENT '系名称',
          'Department_dean' CHAR(6) NULL COMMENT '系主任',
          'Teacher_num' SMALLINT UNSIGNED NULL COMMENT '教师人数',
          'Class_num' SMALLINT UNSIGNED NULL COMMENT '班级个数',
          'School_id' CHAR(1) NULL COMMENT '学院编号',
          PRIMARY KEY('Department_id')
     )ENGINE=InnoDB
         DEFAULT CHARACTER SET=utf8mb4
         COLLATE=utf8mb4_general_ci
         COMMENT='系表';

③创建数据库表class。

     CREATE TABLE 'xinhua_gaussdb'. 'class'(
          'Class_id' CHAR(8) NOT NULL COMMENT '班级编号',
          'Class_name' CHAR(4) NULL COMMENT '班级名称',
          'Student_num' SMALLINT UNSIGNED NULL COMMENT '班级人数',
          'Monitor' CHAR(6) NULL COMMENT '班长姓名',
          'Major' CHAR(10) NULL COMMENT '专业名称',
          'Department_id' CHAR(4) NULL COMMENT '系编号',
          PRIMARY KEY('Class_id')
     )ENGINE=InnoDB
         DEFAULT CHARACTER SET=utf8mb4
         COLLATE=utf8mb4_general_ci
         COMMENT='班级表';

④创建数据库表student。

     CREATE TABLE 'xinhua_gaussdb'. 'student'(
          'Student_id' CHAR(6) NOT NULL COMMENT '学号',
          'Student_name' CHAR(6) NULL COMMENT '姓名',
          'Gender' CHAR(2) NULL COMMENT '性别',
          'Birth' DATETIM ENULL COMMENT '出生年月',
          'Birthplace' CHAR(50) NULL COMMENT '籍贯',
          'Class_id' CHAR(8) NULL COMMENT '班级编号',
          PRIMARY KEY('Student_id')
     )ENGINE=InnoDB
          DEFAULT CHARACTER SET=utf8mb4
          COLLATE=utf8mb4_general_ci
          COMMENT= '学生表';

⑤创建数据库表teacher。

     CREATE TABLE 'xinhua_gaussdb'. 'teacher'(
          'Teacher_id' CHAR(7) NOT NULL COMMENT '教师编号',
          'Teacher_name' CHAR(6) NULL COMMENT '姓名',
          'Gender' CHAR(2) NULL COMMENT '性别',
          'Title' CHAR(8) NULL COMMENT '职称',
          'Department_id' CHAR(6) NULL COMMENT '系编号',
          PRIMARY KEY('Teacher_id')
     )ENGINE=InnoDB
          DEFAULT CHARACTER SET=utf8mb4
          COLLATE=utf8mb4_general_ci
          COMMENT='教师表';

⑥创建数据库表course。

     CREATE TABLE 'xinhua_gaussdb'. 'course'(
          'Course_id' CHAR(5) NOT NULL COMMENT '课程编号',
          'Course_name' CHAR(12) NULL COMMENT '课程名称',
          'Period' SMALLINT UNSIGNED NULL COMMENT '学时',
          'Credit' SMALLINT UNSIGNED NULL COMMENT '学分',
          'Term' SMALLINT(1) UNSIGNED NULL COMMENT '学期',
          PRIMARY KEY('Course_id')
     )ENGINE=InnoDB
          DEFAULT CHARACTER SET=utf8mb4
          COLLATE=utf8mb4_general_ci
          COMMENT='课程表';

⑦创建数据库表score。

     CREATE TABLE 'xinhua_gaussdb'. 'score'(
          'Student_id' CHAR(6) NOT NULL COMMENT '学号',
          'Course_id' CHAR(5) NOT NULL COMMENT '课程编号',
          'Score' SMALLINT UNSIGNED NULL COMMENT '成绩',
          PRIMARY KEY ('Student_id','Course_id')
     )ENGINE=InnoDB
         DEFAULT CHARACTER SET=utf8mb4
         COLLATE=utf8mb4_general_ci
         COMMENT='学生成绩表';

⑧创建数据库表assignment。

     CREATE TABLE 'xinhua_gaussdb'. 'Assignment'(
          'Teacher_id' CHAR(6) NOT NULL COMMENT '教师编号',
          'Course_id' CHAR(5) NOT NULL COMMENT '课程编号',
          'Classroom_id' CHAR(5) NULL COMMENT '教室编号',
          PRIMARY KEY('Teacher_id','Course_id')
     )ENGINE=InnoDB
         DEFAULT CHARACTER SET=utf8mb4
         COLLATE=utf8mb4_general_ci
         COMMENT= '教师授课表';

(8)利用MySQL的Workbench工具,可以看到全局数据库模式,如图4-21所示。

图4-21 全局数据库模式 6aNsLg28ndSQ7RJzeANQBjJdjldb96H+140UIsz6SAHbE5+QYzt1Lwv9YNYaU3Hp

点击中间区域
呼出菜单
上一章
目录
下一章
×