第一章 绪论
1. 数据:是数据库中基本的存储对象,描述事物的符号记录称之为数据。
2. 数据库管理系统:是位于用户和操作系统之间的数据管理软件。
3. 数据库系统(DBS):是指由数据库、数据库管理系统、应用系统和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
4. 数据库管理系统提供的语言:
(1) 数据定义语言:用户通过它可以方便地对存储在数据库中的数据对象的组成与结构进行定义。
(2) 数据操纵语言:用户可以使用它操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
5. 数据管理技术的发展:
(1) 人工管理阶段:
a) 数据不保存,应用程序管理数据
b) 批处理
c) 数据无结构
d) 数据不共享
e) 数据不具有独立性(数据与应用程序相互独立),完全依赖应用程序
f) 无结构,冗余度高
(2) 文件系统阶段:
a) 可以长期保存
b) 数据共享性弱,冗余度高
c) 数据独立性弱
d) 有系统文件,文件系统管理
(3) 数据库系统阶段的数据有如下特点:
a) 整体数据结构化
b) 数据的共享性强,冗余度低且易于扩充
c) 数据的独立性强(包括:1)数据的物理独立性强 2)数据的逻辑独立性强)
d) 数据由数据库管理系统统一管理和控制(包括:1)数据的安全性保护 2)数据的完整性检查 3)数据的并发性控制 4)数据库的恢复)
数据库是长期存储在计算机内的有组织、可共享的大量数据的集合。它可以供各种用户共享,具有最小的冗余度和较强的数据独立性。数据库管理系统在数据库建立、运维时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。数据库系统的出现,使信息系统从以加工数据的程序为中心转向以共享的数据库为中心的新阶段,即以软件为中心向以数据为中心的计算平台的迁移。
6. 数据模型也是一种模型,它是对现实世界数据特征的抽象,数据模型是数据库系统的核心和基础。
7. 把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,这个过程称为数据建模。
概念模型->逻辑模型(关系模型)->物理模型
概念模式的一种表现形式:实体-联系模型,简称E-R模型
8. 数据模型的三要素:
(1) 数据结构(描述对象与对象之间的联系)
(2) 数据操纵(是指对数据库各种对象的实例允许执行的操作的集合,包括操作及有关操作的操作规则)
(3) 完整性约束(是一套完整性规则)
9. 数据模型:
(1) 层次模型(一对一,一对多):
优点:1)层次模型的数据结构比较简单清晰
2)层次数据库的查询效率高
3)层次数据模型提供了良好的完整性约束支持
缺点:1)查询子女结点必须通过双亲结点
2)现实世界中很多联系是非层次性的(多对多)
(2) 网状结构:是一种比层次模型更具普遍性的结构。它去掉了层次模型的两个限制,允许多个结点没有双亲结点,且允许结点有多个双亲结点;此外它还允许两个结点之间有多种联系。
优点:1)能够更为直接地描述现实世界
2)具有良好的性能,存取效率较高。
缺点:1)结构比较复杂,而且随着应用环境的扩大数据库的结构变得越来越复杂,不利于最终用户掌握。
2)由于记录类型之间的联系是通过存取路径实现的,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。
(3) 关系模型:关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项。必须满足关系完整性约束(实体完整性,参照完整性,用户定义的完整性)。
优点:1)关系模型是建立在严格的数学概念模型基础上的
2)关系模型的概念单一
3)关系模型的存储路径对用户隐蔽
缺点:1)效率不如层次结构和网状结构
2)增大了开发关系数据库管理系统的难度
10. 三级模式结构:这是数据库系统内部的体系结构
模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态
(1) 模式/全局模式/逻辑模式:是所有用户的公共数据视图,一个数据库对应一个数据库模式(核心,关键)
(2) 外模式/用户模式/子模式:它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。外模式是数据库用户的数据视图。一个数据库可以有多个外模式。外模式是保证数据库安全性的一个有力措施。用户只能访问到外模式中的数据。数据库中的其他数据是看不到的
(3) 内模式/物理模式/存储模式:一个数据库只有一个内模式。它是对数据物理结构和存储方式的描述,是数据在数据库内的组织方式
(4) 外模式/模式映像:模式描述的是全局逻辑结构,外模式描述的是数据的局部逻辑结构,一个模式可以对应多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像来定义该模式与外模式之间的对应关系。当模式改变的时候,数据库管理员对各个外模式/模式映像做出相应的改变,保持外模式不变,应用程序是依据外模式编写的,因此应用程序不用做出改变,保证了数据和程序的逻辑独立性
(5) 模式/内模式映像:数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当存储结构发生改变时,改变模式/内模式映像,可以使模式保持不变,因此程序也不必改变。
11. 数据库系统的组成:
(1) 硬件平台
(2) 软件平台
(3) 人员:数据库管理员,系统分析师,数据库设计员,应用程序员,最终用户
第二章 关系模型
1. 关系的基本类型:
(1) 基本关系:基本表/基表
(2) 查询结果:临时表
(3) 视图:虚表。是由基本表或其他视图导出的虚表,不储存实际数据
2. 候选码:若关系模式中的某一个属性或一组属性的值能唯一地标识一个元组,而它的真子集不能唯一地标识一个元组,则称该属性或属性组为候选码(candidate key)。
3. 主码:若一个关系有多个候选码,则选定其中一个为主码,或称主键。
4. 全码:关系模式的所有属性是这个关系模式的候选码。
5. 候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。
6. 基本的关系操作:
(1) 查询操作:选择、投影、连接、除、并、差、交、笛卡尔积(其中选择、投影、并、差、笛卡尔积是五种基本操作)
(2) 更新操作:插入、删除、修改
7. 关系的完整性:
(1) 实体完整性约束:主属性不能为空
(2) 参照完整性约束:外码 1) 或者取空值 2) 或者等于S中某个元组的主码值
(3) 用户定义的完整性
*注:实体完整性约束和参照完整性约束被称为关系的两个不变性*
8. 关系代数
(1) 集合运算符:并,差,交,笛卡尔积(关系代数以集合运算为基础):
(2)专门关系运算符:选择: σ 投影: Π 连接:(⋈)①左外连接(⟕)②右外连接(⟖) ③全外连接(⟗)除: ÷
练习:
基于以下三个关系student(sno,sname,ssex,sage,sdept), couse(cno,cname,cpno,credit), sc(sno,cno.grade)用关系代数表达下列查询。
1.查询计科系女生的学号与姓名
2.查询所选课程至少有一门成绩大于70分的学生的学号
3.查询所选课程成绩全部大于70分的学生的学号
4.查询既选修了1号课程又选修了3号课程的学生学号
5.查询选修了1号课程但没有选修3号课程的学生学号
6.查询选修了1号课程或选修了3号课程的学生学号
7.查询每门课的直接先修课程号
8. 查询每门课的间接先修课程号
9.查询选修了数据库这门课的学生的学号与姓名
10.查询选修了全部课程的学生的学号与姓名
第三章 SQL语句
1. SQL特点
(1) 功能综合且风格统一
(2) 数据操纵高度非过程化
(3) 面向集合的操作方式
(4) 以统一的语法结构提供多种使用方式
(5) 语言简洁且易学易用
*注:SQL集DDL(数据定义)、DML(数据操纵)、DCL(数据控制)功能于一体*
2. 基本概念
(1) 基本表:独立存在的表,一个关系对应一个基本表
- 一个或多个基本表对应一个存储文件
- 索引存放在存储文件中
(2) 存储文件:组成数据库内模式
- 逻辑结构+物理结构
- 物理结构由DBMS确定
(3) 视图:只存储定义,不存储数据
- 数据仍存放在导出视图的基本表中
3. 模式操作
(1) 创建模式:
`CREATE SCHEMA [模式名] AUTHORIZATION [用户名]`
*示例:CREATE SCHEMA test AUTHORIZATION dba*
(2) 默认规则:未指定模式名时,用户名即模式名
(3) 删除模式:
`DROP SCHEMA <模式名> <CASCADE|RESTRICT>`
a) CASCADE:删除模式及所有对象
b) RESTRICT:仅当无对象时删除
4. 索引管理
(1) 创建唯一索引:
`CREATE UNIQUE INDEX 索引名 ON 表名(列名 次序,...)`
(2) 创建聚簇索引:
`CREATE CLUSTER INDEX 索引名 ON 表名(列名 次序,...)`
(3) 修改索引名:
`ALTER INDEX 旧索引名 RENAME TO 新索引名`
(4) 删除索引:
`DROP INDEX 索引名`
5. 视图详解
(1) 创建视图:
`CREATE VIEW 视图名(列名,...) AS <子查询> [WITH CHECK OPTION]`
*示例:CREATE VIEW CS_View AS SELECT * FROM student WHERE sdept='CS'*
(2) WITH CHECK OPTION:确保操作满足视图条件
(3) 必须指定列名的三种情况:
a) 目标列为表达式或聚集函数
b) 多表连接存在同名列
c) 需要重命名列
(4) 视图特性:定义存数据字典,查询时动态生成
(5) 删除视图:
`DROP VIEW 视图名 [CASCADE]`
*CASCADE级联删除导出视图*
(6) 视图消解:查询时转换为基本表查询
(7) 更新限制:含聚集函数的视图不可更新
(8) 视图优势:
a) 提供数据安全保护
b) 增强逻辑独立性
c) 简化用户操作
d) 多角度呈现数据