当前位置: 首页 > news >正文

上海企业网站模板建站平台东营+网站建设

上海企业网站模板建站平台,东营+网站建设,python快速搭建网站,系统开发软件设计过程概览 1. 设计阶段 最初阶段#xff1a;刻画未来数据库用户的数据需求#xff0c;产品为用户需求规格说明#xff1b; 概念设计阶段#xff08;conceptual-design phase#xff09;#xff1a;#xff08;关注描述抽象数据及其联系#xff0c;通常使用实体-联系…设计过程概览 1. 设计阶段 ·最初阶段刻画未来数据库用户的数据需求产品为用户需求规格说明 ·概念设计阶段conceptual-design phase关注描述抽象数据及其联系通常使用实体-联系模型 概念模式定义数据库中表示的实体、实体的属性、实体之间的联系以及实体和联系上的约束。 概念设计阶段需要完成 1. 选择数据模型并采用所选数据模型的概念将需求转化为数据库的概念模式 2. 指明企业的功能需求完善概念模式在功能需求规格说明specification of functional requirement中描述在数据上进行的各类操作/事务。 设计者检查概念模式确保功能需求满足、所有数据需求都满足且互相不冲突 ·逻辑设计阶段logical-design phase将通常以实体-联系模型定义高层概念模式映射到数据库系统的通常为关系数据模型的实现数据模型上。 ·物理设计阶段physical-design phase指明数据库的物理特征包括文件组织格式和索引结构的选择。   2. 设计选择 设计数据库模式时必须避免两个主要缺陷 ·冗余重复存储信息 ·不完整     实体-联系模型 数据库的设计主要涉及数据库模式的设计。E-R数据模型是一个广泛用于数据库设计的数据模型提供了一个方便的图形化表示方法以查看数据、联系和约束。 实体-联系entity-relationship, E-R模型采用三个基本概念实体集、联系集、属性。 1. 实体集 数据库包括一组实体集每个实体集包括任意数量的相同类型的实体。 实体是在现实世界中存在并且区别于其他对象的对象。我们通过把每个实体痛描述该实体的一组属性相关联来表示区别。相同类型的实体的集合为实体集。 实体entity现实世界中可区别于所有其他对象的一个”事物“或”对象“。每个实体有一组性质其中一些性质的值可以唯一地标识一个实体。实体可以是实在或抽象的。 实体集entity set相同类型具有相同性质/属性的一个实体集合。(e.g. 一所给定大学的所有教师的集合定义为实体集instructor) 实体集不必互不相交。(e.g. 一个person实体可以是instructor实体、或student实体、或既是instructor实体又是student实体、或都不是。) 外延extension实体集的外延指术语实体集的实体的实际集合。(e.g. 大学中实际教师的集合构成了实体集instructor的外延)   属性attribute实体集中每个成员所拥有的描述性性质。 实体通过一组属性来表示 为某实体集指定一个属性表明数据库为该实体集中每个实体存储相似的信息但每个实体在每个属性上都有各自的值value。   2. 联系集 联系是多个实体间的关联。相同类型的联系的集合为联系集。 联系relationship多个实体间的相互关联。 联系集relationship set相同类型联系的集合。 联系集是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. 二元联系集的度为23元联系集的度为3。) 角色role实体在联系中扮演的功能称为实体的角色。隐含一般并不指定。 在自环recursivei.e. 同样的实体集以不同角色参与一个联系集多于一次联系集中有必要使用显式的角色名指明实体是如何参与联系实例的。 联系也可具有描述性属性descriptive attribute。(e.g. 实体集instructor和student之间的联系集advisor可将属性date作为描述性属性与该联系关联。) 联系实例relationship instanceE-R模式中的一个联系实例表示所在建模的现实世界企业中命名实体的一个关联。(e.g. 一个教师ID为45565的instructor实体Katz和一个学生ID为12345的student实体Shankar参与到advisor的一个联系实例中) 给定的联系集中的一个联系实例必须是由其参与实体唯一标识的不必使用描述属性。   3. 属性 域domain/值集value set每个属性都有的一个可取值的集合。 实体集的属性是将实体集映射到域的函数每个实体可以用一组属性数据值对来表示。   E-R模型中的属性可进行如下划分 ·简单simple属性/复合composite属性 简单属性不能划分为更小的部分 复合属性可以划分为更小的部分其他属性。(e.g. 属性name可设计为一个包括first_name、middle_initial和last_name的复合属性) 复合属性可以有层次子属性可进一步划分。 ·单值single-alued属性/多值mutivalued属性 单值属性对一个特定的实体都只有单独的一个值 多值属性对一个特定的实体有对应的一组值。用花括号表示属性是多值的。(e.g. instructor实体集可有{ phone_number }属性每个教师可以有0到多个电话号码。) 可对多只属性的取值数目设置上、下界。 ·派生derived属性可从别的相关属性或实体派生出来。(e.g. instructor实体集可有属性student_advised表示一个教师指导了多少个学生可通过统计与一个教师相关联的所有student实体的数目来得到该属性的值) 派生属性的值不进行存储而是在需要时计算出来。 基属性存储的属性     约束 1. 映射基数 映射基数mapping cardinality/基数比率表示一个实体通过一个联系集能关联的实体的个数。可用于描述二元联系集和涉及多于两个实体集的联系集 对于实体A和B之间的二元联系集R映射基数必然是以下情况之一 ·一对一one-to-oneA中的一个实体至多与B中的一个实体相关联B中的一个实体也至多与A中的一个实体相关联 ·一对多one-to-manyA中的一个实体可与B中任意数目0到多个实体相关联B中的一个实体至多与A中的一个实体相关联 ·多对一many-to-oneA中的一个实体至多与B中的一个实体相关联B中的一个实体可与A中任意数目实体相关联 ·多对多many-to-manyA中的一个实体可与B中任意数目实体相关联B中的一个实体可与A中任意数目实体相关联。   2. 参与约束 如果实体集E中的每个实体都参与到联系集R的至少一个联系中实体集E在联系集R中的参与称为全部的total 如果实体集E中只有部分实体参与到联系集R的联系中实体集E到联系集R的参与称为部分的partial。   3. 码 一个实体的属性值必须可以唯一标识该实体。在一个实体集中不允许两个实体对于所有属性都具有完全相同的值 码实体的码是一个足以区分每个实体的属性集。关系模式汇总的超码、候选码、主码同样适用于实体集 术语超码superkey、候选码candidate key以及主码primary key同适用于关系模式一样适用于实体集合联系集。 码也可用于唯一地标识联系。 设一个涉及实体集E1, E2, …, En的联系集Rprimary-key(Ei)代表构成实体集Ei的主码的属性集合假设实体集中所有主码属性名互不相同。 a. 如果R没有属性与之相关联则属性集合 primary-key(E1)∪primary-key(E1)∪…∪primary-key(En) 描述了集合R中的一个联系 b. 如果R有属性a1, a2, …, am与之相关联则属性集合 primary-key(E1)∪primary-key(E1)∪…∪primary-key(En)∪{ a1, a2, …, am } 描述了集合R中的一个联系。 在以上两种情况中属性集合 primary-key(E1)∪primary-key(E1)∪…∪primary-key(En) 构成了联系集的一个超码。(如果实体集中主码属性名有重名情况可重命名构成唯一名称以区分。)   联系集的主码结构依赖于联系集的映射基数。 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); 实体集department (dept_name, building, budget); 联系集inst_dept关联instructor和department。 类似实体集student中不需要dept_name属性联系集student_dept关联student和department。   e.g. 关系模式设计 实体集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); 实体集time_slot (time_slot_id, { (day, start_time, end_time) } ); 实体集classroom (building, room_number, capacity); 联系集sec_time_slot关联section和time_slot 联系集sec_class关联section和class。   实体-联系图 E-R模型主要用于数据库设计过程它的发展是为了帮助数据库设计这是通过允许定义企业模式enterprise schema实现的。这种企业模式代表数据库的全局逻辑结构该全局结构可用E-R图E-R diagram图形化地表示。 E-R图E-Rdiagram可图形化表示数据库的全局逻辑结构。   1. 基本结构 E-R图的主要构件 ·分割为两部分的矩形代表实体集。第一部分有阴影包含实体集的名字第二部分包含实体集中所有属性的名字 ·菱形代表联系集 ·未分割的矩形代表联系集的属性。构成主码的属性以下划线标明 ·线段将实体集连接到联系集 ·虚线将联系集属性连接到联系集 ·双线显示实体在联系集中的参与度 ·双菱形代表连接到弱实体集的标志性联系集。 e.g.          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.g. 一对多一名教师可以指导多名学生但一名学生可以至多有一位导师。     E-R图提供描述“每个实体参与联系集中联系的次数约束”的方法 实体集和二元联系集之间的一条边可以有一个关联的最大和最小的映射基数用l..h表示。其中l为最小映射基数h为最大映射基数。 l1时表示这个实体集在该联系集中全部参与每个实体在联系集中的至少一个联系中出现 h1时表示这个实体参与至多一个联系 最大值为*表示没有限制。 e.g. 约束每个学生必须有且仅有一个导师教师可以有零个或多个学生。 从instructor到student的一对多联系student在advisor联系中的参与是全部的。 另一种画法在基数约束的位置画一条从student到advisor的双线以及一条从advisor到instructor的箭头。   3. 复合属性、多值属性、派生属性的表示 e.g.  实体集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. 三个实体集instructor、student和project通过联系集proj_guide相关联。 在非二元联系集中可表示某些类型的多对一联系。(e.g. 假设一个student在每个项目上最多只能有一位导师可用从project_guide的边指向instructor的箭头表示。) 在一个非二元联系集外包含两个或更多箭头的E-R图可有两种解释 假设实体集A1, A2, …, An之间有联系集R并且只有指向实体集Ai1, Ai2, …, An的边是箭头。 a. 来自A1, A2, …, Ai的实体的一个特定组合可以与至多一个来自Ai1, Ai2, …, An的实体组合相关联。因此联系R的主码可用A1, A2, …, Ai的主码的并集来构造。 b. 对于每个实体集AK, ik≤n, 来自其他实体集的实体的每个组合可以和来自AK的至多一个实体相关联。因此对于ik≤n每个集合{ A1, A2, …, Ak-1, Ak1, …, An }构成一个候选码。 因为以上两种解释在不同的书/系统中使用为避免混淆我们规定在一个非二元联系集外只允许有至多一个箭头。   6. 弱实体集 弱实体集weak entity set不具有足够的属性构成主码的实体集。 有主码的实体集则称作强实体集strong entity set。 e.g. 情况 实体集section由course_id, semester, year, sec_id唯一标识 实体集course 由course_id唯一标识 i.e. 不同course的section可能会有相同的sec_id、year和semester。 联系集sec_course关联section和course。 分析 因为section已有属性course_idsec_course中信息冗余。 如果删除联系sec_course会使section和course的联系隐含于一个属性中不合适。 如果删除section中的属性course_id则剩下的属性不足以唯一标识一个指定的section实体 处理方法 删除section中的属性course_id标志性联系sec_course关联弱实体集section与其标识实体集course 给唯一标志的section实体提供额外信息course_id。   标识实体集identifying entity set/属主实体集owner entity set一个弱实体集必须与一个标识实体集关联才有意义。每个弱实体集必须和一个标识实体关联。 弱实体集存在依赖existence dependent于标识实体集标识实体集拥有own它所标识的弱实体集。   标志性联系identifying relationship将弱实体集与其标识实体集相联的联系。 标志性联系是从弱实体集到标识实体集多对一的弱实体集在联系中参与是全部的。 标志性实体集不应该有任何描述性属性。   分辨符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图中弱实体集以矩形表示类似强实体集其分辨符以虚下划线标明关联弱实体集和标识性强实体集的联系集以双菱形表示。双线表示参与是全部的。 e.g. 弱实体集section通过联系集sec_course依赖于强实体集course弱实体集section在联系sec_course中的参与是全部的每次section与单门course相关联。 弱实体集可以参与标识性联系以外的其他联系 弱实体集可以作为属主与另一个弱实体集参与一个标识性联系 一个弱实体集可能与不止一个标识实体集关联i.e. 一个特定的弱实体将被一个实体的组合标识其中每个标识实体集有一个实体在该组合中弱实体集的主码则由标识实体集的主码的并集加弱实体集的分辨符组成。   如果弱实体集只参与标识性联系并且属性不多则建模时适合将其表示为属主实体集的一个多值复合属性 如果若实体集参与到标识性联系以外的联系中或属性较多则建模时适合将其表示为弱实体集。   E-R图转换为关系模式 对于每个实体集/联系集都有唯一的关系模式与之对应关系模式名为相应的实体集或联系集的名称。所以一个符合E-R数据库模式的数据库可表示为一些关系模式的集合。   1. 具有简单属性的强实体集的表示 设E为只具有n个简单描述性属性的强实体集则用具有n个不同属性的关系模式E表示。 关系中的每个元组都对应于实体集中的一个特定实体。 如果实体集为强实体集则其转换得到的关系模式的主码就是强实体集的主码。   2. 具有复杂属性的强实体集的表示 如果强实体集具有复合属性关系模式中不为复合属性自身创建一个单独的属性而为复合属性的每个子属性创建一个单独的属性。 e.g. 对于复合属性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_slo t(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元联系集关系模式主码的选择联系集外至多允许一个箭头 ·边上没有箭头所有参与实体集的主码属性的并集 ·边上有一个箭头不在“箭头”侧的实体集的主码属性   对于每个与联系集R相关的实体集Ei建立一个关系模式模式R上的外码约束R中来自Ei主码属性的那些属性参照关系模式Ei的主码。   模式的冗余 连接弱实体集与其所依赖的强实体集的联系集比较特殊一般情况下其关系模式冗余在基于E-R图的关系数据库设计中不必给出。   模式的合并 设从实体集A到实体集B的一个多对一联系集AB构建三个关系模式A、B、AB。如果A在该联系中的参与是全部的i.e. 实体集A中的每个实体都参与到联系AB中则可将模式A和模式AB合并为单个包含两个模式所有属性并集的模式。合并后模式的主码为被合并的那个实体集的主码。 e.g. 从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在联系中的参与是部分的也可使用控制来进行模式的合并。(e.g. 例中如果instructor在inst_dept部分参与可为没有相关联的department的instructor在属性dept_name中存放空值。) 合并后舍弃联系集上参照实体集A的外码约束将参照实体集B的外码约束加到合并后的关系模式中。(e.g. 例中将原inst_dept上dept_name属性参照department的外码约束加到合并后的insructor关系中。) 如果联系是一对一的联系集的关系模式可以跟参与联系的任何一个实体集的关系模式合并。     实体-联系设计问题 1. 用实体集还是用属性 e.g. 给instructor增加phone的两种方法   如果希望保存电话的额外信息位置、类型、共享改电话的所有的人等将电话看做实体的建模方式根据有通用性。 常见错误1用一个实体集的主码作为另一个实体集的属性而不是用联系。× 应当明确表示出实体集之间的关系而不是将关系隐含在属性中。 e.g. 将student的ID作为instructor的属性即使一对一× 将advisor联系代表student和instructor之间的关联。√   常见错误2 将相关实体集的主码属性作为联系集的属性。× 因为在联系集中已经隐含了这些主码属性。 注意当从E-R模式创建关系模式时这些属性可能会出现在联系集的关系模式中但不应该出现在E-R模式的联系集中。 e.g. 将student的ID和instructor的ID作为advisor联系的属性。 ×   2. 用实体集还是联系集 原则当描述发生在实体间的行为时采用联系集。 e.g. 用实体集registration代表课程-注册记录替代student和section之间的联系集takes。   一般使用联系集takes更紧凑可取。如果课程-注册记录与其他信息相关联则适合作为实体集。   3. 二元还是n元联系集 一个n元(n2)的联系集总能用一组不同的二元联系集替代。 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关系代表”is a”。(e.g. instructor “ is a” employee.) 重叠特化overlapping specialization一个实体集可能属于多个特化实体集。对于一个重叠特化(e.g. student和employee作为person的特化)分开使用两个箭头。 不相交特化disjoint specialization一个实体集必须属于至多一个特化实体集对于一个不相交特化(e.g. instructor和secretary作为employee的特化)使用一个箭头。 特化关系可能形成超类-子类superclass-subclass联系。 高层和低层实体集按普通实体集表示包含实体集名称的矩形。   2. 概化 概化generalization高层实体集与一个或多个低层实体集间的包含关系。低层实体集间存在共性包含相同的属性这些属性被赋予相同的名字并由高层实体集表示。 高层与低层实体集也分别称作超类superclass和子类subclass。 概化不是特化的逆过程。特化和概化的区别在于出发点和总体目标 特化从单一实体集出发通过创建不同的低层实体集来强调同一实体集中不同实体间的差异。低层实体集可以有不适用于高层实体集中所有实体的属性也可以参与到不适用于高层实体集中所有实体集的联系中。 概化基于“一定数量的实体集共享一些共同特征用相同的属性描述且参与到相同的联系集中”。在这些实体集共性的基础上将它们总和成一个高层实体集用于强调低层实体集间的相似性并隐藏差异。 (概化使共享属性不重复出现表达简洁。)   3. 属性继承 属性继承attribute inheritance由特化和概化所产生的高层实体和低层实体的一个重要特性高层实体集的属性被低层实体集继承inherit。 属性继承适用于所有低层实体集。 e.g. 实体集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。 参与继承低层实体集子类也同时继承地参与其高层实体集超类所参与的联系集。参与继承也适用于所有低层实体集。 e.g. 实体集person和department参与person_dept联系集 person的子类student、employee、instructor和secretary也都和department隐式地参与到person_dept联系中。 对于E-R图的一个给定部分无论是通过特化还是概化得到的都具有以下性质 ·高层实体集所关联的所有属性和联系适用于它所有的低层实体集 ·低层实体集特有的性质仅适用于特定的低层实体集。   在实体集的层次结构中 如果一个实体集作为低层实体集只参与到一个ISA联系中则称这个实体集只具有单继承single inheritance 如果一个实体集作为低层实体集参与到多个ISA联系中则称这个实体集具有多继承multiple inheritance且产生的结构称为格lattice。   4. 概化上的约束 可在特定概化上设置三类约束。 a. 涉及”判定哪些实体能成为给定低层实体集的成员”的约束。成员资格可以是下列其中一种 ·条件定义的condition-defined在条件定义的低层实体集中成员资格的确定基于实体是否满足一个显式的条件或谓词。 e.g. 设高层实体集student具有属性student_type所有student实体都根据student_type属性进行评估 满足条件student_type”graduate”的实体属于graduate低层实体集 满足条件student_type”undergraduate”的实体属于undergraduate低层实体集。 ·用户定义的user-defined在用户定义的低层实体集中由数据库用户将实体指派给某个实体集。 负责决策的用户根据个人观点进行分配执行将一个实体加入某个实体集的操作。 b. 涉及”在一个概化中一个实体是否可以属于多个实体集“的约束。低层实体集可以是下列其中一种 ·不相交disjoint要求一个实体至多属于一个低层实体集。 ·重叠overlapping同一实体可以同时属于同一概化中的多个实体集。 使用分开的箭头表示重叠概化单个箭头表示不相交概化。 e.g. 一个person可以既是employee又是student使用分开的箭头表示重叠概化。一个箭头从employee指向person一个箭头从student指向person 一个employee不能既是instructor又是secretary使用单个箭头表示不相交概化从instructor和secretary指向employee。   c. 对概化的完全性约束completeness constraint。定义高层实体集中的一个实体是否必须至少属于该概化/特化的一个低层实体集。此类约束可以是下列其中之一 ·全部概化total generalization或特化specialization每个高层实体必须属于一个低层实体集。 ·部分概化partial generalization或特化specialization允许一些高层实体不属于任何低层实体集。 默认情况下为部分概化。如果需要表示全部概化可在E-R图中加入关键词total并画一条从关键词到相应空心箭头表示不相交概化的虚线或画一条到空心箭头集合表示重叠概化的虚线。   完全性约束和不相交约束彼此没有依赖关系。 对给定概化或特化使用约束带来某些插入和删除需求。   5. 聚集 聚集是一种抽象。其中联系集和跟它们相关的实体集一起被看作高层实体集并且可以参与联系。 聚集aggregation将联系视为高层实体的一种抽象。高层实体集可像对任何其他实体集一样处理。 e.g. 三元联系集proj_guide关联实体集Instrucotor、student和project。四元联系集eval_for关联实体集evaluation和instructor、student、project和evaluation。   分析 联系集proj_guide和eval_for不能合并因为一些(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概化 方法一 一般采用 为高层实体集创建关系模式属性对应高层实体集的属性为低层实体集创建关系模式属性对应高层实体集主码属性和低层实体集的属性。 高层实体集的主码属性既是高层实体集的主码属性也是所有低层实体集的主码属性。 在低层实体集上建立外码约束其主码属性参照创建自高层实体集的关系的主码。 e.g. person (ID, name, address); employee (ID, salary); student (ID, tot_cred); 方法二 如果概化不相交且完全不存在同时属于两个同级低层实体集的实体且高层实体集的任何实体也都是某个低层实体集的成员则采用 不需要为高层实体集创建任何模式只为每个低层实体集创建一个模式模式中的属性包括高层实体集的属性和低层实体集的属性 高层实体集的主码属性作为低层实体集的主码属性。 缺点定义外码属性时可能存在问题如果有与高层实体集相关的联系集当从该联系集创建关系模式时需要建立参照高层实体集的外码约束无法参照单一的一个关系。 e.g. 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类图广泛用于对类建模以及一般的数据建模。 统一建模语言Unified Modeling Language, UML为建立软件系统的不同部分的规范定义而提出的一个标准。组成部分包括 ·类图class diagram类似ER图 ·用况图use case diagram说明用户和系统之间的交互特别是用户所执行任务中的每一步操作 ·活动图activity diagram说明系统不同部分之间的任务流 ·实现图implementation diagram在软件构件层和硬件构件层说明系统的各组成部分以及它们之间的联系。 对象UML类图为对象建模对象类似实体包含属性和方法。类图可以说明对象的属性和方法。 方法UML类图中另外提供的一组函数可在对象属性的基础上调用以计算值或更新对象本身。 UML类图不支持复合或多值属性派生属性与不带参数的函数等价 UML类图支持封装允许函数和属性带有前缀””、”-“或”#”分别表示公共、私有以及受保护的访问。私有属性只能在类的方法中使用受保护的属性只能在类和它的子类的方法中使用。 关联association在UML类图中联系集称为关联。通过画一条线段连接实体集表示二元联系集联系集的名称写在线段附近。可用以下两种方式说明联系集 a. 可将角色名称写在靠近实体集的线段上说明联系集中一个实体集的角色 b. 可将联系集的名字和属性一起写在方框里用虚线将该方框连接到表示联系集的连线上。该方框可看作一个实体集可与其他实体一起参与联系。 从UML1.3开始UML支持菱形表示法表示非二元联系。即使对于二元联系UML也允许使用菱形表示法但大部分设计者使用线段表示法。   UML中使用l..h形式表示基数约束i表示参与联系的实体的最小个数h表示最大个数。但约束位置与E-R图中正好相反。 e.g. 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. 使用需求查询、性能 数据库处理效率的两个主要度量方法两个度量并不等价 ·吞吐量throughput每单位时间里能够处理的查询或更新通常指事务的平均数量。 以批量方式处理大量事务的系统(e.g. 大多数商用数据库系统)通常关注于达到高吞吐量。高吞吐量的目的在于获得系统部件的高利用率但可能会导致某些事务延迟。 ·响应时间response time单个事务从开始到结束所需的平均时间或最长时间。 与人交互或时间苛刻的系统e.g. 基于Web的应用和电信信息系统的用用通常关注与响应时间。   涉及连接的查询比不涉及连接的查询需要更多的资源用以计算可选择创建索引以加快连接的计算 对于查询不论是否涉及连接可创建索引以加速频繁出现在查询中的选择谓词where子句的计算 因为更新会为维护索引的准确性而强制带来额外工作当一个索引加速查询的同事也可能减缓更新的速度。   3. 授权需求   4. 数据流、工作流 工作流表示一个流程中的数据和任务的组合。 当工作流在用户间移动以及用户执行他们在工作流中的任务时工作流会与数据库系统交互。 数据库可以存储工作流操作的数据和工作流自身的数据构成工作流的任务、在用户之间移动的路径。   5. 数据库设计的其他问题 注意区分预期持久的基本约束和预期要改变的约束尽量避免或最小化由预计或可能发生的改变带来的改动。  转载于:https://www.cnblogs.com/RDaneelOlivaw/p/8215224.html
http://www.yutouwan.com/news/64673/

