《数据库技术原理与应用教程(第2版)》——第2章 数据库的基础知识 2.1 数据库中的基本概念

简介:

本节书摘来自华章计算机《数据库技术原理与应用教程(第2版)》一书中的第2章,第2.1节,作者 徐洁磐 操凤萍,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章 数据库的基础知识

本章将介绍数据库的基础知识,包括基本概念、基本结构、应用平台及特点等。本章内容十分重要,它对全书具有提纲挈领的作用。

2.1 数据库中的基本概念

1.数据

(1)数据的概念
数据(data)是现实世界中客体在计算机中的抽象表示。具体地说,它是一种计算机内的有限个数的一组符号表示。
由于数据是一种抽象的符号表示,因此它缺少语义,在必要时须对它作出语义解释。

(2)数据的性质分类
1)数据的持久性:从存储时间看,数据一般分为两部分,其中一部分与程序仅有短时间的交互关系,随着程序的结束而消亡,它们称为临时性(transient)数据。这类数据一般存放于计算机内存中。而另一部分数据则对系统起着长期持久的作用,它们称为持久性(persistent)数据,这类数据一般存放于计算机中的次级存储器(如磁盘)内。

2)数据的共享性:从其使用对象看,数据可分为私有性与共享性数据。为特定应用(程序)服务的数据称为私有性(private)数据,而为多个应用(程序)服务的数据则称为共享性(share)数据。

3)数据的超大规模性:从其存储数量看,数据可分为小规模、大规模及超大规模三种。数据的量是衡量与区别数据的重要标志,这是因为数据“量”的变化可能会引起数据“质”的变化。数据量由小变大后,就需要对数据进行管理、保护与控制。目前,当数据以超大规模形式出现时,一般均需管理、保护与控制。

随着技术的进步与应用的扩大,数据的特性不断发生变化,这些变化主要表现为:

  • 数据的量由小规模到大规模进而到超大规模。
  • 数据的服务范围由私有到共享。
  • 数据的存储周期由挥发到持久。

数据的这些变化使得现代数据具有超大规模的、持久的和共享的特点,本书如不加特别说明,所提数据均具这三种特性。

近期来,数据特性又有了新的变化,数据的量由超大规模而到“海量”“巨量”规模,数据服务范围由共享到全球性共享,从而出现了互联网+与大数据分析等新技术应用。

下面我们讨论数据与软件间的关系。

(3)数据与软件
软件(software)是计算机科学的一大门类,它是建立在计算机硬件之上的一种运行(或处理)实体。软件一般由程序与数据两部分组成,其中程序给出了运行的过程表示,而数据则给出了运行的对象与结果。
在软件中,数据(主要指其结构)是其稳定部分,而程序则是可变部分,因此数据称为软件中的不动点(fixed point),它在软件中起着基础性的作用。它们间关系可见图2.1所示。

过去,软件是以程序为中心,而数据则以私有形式从属于程序。在这样的系统中,数据是分散、凌乱的,于是造成了数据管理的混乱,如数据冗余大、一致性差、结构复杂等多种弊病。但经过若干年的发展,数据在软件中的地位和作用发生了本质的变化,在软件中它已占据主体地位,而程序则已退居附属地位,从而形成了以数据为中心的结构。在这样的结构中,需要对数据进行集中、统一的管理,并使其为多个应用程序共享。这种结构如图22所示,它为数据库系统的产生与发展奠定了基础。

image

2.数据库

数据库(DataBase,DB)是数据的集合,它具有统一的结构形式,存放于统一的存储介质内,并由统一机构管理。它由持久、超大规模数据集成,并可被应用所共享。

数据库存放数据,数据按所提供的数据模式存放,它能构造复杂的数据结构以建立数据间内在联系与复杂关系,从而构成数据的全局结构模式。

3.数据库管理系统

数据库管理系统(Database Management System,DBMS)是统一管理数据库的一种软件(属系统软件),它负责如下工作:

(1)数据组织定义
数据库管理系统负责为数据库构建数据结构,它包括为数据库构建全局统一数据框架称全局模式以及局部数据框架称局部模式。

(2)数据存取的物理构作
数据库管理系统负责为数据模式的物理存取构作有效的存取方法与手段,如构作索引(index)、集簇(cluster)及分区(partition)等。

