博客
关于我
【数据库】了解设计数据库的步骤
阅读量: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/

你可能感兴趣的文章
Navicat报错connection is being used
查看>>
Navicat报错:1045-Access denied for user root@localhost(using passwordYES)
查看>>
Navicat控制mysql用户权限
查看>>
navicat操作mysql中某一张表后, 读表时一直显示正在载入,卡死不动,无法操作
查看>>
Navicat连接mysql 2003 - Can't connect to MySQL server on ' '(10038)
查看>>
Navicat连接mysql数据库中出现的所有问题解决方案(全)
查看>>
Navicat连接Oracle出现Oracle library is not loaded的解决方法
查看>>
Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
查看>>
Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
查看>>
navicat连接远程mysql数据库
查看>>
Navicat通过存储过程批量插入mysql数据
查看>>
Navicat(数据库可视化操作软件)安装、配置、测试
查看>>
navigationController
查看>>
NB-IOT使用LWM2M移动onenet基础通信套件对接之APN设置
查看>>
NBear简介与使用图解
查看>>
Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
查看>>
Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
查看>>
NCNN中的模型量化解决方案:源码阅读和原理解析
查看>>
NCNN源码学习(1):Mat详解
查看>>
nc命令详解
查看>>