第三章 数据库技术基础第三章 数据库技术基础
1.数据
数据 (Data)实际上是描述事物的符号记录。
2.数据库
数据库( Database)是数据的集合,以统一的结构形式存放于统一的存储介质内,可被各个应用程序所共享。
3.数据库管理系统
数据库管理系统 (Database Management System,
简称 DBMS)是负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等功能的一种系统软件。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
主要功能有:
(1)数据模式定义。
(2)数据存取的物理构建。
(3)数据操纵。
(4)数据的完整性、安全性定义与检查。
(5)数据库的并发控制与故障恢复。
(6)数据的服务。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
4.数据库管理员
对数据库的规划、设计、维护、监视等需要有专人管理,
通常把他们称为数据库管理员。
数据库管理员的主要工作:
(1)数据库设计。数据库设计是 DBA主要任务之一,DBA应对多个应用的数据需求进行全面的规划和设计。
(2)数据库维护。 DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转存等进行实施与维护。
(3)改善系统性能,提高系统效率。 DBA必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。当效率下降时,DBA需采取适当的措施,
如进行数据库的重组、重构等。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
5.数据库系统
数据库系统由如下几部分组成:数据库、数据库管理系统( DBMS)、数据库管理员、硬件系统平台、软件系统平台。我们把由这五个部分构成的一个以数据库为核心的完整的运行实体,称为数据库系统。
6.数据库应用系统
利用数据库系统进行应用开发可构成一个数据库应用系统,数据库应用系统是在数据库系统基础上,加上应用软件及应用界面,具体包括:数据库、数据库管理系统、
数据库管理员、硬件系统平台、软件系统平台、应用软件、应用界面。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
1.人工管理阶段这个时期数据管理的特点是:
(1) 数据不保存。需要时把数据输入,用完就撤走。数据不保存在计算机中。
(2) 没有管理数据的软件系统。应用程序中不仅要管理数据的逻辑结构,还要设计其物理结构、存取方法、输入输出方法等。当存储改变时,应用程序中存取数据的子程序就需随之改变,即数据和程序不具有独立性。
(3) 基本上没有文件概念。数据的组织方式必须由程序员自行设计。
(4) 数据是面向应用的。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
2.文件系统阶段文件系统管理阶段有以下几个特点:
(1) 数据存放在文件中,文件可长期保存在外存。
(2) 程序和数据有了一定的独立性。由于有了管理数据的软件 ——文件系统,文件的逻辑结构与存储结构由系统进行转换。
(3) 文件多样化。由于有了直接存取存储设备,也就有了索引文件、链接文件、直接存取文件等。
(4) 数据的存取基本上以记录为单位。按文件名访问,按记录进行存取。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
缺点:
数据冗余度大。
数据和程序缺乏独立性。
3.数据库系统阶段
特点:
(1) 采用特定的数据模型,使数据结构化。
(2) 数据的独立性高。
(3) 数据的共享性好,数据冗余度低。
(4) 为用户提供了方便的用户接口。
(5) 统一的数据控制功能。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
特点:
1.数据的集成性
2.数据的高共享性与低冗余性
3.数据独立性
数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。
(1) 物理独立性:数据的物理结构 (包括存储结构、存取方式等 )的改变,如存储没备的更换、物理存储的更换、
存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
3.1 数据库的基本概念三、数据库系统的基本特点第三章 数据库技术基础
(2) 逻辑独立性:数据库总体逻辑结构的改变,
如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应地修改应用程序。
4.数据统一管理与控制
数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含数据的完整性检查、数据的安全性保护、并发控制三方面内容。
3.1 数据库的基本概念三、数据库系统的基本特点第三章 数据库技术基础
数据库系统在其内部具有三级模式及二级映射。
三级模式分别是概念级模式、内部级模式与外部级模式。
二级映射则分别是概念级到内部级的映射以及外部级到概念级的映射。
这种三级模式与二级映射构成了数据库系统内部的抽象结构体系。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
1.数据库系统的三级模式
1)概念模式
是数据库系统中全局数据逻辑结构的描述,是全体用户 (应用 )公共数据视图。
概念模式主要描述数据的概念记录类型以及它们间的关系,还包括一些数据间的语义约束,
对它的描述可用 DBMS中的 DDL语言定义。
2)外模式
也称子模式或用户模式。它是用户的数据视图,
也就是用户所见到的数据模式,它由概念模式推导而出。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
概念模式给出了系统全局的数据描述,而外模式则给出每个用户的局部数据描述。一个概念模式可以有若干个外模式。
3)内模式
又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、
索引等存取方式与存取路径。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
2.数据库系统的两级映射
(1)概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,此种映射一般由 DBMS实现。
(2)外模式到概念模式的映射。概念模式是一个全局模式,而外模式是用户的局部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。外模式到概念模式的映射给出了外模式与概念模式的对应关系,
这种映射一般也是由 DBMS来实现的。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
数据模型 (data model):是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。
数据模型所描述的内容有三部分:数据结构、
数据操作、数据约束。
1.数据结构:主要描述数据的类型、内容、性质以及数据间的联系等。
2.数据操作:主要描述在相应数据结构上的操作类型与操作方式。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
3.数据约束。数据模型中的数据约束主要描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,
以保证数据的正确、有效与相容。
数据模型按不同的应用层次分成三种类型,它们是概念数据模型 (conceptual data model)、逻辑数据模型 (1ogic data model)、物理数据模型
(physical data model)。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
概念数据模型简称概念模型,它是一种面向客观世界、面向用户的模型,它与具体的数据库管理系统无关,与具体的计算机平台无关。
逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。
概念模型只有在转换成数据模型后才能在数据库中得以表示。
物理数据模型又称为物理模型,它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
1,E–R模型的基本概念
(1)实体 (Entity):是客观事物的反映。实体可以是具体的人、事、物,也可以是抽象的概念或联系。
注,实体必须可相互区分。
如学校中的每个人是一个实体,一个系、一门课,学生的一次选课也是一个实体。
(2)实体集,具有共性的实体组成的一个集合。
如张三、李四是学生,张三、李四是实体,学生是实体集。
3.2 数据模型二,E–R模型第三章 数据库技术基础
(2) 属性:事物的特性。
如实体班级的属性有班级号、班级名等属性。
班级号可以取值为 7905班,班级名可以取值为计算机班。
(3) 联系:现实世界中事物间的关联。
如工人与设备之间的操作关系,上、下级间的领导关系,生产者与消费者之间的供求关系。
3.2 数据模型二,E–R模型第三章 数据库技术基础
实体集间的联系有多种:
一对一的联系,记为 1:1。
如学校与校长间的联系,一个学校与一个校长间相互一一对应。
一对多或多对一联系,记为 1:M(1:m)或 M:1(m:1)。
如学生与其宿舍房间的联系是多对一的联系 (反之,则为一对多联系 ),即多个学生对应一个房间。
多对多联系,记为 M:N或 m:n。
如教师与学生这两个实体集间的教与学的联系是多对多的,因为一个教师可以教授多个学生,而一个学生又可以受教于多个教师。
3.2 数据模型二,E–R模型第三章 数据库技术基础
2,E–R模型三个基本概念之间的联接关系
(1)实体集与属性间的联接关系
一个实体可以有若干个属性,实体以及它的所有属性构成了实体的一个完整描述。
如:在人事档案中每实体有:编号、姓名、性别、年龄、籍贯、政治面貌等若干属性,它们组成了一个有关人 (实体 )的完整描述。
属性有属性域,每个实体可取属性域内的值。
一个实体的所有属性取值组成了一个值集叫元组。
3.2 数据模型二,E–R模型第三章 数据库技术基础
联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述。
(2) 实体 (集 )与联系
实体集之间无法建立直接关系,它只能通过联系才能建立起联接关系。
如教师与学生之间无法直接建立关系,只有通过,教与学,的联系才能在相互之间建立关系。
3.2 数据模型二,E–R模型第三章 数据库技术基础
3,E–R模型的图示法
(1) 实体集表示法
用矩形表示实体集,在矩形内写上该实体集的名字。
如实体集学生、课程可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
3.2 数据模型二,E–R模型
(2) 属性表示法
在 E–R图中用椭圆形表示属性,在椭圆形内写上该属性的名称。
如学生有属性:学号、姓名及年龄,它们可以用下图表示。
第三章 数据库技术基础
(3) 联系表示法
在 E–R图中用菱形 (内写上联系名 )表示联系。如学生与课程间的联系学习,用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
(4) 实体集、联系与属性间的联接关系
用联接这两个图形间的无向线段表示 (一般情况下可用直线 )。
如实体集学生有属性学号、姓名及年龄;实体集课程有属性课程号、课程名及预修课号,此时它们可用下图联接。
3.2 数据模型二,E–R模型第三章 数据库技术基础
属性也依附于联系,它们之间也有联接关系,
因此也可用无向线段表示。如联系学习可与学生的课程成绩属性建立联接并可用下图表示。
3.2 数据模型二,E–R模型
(5) 实体集与联系间的联接关系
可用联接这两个图形间的无向线段表示。
如实体集学生与联系学习间有联接关系,实体集课程与联系学习间也有联接关系,因此它们之间可用无向线段相联,构成一个下图。
第三章 数据库技术基础
有时为了进一步刻画实体间的函数关系,还可在线段边上注明其对应函数关系,如 1:1,1:n,
n:m等,如学生与课程间有多对多联系,此时在图中可以用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
一个实体集内部可以有联系。如某公司职工之间上、下级管理的联系,此时,其联接关系可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
实体集之间可有多种联系。如教师与学生之间可以有教学联系也可有管理联系,此种联接关系可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
[例 3.1]由前面所述的实体集学生,课程以及附属于它们的属性和它们间的联系学习以及附属的属性成绩构成了一个学生课程联系的概念模型,可用 E–R图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
层次模型有以下两个特点:
1)有且仅有一个结点无父结点,这样的结点称为根结点;
2)非根结点都有且仅有一个父结点。
在层次模型中,一个结点可以有几个子结点,
也可以没有子结点。
层次数据模型支持的操作主要有查询、插入、
删除和更新。
3.2 数据模型三、层次模型第三章 数据库技术基础
网状模型的两个特点是:
1)可能有一个以上的结点无父结点;
2)结点与其父结点之间的联系可以不止一个。
在网状模型中子女结点与双亲结点的联系可以不唯一。
在网状模型中,每一个联系都必须命名,每一个联系都有与之相关的双亲记录和子女记录。
网状模型中的基本操作包括查询、增加、删除、
修改等操作。
3.2 数据模型四、网状模型第三章 数据库技术基础
1.关系的数据结构
关系模型采用二维表来表示,简称表。
二维表由表框架及表的元组组成。
表框架由 n个命名的属性组成,n称为属性元数。
每个属性有一个取值范围称为值域。
在表框架中按行可以存放数据,每行数据称为元组。
个表框架可以存放 m个元组,m称为表的基数。
3.2 数据模型五、关系模型第三章 数据库技术基础
二维表一般满足下面 7个性质:
(1) 二维表中元组个数是有限的 ——元组个数有限性。
(2) 二维表中元组均不相同 ——元组的唯一性。
(3) 二维表中元组的次序可以任意交换 ——元组的次序无关性。
(4) 二维表中元组的分量是不可分割的基本数据项 ——元组分量的原子性
(5) 二维表中属性名各不相同 ——属性名唯一性。
(6) 二维表中属性与次序无关,可任意交换 ——属性的次序无关性。
(7) 二维表属性的分量具有与该属性相同的值域 ——分量值域的同一性。
3.2 数据模型五、关系模型第三章 数据库技术基础
满足以上 7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。
2.关系操纵
关系模型的数据操纵即是建立在关系上的数据操纵,有查询、增加、删除及修改四种操作。
3.关系中的数据约束
关系模型允许定义三类数据约束:实体完整性约束、参照完整性约束以及用户定义的完整性约束,
3.2 数据模型五、关系模型第三章 数据库技术基础
(1) 实体完整性约束:
该约束要求关系的主键中属性值不能为空值。
(2) 参照完整性约束
该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组。
(3) 用户定义的完整性约束
是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。
3.2 数据模型五、关系模型第三章 数据库技术基础
笛卡尔积:
设有一个 n元关系 R,它有 n个域,分别是 D1、
D2,…,Dn,此时,它们的笛卡尔积是:
D1× D2× … × Dn
该集合的每个元素都是具有如下形式的 n元有序组,(d1,d2,…,dn) | di∈ Di,( i=1,2,…,n )
该集合与 n元关系 R有如下联系:
RD1× D2× … × Dn
即 n元关系 R是 n元有序组的集合,是它的域的笛卡尔积的子集。
3.3 关系代数一、关系模型的基本操作第三章 数据库技术基础
1.插入设有关系 R需插入若干元组,要插入的元组组成关系 S,
则插入可用集合并运算表示为:
R∪ S={ t|t∈ R∨ t∈ S
其含义为:任取元组 t,当且仅当 t属于 R或 t属于 S时,t
属于 R∪ S。
2.删除设有关系 R需删除一些元组,要删除的元组组成关系 S,
则删除可用集合差运算表示为:
R- S={ t|t∈ R∧ tS
其含义为:当且仅当 t属于 R并且不属于 S时,t属于 R- S。
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
3.修改
(1) 设需修改的元组构成关系 S1,则先做删除得:
R- S1
(2) 设修改后的元组构成关系 S2,此时将其插入即得到结果:( R- S1) ∪ S2
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
4.查询
(1) 投影运算设 <属性名表 >中的所有属性都是关系 R的属性,
则 R在 <属性名表 >上的投影为 R中各元组只保留在 <属性名表 >上的各分量后形成的新关系(重复元组只能保留一个),记为
∏<属性名表 >(R)。
投影不仅取消了原关系中的某些列,还可能会去掉某些元组 (有重复时 ),还可以改变属性列的排列次序,
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
3.3 关系代数二、关系模型的基本运算职工号 姓名 性别 年龄 婚否 职称 部门号
1002 胡一民 男 36 1 工程师 01
1004 王爱民 男 60 1 高工 02
1005 张小华 女 45 1 工程师 01
1010 宋文彬 男 36 1 工程师 01
1011 胡 敏 男 35 1 工程师 01
1015 黄小英 女 27 1 助工 03
1022 李宏伟 男 26 0 助工 03
1031 丁伟国 男 24 0 助工 03
例:有职工表,求在部门号和职称两属性列上的投影 。
Dno Title
01 工程师
02 高工
03 助工职工表 ∏部门号,职称 (职工 )
投影表达式中,可用属性在原关系中的序号代替属性名。
如上述投影表达式等价于
∏7,6(职工 )
第三章 数据库技术基础
(2) 选择运算一个关系中,选取符合某给定条件的全体元组,生成的新关系,记为,σ<条件 >(关系名 )
其中,<条件 >是个布尔表达式。
如:从职工表中选取部门号= ‘ 01’的元组
3.3 关系代数二、关系模型的基本运算
σ部门号 =′01′(职工 )
职工号 姓名 性别 年龄 婚否 职称 部门号
1002 胡一民 男 36 1 工程师 01
1005 张小华 女 45 1 工程师 01
1010 宋文彬 男 36 1 工程师 01
1011 胡 敏 男 35 1 工程师 01
第三章 数据库技术基础
(3) 笛卡尔积运算设有 n元关系 R及 m元关系 S,它们分别有 p,q个元组,则关系 R与
S经笛卡尔积记为 R× S,该关系是一个 n+m元关系,元组个数是
p× q,由 R与 S的有序组组合而成。
如:有两个关系 R,S,求 R与 S的笛卡尔积 T=R× S。
3.3 关系代数二、关系模型的基本运算
R
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
S
A B C
a1 b2 c2
a1 b3 c2
a2 b2 c1
A B C A B C
a1 b1 c1 a1 b2 c2
a1 b1 c1 a1 b3 c2
a1 b1 c1 a2 b2 c1
a1 b2 c2 a1 b2 c2
a1 b2 c2 a1 b3 c2
a1 b2 c2 a2 b2 c1
a2 b2 c1 a1 b2 c2
a2 b2 c1 a1 b3 c2
a2 b2 c1 a2 b2 c1
第三章 数据库技术基础
1.交运算
关系 R与 S经交运算后所得到的关系是由那些既在 R内又在 S内的元组所组成,记为 R∩S。
如:求两个关系 R与 S经交运算后得到的结果 R∩S。
3.3 关系代数三、关系代数的扩充运算
R
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
S
A B C
a1 b2 c2
a1 b3 c2
a2 b2 c1
A B C
a1 b2 c2
a2 b2 c1
R∩S
第三章 数据库技术基础
2.除运算设关系 S的属性是关系 R属性的一部分,则 R÷ S
为这样一个关系:
(1) 此关系的属性是由属于 R但不属于 S的所有属性组成。
(2) R÷ S的任一元组都是 R中某元组的一部分。但必须符合下列要求,即任取属于 R÷ S的一个元组 t,则 t与 S的任一元组连串后,都为 R中原有的一个元组。
3.3 关系代数三、关系代数的扩充运算第三章 数据库技术基础
[例 3.2]图 3-14给出了两个关系:学生选课和课程,以及学生选课 ÷ 课程的结果。
姓名 课程张航 数学王昆 数学李跃山 数学张航 物理李跃山 物理曲山 物理
3.3 关系代数三、关系代数的扩充运算课程数学物理姓名李跃山张航学生选课 课程 学生选课? 课程第三章 数据库技术基础
3.连接连接也称 θ连接,这是一种二元运算,通过它可以将两个关系合并成一个大关系。设有关系 R、
S以及比较式 iθj,其中 i为 R中的域,j为 S中的域,
θ含义同前。则可以将 R,S在域 I,j上的 θ连接记为:
其含义可用下式定义:
在 θ连接表达式中,如果 θ为,=”符时,则称此连接为等值连接,否则称为不等值连接。等值连接是较常用的连接。
()ij
ij
R S R S?
3.3 关系代数三、关系代数的扩充运算
ij
RS
第三章 数据库技术基础
4.自然连接 (Natural join)
它满足下而的条件:
(1) 两关系间有公共域;
(2) 通过公共域的相等值进行连接。
设有关系 R,S,R有域 A1,A2,…,An,S 有域 B1,B2,…,Bn,并且,Ai1,Ai2,…,Aij 与 B1,B2,…,Bj 分别为相同域,它们自然连接可记为:
自然连接与等值连接的差别在于:
自然连接要求相等的分量必须有共同属性名,等值连接则不要求。
自然连接要求把重复属性名去掉,等值连接却不这样做。
3.3 关系代数三、关系代数的扩充运算
RS?
第三章 数据库技术基础
1.表的创建语法,CREATE TABLE 表名
(列名 数据类型 ]
[,列名 数据类型 ] …] ) ;
常用的数据类型有,字符型 charter(n)或 char(n),n,字符的个数;整型 integer或 int等。
[例 3.3]创建表 student
CREATE TABLE student(
sno char(10),
sname char(10),
sage int,
ssex char(2)) ;
3.4 关系数据库标准语言 SQL
一、数据定义第三章 数据库技术基础
2,表删除
DROP TABLE 语句将表的定义连同表内的数据一起删除。
语法,
DROP TABLE 表名 ;
3.4 关系数据库标准语言 SQL
一、数据定义第三章 数据库技术基础
1.数据的插入
INSERT语句用于将数据插入到数据库中。
语法,INSERT INTO 表名
(列 1,列 2...)
VALUES(值 1,值 2..) ;
用“值 1,值 2…,给相应的“列 1,列 2…,赋值,给表增加一条记录。
[例 3.4]给表 STUDENT插入一新记录。
INSERT INTO STUDENT
(SNO,SNAME,SAGE)
VALUES(‘98001’,‘刘凌’,23);
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
2,数据的修改语法,UPDATE 表名
SET 列 1=值 1
[,列 2=值 2 ]...
[WHERE 条件 ];
UPDATE语句首先检查 WHERE子句,对在指定表中的所有满足 WHERE条件的记录,相应字段的值将被修改。
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
[例 3.5] 把学生表 STUDENT中姓名’刘凌’,改为’刘玲’。
UPDATE STUDENT
SET SNAME=’刘玲’
WHERE SNAME=’刘凌’ ;
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
3,数据的删除
DELETE命令用于从表中删除整行的数据。
语法,DELETE
FR0M 表名
WHERE 条件;
[例 3.6]
DELETE
FROM STUDENT
WHERE SNAME=’刘玲’;
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
查询语句 SELECT的语法:
SELECT [ALL | DISTINCT] 目标列 [,目标列 …]
FROM 表名或视图 [,表名或视图 ]...
[WHERE 条件表达式 ]
[GROUP BY 列名 [,列名 …] [HAVING 条件表达式 ] ]
[ORDER BY 列名 [ASC|DESC] [,列名 [ASC|DESC] …]] ;
其中目标列可以是表的列名,也可以是由常数、函数以及列名等构成的表达式。
SELECT和 FROM子句是必须的,其他子句是任选的。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
SELECT子句列出所有要检索的数据项。
FROM子句列出包含所有要查询数据的表或视图。
WHERE子句,SQL只查询某些行中的数据,这些行用
WHERE子句中的搜索条件描述。
ORDER BY子句将查询结果按一定的顺序排列。
GROUP BY子句指定汇总查询,即不是对每行产生一个查询结果,而是将相似的行进行分组,再对每组产生一个汇总结果。
HAVING子句告诉 SQL只产生由 GROUP BY得到的某些组的结果。
ALL的选项用于显示包括重复数在内的列的所有值。
DISTINCT选项用于消除重复的行。如果没有在他们两者之间特别指定的话,缺省是 ALL选项。选项 ASC是缺省选项,表示按升序排列,DESC表示按降序排列。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
1,SELECT子句
简单的 SELECT语句的语法如下:
SELECT [* | ALL | DISTINCT 列名 1,列名 2...]
FROM 表名 1 [,表名 2];
在查询中的 SELECT关键字之后的一串列项,
是查询输出要显示的部分。 FROM关键字之后的表或视图名,是表示要查询的数据来源这些表或视图中。星号( *)用于指示表中的所有列都作为查询输出。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
[例 3.7]查询输出 student表中的 sno,sname列。
select sno,sname from student;
[例 3.8]查询输出 student表中的所有列。
select * from student
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
2,WHERE子句使用 WHERE子句中条件来区分数据,在
WHERE子句中可以有多个条件,他们之间用
AND或 OR操作符加以连接。
[例 3.9] SELECT sno,sname
FROM student
WHERE ssex=’男’ and sage<22;
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
3,ORDER BY子句通过使用 0RDER BY子句可以使数据进行排序后输出,ORDER BY缺省的排序设置是升序。
选项 ASC是缺省选项,表示按升序排列,
DESC表示按降序排列。
[例 3.10] select * from student order by sage desc
where ssex=’女’
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境 (包括硬件、
操作系统与 DBMS)设计出数据模式。
数据库设计有两种方法:一是以信息需求为主,
兼顾处理需求,称为面向数据的方法;另一种是以处理需求为主,兼顾信息需求,称为面向过程的方法。
整个数据库应用系统的开发分解成目标独立的若干阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进 —步修改阶段。
3.5 数据库的设计一、数据库设计概述第三章 数据库技术基础
1.数据库设计的需求分析
需求分析阶段的任务是通过详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
在实际开展需求分析工作时有两点需要特别注意:
第一,在需求分析阶段,重要而困难的任务是收集将来应用所涉及的数据。
第二,必须强调用户的参与,这是数据库应用系统设计的特点。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
2.数据库的概念设计
数据库概念设计的方法有以下两种:
(1) 集中式模式设计法
根据需求由一个统一机构或人员设计一个综合的全局模式。
(2) 视图集成设计法
将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
数据库概念设计的过程:
第一步、选择局部应用。
第二步、局部视图设计。视图设计一般有三种设计次序,它们是:
① 自顶向下。
② 由底向上。
③ 由内向外。
第三步、视图集成。视图集成的实质是将所有的局部视图统一与合并成一个完整的数据模式。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
3.数据库的逻辑设计设计过程如下:
(1) 从 E– R图向关系模式转换
(2) 逻辑模式规范化及调整、实现
(3) 关系视图设计
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
4.数据库的物理设计
数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
数据库管理包含:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
1.数据库的建立
数据库的建立包括两部分内容,数据模式的建立及数据加载。
2.数据库的调整
在数据库建立并经一段时间运行后往往会产生一些不适应的情况,此时需要对其作调整,
数据库的调整一般由 DBA完成。
3.5 数据库的设计三、数据库管理第三章 数据库技术基础
3.数据库的重组
数据库在经过一定时间运行后,其性能会逐步下降,需要对数据库进行重新整理,重新调整存贮空间,叫数据库重组。
4.数据库安全性控制与完整性控制
数据库是一个单位的重要资源,它的安全性是极端重要的,DBA应采取措施保证数据不受非法盗用与破坏。此外,为保证数据的正确性,
使录入库内的数据均能保持正确,需要有数据库的完整性控制。
3.5 数据库的设计三、数据库管理第三章 数据库技术基础
5.数据库的故障恢复
一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由
DBA负责执行故障恢复功能。
6.数据库监控
DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施;
同时还需监视数据库的性能变化,在必要时对数据库作调整。
3.5 数据库的设计三、数据库管理
1.数据
数据 (Data)实际上是描述事物的符号记录。
2.数据库
数据库( Database)是数据的集合,以统一的结构形式存放于统一的存储介质内,可被各个应用程序所共享。
3.数据库管理系统
数据库管理系统 (Database Management System,
简称 DBMS)是负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等功能的一种系统软件。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
主要功能有:
(1)数据模式定义。
(2)数据存取的物理构建。
(3)数据操纵。
(4)数据的完整性、安全性定义与检查。
(5)数据库的并发控制与故障恢复。
(6)数据的服务。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
4.数据库管理员
对数据库的规划、设计、维护、监视等需要有专人管理,
通常把他们称为数据库管理员。
数据库管理员的主要工作:
(1)数据库设计。数据库设计是 DBA主要任务之一,DBA应对多个应用的数据需求进行全面的规划和设计。
(2)数据库维护。 DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转存等进行实施与维护。
(3)改善系统性能,提高系统效率。 DBA必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。当效率下降时,DBA需采取适当的措施,
如进行数据库的重组、重构等。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
5.数据库系统
数据库系统由如下几部分组成:数据库、数据库管理系统( DBMS)、数据库管理员、硬件系统平台、软件系统平台。我们把由这五个部分构成的一个以数据库为核心的完整的运行实体,称为数据库系统。
6.数据库应用系统
利用数据库系统进行应用开发可构成一个数据库应用系统,数据库应用系统是在数据库系统基础上,加上应用软件及应用界面,具体包括:数据库、数据库管理系统、
数据库管理员、硬件系统平台、软件系统平台、应用软件、应用界面。
3.1 数据库的基本概念一、数据、数据库、数据库管理系统第三章 数据库技术基础
1.人工管理阶段这个时期数据管理的特点是:
(1) 数据不保存。需要时把数据输入,用完就撤走。数据不保存在计算机中。
(2) 没有管理数据的软件系统。应用程序中不仅要管理数据的逻辑结构,还要设计其物理结构、存取方法、输入输出方法等。当存储改变时,应用程序中存取数据的子程序就需随之改变,即数据和程序不具有独立性。
(3) 基本上没有文件概念。数据的组织方式必须由程序员自行设计。
(4) 数据是面向应用的。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
2.文件系统阶段文件系统管理阶段有以下几个特点:
(1) 数据存放在文件中,文件可长期保存在外存。
(2) 程序和数据有了一定的独立性。由于有了管理数据的软件 ——文件系统,文件的逻辑结构与存储结构由系统进行转换。
(3) 文件多样化。由于有了直接存取存储设备,也就有了索引文件、链接文件、直接存取文件等。
(4) 数据的存取基本上以记录为单位。按文件名访问,按记录进行存取。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
缺点:
数据冗余度大。
数据和程序缺乏独立性。
3.数据库系统阶段
特点:
(1) 采用特定的数据模型,使数据结构化。
(2) 数据的独立性高。
(3) 数据的共享性好,数据冗余度低。
(4) 为用户提供了方便的用户接口。
(5) 统一的数据控制功能。
3.1 数据库的基本概念二、数据库系统的发展过程第三章 数据库技术基础
特点:
1.数据的集成性
2.数据的高共享性与低冗余性
3.数据独立性
数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。
(1) 物理独立性:数据的物理结构 (包括存储结构、存取方式等 )的改变,如存储没备的更换、物理存储的更换、
存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
3.1 数据库的基本概念三、数据库系统的基本特点第三章 数据库技术基础
(2) 逻辑独立性:数据库总体逻辑结构的改变,
如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应地修改应用程序。
4.数据统一管理与控制
数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含数据的完整性检查、数据的安全性保护、并发控制三方面内容。
3.1 数据库的基本概念三、数据库系统的基本特点第三章 数据库技术基础
数据库系统在其内部具有三级模式及二级映射。
三级模式分别是概念级模式、内部级模式与外部级模式。
二级映射则分别是概念级到内部级的映射以及外部级到概念级的映射。
这种三级模式与二级映射构成了数据库系统内部的抽象结构体系。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
1.数据库系统的三级模式
1)概念模式
是数据库系统中全局数据逻辑结构的描述,是全体用户 (应用 )公共数据视图。
概念模式主要描述数据的概念记录类型以及它们间的关系,还包括一些数据间的语义约束,
对它的描述可用 DBMS中的 DDL语言定义。
2)外模式
也称子模式或用户模式。它是用户的数据视图,
也就是用户所见到的数据模式,它由概念模式推导而出。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
概念模式给出了系统全局的数据描述,而外模式则给出每个用户的局部数据描述。一个概念模式可以有若干个外模式。
3)内模式
又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、
索引等存取方式与存取路径。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
2.数据库系统的两级映射
(1)概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,此种映射一般由 DBMS实现。
(2)外模式到概念模式的映射。概念模式是一个全局模式,而外模式是用户的局部模式。一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。外模式到概念模式的映射给出了外模式与概念模式的对应关系,
这种映射一般也是由 DBMS来实现的。
3.1 数据库的基本概念四、数据库系统的内部结构体系第三章 数据库技术基础
数据模型 (data model):是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。
数据模型所描述的内容有三部分:数据结构、
数据操作、数据约束。
1.数据结构:主要描述数据的类型、内容、性质以及数据间的联系等。
2.数据操作:主要描述在相应数据结构上的操作类型与操作方式。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
3.数据约束。数据模型中的数据约束主要描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,
以保证数据的正确、有效与相容。
数据模型按不同的应用层次分成三种类型,它们是概念数据模型 (conceptual data model)、逻辑数据模型 (1ogic data model)、物理数据模型
(physical data model)。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
概念数据模型简称概念模型,它是一种面向客观世界、面向用户的模型,它与具体的数据库管理系统无关,与具体的计算机平台无关。
逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。
概念模型只有在转换成数据模型后才能在数据库中得以表示。
物理数据模型又称为物理模型,它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
3.2 数据模型一、数据模型的基本概念第三章 数据库技术基础
1,E–R模型的基本概念
(1)实体 (Entity):是客观事物的反映。实体可以是具体的人、事、物,也可以是抽象的概念或联系。
注,实体必须可相互区分。
如学校中的每个人是一个实体,一个系、一门课,学生的一次选课也是一个实体。
(2)实体集,具有共性的实体组成的一个集合。
如张三、李四是学生,张三、李四是实体,学生是实体集。
3.2 数据模型二,E–R模型第三章 数据库技术基础
(2) 属性:事物的特性。
如实体班级的属性有班级号、班级名等属性。
班级号可以取值为 7905班,班级名可以取值为计算机班。
(3) 联系:现实世界中事物间的关联。
如工人与设备之间的操作关系,上、下级间的领导关系,生产者与消费者之间的供求关系。
3.2 数据模型二,E–R模型第三章 数据库技术基础
实体集间的联系有多种:
一对一的联系,记为 1:1。
如学校与校长间的联系,一个学校与一个校长间相互一一对应。
一对多或多对一联系,记为 1:M(1:m)或 M:1(m:1)。
如学生与其宿舍房间的联系是多对一的联系 (反之,则为一对多联系 ),即多个学生对应一个房间。
多对多联系,记为 M:N或 m:n。
如教师与学生这两个实体集间的教与学的联系是多对多的,因为一个教师可以教授多个学生,而一个学生又可以受教于多个教师。
3.2 数据模型二,E–R模型第三章 数据库技术基础
2,E–R模型三个基本概念之间的联接关系
(1)实体集与属性间的联接关系
一个实体可以有若干个属性,实体以及它的所有属性构成了实体的一个完整描述。
如:在人事档案中每实体有:编号、姓名、性别、年龄、籍贯、政治面貌等若干属性,它们组成了一个有关人 (实体 )的完整描述。
属性有属性域,每个实体可取属性域内的值。
一个实体的所有属性取值组成了一个值集叫元组。
3.2 数据模型二,E–R模型第三章 数据库技术基础
联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述。
(2) 实体 (集 )与联系
实体集之间无法建立直接关系,它只能通过联系才能建立起联接关系。
如教师与学生之间无法直接建立关系,只有通过,教与学,的联系才能在相互之间建立关系。
3.2 数据模型二,E–R模型第三章 数据库技术基础
3,E–R模型的图示法
(1) 实体集表示法
用矩形表示实体集,在矩形内写上该实体集的名字。
如实体集学生、课程可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
3.2 数据模型二,E–R模型
(2) 属性表示法
在 E–R图中用椭圆形表示属性,在椭圆形内写上该属性的名称。
如学生有属性:学号、姓名及年龄,它们可以用下图表示。
第三章 数据库技术基础
(3) 联系表示法
在 E–R图中用菱形 (内写上联系名 )表示联系。如学生与课程间的联系学习,用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
(4) 实体集、联系与属性间的联接关系
用联接这两个图形间的无向线段表示 (一般情况下可用直线 )。
如实体集学生有属性学号、姓名及年龄;实体集课程有属性课程号、课程名及预修课号,此时它们可用下图联接。
3.2 数据模型二,E–R模型第三章 数据库技术基础
属性也依附于联系,它们之间也有联接关系,
因此也可用无向线段表示。如联系学习可与学生的课程成绩属性建立联接并可用下图表示。
3.2 数据模型二,E–R模型
(5) 实体集与联系间的联接关系
可用联接这两个图形间的无向线段表示。
如实体集学生与联系学习间有联接关系,实体集课程与联系学习间也有联接关系,因此它们之间可用无向线段相联,构成一个下图。
第三章 数据库技术基础
有时为了进一步刻画实体间的函数关系,还可在线段边上注明其对应函数关系,如 1:1,1:n,
n:m等,如学生与课程间有多对多联系,此时在图中可以用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
一个实体集内部可以有联系。如某公司职工之间上、下级管理的联系,此时,其联接关系可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
实体集之间可有多种联系。如教师与学生之间可以有教学联系也可有管理联系,此种联接关系可用下图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
[例 3.1]由前面所述的实体集学生,课程以及附属于它们的属性和它们间的联系学习以及附属的属性成绩构成了一个学生课程联系的概念模型,可用 E–R图表示。
3.2 数据模型二,E–R模型第三章 数据库技术基础
层次模型有以下两个特点:
1)有且仅有一个结点无父结点,这样的结点称为根结点;
2)非根结点都有且仅有一个父结点。
在层次模型中,一个结点可以有几个子结点,
也可以没有子结点。
层次数据模型支持的操作主要有查询、插入、
删除和更新。
3.2 数据模型三、层次模型第三章 数据库技术基础
网状模型的两个特点是:
1)可能有一个以上的结点无父结点;
2)结点与其父结点之间的联系可以不止一个。
在网状模型中子女结点与双亲结点的联系可以不唯一。
在网状模型中,每一个联系都必须命名,每一个联系都有与之相关的双亲记录和子女记录。
网状模型中的基本操作包括查询、增加、删除、
修改等操作。
3.2 数据模型四、网状模型第三章 数据库技术基础
1.关系的数据结构
关系模型采用二维表来表示,简称表。
二维表由表框架及表的元组组成。
表框架由 n个命名的属性组成,n称为属性元数。
每个属性有一个取值范围称为值域。
在表框架中按行可以存放数据,每行数据称为元组。
个表框架可以存放 m个元组,m称为表的基数。
3.2 数据模型五、关系模型第三章 数据库技术基础
二维表一般满足下面 7个性质:
(1) 二维表中元组个数是有限的 ——元组个数有限性。
(2) 二维表中元组均不相同 ——元组的唯一性。
(3) 二维表中元组的次序可以任意交换 ——元组的次序无关性。
(4) 二维表中元组的分量是不可分割的基本数据项 ——元组分量的原子性
(5) 二维表中属性名各不相同 ——属性名唯一性。
(6) 二维表中属性与次序无关,可任意交换 ——属性的次序无关性。
(7) 二维表属性的分量具有与该属性相同的值域 ——分量值域的同一性。
3.2 数据模型五、关系模型第三章 数据库技术基础
满足以上 7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。
2.关系操纵
关系模型的数据操纵即是建立在关系上的数据操纵,有查询、增加、删除及修改四种操作。
3.关系中的数据约束
关系模型允许定义三类数据约束:实体完整性约束、参照完整性约束以及用户定义的完整性约束,
3.2 数据模型五、关系模型第三章 数据库技术基础
(1) 实体完整性约束:
该约束要求关系的主键中属性值不能为空值。
(2) 参照完整性约束
该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组。
(3) 用户定义的完整性约束
是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。
3.2 数据模型五、关系模型第三章 数据库技术基础
笛卡尔积:
设有一个 n元关系 R,它有 n个域,分别是 D1、
D2,…,Dn,此时,它们的笛卡尔积是:
D1× D2× … × Dn
该集合的每个元素都是具有如下形式的 n元有序组,(d1,d2,…,dn) | di∈ Di,( i=1,2,…,n )
该集合与 n元关系 R有如下联系:
RD1× D2× … × Dn
即 n元关系 R是 n元有序组的集合,是它的域的笛卡尔积的子集。
3.3 关系代数一、关系模型的基本操作第三章 数据库技术基础
1.插入设有关系 R需插入若干元组,要插入的元组组成关系 S,
则插入可用集合并运算表示为:
R∪ S={ t|t∈ R∨ t∈ S
其含义为:任取元组 t,当且仅当 t属于 R或 t属于 S时,t
属于 R∪ S。
2.删除设有关系 R需删除一些元组,要删除的元组组成关系 S,
则删除可用集合差运算表示为:
R- S={ t|t∈ R∧ tS
其含义为:当且仅当 t属于 R并且不属于 S时,t属于 R- S。
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
3.修改
(1) 设需修改的元组构成关系 S1,则先做删除得:
R- S1
(2) 设修改后的元组构成关系 S2,此时将其插入即得到结果:( R- S1) ∪ S2
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
4.查询
(1) 投影运算设 <属性名表 >中的所有属性都是关系 R的属性,
则 R在 <属性名表 >上的投影为 R中各元组只保留在 <属性名表 >上的各分量后形成的新关系(重复元组只能保留一个),记为
∏<属性名表 >(R)。
投影不仅取消了原关系中的某些列,还可能会去掉某些元组 (有重复时 ),还可以改变属性列的排列次序,
3.3 关系代数二、关系模型的基本运算第三章 数据库技术基础
3.3 关系代数二、关系模型的基本运算职工号 姓名 性别 年龄 婚否 职称 部门号
1002 胡一民 男 36 1 工程师 01
1004 王爱民 男 60 1 高工 02
1005 张小华 女 45 1 工程师 01
1010 宋文彬 男 36 1 工程师 01
1011 胡 敏 男 35 1 工程师 01
1015 黄小英 女 27 1 助工 03
1022 李宏伟 男 26 0 助工 03
1031 丁伟国 男 24 0 助工 03
例:有职工表,求在部门号和职称两属性列上的投影 。
Dno Title
01 工程师
02 高工
03 助工职工表 ∏部门号,职称 (职工 )
投影表达式中,可用属性在原关系中的序号代替属性名。
如上述投影表达式等价于
∏7,6(职工 )
第三章 数据库技术基础
(2) 选择运算一个关系中,选取符合某给定条件的全体元组,生成的新关系,记为,σ<条件 >(关系名 )
其中,<条件 >是个布尔表达式。
如:从职工表中选取部门号= ‘ 01’的元组
3.3 关系代数二、关系模型的基本运算
σ部门号 =′01′(职工 )
职工号 姓名 性别 年龄 婚否 职称 部门号
1002 胡一民 男 36 1 工程师 01
1005 张小华 女 45 1 工程师 01
1010 宋文彬 男 36 1 工程师 01
1011 胡 敏 男 35 1 工程师 01
第三章 数据库技术基础
(3) 笛卡尔积运算设有 n元关系 R及 m元关系 S,它们分别有 p,q个元组,则关系 R与
S经笛卡尔积记为 R× S,该关系是一个 n+m元关系,元组个数是
p× q,由 R与 S的有序组组合而成。
如:有两个关系 R,S,求 R与 S的笛卡尔积 T=R× S。
3.3 关系代数二、关系模型的基本运算
R
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
S
A B C
a1 b2 c2
a1 b3 c2
a2 b2 c1
A B C A B C
a1 b1 c1 a1 b2 c2
a1 b1 c1 a1 b3 c2
a1 b1 c1 a2 b2 c1
a1 b2 c2 a1 b2 c2
a1 b2 c2 a1 b3 c2
a1 b2 c2 a2 b2 c1
a2 b2 c1 a1 b2 c2
a2 b2 c1 a1 b3 c2
a2 b2 c1 a2 b2 c1
第三章 数据库技术基础
1.交运算
关系 R与 S经交运算后所得到的关系是由那些既在 R内又在 S内的元组所组成,记为 R∩S。
如:求两个关系 R与 S经交运算后得到的结果 R∩S。
3.3 关系代数三、关系代数的扩充运算
R
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
S
A B C
a1 b2 c2
a1 b3 c2
a2 b2 c1
A B C
a1 b2 c2
a2 b2 c1
R∩S
第三章 数据库技术基础
2.除运算设关系 S的属性是关系 R属性的一部分,则 R÷ S
为这样一个关系:
(1) 此关系的属性是由属于 R但不属于 S的所有属性组成。
(2) R÷ S的任一元组都是 R中某元组的一部分。但必须符合下列要求,即任取属于 R÷ S的一个元组 t,则 t与 S的任一元组连串后,都为 R中原有的一个元组。
3.3 关系代数三、关系代数的扩充运算第三章 数据库技术基础
[例 3.2]图 3-14给出了两个关系:学生选课和课程,以及学生选课 ÷ 课程的结果。
姓名 课程张航 数学王昆 数学李跃山 数学张航 物理李跃山 物理曲山 物理
3.3 关系代数三、关系代数的扩充运算课程数学物理姓名李跃山张航学生选课 课程 学生选课? 课程第三章 数据库技术基础
3.连接连接也称 θ连接,这是一种二元运算,通过它可以将两个关系合并成一个大关系。设有关系 R、
S以及比较式 iθj,其中 i为 R中的域,j为 S中的域,
θ含义同前。则可以将 R,S在域 I,j上的 θ连接记为:
其含义可用下式定义:
在 θ连接表达式中,如果 θ为,=”符时,则称此连接为等值连接,否则称为不等值连接。等值连接是较常用的连接。
()ij
ij
R S R S?
3.3 关系代数三、关系代数的扩充运算
ij
RS
第三章 数据库技术基础
4.自然连接 (Natural join)
它满足下而的条件:
(1) 两关系间有公共域;
(2) 通过公共域的相等值进行连接。
设有关系 R,S,R有域 A1,A2,…,An,S 有域 B1,B2,…,Bn,并且,Ai1,Ai2,…,Aij 与 B1,B2,…,Bj 分别为相同域,它们自然连接可记为:
自然连接与等值连接的差别在于:
自然连接要求相等的分量必须有共同属性名,等值连接则不要求。
自然连接要求把重复属性名去掉,等值连接却不这样做。
3.3 关系代数三、关系代数的扩充运算
RS?
第三章 数据库技术基础
1.表的创建语法,CREATE TABLE 表名
(列名 数据类型 ]
[,列名 数据类型 ] …] ) ;
常用的数据类型有,字符型 charter(n)或 char(n),n,字符的个数;整型 integer或 int等。
[例 3.3]创建表 student
CREATE TABLE student(
sno char(10),
sname char(10),
sage int,
ssex char(2)) ;
3.4 关系数据库标准语言 SQL
一、数据定义第三章 数据库技术基础
2,表删除
DROP TABLE 语句将表的定义连同表内的数据一起删除。
语法,
DROP TABLE 表名 ;
3.4 关系数据库标准语言 SQL
一、数据定义第三章 数据库技术基础
1.数据的插入
INSERT语句用于将数据插入到数据库中。
语法,INSERT INTO 表名
(列 1,列 2...)
VALUES(值 1,值 2..) ;
用“值 1,值 2…,给相应的“列 1,列 2…,赋值,给表增加一条记录。
[例 3.4]给表 STUDENT插入一新记录。
INSERT INTO STUDENT
(SNO,SNAME,SAGE)
VALUES(‘98001’,‘刘凌’,23);
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
2,数据的修改语法,UPDATE 表名
SET 列 1=值 1
[,列 2=值 2 ]...
[WHERE 条件 ];
UPDATE语句首先检查 WHERE子句,对在指定表中的所有满足 WHERE条件的记录,相应字段的值将被修改。
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
[例 3.5] 把学生表 STUDENT中姓名’刘凌’,改为’刘玲’。
UPDATE STUDENT
SET SNAME=’刘玲’
WHERE SNAME=’刘凌’ ;
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
3,数据的删除
DELETE命令用于从表中删除整行的数据。
语法,DELETE
FR0M 表名
WHERE 条件;
[例 3.6]
DELETE
FROM STUDENT
WHERE SNAME=’刘玲’;
3.4 关系数据库标准语言 SQL
二、数据的更新第三章 数据库技术基础
查询语句 SELECT的语法:
SELECT [ALL | DISTINCT] 目标列 [,目标列 …]
FROM 表名或视图 [,表名或视图 ]...
[WHERE 条件表达式 ]
[GROUP BY 列名 [,列名 …] [HAVING 条件表达式 ] ]
[ORDER BY 列名 [ASC|DESC] [,列名 [ASC|DESC] …]] ;
其中目标列可以是表的列名,也可以是由常数、函数以及列名等构成的表达式。
SELECT和 FROM子句是必须的,其他子句是任选的。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
SELECT子句列出所有要检索的数据项。
FROM子句列出包含所有要查询数据的表或视图。
WHERE子句,SQL只查询某些行中的数据,这些行用
WHERE子句中的搜索条件描述。
ORDER BY子句将查询结果按一定的顺序排列。
GROUP BY子句指定汇总查询,即不是对每行产生一个查询结果,而是将相似的行进行分组,再对每组产生一个汇总结果。
HAVING子句告诉 SQL只产生由 GROUP BY得到的某些组的结果。
ALL的选项用于显示包括重复数在内的列的所有值。
DISTINCT选项用于消除重复的行。如果没有在他们两者之间特别指定的话,缺省是 ALL选项。选项 ASC是缺省选项,表示按升序排列,DESC表示按降序排列。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
1,SELECT子句
简单的 SELECT语句的语法如下:
SELECT [* | ALL | DISTINCT 列名 1,列名 2...]
FROM 表名 1 [,表名 2];
在查询中的 SELECT关键字之后的一串列项,
是查询输出要显示的部分。 FROM关键字之后的表或视图名,是表示要查询的数据来源这些表或视图中。星号( *)用于指示表中的所有列都作为查询输出。
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
[例 3.7]查询输出 student表中的 sno,sname列。
select sno,sname from student;
[例 3.8]查询输出 student表中的所有列。
select * from student
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
2,WHERE子句使用 WHERE子句中条件来区分数据,在
WHERE子句中可以有多个条件,他们之间用
AND或 OR操作符加以连接。
[例 3.9] SELECT sno,sname
FROM student
WHERE ssex=’男’ and sage<22;
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
3,ORDER BY子句通过使用 0RDER BY子句可以使数据进行排序后输出,ORDER BY缺省的排序设置是升序。
选项 ASC是缺省选项,表示按升序排列,
DESC表示按降序排列。
[例 3.10] select * from student order by sage desc
where ssex=’女’
3.4 关系数据库标准语言 SQL
三、查询第三章 数据库技术基础
数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境 (包括硬件、
操作系统与 DBMS)设计出数据模式。
数据库设计有两种方法:一是以信息需求为主,
兼顾处理需求,称为面向数据的方法;另一种是以处理需求为主,兼顾信息需求,称为面向过程的方法。
整个数据库应用系统的开发分解成目标独立的若干阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进 —步修改阶段。
3.5 数据库的设计一、数据库设计概述第三章 数据库技术基础
1.数据库设计的需求分析
需求分析阶段的任务是通过详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
在实际开展需求分析工作时有两点需要特别注意:
第一,在需求分析阶段,重要而困难的任务是收集将来应用所涉及的数据。
第二,必须强调用户的参与,这是数据库应用系统设计的特点。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
2.数据库的概念设计
数据库概念设计的方法有以下两种:
(1) 集中式模式设计法
根据需求由一个统一机构或人员设计一个综合的全局模式。
(2) 视图集成设计法
将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
数据库概念设计的过程:
第一步、选择局部应用。
第二步、局部视图设计。视图设计一般有三种设计次序,它们是:
① 自顶向下。
② 由底向上。
③ 由内向外。
第三步、视图集成。视图集成的实质是将所有的局部视图统一与合并成一个完整的数据模式。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
3.数据库的逻辑设计设计过程如下:
(1) 从 E– R图向关系模式转换
(2) 逻辑模式规范化及调整、实现
(3) 关系视图设计
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
4.数据库的物理设计
数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。
3.5 数据库的设计二、数据库设计过程第三章 数据库技术基础
数据库管理包含:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
1.数据库的建立
数据库的建立包括两部分内容,数据模式的建立及数据加载。
2.数据库的调整
在数据库建立并经一段时间运行后往往会产生一些不适应的情况,此时需要对其作调整,
数据库的调整一般由 DBA完成。
3.5 数据库的设计三、数据库管理第三章 数据库技术基础
3.数据库的重组
数据库在经过一定时间运行后,其性能会逐步下降,需要对数据库进行重新整理,重新调整存贮空间,叫数据库重组。
4.数据库安全性控制与完整性控制
数据库是一个单位的重要资源,它的安全性是极端重要的,DBA应采取措施保证数据不受非法盗用与破坏。此外,为保证数据的正确性,
使录入库内的数据均能保持正确,需要有数据库的完整性控制。
3.5 数据库的设计三、数据库管理第三章 数据库技术基础
5.数据库的故障恢复
一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由
DBA负责执行故障恢复功能。
6.数据库监控
DBA需随时观察数据库的动态变化,并在发生错误、故障或产生不适应情况时随时采取措施;
同时还需监视数据库的性能变化,在必要时对数据库作调整。
3.5 数据库的设计三、数据库管理