DBMS数据库设计与ER模型:ER模型约束ER图ER扩展特性ER图转换为关系模式UML建模丹尼尔奥利瓦

·最初阶段:刻画未来数据库用户的数据需求,产品为用户需求规格说明;

概念模式:定义数据库中表示的实体、实体的属性、实体之间的联系以及实体和联系上的约束。

概念设计阶段需要完成

1.选择数据模型,并采用所选数据模型的概念将需求转化为数据库的概念模式

2.指明企业的功能需求,完善概念模式:在功能需求规格说明(specificationoffunctionalrequirement)中描述在数据上进行的各类操作/事务。

设计者检查概念模式确保功能需求满足、所有数据需求都满足且互相不冲突;

·逻辑设计阶段(logical-designphase):将(通常以实体-联系模型定义)高层概念模式映射到数据库系统的(通常为关系数据模型的)实现数据模型上。

·物理设计阶段(physical-designphase):指明数据库的物理特征(包括文件组织格式和索引结构的选择)。

2.设计选择

设计数据库模式时必须避免两个主要缺陷:

·冗余:重复存储信息;

·不完整

实体-联系模型

数据库的设计主要涉及数据库模式的设计。E-R数据模型是一个广泛用于数据库设计的数据模型,提供了一个方便的图形化表示方法以查看数据、联系和约束。

实体-联系(entity-relationship,E-R)模型采用三个基本概念:实体集、联系集、属性。

1.实体集

数据库包括一组实体集,每个实体集包括任意数量的相同类型的实体。

实体(entity):现实世界中可区别于所有其他对象的一个”事物“或”对象“。每个实体有一组性质,其中一些性质的值可以唯一地标识一个实体。实体可以是实在或抽象的。

实体集(entityset):相同类型(具有相同性质/属性)的一个实体集合。(e.g.一所给定大学的所有教师的集合定义为实体集instructor)

实体集不必互不相交。(e.g.一个person实体可以是instructor实体、或student实体、或既是instructor实体又是student实体、或都不是。)

外延(extension):实体集的外延指术语实体集的实体的实际集合。(e.g.大学中实际教师的集合构成了实体集instructor的外延)

属性(attribute):实体集中每个成员所拥有的描述性性质。

实体通过一组属性来表示;

为某实体集指定一个属性表明数据库为该实体集中每个实体存储相似的信息,但每个实体在每个属性上都有各自的值(value)。

2.联系集

联系是多个实体间的关联。相同类型的联系的集合为联系集。

联系(relationship):多个实体间的相互关联。

联系集(relationshipset):相同类型联系的集合。

联系集是n≥2个(可能相同的)实体集上的数学关系。联系集R是

{(e1,e2,…,en)|e1∈E1,e2∈E2,…,en∈En}的一个子集,其中E1,E2,…,En为实体集,(e1,e2,…,en)为一个联系。

参与:实体集之间的关联。(e.g.实体集E1,E2,…,En参与(participate)联系集R。)

相同的实体集可能会参与到多于一个联系集中。

二元(binary)联系集:设计两个实体集的联系集。数据库系统中的大部分联系集都是二元的,有时联系集会涉及多于两个实体集。

度(degree):参与联系集的实体集的数目称为联系集的度。(e.g.二元联系集的度为2,3元联系集的度为3。)

角色(role):实体在联系中扮演的功能称为实体的角色。(隐含,一般并不指定。)

在自环(recursive,i.e.同样的实体集以不同角色参与一个联系集多于一次)联系集中,有必要使用显式的角色名指明实体是如何参与联系实例的。

联系也可具有描述性属性(descriptiveattribute)。(e.g.实体集instructor和student之间的联系集advisor,可将属性date作为描述性属性与该联系关联。)

联系实例(relationshipinstance):E-R模式中的一个联系实例表示所在建模的现实世界企业中命名实体的一个关联。(e.g.一个教师ID为45565的instructor实体Katz和一个学生ID为12345的student实体Shankar参与到advisor的一个联系实例中)

给定的联系集中的一个联系实例必须是由其参与实体唯一标识的(不必使用描述属性)。

3.属性

域(domain)/值集(valueset):每个属性都有的一个可取值的集合。

实体集的属性是将实体集映射到域的函数,每个实体可以用一组(属性,数据值)对来表示。

E-R模型中的属性可进行如下划分:

·简单(simple)属性/复合(composite)属性:

简单属性不能划分为更小的部分;

复合属性可以划分为更小的部分(其他属性)。(e.g.属性name可设计为一个包括first_name、middle_initial和last_name的复合属性)复合属性可以有层次,子属性可进一步划分。

·单值(single-alued)属性/多值(mutivalued)属性:

单值属性对一个特定的实体都只有单独的一个值;

基属性:存储的属性

约束

1.映射基数

映射基数(mappingcardinality)/基数比率:表示一个实体通过一个联系集能关联的实体的个数。(可用于描述二元联系集和涉及多于两个实体集的联系集)

对于实体A和B之间的二元联系集R,映射基数必然是以下情况之一:

2.参与约束

如果实体集E中的每个实体都参与到联系集R的至少一个联系中,实体集E在联系集R中的参与称为全部的(total);

如果实体集E中只有部分实体参与到联系集R的联系中,实体集E到联系集R的参与称为部分的(partial)。

3.码

一个实体的属性值必须可以唯一标识该实体。(在一个实体集中不允许两个实体对于所有属性都具有完全相同的值)

码:实体的码是一个足以区分每个实体的属性集。(关系模式汇总的超码、候选码、主码同样适用于实体集)

术语超码(superkey)、候选码(candidatekey)以及主码(primarykey)同适用于关系模式一样适用于实体集合联系集。

码也可用于唯一地标识联系。