(3)数据操纵
数据库管理系统为用户使用数据提供方便,它提供数据查询、插入、修改以及删除的功能。此外,它还具有一定的运算、转换、统计能力以及一定的过程调用能力。

(4)数据的完整性、安全性定义与检查
数据库中的数据具有内在语义上的关联性与一致性,它们构成了数据的完整性。数据的完整性是保证数据库中数据正确性的必要条件,因此必须经常检查以维护数据的正确性。

数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对数据正确使用做出必要的规定,并在使用时检查,从而保证数据的安全性。

维护数据库的完整性与安全性是数据库管理系统的基本职能。

(5)数据的并发控制与故障恢复
数据库是一个集成、共享的数据集合体,它能为多个应用服务,因此就会出现多个应用对数据库的并发操作的情况。而在并发操作中,多个应用间的相互干扰会对数据库中的数据造成破坏,因此,必须进行必要的控制以保证数据不受破坏,这就是数据的并发控制。

同时数据库在运行时遭受外界破坏后有能力及时进行恢复,即数据的故障恢复。

(6)数据交换
数据库中的数据需要与外界数据主体进行交换,这种主体可以是操作员、应用程序,也可以是另一种数据体。数据库管理系统提供了数据交换的管理功能。

(7)数据的服务
数据库管理系统提供对数据库中数据的多种服务功能,如数学函数、输入/输出函数、数据转换函数、日期函数等,此外还提供数据复制、转储、重组、性能监测、分析等服务功能以及可视化界面平台服务等。这些服务可以函数、过程及组件形式出现,也可以工具及工具包等形式出现。

此外,数据服务还包括信息服务。信息服务主要以数据字典为主。数据字典是一组关于数据的数据(即元数据),它存放数据库管理系统中的数据模式结构、数据完整性规则、安全性要求等,此外,还包括数据管理中的多种参数。数据字典是数据库管理系统中的一个专门的系统数据库,它具有固定的模式结构,称为信息模式(information schema),用户可用查询语言对其操作,以获取数据库的结构性信息。

为完成以上功能,数据库管理系统一般提供以下统一的数据语言(data language):

1)数据定义语言(Data Definition Language,DDL):该语言负责数据的模式定义、表定义、视图定义与数据的物理存取构作。

2)数据操纵语言(Data Manipulation Language,DML):该语言负责数据的操纵,包括查询及增、删、改等操作。

3)数据控制语言(Data Control Language,DCL):该语言负责数据完整性、安全性的定义与检查以及事务、并发控制、故障恢复等功能。

以上三种语言都是非过程性语言,它们可以有多种表示形式。随着数据库系统发展,这三种语言已逐渐合并成为一种语言。

此外,数据库管理系统还提供与数据交换有关的语言与接口函数,同时还提供为用户服务的服务性软件,如程序包、函数库、类库、存储过程以及专用工具等。

4.开发性数据库管理

由于数据库的共享性,因此对数据库生成、维护等工作需要管理,其主要工作如下:

1)数据库生成:在数据库设计基础上建立数据模式,生成数据库。

2)数据库运行维护:在数据库运行过程中需对数据库进行监督以保证其运行效率。同时对数据库中数据的安全性、完整性、并发控制及系统恢复进行维护。此外,还须不断调整内部结构及参数,以改善数据库性能。

开发性数据库管理中的运行维护由数据库管理员(DataBase Administrator,DBA)负责实施。而数据库系统则由数据库程序员负责实施。

5.数据库系统

数据库系统(DataBase System,DBS)是一种采用数据库技术的计算机系统,它是一个实际可运行的,向应用系统提供支撑的系统。

数据库系统由五个部分组成:

  • 数据库(数据)
  • 数据库管理系统(软件)
  • 数据库管理员(人员)
  • 系统平台之一——硬件平台(硬件)
  • 系统平台之二——软件平台(软件)

这五个部分构成了一个以数据库为核心的完整的运行实体。

在数据库系统中,硬件平台包括以下两类:

1)计算机:它是系统中硬件的基础平台,目前常用的有微型机、小型机、中型机、大型机及巨型机。近期还有移动终端、智能手机等。

