数据库设计原理

完整性约束:
  • 实体完整性约束:主属性不能为空且是唯一

  • 参照完整性:关系中不允许引用不存在的实体

  • 用户自定义完整性:一般指数据必须满足语义要求。

Nosql:
  • 不需要预定义模式
  • 无共享框架
  • 弹性可扩展
  • 分区
  • 异步复制
  • base特性,相对于sql数据库的acid特性,Nosql数据库牺牲一致性换区高可用性。
Nosql使用场景:
  • 数据模型比较简单
  • 对灵活性要求跟高的it系统
  • 对数据库性能要求高
  • 不需要高度的数据一致性
  • 对于给定Key,比较容易映射负责制的环境
视图
  • 视图是一个虚拟表,由查询语句决定视图显示的内容
  • 目的:
  • 安全因素:视图可以隐藏一些铭感信息
  • 简化查询:
  • 自定义数据结构:视图可以按特定场景定义数据结构
  • 独立逻辑数据:视图可以减少真实表结构变化带来的影响
外键
  • 外键表示了两个关系表之间的相关联系
  • 外间的主要作用是保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值或使用空值。
  • 外键的使用原则:
    1.为关联字段创建外键
    2.所有的键都必须唯一
    3.避免使用复合键
    4.外键总是关联唯一的键字段
关于级联操作
  • 级联是用来设计一对多关系的。关联表中的数据更新或删除时,引用表内的相关数据将会一起更新或删除。

  • 级联操作一般有
    1.级联删除
    2.级联更新

  • 设置级联操作可以保证数据完整性,但及联关系会使得数据变的不可控

  • 不建议使用级联关系!

第一范式(1NF)
  • 数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复属性。(列的原子性)
第二范式(2NF)
  • 要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。若果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
  • 第二范式主要针对含有联合主键或者数据表中包含多对多关系的情况。数据库设计要求将这两种情况拆分成两个一对多关系。
第三范式(3NF)
  • 在1NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

你可能感兴趣的:(数据库设计原理)