数据库原理与应用
第一章
数据(Data)
数据是数据库中存储的基本对象
数据的定义:描述事物的符号记录
数据的种类:文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等
数据的特点:数据与其语义是不可分的(说明:数据的含义称为数据的语义,数据与其语义是不可分的。)
数据库(DataBase,简称 DB)
数据库的定义:数据库(Database,简称 DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。(一个大规模集成的数据集合。)
数据库的基本特征:
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高
易扩展
数据库作用:
一个数据库是对现实生活中一个企业或一个单位在计算机中的建模结果
实体
联系(实体间的关系)
数据库管理系统(DataBase Management System,简称 DBMS)
DBMS 的定义:是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
DBMS 的用途:数据库管理系统的主要任务就是科学地组织和存储数据、高效地获取和维护数据
DBMS 的主要功能
数据定义功能
提供数据定义语言(DDL)
定义数据库中的数据对象
数据组织、存储和管理
分类组织、存储和管理各种数据
确定组织数据的文件结构和存取方式
实现数据之间的联系
提供多种存取方法提高存取效率
数据操纵功能
提供数据操纵语言(DML)
实现对数据库的基本操作 CRUD (查询、插入、删除和修改)
数据库的事务管理和运行管理
数据库在建立、运行和维护时由 DBMS 统一管理和控制,保证事务的正确性
保证数据的安全性、完整性、多用户对数据的并发使用
发生故障后的系统恢复
数据库的建立和维护功能(实用程序)
数据库初始数据装载转换
数据库转储
介质故障恢复
数据库的重组织
性能监视分析等
其它功能
DBMS 与网络中其它软件系统的通信
两个 DBMS 系统的数据转换
异构数据库之间的互访和互操作
数据库系统(Database System,简称 DBS)
数据库系统的定义:在计算机系统中引入数据库后的系统构成数据库系统。
数据库系统的构成
数据库
数据库管理系统(及其开发工具)
应用系统
数据库管理员 (DBA):是负责数据库的设计、规划、协调的专职人员。是全面负责建立、维护和管理数据库系统的人员。
数据管理技术的产生和发展
数据管理是对数据进行分类、组织、编码、存储、检索和维护,也是数据处理的中心问题。
数据管理技术的发展过程
人工管理阶段(20 世纪 40 年代中 —— 50 年代中)
文件系统阶段(20 世纪 50 年代末 —— 60 年代中)
数据库系统阶段(20 世纪 60 年代末 —— 现在)
数据库系统的特点
数据结构化
数据库的主要特征之一,也是数据库系统与文件系统的本质区别
数据的共享性高,冗余度低,易扩充
数据共享的好处:
减少数据冗余,节约存储空间
避免数据之间的不相容性与不一致性
使系统易于扩充
数据独立性高
物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
数据独立性是由 DBMS 的二级映像功能来保证的
数据由 DBMS 统一管理和控制
DBMS 提供以下几方面的数据控制功能
数据的安全性(Security)保护:保护数据,以防止不合法的使用造成的数据的泄密和破坏。
数据的完整性(Integrity)检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系。
并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
数据库恢复(Recovery):DBMS 必须具有将数据库从错误状态恢复到某一正确状态的功能
数据模型
数据模型分为两类(分属两个不同的层次)
概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
实体(Entity):客观存在并可相互区别的事物,比如一个学生,一门课,学生的一次选课
属性(Attribute):实体所具有的某一特性,比如学生的身高,一个实体可以由若干个属性来刻画。
码(Key) :唯一标识实体的属性集,比如学生的学号
域(Domain):属性的取值范围称为该属性的域。
实体型(Entity Type): 实体名 + 属性名,比如 学生(学号,姓名,性别)就是一个实体型
实体集(Entity Set):同一类型的实体的集合,比如全体学生
联系(Relationship) :现实世界中事物内部以及事物之间的联系在信息中反映为实体内部的联系和实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系,(有一对一,一对多,多对多等多种类型),实体之间的联系可用 E - R 图 表示
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于 DBMS 实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
关系模型是最重要的一种数据模型。
在用户观点下,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表,它由行(元组)和列(属性)组成。
关系(Relation):一个关系对应一张表
元组(Tuple):表中的一行即一个元组
属性(Attribute):表中的一列即一个属性,给每一个属性起一个名称即属性名
主码(Key) :表中的某个属性组,可以唯一确定一个元组,该属性组就称为主码。比如上表中的学号就就是该关系的主码
域(Domain):域是一组具有相同数据类型的值的集合。比如人的年龄是1-120岁,属性的取值范围来自该属性对应的域
分量:元组中的一个属性值。
关系模式:对关系的描述,一般表示为 关系名(属性名1,属性名2....)。比如学生(学号,姓名,年龄,性别,系,年级)。关系模式必须是规范化的,不允许表中还有表,每个属性都应该是不可分的(即关系的每一个分量必须是一个不可分的数据项)
第二章
关系 Relation
学生(学号,姓名,年级)就是一个关系
如果只有 1 个属性,则称为单元关系/一元关系
如果有 2 个属性,则称为二元关系
主码 Primary Key
有一个或一组这样的属性,它的值能确定该关系中其他所有属性的值。
候选码 Candidate Key
能唯一标识元组的属性(组),其中选择其一作为主码。
主属性 Prime Attribute
候选码中的诸属性。
非主属性 Non-Key Attribute
不出现在任何候选码中的属性。
关系的型与值
关系(表)的型:关系的结构(字段名、字段个数、域等)
关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。
关系数据库
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
(1)单一的数据结构—关系
关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。
(2)关系操作
关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等和查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。
(3)关系的三类完整牲约束
关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
关系的完整性
关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
关系模型的完整性规则是对关系的某种约束条件。任何关系在任何时刻都要满足这些语义约束
实体完整性
关系数据库中的每个元组应该是可区分的、唯一的。这样的约束条件用实体完整性来保证
实体完整性规则:每个关系都应有至少一个主属性,且主属性不能为空值
例如:选修(学号,课程号,成绩)关系中,学号和课程号不能为空值
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
参照完整性
参照完整性规则:若属性 F 是基本关系R的外码,它与基本关系 S 的主码 Ks 相对应,则对于 R 中每个元组在 F 上的值必须为:
- 或者取空值
- 或者等于 S 中某个元组的主码值
用户定义完整性
任何关系数据库系统都应支持实体完整性和参照完整性。除此之外,用户还可以自定义完整性约束。
用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
例:选修(学号,课程号,成绩)成绩的取值范围在 0~100 之间
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
关系代数
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。
关系代数的运算对象是关系,运算结果亦是关系
关系代数用到的运算符包括两类:集合运算符和专门的关系运算符
传统的集合运算
传统的集合运算是二目运算,包括并、差、交、笛卡尔积 4 种运算
并 Union
关系 R 与关系 S 的并记作:R ∪ S = {t|t∈R ∨ t∈S}
其结果仍为 n 目关系,由属于 R 或属于 S 的元组组成
差 Difference
系R与关系S的差记作:R - S = {t|t∈R ∧ tS}
其结果关系仍为 n 目关系,由属于 R 而不属于 S 的所有元组组成。
交 Intersection
关系 R 与关系 S 的交记作:R ∩ S = {t|t∈R ∧ t∈S}
其结果关系仍为 n 目关系,由既属于 R 又属于 S 的元组组成。关系的交可以用差来表示,即 R ∩ S = R-(R-S)
笛卡尔积 Cartesian Product
专门的关系运算
专门的关系运算包括选择、投影、连接、除运算等
选择 selection