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

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

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. ThinkPHP可以支持直接使用字符串作为查询条件

    ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来作为查询条件,因为会更加安全. 大理石平台哪家好 一.使用字符串作为查询条件 这是最传统的方式,但是安全性不高, ...

  2. 箭头函数报错:Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.

    解决:根目录新建babel.config.js加入如下内容 module.exports = { presets: [ "@babel/preset-env", "@ba ...

  3. JS高级特性

    一.JavaScript的同源策略 参考链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Same_origin_policy_fo ...

  4. python 读取excel Xlrd模块

    1. 安装xlrd模块 我使用pip安装: cmd ->切换到pip安装所在路径->pip install xlrd->回车 2. 使用 2.1:打开Excel表 导入模块:  im ...

  5. 凉凉了,Eureka 2.x 停止维护,Spring Cloud 何去何从?

    今年 Dubbo 活了,并且被 Apache 收了.同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布停止开发了.. 已经从 Dubbo 迁移至 Spring ...

  6. java基础之二维数组不定义列数

    有一种特殊的二维数组,它的行数确定,但是每行的列数不确定.这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化.举例如下: package day5; //第二种定义 ...

  7. java基础之BigInteger

    BigInteger类概述可以让超过Integer范围内的数据进行运算 构造方法 public BigInteger(String val) 成员方法: public BigInteger add(B ...

  8. 「loj#6261」一个人的高三楼

    题目 显然存在一个这样的柿子 \[S^{(k)}_i=\sum_{j=1}^iS^{(k-1)}_j\] 我们可以视为\(S^{(k)}\)就是由\(S^{(k-1)}\)卷上一个长度为\(n\)全是 ...

  9. Spring Cloud Config-Client 无法获取 Config-Server 在 github 上的配置文件的属性值,竟然是因为

    Spring Cloud Config-Client 无法获取 Config-Server 在 github 上的配置文件的属性值,竟然是因为!!! 2018年07月23日 16:33:25 一颗很菜 ...

  10. pg_hba.conf配置文件

    实例级别的权限由pg_hba.conf来控制,例如 : # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix doma ...