当前位置:   article > 正文

数据库系统--绪论

数据库系统--绪论

一、数据库系统概述

1. 基本概念

(1) 数据(Data)

数据是数据库中存储的基本对象。 【定义】描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机

(2) 数据库(DB)
① 定义

数据库(Database,简称DB)是长期储存计算机内有组织可共享的大量数据集合

② 基本特征
  • 数据按一定的数据模型组织、描述和储存

  • 可为各种用户共享

  • 冗余度较小

  • 数据独立性较高

  • 易扩展

(3) 数据库管理系统(DBMS)
① 定义

DBMS是位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统

② 用途

科学地组织和存储数据、高效地获取和维护数据

③ 主要功能
a. 数据定义功能(DDL)

用户可以对数据库中的数据对象进行定义。

b. 数据组织、存储和管理
  • 分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。

  • 确定组织数据的文件结构和存取方式

  • 实现数据之间的联系

  • 提供多种存取方法提高存取效率

c. 数据操纵功能(DML)

用户可以使用DML操纵数据

d. 数据库的事务管理和运行管理

数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复。

  • 安全性:比如不同用户设置不同的权限

  • 完整性:数据要满足特定条件

e. 数据库的建立和维护功能(实用程序)
  • 数据库初始数据装载转换

  • 数据库转储

  • 介质故障恢复

  • 数据库的重组织

  • 性能监视分析等

(4) 数据库系统(DBS)
① 构成

有几部分构成:

  • 数据库 Database

  • 数据库管理系统(及其开发工具)Database Management System

  • 应用系统

  • 数据库管理员 Database Administrator

  • 应用系统在底层是要调用数据库管理系统的

  • DBMS底层是调用操作系统来管理数据库的

  • 数据库是存在硬盘上的信息,由操作系统控制

  • 数据库管理员操作DBMS和数据库的,但是应用软件不管他的事情,这是程序员开发的

② 特点
a. 数据结构化
b. 数据的共享性高,冗余度低,易扩充
c. 数据独立性高
  • 物理独立性

    指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。

  • 逻辑独立性

    指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。

    同样的,即使用户程序改变了,数据也不会改变

  • 数据独立性是由DBMS的二级映像功能来保证的

d. 数据由DBMS统一管理和控制

2. 数据管理技术的产生和发展

数据管理技术经历了人工管理、文件系统、数据库系统3个阶段。

(1) 人工管理阶段
① 特点

人工管理数据具有如下特点:

  1. 数据不保存

    早期的计算机是将数据写到纸带上的,用打孔表示01,这样无法存储数据

  2. 应用程序管理数据

    数据与程序绑定,比如程序中的变量,程序改变,数据也改变,程序没了,数据也没了

  3. 数据不共享

  4. 数据不具有独立性

② 缺点

缺点:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这就加重了程序员的负担。

(2) 文件系统阶段

计算机已经有了操作系统以及文件管理系统等出现的

文件系统,就相当于存储的word,txt文件,数据都存到这些文件中,用的时候读取文件

① 特点

用文件系统管理数据具有如下特点

  1. 数据可以长期保存;

  2. 由文件系统管理数据

② 缺点
  1. 数据共享性差,冗余度大

  2. 数据独立性差

(3) 数据库系统阶段

用数据库系统管理数据具有如下特点

  1. 数据结构化

  2. 数据的共享性高,冗余度低,易扩充

  3. 数据独立性高

  4. 数据由DBMS统一管理和控制

二、数据模型

介绍

(1) 概念

在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

(2) 数据模型满足的要求
  • 能比较真实地模拟现实世界

  • 容易为人所理解

  • 便于在计算机上实现

1. 两大类数据模型

(1) 概念模型

也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。

(2) 逻辑(数据)模型和物理模型
  • 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。

    我们现在主流使用的就是关系模型,就是一个二维的关系表

    逻辑模型也是数据模型

  • 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