设一个涉及实体集E1,E2,…,En的联系集R,primary-key(Ei)代表构成实体集Ei的主码的属性集合(假设实体集中所有主码属性名互不相同)。

primary-key(E1)∪primary-key(E1)∪…∪primary-key(En)

描述了集合R中的一个联系;

primary-key(E1)∪primary-key(E1)∪…∪primary-key(En)∪{a1,a2,…,am}

描述了集合R中的一个联系。

在以上两种情况中,属性集合

构成了联系集的一个超码。(如果实体集中主码属性名有重名情况可重命名构成唯一名称以区分。)

联系集的主码结构依赖于联系集的映射基数。

e.g.考虑实体集instrutor、student和具有属性date的联系集advisor。

a.假设联系集是多对多的,则advisor的主码由instructor和student的主码的并集组成;

b.如果联系是从student到instructor多对一的,则student的主码就是advisor的主码;

c.如果联系是从instructor到student多对一的,则instructor的主码就是advisor的主码;

d.如果联系集是一对一的,则两个候选码中的任意一个可用作主码。

4.从实体集中删除冗余属性

建立实体间的联系集,可能会导致不同实体集中的属性冗余,则需要将冗余的属性从原始实体集中删除,用E-R设计中的联系代替冗余的属性。

e.g.

关系模式设计:

实体集instructor(ID,name,dept_name,salary);

实体集department(dept_name,building,budget);

分析:

属性dept_name在实体集instructor中冗余,移除。

实体-联系设计:

实体集instructor(ID,name,salary);

联系集inst_dept关联instructor和department。

类似,实体集student中不需要dept_name属性,联系集student_dept关联student和department。

实体集section(course_id,sec_id,semester,year,building,room_number,time_slot_id);

实体集time_slot(time_slot_id,{(day,start_time,end_time)});

实体集classroom(building,room_number,capacity);

属性time_slot_id在实体集section中冗余,移除。

属性{building,room_number}在实体集section中冗余,移除。

实体集section(course_id,sec_id,semester,year);

联系集sec_time_slot关联section和time_slot;

联系集sec_class关联section和class。

实体-联系图

E-R模型主要用于数据库设计过程,它的发展是为了帮助数据库设计,这是通过允许定义企业模式(enterpriseschema)实现的。这种企业模式代表数据库的全局逻辑结构,该全局结构可用E-R图(E-Rdiagram)图形化地表示。

E-R图(E-Rdiagram)可图形化表示数据库的全局逻辑结构。

1.基本结构

E-R图的主要构件:

·分割为两部分的矩形:代表实体集。第一部分(有阴影)包含实体集的名字,第二部分包含实体集中所有属性的名字;

·菱形:代表联系集;

·未分割的矩形:代表联系集的属性。构成主码的属性以下划线标明;

·线段:将实体集连接到联系集;

·虚线:将联系集属性连接到联系集;

·双线:显示实体在联系集中的参与度;

·双菱形:代表连接到弱实体集的标志性联系集。

2.映射基数

二元联系集可以是一对一、一对多、多对一或多对多的,联系集和实体集之间画箭头或线段以区分这些类型。

·一对一:当实体集A中的一个实体最多只能与实体集B中的一个实体关联,并且实体集B中的一个实体也最多只能与实体集A中的一个实体关联时,从联系集向实体集A和B各画一条箭头;

·一对多:当实体集A中的一个实体可与实体集B中任意数目的实体关联,但实体集B中的一个实体最多只能与实体集A中的一个实体关联时,从联系集向实体集A画一条箭头,向实体集B画一条线段;

·多对一:当实体集A中的一个实体最多只能与实体集B中的一个实体关联,但实体集B中的一个实体可与实体集A中任意数目的实体关联时,从联系集向实体集A画一条线段,向实体集B画一条箭头;

·多对多:当实体集A中的一个实体可与实体集B中任意数目的实体关联,实体集B中的一个实体也可与实体集A中任意数目的实体关联时,从联系集向实体集A和B各画一条线段。

(一对多:一名教师可以指导多名学生,但一名学生可以至多有一位导师。)

E-R图提供描述“每个实体参与联系集中联系的次数约束”的方法:

实体集和二元联系集之间的一条边可以有一个关联的最大和最小的映射基数,用l..h表示。其中l为最小映射基数,h为最大映射基数。

l=1时表示这个实体集在该联系集中全部参与(每个实体在联系集中的至少一个联系中出现);

h=1时表示这个实体参与至多一个联系;

最大值为*,表示没有限制。

e.g.约束每个学生必须有且仅有一个导师,教师可以有零个或多个学生。

(从instructor到student的一对多联系,student在advisor联系中的参与是全部的。)

另一种画法:在基数约束的位置画一条从student到advisor的双线,以及一条从advisor到instructor的箭头。

3.复合属性、多值属性、派生属性的表示

实体集instructor包含:

复合属性name,由子属性first_name、middle_initial和lastname组成;

复合属性address,由子属性street、city、state和zipcode组成,其中street也是符合属性,其子属性为street_number、street_name和apartment_number;

多值属性phone_number,由{phone_number}表示;

简单属性date_of_birth;

派生属性age,由{aget()}表示。

4.角色

通过在菱形和矩形之间的连线上进行标注来表示角色。

e.g.course实体集合prereq联系集之间的角色标识course_id和prereq_id

5.非二元联系集

在非二元联系集中可表示某些类型的多对一联系。(e.g.假设一个student在每个项目上最多只能有一位导师,可用从project_guide的边指向instructor的箭头表示。)

在一个非二元联系集外包含两个或更多箭头的E-R图可有两种解释:

(假设实体集A1,A2,…,An之间有联系集R,并且只有指向实体集Ai+1,Ai+2,…,An的边是箭头。)

