博客
关于我
【数据库】了解设计数据库的步骤
阅读量:320 次
发布时间:2019-03-04

本文共 2368 字,大约阅读时间需要 7 分钟。

一、了解设计数据库的步骤(数据库生命周期较软件长)

Why  设计数据库 ?         *节省数据空间   ---> (数据冗余---数据重复的现象)                                                |                                                |                                          减少冗余的方法:分类         * 保证数据完整性 --->  (数据的准确性)【存在不正确、不准确的数据,数据库失去了完整性】                                                       |                                                       |                                               各种约束(主键、check)          *方便数据库应用系统的开发现实世界(抽取相同实体的数据) ---> 信息世界 ---> 数据库模型图 ---> 数据库                                (建模)    (规范化--范式)==需求分析==:分析客户业务和数据处理需求==概要设计==:设计数据库的E-R模型图,确认数据需求的正确和完整==详细设计==:应用三大范式审核数据库结构==代码编译==:物理实现数据库,代码编译实现应用(运行脚本初始化)==软件测试==:.....==安装部署==:.....(根据日志定点将数据库数据备份恢复)

收集信息 — 标识实体 — 绘制E-R图(E-R概念图转化为关系模型)—

1.收集信息:交谈了解客户需求

2.标识实体:标识数据库要管理的关键对象

标识实体的各自属性
标识实体之间的关系(客房和客人之间由主从对应关系)

3.绘制E-R图

实体— 长方形、(Visio) 关联关系—菱形、属性—椭圆

映射基数关系:一对一、一对多、多对多、(多对一)E-R概念图转化为关系模型:   一对一:1.实体A中主关键字加入到B实体中对应的关系中,若联系有属性一并加入           2.实体B中主关键字加入到A实体中对应的关系中,若联系有属性一并加入           3.建立第三个关系,关系中包含两个实体集的主关键字,若联系有属性一并加入(当关系也有属性时必选)      一对多:1.可以将一的一方实体的主键放入多的一方实体中作为“外键”   多对多:1.必须建立“联系”的单独关系,用来联系双方实体,该关系属性中至少包含两个实体的关键字。   *关系数据库源于关系代数   *外键---波浪线,主键---下划直线

4.数据规范化(范式):

仅有好的RDBMS不足以避免数据冗余,必须建立好的表结构!!!          范式是具有最小冗余的表结构~,依赖函数~          第一范式(1st NF -First Normal Form)                  确保每列的原子性(每一列不可再分的最小数据单元
<最小的原子单元 1nf>
),数据库中的每个表格必须满足的!!! 例:中国北京市 ----> 中国 + 北京 第二范式(2st NF -S.... Normal Form) 在第一范式的基础上,并除主键以外的其他列都依赖于该主键。并且要求每个表只描述一件事。(主键针对分成的表) 例: 房间号 客房状态编号 客房状态 ---> 客房状态名称 客房类型 床位数 客房类型编号 入住人数 ---> 客房类型名称 价格 第三范式(3st NF -T.... Normal Form) 在第二范式基础上,并除主键以外的其他列都不传递依赖于主键。 例: 房间号 客房状态ID 客房状态 ---> 客房状态名称 入住人数 客房类型 床位数 客房类型ID 入住人数 ---> 客房类型名称 价格 价格 床位数 处理数据冗余异常: 更新异常 添加异常 删除异常

5.规范化和性能的关系

通过给定表中添加额外字段,以减少搜索信息的时间
通过给定表中添加计算列,以方便查阅


转载地址:http://crhq.baihongyu.com/

你可能感兴趣的文章
mysql长事务
查看>>
mysql问题记录
查看>>
MySQL集群解决方案(1):MySQL数据库的集群方案
查看>>
MySQL集群解决方案(4):负载均衡
查看>>
MySQL集群解决方案(5):PXC集群
查看>>
MySQL面试宝典
查看>>
WAP短信:融合传统短信和互联网的新型通信方式
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
Mysql面试题精选
查看>>
MySQL面试题集锦
查看>>
mysql面试题,存储引擎InnoDB和MyISAM
查看>>
mysql面试题:为什么MySQL单表不能超过2000W条数据?
查看>>
mysql面试题:创建索引时会不会锁表?
查看>>
mysql面试题:高度为3的B+树可以存放多少数据?
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>
MySQL高可用之——keepalived+互为主从
查看>>
MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
查看>>
MySQL高可用解决方案
查看>>