精华内容
下载资源
问答
  • 2020-01-19 13:51:36

    一.数据库设计的概念

    数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.

    二.数据库设计的重要性

    • 如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是:
    • 1.效率会很低
    • 2更新和检索数据时会出现很多问题,
    • 反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是:
    • 1.效率会很高.
    • 2.便于进一步扩展.
    • 3.使得应用程序的开发变得更容易.

    三.设计数据库的步骤

    • 1.需求分析阶段:分析客户的业务和数据处理需求.
    • 2.概要设计阶段:他主要就是绘制数据库的E-R图.
    • 3.详细设计阶段:应用数据库的三大范式进行审核数据库的结构.
      总结:在进行数据库的系统分析时,都以下列4点位参考的基本步骤.
    • 01.收集信息.
    • 02.标识实体.
    • 03.标识每个实体需要储存的详细信息.
    • 04.标识实体之间的关系.

    四.学会绘制E-R图

    • 绘制E-R图首先要了解什么是实体,什么是属性,什么是联系.
    • 1.首先实体是指现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体.
    • 2.属性可以理解为实体的特征,针对于数据库中的表而言实体是指表中的列.
    • 3.联系是两个或多个实体之间的关联关系.
    • 4.实体关系图:
      在这里插入图片描述
      例:酒店管理系统E-R图:
      在这里插入图片描述

    五.映射基数

    • 1.一对一:X中的一个实体最对与Y中的一个实体关联,并且Y中的一个实体最多与X中的一个实体关联.
      Eg:一个人只有一张身份证.
    • 2.一对多:X中的一个实体可以与Y中的任意数量的实体关联;Y中的一个实体最多与X中的一个实体关联.
      Eg:一个班级有多名学生.
    • 3.多对一:X中的一个实体最多与Y中的一个实体关联;Y中的一个实体可以与X中的任意数量的实体关联.
      Eg:客人与客房之间的关系,一个客人只能住一间客房.
    • 4.多对多:X中的一个实体可以与Y中的任意数量的实体关联,反之亦然.
      Eg:学生和课程之间的关系,一个学生可以有多门课程,一门课程可以对应多名学生.

    六.绘制数据库模型图

    以酒店管理系统为例:
    在这里插入图片描述

    七.数据库规范化

    如果数据库没有进行相应的规范设计,虽然在查询数据库可能会比较容易,但有时会造成一些问题,主要的问题如下:

    • 1.信息重复(会造成储存空间的浪费及一些其他问题).
    • 2.更新异常(冗余信息不仅浪费空间,还会增加更新的难度).
    • 3.插入异常
    • 4.删除异常(在某些情况下,当删除一行时,可能会丢失有用的信息).

    八.三大范式

    1.第一范式:

    目标是确保每列的原子性.如果每列都是不可再分的最小数据单元,则满足第一范式.

    2.第二范式:

    第二范式在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关,也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中.如果一个关系满足第一范式,并且除了主键以外的其他列都依赖与该主键.则满足第二范式.

    3.第三范式:

    第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关.如果一个关系满足第二范式,并且除了主键以外的其他列都这能依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式.

    九.规范性和性能的关系

    为了满足三大范式,我们的数据操作性能会受到相应的影响,所以,在实际的数据库设计中,既要考虑三大范式,避免数据的冗余和各种数据操作异常;有要考虑到数据访问性能,有时,为了减少表间连接,提高数据库的访问性能,允许适当的数据冗余列,这可能是最合适的数据库设计方案.

    更多相关内容
  • 数据库ER图

    万次阅读 2018-04-02 00:33:05
    首先是如何画数据库ER图。 实体集 实体是客观世界的对象,实体集就是一类相似实体的集合。实体集用矩形表示,名称为名词复数且首字母大写。 实体集中的实体有相同的属性。属性用椭圆表示,名称为名词...


    这个学期上数据库课,于是想做一些笔记,以备期末复习。首先是如何画数据库的ER图。

    实体集

    实体是客观世界的对象,实体集就是一类相似实体的集合。实体集用矩形表示,名称为名词复数且首字母大写。
    实体集中的实体有相同的属性。属性用椭圆表示,名称为名词单数。
    每个实体集都可以选取一个或多个属性作为主码,主码可以唯一确定一个实体。主码的属性用下划线标出。
    entity

    联系集

    联系是两个或多个实体之间的一种关联,联系集就是一类相似联系的集合。联系集用菱形表示,名称为动词且首字母大写。
    联系集也可以有描述性属性,同样用椭圆表示,但联系必须能够用参与它的实体的集合唯一表示。
    relation

    码约束

    若一个实体最多出现在一个联系中,则形成码约束,这样的联系集也称为“一对多”,其中“多”指的是被约束的实体集。码约束用箭头来表示。
    keyConstraint

    参与约束

    若一个实体集中的实体全部参与联系,则形成参与约束,这样的实体集也称为“完全的”。参与约束用粗线表示。
    participationConstraint

    弱实体

    若一个实体集没有主码,但可以与其它实体集的主码结合形成唯一标识,则为弱实体集,与其结合的实体集为识别属主集。
    弱实体集中作为唯一标识的属性为部分码,用下划虚线标出。
    为了唯一标识每个弱实体,识别属主集和关联弱实体集必须参与一个“一对多”联系集,即识别联系集,弱实体集在识别联系集中必须是完全参与的。
    weakEntity

    类层次

    可以对一个实体集分类形成ISA结构,即每个子类都具有超类的属性和各自的属性。ISA结构可以指定两种约束:Overlap 和 Covering。
    Overlap约束指的是存在一个实体属于不同子类,即子类集合的交集可以不为空集。默认不存在Overlap约束,即子类集合的交集必须为空集。
    Covering约束指的是不存在一个实体属于超类但不属于子类,即子类集合的并集必须为全集。默认不存在Covering约束,即子类集合的并集可以不为全集。
    hierarchy

    聚合与三元联系

    当一个联系集关联三个实体集时,可以选择聚合或三元联系。
    三元联系指的是用一个联系集关联三个实体集。
    relation3
    聚合指的是用一个联系集关联两个实体集,再用另一个联系集关联第三个实体集和第一个联系集。
    aggregation
    一开始我总觉得三元联系和聚合差不多,甚至没必要区分,因为根据三元联系实例总能构造三元联系和聚合,虽然有时候其中一种表达更准确,但有时候确实没有哪个显得更好用。
    不过,当实体集加上码约束后情况就不一样了。假设有三个实体集ABC,构造聚合,R1联系AB,R2联系C和R1,然后对R2联系的R1加上码约束,表示AB实体的每一个R1联系最多出现在一个R2联系中。而三元联系无法表示这种情况,即使对A和B都加上码约束,得到的联系也不完全相同,比如a1-b1-c和a1-b2-c可以同时属于一个聚合实例中,却不能同时属于一个三元联系中。

    总结

    设计ER图的步骤:首先考虑有哪些实体集和联系集以及对应的属性,然后再加上码约束,最后适当采用特殊结构保证描述准确。

    参考资料

    Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems (Third Edition)[M]. 北京:清华大学出版社, 2003.

    展开全文
  • 数据库ER图 PowerDesigner

    2019-09-20 19:51:31
    一、概念数据模型概述数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:1)...它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。通 常人们先将现实世界抽象为概念世界,然后...

    一、概念数据模型概述
    数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
    1)能够比较真实地模拟现实世界
    2)容易为人所理解
    3)便于计算机实现

    概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。

    通 常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系 (Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个 DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。

    CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
    1)数据结构表达为实体和属性;
    2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;
    3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等);


    二、实体、属性及标识符的定义
    实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。
    每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。

    实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。

    实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。

    实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。

    有些实体类型可以有几组属性充当标识符,选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。

    三、实体、属性及标识符的表达
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    介绍PowerDesigner概念数据模型以及实体、属性创建。

    一、新建概念数据模型
    1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    2)完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍。(以后再更详细说明)
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    3) 选择新增的CDM模型,右击,在弹出的菜单中选择“Properties”属性项,弹出如图所示对话框。在“General”标签里可以输入所建模型的名 称、代码、描述、创建者、版本以及默认的图表等等信息。在“Notes”标签里可以输入相关描述及说明信息。当然再有更多的标签,可以点击 "More>>"按钮,这里就不再进行详细解释。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    二、创建新实体
    1)在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    2)双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    三、添加实体属性
    1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    注意:
    数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code 和Allow reuse选项有关。
    P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。

    如果一个实体属性为强制的,那么, 这个属性在每条记录中都必须被赋值,不能为空。

    2)在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    注意:这里涉及到域的概念,即一种标准的数据结构,它可应用至数据项或实体的属性上

    一、定义属性的标准检查约束
    标准检查约束是一组确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项卡。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下
    参 数说明Minimum属性可接受的最小数Maximum 属性可接受的最大数Default属性不赋值时,系统提供的默认值Unit单位,如公里、吨、元Format属性的数据显示格式Lowercase属性的 赋值全部变为小写字母Uppercase属性的赋值全部变为大写字母Cannot modify该属性一旦赋值不能再修改List Of Values属性赋值列表,除列表中的值,不能有其他的值Label属性列表值的标签
    二、定义属性的附加检查
    当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER% 几个变量来定义Standard和Rule,如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    %MINMAX%、%LISTVAL%、%UPPER%、%LOWER%
    在Standard Check中定义的Minimum 和Maximum、List values 、uppervalues、lowervalues

    %RULES%
    在Rules特性窗口Expression选项卡中定义的有效性规则表达式

    一、标识符
    标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例。要强调的是,CDM中的标识符等价于PDM中的主键或候选键。
    每个实体都必须至少有一个标识符。如果实体只有一个标识符,则它为实体的主标识符。如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符就是次标识符了。

    二、如果定义主、次标识符
    1)选择某个实体双击弹出实体的属性对话框。在Identifiers选项卡上可以进行实体标识符的定义。如下图所示

    【转】 <wbr>使用PowerDesigner画ER图详细教程

    2)选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    3)选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符就行了。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    一、数据项
    数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。
    注意:模型中允许存在没有附加至任何实体上的数据项。

    二、新建数据项
    1)使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”按钮,创建一个新数据项,如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    2)当然您可以继续设置具体数据项的Code、DataType、Length等等信息。这里就不再详细说明了。

    三、数据项的唯一性代码选项和重用选项
    使用Tools--->Model Options->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(Allow Reuse)。
    注意:
    如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,一个数据项可以充当多个实体的属性。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    四、在实体中添加数据项
    1)双击一个实体符号,打开该实体的属性窗口。
    2)单击Attributes选项卡,打开如下图所示窗口
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    注意:
    Add a DataItem 与 Reuse a DataItem的区别在于
    Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。


    Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据项

    一、 联系
    联系(Relationship)是指实体集之间或实体集内部实例之间的连接。

    实体之间可以通过联系来相互关联。与实体和实体集对应,联系也可以分为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系,联系是具有方向性的。联系和联系集在含义明确的情况之下均可称为联系。

    按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。 

    二、 建立联系
    在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击图形窗口,释放Relationship工具。如下图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    三、 四种基本的联系
    即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    四、 其他几类特殊联系

    除了4种基本的联系之外,实体集与实体集之间还存在标定联系(Identify Relationship)、非标定联系(Non-Identify RelationShip)和递归联系(Recursive Relationship)。

    标定联系:
    每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系,也叫依赖联系。反之称为非标定联系,也叫非依赖联系。
    注意:
    在 非标定联系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个实体必须至少有一个标识符。而在标定联系中,一个实体集中的全 部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖 的实体的标识符作为自己的标识符。

    换句话来理解,在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。
    【转】 <wbr>使用PowerDesigner画ER图详细教程


    递归联系:
    递归联系是实体集内部实例之间的一种联系,通常形象地称为自反联系。同一实体类型中不同实体集之间的联系也称为递归联系。

    例 如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与被领导的关系。又如“学生”实体信中的实体包含“班长”子实体集与“普通学生”子 实体集,这两个子实体集之间的联系就是一种递归联系。创建递归联系时,只需要单击“实体间建立联系”工具从实体的一部分拖至该实体的别一个部分即可。如图
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    五、 定义联系的特性

    在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    六、 定义联系的角色名
    在联系的两个方向上各自包含有一个分组框,其中的参数只对这个方向起作用,Role Name为角色名,描述该方向联系的作用,一般用一个动词或动宾组表。
    如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”。(在此只是举例说明,可能有些用词不太合理)。
    七、 定义联系的强制性
    Mandatory 表洋这个方向联系的强制关系。选中这个复选框,则在联系线上产生一个联系线垂直的竖线。不选择这个复选框则表示联系这个方向上是可选的,在联系线上产生一个小圆圈。

    八、 有关联系的基数
    联系具有方向性,每个方向上都有一个基数。

    举例,
    “系” 与“学生”两个实体之间的联系是一对多联系,换句话说“学生”和“系”之间的联系是多对一联系。而且一个学生必须属于一个系,并且只能属于一个系,不能属 于零个系,所以从“学生”实体至“系”实体的基数为“1,1”,从联系的另一方向考虑,一个系可以拥有多个学生,也可以没有任何学生,即零个学生,所以该 方向联系的基数就为“0,n”,如图所示
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    CDM 是大多数开发者使用PD时最先创建的模型,也是整个数据库设计最高层的抽象。CDM是建立在传统的ER图模型理论之上的,ER图中有三大主要元素:实体 型,属性和联系。其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。但在 联系上,CDM有了比较大的扩展,除了保留ER图原有的RelationShip概念之外,还增加了Association,Inheritance两种 实体关系,下面就让我们分别看看这些关系的用法和之间的区别(下图中被标红的工具栏按钮就是用来向实体中添加这些关系的)。
    【转】 <wbr>使用PowerDesigner画ER图详细教程
       另外,在介绍所有这些CDM中的元素之前,笔者先给出一个很简单的CDM图,是对我们最最熟悉的学校场景的一个建模,下文中提到的所有概念在图中都有体现,大家在看下文的时候可以对照着来看:
    【转】 <wbr>使用PowerDesigner画ER图详细教程

    一. RelationShip(联系)
       先 给出PD手册里对联系的定义:“A relationship is a link between entities. For example, in a CDM that manages human resources, the relationship Member links the entities Employee and Team, because employees can be members of teams. This relationship expresses that each employee works in a team and that each team has employees.” 可见,也许联系的概念真的太简单了吧,所以反而不那么好表述,所以PD的文档里也是用一个例子来说明出现了什么样的情况我们就认为两个实体间是有联系的。
       当 我们提起实体间联系的时候,最先想到的恐怕是one to one,one to many 和many to many这三种联系类型,这些联系类型也是大家最熟悉的。笔者对ER图原本的概念并不精通,但在CDM中,联系还有另外三个可以设置的属 性:mandatory(强制性联系), dependent(依赖性联系/标定关联) 和dominant(统制联系)。这些属性对后面PDM的生成都有比较大的影响,需要我们一一有所了解。它们都是在联系的属性控制面板中设定的,见下图:
    【转】 <wbr>使用PowerDesigner画ER图详细教程
    1.mandatory
       联 系是否具有强制性,指的是实体间是不是一定会出现这种联系;或者换句话说,当我们在谈及一个联系的应用场景的时候,联系对应的那两个实体型的实体实例的个 数可不可能为零。也许这样的解释还是有点抽象,让我们举两个联系的例子,一个是对两边的实体都有强制性的,另一个则不然。
    (1)教师--学生 联系
       这个联系首先是一个多对多联系,因为每个老师可以教多个学生,每个学生也都有多个老师来负责他们的学业。同时,这个联系对教师和学生都是强制性的,也就是说,不存在任何一个老师,他不负责任何一个学生的教学;也不存在任何一个学生,他没有任何一个任课老师。
    (2)学生--俱乐部 联系
       这个联系也是一个多对多关系,但它对学生这个实体型而言就不是强制的(Optional,可选的)。每个俱乐部都有至少一个学生参加,但并不是每个学生都要去参加俱乐部的活动。完全可以有一些学生,他们什么俱乐部都没参加。
    上 面的例子主要是从概念的角度来区分了mandatory和optional的区别。实际上如果把这个模型对应到我们最后生成的表,如果A-B间的联系对A 是mandatory的话,那么如果在A里面如果包含B的外键,这个外键不能为空值,反之可以为空值。后面我们谈到PDM和实际数据库的时候,大家会看到 这一点。
    2.dependent
       每一个Entity型都有自己的Identifier,如果两个Entity型之间发生关联时,其 中一个Entity型的Identifier进入另一个Entity型并与该 Entity型中的Identifier共同组成其Identifier时,这种关联称为标定关联,也叫依赖性关联(dependent relationship)。一个Entity型的Identifier进入另一个Entity型后充当其非Identifier时,这种关联称为非标定 关联,也叫非依赖关联。
       概念的定义说起来还是有些拗口,说白了其实就是主-从表关系,从表要依赖于主表。比如在我们系统里要记录教师休假的 情况,有一个实体型Holiday,其属性包括休假的开始时间和天数,每次有教师休假的时候,都要在这个表留下记录。从我们的场景描述中可以看到,实体型 假期必须依附于实体型教师,即对于每一个假期实例,必须指向某一个教师实例。
       对于依赖型联系,必须注意它不可能是一个多对多联系,在这个联系中,必须有一个作为主体的实体型。一个dependent联系的从实体可以没有自己的identifier.
    3.dominant
       这 个联系属性是最为简单的,它仅作用于一对一联系,并指明这种联系中的主从表关系。在A,B两个实体型的联系中,如果A-->B被指定为 dominant,那么A为这个一对一联系的主表,B为从表,并且在以后生成的PDM中会产生一个引用(如果不指定dominant属性的话会产生两个引 用)。比如老师和班级之间的联系,因为每个班级都有一个老师做班主任,每个老师也最多只能做一个班级的班主任,所以是一个一对一关系。同时,我们可以将老 师作为主表,用老师的工号来唯一确定一个班主任联系。

    二.Association(关联)
       先来看一下PD给 association的定义:“An association is a connection between entities. In the Merise modeling methodology an association is used to connect several entities that each represents clearly defined objects, but are linked by an event, which may not be so clearly represented by another entity.”。
       在 上一小段提到的那些RelationShip,在很多情况下(特别是多对多关系中),我们会把联系专门提出来,作为一个实体型放在两个需要被关联的实体型 中间(在PD中,选中任何一个联系,在右键的弹出菜单中选择“Change to Entity”命令即可完成联系转实体的操作)。但有的时候,把若干个实体型之间的联系抽象为一个实体型可能不太合适,这个时候你可以选择为这些实体型建 立一个association,那么在生成PDM的时候,所有这些相关实体型的identifier都会被加入到association对应生成的表模型 中。所以,说白了,其实association就是实体型的一种特例,用来在建模的时候更确切的表达实体间的关联信息。在PD的文档中举了一个录音带、顾 客、商店三个实体型在租借录音带这个场景上发生关联,然后把租借定义为上述三个实体型之间的association的例子,非常确切。在我们的学校模型 里,我定义了家访做为老师和学生实体型中间的一个association,在接下来产生的PDM中大家就可能看到这种定义所产生的效果。

    三.Inheritance(继承)
       这种关系在概念层面是最容易理解的了,本文就不赘述了。

    前面已经介绍了CDM中关于实体间关系的主要内容,接下来我们就来看看根据这个CDM所生成的PDM是一个什么样子:


    上图中所有标红的部分是我们最应该关注的内容,因为他们都是由于我们对实体型间的关系的定义而产生的,下面给出一些简单的说明。
    1. “师生关系”和“学生俱乐部”这两个表是由于我们的多对多关系而产生的。
    2. “假期”表的“工号”字段是由于我们将教师-假期关系指定为dependent而产生的。
    3. “班级”表的“工号”字段是由于我们将教师-班级关系制定为dominant而产生的。
    4. “家访”表中的“工号”和“学号”字段是由于家访是教师和学生实体型的association而产生的。
    另 外,记得我们在提到dominant属性的时候说过,一个没指定dominant方向的一对一联系将产生两个引用,下面我们就把原本的CDM中的教师-班 级关系进行一个小小的修改,去掉这个relationship的dominant定义,那么最终产生的PDM中教师表和班级表将互相包含对方的主键(由于 我们的班级表没有自己的主键,所以只能在班级表中看到多出来的列),截图如下:
    【转】 <wbr>使用PowerDesigner画ER图详细教程

     

    转发:http://www.360doc.com/content/11/0624/15/2617151_129276457.shtml#

    转载于:https://www.cnblogs.com/linguoguo/p/4798540.html

    展开全文
  • 图 1 mooc数据库ER图 ER图给出了mooc数据库表的图形化描述,但还缺乏建立数据库表必要的字段名称、字段类型等信息。还需要把ER图归纳为满足一定约束条件二维表的形式,才可以开始创建数据库表。mooc数据...

    1、mooc数据库表的ER图和关系模型

    在创建数据库表之前,首先需要设计数据库表。设计数据库表的主要工具是ER图,使用ER图设计数据库表详见《数据库实体联系模型与关系模型》一文。mooc数据库表的ER图如下。

                                           

    图 1 mooc数据库ER图

    ER图给出了mooc数据库表的图形化描述,但还缺乏建立数据库表必要的字段名称、字段类型等信息。还需要把ER图归纳为满足一定约束条件二维表的形式,才可以开始创建数据库表。mooc数据库二维表见下表。

    2、MySQL数据库常用字段数据类型

    表结构是由多个字段构成的,定义字段时需要定义字段的名称、数据类型、数据大小及其数据格式等内容。MySQL提供了一组预定义的数据规则,用于描述数据类型、数据大小及格式。当我们定义字段数据类型时,需要遵循这些规则。MySQL预定义的数据规则大体分为日期和时间、数值和字符串,下面分别给予说明。

    (1)日期和时间

     

                                           

    (2)整型数值

    (3)浮点数值

    浮点数值类型带有附加参数,m表示数值总的位数,d表示小数占的位数。例如,float(7,3) 表示数值总位数不会超过 7 位数字,小数点后面带有 3 位数字。对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,因此使用浮点类型的时候,数值的精度会影响到查询操作。

    (4)字符串

    其中,char类型占用固定的存储空间,与char类型的字段值大小无关。varchar类型的存储空间是动态变化的,占用存储空间的大小与存储的内容相关。这里需要注意的是,char和varchar的长度是指可存储字符的个数,并不代表字节个数。

    3、新建mooc数据库表

    有了mooc数据库二维表,就可以开始创建数据库表了。使用MySQL命令或Navicat等数据库管理工具都可以创建数据库表。这里重点介绍使用MySQL命令创建数据库表,Navicat等数据库管理工具基本都是图形用户界面程序,操作相对容易掌握,这里就不再介绍了。

    创建数据库表的MySQL命令语句如下:

    create table table_name (column_name column_type [约束条件] [, column_name column_type [约束条件]…]);

    其中,create table为命令串,table_name为创建表的名称,column_name为字段名称,column_type为字段数据类型,约束条件是字段约束项,可以允许有多个字段约束项,每个字段约束项之间用英文空格分隔。可以允许有多个字段,每个字段之间用英文逗号分隔。

    下面的语句分别创建course表、teacher表、student表、student_course表。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    //创建course表

    create table course(

       name varchar(50) not null,

       number varchar(50) not null,

       price float(6,2),

       brief varchar (150),

       category varchar (50),

    teacher_number varchar (50) not null,

       primary key (number)

    );

    //创建teacher表

    create table teacher(

    name varchar(50) not null,

       number varchar(50) not null,

       income float(8,2),

       brief varchar (150),

       primary key (number)

    );

    //创建student表

    create table student (

    name varchar(50) not null,

       number varchar(50) not null,

       balance float(8,2),

       age int,

       primary key (number)

    );

    //创建学生课程关联表

    create table student_course (

    course_number varchar(50) not null,

    teacher_number varchar(50) not null,

       number varchar(50) not null,

    buy_time date,

       primary key (number)

    );

    其中,命令中not null是字段约束项,表示该字段不能为空。primary key用于定义哪个字段作为主键,可以定义多个主键,每个主键之间用英文逗号分隔。

    3 、修改mooc数据库表结构

    表创建完成后,由于各种原因可能需要修改表的结构。例如,在原有的表中增加字段或者删除字段,修改字段的数据类型等。

    添加字段

    MySQL添加字段的命令语句如下:

    alter table 表名 add 字段1[, 字段2…]

    例如,需要在course表增加时间字段和类型字段,可以使用下面的命令:

    alter table course

        add create_time date not null,

        add type varchar(10);

    修改字段

    MySQL修改字段的命令语句如下:

    alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];

    例如,需要修改course表type字段的名称和类型,字段名称修改为course_type,数据类型修改为int。可以使用下面的命令:

    alter table course

        change type course_type int;

    删除字段

    MySQL修改字段的命令语句如下:

    alter table 表名称 drop column 字段名称[, drop column 字段名称…]

    例如,要删除course表的create_time字段和course_type字段,可以使用下面的命令:

    alter table course

        drop column create_time,

    drop column course_type;

    ■ 课程小结

    (1)在创建数据库表之前,首先要进行表的设计,设计表的主要工具就是ER图,ER图给出了数据库表的图形化描述,但还缺乏建立数据库表必要的字段名称、字段类型等信息。因此还需要把ER图归纳为满足一定约束条件的二维表的形式,才可以开始创建表。

    (2)MySQL提供了一组用于创建和管理数据库表的命令,通过这些命令可以建立新表、修改表原有的结构。当然也可以使用Navicat等工具可视化地管理数据库表。

    展开全文
  • 概念1.1概念数据库模型数据模型是现实世界中数据特征的抽象,数据模型应该满足一些需求 1.能够真实第模拟现实世界 2.容易被人们所理解 3.能被计算机实现概念信息模型也称信息模型,以实体-联系(Entity-RelationShip)...
  • 数据库设计(二)——简单设计实例

    万次阅读 多人点赞 2019-02-25 15:41:32
    一、设计一套系统数据库的步骤  1、实现什么样的功能(保证项目功能的完整性,列出所有模块)。  2、通过思维导图将每个功能模块串联起来(放射状,细节可以用文字描述)。  3、数据库需求分析  1)、内容要求:...
  • powerdesigner 画ER图

    2019-03-13 17:12:45
    ER图 即为 CDM图 - Conceptual Data Modal CDM可以转换成PDM、OOM、LDM等图,具体请详查 一般,CDM图示在概要设计阶段创建,PDM图示根据CDM图的基础上产生的。 一、概念数据模型概述 数据模型是现实世界中数据...
  • #计算机三级数据库技术!!!总结

    千次阅读 2019-09-21 18:47:19
    计算机三级数据库技术!!! 自己总结的笔记 (某些地方会有些小错误) 结构包括 用例 类图 组建 对象 部署 行为视图包括 顺序 交互 状态 描述系统的活动 用例模型是由 用例 系统 角色组成 用例...
  • CDM是建立在传统的ER图模型理论之上的,ER图中有三大主要元素: 实体型,属性和联系。其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。 但在联系上,CDM有了...
  • sysdba sysoper ipc net 操作系统认证 口令文件认证 创建用户OEM 建立表空间,实际保存数据的地方 为用户进行授权:connect resource(对所有表空间有无限制的空间使用权) 数据库的4个状态:关闭、实例启动、装载、...
  • 数据库什么是数据,什么是数据库MySQL 和 Oracle 数据库的优势Java 如何访问数据库MySQL 的 MVCC 机制数据库中的常见引擎常用的数据库安全技术有哪些数据库中事务是什么,其四个特性是什么数据库中事务的隔离级别...
  • 一、概念数据模型概述数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:1)...它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。通常人们先将现实世界抽象为概念世界,然后再将...
  • powerdesigner 设计 er图

    2012-12-21 15:03:41
    CDM是建立在传统的ER图模型理论之上的,ER图中有三大主要元素:实体 型,属性和联系。其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。但在 联系上,CDM有了...
  • 数据库设计(一)——数据库设计 一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、...
  • 软件工程导论 实验二 数据库设计

    千次阅读 2021-06-02 00:24:37
    实现概念结构设计,重点绘制ER图; 实现逻辑结构设计,重点设计数据库表以及绘制数据库表间的关系图。 关于实验报告 这个实验和数据库的最后一个实验基本一样,虽然题目要求不同,但是过程大致相同,两个实验我都是...
  • 它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实 世界中的客观对象抽象为实体(Entity)和联系...
  • 共享单车数据分析的SQL数据库设计

    千次阅读 2020-08-28 16:37:56
    SQL,发音为“ sequel”(或SQL,如果...查询语言是一种编程语言,旨在促进从数据库中检索特定信息,而这正是SQL所做的。简而言之,SQL是数据库的语言。  这很重要,因为大多数公司将其数据存储在数据库中。尽管数据
  • KingbaseES数据库对象管理工具

    千次阅读 2021-11-17 13:40:37
    3.1.实例管理 3.2.数据库管理 3.3.模式管理 4. 对象管理 5. 安全管理 5.1.用户管理 5.2.角色管理 6. 性能分析 6.1.系统参数 6.2.会话 6.3.锁 7. 备份 7.1.逻辑备份 7.2.逻辑还原 参考: 1. 简介 ...
  • 数据库应用笔记

    2019-12-04 23:21:41
    数据库系统(DBS) 第二章 实体建模 数据模型 概念模型 E-R模型 数值型 运算符和常用函数 比较和逻辑运算 空值和空值逻辑:不是所有信息都能被明确表示,未知或不适用,用NULL表示 表格与简单约束 范式:...
  • PowerDesigner绘制ER图

    千次阅读 2015-12-09 10:37:59
    CDM是建立在传统的ER图模型理论之上的,ER图中有三大主要元素:实体 型,属性和联系。其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。但在 联系上,CDM有了...
  • 数据库 数据库系统 数据库系统 基本概念 data 数据 DB 数据库 以特定的组织结构存放在计算机的存储介质中的相互关联的数据集合 DBS 数据库应用系统 Database System DBA 数据库管理员 ...
  • 三级数据库技术 Administrator 2019-09-24 ...
  • 数据库系统

    2022-03-28 13:56:57
     · 数据模型,ER图,第一范式、第二范式、第三范式  · 数据操作(集合运算和关系运算)  · 数据库语言(SQL)  · 数据库的控制功能(并发控制、恢复、安全性、完整性)  · 数据仓库和分布式数据库基础知识...
  • 三级数据库常考知识点强调

    千次阅读 多人点赞 2019-04-12 23:41:39
    2019年3月末考的三级数据库,在考前还有些紧张,但考试开始后,却异常轻松,因为每道题都异常熟悉、简单!选择填空不到20分钟就做完了。 当然我知道,这与我考试之前高强度的复习是离不开的。 在考前一个月,我开始...
  • 数据库期末复习之例题汇总

    千次阅读 多人点赞 2021-06-11 22:38:33
    文章目录数据库期末复习之例题汇总第1讲 绪论数据 - P11层次模型 - P69网状结构 - P81模式与实例 - P101第2讲 关系数据库笛卡尔积 – P13关系模式 - P29实体完整性 - P42关系间的引用 例2.1 - P46关系间的引用 例2.2...
  • 数据库系统概论第五版(笔记)

    千次阅读 2022-03-09 11:55:20
    1.1 数据库基本概念 1.数据 描述事物的符号记录称为数据。如数字、文字、图形、音频等。 数据的表现形式不能完全表达其内容,还需要对其解释数据含义。数据的解释就是对数据含义的说明,数据的含义称为数据的语义,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,450
精华内容 1,380
热门标签
关键字:

空间数据库er图实例