数据库设计 ch.7
数据库建设的基本规律
三分技术 七分管理 十二分基础数据
阶段
需求分析阶段
概念设计阶段
逻辑设计阶段
物理设计阶段
数据库实施阶段
数据库维护阶段
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的更多相关文章
- 数据库设计中的Soft Delete模式
最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...
- 使用django开发博客过程记录1——数据库设计
1.数据库设计 2.插入测试数据 3.配置相关问题 1.数据库设计 数据库有简单的三张表:Article.Category.Tag以下是代码 # -*- coding:utf-8 -*- from _ ...
- 基于SSM的租赁管理系统0.3_20161225_数据库设计
数据库设计 1. 概念模型 2. 类模型 3. 生成SQL use test; /*========================================================== ...
- 第二天ci项目规划 数据库设计
第二天ci项目规划 数据库设计 商品 + 用户 + 订单 数据库设计思想和方法 关于商品品牌 ,分类 ,属性 如何表示 用一个字段 还是再设计一张表 品牌和商品 是一种信息 还是两种信息 一张表一般只 ...
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
- 从零开始编写自己的C#框架(9)——数据库设计与创建
对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...
- 数据库设计(1/9):数据元(Data Elements)
对于设计和创建数据库完全是个新手?没关系,Joe Celko,世界上读者数量最多的SQL作者之一,会告诉你这些基础.和往常一样,即使是最专业的数据库老手,也会给他们带来惊喜.Joe是DMBS杂志是多年 ...
- ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)
最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用 ...
- 优化MySchool数据库设计总结
数据库的设计 一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...
随机推荐
- coreseek 基与Sphinx 的全文索引
假设有两张那个表,分别为articles,article_photos两张表.搜索的时候,要匹配articles.title.articles.intro.article_photos.caption ...
- JS 作用域、原型链
看到一道好题,并附答案 function Foo() { getName = function () { console.log('1'); }; return this; } Foo.getName ...
- js算法之寻路
A*寻路算法 算法流程说明: 说明:起始节点记作S,目标节点记作E,对于任意节点P,从S到当前节点P的总移动消耗记作GP,节点P到目标E的曼哈顿距离记作HP,从节点P到相邻节点N的移动消耗记作DPN, ...
- OpenCASCADE圆与平面求交
OpenCASCADE圆与平面求交 eryar@163.com 在 解析几何求交之圆与二次曲面中分析了OpenCASCADE提供的类IntAna_IntConicQuad可以用来计算圆与二次曲面之间的 ...
- day 47 前端基础之BOM和DOM
前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些 ...
- 第一周课堂笔记5th
1. While循环机制 如何终止循环? 改变条件(根据上面的流程,只要改变条件,就会终止循环). 关键字:break. 调用系统命令:quit(),exit() 后面会讲到,不建议大家使用 ...
- Luogu P4932 浏览器(二进制)
P4932 浏览器 题意 题目背景 __stdcall在用\(Edge\)玩\(slay\)的时候,鼠标会经常失灵,这让她十分痛苦,因此她决定也要让你们感受一下\(Edge\)制造的痛苦. 题目描述 ...
- c++继承知识点小结
继承的概念 继承是c++中一个重要的概念.继承是指,我们可以使用一个类来定义另一个类,在创建这个类时,我们就不需要重新编写数据成员与成员函数,这可以大大方便我们编写代码和维护代码的效率. 当我们使用一 ...
- leyou_01_自定义异常处理器
1.自定义异常处理器,当程序发生异常时可以我们可以自己定义返回的,状态码和状态信息 2.当异常发生时调用我们的自定义异常 @RestController @RequestMapping("i ...
- js阻止冒泡和默认事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...