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

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

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. System.Web.Mvc.HttpUnauthorizedResult.cs

    ylbtech-System.Web.Mvc.HttpUnauthorizedResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neut ...

  2. python3快速安装

    linux环境快速安装python3   之前在linux上安装python3的时候,为了让不影响linux环境原有的python2的环境,选择的方法都是下载对应的linux环境的python包,不过 ...

  3. SPSS分析技术:多元方差分析

    SPSS分析技术:多元方差分析 下面要介绍多元方差分析的内容,多元方差分析是研究多个自变量与多个因变量相互关系的一种统计理论方法,又称多变量分析.多元方差分析实质上是单因变量方差分析(包括单因素和多因 ...

  4. Jqgrid 序号列宽度调整

    // 遍历jqgrid 使其序号列宽度为45 function setwidth() { $("table[role='grid']").each(function () {//j ...

  5. Ajax请求参数传到后台为空

    1.编码格式 $.ajax({ method:'POST', url:'/midservice/studentAction/addStudent', data:$.toJSON(userDate), ...

  6. Leetcode959. Regions Cut By Slashes由斜杠划分区域

    在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /.\ 或空格构成.这些字符会将方块划分为一些共边的区域. (请注意,反斜杠字符是转义的,因此 \ 用 &quo ...

  7. Windows API 第 10篇 SearchTreeForFile

    函数原型:BOOL SearchTreeForFile(  PSTR RootPath,      //系统查找的起始路径,   PSTR InputPathName,                 ...

  8. Windows API 第三篇

    1.获得程序自身的路径: DWORD GetModuleFileName( HMODULE hModule, // handle to module LPTSTR lpFilename, // pat ...

  9. CodeForces - 752B

    CodeForces - 752Bhttps://vjudge.net/problem/597648/origin简单模拟,主要是细节特殊情况多考虑一下,看代码就行 #include<iostr ...

  10. 释放内存触发断点及数组、指针的NULL初始化

    Visual Studio调试时,出现“触发一个断点”内存释放出现异常 数组和对应指针的NULL初始化 数组使用之前要先对其初始化 char Outi[4] = { NULL }; char Outj ...