四个基本概念
- 数据Data
- 定义: 描述事物的符号记录
- 特点: 数据与其语义是不可分的
- 数据库Database DB
- 定义 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 基本特征:
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
- 三个基本特点 永久储存、有组织、可共享
- 数据库管理系统Database Management System DBMS
- 基础软件
- 科学地组织和存储数据、高效地获取和维护数据
- 主要功能:
- 数据定义功能: 数据定义语言(DDL Data Definition Language)
- 数据组织、存储和管理
- 数据操纵功能 : 数据操纵语言(DML Data Manipulation Language)
- 数据库的事务管理和运行管理 (数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复)
- 数据库的建立和维护功能
- 其它功能(DBMS与网络中其它软件系统的通信 \ 两个DBMS系统的数据转换\异构数据库之间的互访和互操作)
- 数据库系统 DBS
- 组成:
- 数据库
- 数据库管理系统
- 应用程序
- 数据库管理员
- 特点
- 数据结构化
- 数据的共享性高,冗余度低,易扩充
- 数据独立性高
- 数据独立性(包括物理独立性、逻辑独立性)数据独立性是由DBMS的二级映像功能来保证的
- 物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
- 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
- 数据独立性(包括物理独立性、逻辑独立性)数据独立性是由DBMS的二级映像功能来保证的
- 数据用DBMS统一管理和控制
- (1)数据的安全性(Security)保护
- (2)数据的完整性(Integrity)检查
- (3)并发(Concurrency)控制
- (4)数据库恢复(Recovery)
- 组成:
数据模型
数据模型是严格定义的一组概念的集合。精确地描述了系统的静态特性、动态特性和完整性约束条件。
- 组成部分
- 数据结构
- 数据操作
- 完整性约束条件
- 概念模型
- 实体 entity
- 属性 attribute 唯一标识实体的属性集称为码。
- 码 key
- 实体型 entity type 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
- 实体集 entity set 同一类型实体的集合称为实体集
- 联系 relationship
- 逻辑模型
- 网状模型
- 层次模型
- 关系模型
- 关系(Relation)二维表
- 元组(Tuple)一行记录
- 属性(Attribute) 列
- 码 (Key) 表中的某个属性组,它可以唯一确定一个元组。
- 域 (Domain) 属性的取值范围
- 分量 元组中一个属性值
- 关系模式 对关系的描述。一般格式为 关系名(属性1,属性2,…,属性n)
- 关系必须是规范化的,满足一定的规范条件。最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表 .
- 面向对象模型
- 对象关系模型
- 半结构化数据模型
- 物理模型
数据库系统结构
- 型(Type) 对某一类数据的结构和属性的说明
- 值(Value) 是型的一个具体赋值
- 模式(Schema)
- 数据库逻辑结构和特征的描述
- 是型的描述
- 反映的是数据的结构及其联系
- 模式是相对稳定的
- 实例(Instance)
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
- 数据库系统的三级结构模式
- 外模式 external schema (局部逻辑结构 )(数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述)
- 模式(逻辑模式)schema (公共数据视图)(数据库中全体数据的逻辑结构和特征的描述)
- 内模式 internal schema (数据物理结构和存储方式的描述)
- 数据库的二级映像功能 -> 保证了数据的逻辑独立性 与 物理独立性
- 外模式/模式 映像 保证了数据与程序的逻辑独立性
- 模式/内模式 保证了数据与程序的物理独立性
关系数据结构及其形式化定义
-
关系模型:
- 关系数据结构
- 关系操作集合
- 关系完整性约束
-
域 具有相同数据类型的值的集合。
-
给定一组域D1、D2、…,D1xD2x…xDn的子集叫做再域D1,…Dn上的关系。n是关系的目或度
-
元组:关系中的每个元素是关系中的元组,通常用t表示。不区分其中分量的顺序
-
候选码(Candidate key):关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码 (最小能标识一个元组的属性组)
-
全码(All-key)关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
-
主码 (Primary Key) 若一个关系有多个候选码,则选定其中一个为主码(Primary key)
-
主属性 (Prime attribute) 候选码的诸属性称为主属性。不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)
-
基本关系的性质:
- 列是同质的(Homogeneous) (来自同一个域)
- 不同的列可出自同一个域
- 列的顺序无所谓,,列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 行的顺序无所谓,行的次序可以任意交换
- 分量必须取原子值
-
关系模式(Relation Schema)是型
-
关系是值
-
关系模式是对关系的描述
-
关系模式可以形式化地表示为:
R(U,D,DOM,F)
R 关系名
U 组成该关系的属性名集合
D 属性组U中属性所来自的域
DOM 属性向域的映象集合
F 属性间的数据依赖关系集合 -
关系模式通常可以简记为 R(U)或R (A1,A2,…,An)(A1,A2,…,An : 属性名)
-
关系的三类完整性约束:
- 实体完整性:主属性不能为空(若属性A是基本关系R的主属性,则属性A不能取空值)
- 参照完整性:不允许引用不存在的实体(或者取空值(F的每个属性值均为空值)或者等于被参照关系中某个元组的主码值)
- 用户定义的完整性
-
关系的两个不变性:实体完整性 和 参照完整性 称为关系的两个不变性,应该由关系系统自动支持
-
关系代数运算
- 交、并、差 、笛卡尔积 (实体型必须同型(具有相同的目,且对应的属性取自同一个域))
- 选择、投影(去除重复的列)、连接、除
- 外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。
- 左外连接:如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)
数据库安全性
-
TCSEC/TDI
- A1 验证设计
- B3 安全域
- B2 结构化保护
- B1 标记安全保护 --> 强制存取控制
- C2 受控的存取保护 --> 自主存取控制
- C1 自主安全保护
- D 最小保护
-
CC
- EAL1 功能测试(functionally tested)
- EAL2 结构测试(structurally tested) --> C1
- EAL3 系统地测试和检查(methodically tested and checked) --> C2
- EAL4 系统地设计、测试和复查(methodically designed, tested, and reviewed) --> B1
- EAL5 半形式化设计和测试(semiformally designed and tested) --> B2
- EAL6 半形式化验证的设计和测试(semiformally verified design and tested) --> B3
- EAL7 形式化验证的设计和测试(formally verified design and tested)–> A1
-
数据库安全常用的控制方法:
- 用户标识和鉴别
- 存取控制
- 自主存取控制(Discretionary Access Control):用户对于不同的数据库对象有不同的存储权限,不同用户对同一对象也有不同的权限。
- 强制存取控制(Mandatory Access Control,简称 MAC):每个数据库对象标以一定的密级,每个用户被授予一定级别的许可证。
- DAC与MAC共同构成DBMS的安全机制。实现MAC时要首先实现DAC(原因:较高安全性级别提供的安全保护要包含较低级别的所有保护)
- 先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查
- 视图
- 审计
- 将用户对数据库的所有操作自动记录下来存入审计日志(audit log)
- C2以上安全级别的DBMS必须具有
- 审计事件类别:服务器事件、系统权限、语句事件、模式对象事件,用户鉴别、自主访问控制和强制访问控制事件
- 审计分为:用户级审计、系统级审计
- 密码储存
- 储存加密
- 传输加密
-
强制存取控制 密级:绝密(Top Secret TS) >= 机密(Secret S) >= 可信(Confidential C) >= 公开(Public)
- 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
- 仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体
- 修正规则: 主体的许可证级别小于等于客体的密级->主体能写客体
- 禁止了拥有高许可证级别的主体更新低密级的数据对象
-
数据库管理系统的安全性:
- 安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。
- 数据库关系管理系统的安全功能可以划分为用户管理和数据库操作权限管理两部分。
- 安全系统的核心问题是身份识别。
SQL
Structured Query Language – 结构化查询语言,是关系数据库的标准语言
- 功能:数据查询、数据操纵、数据定义、数据控制
- 特点:
- 综合统一
- 高度非过程化
- 面向集合的操作方式
- 以同一种语法结构提供多种使用方式
- 语言简洁,易学易用
数据库的完整性
- 正确性
- 相容性