数据库建设的基本规律
三分技术 七分管理 十二分基础数据

阶段
需求分析阶段
概念设计阶段
逻辑设计阶段
物理设计阶段
数据库实施阶段
数据库维护阶段

1 需求分析

2 概念设计
形成概念模型

3 逻辑设计
将概念结构转变成为 数据模型

4 物理设计
存储结构 和 存储方法

5 实施阶段

6 维护阶段

需求分析
数字字典 数据结构 数据流 数据存储的描述

概念结构设计
ER 图 数据字典

逻辑结构设计
关系 非关系

物理结构设计
存储安排
存取方法选择
存取路经建立

数据库实施
数据库维护

7.2 需求分析

数据字典

1 数据项
数据项是不可再分的数据单位
是 元数据 不是数据本身
2 数据结构
数据结构反映了 数据之间的组合关系
一个数据结构可以由若干个数据项构成
也可以由若干个数据结构组成

3 数据流
是数据结构在系统内传输的路径

4 数据流的来源和去向

5 处理过程

7.3 概念结构设计

概念模型

E-R模型

两个实体间的联系由以下三种
1对1 联系
多对1
多对多

实体 举行
属性 椭圆形
联系 零星

扩展的 E-R 模型
ISA 联系
不相交约束和重叠玉树 子类符号中 加一个叉号 表示子类不可重叠
相反的 如果没有叉号就说明 这是可以重叠的

完备性约束

如果完全特化 使用双线连接 表示不可以 有 父类的任何实体

2 基数约束
0..1 1..*

3 partof 联系
部分联系

如果一个实体依赖于其他实体而存在 这个实体叫做 弱实体型
否则叫做 强实体型
如果一个实体中没有可以作为码的 存在 就成为了弱实体型

双矩阵表示 弱实体性

7.4 逻辑结构设计

E-R 图 向关系模型的转换
1
1:1 的联系可以转换为一个独立的关系模式
2
1:n 的联系可以转换为一个 独立的关系模型
关系的码 是 N 端实体的码
3
m:n 的联系可以转换伪 一个独立的关系模型
4
三个或三个以上的多元联系可以转换为一个 关系模式
5
具有相同码的关系模型可以合并

7.4.2 数据模型的优化

2
确定数据依赖
2
对于数据依赖进行极小化处理
3
确定各个关系模式 分别属于第几凡是
4
根据需求判断模式是否合适

5 对关系模式进行必要的分解
水平分解是指 把元组分成若干个子集(常用个元组分在一起 来优化查询速度
垂直分解是指 把属性分成若干的子集

7.4.3 设计用户子模型

1 可以利用视图 这一功能设计来完成 定义用户需要的外模式

7.5 物理结构设计

关系模式存取方法选择
常用的存取方法是 索引方法和 聚簇方法

数据库设计 ch.7的更多相关文章

  1. 数据库设计中的Soft Delete模式

    最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...

  2. 使用django开发博客过程记录1——数据库设计

    1.数据库设计 2.插入测试数据 3.配置相关问题 1.数据库设计 数据库有简单的三张表:Article.Category.Tag以下是代码 # -*- coding:utf-8 -*- from _ ...

  3. 基于SSM的租赁管理系统0.3_20161225_数据库设计

    数据库设计 1. 概念模型 2. 类模型 3. 生成SQL use test; /*========================================================== ...

  4. 第二天ci项目规划 数据库设计

    第二天ci项目规划 数据库设计 商品 + 用户 + 订单 数据库设计思想和方法 关于商品品牌 ,分类 ,属性 如何表示 用一个字段 还是再设计一张表 品牌和商品 是一种信息 还是两种信息 一张表一般只 ...

  5. 优化MySchool数据库设计之【巅峰对决】

    优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...

  6. 从零开始编写自己的C#框架(9)——数据库设计与创建

    对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...

  7. 数据库设计(1/9):数据元(Data Elements)

    对于设计和创建数据库完全是个新手?没关系,Joe Celko,世界上读者数量最多的SQL作者之一,会告诉你这些基础.和往常一样,即使是最专业的数据库老手,也会给他们带来惊喜.Joe是DMBS杂志是多年 ...

  8. ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

    最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用 ...

  9. 优化MySchool数据库设计总结

    数据库的设计   一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...

随机推荐

  1. Vue.js项目部署到服务器

    1.申请服务器 2.配置Xshell 3.在服务器手动建自己的根目录,把根目录的文件名复制给项目里面config下面的index.js 4.项目开始打包 npm run build 5.打包完成之后把 ...

  2. 深入浅出 Java Concurrency (28): 线程池 part 1 简介[转]

    从这一节开始正式进入线程池的部分.其实整个体系已经拖了很长的时间,因此后面的章节会加快速度,甚至只是一个半成品或者简单化,以后有时间的慢慢补充.完善. 其实线程池是并发包里面很重要的一部分,在实际情况 ...

  3. iPhoneX适配随笔

    1.安全区域 2.NavigationBar 和 TabBar的xib示意图 两个View要相同的效果,坐标不同 UIButton *btn = [UIButton buttonWithType:UI ...

  4. 转:Wireshark基本介绍和学习TCP三次握手

    源地址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS ...

  5. line-height影响排版

    父级div设置了line-height值,子级div会继承line-height.如果不想子级元素继承,给子级元素设置line-height:normal.

  6. Leetcode134. Gas Station加油站

    在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中的一个加 ...

  7. 实现一个koa-logger中间件

    //koa-logger.js module.exports = async(ctx,next)=>{ const start = new Date().getTime() // 中间件异步处理 ...

  8. hdu6277

    hdu6277结论题 #include<iostream> #include<cstdio> #include<queue> #include<algorit ...

  9. vue.js_10_vue的路由

    1.vue-router的基本使用 1>安装vue-rouder路由模块 <script src="js/vue-2.4.0.js"></script> ...

  10. 原生微信小程序数据渲染

    一直在写vue,第一次接触微信小程序,还是原生,最开始做的时候真的很闹心啊啊啊啊啊啊啊啊啊啊啊啊!!所以最近大概更新的都是微信小程序原生的内容了~~么么哒!!一定会继续努力的!!tips:在小程序项目 ...