数据库系统概论复习要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
数据库系统概述
数据库的基本概念:DB、DBMS、DBS、DBA
数据管理的发展:人工管理、文件系统和数据库系统
数据库管理系统功能数据库定义功能;数据组织、存储和管理;数据操纵功能。
据库事务和运行管理;数据库的建立和维护功能。
数据库系统的结构数据库系统三级模式结构:模式、内模式和外模式
数据库系统的三级模式结构
模式(逻辑模式)
数据库中全体数据的逻辑结构和特征的描述;所有用户的公共数据视图,综合了所有用户的需求;
一个数据库只有一个模式
内模式(存储模式):是数据物理结构和存储方式的描述;是数据在数据库内部的表示方式
一个数据库只有一个内模式
外模式(子模式或用户模式):数据库用户使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
一个数据库可以有多个外模式。
数据库系统的二级映象
三级模式是对数据的三个抽象级别,二级映象在DBMS内部实现这三个抽象层次的联系和转换
外模式/模式映象
1. 定义外模式与模式之间的对应关系
2. 保证数据的逻辑独立性
模式/内模式映象
1. 定义了数据全局逻辑结构与存储结构之间的对应关系。
2. 保证数据的物理独立性
数据库系统的特点数据结构化数据的共享性高,冗余度低,易扩充数据独立性高
数据由DBMS统一管理和控制
数据模型的分两类:概念模型、逻辑模型和物理模型
数据模型的三要素:数据结构、数据操作、数据的完整性约束
三种主要数据模型:关系模型、层次模型、网状模型
第二章
关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。
关系数据结构
关系二维表,属性是列,元组是行
关系模式对关系的描述R(U,F)
关系数据库关系的集合
关系的码
候选码(CK)关系中能唯一标识一个元组的属性组,称为该关系的候选码
简单情况: 候选码只包含一个属性。
极端情况: 关系的所有属性是关系模式的候选码,称为全码(All-key)
主码(Pk)若一个关系有多个候选码,则选定其中一个为主码
候选码的诸属性称为主属性。
不包含在任何侯选码中的属性称为非主属性。
外码(FK)设F是关系R的一个或一组属性,但不是关系R的码。如果F与关系S的主码Ks相对应,则称F是关系R的外码
关系R称为参照关系关系S称为被参照关系
选修关系的“学号” 与学生关系的主码“学号”相对应
选修关系的“课程号”与课程关系的主码“课程号”相对应
“学号”和“课程号”是选修关系的外码
学生关系和课程关系均为被参照关系
选修关系为参照关系
学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
关系的数据操作
关系数据操作语言
关系代数
传统的集合运算并、差、交、笛卡尔积
∪-∩×
专门的关系运算选择、投影、连接、除
σ(选择) 水平方向选取子集
π(投影)垂直方向选取子集
(连接) 从笛卡尔积中选取子集
÷(除法)同时从水平、垂直方向选取子集
关系演算元组演算,域演算
关系数据操作查询数据更新插入、删除、修改
关系操作的特点:一次一集合方式
(操作的对象和结果都是集合)
关系的三类完整性规则关系的完整性规则是对关系的约束条件
实体完整性关系的主码不能取空值。
参照完整性外码必须是另一个表中主码的有效值,或者是空值。
用户定义的完整性
是针对某一具体数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性。
第三章
1.定义表
CREA TE TABLE <表名> (
<列名1> <类型>[ <列级约束> ,]
<列名2> <类型>[ <列级约束> ,] …………… ,
[<表级完整性约束条件> ] );
例建立“学生选课表” SC,它由学号Sno、课程号Cno,成绩Grade组成,其中(Sno, Cno)为主码。CREATE TABLE SC(
Sno CHAR(9) ,
Cno CHAR(3) ,
Grade int CHECK (Grade>=0 and Grade<=100),
Primary key (Sno, Cno),
);
2. 查询语句
SELECT [
FROM <表名>
WHERE <条件>;
[GROUP BY <列名> ...]
[HA VING <条件表达式>]
[ORDER BY <列名> [ASC|DESC] … ];
常用查询:
(1) 单表查询(2) 连接查询(3) 嵌套查询(4) 集合查询(1)单表查询一般形式
SELECT <目标列表>
FROM <表名>
WHERE <条件>;
例1:查询所有年龄在20岁以下的学生姓名及其年龄。
SELECT Sname,Sage
FROM Student
WHERE Sage < 20;
例2:查询选修了课程的学生学号。
SELECT DISTINCT Sno
FROM SC;
例3:查询年龄在20岁以下的姓王的学生姓名及其年龄。
SELECT Sname,Sage
FROM Student
WHERE Sage<20 AND
Sname LIKE ‘王%’;
(2) 连接查询一般形式
SELECT <目标列表>
FROM <表名1 > , <表名2 > ……
WHERE <连接条件>
AND <查询条件>;
外链接查询一般形式
SELECT <目标列表>
FROM <表名1 > JOIN <表名2 > ON <连接条件>
WHERE <查询条件>;
例1:查询选修2号课程且成绩在90分以上的所有学生的学号、姓名
SELECT Student.Sno, student.Sname
FROM Student, SC
WHERE Student.Sno=SC.Sno AND /* 连接条件*/
o= ‘2’ AND /* 其他限定条件*/
SC.Grade > 90;/* 其他限定条件*/
(3) 嵌套查询一般形式
SELECT-FROM-WHERE <比较符/ 谓词>
SELECT-FROM-WHERE <比较符/ 谓词>
SELECT-FROM-WHERE <比较符/ 谓词>
嵌套查询分类
不相关子查询子查询的查询条件不依赖于父查询
相关子查询子查询的查询条件依赖于父查询
例1:不相关子查询常用IN嵌套