相关文章:

  • 做招投标有哪些网站网站内容优化方法有哪些内容
  • 如何建立公司网站链接网站建设的提升
  • 如何把地图放到网站上营销型企业网站推广的方法有哪些
  • 国外网站公司企业logo
  • 关岭网站建设建设网站必须用dns
  • 漳州模板网站建设google商店
  • 哈尔滨哪里有做网站的网站建设昆山博敏
  • 百度收录网站链接韶关建网站
  • 有哪些可以做图的网站啊25转行做网站运营
  • 阿坝网站制作地推团队去哪里找
  • 上外贸网站建设公司做公司网站
  • 邯郸有建网站的吗此网站域名三天更换
  • 高端网站建设公司价格建筑设计公司名字大全
  • 网站建设设计方案如何制作手机网页最简单的方法
  • 太原网站排名外包河北网站建设备案价格
  • 网站流量50g发帖效果好的网站
  • 建设一个网站需要哪些余姚做网站设计的公司
  • 网站优化 流量品牌设计包括哪些内容
  • 石家庄公司网站设计中国农技推广网
  • 厦门SEO_厦门网站建设工业互联网建设
  • 专业网站建设收费安卓优化大师手机版
  • 凡科建站公司在线设计自己的签名
  • 电子商务网站开发步骤网络舆情案例
  • 外贸网站建设公司市场长沙最新招聘
  • 网站运营管理员具体做什么济南网站建设服务公司
  • 上海沙龙网站建设网站建设 账务处理
  • 北京哪家网站建设公司比较好免费虚拟主机免备案
  • 招聘网站开发设计文档沛县网站建设xlec
  • 昌江网站建设如何扫描网站漏洞
  • 免费建网站家谱系统扫描件怎么能生成WordPress