当前位置: 首页 > 编程日记 > 正文

三、概念数据模型CDM(Conceptual Database Model )

最后整理一下正确的是:

脚本1:

.set_value(_First, true, new) 
.foreach_part(%Name%, "'#'") 
.if (%_First%) 
.delete(%CurrentPart%) 

.enddelete
.set_value(_First, false, update) 
.else 
%CurrentPart% 
.endif 
.next

这个例子是把Name内容的#号后边的内容当作Code.

脚本2:

.set_value(_First, true, new) 
.foreach_part(%Name%, "'#'") 
.if (%_First%) 
%CurrentPart% 
.set_value(_First, false, update) 
.endif 
.next

这个例子是把Name内容的#号前边的内容当作Code.

另外在使用这个功能时候最好把name/code自动复制功能打开。Tool——Genneral——Options Dialog——Name to Code mirroring.默认就是打开的。

一、概念数据模型简介

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

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

CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。

1)数据结构表达为实体和属性;

2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;

3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等)

二、示例

4.1选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。



4.2 完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍。

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


五、定义实体

5.1、创建实体

1)在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图所示

2)双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。


Name:是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。在一个模型当中,实体的名字不能重复。

Code:在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名。

Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。

5.2、添加实体属性

1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。



注意:

数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code 和Allow reuse选项有关。

P 列表示该属性是否为主标识符;

D列表示该属性是否在图形窗口中显示;

M列表示该属性是否为强制的,即该列是否为空值。

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

按“Crtl+U”呼出“定制列过滤器”的窗口,可以根据自己的喜好和实际需要选择那些列出现在窗口中,那些隐藏。使用快捷键“Crtl+E”可以允许或者禁止当前过滤器。

2)在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。


5.3、定义属性的检查约束

1)定义属性的标准检查

标准检查约束是一组确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项卡。



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

参数

说明

Minimum

属性可接受的最小数

Maximum

属性可接受的最大数

Default

属性不赋值时,系统提供的默认值

Unit

单位,如公里、吨、元

Format

属性的数据显示格式

Lowercase

属性的赋值全部变为小写字母

Uppercase

属性的赋值全部变为大写字母

Cannot modify

该属性一旦赋值不能再修改

List Of Values

属性赋值列表,除列表中的值,不能有其他的值

Label

属性列表值的标签

2)定义属性的附加检查

当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER% 几个变量来定义Standard和Rule,如图所示



%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%:

在Standard Check中定义的Minimum 和Maximum、List values 、uppervalues、lowervalues

%RULES%:

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

六、标识符

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

6.1、定义主、次标识符

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



2)选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示


3)选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符就行了。


七、数据项

数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。

注意:模型中允许存在没有附加至任何实体上的数据项。

7.1 新建数据项

1)使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”按钮,创建一个新数据项,如图所示



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

7.2 数据项的唯一性代码选项和重用选项

使用Tools--->ModelOptions->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(Allow Reuse)。

注意:

如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,一个数据项可以充当多个实体的属性。

7.3 在实体中添加数据项

1)双击一个实体符号,打开该实体的属性窗口。
2)单击Attributes选项卡,打开如下图所示窗口



注意:Add aDataItem 与 Reuse aDataItem的区别在于

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

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

八、 联系

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

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

按照实体类型中实例之间的数量对应关系,通常可将联系分为4类:

一对一(ONE TO ONE)联系、

一对多(ONE TO MANY)联系、

多对一(MANY TO ONE)联系

多对多联系(MANY TO MANY)。

8.1、建立联系

在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。

 

在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击图形窗口,释放Relationship工具。如下图所示


在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。


8.2、 四种基本的联系

即一对一(ONE TOONE)联系、一对多(ONE TO MANY)联系、多对一(MANYTO ONE)联系和多对多联系(MANY TO MANY)。如图所示



8.3、 其他几类特殊联系

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

8.3.1 标定联系和非标定联系:

每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系,也叫依赖联系。反之称为非标定联系,也叫非依赖联系。

注意:

在非标定联系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个实体必须至少有一个标识符。而在标定联系中,一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符。

换句话来理解,在标定联系中,一个实体(选课)依赖一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。


8.3.2 递归联系:

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

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



联系符号说明:

