关系数据库:MySQL、Oracle、SQLServer、PgSql
NoSQL系统:MongoDB、Memcache、Redis
DBMS(数据库管理系统):为业务系统构造出最优的数据存储模型,并建立好数据库中的表结构及表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问;
需求分析——逻辑设计——物理设计——维护优化
根据数据库自身的特点把逻辑设计转换为物理设计,达到效率的最优化(新的需求进行建表、索引优化、大表拆分)
需求分析:
1、了解系统中所要存储的数据
2、了解数据的存储特点(如:时效性:过期、清理、归档等;永久存储:分库、分表)
3、了解数据的生命周期
逻辑设计:
1、将需求转化为数据库的逻辑模型
2、通过ER图的型式对逻辑模型进行展示
3、同所用的具体的DBMS系统无关
设计范式:
常见的数据库设计范式:第一范式、第二范式、第三范式及BC范式…
1、第一范式1NF
定义:数据库表中的字段都是单一属性的,不可再分。
简单的说,每一个属性都是原子项,不可分割。
2、第二范式2NF
定义:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,即符合第二范式。
3、第三范式3NF
定义:在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合3NF。
4、BC范式
在第三范式的基础之上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BC范式。也就是说,如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。
物理设计:
1、选择合适的数据库管理系统。
2、定义数据库、表及字段的命名规范。
3、根据所选的DBMS系统选择合适的字段类型。
4、反范式化设计。(空间换时间)
存储引擎:
MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
存在SQL通用框架(由对象管理数据库),正确使用SQL的重要性: