数据库的概念模型与关系模型的设计与实现

发布于:2022-12-20 ⋅ 阅读:(437) ⋅ 点赞:(0)

我也是刚接触数据库,希望和大家一起学习。

我将通过下面这个简单的例题和大家讨论概念模型和关系模型。

需求完成数据库的设计

  假设要根据某大学计算机学院成绩管理的业务规则设计一个数据库的概念模型,这个学院的业务规则如下:

  1. 该学院聘用多名教师,但每一位教师只属于该学院。教师包括教工号、姓名、学历、

职称、工资、电话号码信息。

       2、一位教师可能讲多门课,每一门课可由多位教师讲授。课程包括课程号、课程名称、学时数和学分信息,每门课程可存在一门先行课程。

       3、该学院有多名学生,且每一名学生只能属于该学院。学生包括学号、姓名、性别、出生年月、专业、籍贯、电话号码信息。

       4、每一名学生可选修多门课,且一门课有多名学生选;学生所修课程的成绩包括平时成绩与期末成绩。

首先先了解几个概念

概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产生概念模型。概念模型是现实世界到机器世界必然经过的中间层次。涉及到下面几个术语:
实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。
实体集:同一类实体的集合称为实体集。如全体职工。注意区分"型"与"值"的概念。如每个职工是职工实体"型"的一个具体"值。
属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。
联系:实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系。另一种是实体之间的联系。

首先来分析一下上述题目有哪些实体,主要是学院,学生,教师,课程。但是我们考虑到这个题目已经提到是针对这个计算机学院所考虑,而且所有老师都来自这个学院,那么我便可以不把学院考虑进去。

再来看学生,老师,课程的属性。

教师:教工号,姓名,学历,职称,工资,电话号码

学生:学号,姓名,性别,出生年月,专业,籍贯,身份证号码,电话号码

课程:课程号,课程名称,学时,学时,学分

有下划线的代表他的唯一的id,不会和其他的实体重复,比如说学生的名字是有可能是一样的,但是学号是不可能的,当然身份证号码也是肯定不一样的,但是我们是针对学校里面的系统,所以用学号作为唯一id会比较好一点。

联系就是实体之间的关系,比如说课程是由学生选修的,课程是老师讲授的

在知道这些之后我们就可以用E-R图来画概念模型了

实体用矩形表示,属性用椭圆表示,如下。

 

联系也有自己的属性的,比如说老师讲授课程,讲授也有时间为他的属性。

整体的E-R图如下:

 讲授和选修两个联系的n,m的意思其实就是多对多的关系,比如说老师可以讲授多门课,比如说我们数据库的老师也教算法,而且一门课也可以与多名老师,比如说我们课程设计的实验一般都会有两名老师。

这样一个简单的E-R图概念模型就设计完成了。


关系模型

接下来我们来讨论关系模型,有了E-R图之后我们便有了非常直观的感受。

关系模式(Relation Schema)是对关系的描述,它可以形式化地表示为: R(U,D,dom,F)

其中R关系名U为组成该关系的属性名集合D为属性组U中属性所来自的dom为属性向域的映象集合F为属性间数据的依赖关系集合

通常简记为:R(U)R(A1,A2,…,An)其中R为关系名,U为属性名集合,A1,A2,…,An为各属性名。

教师(教工号,姓名,学历,职称,工资,电话号码)

课程(课程号,课程名称,学时,学分)

讲授(教工号课程号讲授时间

注意这里划横线的意思是和在E-R图例里面的意思是一样的。

因为这里是多对多,所以不能合并,如果是一门课只能由一名老师讲授,那么课程和讲授时间就能合并到课程时间里面。

这是这个题目的关系模式。

教师(教工号,姓名,学历,职称,工资,电话号码)

学生(学号,姓名,性别,出生年月,专业,籍贯,电话号码)

课程(课程号,课程名称,学时,学分)

选修(学号课程号,平时成绩,期末成绩)

讲授(教工号课程号讲授时间

有不足的地方希望大家能指出,也希望能对大家有一定帮助!

本文含有隐藏内容,请 开通VIP 后查看