1.1 概述
1.基本概念
数据库(DB)、数据库管理系统(DBMS)、数据库系统(DBS)概念
数据库是存储在计算机内、有组织的、可共享的数据集合。
数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能包包括数据定义功能、数据操作功能、数据库运行管理功能、数据库的建立和维护功能。
数据库系统是指在计算机系统中引入数据库后的系统构成。数据库系统由数据库、数据库管理系统、应用系统、数据库管理员构成。
2.数据库系统的特点
(1)数据整体结构化;
(2)数据冗余度低,共享性高;
(3)数据的物理独立性与逻辑独立性强(物理、逻辑独立性的概念);
物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
1.2 数据模型
数据模型的3要素
①数据结构:描述数据库的组成对象,以及对象之间的联系
②数据操作:对数据库中各种对象的值允许执行的操作及有关的操作规则
③数据的完整性约束:一组完整性规则的集合。
常用的数据模型的分类及特点。
①层次模型
②网状模型
③关系模型
1.3 数据库系统的结构
数据库系统的三级模式结构
①外模式:用户模式,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
②模式:逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,一个数据库只有一个模式。
③内模式:存储模式,是数据物理结构和存储方式的描述。
在三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。
外码,主码,候选码的概念
候选码:若关系中的某一属性组的职能唯一地标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定期中一个为主码。
外部码:设F是基本关系R的一个或一组属性。但不是关系R的码,如果F与基本关系S的主码K想对应,则称F是基本关系R的外部码,简称外码。
关系的3类完整性约束概念
实体完整性:若属性(指一个或一组属性)A是基本关系R的主属性, A不能取空值。
参照完整性:若属性(或属性组)F是基本关系R的外码,它是基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
用户定义的完整性:针对某一具体关系数据库的约束条件。反映某一具体应用所设计的数据必须满足的语义要求。
基本关系操作(集合操作:并、差、笛卡儿积)
专门关系运算:(选择、投影、连接 )
自然连接自然连接和等值连接有两个区别:
做自然连接时,两个连接的关系R和S必须要有公共的属性列
自然连接结果要把重复的元组去掉
SQL集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
视图的概念
视图的作用
数据查询(综合应用题)
简单查询:
连接查询
嵌套查询
例题:现有关系数据库如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
用SQL语句实现下列操作:
①检索所有选修了课程号为“C112”的课程的学生的学号和分数;
②检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
③检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;
④检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
⑤检索学过课程号为“C135”或者“C219”的课程的学生的信息,包括学号、姓名和专业。
数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
1.存取控制
自主存取控制:定义各个用户对不同数据对象的存取权限。当用户要访问数据库时,首先要检查其存取权限,以防止非法用户对数据库进行存取。“自主存取控制”中“自主”的含义:用户可以将自己所拥有的存取权限“自主”地授予他人,即用户具有一定的“自主”权。
强制存取控制:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
2.授权与收回语句
GRANT 语句和 REVOKE 语句实现关系数据库系统中存取控制权限
三类完整性约束
实体完整性:要求关系中元组在组成候选码的属性上不能有空值。
参照完整性:若属性(或属性组)F 是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R 和S不一定是不同的关系),则对于R 中每个元组在F上的值必须为:
或者取空值(F 的每个属性值均为空值)
或者等于S 中某个元组的主码值
用户定义的完整性:用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。
1、一个关系模式可能存在的问题有哪些?
数据冗余太大
更新异常(Update Anomalies)
插入异常(Insertion Anomalies)
删除异常(Deletion Anomalies)
2、函数依赖的概念
3、1NF :如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。第一范式是对关系模式的最起码的要求。
1、数据库设计的基本步骤
(1)需求分析
(2)概念结结构设计
(3)逻辑结构设计
(4)物理结构设计
(5)数据库实施
(6)数据库运行和维护
需求分析和概念设计独立于任何数据库管理系统 ,逻辑设计和物理设计与选用的数据库管理系统密切相关
2、E-R图(综合应用题)
E-R图由实体、实体的属性和实体之间的联系三个要素组成
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
联系可以具有属性
3、E-R模型向关系模型的转换(综合应用题)
将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为相应的关系模式。
转换原则:
① 一个实体型转换为一个关系模式。
② 一个 m:n 联系转换为一个关系模式。
③ 一个 1:n 联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
④ 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。数据库设计例题:
设大学里教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。
设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有课程成绩。
完成如下设计:
(1)画出该模型的E-R图,标明每个实体及其属性、实体间实体联系。 )
(2)将E-R模型转换成关系模式。(要求:1:1和1:n的联系合并到实体集中)
(3)指出每个关系模式的码,在关系模式中用下划线标明。
(1).根据规则设计出的E-R模型。
(2)转换成的关系模型应具有4个关系模式:
教师(工号,姓名,职称)
学生(学号,姓名,性别,年龄,教师工号)
课程(课程号,课程名称,教师工号)
选课(学号,课程号,成绩)
事务事务是用户所定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有四个特性:
1、原子性:事务是数据库的逻辑单位,事务中所包括的各种操作要么都做,要么都不做。
2、一致性:事务执行的结果必须是使数据库从某个一致性状态转变到另一个一致性状态。
3、隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及所试用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
4、持续性:(永久性)事务一旦提交,它对数据库中主句的改变就应该是永久的。
为了保证事务的原子性、一致性与持续性,DBMS必须对事务故障、系统故障和介质故障进行恢复;为了保证事务的隔离性和一致性,DBMS需要对并发操作进行控制。
1.共享锁(S读锁):T事务在对对象在加锁之后只允许T读取A,但不能修改。其他事务也只能加s锁
2.排他锁(X写锁):T事务在对对象加锁之后只允许T读取和修改,加锁之后其他事务不能加任何锁
3.死锁和活锁: 活锁就是在在等待资源时不断有人插队。死锁就是两个以上的事务分别请求封锁对方已经封锁的数据,导致长期等待而无法继续运行下去的现象。
4.两段锁协议:可串行化,可能发生死锁
5.意向锁:对任一结点加锁时,必须先对它上成结点加意向锁,引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突,常用的:IS锁,IX锁,SIX锁。
① 数据库系统的核心和基础是数据模型
② 数据管理技术,人工管理阶段和文件系统相比于 文件系统的一个显著优势是 数据可以长期保存
③ 能够保证数据库系统中的数据具有较高的逻辑独立性是 外模式和模式印象。
④ IBM公司的IMS数据库管理系统采用的数据模型是 层次模型
⑤ 网状数据库一个结点可以有多于一个的双亲
⑥ 需要应用程序管理数据的是 人工管理阶段
⑦ 数据库系统是指在计算机系统中引入数据库之后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成
⑧ 物理独立性:用户的引用程序与存储在磁盘上的数据库的数据是相互独立的。
⑨ 逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的
⑩ 候选码都可以唯一地标识一个元组
⑪ 关系操作中,操作对象和结果都是集合
⑫ 在左外连接中,保留的是左边关系中所有的元组
⑬ SQL特点:综合统一,高度非过程化(无须了解存取路径),面向集合操作,以同一种语法结构提供两种方式(既是自含式,又是嵌入式语言)
⑭ Restrict 在删除表时,是有限制条件的,要删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。
⑮ CasCade 表示表删除没有限制条件。删除时相关依赖对象都将被删除
⑯ 视图优点:简化用户操作,多种角度看待同一数据,对重构数据库提供一定程度的逻辑独立性,能够对机密数据提供安全保护。
⑰ 基本表的行列子集视图一般是可更新的。若视图的属性来自聚集函数,表达式,则该视图肯定不可以更新的。
⑱ 关系型运算符优先级高到低为:NOT>AND>OR
⑲ 行列子集视图:从单个基本表导出,并且只是去掉基本表的某些行和某些列,但是保留了主码。
⑳ SQL定义功能主要包括:模式定义,表定义,视图定义和索引定义等。
21 MAC中:主体的敏感度标记称为许可证级别,客体的敏感度称为密级。
22 系统存取规则:
读 主体>=客体
写 主体<=客体
23 强制存取控制策略TCSEC/TDI 是B1级安全级别的特色
24 SQL的GRANT和REVOKE语句可以实现数据库的角色创建
25 数据库安全技术包括:用户身份识别,多层存取控制,视图机制,审计和数据加密等
26 在数据库加密技术中,原始数据通过某种加密算法变换为不可直接识别的格式,称为密文。
27 定义数据库完整性一般是由SQL的 DDL 语句实现
28 RDBMS采取违违约处理有:拒绝;级联删除(修改);设为空值;
29 在创建表时,用户定义的完整性可以通过Not Null、UNIQUE、CHECK等子句实现