mysql数据库——第1章 数据库技术基础
MySQL数据库
第1章 数据库技术基础
1.1 数据库系统概述
1.1.1 数据库概念
1.信息和数据
- 信息泛指通过各种方式传播,以可被感受的声音、文字、图像、符号等所表示的某一特定事物的消息、情报或知识
- 数据是描述客观事物及其活动并存储在某一种媒体上能够识别的物理符号.数据可以为数字、字母、声音、文字、图形、图像、绘画、视频等多种形式
- 数据是信息的符号化表示
- 信息是数据的内涵,是对数据的语义解释
- 在计算机中,将信息数据化是 为了更好地更高效的对信息进行处理
2. 数据处理
- 数据处理是将数据转换成信息的过程,包括数据的收集、管理、加工利用乃至信息输出演变推导等
- 数据管理是数据的分类、组织、编码、存储、维护、检索等操作(数据的使用阶段)
- 信息(输出)=数据(输入)+数据处理
3. 数据库
- 数据库是存储在计算机内、有组织的、可共享的数据和数据对象集合
4.数据库管理系统
- 数据库管理系统(DBMS)是为数据库的建立、使用和维护而配置的软件,它提供了安全性和完整性等统一控制机制,方便用户管理和存储大量数据资源
- 数据库管理系统的主要功能包括:
- 数据定义功能:DBMS提供数据定义语言(DDL):定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关的约束条件
- 数据操纵功能:
- 数据库的基本操作:检索、更新(包括插入、修改、删除)等
- DML有两类:
- 自主型->独立使用
- 宿主型->嵌入在高级语言中
- 数据库的运行管理
- 对数据库运行的管理是DBMS运行的核心部分
- DBMS对数据库的控制主要通过四个方面实现:数据的安全性控制、数据的完整性控制、多用户环境下的数据并发控制和数据库的恢复
- 数据库的建立和维护功能
- 数据库的建立包括数据库的初始数据的装入与数据转换等
- 数据库的维护包括数据库的转储、恢复、重组织与重构造、系统性能监视与分析等
- 数据通信接口
- 数据组织、存储和管理
5. 数据库系统
数据库系统是指引进数据库技术后的计算机系统,能实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的遍历手段
数据库系统由四部分组成:计算机硬件系统、计算机软件系统、数据库用户、数据库
- 数据库是存储在计算机内、有组织的、可共享的数据和数据对象集合
- 用户可以对数据库进行存储、维护和检索等操作
- 软件系统:DBMS、OS、应用开发工具、应用系统
- 硬件系统指存储和运行数据库系统的硬件设备
1.1.2 数据管理技术的产生和发展
1.人工管理阶段
2.文件管理阶段
3.数据库管理阶段
1.2 数据模型
1.2.1 数据处理的三个世界及其划分
1. 现实世界
- 现实世界是指客观存在的世界中的事物及其联系.
2.信息世界
- 信息世界是现实世界的事物在人们头脑中的反映.客观事物在信息世界中称为实体,实体是彼此可以明确识别的对象.实体所具有的某一特性称为属性,实体可以分为"对象"和"属性"两大类
3.数据世界
- 数据世界可称作计算机世界,是在信息世界基础上的进一步抽象.现实世界中的事物及其联系,在数据世界中用数据模型描述
- 字段:标记实体属性的命名单位称为字段
- 记录:字段的有序集合称为记录
- 文件:同一类记录的集合称为文件
- 关键字:能唯一标识文件中每个记录的字段或字段集,称为记录的关键字
4.三个世界的划分
- 首先将现实世界的事物及联系抽象成信息世界的信息模型;然后再抽象成计算机世界的数据模型;数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换
- 三个世界各术语的对应关系:
1.2.2 实体间的联系
- 实体型:具有相同属性的实体必然具有共同的特征
- 实体集:同型实体的集合称为实体集
- 码/键:能唯一标识一个实体的属性或属性集称为实体的码
- 域:域是一组具有相同数据类型的值的集合,又称为值域.域中所包含的值的个数称为域的基数
- 联系:单个实体型内部的联系通常是指组成实体的各属性之间的联系.实体型之间的联系通常是指不同实体集之间的联系
- 两个实体型之间的联系是指两个不同的实体集间的联系,有如下三种类型:
1.2.3 数据模型的概念及分类
数据模型可以用来描述数据、组织数据对数据进行操作,是对现实世界数据特征的描述
数据模型分类:概念模型,逻辑模型,物理模型
- 概念模型:是从普通用户的视角来描述数据的,使用简单的符号来描述信息,没有严格的规定,只要能清晰反映现实世界的信息就行.常用的就是E-R图
- 逻辑数据模型:逻辑数据模型是严格定义的一组概念的集合,精确描述系统的静态、动态特性和完整性约束条件.通常由数据结构,数据操作和数据完整性约束条件组成
- 数据结构:描述数据库对象的属性(类型,内容,性质),描述对象之间的联系.是所描述对象类型的集合,是对系统静态特性的描述
- 数据操作:允许对数据库对象的执行的操作和操作规则集合,一般数据库主要由(增删改查操作,还有其他操作).是对系统动态性的描述
- 数据完整性约束条件:对数据和数据库状态进行限制,使其保持数据正确,符合实际情况.如一个学生信息不能同时有两个学号,两个院系
1.2.4 关系的形式化定义及其有关概念
笛卡尔积:给定一组域D
1,D2,…,Dn(他们可以包含相同的元素,也可以完全不同,也可以部分或全部相同).D1,D2,…,Dn的笛卡尔积为每一个元素(D
1,D2,…,Dn)中的每一个值d~i叫做一个分量,di∈Di~
每一个元素(D1,D2,…,Dn)叫做一个n元组,简称元组关系:笛卡尔积D
1×D2×Dn的任一子集称为在域D1,D2,…,Dn上的n元关系在关系R中,当n=1时,称为单元关系.当n=2时,称为二元关系,以此类推
关系中的每个元素是关系中的元组,通常用t表示,关系中元组个数是关系的基数
由于关系是笛卡尔积的子集,因此,也可以把关系看成一个二维表
具有相同关系框架的关系称为同类关系
在关系模型中,关系可进一步定义为:关系头(不变)+关系体(可变)
1.2.5 关系的性质
- 关系是一种规范化了的二维表中行的集合
- 每一列的分量必须来自同一个域,必须是同一类型的数据
- 不同的属性可以来自同一个域,不同的属性必须有不同的名字
- 列的顺序可以任意交换
- 关系中元组的顺序(即行序)可任意
- 关系中不允许出现相同的元组
- 关系中每一分量必须是不可分的数据项
1.2.6 关系模式
- 关系的描述称为关系模式:R(U,D,DOM,F),简记为R(U)
- R——关系名
- U——属性名集合
- D——属性所来自的域
- DOM——属性向域的映像集合
- F——属性间数据的依赖关系集合
- 关系模型-->关系头-->静态、稳定、固定不变
关系-->关系体-->随数据更新不断变化
1.2.7 关系数据库与关系数据库模式
- 关系数据库模式-->关系头-->静态、稳定、固定不变
关系数据库-->关系体-->随数据更新不断变化
1.2.8 关系的码与关系的完整性
1.候选码(键)与主码(键)
- 候选码:能唯一标识关系中元组的一个属性或属性集,称为候选码
- 从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主码
- 主属性:包含在主码中的各个属性称为主属性
- 非码属性:不包含在任何候选码中的属性称为非主属性
- 全码:所有属性的组合是关系的候选码称为全码
2.外码
- 如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码,则这个属性称为外码
- 被参照关系的主码和参照关系的外码必须定义在同一个域上
3.关系的完整性
实体完整性:实体完整性指主码的值不能为空或部分为空
例:学生关系中的主码“学号”不能为空
选课关系中的主码“学号+课程号”不能部分为空,
即“学号”和“课程号”两个属性都不能为空
参照完整性:如果关系R
2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值,或者取空值用户定义完整性:用户自定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求
- 如:成绩属性的取值范围在0-100之间
1.3 数据库系统结构
1.3.1 数据库系统的体系结构
1. 数据库系统的外部体系结构
- 数据库系统的外部体系结构可以分为集中式结构、分布式结构、客户端/服务器结构
2.数据库系统的内部体系结构
- 数据库系统的内部体系结构从逻辑上分为三级:外模式、模式、内模式
- 1.模式:模式也称为概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,只有一个
- 2.外模式:外模式也称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,可以有多个
- 3.内模式:内模式也称为存储模式或物理模式,它是对数据库存储结构的描述,是数据在数据库内部的表示方式,只有一个
1.3.2 数据库系统的二级映像
数据库管理系统在三级模式之间提供了二级映像功能,保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性
- 外模式/模式映像:保证了数据与程序间的逻辑独立性,可以有多个
- 模式/内模式映像:确保了数据的物理独立性,唯一
- 优点:
- 保证数据的独立性
- 简化了用户接口
- 有利于数据共享
- 有利于数据的安全保密
1.4 关系代数
1.4.1 关系代数的分类及其运算符
- 关系代数是一种抽象的查询语言
- 关系代数的运算对象与运算结果都是关系
- 关系代数运算符
1.4.2 关系代数运算类型
- 关系代数的运算按运算符的不同主要分为两类
- 传统的集合运算:
- 把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的
- 包括并、差、交和笛卡尔积等运算
- 专门的关系运算:
- 不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算
- 包括选取、投影、连接和除法等运算
- 传统的集合运算:
1.4.3 传统的集合运算
设给定两个关系R、S,若满足:
- (1) 具有相同的列数(或称度数)n
- (2) R中第i个属性和S中第i个属性必须来自同一个域
则说关系R、S是相容的
除笛卡尔积外,其他的集合运算要求参加运算的关系必须满足上述的相容性定义
1.4.4 关系的集合运算
- 并:R∪S={t | t∈R∨t∈S}
- 差:R-S = {t | t∈R∧┐t∈S}
- 交:R∩S = {t | t∈R∧t∈S} R∩S = R-(R-S)
- 广义笛卡尔积 :R×S = {t
r⌒ts| tr∈R∧ts∈S}
1.4.5 专门的关系运算
由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算
在讲专门的关系运算之前,为叙述上的方便先引入几个概念
- 设关系模式为R(A
1,A2,……An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量 - 若A={A
i1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……An中的一部分,则A称为属性列或域列,Ã则表示{A1,A2,……An}去掉{Ai1,Ai2,……,Aik}后剩余的属性组.t[A]={t[Ai1],t[Ai2],……t[Aik]}表示元组t在属性列A上诸分量的集合 - R为n元关系,S为m元关系,t
r∈R, ts∈S,tr⌒ts称为元组的连接,它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组 - 给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的像集,为Z
x={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的各元组在Z上分量的集合
1.4.6 关系代数
- 选取: σ
F(R) = {t | t∈R∧F(t)='真'}- F为选取的条件
- 选取是从行的角度进行运算
- 投影: Π
A(R ) = {t [A] | t ∈R }- 投影是从列的角度进行的运算
- θ连接: R⋈xθyS = {t
r⌒ts|tr∈R∧ts∈S∧tr[X]θts[Y ]为真}- θ为算术比较运算符
- 自然连接: 在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉,记为:R ⋈ S
- θ为算术比较运算符
- 除法: R÷S = { t
r[X] | tr∈R∧Πy(S) ⊆ Yx}- Y
x为x在R中的像集,x =tr[X] - 除法运算同时从行和列的角度进行运算,适合于包含“全部”之类的短语的查询
- Y
- 设关系模式为R(A