简介
数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性
当前使用的数据库,主要分两类:
- 文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制,对读写有有优化,主要用在移动端
- 服务型,如mysql,将数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作。需要安装服务端(耗电大,占用内存大,所以不适合移动端),之后就可以作为数据库使用;还要装客户端,客户端连接上数据库(服务器)后,就可用命令操作数据库。客户端可以装在和数据库不同的电脑上,服务器一般是公用的,在用户的电脑上安装客户端。
E-R模型
这是设计数据库的第一步,相当于数据库的框架
- E-R模型就是数据库的一个基本架构,什么表应该怎么与其它连接,都在模型里体现
- E表示entry,实体(在数据库中,一个表就是一个实体)
- R表示relationship,关系
- E之间的R可以有多种对应规则,包括:
一对一(黑色)
一对多(红色)
多对多(蓝色)
总结:设计数据库前,要先设计E-R模型,内容有什么呢?(1)要设计几个表,表的内容有什么?(2)表与表之间的关系如何?它们如何连接在一起,其中关系有3种。
三范式
设计数据库遵守的规则
- 第一范式(1NF):表中的任何一列不能再拆分
- 第二范式(2NF):唯一标识。一个表会存储很多对象(行)的某几项属性(列),需要有一个属性能唯一地标识对象,也就是说要有一个属性(列),它与对象是一一对应的关系,可以唯一地找到一个对象。就像学号与学生,学生的名字可能会有相同的,但是学号一定是每个人独有的。这样就解决了数据冗余的问题,精简数据,有重复的就不要了。
- 第三范式(3NF):引用主键。在引用关系R的时候,只能引用主键,也就是两个表之间通过两个表的主键建立起对应关系。
只要是关系型数据库,都要遵循这些范式。