(3) 客观对象的抽象过程—两步抽象
  • 现实世界中的客观对象抽象为概念模型;

  • 把概念模型转换为某一DBMS支持的数据模型。

2. 数据模型的组成要素

(1)数据结构

数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面:

  1. 数据本身

  2. 数据之间的联系

(2)数据操作
(3)数据的完整性约束条件

3. 概念模型

概念模型,是将实体抽象为信息世界的过程

(1) 用途与基本要求

概念模型的用途:

  • 概念模型用于信息世界的建模

  • 是现实世界到机器世界的一个中间层次

  • 是数据库设计的有力工具

  • 数据库设计人员和用户之间进行交流的语言

对概念模型的基本要求:

  • 较强的语义表达能力

  • 能够方便、直接地表达应用中的各种语义知识

  • 简单、清晰、易于用户理解

(2) 信息世界中的基本概念
① 实体(Entity)

客观存在并可相互区别的事物称为实体。

② 属性(Attribute)

实体所具有的某一特性称为属性。

③ 码(Key)

唯一标识实体的属性集称为码。

④ 域(Domain)

属性的取值范围称为该属性的域。

域可以说成是取值范围

⑤ 实体型(Entity Type)

用实体名及其属性名集合来抽象和刻画同类实体称为实体型

⑥ 实体集(Entity Set)

同一类型实体的集合称为实体集

比如说全体学生

⑦ 联系(Relationship)
  • 分为实体内部的联系和实体之间的联系。

  • 实体内部的联系通常是指组成实体的各属性之间的联系

  • 实体之间的联系通常是指不同实体集之间的联系

(3) 实体型的联系
(4) 实体-联系图(E-R图)

4. 数据/逻辑模型

数据模型就是将抽象的模型转化为数据库的模型

目前,数据库领域中最常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。

(1) 层次模型(Hierarchical Model)
  • 层次模型是数据库系统中最早出现的数据模型

  • 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统

  • 层次模型用树形结构来表示各类实体以及实体间的联系

① 数据结构

满足下面两个条件的基本层次联系的集合为层次模型

  • 有且只有一个结点没有双亲结点,这个结点称为根结点

  • 根以外的其它结点有且只有一个双亲结点

层次模型中的几个术语:根结点,双亲结点,兄弟结点,叶结点

② 特点
  1. 结点的双亲是唯一的

  2. 只能直接处理一对多的实体联系,一个父节点下面对应多个子节点,多个子节点对应一个父节点

  3. 每个记录类型可以定义一个排序字段,也称为·码字段

  4. 任何记录值只有按其路径查看时,才能显出它的全部意义

  5. 没有一个子女记录值能够脱离双亲记录值而独立存在

③ 多对多联系在层次模型中的表示

方法:

  • 将多对多联系分解成一对多联系

分解方法:

  • 冗余结点法

  • 虚拟结点法

④ 数据操纵与完整性约束

层次模型的数据操纵:增、删、改、查

层次模型的完整性约束条件:

  • 无相应的双亲结点值就不能插入子女结点值

  • 如果删除双亲结点值,则相应的子女结点值也被同时删除

  • 更新操作时,应更新所有相应记录,以保证数据的一致性

⑤ 存储结构

按照层次树前序遍历(T-L-R)的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。又可分为:子女-兄弟链接法层次序列链接法

a. 子女-兄弟链接法
  • 每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟

image-20230116113546190

b. 层次序列链接法
  • 按树的前序穿越顺序链接各记录值

image-20230116113603352

⑥ 优缺点
  • 优点:

    • 层次模型的数据结构比较简单、清晰

    • 查询效率高,性能优于关系模型,不低于网状模型

    • 层次数据模型提供了良好的完整性支持

  • 缺点:

    • 多对多联系表示不自然

    • 插入删除操作的限制多,应用程序编写比较复杂

    • 查询子女结点必须通过双亲结点

    • 由于结构严密,层次命令趋于程序化