在Power Designer中,关系符号靠近实体端的一个“横线”代表强制性约束,“空心圆圈”代表无强制约束,即这一方可以无对象关联;“非分岔”线代表为“1” 的关系,“分岔”线代表“多”的关系。以上四个符号共可以组合出16种关系(包含反向)。其中“多对多”的关系一般通过给出一个中间实体来进行分解,所以在许多概念图中,是看不到实际的“多对多”的关系存在的。

转载于:https://www.cnblogs.com/aaa6818162/archive/2012/08/06/2625724.html

相关文章:

【第11周复盘】小朋友们 100% 闯关成功!

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

keepalived and heartbeat

Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);Heartbeat是基于主机或网络的服务的高可用方式;keepalived的目的是模拟路由器的双机heartbeat的目的是用户service的双机lvs的高可…

ui设计师要养成哪些职场习惯呢?

很多参加UI设计培训学完后的同学,都比较担心后期找工作的问题,不知道自己在职场中应该如何应对,小编本期为大家详细的介绍一下ui设计师要养成哪些职场习惯呢?希望能够帮助到大家在职场中更好的表现。 UI设计培训分享:ui设计师要养…

Html-Css 从入门到放弃(一)基础知识

注意要点: 1、ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。 2、class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。 3、不要在属性值与单位之间留有空格。…

六一:如何在Datawhale开源学习小程序中管

我们的组队学习马上就要开营了,本次组队学习与以往不同的是小程序中增加了队伍管理的功能。 为了方便大家组队,Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中队伍管理的教程。 一、进入课程详情界面 1、打开小程序主页后&#xff0c…

C#让windows程序只运行一次

方法一:使用Mutex来进行1.首先要添加如下的namespace: using System.Threading;2.修改系统Main函数,大致如下: bool bCreatedNew;//Create a new mutex using specific mutex nameMutex m new Mutex(…

java培训分享:学习Java需要什么软件

在参加java培训过程中学习java技术,需要用到很多辅助工具,这些辅助工具是具有多功能性和实用性的,从代码构建到bug压缩。学习这些工具可以帮助您提高代码的质量,并成为一个更高效的Java开发人员。那么具体学习Java需要什么软件呢?…

J2SE基础夯实系列之数组

java中经常使用的是数组,前一段时间突然忘记了怎么定义char类型的二位数组: char[][] c {{},{},{A,B,C},{D,E,F},{G,H,I},{J,K,L},{M,N,O},{P,Q,R,S},{T,U,V},{W,X,Y,Z},};这个是char型的二维数组,思考一下,如果是定义String的二…

【组队学习】【24期】Datawhale组队学习内容介绍

第24期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 零基础入门语音识别(食物声音识别)Docker教程数据挖掘实践(智慧海洋)集成学习(中)河北邀请赛(二…

centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)[连载之电子商务系统架构]...

centos5.6 (64bit)编译安装vsftpd-2.3.4的配置(两种用户登录)出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者:Jimmy Li关键词:电子商务,系统架构,vsftpd,本地用户登录,虚拟…

什么叫PMP?项目管理的本质是什么?

什么叫PMP?项目管理的本质是什么?相信有很多人现在对这个问题还不是非常了解,小编下面就为大家做下详细的介绍。 什么叫PMP?项目管理的本质是什么?什么叫PMP?PMP,中文全名是项目管理专业人士资格认证。 PMP是目前在项目管理这个领域认同度较高的一门…

基于C#的UDP协议的同步实现

一、摘要 总结基于C#的UDP协议的同步通信。 二、实验平台 Visual Studio 2010 三、实验原理 UDP传输协议同TCP传输协议的区别可查阅相关文档,此处不再赘述。 四、实例 4.1 采用socket实现UDP 由于UDP是一种无连接的协议。因此,为了使服务器应用能够发送和…

【直播】杨剑砺:数据可视化漫谈

数据可视化漫谈 目前 安泰第四届数据科学训练营 正在如火如荼的进行中。为了大家更好的学习,杨剑砺将为大家带来一场直播分享 —— 数据可视化漫谈。 直播信息 主讲人:杨剑砺,Datawhale成员,外企数据分析师。 直播时间&#xf…

service 与chkconfig

需要把启动脚本放到/etc/init.d/里面,还要加权限chmod x mysqld 本文转自flayber 51CTO博客,原文链接:http://blog.51cto.com/406647516/1919335,如需转载请自行联系原作者

从事软件测试为什么要学自动化?

软件测试要学习的知识是有很多的,虽然听起来简单,但是细节知识还是很多的,尤其是软件测试自动化这块,那么就有人问了,从事软件测试为什么要学自动化?来看看下面的详细介绍就知道了。 从事软件测试为什么要学自动化?首…

