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

简介: 第2章 数据库的基础知识 本章将介绍数据库的基础知识,包括基本概念、基本结构、应用平台及特点等。本章内容十分重要,它对全书具有提纲挈领的作用。 2.1数据库中的基本概念 1.数据 (1)数据的概念 数据(data)是现实世界中客体在计算机中的抽象表示。

本节书摘来自华章出版社《数据库技术原理与应用教程第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所示,它为数据库系统的产生与发展奠定了基础。


49173395f53f3bbf941600d6ef3e09f0bc237394

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)是以数据库为核心,以数据处理为内容的应用系统,它利用数据库系统作应用开发,可构成一个数据库应用系统。数据库应用系统是由数据库系统、应用软件及应用界面三部分组成,具体组成包括:

图2.3数据库应用系统层次结构示意图
数据库
数据库管理系统
数据库管理员
硬件平台
软件平台
应用软件
应用界面

其中,应用软件是由数据库接口工具及应用开发工具编写而成,应用界面大都由相关的可视化工具开发而成。
数据库应用系统有八个部分,它们以一定的逻辑层次结构方式组成一个以数据库系统为核心的应用实体,其层次结构如图2-3所示。


37b1e00b995e4775a40c3f707f2b24167edd08c6

数据库应用系统是根据需求开发的,其开发内容有四个部分:
数据库生成
应用程序编写
界面开发
接口组成
目前很多的流行的应用系统都属于此种系统,它们一般也称为信息系统(Information System),例如管理信息系统(MIS)、企业资源规划(ERP)、办公自动化系统(OA)、情报检索系统(IRS)、客户关系管理(CRM)、财务信息系统(FIS)等均为信息系统。
相关文章
|
10天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
14天前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
34 0
|
14天前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
29 0
|
14天前
|
NoSQL 关系型数据库 MySQL
|
14天前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
29 0
|
14天前
|
存储 数据管理 数据库
|
14天前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
25 0
|
14天前
|
SQL 关系型数据库 数据处理
|
14天前
|
存储 SQL NoSQL
探索数据存储的多样性:深入比较Entity Framework Core与NoSQL数据库MongoDB的特性与应用
【8月更文挑战第31天】在现代软件开发中,选择合适的数据存储方案对应用性能至关重要。本文通过对比Entity Framework Core(EF Core)和MongoDB,探讨两者的特点及适用场景。EF Core作为.NET生态中的ORM,简化了SQL数据库的交互;MongoDB则是一种灵活的NoSQL文档数据库,适合处理大量非结构化数据。两者在数据模型、查询方式及性能上各有优势,选择时需根据具体应用需求决定。理解这些差异有助于做出更合理的技术选型。
26 0
|
14天前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
35 0