数据库复习
第一章 绪论
1.1数据库系统概述
1.1.1 数据库的四个基本概念
数据、数据库、数据库管理系统、数据库系统
1.数据(data)
数据库中存储的基本对象。
- 定义:描述事物的符号记录。
- 种类:数字、文字、视频、音频等
- 特征:特征就是数据的语义,数据与其语义是不可分割的。
2.数据库
是长期存储在计算机内部、有组织、可共享的、大量的数据的集合。
- 基本特征:数据按照一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。
3.数据库管理系统
位于用户与操作系统之间的一层数据管理软件。用来科学的组织和存储数据、高效地获取和维护数据。
4.数据库系统
在计算机系统中一如数据库后地系统。
-
数据库系统的构成
数据库、操作系统、数据库管理系统及开发工具、应用系统、数据库管理员、用户。
- 特征:数据结构化;数据共享性高,冗余度低且易扩充;数据独立性搞;数据又数据库系统统一管理和控制。
1.1.2数据管理技术的产生和发展
-
什么是数据处理:
围绕着数据所作的工作都可成为数据处理。既对各种数据进行手机、管理、加工、传播的一系列活动的综合。
-
什么是数据管理:
对数据进行分类、组织、编译、存储、检索、维护,是数据处理的中心问题。数据管理是数据处理业务的基本环节,而且是任何数据业务处理中必不可少的共有部分。
-
数据管理技术的发展过程
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
1.1.3数据库系统的特点
- 数据结构化
- 数据的高共享性,冗余度低且易扩充
- 数据的独立性高
- 物理独立性:指用户的应用程序与数据库中数据的物理存储时相互独立的。当数据的物理存储改变了,应用程序不用改变。
- 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。
- 数据由数据库管理系统统一管理和控制
1.2数据模型
1.2.1三种数据模型
- 概念模型:也称为信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
- 逻辑模型:逻辑模型主要包括网状模型、乘此模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按照计算机系统的观点对数据建模,用与DBMS实现。
- 物理模型:物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
1.2.2数据模型的组成要素
数据模型有三个组成要素:数据结构、数据操作、完整性约束条件。
-
数据结构
描述数据库的组成对象及对象之间的联系。它是对系统 静态特性的描述。
-
数据操作
对各种对象的实例允许执行的操作及有关的操作规则。它是对系统动态特性的描述。
-
数据的完整性约束条件
一组完整性规则的集合。
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
1.2.3概念模型
概念模型的用途:它主要用于信息世界的建模,是现实世界到机器世界的一个中间层次。是数据库设计的有力工具;是数据库设计人员和用户之间进行交流的语言。
实体:客观存在且相互区别的事物。
-
属性:实体所具有的某一特性。
-
码:唯一表示实体的属性集合。
-
域:属性的取值范围称为该属性的域。
-
实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
-
实体集:同一类型实体的集合成为实体集。
-
联系:显示世界中书屋内部以及事物之间的联系。
1.2.4 最常用的数据模型
- 非关系模型:层次模型、网状模型
- 关系模型:
- 面向对象模型
- 对象关系模型
1.2.5层次模型
类似于数据结构里面的树状结构的东西。
1.2.6网状模型
对应数据结构里面的图
1.2.7关系模型
一张二维表
-
术语
-
关系:对应一张表
-
元组:表的一行
-
属性:表的一列,这一列的名称叫做属性名
-
主码:表中的属性组可以唯一的确定一个元组
-
域:属性的取值范围
-
分量:属性的取值范围
-
关系模式:对关系的描述
关系名(属性1,属性2,,,属性3)
-
关系必须是规范化的,满足一定的规范条件。
关系的每一个分量条件是一个不可分割的数据项,即不存在表中表
关系术语 一般表格的术语 关系名 表名 关系模式 表头(表格的描述) 关系 (一张)二维表 元组 记录或行 属性 列 属性名 列名 属性值 列值 分量 一条记录中的一个列值 非规范关系 表中有表(大表中嵌有小表)
-
-
关系数据模型的操纵
- 查询
- 插入
- 删除
- 更新
-
关系数据模型的完整性约束条件
- 实体完整性
- 参照完整性
- 用户自定义的完整性
-
关系模型的优点
- 建立在严格的数学概念的基础上
- 概念单一
- 关系模型的存取路径对用户透明
-
关系模型的缺点
- 存取路径都用户透明,查询效率低
- 提高性能要对用户查询的请求进行优化,增加了开发难度。
层次模型 | 网状模型 | 关系模型 | 面向对象模型 | |
---|---|---|---|---|
创始 | 1968年IBM公司的IMS系统 | 1969 年 CODASYL 的 DBTG 报告 (71 年通过 ) | 1970 年 F.Codd 提出关系模型 | 20 世纪 80 年代 |
数据结构 | 复杂 (树结构) | 复杂 (有向图结构) | 简单 ( 二维表 ) | 复杂 (嵌套递归) |
数据联系 | 通过指针 | 通过指针 | 通过表间的公共属性 | 通过对象标识 |
查询语言 | 过程性语言 | 过程性语言 | 非过程性语言 | 面向对象语言 |
典型产品 | IMS | IDS/Ⅱ IMAGE/3000 IDMS TOTAL | Oracle Sybase DB2 SQL Server Informix | ONTOS DB |
盛行期 | 20 世纪 70 年代 | **70 ** 年代至 80 年代中期 | 80 年代至现在 | 90 年代至现在 |
1.3数据库系统结构
1.3.1数据库系统模式的概念
- 型:对某一类数据的节后和属性的说明。(一个类型)
- 值:型的一个具体赋值(一个实例)
- 模式:数据库逻辑结构和特征的描述。它是型的描述。
- 实例:模式的一个具体值。
1..3.2 数据库系统的三级模式
- 外模式(子模式或用户模式):数据库用户使用的局部数据的逻辑结构特征的的描述。一个数据库可以有多个。
- 模式(逻辑模式或概念模式):数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个。
- 内模式(存储模式): 是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式。
1.3.3 数据的二级映像功能与数据独立性
-
二层映射
-
外模式/模式
同一个模式可以有多个外模式。 对每一个外模式 ,数据库系统都有一个外模式/模式映象,用来定义外模式与模式之间的对应关系,映象定义通常包含在各自外模式的描述中,以 保证数据的逻辑独立性。
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变。 应用程序是依据外模式编写的 ,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
-
模式/内模式映像
l当数据库的存储结构改变了(如 , 选用了另一种存储结构 ), 数据库管理员修改模式/内模式映象,使模式保持不变 。
-
1.3.4 数据库模式
1.4 数据库系统的组成
硬件平台与数据库、应用程序、数据库管理员。
第二章 关系数据库
2.1 关系数据结构及形式化定义
2.1.1 关系
关系模型中的数据的逻辑结构时一张二维表
-
域:一组具有相同数据类型的值的集合。
-
笛卡尔积:一组域中的所有的值的全排列,不能出现重复。
- 元组:笛卡尔积中的一组取值
- 分量:一组取值中的一项
- 基数:组合出出来的个数
-
关系:笛卡尔积的子集,表示为
-
属性:列的名字
-
码
候选码:关系中某一属性组的值能唯一标识一个元组,而其自己不能。
关键字/主码:多个候选码时选择其中一个。
主属性:候选码的诸属性
非主属性:不包含在候选码中的属性。
-
2.1.2 关系模式
- 关系模式:关系模式是对关系的描述,关系模式是型,关系是值。
- 定义关系模式:R ( U , D , DOM , F )
- R:关系名
- U:组成该关系的属性名集合
- D:属性组U中属性所来自的域
- DOM:属性向域的映像集合
- F:属性键的数据依赖集合。
- 关系模式和关系
- 关系模式:对关系的描述,静态的、稳定的、
- 关系:关系模式在某一时刻的状态或内容。动态的、随时间不断变化。
2.1.3 关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
2.1.4 关系模型的存储结构
2. 2关系操作
增、删、改、查。
2.3关系的完整性
关系的三类完整性约束:实体完整性、参照完整性、用户定义的完整性。
2.3.1 实体完整性
实体完整性规则:若属性A是基本关系R的主属性,则主属性A不能去空值。
2.3.2 参照完整性
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F域基本关系S的主码Ks相对应,则称F是基本关系R的外码,基本关系R成为基本参照关系,基本关系S成为被参照关系。
参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应。则对于R中每个元组在F上的值必须为一下两种情况:
- 或者取空值
- 或者等于S中某个元组的主码值。
实质就是不允许引用不存在的实体。
2.4 关系代数
-
并:
-
差:
-
交:
-
笛卡尔积:
笛卡尔积是把两列分别放在一起进行排列组合
-
选择:
-
投影:
-
连接:
- 等值连接:用A=B来选择。
- 自然连接:要就把两个关系中进行比较的分量必须是相同的属性组,并且在结果中把相重复的属性列去掉。此时记作:
- 悬浮元组:
- 外连接、左外连接、右外连接
-
除:
第1步:将被除关系R的属性分为象集属性和结果属性两部分:与除关系S相同的属性属于象集属性,不相同的属性属于结果属性。
第2步:在除关系S中,对与被除关系R相同的属性(象集属性)进行投影,得到除目标数据集。
第3步:将被除关系R分组,原则:结果属性值一样的元组为一组,求每个结果属性值的象集。
第4步:逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应 属于该除法运算结果集。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了