简介

1. 数据库系统(Database System,DBS)

定义: 是由数据库及其管理软件组成的系统。

组成:

  • 数据库(DataBase)
  • 数据库管理系统(DataBase Management System)
  • 应用系统
  • 数据库管理员(DataBase Administrator)

undefined

2. 数据库 (Database,DB)

定义: 数据仓库,存储数据的一个「文件」。 <= 500w的数据随便存储,超过了就需要优化。

作用: 存储数据。

3. 数据库管理系统(DBMS)

3.1. 概念

定义: Database Manager System,一个操作数据库的「软件」,可以管理,维护,获取数据。数据存储在数据库文件里面,DBMS则是读写这个数据文件的软件。

作用: 操作管理数据库文件的软件。

3.2. 分类

  • 关系型数据库SQL:
    • 定义:通过表和表之间,行和列之间的关系进行数据存储。(类似 excel
    • 产品:MySQL,Oracle,Sql server,DB2
  • 非关系型数据库NOSQL (Not Only SQL)
    • 定义:对象储存,通过对象的自身属性来存储数据。(类似 Json
    • 产品:Redis,MongDB

4. MySQL简介

  • 类型: 关系型数据库管理系统(Relational Database Management System)。
  • 公司: 由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。
  • 特点: 开源免费,体积小,成本低,适用于大中小网站。

[!tip] MySQL安装

5. MySQL简单使用

  • 启动MySQL服务

triangle@LEARN_FUCK:~/mysql$ net start mysql

  • 停止MySQL服务

triangle@LEARN_FUCK:~/mysql$ net stop mysql

  • 终端登录MySQL

-p后面是直接跟密码,不要有空格。

triangle@LEARN_FUCK:~/mysql$ mysql -u root -p # -u [user];-p [password]

  • 清理干净MySQL

triangle@LEARN_FUCK:~/mysql$ sc delete mysql

6. 规范数据库设计

6.1. 为毛要设计

[!tip] 当数据库比较复杂时,需要设计。

好的数据库:

  • 节省内存空间
  • 保证数据完整性
  • 方便开发,维护

6.2. 数据库设计

  • 分析需求:需要实现哪些功能,对应的需要创建哪些表。
  • 表示实体:一张表里需要创建哪些字段。
  • 实体关系:最后来分析表间字段的关系,能不说通,能不能实现功能。

7. 三大规范

  • 第一范式
    • 原子性:每一个字段都是不可在拆分的
  • 第二范式
    • 满足第一范式
    • 每张表只描述一件事情。字段必须与主键完全相关,而不能与主键部分相关。
  • 第三范式
    • 满足第二范式
    • 字段必须要与主键直接相关,不能间接相关。

[!note|style:flat] 规范与性能,有时不可兼得,性能更重要。

  • 考虑到商业需求(用户体验,快),数据库计算性能更重要
  • 故意增加字段,将join查询改为单表查询
  • 增加一些计算列(索引)

参考博客:三大范式

results matching ""

    No results matching ""