StanfordDB class自学笔记 (10) Unified Modeling Language

UML Data Modeling

如果我们创建一个数据库在关系系统中数据库将由关系组成。一般我们不是直接设计关系!数据库设计师,我们会在这里画出来的,使用更高级别的设计模型。然后那个模型就会出现通过类似转换器,这个通常可以是自动的将翻译的过程更高级别的模型进入由数据库系统实现的关系。

高级别数据库设计

  • E/R模型使用了非常久的时间,也非常的流行,不过UML正在兴起!
  • 两者都是图形化的
  • 两者都可以被自动的转化成relation

UML模型的五个特点概念

Classes

这个概念不像relation中的概念,更像是编程语言中面向对象的概念

Associations

类似两个class中有一定的关系存在(用一个箭头,让设计者知道有这样的关系)

多重association

下面是一个多重association的例子

relation之间的类型:主要是一对一、一对多、多对多、默认的是1对1。

Association Classes

association classes 的用途就是给我们原有的class提供额外的信息

但是有时候其实我们不需要association class

self-association

SubClass

subclass的术语和性质

complete:every object in the super class is in at leat one sub class

disjoint: a sub class relationship is known as disjoint if every object is in at most one subclass.

Composition & Aggregation

这里的aggregation 和 sql中的aggregation不是一个概念,要自己注意

composition用一个实心的菱形表示,表示某个class属于另一个class 

aggregation用一个空的菱形表示,说的是某个class可能属于另一个class

 

UML to Relations

这一部分讲的是UML转换到Relations

Classes 转化

每一个class变成了一个relation,并且pk ->primary key

 

Association 转化

如下图中的apply就是association,他是一种 Relation with key from each side,即连接两边pk的attribute的一种Relation!

Keys for Association Relations

实际上association不一定需要,当有0...1或者1...1关系在一边的时候,就可以把这边的pk属性放在另一边(对应关系比如*)。

看下图中的applied的association class是解决student中的SID与College中的cName,实际上如果每个学生只能申请一个大学或者不申请大学,那么我们就可以在student类中加上cName,从而去掉Applied这个class。

 

Association Classes转化

这个在上面也提到过了,这个association class必须要两边的primary key ,还可以自己添加一些attribute!转化成的relation就如下图粉色笔记所示。

Self-Associations 转化

注意下图关系中的*号,代表两边都是任意数目!


 

下图中注意satellite是一个key,home不是key!

Sub-Class

subclass的转换大致有三种,如下图,选择哪一种要根据?提到过的subclass之前的关系!

  • 严重的overlapping subclass relation的话,换句话说,就是一个object出现在多个subclass中,这时候我们选取(3)会比较合适
  • 如果subclass的relation是disjoint,并且是complete的话,complete是指在superclass的object至少在一个subclass中,这样选取(2)

可以看看老师讲的例子加强理解!注意老师讲了一点,subclass可以自动继承superclass的key

 

Composition & Aggregation

 

 

后记:上次曾经看到国内字节跳动面经,在数据库方面面试官提到了E/R模型,老师在本次课提到了这个模型,但是没详细介绍。

转载一篇我觉得讲的关于E/R模型 还算清楚的文章:https://www.cnblogs.com/HongjianChen/p/10696135.html

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值