(2) 网状模型(Network Model)
① 数据结构
a. 网状模型:

满足下面两个条件的基本层次联系的集合:

  • 允许一个以上的结点无双亲;

  • 一个结点可以有多于一个的双亲。

b. 表示方法(与层次数据模型相同):
  • 实体型:用记录类型描述

    每个结点表示一个记录类型(实体)

  • 属性:用字段描述

    每个记录类型可包含若干个字段

  • 联系:用结点之间的连线表示记录类型(实体)之 间的一对多的父子联系

c. 网状模型与层次模型的区别:
  • 网状模型允许多个结点没有双亲结点

  • 网状模型允许结点有多个双亲结点

  • 网状模型允许两个结点之间有多种联系(复合联系)

  • 网状模型可以更直接地去描述现实世界

  • 层次模型实际上是网状模型的一个特例

网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关双亲记录子女记录

d. 多对多联系在网状模型中的表示:

方法:将多对多联系直接分解成一对多联系

例如:一个学生可以选修若干门课程,·某一课程可以被多个学生选修,学生与课程之间是多对多联系 ·

  • 引进一个学生选课的联结记录,由3个数据项组成 学号、课程号、成绩,表示某个学生选修某一门课程及其成绩

image-20230116114044370

就是将学生与课程的练习提取出来,形成一对多的关系

② 网状数据模型的操纵与完整性约束

网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束

  • :唯一标识记录的数据项的集合

  • 一个联系中双亲记录子女记录之间是一对多联系

  • 支持双亲记录和子女记录之间某些约束条件

③ 存储结构

关键:

  • 实现记录之间的联系

这就是网状结构能存储多对多关系的原因

常用方法:

  • 单向链接

  • 双向链接

  • 环状链接

  • 向首链接

image-20230116114202402

中间的就是关系

④ 优缺点
  • 优点

    • 能够更为直接地描述现实世界,如一个结点可以有多个双亲;

    • 具有良好的性能,存取效率较高;

  • 缺点

    • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;

    • DDL、DML语言复杂,用户不容易使用;

(3) 关系模型
数据结构

在用户观点下,关系模型中数据的逻辑结构是一张二维表。

关系(Relation)一个关系对应通常说的一张表
元组(Tuple)表中的一行即为一个元组
属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名
名词解释
主码/码(Key)表中的某个属性组,它可以唯一确定一个元组。
域(Domain)属性的取值范围
分量元组中的一个属性值(所以属性的专业术语就是分量)
关系模式对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)。 比如 学生(学号,姓名,年龄,性别,系,年级)
关系数据模型的操纵与完整性约束

关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。

完整性约束包括三大类:

  • 实体完整性

    实体之间必须要有能标识每个实体的属性,比如学生的学号可以表示一位学生。

    不能一个属性会指向多个实体

  • 参照完整性

    一个关系的属性要参照另一个关系的属性,比如说选修中的学号参照的是学生的学号;

    这个是为了保证实体之间的关系,外键就是保证这个的

  • 用户定义的完整性。

    用户定义属性的时候要满足域,比如定义性别只能有两种

优点
  • 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。

  • 关系模型的概念单一。

    原来是以二维表的形式存储的,实际操作的时候也是操作的二维表

  • 关系模型的存取路径对用户透明(只用管取,不用管存到哪里),从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。

(4) 其他模型
面向对象数据模型

将语义数据模型和面向对象程序设计方法结合起来,用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。

