从实体和关系角度看 PowerDesigner 设计数据库模型

简介: 从实体和关系角度看 PowerDesigner 设计数据库模型太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

从实体和关系角度看 PowerDesigner 设计数据库模型

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


还是从主体和关系出发,我们进行数据库建模。

和面向对象的 UML 建模有类似之处,只不过数据库建模是表间关联及最小范畴的界定。

当然五个泛式在数据库设计过程中的指导作用是不可或缺的,然而,如果你真的完全遵照五个范式设计出了数据库模型,那么你的设计本身就失败了!

因为那个结果一定是不太好用的,趋于极致的往往就是不合常理的。


适当的冗余,对于时间与空间的权衡,才是真正的数据库设计所遵循的至上法则,这其中无不时刻涉及实际业务环境因素,因地置宜,因时不同,因人而异!


马列矛盾理论告诉我们:数据库设计就是‘主体’和‘关系’的设计

这一篇中传达了主体和关系的概念。


在我所涉及到的数据库设计工具中,最喜欢 MySql WorkBench,其次是 ERWin,最后才是 PowerDesigner。

而 ERWin 当年就很难下到,现在下到了,居然没有 SQLSERVER2000的 DBLib 无法连接 SQLSERVER2008,这真有点扯了,那也是没办法的事情,有空儿再试试。


目前只能求其次,用 PowerDesigner 了。

相对 MySQL WorkBench 来讲,表的自增长 id,还是 MySQL WorkBench 做得好些,每个表都是 id,插入其它表做外键时,自动将表名加在 id 前。


即然开始用 PowerDesigner 了,那么就看看它的好吧,一步一步来做设计。


首先,我们得了解 PowerDesigner  中有概念模型、逻辑模型和物理模型,可以在概念模型中设计,并逐步生成后续两者,再由物理模型生成建库脚本或直接创建库。

反过来,从现有数据库反向生成物理模型,也是可以的。


  


上面 PowerDesigner  中表的设计,Name 和 Code 暂时都使用英文,因为我还不知道 Name 用中文,最后生成的数据库如何用 Code 中的英文。

这里的 Convert name into codes 选项勾后,也不起作用,不知是何原因。有了解的朋友,敬请指教。


从上面看出,表名 student ,自增长 id 也得加上表名 student_id,主要是这个名字全局唯一,所以都用 id 就会冲突。


下面 school 和 student 两表的关系是依赖关系,即学生因上了某所学校而称之为学生。

但实际用时,为了降低约束,不让 school_id 在 student 表中作为主键,那么 Dependent 不勾选,Mandatory 表示强制,即一个学生必须有一个学校,而学校至少有一个学生,下图中默认允许学校没学生了,新开张的吧偷笑


上面这种关系线,是一对多的关系,线即代表外键,在逻辑图和物理图中会生成这个外键 。

另一种是,一条关系线代表一种多对多的关系,会转换成一张表。


多出一张 relationship_2 的表,其中关联的两张表的主键形成了复合主键。


最终,核心在于考虑好表间的关系,这才是主要的,至于这个工具如何用,那都是其次了。




目录
相关文章
|
1月前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
161 0
|
1月前
|
机器学习/深度学习 存储 安全
数据库模型:层次模型、网状模型、关系模型
数据库模型:层次模型、网状模型、关系模型
|
9月前
|
存储 关系型数据库 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移1
Django创建应用、ORM的进阶使用及模型类数据库迁移1
79 0
|
9月前
|
存储 数据可视化 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移3
Django创建应用、ORM的进阶使用及模型类数据库迁移3
56 0
|
9月前
|
关系型数据库 MySQL 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移2
Django创建应用、ORM的进阶使用及模型类数据库迁移2
53 0
|
9月前
|
人工智能 关系型数据库 分布式数据库
沉浸式学习PostgreSQL|PolarDB 16: 植入通义千问大模型+文本向量化模型, 让数据库具备AI能力
本文将带领大家来体验一下如何将“千问大模型+文本向量化模型”植入到PG|PolarDB中, 让数据库具备AI能力.
24637 19
沉浸式学习PostgreSQL|PolarDB 16: 植入通义千问大模型+文本向量化模型, 让数据库具备AI能力
|
29天前
|
SQL 存储 调度
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
一个合适的执行模型对于提高查询效率和系统性能至关重要。本文全面剖析 Apache Doris Pipeline 执行模型的设计与改造历程,并在 2.1 版本对并发执行模式与调度模式进一步优化,解决了执行并发受限、执行及调度开销大等问题。
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
|
8天前
|
存储 XML SQL
数据库建模之EAV模型
数据库建模之EAV模型
16 1
|
1月前
|
数据采集 存储 人工智能
理解词向量、向量数据库、嵌入模型、数据预处理和本地知识库
本文介绍了词向量、向量数据库、嵌入模型和构建本地知识库等内容。
|
7月前
|
SQL 关系型数据库 MySQL
07 Django模型 - ORM简介及MySQL数据库的使用
07 Django模型 - ORM简介及MySQL数据库的使用
43 0