前言:博主是在校大二学生,目前正在学习数据库系统概论课程,笔记一直在更新完善,若有不妥的地方,请大家提出宝贵的意见,欢迎大家点赞收藏!!!(万分感谢,预计三月底完成所有笔记更新)
一、数据(data)
1)定义:是数据库中存储的基本对象,描述事物的符号记录
2)种类:数字、文字、图形、图像、音频、视频等
3)特点:数据与其语义是不可分的
二、数据库(DataBase,DB)
1)定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合
2)基本特征:
三、数据库管理系统:
1)定义:是位于用户与操作系统之间的一层数据管理软件。
2)用途:科学地组织和存储数据,高效地获取和维护数据
3)功能:
数据定义功能
提供数据定义语言(DDL):创建、修改、删除
定义数据库中的数据对象的组成与结构
数据组织、存储和管理
分类组织、存储和管理各种数据
确定组织数据的文件结构和存取方式
实现数据之间的联系
提供多种存取方法
数据操纵功能
提供数据操纵语言(DML)
方便用户操纵数据
实现对数据库的基本操作(如查询、插入、删除和修改等)
数据库的事务管理和运行管理
由数据库管理系统统一管理和控制数据库的建立、运用和维护
保证事务的正确运行
保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复
数据库的建立和维护功能
数据库初始数据的输入、转换功能
数据库的转储、恢复功能
数据库的重组织功能和性能监视 、分析功能等
其他功能
数据库管理系统与网络中其他软件系统的通信功能
数据库系统之间或与文件系统的数据转换功能
异构数据库之间的互访和互操作功能
四、数据库系统(DataBase System,DBS)
1)定义:由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
2)构成:
1.人工管理阶段
背景:
特点:
2.文件系统阶段:
背景:
特点:
3.数据库系统阶段:
背景:
特点:
数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别
数据的共享性高、冗余度低且易扩充
数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性
数据独立性高
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的
数据由数据库管理系统统一管理和控制
1)数据的安全性保护
2)数据的完整性检查
3)并发控制
4)数据库恢复
数据模型(data model):是对现实世界数据特征的抽象,是数据库系统的核心和基础
一、概念模型(也称信息模型)
作用:第一次抽象,用于数据库设计
二、逻辑模型和物理模型 :第二次抽象
1)逻辑模型:主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系数据模型、半结构化数据模型等
2)物理模型:是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的
作用:
1.用于信息世界的建模
2.现实世界到信息世界的第一层抽象
3.是数据库设计人员进行数据库设计的有力工具
4.是数据库设计人员和用户之间进行交流的语言
一、信息世界的基本概念
1)实体:客观存在并可相互区别的事物
2)属性:实体所具有的某一特性
3)码:唯一标识实体的属性集称为码
4)实体型:用实体名及其属性名集合来抽象和刻画同类实体
5)实体集合:同一类型实体的集合
6)联系:实体之间的联系通常是指不同实体集之间的联系
二、概念模型的一种表示方法:实体-联系方法
该方法用E-R图来描述现实世界的概念模型,E-R方法也成为E-R模型。
注意:只画直接联系 供应商和厂家之间并不是之间联系,他们之间的联系是建立在零件的基础之上的,如果没有零件,他们不存在任何关系。
1.2.3 数据模型的组成要素
数据模型通常由数据结构、数据操作和数据完整性约束条件三部分组成
一、数据结构:数据结构描述数据库的组成对象以及对象之间的联系,是对系统静态特性的描述
二、数据操作:数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
三、数据的完整性约束条件:一组完整的规则的集合,用以限定复合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容
一、层次模型的数据结构
基本条件:
特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而单独存在
二、层次模型数据库的操纵与完整性约束
操纵:查询、插入、删除、更新
三、层次模型的优缺点
优点:
缺点:
一、网状模型的数据结构
条件:
二、网状模型的数据操纵与完整性约束
一般来说没有层次模型那样严格的约束条件
三、网状模型的优缺点:
优点:
缺点:
一、关系模型的数据结构
关系:表
元组:表中的一行即为一个元组
属性:表中的一列即为一个属性
码:也称码键,通过码可以唯一确定一个元组(比如仅通过一个学号就可以找到一个具体的学生)
域:域是一组具有相同数据类型的值的集合
分量:元组中的一个属性值
关系模型:对关系的描述
**条件:**关系的每一个分量必须是一个不可分的数据项
二、关系模型的数据操纵与完整性约束
分类:
三、关系模型的优缺点
优点:
缺点:
1)型:对某一类数据的结构和属性的说明
2)值:型的一个具体赋值。
3)模式:数据库中全体数据的逻辑结构和特征的描述,它仅仅设计型的描述,不涉及具体的值。4)实例:模式的一个具体值,反应数据库某一时刻的状态,同一个模式可以有很多实例,实例随 数据库中的数据的更新而变动
一、模式:模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只有一个模式
二、外模式:外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据逻辑表示
三、内模式:内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
一、外模式/模式映像
外模式描述的是数据的局部结构,保证了数据的逻辑独立性
二、模式/内模式映像
定义了数据全局逻辑结构与存储结构之间的对应关系,保证了数据的物理独立性
三、数据的存取由DBMS管理的好处:
1)用户不必考虑存取路径等细节
2)简化了应用程序的编制
3)大大减少了应用程序的维护和修改
一、硬件平台及数据库
二、软件
三、人员
1)域:一组具有 相同数据类型的值的集合(整数、实数)
2)笛卡尔积:给定一组域D1, D2,…,Dn,允许其中某些域是相同的。
3)元组:关系中的每个元素是关系中的元组
4)分量:笛卡尔积元素(劣,d2,…,dn)中的每一个值4叫作一个分量
5)基数:若0 (i=1, 2,…,n)为有限集,其基数为m
特点:静态的、稳定的
定义:在一个给定的应用领域中,所有关系的集合构成
型:关系数据库模式,是对关系数据库的描述
值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库
一、常用的关系操作
二、关系操作的特点
集合操作方式:操作的对象和结果都是集合, 一次一集合的方式
三、关系代数语言
用对关系的运算来表达査询要求
四、关系演算语言:用谓词来表达査询要求
五、具有关系代数和关系演算双重特点的语言
代表:SQL (Structured Query Language)
1)实体完整性
2)参照完整性
3)用户定义的完整性
1)实体完整性规则是针对基本关系而言的。
2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
3)关系模型中以主码作为唯一性标识。
4)主码中的属性即主属性不能取空值。
1)关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,自然存在着关系与关系间的引用
2)外码
设_F_是基本关系_R_的一个或一组属性,但不是关系_R_的码。如果F与基本关系_S_的主码Ks相对应,则称F是R的外码
3)参照完整性原则
若属性(或属性组)_F_是基本关系_R_的外码它与基本关系_S_的主码Ks相对应(基本关系_R_和_S_不一定是不同的关系),则对于_R_中每个元组在_F_上的值必须为:或者取空值(_F_的每个属性值均为空值)或者等于_S_中某个元组的主码值
并、差、交、笛卡尔积
选择、投影、连接、除运算
3.1 SQL概述
SQL:结构化查询语言,是关系数据库的标准语言
3.1.1 SQL的产生与发展
目前还没有一个数据库系统能够支持SQL标准的所有概念和特性
3.1.2 SQL的特点
3.1.3 SQL的基本概念
1)基本表
2)存储文件
3)视图
3.2 学生-课程数据库
学生-课程模式S-T:
学生表Student(Sno,Sname,Ssex,Sage,Sdept)
课程表 Course(Cno,Cname,Cpno,Ccredit)
学生选课表SC(Sno,Cno,Grade)
Student
学号
Sno
姓名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
201215121
李勇
男
20
CS
201215122
刘晨
女
19
CS
201215123
王敏
女
18
MA
201215124
张立
男
19
IS
Course
课程号
Cno
课程名
Cname
先行课
Cpno
学分
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
SC表
学号
Sno
课程号
Cno
成绩
Grade
201215121
1
92
201215121
2
85
201215121
3
88
201215122
2
90
201215122
3
80
3.3 数据定义
SQL的数据定义功能:
3.3.1 模式的定义与删除
1)定义模式
2)删除模式
3.3.2 基本表的定义、删除与修改
3.3.3 索引的建立与删除
3.3.4 数据字典
3.4 数据查询
SELECT:指定要现实的属性列
FROM:指定查询对象
WHERE:指定查询条件
GROUP BY:对查询结果按指定列的值分组,该属性列值相等的元组为一个组
HAVING:只有满足指定条件的组才予以输出
ORDER BY:对查询结果表按指定列值的升序或降序排序
3.4.1 单表查询
3.4.2 连接查询
3.4.3 嵌套查询
3.4.4 集合查询
3.4.5 基于派生表的查询
3.4.6 Select语句的一般形式
3.5 数据更新
3.6 空值的处理
3.7 视图
4.1 数据库安全性概述
4.1.1 数据库的不安全因素
1)非授权用户对数据库的而已存取和破坏
2)数据库中重要或敏感的数据被泄露
3)安全环境的脆弱性
4.1.2 安全标准简介
TCSEC/TDI安全级别划分
安全级别
定义
A1
验证设计
B3
安全域
B2
结构化保护
B1
标记安全保护
C2
受控的存取保护
C1
自主安全保护
D
最小保护
CC评估保证级(EAL)划分
评估保证级
定义
TCSEC安全级别
EAL1
功能测试
EAL2
结构测试
C1
EAL3
系统地测试和检查
C2
EAL4
系统地设计、测试和复查
B1
EAL5
半形式化设计和测试
B2
EAL6
半形式化验证地设计和测试
B3
EAL7
形式化验证地设计和测试
A1
4.2 数据库安全性控制
1)非法使用数据库的情况
2)存取控制流程
3)数据库安全性控制的常用方法
4.2.1 用户身份鉴别
用户身份鉴别的方法:
1)静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的
2)动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
3)生物特征鉴别
通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
4)智能卡识别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
4.2.2 存取控制
1)存取控制机制组成
2)用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统
3)常用存取控制方法
4.2.3 自主存取控制方法
An
4.2.4 授权:授予与回收
4.2.5 数据库角色
数据库角色:被命名的一组与数据库操作相关的权限
4.2.6 强制存取控制方法
强制存取控制(MAC)
1、保证更高程度的安全性
2、用户不能直接感知或进行控制
3、适用于对数据有严格而固定密集分类的部门(军事部门、政府部门)
在强制存取控制中,数据库管理系统所管理的全****部实体被分为主体和客体两大类
主体****是系统中的活动实体
1、数据库管理系统所管理的实际用户
2、代表用户的各进程
客体****是系统中的被动实体,受主体操纵(文件、基本表、索引、视图 )
敏感度标记(Label)
1、对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)
2、敏感度标记分成若干级别(绝密、机密、可信、公开)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则
1.仅当主体的许可证级别大于或等于客体的密级时,
该主体才能 读取 相应的客体
2.仅当主体的许可证级别小于或等于客体的密级时,
该主体才能写相应的客体
强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
实现强制存取控制时要首先实现自主存取控制
1.原因:较高安全性级别提供的安全保护要包含较低级别的所
有保护
自主存取控制与强制存取控制共同构成数据库管理系统的****安全机制
4.3 视图机制
1.把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
2.间接地实现支持存取谓词的用户权限定义
4.4 审计
什么是审计
1.启用一个专用的审计日志(Audit Log)
将用户对数据库的所有操作记录在上面
2.审计员利用审计日志
监控数据库中的各种行为,找出非法存取数据的人、时间和内容
3.C2以上安全级别的DBMS必须具有审计功能
审计功能的可选性
1.审计很费时间和空间
2.DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能
3.审计功能主要用于安全性要求较高的部门
An Introd
4.5 数据加密
1.数据加密
防止数据库中数据在存储和传输中失密的有效手段
2.加密的基本思想
根据一定的算法将原始数据—明文(Plain text)变换
为不可直接识别的格式—密文(Cipher text)
3.加密方法
存储加密
传输加密
4.存储加密
1)透明存储加密
内核级加密保护方式,对用户完全透明
将数据在写到磁盘时对数据进行加密,授权用户读取数 时再对其进行解密
数据库的应用程序不需要做任何修改,只需在创建表语
句中说明需加密的字段即可
内核级加密方法: 性能较好,安全完备性较高
2)非透明存储加密
通过多个加密函数实现
5.传输加密
链路加密
在链路层进行加密
传输信息由报头和报文两部分组成
报文和报头均加密
端到端加密
在发送端加密,接收端解密
只加密报文不加密报头
所需密码设备数量相对较少,容易被非法监听者发现并
从中获取敏感信息
4.6 其他安全性保护
1.推理控制
处理强制存取控制未解决的问题
避免用户利用能够访问的数据推知更高密级的数据
常用方法
基于函数依赖的推理控制
基于敏感关联的推理控制
2.隐蔽信道
处理强制存取控制未解决的问题
An Introduction to Database System 其他安全性保护(续)
3.数据隐私保护
描述个人控制其不愿他人知道或他人不便知道的个人
数据的能力
范围很广:数据收集、数据存储、数据处理和数据发
布等各个阶段