https://www.doczj.com/doc/5514405524.html,
第四部分 数据库基础
1、数据库(D B )的概念 数据库的定义:
数据库是指(长期存储在计算机内的+有组织的+可共享的)数据集合。它具有最小的冗余度,但却有最高的独立性(程序与数据)。 2 数据(d a t a )的概念 (1)数据的定义
数据是指描述事务的符号记录。
例如:(王林,男,1978,北京,党员) (2)数据与数据库的关系
数据是数据库中存储的基本对象。 (3)数据库中的数据的特点
按照一定的数据模型来组织、描述和储存,具有较小的冗余度和较高的独立性和易扩展性,并为各种用户所共享。(记忆技巧) 3 数据库管理系统
(d a t a b a s e m a n a g e m e n t s y s t e m ,D B M S ) (1)D B M S 的定义
是指帮助用户创建和管理数据库的应用程序的集合(软件)。 (2)D B M S 的实例
微软公司的S Q L s e r v e r , O r a c l e 公司的o r a c l e ,
I B M 公司的D B 2和I M S (层次)。 (3)D B M S 的重要性 D B M S 是D B 的核心 例:s q l s e r v e r
https://www.doczj.com/doc/5514405524.html,
4 数据库系统(D B S ) (1)数据库系统的定义 是指计算机硬件
+数据库(数据)
+数据库管理系统(软件) +应用系统
+数据库管理员 +用户。
(记忆技巧) (2)数据库系统的发展 (a )人工管理阶段
50年代中期以前/数据不能保存/应用程序管理数据/数据不共享/不具有数据独立性
(b )文件系统阶段
50年代后期到60年代中期/能长期保存数据/文件系统管理数据/差/差 (c )数据库系统阶段
60年代后期开始的/请看知识点六。 (3)数据库系统的特点 第一:数据结构化
第二:数据的共享性高、冗余度低、易扩充 第三:(应用程序与)数据独立性高
注意:数据独立性包括两种:物理独立性+逻辑独立性 第四:数据(由D B M S )统一管理和控制
物理独立性是指:数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变都不影响数据库的逻辑结构,从
https://www.doczj.com/doc/5514405524.html,
而不致引起应用程序的变化。(物理结构与应用程序)
逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类
型、改变数据间联系等,不需要相应修改应用程序。
(全体逻辑结构与应用程序) (4)数据安全性与数据完全性的区别 数据安全性:
防止泄漏和被破坏 数据完整性:
保证数据的正确性、有效性和相容性
注意:数据完整性与安全性的维护是数据库管理系统的基本功能. (5)数据结构化是数据库与文件系统的根本区别。
(6)在不引起混淆的情况下,常常把数据库系统简称为数据库。 (7)数据库应用系统(D B A S ,d a t a b a s e a p p l i c a t i o n s y s t e m )
利用数据库系统进行应用开发可构成的一个数据库应用系统,
数据库应用系统是数据库系统再加上应用软件及应用界面这三者组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。
5 数据库系统的内部体系结构 (1)数据库系统的三级模式
从D B M S 的角度看,数据库系统具有三级模式结构,即模式、内模式、外模式三种。
从用户角度看,数据库系统的结构分为集中式、分布式、客户/服务器和并行结构。
(2)请注意区分以下概念 模式=概念模式
外模式=子模式=用户模式 内模式=存储模式=物理模式 数据库三级模式示意图
(3)模式与外模式的关系、外模式与应用程序的关系、内模式与模式的关系。(4)数据库的二级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
(5)“型”与“值”的区别;
“模式”与“实例”的区别;
模式:(学号,姓名,性别,系别)
实例:(97412028,启明星,男,计算机信息安全)
(6)“模式是稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例则反映的是数据库某一时刻的状态”。
6数据模型的概念
(1)数据模型的定义
是模拟现实世界中的实物及其间联系的方法。
(2)数据模型的三个要素
数据结构(静态)、数据操作(动态)、数据约束条件。
(3)在数据模型的三个要素中数据结构是最关键
(4)数据操作的分类方法
(a)分为四类的方法
检索、插入、删除、修改
(b)分为两类的方法
查询和修改
(5)数据模型按不同的应用层次可分为三种:
(a)概念数据模型
(b)逻辑数据模型
(c)物理数据模型
注意:数据模型是数据库系统的核心和基础。
(6)概念模型:
面向用户、客观世界,与D B M S无关,与计算机平台无关。著名的概念模型有E-R 图。由于概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是现实世界到机器世界的一个中间层次。
(7)逻辑模型(数据模型)
面向数据库系统的模型,该模型着重于在数据库系统一级的实现。著名的逻辑模型有:层次、网状、关系、面向对象模型等四种。
(8)物理数据模型(物理模型)
面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
7概念模型
(1)实体
客观存在并可以区别的事物称为实体。实体可以是具体的人、事、物,也可以
https://www.doczj.com/doc/5514405524.html,
是抽象的概念或联系。例如:学生A
(2)属性
特征
(3)码
身份证号码
(4)域
属性值的取值范围
(5)实体集
全体学生的结合
(6)联系
同一个实体内部属性之间+不同实体之间(1:1,1:M,M:N)(7)E-R图
实体-联系图,用来描述现实世界中的概念模型。
例1E-R图一
例2E-R图二
https://www.doczj.com/doc/5514405524.html,
https://www.doczj.com/doc/5514405524.html,
注意,E -R 图中的联系也可能有自己的属性。
8 常用的数据模型
(1)常用数据模型的类型
(a )层次模型(实体之间的联系为树型) 其数据结构为基本层次联系。
(b )网状模型(实体之间的联系为网状) 其数据结构为基本层次联系。
(c )关系模型(实体之间的联系为表格) 其数据结构为关系。 (d )面向对象模型
其数据结构为对象。 (2) 数据模型的三个要素
数据结构(静态)、 数据操作(动态)、数据约束条件 (3)基本层次联系
两个记录及它们之间一对多的关系
9 层次模型
(1)层次模型是发展最早的数据模型
(2)层次模型中实体之间的联系用树形结构来表示
(3)层次模型的数据结构为基本层次联系。
(4)数据结构中对树的定义
10网状模型
(1)网状模型出现晚于层次模型。
(2)网状模型中实体之间的联系表示为网状。
(3)网状模型的数据结构为基本层次联系。
(4)网状模型实际上是不加任何条件限制的无向图。
11关系模型
(1)关系模型的数据结构
关系模型中的数据的逻辑结构是一张二维表。
(a)关系
关系->表->集合。
(b)元组:
(c)属性:
(d)主码:
(e)域:
(f)分量:
(g)关系模式:
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系,年级)
(h)在关系模型中,实体以及实体间的联系都是用关系(表)来表示。
例如:学生与课程之间的联系用选修关系(表)来表示。
https://www.doczj.com/doc/5514405524.html,
(2)关系模型的数据操作
查询,修改(增加、删除、修改)
(3)完整性约束条件
关系的完整性约束条件有三大类:实体完整性、参照完整性、用户定义完整性
(a)实体完整性(对实体):主码不能为空。
(b)参照完整性(对关联):
(c)用户定义完整性:
12关系代数
(1)关系操作的两种表示方法
关系代数和关系演算
(2)关系运算的三大要素
运算对象、运算符、运算结果
(3)关系数据库系统与数学理论的关系
关系数据库系统的特点是建立在数学理论的基础上,有很多数学理论可以表示关系模型的数据操作,其中最著名的是关系代数和关系演算。(关系代数和关系演算是等价的)
(4)关系代数
(a)关系代数的运算对象是关系,运算结果也是关系。
(b)关系代数的运算有四种:
传统的集合运算(并、差、交、广义笛卡儿积)
专门的关系运算(选择、投影、连接、除)
比较运算:
https://www.doczj.com/doc/5514405524.html,
https://www.doczj.com/doc/5514405524.html,
逻辑运算:
(c ).并(U n i o n )
表示方法 R ∪S
对R 和S 的要求 ? 具有相同的目n (即两个关系都有n 个属性) ? 相应的属性取自同一个域
R ∪S 的结果 ? 仍为n 目关系,由属于R 或属于S 的元组组成 R ∪S = { t |t ∈ R ∨t ∈S }
https://www.doczj.com/doc/5514405524.html,
(d ).差(D i f f e r e n c e ) 表示方法
R - S
对R 和S 的要求 ? 具有相同的目n
? 相应的属性取自同一个域
R – S 的结果
? 仍为n 目关系,由属于R 而不属于S 的所有元组组成 R -S = { t |t ∈R ∧t ?S }
https://www.doczj.com/doc/5514405524.html,
(e ).交(I n t e r s e c t i o n )
表示方法 R ∩S
对R 和S 的要求 ? 具有相同的目n
? 相应的属性取自同一个域
R ∩S 的结果 ? 仍为n 目关系,由既属于R 又属于S 的元组组成 R ∩S = { t |t ∈ R ∧t ∈S } R ∩S = R –(R -S )
https://www.doczj.com/doc/5514405524.html,
(f ). 广义笛卡尔积(E x t e n d e d C a r t e s i a n P r o d u c t ) 表示方法 R ×S R
? n 目关系,k 1个元组 S
? m 目关系,k 2个元组 R ×S 的结果
? 列:(n +m )列的元组的集合
元组的前n 列是关系R 的一个元组
后m 列是关系S 的一个元组 ? 行:k 1×k 2个元组
R ×S = {t r t s |t r ∈R ∧ t s ∈S }
https://www.doczj.com/doc/5514405524.html,
(g ).选择(S e l e c t i o n
1) 选择又称为限制(R e s t r i c t i o n ) 2) 选择运算符的含义
? 在关系R 中选择满足给定条件的诸元组
σF (R ) = {t |t ∈R ∧F (t )= '真'} ? F :选择条件,是一个逻辑表达式,基本形式为:
[?( ] X 1θY 1 [ )][φ [?( ] X 2θY 2 [ )]]…
θ:比较运算符(>,≥,<,≤,=或<>)
X 1,Y 1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;
φ:逻辑运算符(∧或∨)
[ ]:表示任选项
…:表示上述格式可以重复下去
选择(续)
3) 选择运算是从行的角度进行的运算 4) 举例
σ
设有一个学生-课程数据库,包括学生关系S t u d e n t、课程关系C o u r s e和选修关系S C。
https://www.doczj.com/doc/5514405524.html,
https://www.doczj.com/doc/5514405524.html,
[例1] 查询信息系 (I S 系)全体学生 σS d e p t = 'I S ' (S t u d e n t ) 或 σ5 ='I S ' (S t u d e n t ) 结果:
[例2] 查询年龄小于20 岁的学生 σS a g e < 20(S t u d e n t ) 或 σ4 < 20(S t u d e n t ) 结果:
(h ).投影
1)投影运算符的含义
? 从R 中选择出若干属性列组成新的关系 πA (R ) = { t [A ] | t ∈R }
https://www.doczj.com/doc/5514405524.html,
A :R 中的属性列
2
)投影操作
主要是
从列的角度进行运算
? 但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免
重复行 )
3) 举例
[例3] 查询学生的姓名和所在系
即求S t u d e n t 关系上学生姓名和所在系两个属性上的投影 πS n a m e ,S d e p t (S t u d e n t ) 或 π2,5(S t u d e n t )
结果:
π
https://www.doczj.com/doc/5514405524.html,
[例4] 查询学生关系S t u d e n t 中都有哪些系 πS d e p t (S t u d e n t )
结果 :
(i ).连接
1)连接也称为θ连接 2)连接运算的含义
? 从两个关系的笛卡尔积中选取属性间满足一定条件的元组
R S = { | t r ∈ R ∧t s ∈S ∧t r [A ]θt s [B ] }
A 和
B :分别为R 和S 上度数相等且可比的属性组 θ:比较运算符
? 连接运算从R 和S 的广义笛卡尔积R ×S 中选取(R 关系)在A 属性组上的值与(S 关系)在B 属性组上值满足比较关系的元组。 3)两类常用连接运算
? 等值连接(e q u i j o i n )
什么是等值连接
https://www.doczj.com/doc/5514405524.html,
? θ为“=”的连接运算称为等值连接 等值连接的含义
? 从关系R 与S 的广义笛卡尔积中选取A 、B 属性值相等的那些元组,即等值连接为:
R S = { | t r ∈R ∧t s ∈S ∧t r [A ] = t s [B ] }
? 自然连接(N a t u r a l j o i n )
什么是自然连接 ? 自然连接是一种特殊的等值连接
两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉
自然连接的含义 R 和S 具有相同的属性组B
R S = { | t r ∈R ∧t s ∈S ∧t r [B ] = t s [B ] }
4)一般的连接操作是从行的角度进行运算。
自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
5)举例 [例5]
https://www.doczj.com/doc/5514405524.html,
https://www.doczj.com/doc/5514405524.html,
(j ). 除(D i v i s i o n )
给定关系R (X ,Y ) 和S (Y ,Z ),其中X ,Y ,Z 为属性组。 R 中的Y 与S 中的Y 可以有不同的属性名,但必须出自相同 的域集。R 与S 的除运算得到一个新的关系P (X ),P 是R 中 满足下列条件的元组在X 属性列上的投影:元组在X 上分 量值x 的象集Y x 包含S 在Y 上投影的集合。
R ÷S = {t r [X ] | t r ∈ R ∧πY (S ) ? Y x } Y x :x 在R 中的象集,x = t r [X ]
2)除操作是同时从行和列角度进行运算
3)举例
[例6] (p 62)