数据库

作者: YQY_苑 | 来源:发表于2020-05-23 12:00 被阅读0次

范式

第一范式 1NF

属性不可分割

  • 字段不可再分

第二范式 2NF

字段完全依赖于键

  • 在1NF的基础上,要有键(键可有多个字段组合)
  • 所有字段分别完全依赖于键
  • 如果键是多个字段组合,则不允许部分依赖于该键

第三范式 3NF

键中的属性也不存在间接依赖

  • 在1,2NF的基础上,一个表不能有两层依赖

数据库设计经验

1. 高内聚

  • 把相关的字段放在一起,不相关的分开建表
  • 如果两个字段能够单独建表,那就单独建表

2. 低耦合

  • 如果表之间有弱关系
  • 一对一可放在一个表,也可两个表加外键
  • 一对多一般用外键
  • 多对多一般建中间表

当关联自身存在属性时,需要建关联表

关联 JOIN

  • Left join : 会保留右边的null,以保证左边都显示
  • Right join : 会保留左边的null,以保证右边都显示
  • Full outer join : 会保留两边的null,以保证两边都显示(一般为多表)

缓存字段 => 事务

假设,一个博客blog包含多个评论comments
如何获取博客的评论数?

select count(id) from comments where blog_ig=8 ???
这样会很慢的,加入上百千万亿和博客,难道都要轮一遍计算?

可以在blog表上加一个 comment_count 字段,
每次添加comment则 +1 , 删除 -1
此时,则会产生一个问题,如何保证添加了comment之后,comment_count +1 ,这两个动作能保证都完成了?(保证原子性)

答:
使用 事务

相关文章

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

  • 1.7.1 MySQL数据库学习

    1. 数据库命令行学习 进入数据库 创建数据库 查看数据库列表 删除数据库 使用数据库 查看当前数据库 2. 表 ...

网友评论

      本文标题:数据库

      本文链接:https://www.haomeiwen.com/subject/kyorcctx.html