数据库系统 --- 绪论

目录

一、数据库系统概述

1.4个基本概念

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

二、数据模型

1.数据建模

2.概念模型

3.数据模型的三要素

4.层次模型

5.关系模型

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

1.基本概念

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

3.数据库的两级映像与数据独立性

4.小结


一、数据库系统概述

1.4个基本概念

(1)数据:描述事物的符号记录,是数据库中存储的基本对象。

(2)数据库(DB):存放数据的仓库,是长期存储在计算机内有组织、可共享的大量数据的集合。具有较小的数据冗余、较高的数据独立性和可扩展性,并可为各种用户共享。

(3)数据库管理系统:位于用户与操作系统之间的数据管理软件。它和操作系统一样是计算机的基础软件。其主要功能包括以下几个方面:

①.数据定义功能。

②.数据组织、存储和管理功能。

③.数据操纵功能。

④.数据库的事务管理和运行管理功能。

⑤.数据库的建立和维护功能。

⑥.其他功能,如通信功能等等。

(4)数据库系统:指引入数据库后的计算机系统,一般是指由数据库、数据库管理系统(及其应用开发工具)、应用系统和数据库管理员组成的存储、管理、处理和维护数据的系统。

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

数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。总结如下。

数据独立性:指数据与应用程序相互独立,即数据的结构发生变化后,应用程序不必做相应的修改。

数据库系统阶段的数据具有的特点:①.整体数据的结构化。②.数据的共享性强,冗余度低且易于扩展。③.数据的独立性强。④.数据由数据库管理系统统一管理和控制,包括数据的安全性保护、数据的完整性检查、数据的并发控制、数据库的恢复。

二、数据模型

数据模型是一种模型,它是对现实世界数据特征的抽象。

1.数据建模

数据建模:把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型的过程。

数据建模的步骤:

①.建立概念模型:把现实世界抽象为信息世界。

概念模型:把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统支持的数据模型,而是概念级别的模型。

②.将概念模型转换成数据模型。

2.概念模型

(1)信息世界的基本概念:

①.实体(entity):客观存在并可以相互区别的事物称为实体。

②.属性(attribute):实体所具有的某一特性。

③.码(key):唯一标识实体的属性集。

④.实体类型:具有相同属性的实体必然具有共同的特性和特质。

⑤.实体集:同一类型实体的集合。

⑥.联系:信息世界中反应为实体各属性之间的联系,实体之间的联系。

(2)概念模型的表示方法:实体-联系模型(E-R图)

3.数据模型的三要素

数据模型通常由数据结构、数据操纵和完整性约束三部分组成。

数据结构:描述数据库的组成对象以及对象之间的联系。

数据结构描述的内容有两类:一类是与对象的类型、内容、性质相关的,比如网状模型中的数据项、记录;一类是与数据之间的联系有关的对象。

数据结构是对系统静态特性的描述。

数据操纵是对数据库中的各种对象(型)的实例(值)允许执行操作的集合,包括操作以及有关的数据规则。

数据操纵是对系统动态特性的描述。

完整性约束是一组完整性规则。

4.层次模型

在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线表示,这种联系是双亲结点和子女结点之间的一对多联系。如下图:

5.关系模型

(1)关系模型的数据结构:从用户角度来看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表。

(2)关系模型的术语:①.关系:一个关系通常说的一张二维表。②.元组:表中的一行即为一个元组。③.属性:表中的一列代表一个属性。④.码:又称码键或键,是表中的某一属性或一组属性,其值可以唯一确定一个元组。⑤.域:某一属性的取值范围。⑥.分量:元组中的一个属性值。⑦.关系模型:对关系的描述,一般表示为:关系名(属性1,属性2,...)。

(3)关系模型要求关系必须是规范化的,关系中的每个分量都必须是一个不可分的数据项。简单来说,就是不可以表中有表。

(4)关系模型中数据操纵是集合操作,操作对象和操作结果都是关系。

(5)关系模型的优点:①.关系模型建立在严格的数学概念基础上。②.关系模型的概念单一。③.关系模型的存取路径对用户隐蔽。

(6)关系模型的缺点:由于存取路径对用户是隐蔽的,故其效率不如层次模型。

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

从数据库管理系统角度来看,数据库管理系统通常采用模式、外模式和内模式三级模式结构。这是数据库系统内部的体系结构。

1.基本概念

在数据模型中有"类型"(或者型)和"值"的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。

模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模型的一个实例。

模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

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

各种数据库管理系统,他们在体系结构上通常都具有相同的特征,即采用三级模式结构并提供两级映像功能。

(1)模式

模式是所有用户的公共数据视图,它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,且不与具体的应用程序或者程序设计语言有关。

模式实际上是数据库数据在逻辑级上的视图,一个数据库对应一种模式。定义模式时不仅要定义数据的逻辑结构,还要定义数据之间的联系,以及与数据有关的安全性、完整性要求。

(2)外模式

外模式也成子模式或者用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。外模式是数据库用户的数据视图,是与某一应用程序有关的数据的逻辑表示。

一个数据库可以有多个外模式,一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。

数据库管理系统提供外模式数据定义语言来严格定义外模式。

(3)内模式

内模式也成物理模式或者存储模式,一个数据库只有一个内模式。它是对数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

3.数据库的两级映像与数据独立性

数据库系统的三级模式是数据的三个抽象级别,它把数据的具体组织留给了数据库管理系统管理,使得用户能逻辑、抽象地处理数据,而不必关系其内部底层具体存储。

数据库管理系统在这三级模式之间提供了两级映像:外模式/模式映像和模式/内模式映像。

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对于同一模式,可以有多个外模式。对于每个外模式,数据库系统都有一个外模式/模式映射来定义该外模式与模式之间的对应关系。

当模式改变时,由数据库管理员对各个外模式/模式的映像做出相应改变,可以使外模式保持不变。

数据库只有一个模式,也只有一个内模式,因此,模式/内模式映像是唯一的。

4.小结

在数据库的三级模式结构,其中,模式(即全局逻辑结构)是数据库的核心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。

内模式依赖于数据库的全局逻辑结构,但独立于数据库的用户视图(即外模式),也独立于具体的存储设备。它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应的外模式不能满足其视图要求时,该外模式就得做相应改动。所以设计外模式时应充分考虑到应用的扩充性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的两级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需修改。数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,数据的组织和存取交由数据库管理系统负责,简化了应用程序的编制,大大减少了应用程序的开发和维护成本。

相关推荐
Jacky(易小天)9 分钟前
MongoDB比较查询操作符中英对照表及实例详解
数据库·mongodb·typescript·比较操作符
Karoku0661 小时前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer2 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪3 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿3 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀3 小时前
MySQL中的索引
数据库·mysql