因为以上两种解释在不同的书/系统中使用,为避免混淆,我们规定在一个非二元联系集外只允许有至多一个箭头。

6.弱实体集

弱实体集(weakentityset):不具有足够的属性构成主码的实体集。

有主码的实体集则称作强实体集(strongentityset)。

情况:

实体集section由course_id,semester,year,sec_id唯一标识;

实体集course由course_id唯一标识;

(i.e.不同course的section可能会有相同的sec_id、year和semester。)

联系集sec_course关联section和course。

因为section已有属性course_id,sec_course中信息冗余。

如果删除联系sec_course会使section和course的联系隐含于一个属性中,不合适。

如果删除section中的属性course_id,则剩下的属性不足以唯一标识一个指定的section实体;

处理方法:

删除section中的属性course_id,标志性联系sec_course关联弱实体集section与其标识实体集course,

给唯一标志的section实体提供额外信息course_id。

标识实体集(identifyingentityset)/属主实体集(ownerentityset):一个弱实体集必须与一个标识实体集关联才有意义。每个弱实体集必须和一个标识实体关联。

弱实体集存在依赖(existencedependent)于标识实体集,标识实体集拥有(own)它所标识的弱实体集。

标志性联系(identifyingrelationship):将弱实体集与其标识实体集相联的联系。

标志性联系是从弱实体集到标识实体集多对一的,弱实体集在联系中参与是全部的。

标志性实体集不应该有任何描述性属性。

分辨符(discriminator):弱实体集的分辨符,也成为弱实体集的部分码,是用于区分依赖于特定强实体集的弱实体集中的实体的属性集合。

e.g.弱实体集section的分辨符{sec_id,year,semester},对每个course来说,该属性集唯一标识了该course对应的一个section。(用于区分同一course的不同section实体)

弱实体集的主码由标识实体集的主码加该弱实体集的分辨符构成。

e.g.弱实体集section的主码{course_id,sec_id,year,semester}由标识实体集course的主码course_id加其分辨符{course_id,sec_id,year,semester}构成。

E-R图中,弱实体集以矩形表示(类似强实体集),其分辨符以虚下划线标明,关联弱实体集和标识性强实体集的联系集以双菱形表示。双线表示参与是全部的。

弱实体集可以参与标识性联系以外的其他联系;

弱实体集可以作为属主与另一个弱实体集参与一个标识性联系;

一个弱实体集可能与不止一个标识实体集关联(i.e.一个特定的弱实体将被一个实体的组合标识,其中每个标识实体集有一个实体在该组合中,弱实体集的主码则由标识实体集的主码的并集加弱实体集的分辨符组成)。

如果弱实体集只参与标识性联系,并且属性不多,则建模时适合将其表示为属主实体集的一个多值复合属性;

如果若实体集参与到标识性联系以外的联系中,或属性较多,则建模时适合将其表示为弱实体集。

E-R图转换为关系模式

对于每个实体集/联系集,都有唯一的关系模式与之对应,关系模式名为相应的实体集或联系集的名称。所以,一个符合E-R数据库模式的数据库可表示为一些关系模式的集合。

1.具有简单属性的强实体集的表示

设E为只具有n个简单描述性属性的强实体集,则用具有n个不同属性的关系模式E表示。

关系中的每个元组都对应于实体集中的一个特定实体。

如果实体集为强实体集,则其转换得到的关系模式的主码就是强实体集的主码。

2.具有复杂属性的强实体集的表示

如果强实体集具有复合属性,关系模式中不为复合属性自身创建一个单独的属性,而为复合属性的每个子属性创建一个单独的属性。

对于复合属性name,模式包括first_name,middle_initial,lastname,没有单独的属性表示name;

对于复合属性address,模式包括street,city,state,zip_code,因为street是一个复合属性,将其替换为子属性street_number,street_name,apt_number。

多值属性不能直接映射到相应关系模式的属性上,需要为多值属性创建新的关系模式。

对于实体集的一个多值属性M,构建关系模式R,该模式包含一个对应于M的属性A以及对应于M所在的实体集或联系集的主码的属性。

R的主码由其所有属性组成。

R上外码约束:由M所在实体集的主码所生成的属性参照M所在实体集所生成关系。

e.g.实体集Instructor主码为ID,包含多值属性phone_number。为phone_number构建关系模式:

instructor_phone(ID,phone_number)。Instructor_phone关系上有外码约束:属性ID参照instructor关系。

特殊情况:实体集只有两个属性,一个主码B和一个多值属性M。则该实体集的关系模式只包含一个属性(主码属性B)。也可删掉该关系,保留具有属性B和对应M的属性A的关系模式。)

e.g.实体集time_slot含主码time_slot_id和多值复合属性{day,start_time,end_time},可生成关系模式time_slot(time_slot_id,day,start_time,end_time)。

派生属性不在关系模式中显示表示,可在类似对象-关系数据模型的其他数据模型中表示为方法。

3.弱实体集的表示

设A为具有属性a1,a2,…,am的弱实体集,B为A所依赖的强实体集,B的主码包括属性b1,b2,…,bn。则:关系模式A的每个属性对应集合{a1,a2,…,am}∪{b1,b2,…,bn}的一个成员;

该模式的主码由B的主码与A的分辨符组成;

关系A上建立外码约束:属性b1,b2,…,bn参照关系B的主码。(保证弱实体的每隔元组都有一个表示相应强实体的元组与之对应)。

可添加外码约束上的级联删除规范,如果弱实体集A依赖的强实体集B中的一个实体被删除,那么所有与它关联的A实体也被删除。

4.联系集的表示

