zoukankan      html  css  js  c++  java
  • “三大范式”及数据库设计

    # 为什么需要设计数据库?
    --当数据库较为复杂的时候需要设计数据库

    # 设计数据库的步骤
      1.收集信息(专业人士)
      2.标识实体(Entity)--找名词/表名
      3.为实体标识属性
      4.标识实体之间的关系(Relationship)
      5.画图
      6.编写sql语句建表(根据"三大范式")

    # 映射基数
      "一对一"、"一对多"、"多对一"、"多对多"

    为什么需要数据规范化(注意:三大范式(满足N-1范式) 可以帮助我们 规范数据的的设计。
      好处:防止数据混乱、数据冗余;
      缺点:很难严格排除出所有不满足的表,难拆分,影响一定的性能
      实际使用时,需要"规范性"和"易用性、性能"综合考虑)


    ***第一范式(1st NF)*** --每列不可分割
        确保每列的原子性(不可拆):如果每列都是不可分的最小数据单元(也称为最小的原子单元),
    则满足了"第一范式"

    ***第二范式(2st NF)*** --一个表,一件事(若一张表不满足2NF,就要拆分,然后通过将一个表的主键设置为另一张表的外键,来对两张表进行关联)

        宏观:要求每个表只描述一件事情(例如,一个student表 描述的都是学生字段)
         微观:通过2NF定义:除了主键外地其他字段,都依赖主键(A―>B就是B决定了A)

    ***第三范式(3st NF)*** --列要和主键有直接的关系,不能间接相关
        如果一个关系满足2NF,并且除了主键以外的其他列都传递依赖于主键列,
    满足第三范式(3NF)

    微观:除了主键以外的其他字段,都不传递依赖于主键
    X――>Y――>Z:X决定了Z,Z传递依赖X

    # 数据库设计软件:Power Designer

    name:给用户看的,只能用于显示
    code:代码实际操作

    ***
    事务具有哪些特性?
      原子性、一致性、隔离性、永久性(ACID)

    索引的目的是?
      加快检索

    简述“三范式”含义
      1.1st NF:每列不可分割
      2.2st NF: 一个表,一件事
      3.3st NF:列要和主键有直接关系,不能间接相关

    ***

  • 相关阅读:
    HTTP协议详解
    10本Linux免费电子书
    面试高级算法梳理笔记
    Linux服务器的那些性能参数指标
    2016 年开发者头条十大文章系列
    程序员如何优雅的挣零花钱
    [oracle] oracle权限传递
    [oracle] 两种权限:系统权限VS对象权限
    [oracle] 系统权限管理
    [oracle] 重要服务启动与停止命令行
  • 原文地址:https://www.cnblogs.com/wzhqzm/p/13369155.html
Copyright © 2011-2022 走看看