目录
一、数据库对象
用户、视图、索引、触发器、存储过程、序列、图表 (Diagram)、规则 (Rule)、表、缺省值 (Default)
用户 (User)
用户指的就是有对数据库有权限访问的人。
视图 (View)
视图也有一组数据项和命名字段,只是在用户执行查询操作的时候才会出现,其实在数据库中并不存在,通过控制用户对数据的访问权限,简化数据,只显示用户需要的数据项。
索引 (Index)
索引是为了给用户提供快速访问数据的途径,时刻监督数据库表的数据,从而参照特定数据库表列建立起来的一种顺序,主要是为了便于用户访问指定数据,避免数据的重复。
触发器 (Trigger)
触发器在数据库表中属于用户定义的 SQL 事务命令集合。如果你对一个数据库表执行删除、插入、修改的时候,命令就能够自动去执行。
序列 (Sequence)
序列定义存储在数据字典里面,序列提供了唯一数值的顺序表从而来简化程序的设计工作。
图表 (Diagram)
图表是为了编辑表与表之间的关系,可以理解为数据库表之间的一种关系示意图。
规则 (Rule)
规则是实现对数据库表中列数据的一种限制。
存储过程 (Stored Procedure)
存储过程是为了实现某个特定功能而汇集在一起的一组 SQL 语句,经过编译之后会存储在数据库里面的 SQL 程序。
表 (Table)
数据库,由行 (Row) 和列 (Column) 构成。列又称为字段,列的标题被称为字段名。数据库表中的行,一行数据称为一条记录,多数是同类信息组成。一般来说,一个数据库表是由一条或多条记录组成,如果是没有记录的表,则称为空表。为了惟一地确定一条记录,每个数据库表中一般都是有一个主关键字。
缺省值 (Default)
缺省值,就是数据库表中插入数据或创建列时,有些列或者列的数据没有予以设定具体数值,那么就会直接以预先设置的内容赋值
二、数据的关系模型
二维表:一张由行和列组成的表
元组:表的一条记录
属性:表的一列,一个字段
域:属性的取值范围
主码:主键。例如在学生表中,学号就是主码
超码:可以唯一地标识一条记录的列。在学生表中,如果没有重名,{姓名}、{学号}、{姓名、班级}、{姓名、身份证}等等,都是超码
候选码:特殊的超码,其子集不是超码。在学生表中,如果没有重名,{姓名、班级}就不是候选码,因为它的子集{姓名}仍然是超码
主属性:所有属于候选码的列都是主属性。在学生表中,如果没有重名,学号、姓名、身份证都是
非主属性:不属于候选码的列,在学生表中,性别、年龄
函数依赖:x决定y,又称y依赖于x,写为x—>y。如:身份证号决定姓名,写为身份证号—>姓名
传递函数依赖:x—>y,y—>z,则z传递函数依赖于x。如:表1{学号,班级号,姓名}、表2{班级号、班级名称},班级名称x传递函数依赖于学号z
完全函数依赖:x—>z,且x存在真子集不决定z,则z完全函数依赖x。如:表{学号,班级号,姓名,班级名、年级名},{学号,班级号}x—>年级名z,且x存在真子集{学号}、{班级号}都分别不决定年级名z,所以年级名z完全函数依赖{学号,班级号}x
部分函数依赖:x—>z,且x存在真子集决定z,则z部分函数依赖x。如:表{学号,班级号,姓名,班级名、年级名},{学号,班级号}x—>班级名z,且x存在真子集{班级号}决定班级名z,所以班级名z部分函数依赖{学号,班级号}x
三、数据库的三级模式结构
数据库系统是由“模式(逻辑模式或概念模式)、外模式(用户模式)、内模式(存储模式)”这三级结构构成的。
其中,模式——全体数据逻辑结构、外模式——部分数据逻辑结构、内模式——数据的物理结构。
四、数据库的六种范式
(1)第一范式(1NF)
每个字段具有原子性,每个字段不可拆分;
不符合例子:userinfo(用户信息)字段就可以再拆分成id,name,age字段
(2)第二范式(2NF)
其他列依赖主键,而不是主键的一部分
说明:多个列组成联合主键,其它列依赖联合主键,而不是依赖组成联合主键的部分列
-
不符合例子:
成绩表:学号、姓名、年龄、课程号、课程名、分数
(联合主键{学号、课程号},分数依赖联合主键,但是姓名、年龄只依赖{学号},课程名只依赖{课程号},所以不符合2nf)
-
符合例子:
学生表:学号、姓名、年龄
课程表:课程号、课程名
成绩表:学号、课程号、分数
(3)第三范式(3NF)
不能有传递依赖,即非主键列只能依赖主键,不能依赖另一个非主键列,尽管另一个非主键列依赖主键
-
不符合例子:
学生表:学号、姓名、年龄、课程号、课程名
(非主键列课程名依赖于非主键列课程号,所以不符合3nf)
-
符合例子:
学生表:学号、姓名、年龄、课程号
课程表:课程号、课程名
(4)更多范式
BCNF、4NF、5NF
五、DDL、DQL、DML、DCL
(1)DDL
data defination language数据定义语言。创建数据库,对库表的结构进行删除和修改等操作
(2)DQL
data query language数据查询语言,对数据库中的数据进行查询
(3)DML
data manipulation language数据操作语言。对数据库中的表记录进行操作,包含往表中插入数据、更新表中数据、删除表等
(4)DCL
data control language数据控制语言。对数据库中的登录、用户的权限进行控制,包含登录、查看权限、删除用户、修改用户密码、查看创建授权等
(5)TCL
trasaction control language事务控制语言,commit、rollback、setpoint等对事务进行操作的语句都属于tcl。
六、ER图
E-R图也称实体联系图(Entity Relationship Diagram),三要素:属性、实体、联系。