设R为联系集,a1,a2,…,am为所有参与R的实体集的主码的并集构成的属性集合,b1,b2,…,bn为R的描述性属性。则关系模式R的每个属性对应集合{a1,a2,…,am}∪{b1,b2,…,bn}的一个成员。

二元联系集关系模式主码的选择:

·多对多:参与实体集的主码属性的并集;

·一对一:任意一个实体集的主码;

·多对一或一对多:联系集中“多”的那一方实体集的主码。

n元联系集关系模式主码的选择(联系集外至多允许一个箭头):

·边上没有箭头:所有参与实体集的主码属性的并集;

·边上有一个箭头:不在“箭头”侧的实体集的主码属性;

模式的冗余

连接弱实体集与其所依赖的强实体集的联系集比较特殊,一般情况下其关系模式冗余,在基于E-R图的关系数据库设计中不必给出。

模式的合并

设从实体集A到实体集B的一个多对一联系集AB,构建三个关系模式A、B、AB。如果A在该联系中的参与是全部的(i.e.实体集A中的每个实体都参与到联系AB中),则可将模式A和模式AB合并为单个包含两个模式所有属性并集的模式。合并后模式的主码为被合并的那个实体集的主码。

从instructor到department的联系集inst_dept。

instructor{ID,name,salary};

department{dept_name,building,budget};

inst_dept{ID,dept_name};

模式instructor可与模式Inst_dept合并,得到模式instructor{ID,name,dept_name,salary}。

合并后,舍弃联系集上参照实体集A的外码约束,将参照实体集B的外码约束加到合并后的关系模式中。(e.g.例中将原inst_dept上dept_name属性参照department的外码约束加到合并后的insructor关系中。)

如果联系是一对一的,联系集的关系模式可以跟参与联系的任何一个实体集的关系模式合并。

实体-联系设计问题

1.用实体集还是用属性

e.g.给instructor增加phone的两种方法

常见错误1:用一个实体集的主码作为另一个实体集的属性,而不是用联系。×

应当明确表示出实体集之间的关系,而不是将关系隐含在属性中。

将student的ID作为instructor的属性(即使一对一)×

将advisor联系代表student和instructor之间的关联。√

因为在联系集中已经隐含了这些主码属性。

注意:当从E-R模式创建关系模式时,这些属性可能会出现在联系集的关系模式中,但不应该出现在E-R模式的联系集中。

将student的ID和instructor的ID作为advisor联系的属性。×

2.用实体集还是联系集

原则:当描述发生在实体间的行为时采用联系集。

e.g.用实体集registration代表课程-注册记录,替代student和section之间的联系集takes。

3.二元还是n元联系集

一个n元(n>2)的联系集总能用一组不同的二元联系集替代。

E.g.用实体集E和联系集RA、RB、RC替代三元联系集R。【可推广到n元联系集】

如果联系集R有属性,则将这些属性赋给实体集E,并为E创建一个特殊的标识属性(用于区分E中的各个实体)。

针对联系集R中的每个联系(ai,bi,ci)在实体集E中创建一个新的实体ei。

在三个联系集中插入联系:在RA中插入(ei,ai);在RB中插入(ei,bi);在RC中插入(ei,ci)。

在概念上可以限制E-R模型只包含二元联系集,但这种做法也存在一些劣势:

·对为表示联系集而创建的实体集,必须创建一个标志属性,增加了设计的复杂程度和对存储空间的需求;

·n元联系集可以更清晰地表示几个实体集参与单个联系集;

·有些三元联系集上的约束不能转变为二元联系上的约束。

4.联系属性的布局

一个联系的映射基数的比率会影响联系属性的布局:

·一对多的联系集的属性可以从联系集中移除,放到参与联系的“多”方的实体集中;

·一对一的联系集的属性可以从联系集中移除,放到任意一个参与联系的实体集中。

e.g.设从实体集instructor到实体集student一对多的联系集advisor,其属性date可放在student实体集中(与原先放在advisor中具有相同含义)。

设计时将描述性属性作为联系集的属性还是实体集的属性,取决于被建模企业的特点。(e.g.例中也可选择保留date作为advisor的属性以显式表明指导关系的日期。)

(多对多)当一个属性是由参与的实体集联合确定,而不是由单独某个实体集确定时,该属性就必须放在多对多联系集中。

扩展的E-R特性

特化和概化定义了一个高层实体集和一个或多个低层实体集之间的包含关系。特化是取出高层实体集的一个子集来形成一个低层实体集。概化是用两个或多个不想交的(低层)实体集的并集形成一个高层实体集。高层实体集的属性被低层实体集继承。

1.特化

特化(specialization):在实体集内部进行分组的过程。

e.g.实体集person可进一步特化为employee类和student类,特化实体集用一个包括实体集person的所有属性和可能的附加属性的属性集来描述。(employee实体可进一步用属性salary描述;student实体可进一步用属性tot_cred描述。)

一个实体集可以根据多个可区分的特征进行特化。当一个实体集形成了多于一种特化时,某个特定实体集可能同时属于多个特化实体集。

e.g.实体集employee可根据从事工作特化,也可根于工作任期特化,因此一个特定的employee可以既是temporary_employee又是secretary_employee。

E-R图中用从特化实体指向另一方实体的空心箭头表示特化,称为ISA关系,代表”isa”。(e.g.instructor“isa”employee.)

重叠特化(overlappingspecialization):一个实体集可能属于多个特化实体集。对于一个重叠特化(e.g.student和employee作为person的特化),分开使用两个箭头。

不相交特化(disjointspecialization):一个实体集必须属于至多一个特化实体集,对于一个不相交特化(e.g.instructor和secretary作为employee的特化),使用一个箭头。

特化关系可能形成超类-子类(superclass-subclass)联系。

高层和低层实体集按普通实体集表示(包含实体集名称的矩形)。

2.概化

