1、数据:描述事物的符号记录;
数据库:长期存储在计算机内、有组织、可共享的大量数据的集合;(数据库数据具有永久存储、有组织、可共享三大特点。)
数据库管理系统:位于用户和os之间的一层数据管理软件,是系统软件。
2、数据库系统的三级模式结构(王珊版数据库系统概论P32)
(1)模式: 数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个模式。
(2)外模式:局部数据的逻辑结构和特征的描述。一个数据库可以有多个外模式。
(3)内模式:数据物理结构和存储方式的描述。一个数据库只有一个内模式。
3、关系的三类完整性约束
(1)实体完整性:主属性唯一且不为空。
(2)参照完整性:主键与外键构成参照完整性,防止出现数据不一致。
(3)用户自定义完整性:用户针对某一具体关系数据库的约束条件,列值非空,列值唯一,用check检查列值是否满足某个布尔表达式。(P156)
4、SQL功能及关键词:
(1)数据查询:select。
(2)数据定义:create,drop,alter。
(3)数据操纵:insert,update,delete。
(4)数据控制:grant,revoke。
5、关系数据库几个概念
(1)模式(schema):相当于命名空间,在该空间中,可以进一步定义数据库对象,如基本表、视图、索引等。
(2)基本表:本身独立存在的表,在SQL中,一个关系对应一个基本表。
(3)视图(view):从一个或几个基本表导出的表。数据库只存放视图定义,而不存放视图对应数据,视图是一个虚表,视图上可以再定义视图。视图的作用:简化数据查询语句;使用户从多角度看待同一数据;提高了数据的安全性;提供了一定程度的逻辑独立性。
(4)drop table student [restrict | cascade]。restrict是默认值,表示有条件删除;cascade表示无条件删除,删除该表时将与之有关的对象一并删除。(P88)
(5)建立索引(index)可以加快查询速度。一个基本表可以建立一个或多个索引。注意unique与cluster的区别。(P90)
(6)lower()、upper()、临时列、distinct、等。(P92)
(7)between 下限 and 上限。(P95)
(8)注意escape关键字的使用。(P96)
(9)order by 默认是升序排列。
6、数据库角色:是被命名的一组与数据库操作相关的权限,角色是权限的集合。用create role创建角色;用grant给角色授予权限;用revoke收回角色的权限。
7、完整性约束命名子句constraint。(P158)
8、触发器:是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。(P160)
(1)after(for):表示执行代码后,执行触发器
(2)instead of:表示执行代码前,用已经写好的触发器代替你的操作
9、范式(P175)
(1)1NF:每个属性不可重复不可再分。
(2)2NF:非主键字段只依赖主键,不依赖其它非主键字段。
(3)3NF:消除非主属性对关键字的传递依赖。例如:S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,姓名,所在系,系名称,系地址。关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键字 SNO 对 LOCATION 函数决定是通过传递依赖 DNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)。
(4)BCNF:在2NF,3NF基础上,消除主属性对关键字的部分、传递依赖。
10、聚簇:为了提高某个属性组的查询速度,把这个属性组上具有相同值的元组集中存放在连续的物理块。
11、存储过程:在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。(P247)
12、并发、并发带来的三种数据不一致、死锁。(P293)
(1)并发操作带来的三种数据不一致性:丢失修改、不可重复读、读脏数据。
(2)封锁:事务在对数据操作前,对数据加锁。
(3)活锁:一系列封锁不按照先后顺序执行时,导致某些事务无限期等待。解决方法:先来先服务。
(4)死锁:事务1封锁R1,事务2封锁R2,事务1又请求封锁R2,同时,事务2也请求封锁R1,这个过程一直持续。解决方法:一次封锁;顺序封锁。
13、事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务的四大特性:原子性、一致性、隔离性、持续性。