为什么要使用数据库
可掉电式意思是断电情况下数据仍然可以保存。
内存是掉电就不能存储了,因为内存使用低电压和高电压来区分0和1。
可以存储到文件,也可以存储到数据库,那为什么要存储到数据库中呢?
数据库能存的数据量比文件大,再就是在数据库中要查找某条数据时有多种优化手段,查找速率快。
数据库与数据库管理系统
数据库的相关概念
数据库就是一个文件,里面存着表,表也是以.ibd为后缀的文件。
数据库管理系统与数据库的关系好比网易云音乐与.mp3文件之间的关系,通过软件去管理对应的文件。
SQL是用来在数据库管理系统上操作数据库的。
常见的数据库管理系统
查看数据库管理系统的排名。
DB-Engines Ranking - popularity ranking of database management systems
选择MySQL数据库管理系统的原因
Oracle VS MySQL
RDBMS与非RDBMS
关系型数据库
实质
二元关系:一个集合中有若干个元素,任意两个元素,可看作是元,他们之间满足一定的关系。
员工表中有具体员工的部门,部门表中有各种部门分类等信息。这两张表中都存在着关系。
关系型数据库的优势
因为表和表之间有关系,所以才能多表查询。
非关系型数据库
介绍
有舍有得,舍掉了关系型中的特性,去获得更高的性能。
常见非关系型数据库类型
键值型数据库
一个键对应一个值,能达到常量级的搜索。
文档型数据库
搜索引擎数据库
列式数据库
关系型数据库是行式数据库。
图形数据库
NoSQL的演变
关系型数据库的设计规则
ORM思想(Object Relational Mapping):
数据库中的一个表对应着Java中的一个类。
表中的一条数据对应着Java类中的一个对象(实体)。
表中的一个列对应着类中的一个属性,字段(field)。实际上是field ,但以前的翻译将它翻译成了属性。
表,记录,字段
表的关联关系
一对一关联
这两张表是一对一的关系,比如学号对应的信息在基础信息表中和档案信息表中都是同一个人的。
当一张表中字段太多时,也有可能会把一张表拆成两张表,因为有的字段不常用,为了加载内存的时候减少IO,能提高检索效率。
一对多关联
表A中的一条记录对应着表B中的多条记录
一个员工对应一个部门,一个部门对应多个员工。
多对多关联
一个学生选多门课,一门课可被多个学生选择,那么多个学生可以选多门课。
则学生信息表和课程信息表就是多对多的关系。
自我引用
员工表中104,105的主管也是员工,主管编号就引用当前表中的员工编号。