概化(generalization):高层实体集与一个或多个低层实体集间的包含关系。低层实体集间存在共性(包含相同的属性),这些属性被赋予相同的名字并由高层实体集表示。

高层与低层实体集也分别称作超类(superclass)和子类(subclass)。

概化不是特化的逆过程。特化和概化的区别在于出发点和总体目标:

特化:从单一实体集出发,通过创建不同的低层实体集来强调同一实体集中不同实体间的差异。低层实体集可以有不适用于高层实体集中所有实体的属性,也可以参与到不适用于高层实体集中所有实体集的联系中。

概化:基于“一定数量的实体集共享一些共同特征(用相同的属性描述,且参与到相同的联系集中)”。在这些实体集共性的基础上将它们总和成一个高层实体集,用于强调低层实体集间的相似性并隐藏差异。

(概化使共享属性不重复出现,表达简洁。)

3.属性继承

属性继承(attributeinheritance):由特化和概化所产生的高层实体和低层实体的一个重要特性,高层实体集的属性被低层实体集继承(inherit)。

属性继承适用于所有低层实体集。

实体集person用属性ID、name和address描述;

实体集student继承person的属性,用属性ID、name和adress,以及附加属性tot_cred描述;

实体集employee继承person的属性,用属性ID、name和address,以及附加属性salary描述;

employee的子类instructor和secretary从person继承属性ID、name和address,又从employee继承属性salary。

参与继承:低层实体集(子类)也同时继承地参与其高层实体集(超类)所参与的联系集。参与继承也适用于所有低层实体集。

实体集person和department参与person_dept联系集;

person的子类student、employee、instructor和secretary也都和department隐式地参与到person_dept联系中。

对于E-R图的一个给定部分(无论是通过特化还是概化得到的),都具有以下性质:

·高层实体集所关联的所有属性和联系适用于它所有的低层实体集;

·低层实体集特有的性质仅适用于特定的低层实体集。

在实体集的层次结构中:

如果一个实体集作为低层实体集只参与到一个ISA联系中,则称这个实体集只具有单继承(singleinheritance);

如果一个实体集作为低层实体集参与到多个ISA联系中,则称这个实体集具有多继承(multipleinheritance),且产生的结构称为格(lattice)。

4.概化上的约束

可在特定概化上设置三类约束。

a.涉及”判定哪些实体能成为给定低层实体集的成员”的约束。成员资格可以是下列其中一种:

·条件定义的(condition-defined):在条件定义的低层实体集中,成员资格的确定基于实体是否满足一个显式的条件或谓词。

设高层实体集student具有属性student_type,所有student实体都根据student_type属性进行评估;

满足条件student_type=”graduate”的实体属于graduate低层实体集;

满足条件student_type=”undergraduate”的实体属于undergraduate低层实体集。

·用户定义的(user-defined):在用户定义的低层实体集中,由数据库用户将实体指派给某个实体集。

(负责决策的用户根据个人观点进行分配,执行将一个实体加入某个实体集的操作。)

b.涉及”在一个概化中一个实体是否可以属于多个实体集“的约束。低层实体集可以是下列其中一种:

·不相交(disjoint):要求一个实体至多属于一个低层实体集。

·重叠(overlapping):同一实体可以同时属于同一概化中的多个实体集。

使用分开的箭头表示重叠概化,单个箭头表示不相交概化。

一个person可以既是employee又是student,使用分开的箭头表示重叠概化。一个箭头从employee指向person,一个箭头从student指向person;

一个employee不能既是instructor又是secretary,使用单个箭头表示不相交概化,从instructor和secretary指向employee。

c.对概化的完全性约束(completenessconstraint)。定义高层实体集中的一个实体是否必须至少属于该概化/特化的一个低层实体集。此类约束可以是下列其中之一:

·全部概化(totalgeneralization)或特化(specialization):每个高层实体必须属于一个低层实体集。

·部分概化(partialgeneralization)或特化(specialization):允许一些高层实体不属于任何低层实体集。

默认情况下为部分概化。如果需要表示全部概化,可在E-R图中加入关键词total,并画一条从关键词到相应空心箭头(表示不相交概化)的虚线,或画一条到空心箭头集合(表示重叠概化)的虚线。

完全性约束和不相交约束彼此没有依赖关系。

对给定概化或特化使用约束带来某些插入和删除需求。

5.聚集

聚集(aggregation):将联系视为高层实体的一种抽象。高层实体集可像对任何其他实体集一样处理。

三元联系集proj_guide关联实体集Instrucotor、student和project。四元联系集eval_for关联实体集evaluation和instructor、student、project和evaluation。

存在冗余信息,eval_for中的每个(instructor,student,project)组合一定也在proj_guide中,但E-R模型存在局限,不能表达联系间的联系;

可将evaluation可作为proj_guide的一个多值属性,但如果evaluation需要和其他实体关联时不可行。

使用聚集,将联系集proj_guide(关联实体集instructor、student和project)看做一个名为proj_guide的高层实体集;

在高层实体集proj_guide和evaluation创建二元联系eval_for,表示某个evaluation对应哪个(student,project,instructor)组合。

6.将扩展E-R特性转换为关系模式

1)概化

方法一一般采用:

为高层实体集创建关系模式,属性对应高层实体集的属性;为低层实体集创建关系模式,属性对应高层实体集主码属性和低层实体集的属性。

高层实体集的主码属性既是高层实体集的主码属性,也是所有低层实体集的主码属性。

在低层实体集上建立外码约束,其主码属性参照创建自高层实体集的关系的主码。

person(ID,name,address);

employee(ID,salary);

student(ID,tot_cred);

方法二如果概化不相交且完全(不存在同时属于两个同级低层实体集的实体,且高层实体集的任何实体也都是某个低层实体集的成员),则采用:

