精华内容
下载资源
问答
  • 最近开始做数据库的大实验,其中有一条实验要求如下:通过网络查找相关文献并参考所给资料进行需求分析,画出系统的 E-R 图,给出实体或联系的属性,标明联系的种类,并写出关系模式。画ER图没有什么问题,但是关系...

    最近开始做数据库的大实验,其中有一条实验要求如下:

    通过网络查找相关文献并参考所给资料进行需求分析,画出系统的 E-R 图,给出实体或联系的属性,标明联系的种类,并写出关系模式。

    画ER图没有什么问题,但是关系模式是什么就不知道了。所以,还是有必要学习一下的。

    关系模式的定义

    通过google和课本上对关系模式的定义得出如下定义:

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

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

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

    有了定义,对关系模式有一个大概的认识(可以说基本上还是蒙的),那么按照实验的要求,我们要如何从ER图中的到一个关系模式呢?

    ER图转关系模式

    这里我会以学生管理系统中常见的几个实体关系为例,设计简单你的ER图,并做转换说明。

    1对1转换关系

    首先我们先从最简单的做起。这里我们将教师和课程的关系看做是1:1的关系(班主任),然后ER图如下:

    c4ab0b65eed7eadaf46b6db3ef39825c.png

    通过定义,我们可以初步的到一组关系模式:

    教师(性别,职工号,手机号,年龄,姓名)

    班级(班级名称,班级号)

    负责(职工号,班级号)

    这就是一组关系模式,有人会说,负责这组关系模式好像多余呀。是的,下面我们就着手将其进行合并。

    这里可以将教师和负责两个关系合并到一起,也可以选择将班级和负责合并到一起。

    1.合并教师和负责

    教师(性别,职工号,手机号,年龄,姓名,班级号)

    班级(班级名称,班级号)

    合并就是将关系负责的属性添加到教师的属性中去,然后合并重复的属性。

    2.合并班级和负责

    教师(性别,职工号,手机号,年龄,姓名)

    班级(班级名称,班级号,职工号)

    通过上面的合并,我们发现,合并后的两个关系才更像是我们最终的数据表结构。

    1对n转换关系

    班级和学生是1对n的关系,ER图如下:

    32c4184dd588fcc2f0f027f89ecd6b5c.png

    同样的,我们有可以先得到一组独立地关系模式:

    学生(学号,姓名,性别)

    班级(班级名称,班级号)

    包含(学号,班级号,人数)

    然后将联系的关系进行合并。在1对n的关系中,需要将联系的关系添加到n的一方的关系模式中。

    学生(学号,姓名,性别,班级号)

    班级(班级名称,班级号)

    m对n转换关系

    最后看一下多对多的关系是如何转换的。首先还是先给出ER图:

    42e0865228d71158f5b40d660b693af6.png

    学生和课程的关系是m:n的。然后得到初步的关系模型:

    学生(学号,姓名,性别)

    课程(课程号,课程名)

    选修(学号,课程号,成绩)

    按照上面的惯例,下面我们应该合并关系模型了。但是在多对多的关系下,三种关系模式是不能进行合并的。而两个实体联系的关系模式正式我们常说的中间表的结构。

    理解关系模式的作用

    在上面通过ER图得到关系模式和合并关系模式的过程中,我们发现关系模式其实就是对应我们的数据表结构。那么关系模式有什么用呢,以往我们不通过关系模式一样可以得到表结构。

    其实是没错的,但是通过范式的学习,发现我们的关系模式更多的时候是得到最终数据表的一个分析工具。就像我们上面一样,一开始会得到一个初始的独立的关系模式,然后对关系模式做合并,得到一个更加合理的关系模式。

    使用范式也是一样的,我们会从基本的关系模式出发,然后利用范式的规则,得到最终更加合理的关系模式。这个过程如果只是靠抽象的想象的话,如果实体数量少还好说的,但是随着实体数越来越多,就会显得不大现实,而且准确性也会下降。

    总的来说,通过对关系模式的化简合并,才会得到我们最终的实际编程用的数据表结构,比如下面这样:

    88c45af84bdc567d915ea97b28b24260.png

    总结

    通过学习,自己理解了一下关系模式。发现自己原来创建数据表的方式有点随意了。我只是做到了给出了一种数据表的解决办法,但是还不能算是数据库设计的范畴。看来自己还是处在一个程序员的位置,想要成为一个工程师,还有很长的路要走。

    后面我还会继续更新对范式的相关学习。

    展开全文
  • ER图转换关系模式

    千次阅读 2021-01-14 03:31:27
    ER图转换关系模式(2013-03-21 14:09:07)标签:it转换一般遵循如下原则:1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。例如在我们的例子中,学生实体可以转换为如下关系模式,...

    ER图转换关系模式

    (2013-03-21 14:09:07)

    标签:

    it

    转换一般遵循如下原则:

    1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实

    体的码就是关系的码。

    例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号

    为学生关系的码:

    学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性

    别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换

    为一个关系模式。

    2.一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系

    的属性转化为关系的属性,该关系的码则有三种情况:

    若联系为1:1,则每个实体的码均是该关系的后选码。

    若联系为1:n,则关系的码为n端实体的码。

    若联系为m:n,则关系的码为诸实体码的组合。

    2.1 联系为1:1

    一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对

    应的关系模式合并。

    如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及

    联系本身的属性均转换为关系的属性,l 每个实体的码均是

    该关系的候选码。

    如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加

    入另一个关系模式的码和联系本身的属性。

    例如在我们的例子中,"管理"联系为1:1联系,我们可以将其转换为

    一个独立的关系模式:

    管理(职工号,班级号)或 管理(职工号,班级号)

    管理"联系也可以与班级或教师关系模式合并。如果与班级关系模式合

    并,则只需在班级关系中加入教师关系的码,即职工号:

    班级:{班级号,学生人数,职工号}

    同样,如果与教师关系模式合并,则只需在教师关系中加入班级关系

    的码,即班级号:

    教师:{职工号,姓名,性别,职称,班级号,是否为优秀班主任}

    2.2 联系为1:n

    一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的

    关系模式合并。

    如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及

    联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

    如果与n端对应的关系模式合并,则在n端实体对应模式中加入1端

    实体所对应关系模式的码,以及联系本身的属性。而关系的码为n端

    实体的码。

    例如在我们的例子中,"组成"联系为1:n联系,将其转换为关系模式。

    一种方法是使其成为一个独立的关系模式:

    组成(学号,班级号)

    其中学号为"组成"关系的码。

    另一种方法是将其学生关系模式合并,这时学生关系模式为:

    学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)

    后一种方法可以减少系统中的关系个数,一般情况下更倾向于采用这

    种方法。

    2.3 联系为m:n

    一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及

    联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

    例如在我们的例子中,"选修"联系是一个m:n联系,可以将它转换为如

    下关系模式,其中学号与课程号为关系的组合码:

    选修(学号,课程号,成绩)

    三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多

    元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。

    例如在我们的例子中,"选修"联系是一个m:n联系,可以将它转换为如

    下关系模式,其中学号与课程号为关系的组合码:

    选修(学号,课程号,成绩)

    三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多

    元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。

    而关系的码为各实体码的组合。

    例如在我们的例子中,"讲授"联系是一个三元联系,可以将它转换为

    如下

    关系模式,其中课程号、教师号和书号为关系的组合码: 讲授(课程号,教师号,书号)

    3.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和

    m:n三种情况分别处理。

    例如,如果教师实体集内部存在领导与被领导的1:n自联系,我们可

    以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不

    同,可用不同的属性名加以区分,比如在合并后的关系模式中,主码

    仍为职工号,再增设一个"系主任"属性,存放相应系主任的职工号。

    4.具有相同码的关系模式可合并。

    为了减少系统中的关系个数,如果两个关系模式具有相同的主码,可

    以考虑将他们合并为一个关系模式。合并方法是将其中一个关系模式

    的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可

    能同名也可能不同名),并适当调整属性的次序。

    例如我们有一个"拥有"关系模式:拥有(学号,性别)

    有一个学生关系模式: 学生(学号,姓名,出生日期,所在系,年级,

    班级号,平均成绩)

    这两个关系模式都以学号为码,我们可以将它们合并为一个关系模式,

    假设合并后的关系模式仍叫学生:

    学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均

    成绩)

    按照上述4条原则,学生管理子系统中的18个实体和联系可以转换为

    下列关系模型:

    学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均

    成绩,档案号)

    性别(性别,宿舍楼)

    宿舍(宿舍编号,地址,性别,人数)

    班级(班级号,学生人数)

    教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)

    教学(职工号,学号)

    课程(课程号,课程名,学分,教室号)

    选修(学号,课程号,成绩)

    教科书(书号,书名,价钱)

    教室(教室编号,地址,容量)

    讲授(课程号,教师号,书号)

    档案材料(档案号,......)

    该关系模型由12个关系模式组成。其中学生关系模式包含了"拥有"联

    系、"组成"联系、"归档"联系所对应的关系模式;教师关系模式包含

    了"管理"联系所对应的关系模式;宿舍关系模式包含了"住宿"联系所

    对应的关系模式;课程关系模式包含了"开设"联系所对应的关系模式。

    分享:

    喜欢

    0

    赠金笔

    加载中,请稍候......

    评论加载中,请稍候...

    发评论

    登录名: 密码: 找回密码 注册记住登录状态

    昵   称:

    评论并转载此博文

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    展开全文
  • 展开全部数据库中“关系模式”的定义是对关系的描述,其必须指出这个元组集合的结构,也就是它32313133353236313431303231363533e4b893e5b19e31333366306435由哪些属性构成,这些属性来自哪些域,以及属性与域之间的...

    展开全部

    数据库中“关系模式”的定义是对关系的描述,其必须指出这个元组集合的结构,也就是它32313133353236313431303231363533e4b893e5b19e31333366306435由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。此外,一个关系通常是由赋予它的元组语义来确定的。

    关系的描述称为关系模式(Relation Schema)它可以形式化地表示为:

    R(U,D,dom,F)

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

    通常简记为:

    R(U)或R(A1,A2,…,An)

    其中R为关系名,U为属性名集合,A1,A2,…,An为各属性名。

    bf37ace956424a19691f6aa05ec382a8.png

    扩展资料:

    性质

    1)如果关系模式在达到1NF的基础上,使每个非主属性都完全依赖于每个关系键,则该关系模式达到2NF的要求。

    2)如果关系模式属于2NF,且每个非主属性都不传递依赖于关系的任何键,这该关系模式属于3NF的要求。

    3)若关系符合1NF,且对于每个函数依赖X→Y,X必含有候选键,或者关系中的每个决定属性集都是候选键,则关系达到BCNF的要求。

    4)达到2NF的关系模式没有去掉非主属性对关系键的传递依赖关系,而达到3NF的关系模式去掉了非主属性对关系键的传递依赖关系。2NF和3NF没有去掉主属性对关系键的依赖关系,而满足BCNF的关系消除了任何属性(主属性或非主属性)对键的部分依赖或传递依赖。

    5)各个范式之间的联系有BCNF?3NF?2NF,如果关系满足某个范式要求,也会满足级别较低的所有范式的要求,即较高层次的范式比较低层次的范式具有更合乎要求4.证明在关系数据库中任何的二元关系模式必定是BCNF。

    设R为一个二元关系R(x1,x2),则属性x1和x2之间可能存在以下几种依赖关系:

    1) x1→x2,但x2 !→x1,则关系R的候选关键字为x1,函数依赖的左部包含候选关键字x1,所以R为BCNF。

    2) x1 !→x2,x2 !→x1,则关系R的候选关键字为x1和x2,这两个函数依赖的左部都包含了R的任一候选关键,所以R为BCNF。

    3) xl→x2,x2→x1,则关系R的候选关键字为(x1,x2),R上没有函数依赖,所以R为BCNF。

    构成

    在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面呢?

    首先,应该知道,关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。

    关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。

    其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。

    运用

    关系模式仅涉及关系名、各属性名、域名、属性向域的映象四部分。

    例如,在上面例子中,由于导师和研究生出自同一个域—人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,如:

    dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON 关系模式通常可以简记为 R(U)或R(A1,A2,…,An)

    其中R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系是关系模式在某一时刻的状态或内容。

    关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,人们常常把关系模式和关系都称为关系,这不难从上下文中加以区别。

    展开全文
  • 关系模式中的各种码(键/关键字)

    千次阅读 2021-03-15 21:02:18
    码,又称键、关键字,英文是key。唯一标识实体的属性集称为码。 ...全码:一个候选码包含关系模式中的所有属性,则该候选码为全码 举个例子: 关系Student(学号,姓名,年龄,院系,班级)...

    码,又称键、关键字,英文是key。唯一标识实体的属性集称为码。

     超码(超键):即码,可以有多个,但至少有一个。

    候选码(候选键、候选关键字):其任意真子集都不能构成超码的超码。假设有个超码K(A1,A2,A3),加上属性A4还是超码,但是去掉A3后就不能唯一标识一个实体了,K就是候选码。候选码可以有多个。

    主码(主键,主关键字):选定的一个候选码,有且只能有一个

    全码:一个候选码包含关系模式中的所有属性,则该候选码为全码

     

    举个例子:

    关系Student(学号,姓名,年龄,院系,班级)

    语义规定:1.知道学号就唯一确定了一个学生实体 2.一个班上没有同名者 3.知道院系、姓名和班级也可以唯一确定一个实体

    超码:(学号) 、(学号,姓名)、(学号,姓名,年龄)、(学号,年龄)、(院系,姓名,班级)、....太多了,不写了

    候选码:(学号)、(院系,班级,姓名)

    主码:选定学号作为主码,则主码即(学号)

     

    水平有限,若有错误,敬请指正。

     

    展开全文
  • R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。】以上,对于我们刚入门的小白而言都为屁话。 关系模式通常简记为R(U)或R(A1,A2,A3,…,An) ...
  • 贝尔梅尔娜美2019.03.15采纳率:60%等级:39已帮助:91565人数据库系统的基本概念数据:实际上就是描述事物的符号记录。数据的特点:有一定的结构,有型与值之分,如...数据库存放数据是按数据所提供的数据模式存...
  • 对银行数据库模式: branch (b_no,b_name, address, city, assets) customer (account_no,c_name, street, city) transaction (account_no, t_date,t_time, t_type, amount, b_no) 分别为营业点表,客户表,客户的...
  • 主关键字只能有一个,候选关键字若干不限
  • 数据库原理-关系模式的规范化

    千次阅读 2021-08-26 12:29:02
    关系数据库的规范化理论是数据库逻辑设计的工具 一个关系只要其分量都是不可分的数据项,它就是规范化...关系模式集合,这种过程就叫关系模式的规范化。 1.关系模式规范化的步骤 消除决定属性集非码的非平凡函数依赖 1
  • 数据库关系模式的规范化

    千次阅读 2021-04-03 15:23:11
    在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即...
  • 如图,关系也可以有额外的属性,记录老师什么时候开始指导某学生 弱实体集 映射基数 就是描述这段关系是一对多还是多对一,多对多,一对一 如下图,advisor是二者的关系, 一个导师指导多个学生,所以是一对多的...
  • mysql表关系

    千次阅读 2021-01-19 23:33:19
    表与表之间的关系"""把所有数据都存放于一张表的弊端1.组织结构不清晰2.浪费硬盘空间3.扩展性极差"""#上述的弊端产生原因类似于把代码全部写在一个py文件中,你应该怎么做?>>>解耦合!将上述一张表拆成...
  • E-R图向关系模式的转换需要考虑的是:将实体型和实体间的联系转换为关系模式。 由此可以得出:向关系模式的转换即需要 1:实体的转换 2:联系的转换 其中两个实体间的联系的类型有三种: 即: 1:1型,1:n型,m:n型 故与之...
  • E-R图/关系模式

    千次阅读 2020-12-29 14:55:25
    E-R图中:实体型用矩形表示,矩形框内写明实体;属性用椭圆形表示,并用无向边将其与相应的实体型连接起来;联系用菱形表示,框内写明联系,并用无向边分别与有关的实体型连接起来,同时在无向边旁标上联系的...
  • 关系模式中候选关键字的图论求解法李莉【摘要】文章首先介绍了函数依赖图的概念及理论,并应用该理论对数据库理论和实际问题中关系模式候选关键字的求解问题进行了深入系统的讨论,并用该方法解决了关系模式中函数...
  • 关系数据库模式->关系数据库管理 用户需求->概念模型(E/R Model)->逻辑模型(三层结构) 现实世界->信息世界->机器世界 概念设计工具E-R图 E-R图的组成元素:实体、属性、联系(而不是关系) ...
  • 数据库系统原理------ER图转化成关系模式

    千次阅读 多人点赞 2021-03-06 17:45:39
    实体集向关系模式的转换 两个实体型之间的联系集向关系模式的转换 同一实体型之间的联系集向关系模式的转换 多实体型之间的联系向关系模式的转换 弱实体集向关系模式的转换 应用实例 E-R图转换 ​ E-R...
  • 关系数据模型是什么

    千次阅读 2021-02-02 05:15:34
    关系数据模型是一种数据模型,以关系或表格的形式对数据进行建模,是用来表示数据在关系数据库中的存储和处理方式,在关系数据库中会以关系(表)的形式来存储数据。关系数据模型中有三大要素,分别为:关系数据结构、...
  • 文章目录E-R 图示例多对多联系的转换一对多关系的转换自联系一对多的自联系转换示例最终结果(采取归并有先的原则,非唯一) E-R 图示例 以下联系类型的转换注意在独立/归并的时候主键,尤其是外键的变化 多对多联系的...
  • 将ER模型转换为关系模型的规则

    千次阅读 2020-12-23 23:13:10
    将ER模型转换为关系模型的规则如下:(1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码.(2)一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并...
  • 文章目录关系数据库关系操作基本关系操作关系数据库语言的分类关系模型的完整性实体完整性(Entity Integrity)参照完整性(Referential Integrity)用户定义完整性(User-defined Integrity)E-R图向关系模型的转换...
  • ER模型到关系模型的转换规则

    千次阅读 2020-12-23 23:13:18
    E-R模型向关系模型的转换规则:一、两元联系的转换规则(1)实体类型的转换将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。(2)联系类型的转换a实体间的联系是1:1可以在两个...
  • 关系模式R(A,B,C,D,E) 函数依赖集F={A->C, C->D, B->C, DE->C, CE->A} 首先确定候选码(BE) 在R中找到X->Y,X不属于超键,如选择A->C,A不是超键 把R分为两部分 R1={AC}, R2={ABDE},其中A也...
  • 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系型数据库。 例如,这样是符合的:student(id,name,age,class) 而这样就不符合:student(id,...
  • 三、度数:关系中实体类的数目称为关系的度数,比如二元关系中的三种类型:一对一(1:1)关系,一对多(1:N)关系,多对多(N:M)关系。1:1关系中,某种类型的一个实体实例仅和另一种类型的一个实体实例相关联。...
  • 在项目中使用的是lua,在观察者模式当中,是有一个事件ID和与这个事件ID绑定的函数(与其说是函数倒不如说是函数指针),这些全部存储在一个全局的对象的table当中,一个事件ID下绑定了很多的函数(也就是函数指针...
  • 数据库关系代数详解

    万次阅读 多人点赞 2021-02-26 16:35:55
    数据库关系代数 1. 关系代数的运算 1.1 传统的关系运算 传统的关系运算起源于数学的集合论,有下面几种: 笛卡尔积运算 差运算 交运算 并运算 1.2 专门的关系运算 选择 投影 连接 除运算 1.2.1 关系运算中的基础...
  • 数据库关系模式冲突类型 属性冲突:属性值的类型不同或取值范围不同或取值集合不同。 命名冲突:不同意义的对象名称相同 结构冲突:例如“课程”在某一局部中被当做实体,在另外一局部中被当做属性 ...
  • E-R图转换为关系模型

    千次阅读 2021-01-14 11:30:04
    第一个方法:可以单独对应一个关系模式,由各实体的主码构成关系模式,而关系模式的主码可以是任一个实体集的主码。而实体中属性照常写就可以了。第二个方法:实体中的属性照常写,然后将一方实体集的主码加到另一方...
  • ER图转关系模型

    千次阅读 2021-03-25 14:06:30
    在实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。 实体间的联系是1对N 则在N端实体类型转换成的关系模式中加入1端 实体类主键。 如实体间的联系是M对N 单独...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,468,896
精华内容 587,558
关键字:

关系模式的关系名