数据库系统概论期中复习——基础篇
1 绪论
1.1 数据库系统概述
- 数据库的四个基本概念:
- 数据:描述事物的符号记录称为数据
- 数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合
- 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性
- 特点:永久存储、有组织、可共享
- 数据库管理系统:计算机的基础软件(位于用户与操作系统之间)
- 数据的定义(DDL)、组织、存储、管理、操纵(DML)功能
- 数据库的事务管理和运行管理、数据库的建立和维护功能、其他功能
- 数据库系统:由数据库、数据库管理系统(及其开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统
- 数据管理技术经历了人工管理、文件系统、数据库系统三个阶段:
- 人工管理:数据不保存、应用程序管理数据、数据不共享、数据不具有独立性
- 文件系统:数据可长期保存、由文件系统管理数据、数据共享性差、冗余度大、数据独立性差
- 数据库系统
- 数据结构化:不仅数据内部是结构化的,而且整体式结构化的,数据之间是具有联系的,这个联系由数据库管理系统维护。不仅存储结构化,存取的方式也很灵活,可以细化到一条记录,而文件系统存取单位是记录。
- 数据的共享性高、冗余度低且易扩展:数据共享减少数据冗余,还能避免数据之间的不相容性和不一致性。面向整个系统使得数据库系统弹性大,易于扩充。
- 数据独立性高:物理独立性(物理存储)与逻辑独立性(逻辑结构)保证数据和程序的独立性。数据独立性是由数据库管理系统提供的二级映像功能保证的。
- 数据由数据库管理系统统一管理和控制:包括:数据的安全性保护(防止不合法使用造成的数据泄密和破坏)、数据的完整性检查(数据的正确性、有效性、相容性)、并发控制、数据库恢复
1.2 数据模型
- 数据模型是对现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作。三要素:数据结构(描述数据库的组成对象及对象之间的联系,根据数据结构的类型来命名数据模型——对系统静态特征的描述)、对数据的操作(对数据库中的各种对象的实例允许执行的操作的集合,查询+更新(插入、删除、修改)——对系统动态特征的描述)和对数据的完整性约束(实体完整性+参照完整性)
- 分类:
- 概念模型:用于数据库设计
- 逻辑模型:包括层次模型、网状模型、关系模型、面向对象模型、对象关系数据模型、半结构化数据模型。主要用于数据库管理系统的实现
- 物理模型:描述数据在系统内部、磁盘或磁带上的表示方式和存取方式,是面向计算机系统的
- 概念模型
- 几个概念:实体、属性、码、实体型、实体集、联系
- 概念模型的表示方法:E-R图(实体-联系法Entity-Relationship approach)
- 逻辑模型
- 层次模型——树:一个根节点,其他节点有且只有一个父节点。插入时,如果没有相应的父节点就没办法插入;删除时,删除父节点则删除一整枝。
- 网状模型——网:允许一个以上的结点无双亲,一个节点可以有多于一个的双亲。
- 关系模型:
- 每个关系数据的结构是一张规范化的二维表
- 基本概念:关系(一张表)、元组(表里的一行)、属性、码、域、分量(元组的属性值,每个分量不可分)、关系模式R(U,F)
1.3 数据库系统的结构
- 从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的系统结构
- 从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器 / 数据库服务器多层结构等,这是系统外部的体系结构
- 模式:数据库中全体数据的逻辑结构和特征的额描述,仅涉及型的描述,不涉及具体的值,同一个模式可以有很多实例,相对稳定
- 数据库系统的三级结构模式
- 模式——数据库中全体数据的逻辑结构和特征的额描述,所有用户的公共数据视图,一个数据库只有一个模式,用DDL定义模式
- 外模式:数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用给有关的数据的罗吉表示,通常是模式的子集,应用程序根据外模式编写
- 内模式:存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式(比如:升序降序、聚簇存储、B+树索引、hash索引,是否压缩是否加密)
- 数据库的二级映像功能与数据独立性:
- 外模式 / 模式映像:保证了数据与程序的逻辑独立性
- 模式 / 内模式映像:保证了数据与程序的物理独立性
1.4 数据库系统的组成
2 关系数据库
2.1 关系数据结构及形式化定义
- 关系
- 候选码:某一属性组的值能唯一地标识一个元组,其子集不能(全码是针对候选码说的)
- 主码:若一个关系中有多个候选码,选修顶一个作为主码
- 主属性:包含在任何一个候选码中的属性
- 规范化的关系称为范式
- 关系模式:关系是关系模式在某一时刻的状态或内容,关系模式是静态的、稳定的,关系是动态的、随时间不断变化的。
2.2 关系操作
- 关系模型中常用的关系操作包括查询操作(分为:选择、投影、连接、除、并、交、差、笛卡尔积)和插入、删除、修改操作两大部分,操作的对象都是集合
- 关系操作的表示方法:关系代数、关系演算,介于关系代数和关系演算之间的SQL结构化查询语言
2.3 关系的完整性
- 实体完整性:主属性不为空
- 参照完整性:关系A中的属性a(不是码)是参照关系B中的属性b的(b必须是B中的主码),则a是A的外码,则a的取值或者为空,或者为B中b的取值
- 用户定义的完整性
2.4 关系代数
- 传统的集合运算:并、交、差、笛卡尔积
- 专门的关系运算:选择、投影、连接、除
3 关系数据库标准语言SQL
3.1 概念性的东西
3.2 数据定义
- 概述:
- 操作对象:模式SCHEMA、表TABLE、视图VIEW、索引INDEX
- 操作方式:创建CREATE、删除DELETE、修改ALTER
- **注意:**模式和视图不可以修改
- 创建模式,用户就要有数据库管理员权限或者是获得了管理员授予的权限
- 模式操作
CREATE SCHEMA<模式名>AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
DROP SCHEMA<模式名><CASCADE|RESTRICT>
- 基本表操作
- 基本表属于模式,所以创建的时候
CREATE TABLE "S-T".Student(...);
- 也可以设置搜索路径
SET search_path TO "S-T",PUBLIC;
CREATE TABLE<>(<列名><数据类型>[列级完整性约束条件]
[,<列名><数据类型>[列级完整性约束条件]]
...
[,<表级完整性约束条件>]);
ALTER TABLE<表名>
[ADD[COLU