一系列面向对象核心概念构成了面向对象数据模型( Object Oriented Data Model, 00模型)的基础,主要包括以下一些概念:

  1. 现实世界中的任何事物都被建模为对象。每个对象具有一个唯一的对象标识 (OID)。

  2. 对象是其状态和行为的封装,其中状态是对象属性值的集合,行为是变更对象状 态的方法集合。

  3. 具有相同属性和方法的对象的全体构成了类,类中的对象称为类的实例。

  4. 类的属性的定义域也可以是类,从而构成了类的复合。类具有继承性,一个类可以继承另一个类的属性与方法,被继承类和继承类也称为超类和子类。类与类之间的复合与继承关系形成了一个有向无环图,称为类层次。

  5. 对象是被封装起来的,它的状态和行为在对象外部不可见,从外部只能通过对象显式定义的消息传递对对象进行操作。

面向对象数据库(OODB)的研究始于20世纪80年代,有许多面向对象数据库产品相继问世,较著名的有Object Store、02、ONTOS等。

与传统数据库一样,面向对象数据库系统对数据的操纵包括数据查询、增加、删除、修改等,也具有并发控制、故障恢复、存储管理等完整的功能。不仅能支持传统数据库应用,也能支持非传统领域的应用,包括CAD/CAM、OA、CIMS、GIS以及图形、图像等多媒体领域、工程领域和数据集成等领域。

尽管如此,由于面向对象数据库操作语言过于复杂,没有得到广大用户,特别是开发人员的认可,加上面向对象数据库企图完全替代关系数据库管理系统的思路,增加了企业系统升级的负担,客户不接受,·面向对象数据库产品终究没有在市场上获得成功。

对象关系模型

对象关系数据库系统(Object Relational DataBase System, ORDBS) 是关系数据库与面向对象数据库的结合。 它保持了关系数据库系统的非过程化数据存取方式和数据独立性,继承了关系数据库系统已有的技术,支持原有的数据管理,又能支持00模型和对象管理。各数据库厂商都在原来的产品基础上进行了扩展。 1999 年发布的SQL标准(也称为SQL99),增加了SQL/Object Language Binding, 提供了面向对象的功能标准。SQL99对ORDBS标准的制定滞后于实际系统的实现。所以各个ORDBS产品在支持对象模型方面虽然思想一致,但是所采用的术语、语言语法、扩展的功能都不尽相同。

三、数据库系统结构

1. 数据库系统模式的概念

模式是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。

简单来说,模式就是一个事物应该有什么;

2. 数据库系统的三级模式结构

image-20230117092119448

模式别名说明举例
外模式用户模式就是根据需求返回的数据查成绩,只会显示你的名字和你的成绩
模式逻辑模式就是打开mysql表之后看到的完整的表所有人的名字,成绩,学号等信息都会显示出来
内模式存储模式就是数据在硬盘中如何存储的
(1) 模式

模式(也称逻辑模式)

  • 数据库中全体数据的逻辑结构和特征的描述

  • 所有用户的公共数据视图,综合了所有用户的需求

一个数据库只有一个模式,可以把模式看成唯一的数据库,实例就是数据库里面的多个表

模式的地位:

  • 是数据库系统模式结构的中间层

  • 与数据的物理存储细节和硬件环境无关

  • 与具体的应用程序、开发工具及高级程序设计语言无关

模式的定义:

  • 数据的逻辑结构(数据项的名字、类型、取值范围等)

  • 数据之间的联系

  • 数据有关的安全性、完整性要求

(2) 外模式

外模式(也称子模式或用户模式)

  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述

  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,可以看成把数据库的部分数据,运用在不同的应用程序上,在UI界面上显示

外模式的地位:介于模式与应用之间

模式与外模式的关系:一对多

  • 外模式通常是模式的子集;

  • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求;

  • 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同;

外模式与应用的关系:一对多

  • 同一外模式也可以为某一用户的多个应用系统所使用;

  • 但一个应用程序只能使用一个外模式;

  • 可以看成把数据库的部分数据,运用在不同的应用程序上,在UI界面上显示

外模式的用途

  • 保证数据库安全性的一个有力措施;

  • 每个用户只能看见和访问所对应的外模式中的数据;

(3) 内模式

