目录
第1章 绪论
一、数据库的4个基本概念
二、数据库系统的特点
三、概念模型在信息世界中重要的基本概念
四、关系模型
五、数据库系统的结构
第2章 关系数据库
一、关系数据结构及形式化定义
二、数据库系统的特点
三、关系的完整性
四、关系代数
第3章 关系数据库标准语言SQL
一、数据的定义
二、查询Query
第4章 数据库安全性
一、安全标准</a
二、数据库安全性控制
三、试图机制
四、数据加密
第5章 数据库完整性
一、三大完整性
二、触发器(trigger) 存储过程
数据是数据库中存储的基本对象。描述事物的符号记录称为数据。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
2.数据库(DataBase,DB):数据库时长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
3.数据库管理系统(DataBase Management System,DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统提供的语言功能:数据定义语言DDL、数据操纵语言DML。
4.数据库系统(DataBase System,DBS):数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。一般简称数据库系统为数据库。
二、数据库系统的特点❖数据结构化
结构化是指数据以结构方式存储(字段名,记录组成的二维表);而不是以文本(无结构)、HTML(半结构化)等方式存储
❖数据的共享性高,冗余度低且易扩充
❖数据独立性高
❖物理独立性
◼ 指用户的应用程序与数据库中数据的物理存储是相互独立的。即:当数据的物理存储改变了,应用程序不用改变。
❖逻辑独立性
◼ 指用户的应用程序与数据库的逻辑结构是相互独立的。即:数据的逻辑结构改变了,应用程序不用改变。
❖数据由DBMS统一管理和控制
三、概念模型在信息世界中重要的基本概念(1)实体:客观存在并可相互区别的事物称为实体( 可以是具体的人、事、物或抽象的概念)
(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
(3)码:唯一标识实体的属性集称为码。如学号是学生实体的码。
(4)实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型。如学生(学号,姓名,性别,院系,出生年月)。
(5)实体集:同一类型实体的集合称为实体集。如全体学生。
(6)*实体之间的联系通常是指不同实体集之间的联系。有一对一,一对多,多对多等类型。
关系模型由一组关系构成,每个关系的数据结构是一张规范化的二维表。下面是相关术语。
- 关系:一个关系对应通常说的是一张表。
- 元组:表中的一行即为一个元组,也就是一个实体。
- 属性:表中的一列即为一个属性,给每一个属性起一个名称即为属性名。
- 码:也称为码键。表中的某个属性组,可以唯一确定一个元组。
- 域:是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
- 分量: 元组中的一个属性值
- 关系模式: 对关系的描述,一般表示为 关系名(属性1,属性2,···,属性n)
型(Type): 对某一类数据的结构和属性的说明
值(Value): 是型的一个具体赋值
❖模式(Schema)
◼ 数据库逻辑结构和特征的抽象描述
◼ 是型的描述,不涉及具体值
◼ 反映的是数据的结构及其联系
◼ 模式是相对稳定的
❖实例(Instance)
◼ 模式的一个具体值
◼ 反映数据库某一时刻的状态
◼ 同一个模式可以有很多实例
◼ 实例随数据库中的数据的更新而变动
数据库系统的三级模式结构是指数据库系统是由外模式 、模式和 内模式三级构成,如图所示
(1)模式(也称逻辑模式)
是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式。是数据库系统模式结构的中间层
(2)外模式(也称子模式或用户模式)
是用户使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
介于模式与应用之间。
(3)内模式(也称存储模式)
是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式
关系:
单一的数据结构
现实世界的实体及实体间的各种联系均用关系来表示
二维表: 逻辑结构
给定一组域D1,D2,…,Dn,允许其中某些域是相同的。 D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1,d2,…,dn)|diDi,i=1,2,…,n}
例如:
假设集合A={a, b},集合B={0, 1, 2},
则两个集合的笛卡尔积:
A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
例如:在A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}中,(a, 0), (a, 1) 等 都是2元组
笛卡尔积元素(d1,d2,…,dn)中的每一个值di 叫作一个分量
例如:a,b,0,1等都是分量
基数:若Di(i=1,2,…,n)为有限集,其基数为mi(i=1, 2,…,n),则D1×D2×…×Dn的基数M为:
例如:集合A={a, b}基数为2,集合B={0, 1, 2}基数为3, A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}的基数为2×3=6
关系是一个二维表。表的每行对应一个元组,表的每列对应一个属性。
❖ 候选码:
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。简单的情况:候选码只包含一个属性。最极端的情况:所有属性组是候选码,称为全码(第六章详解 P186)
❖ 主码:
若一个关系有多个候选码,则选定其中一个为主码
❖ 主属性:
候选码的诸属性称为主属性。不包含在任何侯选码中的属性称为非主属性或非码属性。
关系的三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。
4.关系模式关系的描述称为关系模式。表示为R(U, D, DOM, F)。
R 关系名
U 组成该关系的属性名集合
D U中属性所来自的域
DOM 属性向域的映象的集合
F 属性间数据的依赖关系的集合
(数据依赖将在第六章详细叙述)
例:导师(SUPERVISOR)和研究生(POSTGRADUATE)出自同一个域——人(PERSON),在模式中定义属性向域的映象,说明它们分别出自哪个域:
DOM(SUPERVISOR)
= DOM(POSTGRADUATE)
= PERSON
123
二、关系操作
❖ 常用的关系操作
◼ 查询:
选择、投影、连接、除、并、差、交、笛卡尔积
(选择、投影、并、差、笛卡尔基是5种基本操作) 【 2.4节关系代数详细讲解这部分内容】
◼ 更新:插入、删除、修改
三大完整性原则分别是:实体完整性、参照完整性、用户自定义完整性。
1.实体完整性若属性A是基本关系R的主属性,则属性A不能取空值。可以简单记忆为:主属性不能为空
2.参照完整性关系间的引用
比如:学生实体、专业实体(主码用下划线表示)。学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名)。这个例子中: 学生关系引用了专业关系的主码 “专业号”,学生关系中的 “专业号”值必须是 确实存在的专业的专业号。
外码(FOREIGN KEY)
设F是基本关系R的一个或一组属性,但不是关系R的码(ps:码可唯一确定一个元组)。如果F与基本关系S的主码Ks相对应,则称F是R的外码,基本关系R称为参照关系(Referencing Relation),基本关系S称为被参照关系(Referenced Relation)。
参照完整性原则:
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks 相对应,则对于R中每个元组在F上的值必须为:
要么取空值(F的每个属性值均为空值),要么等于S中某个元组的主码值
简单记忆:外码要么为空,要么源自于被参照关系的主码。
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。如年龄必须是10~25岁。
四、关系代数一种抽象的查询语言,用对关系的运算来表达查询。
再谈笛卡尔积
❖ 严格地讲应该是广义的笛卡尔积
◼ R: n目关系,k1个元组
◼ S: m目关系,k2个元组
❖ R×S
◼ 列:(n m)列元组的集合
⚫元组的前n列是关系R的一个元组
⚫后m列是关系S的一个元组
◼ 行: k1×k2个元组(基数)
⚫R×S = {tr ts |tr R ∧ tsS }
2.投影 π:从R中选择出若干属性列组成新的关系,投影操作主要是从列的角度进行运算。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)σF® = {t|tR∧F(t)= ‘真’}
F:选择条件,是一个逻辑表达式,取值为“真”或“假”
查询信息系(IS系)全体学生。
σSdept = ‘IS’ (Student)
3.连接 ⋈:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。πA® = { t[A] | t R } A:R中的属性列
查询学生关系Student中都有哪些系。去掉了重复的
πSdept(Student)
R连接符号 条件 S = { | tr R ∧ ts S ∧ tr[A]θts[B] }
❖两类常用连接运算
◼ 等值连接(equijoin)
⚫ θ为“=”的连接运算称为等值连接
⚫从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
◼自然连接(Natural join)
⚫自然连接是一种特殊的等值连接
➢两个关系中进行比较的分量必须是相同的属性组
➢在结果中把重复的属性列去掉
⚫自然连接的含义
❖悬浮元组(Dangling tuple)
◼ 两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍 弃了,这些被舍弃的元组称为悬浮元组。
❖外连接(Outer Join):如果把悬浮元组也保存在结果关系中,而在其他属性上,填空值(Null),就叫做外连接
◼ 左外连接(LEFT OUTER JOIN或LEFT JOIN)
⚫ 只保留左边关系R中的悬浮元组
◼ 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)
⚫ 只保留右边关系S中的悬浮元组
第3章 关系数据库标准语言SQL象集:给定一个关系R(X,Z),X和Z为属性组。 当t[X]=x时,x在R中的象集(Images Set)为:Zx={t[Z]|t R,t[X]=x},它表示R中属性组X上值为x的诸元组在Z上分量的集合(t[X]表示元组t中相应于属性X的一个分量)
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:
R÷S={tr[X]|trR∧πY(S)Yx} Yx:x在R中的象集,x = tr[X]