精华内容
下载资源
问答
  • 将具有多值属性的实体映射为关系数据库组件 我们在第2章中曾提到,多值属性适用于同一个实体的某一个属性具有个取值的情况。一个包含多值属性的实体将被映射不含多值属性关系多值属性将被映射一个单独的...
    
    将具有多值属性的实体映射为关系数据库组件

    我们在第2章中曾提到,多值属性适用于同一个实体的某一个属性具有多个取值的情况。一个包含多值属性的实体将被映射为不含多值属性的关系。多值属性将被映射为一个单独的关系,这个关系中包含一个代表多值属性的列和一个连接相应主码的外码列,这两列组成这个单独关系的一个复合主码。图3-38中展示了如何将一个具有多值属性的实体映射为关系。

    一旦如图3-38所示的关系模式作为关系数据库实现,它就可以装载数据,如图3-39所示。

    由于EMPLOYEE实体中有多值属性PhoneNumber,所以在EMPPHONE关系中,将允许在多行中出现不同的电话号码属于相同的雇员。

    EMPPHONE关系中的两列都不是唯一标识的(例如雇员1234、3456及1324共享同一个电话号码),但是EmpID和PhoneNumber这两列的组合却是可唯一标识的。因此,在EMPPHONE关系中,EmpID和PhoneNumber将组合起来形成复合主码。
     


     E-R图中某实体具有一个多值属性,在转化为关系模式时,应 ( ) 。

    A. 将多值属性作为对应实体的关系模式中的属性,即满足4NF
    B. 将实体的码与多值属性单独构成关系模式,即满足4NF
    C. 用其它属性来替代多值属性,而不需要存储该多值属性
    D. 将多值属性独立为一个关系模式,其码作为实体的外码
    试题答案:B

    
    展开全文
  • public class DataBase { public static void ... 7.6 转换为关系模式 7.6.1 具有简单属性的强实体集的表示 */ /* 7.6.2 具有复杂属性的强实体集的表示 复合属性: 复合属性会被拆解 多值属...
    public class DataBase {
        public static void main() {
    
        }
    }
    
    /*
        7.6 转换为关系模式
    
        7.6.1 具有简单属性的强实体集的表示
     */
    
    /*
        7.6.2 具有复杂属性的强实体集的表示
    
        复合属性:
            复合属性会被拆解
    
        多值属性:
            为了多值属性,我们需要创建新的关系模式。对于一个多值属性M,构建关系模式R,
            该模式包含一个对应与M的属性A,以及对应于M所在的实体集或联系集的主码的属性。
            另外,在多值属性构建的关系模式上建立外码约束,由实体集的主码所生成的属性
            去参照实体集所生成的关系。
    
        派生的属性:
            派生的属性并不在关系数据模型中显式的表示出来
     */
    
    /*
        7.6.3 弱实体集的表示:
        
        设A是具有属性a1 a2 a3的弱实体集,设B是A所依赖的强实体集,设B的主码包括属性b1
        b2 b3。我们用名为A的关系模式表示实体集A,该模式的每一个属性对应以下集合的一个
        成员:
            {a1 a2 a3}U{b1 b2 b3}
        
        对于从弱实体集转换而来的模式,该模式的主码由其所依赖的强实体集的主码和若实体集
        的分辨符组合而成。出来创建主码之外,还要在关系模式A上创建外码约束,该约束指明属
        性b1 b2 b3参照关系B的主码。外码约束保证表示弱实体的每个元祖都有一个表示相应强
        实体的元祖与之对应。
     */
    
    /*
        7.6.4 联系集的表示
        
        选择方案:
            1.多对多:参与实体集的主码属性的并集称为主码
            2.一对一:参与实体集的任意主码都可作为主码
            3.多对一:选择多的那一方参与实体的主码构成主码
            4.对于没有箭头的n元联系集:所有参与实体集的主码属性的并集构成主码
            5.对于边上有箭头的n元实体集:选择没有箭头的那一侧实体集的主码
            
        我们还在关系模式R上建立外码约束:
            对于每个与联系集R相关的实体集E,我们建立一个关系模式R上的外码约束
            
        7.6.4.1 模式的冗余
        7.6.4.2 模式的消除
     */

     

    转载于:https://www.cnblogs.com/junjie2019/p/10558926.html

    展开全文
  • 实体间的联系有:一对一、一对。1.一对一联系注:每表中必须设置主键,实现一对一的联系,需将参照属性定义唯一性...2.一对的联系第一种方法:转化为一个独立的关系模式,由相连实体的码和联系本...

    实体间的联系有:一对一、一对多和多对多。

    1.一对一联系

    注:每表中必须设置主键,为实现一对一的联系,需将参照属性定义为唯一性约束。

    1.1第一种方法:将联系转换为一个独立的关系模型(即表)。

    其属性构成是由相连各实体的码和联系本身的属性构成。

    1.2第二种方法:将联系与实体的任意一端合并。

    其属性构成是另一关系的码和联系本身的属性。

    2.一对多的联系

    第一种方法:转化为一个独立的关系模式,由相连实体的码和联系本身的属性构成。

    第二种方法:与多端关系模式合并,加入另一关系模式的码和联系本身的属性。

    3.多对多

    1.转化为一个独立关系模式,属性构成是 相连各实体的码和本身的属性构成。

    注:多对多总是转化为两个一对多

    以一对一为例

    例:部门表(部门编号,部门名称),部门经理表(经理编号,姓名),部门与部门经理之间存在一对一关系,联系为:任职。如下图:

    用第一种方法实现:将联系转换为一个独立的关系模型(即表)即创建三个表,两个实体表和一个关系表
    create database 练习
    on
    (
    	--逻辑文件名
    	name=练习,
    	--物理文件名
    	filename='e:\数据库\练习\练习.mdf',--mdf数据库文件
    	--文件的大小
    	size=10MB,
    	--文件的增长方式
    	filegrowth=10%,
    	--文件最大值
    	maxsize=100MB
    ) 
    log on
    (
    	--逻辑文件名
    	name=mydb_log,
    	--物理文件名
    	filename='e:\数据库\练习_log.ldf',--ldf 数据库日志文件
    	--文件的大小
    	size=10MB,
    	--文件的增长方式
    	filegrowth=10%,
    	--文件最大值
    	maxsize=100MB
    )
    GO
    use 练习
    create table 部门
    (
    	部门编号 char(20) ,
    	部门名称 char(20)
    )
    alter table 部门
    alter column 部门编号 char(20) not null
    alter table 部门
    add constraint pk_部门编号 primary key (部门编号)
    create table 部门经理
    (
    	经理编号 char(20) ,
    	经理姓名 char(20)
    )
    alter table 部门经理
    alter column 经理编号 char(20) not null
    alter table 部门经理
    add constraint pk_经理编号 primary key(经理编号)
    create table 任职
    (
    	部门编号 char(20) ,
    	经理编号 char(20) ,
    	任职时间 datetime 
    )
    alter table 任职
    alter column 部门编号 char(20) not null
    alter table 任职
    alter column 经理编号 char(20) not null
    alter table 任职
    add constraint pk_部门编号_经理编号 primary key(部门编号,经理编号)
    alter table 任职
    add constraint UQ_部门编号 unique (部门编号)
    alter table 任职
    add constraint UQ_经理编号 unique (经理编号)
    alter table 任职
    add foreign key(部门编号) references 部门(部门编号) 
    alter table 任职
    add foreign key(经理编号) references 部门经理(经理编号) 
    用第二种方法实现:将联系与实体的任意一端合并。即建两个表,其中一个的属性构成是另一关系的码和联系本身的属性。
    create table 部门
    (
    	部门编号 char(20) ,
    	部门名称 char(20)
    )
    alter table 部门
    alter column 部门编号 char(20) not null
    GO
    alter table 部门
    add constraint pk_部门编号 primary key (部门编号)
    create table 部门经理
    (
    	经理编号 char(20) ,
    	经理姓名 char(20),
    	部门编号 char(20),
    	任职时间 datetime
    )
    alter table 部门经理
    alter column 经理编号 char(20) not null
    alter table 部门经理
    alter column 部门编号 char(20) not null
    GO
    alter table 部门经理
    add constraint pk_经理编号 primary key(经理编号,部门编号)
    alter table 部门经理   add foreign key(部门编号) references 部门(部门编号) 
    展开全文
  • 将E-R图转换关系模式

    千次阅读 2019-04-26 20:49:57
    强实体,有简单属性,有复合属性,无多值属性 映射方法 E-R图中的每个常规(强)实体类型E,创建一个关系模式E 实体类型E的简单属性,直接放入关系模式E 实体类型E的复合属性,只把其简单成员属性放入关系模式E ...

    常规实体类型的映射

    常规实体类型的特征
    强实体,有简单属性,有复合属性,无多值属性

    映射方法

    • 为E-R图中的每个常规(强)实体类型E,创建一个关系模式E
      • 实体类型E的简单属性,直接放入关系模式E
      • 实体类型E的复合属性,只把其简单成员属性放入关系模式E
    • 如果实体类型E有多个候选键,选择其中一个,作为关系模式E的主键,其他的作为备用键
    • 实体类型E的每一个实体实例,对应关系模式E的一个元组

    二元多对多联系类型的映射

    映射方法

    • 为E-R图中二元一对多联系的每个参与实体类型E1和E2,创建关系模式E1和E2
    • 使用一个新的关系模式R来表示两个参与实体之间的多对多联系
      • 主键为两个参与实体的主键的并集
      • 创建2个外键约束,参照引用相应的参与实体
      • 联系的描述性属性,放入到这个新添加的关系模式R中

    二元一对多联系类型的映射

    第一种映射方法:外键方法

    • 为E-R图中二元一对多联系的每个参与实体类型E1和E2,创建关系模式E1和E2
    • 选中参与联系的多方实体所对应的关系模式,为其添加一个外键(是参与联系的一方实体的主键)
    • 联系的属性,也一同放入多方实体
    • 多方是子实体,一方是父实体

    部分参与的时候使用null值进行合并

    第二种映射方法:添加关联关系法
    二元多对多特例

    二元一对一联系类型的映射

    第一种映射方法:外键方法
    同二元一对多,任选一方合并外键

    第二种映射方法:合并关系方法
    为E-R图中二元一对一联系的两个参与实体类型E1和E2,创建关系模式E,包含了这两者的全部属性和联系的属性

    第三种映射方法:添加关联关系法
    二元一对多特例

    强实体/弱实体的映射

    映射方法

    • 为弱实体集A创建关系模式A
      关系模式A的属性由所有的弱实体集属性加上所依赖的强实体集的主键构成
      关系模式A的主键由强实体集B的主键加上弱实体集A的分辨符构成

    • 在关系模式A 上建立外键约束
      外键约束具有“级联删除”规则

    多值属性的映射

    映射方法

    将包含多值属性M实体集R转换为两个关系R1和R2

    • R1包括该实体集中除了多值属性以外的所有属性
    • R2包含两组属性
      • 实体集R的主码构成R2的主键
      • 多值属性M本身(此时已经转换为单值了!)

    R2的主键R1主键加单值属性M
    外键约束具有“级联删除”规则(cascade),适用于update和delete

    复杂属性的映射

    映射方法
    先考虑多值属性,然后复合属性

    n元联系类型的映射

    映射方法

    • 为E-R图中n元联系的每个参与实体类型E1,E2,…En,创建关系模式E1,E2,…En
    • 为创建一个新的关系模式R,表示这个n元联系
      • 把所有参与实体的主键作为关系模式R的外键
      • 关系模式R的主键通常由所有参与n元联系的实体的主键的并集构成
        • 如果有一个实体类型E的基数约束是1,那么R的主键就不包括这样的外键属性
      • n元联系的描述性属性也应该加入到关系模式R中

    关联实体的映射

    映射方法

    为关联实体创建一个关系模式R

    • 如果关联实体还没有分配主键
      • 把所有参与实体的主键的并集作为关联实体对应的关系模式R的主键
      • 把所有参与实体的主键作为关联实体对应的关系模式R的外键
    • 如果关联实体已经分配了主键
      • 关联实体的主键可以作为其所对应的关系模式R的主键
      • 把所有参与实体的主键作为关联实体对应的关系模式R的外键

    递归联系类型的映射

    一对多递归联系
    一对多递归
    多对多递归联系
    多对多递归

    聚集(Aggregation)的映射

    直接使用定义该聚集的联系集所创建出来的关系模式当作二元联系即可

    超类/子类联系类型的映射

    第一种方法

    • 为高层实体集创建一个模式;
    • 为每个低层实体集创建一个关系模式:
      • 属性包括对应于低层实体集的每个属性
      • 属性包括对应于高层实体集主码的每个属性
    • 高层实体集的主码属性同时也是所有低层实体集的主码属性
    • 在低层实体集上建立外码约束,其主码属性参照创建自高层实体集的关系的主码

    第二种方法

    如果概化是不相交且完全的 :
    不存在同时属于两个同级的低层实体集的实体,高层实体集的任何实体都是某个低层实体集的成员

    • 不需要为高层实体集创建任何关系模式
    • 只需要为每个低层实体集创建一个关系模式
      • 属性包括对应于低层实体集的每个属性
      • 属性同时包括对应于高层实体集的每个属性
    • 将高层实体集的主码作为低层实体集的主码

    不好用还是别用了

    展开全文
  • 对E-R模型向关系模式转换的认识

    千次阅读 2015-09-30 22:29:11
    多值属性:单独建立一个关系表,关系名就是多值属性名,如果是实体集的多值属性关系的属性就是实体集的码加上多值属性,如果是联系集的多值属性关系的属性就是各个实体集的码加上多值属性关系的码要具体情况...
  • E-R图转换关系模式

    千次阅读 2014-08-28 18:40:48
    我们目前所接触的数据库基本上是关系数据库,关系数据库中的关系模式是型,而关系是关系模式是对关系的描述。 什么是关系?关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性,每个元组是该...
  • 用NHibernate处理带属性多关系

    千次阅读 2014-10-10 19:08:57
    如何用NHibernate处理带有属性多关系
  • 关系模式分解

    千次阅读 2019-06-19 18:00:00
    无损分解:对关系模式分解时,原关系模式的任何一个合法的关系在分解之后应该能通过自然连接运算恢复起来,这就是无损连接所要解决的问题。 例1: 设有关系模式R(ABC),分解成ρ={AB,AC}。 2.无损分解的测试...
  • 实体-关系转换为关系模型

    万次阅读 2019-04-25 16:54:19
      由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。 2.E-R图向关系模型的转换 2....
  • ER 和 数据库关系模式

    万次阅读 2018-09-20 14:30:16
    我们眼下所接触的数据库基本上是关系数据库,关系数据库中的关系模式是型,而关系是关系模式是对关系的描写叙述。 什么是关系?关系实质上是一张二维表,当中每一行是一个元组,每一列是一个属性,每一个元组是...
  • 数据库复习11——关系模式与范式

    千次阅读 2015-06-30 16:53:34
    数据库复习CH11 数据库模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,关系型数据库的模式又叫关系模式,我所理解的关系模式就是数据库中表结构的定义以及张表之间的逻辑联系关系模式的设计就是根据一...
  • E-R模型转化为关系模型

    千次阅读 多人点赞 2019-06-03 20:30:24
    E-R模型转化为关系模型 *讲解部分 涉及到的概念简单提一下,具体查书,可跳过 实体:客观存在并可相互区别的事物。一个学生,一个部门… 实体型(矩形)具有相同属性的实体必然具有共同的特征和性。用实体名及其...
  • 目录 函数依赖 完全函数依赖与部分函数依赖: 传递函数依赖: 关系模式的范式 ...函数依赖(FD ,Functional Dependency)是关系模式属性之间的一种逻辑依赖关系。 SCD(SNo,SN,Age,Dept,MN,CNo,S...
  • 笔记 rgba属性值

    千次阅读 2017-11-20 13:57:58
    说明: RGBA(R,G,B,A) ...R:红色。正整数 | 百分数G:绿色。...此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明度。IE6.0-8.0不支持使用 rgba 模式实现透明度,可使用 IE 滤镜处理,如:
  • 关系模式的规范化理论

    千次阅读 2019-05-11 19:43:44
    关系模式规范化的定义 到目前为止,规范化理论已经提出了六类范式。范式级别可以逐级升高,而升高规范化的过程就是逐步消除关系模式中不合适的数据依赖的过程,使模型中的各个关系模式达到某种程度的分离。一个低一...
  • 2. 函数依赖定义:设R(U)是属性集U上的关系模式。X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则成X函数确定Y或者Y函数依赖与X, 记作:X→Y...
  • 关系模式的规范化

    千次阅读 热门讨论 2015-04-30 17:44:16
     定义:在关系模式R中,当且仅当所有域包含原子,即每个分量都是不可再分的数据项,则称关系模式R属于1NF。  用自己的话来形容:1NF即原子性。 举例: 供应者和它所提供的两件信息表 Sno Sname Status...
  • 第三章 关系模式的规范化设计

    千次阅读 2012-11-24 19:48:35
     函数依赖:当X的确定以后,Y的被唯一的确定。  完全函数依赖:X的任何子集都不能确定Y。  部分函数依赖:存在X的子集可以确定Y。  候选键:唯一性、最小性。  主属性:包含在任何一个候选键...
  • 规范化理论:多值依赖

    千次阅读 2019-05-12 21:04:11
    多值依赖的定义 我们用一个例子来引出多值依赖(Multivalued Dependency,MVD)的含义。 假设学校中一门课程可由名教师讲授,教学中他们使用相同的一套参考书,这样我们可用下...由此可以看出,规范后的关系模式...
  • 定义:一个关系模式是一个系统,它是有一个五元组R(U, D, DOM, I, F)组成,其中,R关系名,U是R的一组属性集合{A1,A2,A3,…,An},D是U中属性的域集合{D1,D2,D3,…,Dn},DOM为属性U到域D的映射,I完整性约束集合...
  • 关系模式规范化(设计范式)

    千次阅读 2020-10-28 19:13:56
    定义:属于第一范式关系的所有属性都不可再分,即数据项不可分。 理解:第一范式强调数据表的原子性,是其他范式的基础。如下图所示数据库就不符合第一范式: 上表将商品这一数据项又划分名称和数量两个数据项,...
  • 标题有点乱,但很难说的清楚 写了一年的WPF了 也用了近一年的MVVM CS文件能不写代码竟然少写,这是从业一年以来 前辈们教诲的,但很问题MVVM模式很难说完全搞得定,比较编程这水看似深却不深,说浅又不浅,有时候...
  • ER图转为关系模式(超详细,超简单)

    千次阅读 多人点赞 2020-04-04 15:43:24
    通过本文你可以了解ER图如何转为关系模式
  • (4)数据依赖F对关系模式的影响1️⃣ 数据冗余(Data redundancy)2️⃣ 更新异常(update anomalies )3️⃣ 插入异常(insertion anomalies )4️⃣ 删除异常( deletion anomalies)2.规范化---改造关系模式,解决插入...
  • 第1节 关系模型的好坏 ER模型转换的关系是否...如果存在冗余,就需要对关系模式进行优化。 主要优化技术: 模式分解 (比如, ABCD 用 AB和BCD, 或者 ACD 和 ABD替代)。 如何正确地使用模式分解: 是否有必要分解一

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 209,882
精华内容 83,952
关键字:

多值属性转换为关系模式