不需要为高层实体集创建任何模式;只为每个低层实体集创建一个模式,模式中的属性包括高层实体集的属性和低层实体集的属性;

高层实体集的主码属性作为低层实体集的主码属性。

employee(ID,name,address,salary);

student(ID,name,address,tot_cred);

2)聚集

将聚集A看做整个实体集,将关联聚集与另一对应实体集B的联系集C转换为关系模式。关系模式C包含:实体集B的主码属性、定义该聚集的联系集A‘的主码属性、联系集C的任意描述性属性(如果存在)。

根据已有规则,将聚集A中的实体集和联系集A’转换为关系模式;

将聚集A看做整个实体集,根据已有规则,在于聚集A关联的联系集C上创建主码和外码约束;

只需从定义该聚集的联系集A’创建的关系模式,不需要单独的关系表示聚集A。

数据建模的其他表示法

1.E-R图的其他表示法

实体属性可放入与表示实体的方框所连接的椭圆中,主码属性以下划线标明;

联系属性可放入与表示联系的菱形所连接的椭圆中;

联系上的基数约束可用在联系外面标记*和1表示;

联系集可用实体集之间的连线表示(只能表示二元联系)。“鸦爪形”表示基数约束,连线两侧是否使用鸦爪决定联系为一对一/一对多/多对一/多对多,对侧为竖线表示全部参与,对侧为圆圈表示部分参与;

概化可用三角形代替空心箭头表示;

2.统一建模语言UML

UML是一种常用的建模语言。UML类图广泛用于对类建模以及一般的数据建模。

统一建模语言(UnifiedModelingLanguage,UML):为建立软件系统的不同部分的规范定义而提出的一个标准。组成部分包括

·类图(classdiagram):类似ER图;

·用况图(usecasediagram):说明用户和系统之间的交互,特别是用户所执行任务中的每一步操作;

·活动图(activitydiagram):说明系统不同部分之间的任务流;

·实现图(implementationdiagram):在软件构件层和硬件构件层说明系统的各组成部分以及它们之间的联系。

对象:UML类图为对象建模,对象类似实体,包含属性和方法。类图可以说明对象的属性和方法。

方法:UML类图中另外提供的一组函数,可在对象属性的基础上调用以计算值,或更新对象本身。

UML类图不支持复合或多值属性,派生属性与不带参数的函数等价;

UML类图支持封装,允许函数和属性带有前缀”+”、”-“或”#”,分别表示公共、私有以及受保护的访问。私有属性只能在类的方法中使用,受保护的属性只能在类和它的子类的方法中使用。

关联(association):在UML类图中联系集称为关联。通过画一条线段连接实体集表示二元联系集,联系集的名称写在线段附近。可用以下两种方式说明联系集:

a.可将角色名称写在靠近实体集的线段上,说明联系集中一个实体集的角色;

b.可将联系集的名字和属性一起写在方框里,用虚线将该方框连接到表示联系集的连线上。该方框可看作一个实体集,可与其他实体一起参与联系。

从UML1.3开始,UML支持菱形表示法表示非二元联系。即使对于二元联系,UML也允许使用菱形表示法,但大部分设计者使用线段表示法。

UML中使用l..h形式表示基数约束,i表示参与联系的实体的最小个数,h表示最大个数。但约束位置与E-R图中正好相反。

E2边上的约束0..*和E1边上的0..1表示每个E2实体可以参与至多一个联系,而每个E1实体可以参与任意多的联系,即该联系是从E2到E1多对一的。

可将单个值(如1或*)卸载边上,单个值1等价1..1,单个值*等价0..*。

UML类图支持概化,与E-R图基本相同,包括不想交概化和重叠概化的表示方式。

UML类图还包含一些与E-R表示法并不对应的表示法。

e.g.连接两个实体的一条线的一端有一个小菱形,表示菱形这一端的实体集包含另一个实体集(e.g.一个车辆实体可能包含一个发动机实体)。(包含关系在UML中称为”聚合“,注意不应与E-R图中的聚合的含义混淆。)

UML类图还提供表示面向对象语言的特征的表示法(e.g.接口)。

数据库设计的其他方面

除模式设计外,数据库设计还包含其他组成部分。

1.数据约束和关系数据库设计

2.使用需求:查询、性能

数据库处理效率的两个主要度量方法:(两个度量并不等价)

涉及连接的查询比不涉及连接的查询需要更多的资源用以计算,可选择创建索引以加快连接的计算;

对于查询(不论是否涉及连接),可创建索引以加速频繁出现在查询中的选择谓词(where子句)的计算;

因为更新会为维护索引的准确性而强制带来额外工作,当一个索引加速查询的同事也可能减缓更新的速度。

4.数据流、工作流

工作流:表示一个流程中的数据和任务的组合。

当工作流在用户间移动以及用户执行他们在工作流中的任务时,工作流会与数据库系统交互。

数据库可以存储工作流操作的数据和工作流自身的数据(构成工作流的任务、在用户之间移动的路径)。

5.数据库设计的其他问题

注意区分预期持久的基本约束和预期要改变的约束,尽量避免或最小化由预计或可能发生的改变带来的改动。

