数据库系统概论
文章目录
前言
`针对数据库系统概论期末知识点的复习。
1.绪论
1.1数据库的四个基本概念
数据:数据库中存储的基本对象,描述事物的符号记录,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库:长期存储再计算机内有组织,可共享的大量数据的集合。
数据库管理系统:位于用户与操作系统之间的数据管理软件。
数据库系统:由数据库,数据库管理系统(及其应用开发工具),应用系统和数据库管理员组成的存储,管理,处理和维护数据的系统。
1.2数据库管理技术的产生和发展
1.人工管理阶段
2.文件系统阶段
3.数据库系统阶段:数据共享性强,数据独立性强
1.3数据独立性
数据的独立性:指应用程序与数据(定义)相分离。包括物理独立性 和逻辑独立性 。
物理逻辑性:指用户的应用程序与数据库中数据的物理存储 是相互独立的。
逻辑独立性:指用户的应用程序与数据库中数据的逻辑结构是相互独立的。
1.4数据安全性和完整性
数据的安全性:指保护数据以防不合法使用造成数据泄露和破坏。(防范的是非法用户和非法操作存取数据库中的正确数据)
数据的完整性:指数据的正确性,有效性和相容性。(阻止合法用户通过合法操作向数据库中加入不正确数据)
1.5三大模型
1.5.1层次模型
在层次模型中,每个节点表示一个记录类型,记录类型之间的联系用连线表示,联系为双亲节点与子女节点之间的一对多(一对一)联系。
注:记录是实体的表示。
满足条件:1有且只有一个根节点。2.子节点有且只有一个双亲节点

1.5.2网状模型
网状模型去除了层次模型的两个限制:
1.允许多个节点没有双亲节点
2.且允许多个节点有多个双亲节点
此外,它还允许两个结点有多种联系(如:多对多)

1.5.3关系模型
先了解几个简单概念:
1.元组:表中一行即为一个元组
2.码:表中某一个或一组属性,其值可以唯一确定一个元组。
3.关系模式:对关系的描述,表示:关系名(属性1,属性2,属性3...)
关系模式数据结构是一张二维表:

1.6三级模式结构
数据库采用模式(逻辑模式),外模式和内模式三级模式结构。
模式:也称逻辑模式,是数据库中全体 数据的逻辑结构和特征的描述。是所有 用户的公共数据视图,一个数据库对应一个模式。
外模式:也称子模式或用户模式,是数据库用户能看到的局部 数据的逻辑结构和特征描述。一个数据库可以有多个外模式。
内模式:也称物理模式或存储模式,是对数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
1.7两级映像
1.外模式/模式映像(多个):因为模式描述的是全局逻辑结构,而外模式是局部的,所以数据库系统会对每一个外模式进行映像,定义外模式和模式之间的关系 。
2.模式/内模式映像(唯一):内模式和模式都是唯一的,所以也只有一个模式/内模式映像,定义了数据全局逻辑结构与存储结构之间的对应关系。
2.关系模型
2.1关系相关概念
1.候选码:关系模式中,码的真子集不可唯一标识一个元组,则称为候选码。(候选码的诸属性被称为主属性,不包含在任何候选码中的属性称为非主属性)。
注: 一个关系中可能有多个候选码,则选定一个作为主码。且当所有属性都为候选码的时候,称为全码。
2.关系数据库系统:支持关系模型的数据库系统。
3.关系数据库模式:关系数据库中所有关系模式的集合,是对关系数据库的描述。
4.关系数据库:所有关系模式在某一时刻对应的关系的集合。
5.关系三种类型:基本关系(基本表),查询结果和视图。
基本关系:实际存在的表,是实际存储数据的逻辑表示。
查询结果:是查询执行产生的结果对应的临时表。
视图:基本表或其他视图导出的数据的逻辑表示的虚表,不存储实际数据(实际不存在),是关系数据库系统提供给用户多角度观察数据的机制
2.2关系的完整性及其约束
完整性约束是一组完整性规则
1.实体完整性:在create table中使用primary key定义,单属性构成的码定义为列级或表级。
实体完整性约束:若一个属性(或一组属性)是基本关系中的主属性,则不能取空值。
2.参照完整性:在create table中用foreign key 短语定义哪些列为外码,用references短语指明这些外码参照哪些表的主码。
参照完整性约束:若属性(属性组)A是基本关系R的外码,且A对应另一基本关系S主码,则满足:1.或者取空值2.或者等于S中某个主码的值。(即若存在,则必须和S中的值对应上)
实体完整性和参照完整性是关系模型必须满足的完整性约束。
3.用户定义的完整性:对某一具体应用必须满足的语义要求。
2.3关系数据库的基本特征
①元组(行)个数是有限的------元组个数有限性。
②元组(行)均不相同------元组的唯---性。
③元组(行)的次序可以任意交换------元组的次序无关性。
④元组(行)的分量是不可分割的基本特征------元组分量的原子性。
⑤属性(列)名各不相同------属性名唯---性。
⑥属性(列)与次序无关,可以任意交换------属性的次序无关性。
⑦属性(列)的分量具有与该属性相同的值域------分量值域的统---性。
3.SQL
3.1交互式SQL与嵌入式SQL
交互式SQL:指通过用户与数据库系统进行实时的交互,用户可以直接在数据库系统命令行界面中输入sql语句,并得到结果。
嵌入式SQL:指将SQL语句嵌入到程序代码中,通过编程语言的API来执行SQL语句。被嵌入的程序设计语言称为宿主语言。
3.2数据定义,数据查询,数据更新
数据定义语言(DDL):
创建:create schema/table/view/index
删除:drop schema/table/view/index
修改:alter table/index
在删除操作等,需要指定cascade/restrict
cascade:若有关联对象,也全部删除。
restrict:若存在关联对象,则不删除。
数据查询语言(DQL):
select * from 表名
where 条件表达式(不可接聚集函数)
(在where后接select查询结果,则称为嵌套查询,外为父查询,内为子查询)
group by 列名 (having 条件表达式 可接聚集函数)
order by 列名
limit 行数
select... 表名 inner join 表名 on 条件:内连接,返回匹配元组
select... 表名 left (outer) join 表名 on 条件:左外连接,返回左表元组,右表匹配元组。
select... 表名 right (outer) join 表名 on 条件:右外连接,返回右表元组,左表匹配元组。
like:模糊匹配,%匹配任意字符,_匹配单个字符。
is null:空值判断
数据操纵语言(DML):
insert into 表名 列名... values(列值...)
update 表名 set ... where 条件
delete from 表名 where 条件
还有DCL,下文论述
4.数据库安全性
4.1存取控制
自主存取控制:用户对于不同数据库对象有不同存取权限,不同用户对同一对象也有不同权限,用户可以将其拥有的存取权限转授给其他用户。
强制存取控制:每一个数据库对象都被标记一定的密级,每一个用户也被授权某一个级别的许可证,对于任意对象,只有具有合法许可证的用户才可以存取。
主要通过**DCL(数据控制语言)**进行授权和撤销,包括
grant,revoke。
注:大型数据库管理系统都支持自主存取控制
4.2审计
审计系统:提供了一种事后检查的安全机制。
审计功能把用户对数据库的所有操作自动记录下来放入审计日志。
(浪费时间和空间)
5.数据库设计
5.1设计步骤
1.需求分析阶段
2.概念结构设计阶段
3.逻辑结构设计阶段
4.物理结构设计阶段
5.数据库实施阶段
6.数据库运行和维护阶段