zoukankan      html  css  js  c++  java
  • 数据库设计【笔记】

    数据库设计
     一、设计步骤
       1.收集信息(来源项目需求分析)
       2.标识实体(一般是需求分析中需要管理的信息名词)
       3.标识每个实体的属性
       4.实体之间的关系
    二、画e-r图(实体关系图)
       1.矩形表示实体
       2.椭圆表示实体的属性
       3.菱形表示实体之间的关系
       4.用直线连接实体和属性,实体和实体之间的关系
    三、实体之间的关系:
       1.一对一  1:1          车和车位
       2.一对多  1:N (1:M) 客人和客房
       3.多对多  N:M          图书和作者
    四、E-R图映射到数据表
       1.一般一类实体映射为表
       2.实体中的属性映射为表中的列
       3.关系的映射:
          (1)一对一:映射为一个表,其中一个实体的属性
          (2)一对多:每个实体一个表,通过主外键表示关系,如客人和客房,在客人表里添加一个房间号作为外键,客房中的房间号就是主键。
          (3)多对多:每个实体一个表,关系映射为一个表
          映射3个表,图书表  作者表  关系表
    五、用三大范式衡量或规范数据库
       1.每列都是一个不可再分的单元(保持原子性)  符合第一大范式
       2.在满足第一范式的情况下,每个表只描述一件事,就符合第二范式
       3.在满足一二范式的情况下,并且除主键外,其他列都不传递依赖于主键,符合第三范式(除主键外, 所有的列都是直接依赖于主键而不是间接的依赖于主键)
    六、数据非规范化设计:
        规范化设计的话是把大表拆分成小表,节约空间但同时会降低性能,为了提高性能,进行非规划化设计

  • 相关阅读:
    解析CIDR表示的IP段表示的范围
    [Python] 使用乘号复制变量引起的问题
    [Python] 字典dict添加二级键值的问题
    [Java] [刷题] 连续自然数和
    [Java] [刷题] 多个整数连接为最大整数问题
    [CentOS] 编译安装Python3后pip3安装的库如何在命令行调用
    [CentOS] 宝塔面板与Python3的恩怨情仇
    [易语言] 两种字节序的直观比较
    [Java] [刷题] Excel地址转换
    [Java] 运算精度
  • 原文地址:https://www.cnblogs.com/a1111/p/6031806.html
Copyright © 2011-2022 走看看