02 python与mysql E-R模型与3范式

E-R模型与3范式

简介

数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性

当前使用的数据库,主要分两类:

  1. 文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制,对读写有有优化,主要用在移动端
  2. 服务型,如mysql,将数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作。需要安装服务端(耗电大,占用内存大,所以不适合移动端),之后就可以作为数据库使用;还要装客户端,客户端连接上数据库(服务器)后,就可用命令操作数据库。客户端可以装在和数据库不同的电脑上,服务器一般是公用的,在用户的电脑上安装客户端。

E-R模型

这是设计数据库的第一步,相当于数据库的框架

  • E-R模型就是数据库的一个基本架构,什么表应该怎么与其它连接,都在模型里体现
  • E表示entry,实体(在数据库中,一个表就是一个实体)
  • R表示relationship,关系
  • E之间的R可以有多种对应规则,包括:
    一对一(黑色)
    一对多(红色)
    多对多(蓝色)
    对应关系
    总结:设计数据库前,要先设计E-R模型,内容有什么呢?(1)要设计几个表,表的内容有什么?(2)表与表之间的关系如何?它们如何连接在一起,其中关系有3种。

三范式

设计数据库遵守的规则

  • 第一范式(1NF):表中的任何一列不能再拆分
  • 第二范式(2NF):唯一标识。一个表会存储很多对象(行)的某几项属性(列),需要有一个属性能唯一地标识对象,也就是说要有一个属性(列),它与对象是一一对应的关系,可以唯一地找到一个对象。就像学号与学生,学生的名字可能会有相同的,但是学号一定是每个人独有的。这样就解决了数据冗余的问题,精简数据,有重复的就不要了。
  • 第三范式(3NF):引用主键。在引用关系R的时候,只能引用主键,也就是两个表之间通过两个表的主键建立起对应关系。

只要是关系型数据库,都要遵循这些范式。

发布了28 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xxx_gt/article/details/104911583