THE END
1.翌创ETEB6001DPX测评第6篇时钟简单测试[MCU] 【翌创ETEB-6001DPX测评】第6篇 时钟简单测试 常见泽1 2024-11-26 19:00 楼主 一 时钟简介 在嵌入式系统和微控制器(MCU)的应用中,时钟电路是关键部分之一。它为整个系统提供时间基准,确保各个部分的协调运行。 ET6000和常规MCU一样具有以下几个时钟 二 时钟比较 2.1 HSE时钟 ET6000的HSE支持12.5M-https://m.eeworld.com.cn/bbs/forum.php?mod=redirect&goto=findpost&pid=3377174&ptid=1300072
2.Re:雷叽┩感?雷邷y厚度BR Yaran Like 回覆 2 檢視 0 1 回覆 Translation_Bot Community Manager ?9 十二月 2024 回應Translation_Bot 檢視原始內容: Chinese Simplified | 原始作者: 23030701czucn 這是機械翻譯的內容 穿透例如像石墨這樣的物質。 Like 回覆 1 檢視 0 对英飞凌产品有兴趣? 购买支持 ?https://community.infineon.com/t5/%E9%9B%B7%E9%81%94%E5%82%B3%E6%84%9F%E5%99%A8/%E9%9B%B7%E9%81%94%E7%A9%BF%E9%80%8F%E6%80%A7-%E9%9B%B7%E9%81%94%E6%B8%AC%E5%8E%9A%E5%BA%A6/m-p/913785
3.新品002141全面评测与实时体验深度分析客户案例1、A产品:A产品在功能上较为全面,但在实时性能方面略有不足,操作响应较慢。 2、B产品:B产品的安全性较高,但在智能化操作和兼容性方面稍显逊色。 3、C产品:C产品的安装和使用较为便捷,但在功能丰富度上不如“002141”。 经过综合对比,“002141”在实时性能、智能化操作、功能丰富度等方面表现出较强的优势。http://www.kfhlxj.com/post/42565.html
4.显示器响应时间解析以及测试方法技术文章灰阶响应时间与原来的黑白响应时间含义和性质差别很大,两者之间没有明确的对应关系,但又都是对液晶响应时间的描述。也都可以通过我们设备以及配套软件自定义获得。 理论上来说: 5毫秒=1/0.005=每秒钟显示200帧画面 4毫秒=1/0.004=每秒钟显示250帧画面 2毫秒=1/0.002=每秒钟显示500帧画面https://m.chem17.com/st437094/article_3258379.html
5.0.5ms响应好还是1ms当然,往往也需要对每个或每组功能讨论其平均响应时间和最大响应时间。 响应时间的注意事项 需要注意的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于 100 毫秒应该是不错的,响应时间在 1 秒左右可能属于勉强可以https://baijiahao.baidu.com/s?id=1740647218671968163&wfr=spider&for=pc
6.2020显示器选购终极指北(双11终极版一万五千字)VA 通过不同的垂直取向角度来实现黑/白切换,优点是对比度高(常见TN为600~800:1, IPS为1000~1500:1,VA一般可以做到3000~4000:1),面板的黑态也比较黑并且不容易发生漏光,容易实现曲面屏(基本无漏光问题)。缺点是过高对比度导致显示均一度差,整体响应时间也比较慢,大视角偏色(新的多 domain VA 已经基本解决了https://www.miaomiaozhe.com/post/216223
7.3.0接口,有DP和HDMI线缆,300nits,1000:1,响应时间5ms(灰度商品名称:惠普(HP)HP E243i Monitor 24寸宽屏16:10 LED背光IPS液晶显示器,三 边超窄边框,VGA,HDMI 1.4,DP 1.2(支持 HDCP)接口,2个USB 3.0 接口,有DP和HDMI 线缆,300nits,1000:1,响应时间5ms(灰度),屏幕高度可调整,轴心旋转,左右旋转, 分辨率1920x1200 http://www.oajlx.com/show_1954.html
8.SGA500E响应时间 ≤30S(T90) 继电器 1组(1A/24VDC) (选配) 重复性 ≤±2% 防爆等级 ExdⅡCT6 Gb 线性误差 ≤±2% 防爆证号 CNEx14.1674 零点漂移 ≤±1%(F.S/年) 防护等级 IP65 工作温度 ~+50℃(特殊要求请咨询) 计量证 可选 工作湿度 ≤95%RH无结露 线制 四线制(总线式) 工作压力 86~106Kpa 固定位https://www.singoan.com/article/detail/id/3802.htm
9.《水喷雾灭火系统技术规范》GB5021920143.1.1 系统的基本设计参数应根据防护目的和保护对象确定。 3.1.2 系统的供给强度和持续供给时间不应小于表3.1.2的规定,响应时间不应大于表3.1.2的规定。 表3.1.2 系统的供给强度、持续供给时间和响应时间 续表3.1.2 注:1 添加水系灭火剂的系统,其供给强度应由试验确定。 https://www.lanfanglian.com/gfxq/117
10.HAZOP/LOPA分析常见问题d)操作人员应有足够的响应时间; e)操作人员的工作量及其身体条件合适等。 4、安全仪表功能(SIF) (1E01~1E03) : a)SIF在功能上独立于BPCS时,应被视为一种IPL; b)SIF的规格、设计、调试、检验、维护和测试应按GB/T 21109的有关规定执行。 例如:独立安全仪表功能SIL1、SIL2、SIL35、物理保护(安全阀、https://www.shifair.com/wap/article_details/index/id/270997.html
11.德国原装SICK施克位移测量传感器OL1S/OL1ER1010A13用于连接至 AOD1 评价单元的 Y 型电缆位移测量传感器OL1类型:OL1S/OL1E-R1010A13订货号: 6065943性能测量范围 10 mm安装距离 0 mm 300 mm, 接收器/发射器最小可检测物体 0.2 mm重复精度 10 μm线性度 ± 40 μm响应时间 ≥ 0.5 ms测量频率 ≤ 2 kHz光源 红色激光激光等级 1 (IEC 60825-http://china.makepolo.com/product-detail/101048150006.html
12.IT8900A/E系列大功率直流电子负载用于工业控制时,使用PLC输出的0~10V控制负载的CC /CV的0~100%满量程的变化,相较于上位机实时控制,响应时间更快,高达10us,单步时间<10ms,精度可达到1%。同时,也具有步数不受限的优势。下图为 0-4.2V正弦波输入模拟量接口,控制IT8900A 0-100A的动态拉载, 10kHz以下波形幅值、相位还原度较高。可应用于各类复http://www.ginrate.com/page102?product_id=247
13.Linux学习shell命令(maclinux)及shell脚本macshell脚本与tail -f不同的是,如果文件不增长,那么不访问磁盘,也不会更改文件的访问时间。 tailf output.txt -n 行数 指定显示行数。 1 2 6>grep 查找指定的字符串在文件中: grepyun mege2.txtgrep^Aug mege2.txt#查找当前目的录中文件mege2.txt中 以“Aug”开始的词汇grep[0-9]mege2.txt#选择文件中所有包https://blog.csdn.net/SunshineTan/article/details/102069903
14.德国E+H–FMI51电容式液位开关/物位计特点:屏蔽段长度、工厂标定、响应时间短 测量精度:重复性为0.1% 导电性液体测量的线性误差:<0.25% 环境温度:-50…+70°C 过程温度:-80…200°C 过程压力(绝压)/最大过压限定值:真空…100 bar 主要接液部件 绝缘材料:PTFE、PFA 316L 过程连接 G1/2、G 3/4、G 1、G1 1/2 /NPT 1/2、NPT 3/4、NPhttps://www.maituflow.com/fmi51/
15.进口霍尼韦尔STG77SE1G0001CAHS压力变送器供应商量程比100 : 1 响应时间快达100ms,字母数字显示功能,外部零位、量程和组态功能 电源极性任意连接,完善的自诊断功能,基于ANSI/NFPA 70-202和ANA 12.27.0集成双重密 封设计,可确保安全性。标准配置完全符合SIL2/3要求。 全模块化设计 SmartLine变送器全部提供能以数字方式访问的诊断,这有助于提供可能的故障事件报警https://www.labbase.net/Supply/SupplyItems-4801863.html
16.AOCE2262VW/BW参数配置性能规格参数对比动态对比度2000万:1黑白响应时间5ms 基本参数 类型LED显示器屏幕尺寸21.5英寸 液晶面板TN背光类型LED背光 屏幕类型1080p(全高清)最佳分辨率1920×1080 屏幕比例16:9(宽屏)最大色彩16.7M 点距0.24825mm平均亮度(cd/m2)250cd/㎡ 动态对比度2000万:1静态对比度1000:1 https://product.yesky.com/product/922/922173/param.shtml
17.EEC认证(E/eMark)是什么认证4.2 制动性能测试(ECE R13):这项测试用于检测车辆的制动系统性能,确保车辆能够在紧急情况下快速停车。测试中会评估制动系统的响应时间、制动力和稳定性等指标。 4.3 排放测试(ECE R101):这项测试用于检测车辆的尾气排放物,包括二氧化碳(CO2)、氮氧化物(NOx)和颗粒物等。目的是确保车辆符合欧盟的环保标准。 https://www.yoojia.com/article/9210687112784247373.html
18.电子电器架构(E/E)演化——车载以太网IEEE时间敏感网络TSN(原名AVB)以太网音频视频桥接技术(Ethernet Audio/VideoBridging,EAVB)是在传统以太网络的基础上发展而来针对以太网音视频数据传输的技术。它使用精准时钟同步,通过保障带宽来限制传输延迟。其响应时间介于时间触发的实时网络与异步传输的以太网之间,可应用于时间敏感的各种实时音、视频网络多媒体应用。 http://www.360doc.com/content/24/0102/08/78548535_1109561024.shtml
19.全新和原装ADUM141E1BRWZ集成电路Alibaba.comADUM141E1BRWZ 安装类型 表面贴装 描述 标准 应用 标准 类型1 集成电路 系列 集成电路 特征 标准 制造日期代码 标准 付款方式 Paypal \ TT \ 西联汇款证书 CE ROHS 价格 好价格 服务 一站式Bom服务 最小起订量 1PCS 包装和发货信息 Packaging Details 专业防护包装 展开 交货时间定制供应商详情 http://chinese.alibaba.com/product-detail/New-and-original-ADUM141E1BRWZ-Integrated-circuit-1600774670318.html
20.DM5000E手持光数字测试仪武汉凯默电气有限公司12、支持经合并单元进行常规电磁式、光电式、电子式电流互感器极性测试,可测量保护绕组与测量绕组极性; 13、具有智能终端响应时间测试功能,支持智能终端硬接点转GOOSE报文、GOOSE报文转硬接点,以及跳合闸GOOSE报文转开关位置变化GOOSE报文的响应时间测试; 14、支持光功率测试,便于光纤链路诊断与故障查找。http://www.kemov.com/product/376.html
21.新王驾临!酷睿i913900K/i54K UHD(3840*2160)分辨率、4ms响应时间、144Hz刷新率、G-Sync 技术、IPS+量子点面板、10bit色彩、Display HDR1000认证,直到现在依旧是市面上顶级的电竞显示器。 五、理论性能测试:多核性能与锐龙9 7950X不相上下 1、CPU-Z 2、CineBench R15 3、CineBench R20 https://www.1633.com/article/79492.html
22.C630/E气体检测仪翼捷三、C630/E气体检测仪技术规格 型号C630/E 检测气体有毒气体、氧气 检测原理电化学式、PID式 显示方式彩色LED显示 测量精度1%±3%F.S(检测气体不同,测量精度会有所差异) 漂移零点漂移<3%每年,量程漂移<5%每年 响应时间T90<25S 重复性±3%FS 工作电压24VDC(电压范围18~32V) https://www.dnfire.cn/goods-3272.html