数据库设计
来源:互联网 发布:数据归一化啥意思 编辑:程序博客网 时间:2024/06/14 23:36
数据库设计
一 软件开发周期
1 需求分析阶段(非常粗略东西 作为开发人员非常茫然 不知道如何入手)(需求规格说明书)
弄清项目客户需要什么东西 什么时候完成 达到什么质量
2 概要设计阶段:(将客户需要东西 转换成图形的格式(ER图) 开发人员慢慢理解需要开发东西 )
【数据库设计人员(DBA)|开发人员】将ER图转换成 概念模型图(表) 【架构设计人员(架构设计师)|开发人员】(使用的技术+如何实现技术+原型)
3 详细设计阶段: 将E-R图转换为多张表(物理模型),进行逻辑设计,并且应用数据库的三大范式进行审核(将设计的表物理化到磁盘);
4 代码的编写阶段:选择具体数据库进行物理实现,并编写代码实现前段应用;
5 软件测试阶段
6 安装部署
二 数据库设计
1 会使用工具设计概念模型图
E (Entity) 对象-(数据 - 属性 - 列)
R (RelationShip)对象和对象之间的关系
三种关系:
- 一对一(1个人 1个身份证)
- 一对多(1用户 发表多篇文章 某篇文章只能属于一个用户 )
多对多(1用户-多个权限 ,某个权限-多个权限)
如何确定双方实体的关系 主表 + 从表 1对1 主表中的任意一条数据 只能在从表中 存在一条数据对应 从表中的任意一条数据也只能在主表中找到一条数据对应 1对多 主表中的任意一条数据 可以在从表中找到多条数据对应 但是从表中任意一条数据只能 在主表中找到一条数据对应 多对多 主表中的任意一条数据 可以在从表中找到多条数据对应 从表中任意一条数据只能 在主表中找到多条数据对应 分析员工表和部门表的关系 员工表 主表 部门表 从表 多对一
三 powerdesigner应该注意的
1 oracle关键字 默认带有双引号 必须去除
选中物理模型图 –数据库- edit current dbms - script -sql - format -case sensitivity usingquote 勾选no
在表中体现关系 1对1 在任何一张表中添加对方的主键作为外键 并且在外键列上加上唯一约束 1对多 在多的一方的表中添加对方的主键作为外键 多对多 产生一张新表 新表中存在两个字段 这两个字段就是两张表的主键(联合组件)
三 ER不同的设计体现
概念模型
设计的是实体(一定要有P (唯一标识符)),属性,关系(1-1 。。。1.n)
物理模型
可以根据概念模型生成的
设计的是表 列 主外键关系+约束
直接设计数据库的表 必须满足某些条件
这些条件归纳为3条 (三范式)
第一范式 所有的列都是不可再分的单元的
第二范式 一个表只能描述一件事情 表中的所有的列 都必须依赖主键(直接和间接依赖 )
第三范式 一个表中任意的字段不能间接依赖主键
要求 一般的的数据库设计 一定要满足 第一范式和第二范式 不要求满足第三范式
冗余问题 不满足第三范式 但是提高了查询的性能
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- 数据库设计
- POJ 3311 Hie with Pie 状压dp,tsp
- 怎么应用vertical-align,才能生效?
- Nginx服务器的进程
- hdu 4405 概率dp
- VirtualBox之Cannot register the hard disk
- 数据库设计
- script无素
- JavaScript(js)
- MyBatis逆向工程
- myeclipse快捷键
- MySQL数据库的安装和配置
- LeetCode-30-Substring with Concatenation of All Words 暴力+Map灵活数据结构
- 【leetcode】160. Intersection of Two Linked Lists(Python & C++)
- 最长上升子序列(LIS)长度的O(nlogn)算法