内模式(也称存储模式)

  • 是数据物理结构和存储方式的描述

  • 是数据在数据库内部的表示方式:

    • 记录的存储方式(顺序存储/按照B树结构存储/按hash方法存储)

    • 索引的组织方式

    • 数据是否压缩存储

    • 数据是否加密

    • 数据存储记录结构的规定

  • 一个数据库只有一个内模式

总结

数据库模式

  • 即全局逻辑结构是数据库的中心与关键

  • 独立于数据库的其他层次

  • 设计数据库模式结构时应首先确定数据库的逻辑模式

数据库的外模式

  • 面向具体的应用程序

  • 定义在逻辑模式之上

  • 独立于存储模式和存储设备

  • 当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动

  • 设计外模式时应充分考虑到应用的扩充性

数据库的内模式

  • 依赖于它的全局逻辑结构

  • 独立于具体的存储设备

  • 将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以到较好的时间与空间效率

3. 数据库的二级映像功能与数据独立性

数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。

数据库管理系统在这三级模式直接提供了两层映像:

  • 外模式/模式映像

  • 模式/内模式映像

两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性

(1) 外模式/模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。 当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序时依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

(2) 模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以,模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。

当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

特点:

  1. 保证数据的物理独立性

    当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变.

    应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。

  2. 特定的应用程序

    在外模式描述的数据结构上编制的

    依赖于特定的外模式

    与数据库的模式和存储结构独立

    不同的应用程序有时可以共用同一个外模式

  3. 数据库的二级映像

    保证了数据库外模式的稳定性

    从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改

    数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去

  4. 数据的存取由DBMS管理

    用户不必考虑存取路径等细节

    简化了应用程序的编制

    大大减少了应用程序的维护和修改

四、数据库系统的组成

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。

1. 硬件平台及数据库

硬件资源要求:

  • 要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。

  • 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)作数据备份。

  • 要求系统有较高的通道能力,以提高数据传送率。

2. 软件

数据库系统的软件主要包括:

  • DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。

  • 支持DBMS运行的操作系统。

  • 具有与数据库接口的高级语言以及编译系统,便于开发应用程序。

  • 以DBMS为核心的应用开发工具。

  • 以特定应用环境开发的数据库应用系统。

3. 人员

开发、管理和使用数据库系统的人员主要是:数据库管理员系统分析员数据库设计人员应用程序员最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图:

image-20230117092126860

(1) 数据库管理员

DBA负责全面管理和控制数据库系统。具体职责包括:

  • 决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策。

  • 决定数据库的存储结构存取策略。

  • 定义数据的安全性要求和完整性约束条件。

  • 监控数据库的使用和运行。

    • 周期性转储数据库

    • 数据文件

    • 日志文件

    • 系统故障恢复

    • 介质故障恢复

    • 监视审计文件

  • 数据库的改进和重组重构。

    • 性能监控和调优

    • 定期对数据库进行重组织,以提高系统的性能

    • 需求增加和改变时,数据库须需要重构造

(2) 系统分析员和数据库设计人员

系统分析员负责

  • 应用系统的需求分析和规范说明

  • 要和用户及DBA相结合,确定系统的硬件配置,并参与数据库系统的概要设计。

    就是分析员要与用户沟通,需求分析,制作成ER图,也要与DBA商量数据库的结构;起到承上启下的作用

(3) 数据库设计人员

负责数据库中数据的确定、数据库各级模式的设计。

(4) 应用程序员

应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

(5) 用户

这里用户是指最终用户。 最终用户通过应用系统的用户接口使用数据库。

  1. 偶然用户

    不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息 企业或组织机构的高中级管理人员

  2. 简单用户

    主要工作是查询和更新数据库

    银行的职员、机票预定人员、旅馆总台服务员

  3. 复杂用户

    工程师、科学家、经济学家、科技工作者等

    直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/709614
推荐阅读
相关标签
  

闽ICP备14008679号