第一章 数据库系统基本概述
1.1数据库系统的基本原理
🏙️数据(Data)
定义:描述客观事物特征或性质的某种符号。
描述事物的符号可以是数值,也可以是文字、图形、图像、声音、语言等多种形式,它们都可以经过数字化处理后存入计算机。
🏙️数据项(Item of Data)
定义:数据的基本单元,即最小单位,它是某类客观事物的某个特征或性质的数据抽象。
每个数据项都有一个名字(数据项名)和若干可能的取值(数据项值)。
🏙️数据是有结构的
🏙️数据的特征
数据有“型”和“值”之分
数据有定性表示和定量表示之分
数据受数据类型和取值范围的约束
数据具有载体和多种表现形式
🏙️信息(Information)
定义1:客观事物之间相互联系、相互作用的运动状态和特征的抽象描述,是数据处理的结果,且仍以数据的形式表示出来。
定义2:是有一定含义的,经过加工处理的,对决策有价值的数据。
例:邮件(有用的邮件与垃圾邮件)
🏙️数据与信息的关系
数据是信息的载体,信息是数据的内涵
信息-数据+数据处理
相对性
🏙️数据库(DataBase,简称DB))
定义:长期存储在计算机内的、有组织的、可共享的数据集合,也是现实世界中相互关联的大量数据及数据间关系的集合
🏙️为什么要建数据库?
收集并抽取出一个应用所需要的大量数据,将其保存,以供进一步加工处理,抽取有用信息,转换为有价值的知识。
🏙️数据库管理系统(DataBase Management System,简称DBMS)
定义:是位于用户与操作系统(OS)之间的,使人们能对数据库中女的数据进行科学地组织、高效地存取和维护管理的一种数据管理软件。
它是基础软件,是一个大型复杂的软件系统。
用途:科学地组织和存储数据、高效地获取和维护数据
🏙️数据库管理系统的主要功能
数据库定义功能
提供数据定义语言(DDL)
定义数据库中的数据对象
数据库操纵功能
提供数据操纵语言(DML)
实现对数据库的基本操作(查询、插入、删除和修改)
数据库控制功能(运行管理)
控制整个数据库系统的运行,包括数据安全性控制、完整性控制、并发控制、存取控制等
数据库维护功能
数据的装入与转换、数据库转储与恢复、数据库重组织以及性能监控等功能
1.2数据管理技术的产生与发展
🏙️数据管理
对数据进行分类、组织、编码、存储、检索和维护
是数据处理和数据分析的主要内容和核心部分
数据处理:是指对数据进行分析和加工的技术过程,包括对名种原始数据的分析、整理、计算、编辑等的加工和处理。
🏙️计算机数据管理
是指利用计算机的软件、硬件对数据进行存储、检查、维护并实现对数据的各种运算和操作
🏙️数据管理主要经历了三个阶段
人工管理阶段(20世纪50年代中期以前)
1.计算机的主要应用领域是科学计算
2.应用程序与数据之间的对应关系
3.主要特点
数据不单独保存
人工(程序员)管理数据
数据不共享
数据不具有独立性
文件系统阶段(从20世纪50年代后期到60年代中期)
1.计算机不仅用于科学计算,还用于信息管理
2.应用程序与数据之间的对应关系
3.主要特点
数据可以长期保存
文件的多样化和结构化
文件系统管理数据
4.缺点
数据冗余度大
数据独立性差
数据联系弱
数据库系统阶段(从20世纪60年代后期至今)
1.数据管理的规模越来越大,数据量剧增
2.应用程序与数据之间的对应关系
3.主要特点
数据的整体结构化
数据独立性高
数据的共享性高,几余度低,易扩充
提供了完整的控制功能
高级数据库阶段(从20世纪80年代末开始)
🏙️数据的整体结构化
数据库的主要特征之一
不再仅仅针对某一个应用,而是面向整个企业或组织
不仅数据内部结构化,整体是结构化的,数据之间具有联系
数据记录可以变长
数据的最小存取单位是数据项
数据用数据模型描述,无需应用程序定义
🏙️数据独立性高
物理独立性
指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。
🏙️数据的共享性高,冗余度低且易扩充
1.数据面向整个系统,可以被多个用户,多余应用共享使用
2.数据共享的好处
减少数据几余,节约存储空间
避免数据之间的不相容性与不一致性
使系统易于扩充
🏙️数据库管理系统提供完整的数据控制功能
数据的安全性(Security)保护,保护数据以防止不合法的使用造成的数据的泄密和破坏。
数据的完整性(Integrity)检查,保证数据的正确性、有效性和相容性。
并发控制,对多用户的并发操作加以控(Concurrency Control)制和协调,防止相互干扰而得到错误的结果。
数据库恢复(Recovery),将数据库从错误状态恢复到某一已知数据库恢复的正确状态
🏙️数据管理3个阶段的比较
1.3数据库系统的组成
🏙️数据库系统(Data Base System,简称DBS)
- 是指在计算机系统中引入数据库后的系统构成
- 在不引起混淆的情况下,常常把数据库系统简称为数据库
🏙️数据库系统的组成
- 硬件平台及数据库
- 软件
- 相关人员
🏙️硬件平台及数据库(DB)
1.指中央处理器、内存储器、外存储器等完整的计算机硬件系统,6在网络环境中还包括服务器以及通信网络等硬件设施。
2.数据库系统对硬件资源的要求
- 足够大的内存
- 足够的大的磁盘或磁盘阵列等外部设备
- 较高的通道能力,提高数据传送率
🏙️软件
- 数据库管理系统(DBMS)
- 支持数据库管理系统运行的操作系统(OS)
- 与数据库接口的高级语言及其编译系统(Java、PHP、Python等)
- 以数据库管理系统为核心的应用开发工具(VisualStudi0、Eclipse、Visual Code、IDEA等)
- 为特定应用环境开发的数据库应用系统(APP)
🏙️相关人员
数据库管理员(DataBase Administrator,DBA)
- DBA是负责对数据库进行规划、设计、协调、维护和管理工作的人员
系统分析员和数据库设计人员
应用程序员
最终用户
数据库管理员DBA的职责
- 参与决定数据库中的信息内容和结构。
- 参与决定数据库的存储结构和存取策略。
- 参与确定数据的安全性要求和完整性约束条件。
- 监控数据库的使用和运行。
- 数据库的改进和重组重构。
系统分析员
- 负责应用系统的需求分析和规范说明
- 与用户及数据库管理员结合,确定系统的硬软件配置
- 参与数据库系统的概要设计。
数据库设计人员
- 参加用户需求调查和系统分析
- 确定数据库中的数据
- 设计数据库各级模式
应用程序员
- 设计和编写应用系统的程序模块
- 进行调试和安装。
用户(User)
- 偶然用户
- 简单用户
- 复杂用户
1.4数据库系统的模式结构
1.4.1数据库系统的三级模式
目的
- ① 为了减少数据几余,实现数据共享;
- ②为了提高存取效率,改善性能;
- ③ 提高数据的逻辑独立性和物理独立性。
三级模式--三个层次的抽象
- 是指数据库管理系统(DBMS)中存在的外模式(子模式)、(逻辑)模式和内模式,它是数据库管理系统(DBMS)对数据库中数据进行有效组织和管理的方法(图1-7)。
🏙️模式
⚽模式
- 也称结构模式或逻辑模式
- 是数据库中全体数据的逻辑结构和特征的描述,它与结构数据模型对应
- 是所有用户的公共数据视图
⚽模式是数据库系统模式结构的中心
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
⚽实例Instance
- 是模式的一个具体值--反映的是数据库某一时刻的状态
⚽模式与实例的区别和联系
区别
- 模式是型的描述,不涉及具体值;是相对稳定的
- 实例随数据库中数据的更新而变动联系
联系
- 同一个模式可以有很多实例
⚽举例
⚽定义模式
DBMS提供模式定义语言(SchemaDDL,简称模式DDL)来严格内地定义模式
- DDL定义数据的逻辑结构,以某种数据模型为基础。数据记录由哪些数据项构成,数据项的名字、类型、取值范围等
- 定义数据之间的联系
- 定义与数据有关的安全性、完整性要求
一般,某个应用的数据库有一个模式
🏙️外模式
⚽外模式(Extemal Schema)
- 也称子模式(Subschema)或用户模式
- 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
- 是与某一具体应用有关的数据的逻辑结构和特征的描述
⚽外模式的用途
- 每个用户只能看见和访问所对应的外模式中的数据,简化用户视零
- 保证数据库安全性的一个有力措施
⚽外模式与模式的关系
- 外模式通常是模式的子集、一个模式可以有多个外模式
- 反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
- 对模式中某一数据,在不同的外模式中结构、类型、长度、保密级别等都可以不同
⚽外模式与应用的关系
- 一个外模式可以为多个应用系统所使用,一个应用程序只能使用个外模式
🏙️内模式
⚽内模式(Internal Schema)
- 也称存储模式(Storage Schema)因
- 是数据库物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 记录的存储方式(例如,顺序存储,堆存储,Cluster按hash方法存储等)
- 索引的组织方式(B+树,Bitmap,Hash)
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定-如定长/变长,记录是否可以跨页存放等
⚽一个数据库只有一个内模式
⚽说明:现在的DBMS产品基本上可以自动完成内模式的大部分定义工作,几乎不需要用户介入。当用户使用模式DDL定义模式的同时,DBMS也就自动完成了相应的内模式的定义工作。
1.4.2 数据库系统的二级映象
🏙️数据库管理系统内部提供了二级映像
外模式/模式映象
- 存在于外模式与模式之间,用于定义外模式与模式之间的对应关系
- 映像定义通常包含在各外模式的描述中
- 其目的是为了提高数据与程序之间的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映象
- 存在于模式与内模式之间,用于定义内模式与模式之间的对应关系即数据库全局逻辑结构与存储结构之间的对应关系
- 其目的是为了提高数据与程序之间的物理独立性,即数据的物理独立性。映象定义通常包含在内模式描述中
🏙️三级模式与二级映像的优点
保证数据的独立性
- 除非应用需求本身发生变化,否则应用程序一般不需要修改。
方便用户使用,简化用户接口
- 从程序为中心发展为以数据为中心,简化了应用程序的编制(用户无需了解数据的存储结构)
- 大大减少了应用程序的维护和修改。
保证数据库安全性的一个有力措施
- 利用外模式将数据库的其余数据与用户进行了隔离。
有利于数据的共享性
- 同一个模式可以服务于多种应用
有利于从宏观上通俗地理解数据库系统的内部结构