文章目录
- 绪论
- 1. 数据库的四个基本概念
- 1.1 数据
- 1.2 数据库
- 1.3 数据库管理系统
- 1.4 数据库系统
- 2. 数据库系统三级模式和两层映象及独立性
- 2.1 数据库的三级模式结构
- 2.2 数据库的二级映像与独立性
- 3. 数据库系统的组成
- 3.1. 硬件平台及数据库
- 3.2. 软件
- 3.3. 人员
- 第一章
- 1. 关系模型的三个组成部分及各部分所包括的主要内容
- 1.1 数据结构
- 1.2 数据操作
- 1.3 数据的完整性约束条件
- 第四章
- 1. 数据库的安全性问题
- 1.1 数据库安全性
- 2. 数据库管理系统实现数据库安全性控制的常用方法和技术
- 2.1 用户身份鉴别
- 2.2 存取控制
- 数据库的完整性
- 第六章 关系数据库理论
- 1. 规范化理论和优化数据库模式设计的方法
- 1.1 规范化
- 第七章 数据库设计
- 1. 数据库设计方法和步骤
- 数据库设计方法
- 数据库设计的基本步骤
绪论
1. 数据库的四个基本概念
1.1 数据
定义:描述事物的符号记录称为数据
数据的含义称为数据的语义,数据与其语义不可分割
1.2 数据库
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
1.3 数据库管理系统
数据库管理系统是位于用户和OS之间的一层数据管理软件。主要功能包括以下几个方面:
(1)数据定义功能
(2)数据组织、存储和管理
(3)数据操纵功能
(4)数据库的事务管理和运行管理
(5)数据库的建立和维护
(6)其他功能
1.4 数据库系统
数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
2. 数据库系统三级模式和两层映象及独立性
2.1 数据库的三级模式结构
2.1.1 模式
模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工及高级程序设计语言无关。
数据库管理系统提供模式模式数据定义语言(模式DDL)来严格定义模式
2.1.2 外模式
外模式也称子模式或用户模式,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式是保证数据库安全性的一个有力措施
2.1.3 内模式
内模式称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据库内部的组织方式
2.2 数据库的二级映像与独立性
2.2.1 外模式/模式映像
模式描述的数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间对应关系。
当模式发生改变时,由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
2.2.2 模式/内模式映像
数据库中模式和内模式都只有一个,故模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
当数据库的存储结构改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性
3. 数据库系统的组成
3.1. 硬件平台及数据库
要求:
(1)要有足够大的内存,存放OS、数据库管理系统的核心模块、数据缓冲区和应用程序
(2)有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带(或光盘)做数据备份
(3)要求系统有较高的通道能力,以提高数据的传送率
3.2. 软件
主要包括:
(1)数据库管理系统
(2)支持数据库管理系统运行的OS
(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序
(4)以数据库管理系统为核心的应用开发工具
(5)为特定应用环境开发的数据库应用系统
3.3. 人员
(1)DBA
(2)系统分析员和数据库设计人员
(3)应用程序员
(4)用户
第一章
1. 关系模型的三个组成部分及各部分所包括的主要内容
是指关系数据模型的数据结构、关系数据模型的操作集合和关系数据模型的完整性约束。
1.1 数据结构
描述数据的类型、内容、性质以及数据间的联系等
数据结构描述数据库的组成对象以及对象之间的联系
数据结构描述的内容有两类:
(1)一类是与对象的类型、内容、性质有关的
(2)一类是与数据之间联系有关的对象
层次模型:类似于树
(1)有且只有一个节点没有双亲节点,这个节点称为根节点
(2)根以外的其他节点有且只有一个双亲节点
优点:
(1)层次模型的数据结构比较简单清晰
(2)层次数据库的查询效率高
(3)层次数据模型提供了良好的完整性支持
缺点:
(1)现实世界中很多联系是非层次性的,不适合用层次模型表示
(2)如果一个结点具有多个双亲节点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据或创建非自然的数据结构来解决
(3)查询子女结点必须通过双亲结点
(4)由于结构严密,层次命令趋于程序化
网状模型:类似于图
(1)允许一个以上的结点无双亲
(2)一个结点可以有多于一个的双亲
优点:
(1)能够更为直接的描述现实世界
(2)具有良好的性能,存取效率较高
缺点:
(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂
(2)网状模型的DDL、DML复杂,并且还要嵌入某一种高级语言
(3)由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径
关系模型
优点:
(1)关系模型与格式化模型不同,它是建立在严格的数学概念的基础上
(2)关系模型的概念单一
(3)关系模型的存取路径对用户透明
1.2 数据操作
关系模型的数据操纵主要包括查询、插入、删除和更新数据
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
1.3 数据的完整性约束条件
(1)实体完整性:主码不能为空
(2)参照完整性:外码取值有1️⃣空2️⃣非空值时一定为主码中的某个值
(3)用户定义完整性:就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求——用户针对具体应用环境对域值进行约束
第四章
1. 数据库的安全性问题
1.1 数据库安全性
是指保护数据库以防止不合法使用所导致的数据泄露、篡改或破坏
2. 数据库管理系统实现数据库安全性控制的常用方法和技术
2.1 用户身份鉴别
是数据库管理系统提供的最外层的安全保护措施
每个用户标识由用户名和用户标识号UID两部分组成
(1)静态口令鉴别,类似于密码
(2)动态口令鉴别,类似于验证码
(3)生物特征鉴别,如指纹,虹膜,面部识别
(4)智能卡鉴别
(5)入侵检测
2.2 存取控制
存取控制机制主要包括定义用户权限和合法权限检查两部分
-
- 自主存取控制(Discretionary Access Control 简称DAC):
- 用户对不同的数据对象有不同的存取权限。
- 不同的用户对同一对象也有不同的权限。
- 用户还可以将其拥有的存取权限转授给其他用户
# 授予user1关于tablename | viewname所有权利,同时赋予授权权力 grant all priviledges on tablename | viewname to user1 with grant option; # 回收授予user1对tablename插入权力,同时回收user1授予其他用户的此权力 revoke insert on tablename from user1 cascade; # 授予user2关于tablename | viewname 查询权力 grant select on tablename | viewname to user2; # 授予所有用户关于tablename | viewname 查询权力 grant select on tablename | viewname to public; # 收回授权user2对tablename | viewname 查询权力 revoke select on tablename | viewname to user2;
- 强制存取控制(Mandatory Access Control 简称 MAC):
- 每一个数据库对象被标以一定的安全级别。
- 每一个用户被授予某一个级别的许可证。
- 对于任意一个对象,只有具备合法许可证的用户才可以存取。
- 自主存取控制(Discretionary Access Control 简称DAC):
-
视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
-
审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
-
数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
数据库的完整性
数据库的完整性是指数据的正确性和相容性
数据的正确性: 是指数据符合现实世界语义、反映当前实际状况
数据的相容性: 是指数据库同一对象在不同关系表中的数据是符合逻辑的
完整性约束:
- 静态约束:
列完整性、表完整性create table sc(sno char(9) not null, cno char(9) not null, grade int check(g), primary key (sno, cno), # 定义实体完整性 foreign key (sno) references Student(sno), # 表级定义参照完整性 foreign key (cno) references Course(cno) # 表级定义参照完整性 );
动态约束:
断言、触发器
student表主码S#改变是sc表S#也应改变create trigger updS\# after update of S\# on studentreferancing old oldi, new newifor each rowbeginupdate sc set s\# = newi.s# where s\# = :oldi.s#;end;
第六章 关系数据库理论
1. 规范化理论和优化数据库模式设计的方法
1.1 规范化
1.1.1 依赖函数:
非平凡依赖函数
平凡依赖函数
完全依赖函数
部分依赖函数
传递依赖函数
1.1.2 码
码:数据库中唯─能标识一个记录值的内部记录标志符
超码:一个或多个属性的集合,这个集合可以唯一标识一个实体
候选码:关系中一个属性组,其值可以 唯一标识 一个元组,且删去任意属性均不成立,即最小的超码
主码:当关系中存在多个候选码时,选择一个具有实际意义的候选码作为主码
1.1.3 范式
分解时遵守:保持原有的依赖关系、无损链接.
第七章 数据库设计
1. 数据库设计方法和步骤
数据库设计
广义地讲,是数据库及其应用系统的设计,即设计整个数据库应用系统
狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分
“三分技术,七分管理,十二分基础数据”
数据库设计方法
基于E-R模型的设计方法
3NF的设计方法
面向对象的数据库设计方法
统一建模语言UML方法
数据库设计的基本步骤
(1)需求分析阶段
(2)概念结构设计阶段
(3)逻辑结构设计阶段
(4)物理结构设计阶段
(5)数据库实施阶段
(6)数据库运行和维护阶段