2)网络:过去,数据库系统一般建立在单机上,但是近年来多建立在网络上,包括局域网、广域网及互联网,而其结构形式又以客户/服务器(C/S)方式与浏览器/服务器(B/S)方式为主。

在数据库系统中,软件平台包括三类:

1)操作系统:它是系统的基础软件平台,目前常用的有Windows与UNIX(包括Linux)两种,近期还有Android及iOS等。

2)数据库系统开发工具:为开发数据库应用提供的工具,包括过程化程序设计语言(如JAVA、C、C++等)、可视化开发工具(VB、PB、Delphi等),还包括近期与互联网有关的ASP、JSP、PHP、HTML及XML等工具以及一些专用开发工具。

3)中间件:在网络环境下,数据库系统中的数据库与应用间需要有一个提供标准接口与服务的统一平台,它们称为中间件(middleware)。目前使用较普遍的中间件有微软的 NET、ODMG的CORBA以及基于Java的J2EE等。它们为支持数据库应用开发、方便用户使用提供了基础性的服务。

6.数据库应用系统

数据库应用系统(DataBase Applied System,DBAS)是以数据库为核心,以数据处理为内容的应用系统,它利用数据库系统作应用开发,可构成一个数据库应用系统。数据库应用系统是由数据库系统、应用软件及应用界面三部分组成,具体组成包括:

image
image

目前很多的流行的应用系统都属于此种系统,它们一般也称为信息系统(Information System),例如管理信息系统(MIS)、企业资源规划(ERP)、办公自动化系统(OA)、情报检索系统(IRS)、客户关系管理(CRM)、财务信息系统(FIS)等均为信息系统。

相关文章
|
5天前
|
存储 运维 Kubernetes
多态关联在数据库设计中的应用和解决方案
多态关联在数据库设计中的应用和解决方案
15 0
|
6天前
|
Java 关系型数据库 MySQL
Servlet 教程 之 Servlet 数据库访问 2
本教程讲解如何在Servlet中实现数据库访问。首先确保了解JDBC并配置MySQL驱动(如mysql-connector-java-5.1.39-bin.jar),在Eclipse Web项目中需将驱动放入Tomcat的lib目录。创建名为`websites`的数据库表,插入测试数据。之后展示了一个Servlet示例,该示例连接到数据库,执行SQL查询以获取`websites`表中的`id`、`name`和`url`,并将结果输出到HTML响应中。要运行Servlet,需在web.xml中配置并访问指定URL。
12 4
|
7天前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
7天前
|
机器学习/深度学习 搜索推荐 数据库
矢量数据库的未来发展趋势:新技术与应用展望
【4月更文挑战第30天】随着AI和机器学习的发展,矢量数据库在处理非结构化数据方面的重要性日益增强。预测到2028年,全球矢量数据库市场将从2023年的15亿美元增长至43亿美元。未来趋势包括:并行计算与分布式架构提升处理能力,硬件加速技术(如TPU和昇腾芯片)提高性能,自适应索引机制优化查询效率。应用领域将拓展至NLP、图像视频分析和推荐系统,为各行业带来更多创新和价值。
|
7天前
|
机器学习/深度学习 存储 人工智能
矢量数据库在机器学习领域的应用与前景
【4月更文挑战第30天】本文探讨了矢量数据库在机器学习领域的应用,包括特征存储、相似性搜索、模型训练与调优及实时分析。随着AI技术发展,矢量数据库将深度融合,提升扩展性和可伸缩性,增强智能化功能,并加强安全性与隐私保护。未来,矢量数据库将在机器学习领域扮演关键角色。
|
7天前
|
存储 数据可视化 关系型数据库
矢量数据库在地理空间数据处理中的应用
【4月更文挑战第30天】矢量数据库在地理空间数据处理中展现优势,高效存储管理高维向量数据,支持快速查询、空间分析与可视化。分布式处理能力适应大数据量需求,提供高效、灵活、可扩展及可视化支持,是处理地理空间数据的理想选择。随着技术进步,其应用将更加广泛。
|
7天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。
|
8天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
8天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
845 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
14天前
|
存储 数据库 云计算
云计算数据库应用
云计算数据库应用
26 0