数据库设计(Database Design))

数据库设计
  • 数据库开发生命周期
    可行性分析→ 数据库设计(概念设计、逻辑设计、物理设计)→ 数据库实现 → 测试 → 维护
    主要看数据库设计
    1.概念设计(E/R图)
    独立于DBMS,不需要考虑物理结构。需要用户的需求规格说明。
    2.逻辑数据库设计
    需要明确数据库的类型(关系数据库?网状数据库?层次?等等),也不需要考虑物理细节。
    需要考虑映射关系:
    在这里插入图片描述
    从E/R模型变成关系模型的映射。
    从联系映射成关系(一个表),里面的属性是连接实体的码或是联系自带的属性。
    3.物理数据库设计
    存储结构、存取方法(顺序访问、随机访问),做到高效的存储和读取。
    在这里插入图片描述
    上图为三者的联系示意图。
  • E/R模型
    E/R模型静态地展示数据库结构的设计,包括了完整性约束但是不包括操作。
    E/R模型的一些元素:实体(Entity)、实体集(Entity Sets)、属性(Attributes)、属性取值范围(Attribute Domain)、码(Keys)、联系(Relationship)、联系类型(Relationship Type)
    1.实体集
    是一些拥有相同性质的实体组成的集合
    2.属性
    包括单属性和复合属性
    单属性:独立存在
    复合属性:两个属性以上,比如说地址(省、市、镇)。
    单值属性:单个值。
    多值属性:多个值,比如说,一个人可以拥有很多个手机号。
    派生属性:算出来的值
    3.码
    候选码(CK)、主码(PK)、备用码(AK)、复合候选码(Composite Key)
    E/R图
    实体集-长方形表示
    属性-椭圆表示
    主键-下划线
    联系-用菱形表示

在这里插入图片描述
多值属性用两个椭圆,虚线椭圆表示派生属性、属性再连出去椭圆表示复合属性。在这里插入图片描述
联系的类型
联系的元数:参与联系的实体集的个数。
(二元联系、三元联系、四元联系)
二元联系
一对一、一对多、多对多。
在这里插入图片描述
ER建模
1.划分实体集和属性
确认好实体、属性、联系
- 1.1尽可能把数据描述为属性,然后不需要进一步得描述,属性只和自己的实体有关系(除非是外键),一个实体可以拥有多个属性。
- 1.2联系的名称一般为动词;实体的名称一般为名词,实体名称不允许为“XX记录(信息、表、信息表、数据)”;实体1-联系-实体2,一般是一句完整的话,描述一个语义。
- 1.3多对多的relationship可以自带属性,把两个表的候选码拿出来+relationship自带的属性构成一张表。
设计的技术(Design Technology)
- 消除冗余
好的设计是没有冗余的
- 实体VS属性
实体,除了名称(PK),还应该有其他属性,就是实体至少应该有一个非主属性。
或者他是一个一对多或者多对多联系的多端,则它可以只包含一个主键,没有非主属性。(不过这样的话信息容易缺失,设计的表中还是至少得有三列
2.合并子ER图
把子ER图都合并起来,消除冗余然后生成一个完整的ER图
将子ER图一步步合并在一起
在这里插入图片描述
在这里插入图片描述
强化的ER模型
加入:
-子类(特殊化)/父类(泛化)(Isa)
-聚合(‘has-a’ or ‘is part of’)
-组合(a special form of aggregation)
1.Specialization(特殊化,找差异)/Generalization(泛化、找共同点)
前者就是最大差异(子类),后者就是最小差异(父类)。
Subclass = speacial case = fewer entites = more properties
在这里插入图片描述
在这里插入图片描述
2.Aggregation(聚合)
表示一种拥有或者一部分的关系,不具有相同的生命周期。
在这里插入图片描述在这里插入图片描述
3.Composition(组合)
具有相同的生命周期。
在这里插入图片描述

  • E/R模型转换成表格
    1.拆开所有的符合属性,确保所有的属性都是simple attribute
    2.用主键/外键表示联系,父端的主键拿出来给子端做外键。
    2.1父端/子端如何找
    在一对一联系中,查询次数多的作为子端,查询次数多的作为父端。
    在一对多联系里,“1”端指定为父端。
    多对多的联系中,就把两端的属性拿出来和联系带有的属性一起形成一张表。
    3.模式细化
    表格要有简单的意义,数据少量复制,尽可能少的空值,好的一个表现。
    需要用到规范化的内容。
    (详细的规范化内容介绍关系数据理论

    总结:数据库设计追求语义的明确、数据不要冗余、不要出现三种更新异常,E/R图的画法要规范以便于构造数据库的物理结构。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值