【直播】黎佳佳:音频数据分析以及特征提取

音频数据分析以及特征提取 目前 Datawhale第24期组队学习 正在如火如荼的进行中。为了大家更好的学习“零基础入门语音识别(食物声音识别)”的课程设计者 黎佳佳,将为大家带来一场直播分享——音频数据分析以及特征提取。 直播信息 主讲人&…

电机相电压重构

利用svpwm的输出和当前的直流母线电压,计算出相电压参考TI文档phase_volt_calc.pdf注:该文章未考虑死区和管压降的影响 转载于:https://www.cnblogs.com/iable/archive/2012/08/08/4206882.html

ui设计的文字怎样提高设计感呢?

相信很多做UI设计师的小伙伴们,在工作的时候经常会遇到一些瓶颈,例如设计的构思,文字的改动都是让人头疼的事情,下面小编本期就为大家分享一个ui设计的文字怎样提高设计感。 UI设计培训分享:ui设计的文字怎样提高设计感…

SSL之CA证书颁发机构安装图文详解

上一节我们说到,在验证公钥安全性时,是在CA机构颁发的包含用户的公钥及其身份信息的数字证书,数字证书由权威机构——CA签发。这个CA权威机构可以是自己的服务器也可以是国际公认的CA权威机构。下面我就来讲一下CA证书颁发机构 如果你需要在组织里发布ex…

【组队学习】【24期】零基础入门语音识别(食物声音识别)

零基础入门语音识别(食物声音识别) 开源内容: https://github.com/datawhalechina/team-learning-nlp/tree/master/FoodVoiceRecognition 比赛地址: https://tianchi.aliyun.com/competition/entrance/531887/introduction 基…

同时使用多网卡提升树莓派网络利用率

树莓派 3 自带的有线网卡是 100M 的,无线网卡是 72M 的,都比较慢。想提升网速的话,最直接的方法是使用 usb 网卡,千兆的有线网卡或者 450M 以上的 2.4GHz 无线网卡或者 5GHz 无线网卡。但因为树莓派 3 的 usb 接口是 2.0 的&#…

Python培训基础教程都教哪些

根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍。 Python培训基础教程都教哪些? 1、面向对象 类和对象、类的定义格式、添加和…

sqlce wp from查询语句详解

http://msdn.microsoft.com/zh-cn/library/bb383978(vvs.110).aspx from 子句(C# 参考) Visual Studio 2012其他版本此主题尚未评级 - 评价此主题[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。] 查询表达式必…

【直播】王茂霖:二手车交易价格预测-千变万化特征工程(河北高校数据挖掘邀请赛)

二手车交易价格预测-千变万化特征工程 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。04月20日晚…

微软在C# 8中引入预览版可空引用类型

微软已经为开发者提供了预览版的可空引用类型(Nullable Reference Type),想尝鲜的开发者可以尝试这个新特性,并提供反馈。\\预览版可空引用类型是Visual Studio 2017 15.5 Preview 4的Roslyn扩展,现在支持.NET框架&…

制作ui设计作品集要注意哪些

UI设计作品集的作用是非常大的,不要小看,它可以用来展示自身的UI设计实力,参加完UI设计培训后找工作当然也是非常重要的一个环节,下面小编就为大家详细的介绍一下制作ui设计作品集要注意哪些问题? UI设计培训分享:制作…

[转] 理解RESTful架构

FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高…

【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

CNN模型搭建、训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中。为了大家更好的学习“零基础入门语音识别(食物声音识别)”的课程设计者 陈安东和但扬杰,将为大家带来一场直播分享 —— CNN模型搭建、训练以及L…

参加Java培训需要注意哪些

想要学好java技术,靠自学是非常困难的,通过java培训机构进行系统的学习是最好的,那么参加Java培训需要注意哪些呢?来看看下面的详细介绍。 参加Java培训需要注意哪些?大概整理了下面几点。 1、要有与时俱进且完整沉浸的课程体系。 IT培训的…

JDBC操作MySQL Lob字段记实

JDBC操作MySQL Lob字段记实虽然Java的持久化框架多如牛毛,但都离不开JDBC技术,JDBC在某些时候是其他框架难以取代的。也是java操作数据库最根本的技术。上文写了JDBC操作DB2 Lob字段bug问题,为此,我还特意写了MySQL平台下的Lob字段…