E-R图:实体型用矩形框表示,属性用椭圆形表示,并用无向边将其与实体连接。实体之间的联系用菱形表示,若联系具有属性,则这些属性用无向边与该联系连接起来。单个实体型内部实体之间也可能具有一对多关系。 E-R模型独立于计算机系统。
数据模型
层次模型:用树形结构表示各类实体及实体间的联系。特点在于只能处理一对多实体联系。
网状模型:允许两个节点之间有多种联系,多对多关系转化为一对多关系表示(加一个中间表)
关系模型:①元组:一行数据 ②属性:一列为一个属性 ③分量:一条记录中的一个列值
1.数据库系统结构:
单用户数据库系统:数据库装在一台计算机上
主从式结构:数据库集中存放在主机中,多个用户通过主机终端访问数据库。
分布式:数据库数据分布在不同物理节点上分散存储。集群。
2.数据库系统的三级模式结构:外模式->模式->内模式
外模式(用户):一个数据库有多个外模式,对应不同用户应用需求,外模式与应用是多对一关系。
模式(程序员):连接内模式外模式。定义数据逻辑结构。
内模式(机器):数据物理结构和存储,硬件细节。一个数据库只有一个内模式。
关系数据库
1.候选key:相当于唯一索引
2.五种基本关系代数运算:并,差,笛卡尔积,投影,选择。∪,-,×,π,σ
选择σ:σAGE≥20∧SEX=男(Student)查找出student表中年龄大于等于20且性别为男的记录。
映射Π:πAGE,SEX(Student)选出student表中列名为age和sex构成的新表。(会自动去掉相同的行)
自然连接会自动去掉重复的属性组(前提是有相同属性组),等值连接则相当于笛卡尔积
象集:Zx=张军找到表中x为张军的记录并返回去掉x上的分量的记录。
重命名:ρx(A1,A2,…,An)(E) 返回表达式E的结果,并赋给它新的表名x,同时将E的各属性更名为A1,A2,…,An
除法运算:πSno,Cno(SC)÷πcno(AC) 对于SC表上的元组,若它在sno分量的象集包含了AC表上cno投影,返回所有这些元组的sno投影的集合。 查询选修全部课程的学生姓名和学号可以使用除法运算,除数为全部课程id。
3.关系三类完整性约束
实体完整性:主键不能为空
参照完整性:外键
用户定义完整性
SQL
1.数据查询,数据定义,数据控制。
查询:select distinct age from student 用DISTINCE去掉重复行(在count()内也可以声明去重)。
where A between … and …范围查询。
where A in<a1,a2>或A not in <a1,a2>查询在/不在值表中的数据(in后面的内容也可以是一个表的结果,内外层嵌套查询)。
模糊查询:where A like 'a1’查询A=a1的数据;where A like 'a%'查询A列中开头是a的数据;where A like 'a_ _'查询A列中a开头的三位数的数据;where A not like '_a%'查询A列中第二位为a之外的数据。
where A like ‘a\_1’ESCAPE’\’; 查询A列中为a_1的记录。\后面的字符转义为普通字符。
drop table student cascade/restrict 删表操作。注意cascade表示级联删除,删除该父表时,子表中引用父表外键的数据也一并删除。而restrict删除时,仅当没有对当前表的引用才能被删除。
数据库保护
grant 权限 on table student to user with grant option: 授予用户user权限,with grant option表示允许user将该权限授予其它用户。若这里user是public表示将该权限授予所有用户。注意不能出现循环授权的情况。
revoke from user cascade:收回权限。若加上cascade表示级联收回,收回user权限以及user授权传播的用户的权限。
数据库恢复技术
事已提交,但是系统故障缓冲区中的信息尚未完全写道磁盘上,用redo.log重新执行一遍事务。
关系数据库理论
1.平凡非平凡:X→Y,但Y不属于X,则称X→Y是非平凡的函数依赖,若Y属于X(是X子集)则是平凡的函数依赖。
2.完全函数依赖和部分函数依赖:X→Y,但是任意一个X的子集都不能决定Y,只有X整体才能决定Y,则称Y完全依赖于X。(X是最小闭包)
3.传递依赖:X→Y,Y→Z(Y不能决定X),则称Z对X传递函数依赖,记为:X → Z。若Y→X(Y决定X),则Z直接依赖于X。
4.All-key表示实体内的所有属性合起来构成主键,单独分开不能构成主键。
若K能决定实体中所有的属性,则称k为候选键。候选键不一定只有一个属性构成。
5.范式(主码表示多个主属性构成的唯一能决定实体所有属性的集合)
1NF:所有属性都是不可分。
2NF:每一个非主键属性完全依赖于主码(但是存在非主属性的传递依赖)。因此要把1NF分成两个关系模式。
3NF:每一个非主属性既不部分依赖于码也不传递依赖于码。分解成两个关系分别为关系一X→Y和关系二Y→Z。
BCNF:每一个函数依赖的左侧(决定因素)都包含候选码。如果不包含说明该属性部分依赖于该码,比如(S,J,P)中,(S,J)是候选码,若存在关系S→P则说明P部分依赖与S,J,因此不属于BCNF范式。
6.判断方法,首先是找出非主属性,若非主属性和候选码之间存在函数依赖关系,则不属于2NF;进一步判断若非主属性和候选码存在传递依赖关系,则不属于3NF;若函数依赖左侧决定因素不包含候选码,则不属于BCNF。