PD中 常见的问题

PD中 常见的问题

一、添加约束

原文链接:https://blog.csdn.net/weixin_43488671/article/details/94394741

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Alx2VM7Y-1612450329404)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20210204214458461.png)]

在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下:

参数 说明
Minimum 属性可接受的最小数
Maximum 属性可接受的最大数
Default 属性不赋值时,系统提供的默认值
Unit 单位,如公里、吨、元
Format 属性的数据显示格式
Lowercase 属性的赋值全部变为小写字母
Uppercase 属性的赋值全部变为大写字母
Cannot modify 该属性一旦赋值不能再修改
List Of Values 属性赋值列表,除列表中的值,不能有其他的值
Label 属性列表值的标签
2.直接编写SQL语句的CHECK约束

img

添加表级别约束

双击实体进入,属性界面点击rules选项卡,点击create an object 选项,选中新建的object,右击点击属性

img

在常规选项卡中自定义约束名称,并把type改为constraint

在这里插入图片描述

然后选择expression选项卡,编写约束代码。

在这里插入图片描述

4.非空约束:
双击实体进入,属性界面点击column选项卡,选中要添加约束的字段名,右击点击properties(属性)点击勾选mandatory即可

在这里插入图片描述

5.默认值约束:

双击实体进入,属性界面点击column选项卡,选中要添加约束的字段名,右击点击properties(属性),点击基本检查选项卡,设置默认值。
在这里插入图片描述

补充:列和表级别约束的区别:

**(1)列级约束:**只能应用于一列上。

**表级约束:**可以应用于一列上,也可以应用在一个表中的多个列上。

(**即:**如果你创建的约束涉及到该表的多个属性列,则必须创建的是表级约束(必须定义在表级上);否则既可以定义在列级上也可以定义在表级上此时只是SQL语句格式不同而已)

**(2)列级约束:*包含在列定义中,直接跟在该列的其它定义之后 ,用空格分隔;不必指定列名

​ ***表级约束:***与列定义相互独立,不包含在列定义中;与定义用‘,’分隔;必须指出要约束的列的名称

(因为在创建列级约束时,只需将创建列约束的语句添加到该字段(列)的定义子句后面;而在创建表级约束时,需要将创建表级约束的语句添加到各个字段(列)定义语句的后面,因为并不是每个定义的字段都要创建约束,所以必须指明需要创建的约束的列名。)

二、遇到模型检查出错 name uniqueness

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SrK43c3a-1612450329408)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20210204220941818.png)]

1.使用Automatic Correction

右键错误行,菜单中选择Automatic Correction,自动更正错误。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQotJnlg-1612450329410)(http://c-xuan.com/img/posts/ConstraintNameUniquenessProblem-3.png)]

这样Constraint name 就会自动编号处理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtcuZkK9-1612450329413)(http://c-xuan.com/img/posts/ConstraintNameUniquenessProblem-4.png)]

2.手动修改Constraint name

在外键引用编辑页面,点击Constraint name最右面的那个头像,然后修改Constraint name名称就可以了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rHl3rpmv-1612450329419)(http://c-xuan.com/img/posts/ConstraintNameUniquenessProblem-5.png)]

虽然可以解决问题,但感觉治标不治本。仔细看自动生成的Constraint name,应该是有一个模版,根据名称模板自动生成的。只要找到这个名称模板,根据自己的规则修改下不就好了。所以给出第三种处理方法。

3.修改引用名称模板

菜单项 数据库(Database)->Edit Current DBMS…
找到Scipt->Objects->Reference->ConstName节点,看到Value值就是自动生成的引用名称模板,具体含义就不解释了,对比下实际生成的引用名称就明白了,我改成 FK*%REFR% ,让自动生成的名称就是外键编辑窗口中自定义的Code名称加个FK*前缀就行了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDCL0eRX-1612450329421)(http://c-xuan.com/img/posts/ConstraintNameUniquenessProblem-6.png)]


三、一个表的关键字的字段名称,不能被其他表使用

原因:工具栏里Tools 列内容被设置成了唯一

解决方法:

Tools -> Model options 中 unique code 不要选中,就行了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NC8GWrZL-1612450329423)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20210204223006159.png)]


四、 概念模型->逻辑模型->物理模型

概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经过分析和总结,提炼出来的用以描述用户业务需求的一些概念的东西。如销售业务中的“客户”和“定单”,还有就是“商品”,“业务员”。 用USE CASE来描述就是:“业务员”与“客户”就购买“商品”之事签定下“定单”。(此时可以不包含属性,只有实体集,联系集的分析结构)

  1. 概念数据模型是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,它以数据类的方式描述企业级的数据需求,数据类代表了在业务环境中自然聚集成的几个主要类别数据。

  2. 概念数据模型的内容包括重要的实体及实体之间的关系。在概念数据模型中不包括实体的属性,也不用定义实体的主键。这是概念数据模型和逻辑数据模型的主要区别。

  3. 概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系。

