1、简介
数据库的目的:持久化存储,优化读写,保证数据的有效性。
2、数据库的分类:
1.文档型:如sqlite,就是一个文件,通过对文件的读写进行数据的存储查询,主要应用在移动端。2.服务型:如myql,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作
3、E-R模型
E:entry,实体R: relationship,关系
一个实体转换为数据库中的一个表
两个实体之间的关系:
一对一:一个班级只能有一个班长,一个班长只能属于一个班级
一对多:一个班级有多个学生,一个学生只能属于一个班级
多对多:一个老师教多个班级,一个班级有多个老师
4、关系模型
元组(Tuple)表中的一行即为一个元组,也称为一条记录。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名(字段名)。
关系(Relation)一个关系对应通常说的一张表,元组的集合可称为关系。
码(键)(Key)表中的某个属性组,它可以唯一确定元组。
主码(PrimaryKey)关系模式中用户正在使用的码称为主码。
外码(ForeignKey):如果模式R中的某属性是其他模式的主码,那么该属性集为模式R的外码。
域(Domain):属性的取值范围◦分量:元组中的一个属性值◦
关系模式:对关系的描述
关系名(属性1,属性2,...,属性n)
如:学生(学号,姓名,年龄,性别,系,年级)
课程(课程号,课程名,学分)
5、E-R模型向关系模型的转换
(1:1):1.将联系属性及一端的主码加入到另一端。
2.可单独对应一个关系模式:由联系属性、两端的主码构成关系模式,其主码可选参与联系的实体集的任一的主码。
(1:n):
1.由联系属性及1端的主码加入到n端,主码仍为n端的主码。
2.可单独对应一个关系模式:由联系属性、两端的主码构成关系模式,其主码是n端的主码。
(n:m):
1.单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由两端的主码共同组成。
6、三范式
3NF:每一个非主属性既不部分依赖于码也不传递依赖于码
7、完整性约束
-
实体完整性(组成主码的属性不能有空值,主键)
- 参照完整性(不允许引用不存在的元组,外键)
-
用户定义的完整性(针对某一具体数据的约束条件,由应用决定,check约束)