逻辑模型就是要将概念模型具体化。要实现概念模型所描述的东西,需要那些具体的功能和处理那些具体的信息。这就到了需求分析的细化阶段。还以销售业务为例:“客户” 信息基本上要包括:单位名称,联系人,联系电话,地址等属性;“商品”信息基本上要包括:名称,类型,规格,单价等属性;“定单”信息基本上要包括:日期 和时间属性。并且“定单”要与“客户”,“业务员”和“商品”明细关联。
系统需要建立几个数据表:业务员信息表,客户信息表,商品信息表,定单表。
系统要包括几个功能:业务员信息维护,客户信息维护,商品信息维护,建立销售定单 。
以上这些均属于建立逻辑模型,这些说明只表明系统要实现什么,但怎样实现,用什么工具实现还没有讲,后者属于物理模型范围。

  1. 逻辑数据模型反映的是系统分析设计人员对数据存储的观点,是对概念数据模型进一步的分解和细化。逻辑数据模型是根据业务规则确定的,关于业务对象、业务对象的数据项及业务对象之间关系的基本蓝图。

  2. 逻辑数据模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键,指定实体的外键,需要进行范式化处理。

  3. 逻辑数据模型的目标是尽可能详细的描述数据,但并不考虑数据在物理上如何来实现。

  4. 逻辑数据建模不仅会影响数据库设计的方向,还间接影响最终数据库的性能和管理。如果在实现逻辑数据模型时投入得足够多,那么在物理数据模型设计时就可以有许多可供选择的方法。

物理模型就 是针对上述逻辑模型所说的内容,在具体的物理介质上实现出来。如:数据库使用SQL Server 2000,这样就可以编写具体的SQL脚本在数据库服务器上将数据库建立起来。其中包括业务员信息表,客户信息表,商品信息表,定单表。客户端使用VS开 发工具,那么在工作站上用VS建立起功能菜单,包括:业务员信息维护,客户信息维护,商品信息维护,建立销售定单等功能,并用工具将每一个功能编码实现。

  1. 物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。

  2. 物理数据模型的内容包括确定所有的表和列,定义外键用于确定表之间的关系,基于用户的需求可能进行发范式化等内容。在物理实现上的考虑,可能会导致物理数据模型和逻辑数据模型有较大的不同。

  3. 物理数据模型的目标是指定如何用数据库模式来实现逻辑数据模型,以及真正的保存数据


五、数据库建模的六个步骤

1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。


六、概念模型的设计- conceptual data model

1.概念模型的表示方法

E-R图主要是由实体、属性和联系三个要素构成的。在E-R图中,使用了下面四种基本的图形符号。

2.确定系统实体、属性及联系
系统分析阶段建立数据字典和数据流程图->建立概念模型->逻辑模型->物理模型
利用系统分析阶段建立的数据字典,并对照数据流程图对系统中的各个数据项进行分类、组织,确定系统中的实体、实体的属性、标识实体的码以及实体之间联系的类型。

在数据字典中“数据项”是基本数据单位,一般可以作为实体的属性。“数据结构”、“数据存储”和“数据流”条目都可以作为实体,因为它们总是包含了若干的数据项。作为属性必须是不可再分的数据项,也就是说在属性中不能包含其他的属性。

3.确定局部(分)E-R图

根据上面的分析,可以画出部分实体-联系图。

在这些实体中有下画线的属性可以作为实体的码,这几个实体之间存在着1:1、l:n和m:n几种联系。

4.集成完整(总)E-R图

各个局部(分)E-R图画好以后,应当将它们合并起来集成为完整(总)E-R图。在集成时应当注意如下几点:

(1)消除不必要的冗余实体、属性和联系。

(2)解决各分E-R图之间的冲突。

(3)根据情况修改或重构E-R图。


七、逻辑结构设计 - logical data model

逻辑结构设计的任务,就是把概念结构设计阶段建立的基本E-R图,按选定的管理系统软件支持的数据模型(层次、网状、关系),转换成相应的逻辑模型。这种转换要符合关系数据模型的原则。

E-R图向关系模型的转换是要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码。这种转换一般按下面的原则进行:

(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但是关系的码会根据联系的类型变化,如果是:

1:1联系,两端实体的码都成为关系的候选码。

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

为关系,并确定这些关系的属性和码。这种转换一般按下面的原则进行:

(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但是关系的码会根据联系的类型变化,如果是:

1:1联系,两端实体的码都成为关系的候选码。

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

m:n联系,两端实体码的组合成为关系的码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值