数据库原理及应用数据库系统的基本原理
【数据库原理及应用】数据库系统的基本原理
1. 数据库系统概述
1.1. 数据库系统的应用
电信业、银行业、金融业、销售业、联机的零售商、大学、航空业、人力资源、制造业等等。
1.2 数据库系统的概念
(1) 数据(Data)
数据是数据库存储的基本对象。是描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的符号记录。
(2) 数据库(DataBase,DB)
简单的说,数据库就是相互关联的数据集合;
严格的说,数据库是长期存储在计算机内、有组织的可共享的大量数据的集合。
(3) 数据库管理系统(DataBase Management System,DBMS)
- 有效的组织和存储数据、高效地获取和维护数据。
DBMS是数据库系统的核心部分,常用的DBMS有Oracle、MySQL、SQLServer等。
DBMS的主要功能:
数据定义功能;
DBMS提供数据定义语言(Data Definition Language,DDL)。
数据操纵功能;
DBMS提供数据操纵语言(Data Manipulation Language,DML)。
数据控制功能;
DBMS提供数据控制语言(Data Control Language,DCL)。
数据组织、存储和管理。
在数据库设计时,这些都由具体的DBMS自动实现,使用者一般不用进行设置。
(4) 数据库系统(DataBase System,DBS)
DBS = DB + DBMS + DBA + 应用系统
(5) 数据库应用系统(DataBase Application System,DBAS)
图书管理应用系统、铁路订票应用系统、证券交易应用系统等。
1.3 数据管理技术的发展阶段
(1) 人工管理阶段
- 特点:数据不保存、数据不具有独立性、数据不共享、只有程序的概念没有文件的概念。
(2) 文件管理系统阶段
- 特点:数据的冗余和不一致、数据独立性差、数据孤立。
(3) 数据库系统阶段
通过数据库管理系统,操纵数据库中的数据,对数据库进行统一控制。
数据库系统的特点:
数据结构化。
数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。
数据的共享性高、冗余度低且易扩充。
数据共享可以大大减少数据冗余,节约存储空间。数据共享能够避免数据之间的不相容性与不一致性。
系统在使用过程中,需要增加新的应用,这就使得数据库系统弹性大,易于扩充。
数据独立性高。
数据独立性是指数据与程序的独立。包括逻辑独立性和物理独立性。
数据由DBMS统一管理和控制。
- 数据的完整性检查。
数据的完整性指数据的正确性、有效性和相容性。
- 并发控制。
多个用户并发存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏。
- 数据的安全性保护。
数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。
- 数据库的恢复。
DBMS提供了数据的备份与恢复功能,可将数据库从错误状态恢复到某一已知的正确状态。
1.4 数据库系统的用户
(1) 数据库管理员(DataBase Administrator,DBA)
参与数据库的设计;
定义数据的安全性要求和完整性约束条件;
日常维护,备份数据库和确保系统正常运行;
数据库的改进和重组、重构。
(2) 数据库用户
最终用户 。现实系统中的业务人员,是数据库系统的主要用户。
专业用户 。如工程师、科学家、经济学家等。
系统分析员 和 数据库设计人员 。
应用程序员。
2. 数据模型
2.1 数据抽象的过程
信息 → 数据。
(1) 概念模型
概念模型的特点:
- 概念模型表达了数据库的整体逻辑结构,它是企业管理人员对整个企业组织的全面概述。
- 概念模型是从用户需求的观点出发,对数据建模。
- 概念模型独立于硬件和软件。
- 概念模型是数据库设计人员与用户之间进行交流的工具。
概念模型的基本概念:
实体(Entity): 客观存在并可相互区别的事物称为实体。
属性(Atrribute): 实体所具有的某一特性称为属性。
码(Key): 能唯一标识实体的最小属性集,又称为键或关键字
联系(Relation): 两个或多个实体间的关联。
联系类型:
一对一(1 : 1,如学校和校长) 一对多(1 : n,如学校和学生) 多对多(m : n,如学生和课程)
(2) 逻辑模型
- 逻辑模型是设计人员对整个企业组织数据库的全面概述。
- 逻辑模型是从数据库实现的观点出发,对数据建模。
- 逻辑模型硬件独立,但软件依赖。
- 逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。
(3) 外部模型
外部模型特点:
- 外部模型是逻辑模型的一个逻辑子集。
- 硬件独立,软件依赖。
- 外部模型反映了用户使用数据库的观点。
从整个系统考察,外部模型最主要的特点:
- 简化了用户的观点。
- 有助于数据库的安全性保护。
- 外部模型是对概念模型的支持。
(4) 内部模型
内部模型又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘上存储方式、存取设备和存取方法。 由系统自动实现。
2.2 关系模型
(1) 数据模型的要素
数据结构
常见的数据模型有层次模型、网状模型和关系模型。
数据结构是所描述的对象类型的集合,是对系统静态特性的描述。
数据操作
数据库主要有查询和更新(插入、删除、修改)两大类操作。
数据操作是对系统动态特性的描述。
数据的完整性约束
数据的完整性约束条件是一组完整性规则。
保证数据库中数据的正确、有效、相容。
(2) 关系数据模型的数据结构
- 关系(Relation)。 一个关系就是一张规范的二维表。
- 元组(Tuple)。 表中的一行即为一个元组。
- 属性(Attribute)。 表中的一列即为一个属性,每个属性都有属性名
- 码(key)。 也称为关键码或关键字。表中的某一属性或属性组能唯一的确定一个元组,则称该属性或者属性组为码。
- 关系模式。
一般表示为
关系名(属性1,属性2,属性3,…,属性n)
。
关系操作:
- 关系模型的操作主要包括查询、插入、删除和更新数据。
关系的完整性:
关系的完整性约束条件包括三大类: 实体完整性、参照完整性和用户定义完整性。
3. 数据库体系结构
3.1 数据库系统的三级结构
数据库系统是由 外模式、模式和内模式三级构成。
- 用户级对应于外模式,是最接近用户的一级,是用户看到和使用的数据库,又称为用户视图。
- 概念级数据库对应于概念模式,介于用户级和物理级之间,是数据库管理员看到和使用的数据库,又称DBA视图。
- 物理级数据库对应于内模式,是数据库的底层表示,它描述数据的实际存储组织,是最接近于物理存储的级,又称内部视图。
3.2 数据库系统的三级模式
- 外模式又称为子模式或用户模式,是数据库用户的数据视图。 一个数据库可以有多个外模式。
- 模式也称为概念模式或逻辑模式,是对数据库中所有数据的逻辑结构描述。 一个数据库只有一个模式。
- 内模式又称为存储模式或物理模式,是数据在数据库内部的表示方式。 一个数据库只有一个内模式。
3.3 数据库系统的二级映射与数据独立性
数据库系统三级模式间通过两级映射进行相互转换,形成一个统一的整体。
- 外模式/模式映射:实现逻辑独立性。 逻辑独立性是指用户的应用程序与逻辑结构是相互独立的。
- 模式/内模式映射:实现物理独立性。 物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是独立的。
3.4 数据库应用系统开发架构
(1) C/S模式
客户/服务器(Client/Server,C/S)模式是一种流行的解决分布式问题的架构模式。C/S模式通过网络环境,将应用划分为前台和后台两个部分。即
两层C/S模式
三层C/S模式
(2) B/S模式(浏览器/服务器模式)
4. 高级数据库系统
- 分布式数据库系统;
- 面向对象数据库系统;
- 并行数据库系统;
- 多媒体数据库系统。
5. 数据仓库技术与数据挖掘技术
5.1 数据仓库
- 数据仓库(Data Warehouse,DW)是一个面向主题的、集成的、稳定的、随时间不断变化的数据集合,它用于支持经营管理中的决策制定过程。
5.2 联机分析处理
OLAP可以对大量的多给数据进行动态合并和分析,是决策支持领域的一部分。
5.3 数据挖掘
数据挖掘(Date Mining)是从大量数据中提取隐含在其中的、人们事先不知道的但又可能有用的信息和知识的过程。
6. 非关系型数据库NoSQL
6.1 NoSQL概述
NoSQL是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与事务ACID理论大一统的局面。 NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。 在大数据存取上具备关系型数据库无法比拟的性能优势。
6.2 NoSQL相关理论
CAP理论是NoSQL数据库的基石。CAP理论指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容忍性),三者不可兼得。
一个分布式系统无法同时满足一致性、可用性、分区容忍性三个特点,最多只能实现其中两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡, 没有NoSQL系统能同时保证这三点。
BASE是 Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性) 三个短语的简写,BASE是对CAP中一致性和可用性权衡的结果,其核心思想是 即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式使系统达到最终一致性。
6.3 NoSQL数据库模型
- Key-Value存储模型
- 文档存储模型
- 图存储模型
- BigTable存储模型
7. 补充
概念模型、逻辑模型、外部模型和内部模型各具有哪些特点?
概念模型:
- 真实性 :能真实、充分地反映现实世界中的实体、属性及实体间的关系。
- 易理解性 :模型结构清晰,易于被用户和业务人员理解。
- 灵活性 :易于更改,以适应业务需求的变化。
- 转换性 :易于向关系、网状、层次等各种数据模型转换,为后续的数据库设计提供基础。
逻辑模型:
- 整体性 :逻辑模型表达的是数据库的整体逻辑结构,包括实体、属性、关系以及数据的完整性、安全性等要求。
- 实现性 :从数据库实现的观点出发建模,关注数据在数据库中的组织方式和存储结构。
- 独立性 :独立于硬件,但依赖于特定的软件,尤其是数据库管理系统(DBMS)。
- 交流性 :是数据库设计人员与应用程序员之间进行交流的工具,有助于确保数据库设计与业务需求的一致性。
外部模型:
- 子集性 :逻辑模型的一个逻辑子集,反映了用户使用数据库的观点和需求。
- 独立性 :独立于硬件,但依赖于特定的软件,确保用户在不同硬件平台上都能以相同的方式访问数据库。
- 用户友好性 :外部模型的设计考虑了用户的操作习惯和需求,使得用户能够方便地访问和操作数据库中的数据。
内部模型:
- 底层抽象 :数据库最底层的抽象,描述了数据在物理存储设备(如磁盘或磁带)上的存储方式、存储设备和存储方法。
- 紧密性 :与硬件和软件关系密切,直接反映了数据库的底层实现细节。
- 效率性 :内部模型的设计考虑了存储效率和访问速度,以确保数据库的高效运行。
试叙述DB的三级模式结构中每一概念的要点,并指出其联系。
数据库(DB)的三级模式结构是数据库管理的重要组成部分,它描述了数据库的数据结构,并将数据的物理结构、逻辑结构和用户视图分离开来。
概念模式(模式):
要点 :
- 概念模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。
- 它定义了数据库中的数据模型、数据关系、数据约束等。
- 概念模式是数据库管理员和用户之间的接口,数据库管理员可以通过概念模式来管理和维护数据,用户可以通过概念模式来理解和访问数据。
联系 :
- 概念模式位于三级结构的中间层,是外模式和内模式的基础。
- 通过外模式/模式映像,概念模式可以与外模式建立联系,确保用户视图与数据库整体逻辑结构的一致性。
- 通过模式/内模式映像,概念模式可以与内模式建立联系,确保数据库逻辑结构与物理结构之间的对应性。
外模式:
要点 :
- 外模式也称为用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。
- 它定义了用户对数据的视图,包括数据的查询、插入、更新和删除等操作。
- 外模式是模式的子集,一个数据库可以有多个外模式,以满足不同用户的需求。
联系 :
- 外模式位于三级结构的最顶层,是用户与数据库之间的接口。
- 外模式通过外模式/模式映像与概念模式建立联系,确保用户视图与数据库整体逻辑结构之间的数据一致性。
内模式:
要点 :
- 内模式也称为存储模式,是数据库管理系统的最底层。
- 它定义了数据库中的数据类型、数据组织形式、数据存储方式以及数据访问方式等。
- 内模式是数据库管理系统与用户之间的接口,用户可以通过内模式来定义和操作数据。
联系 :
- 内模式位于三级结构的最底层,与物理存储设备直接相关。
- 内模式通过模式/内模式映像与概念模式建立联系,确保数据库逻辑结构与物理结构之间的对应性。
两级映像:
外模式/模式映像 :
- 描述外模式和概念模式之间数据结构的对应性。
- 当概念模式发生变化时,可以通过修改外模式/模式映像来保持外模式的不变性,从而确保用户视图的一致性。
模式/内模式映像 :
- 描述概念模式和内模式之间数据结构的对应性。
- 当数据库的存储结构发生变化时,可以通过修改模式/内模式映像来保持概念模式的不变性,从而确保应用程序的稳定性。
在用户访问数据库数据的过程中,DBMS起什么作用?
在用户访问数据库数据的过程中,数据库管理系统(DBMS)起着至关重要的作用。以下是DBMS在用户访问数据库时的主要功能:
- 数据安全性管理 : DBMS确保只有经过授权的用户才能访问数据库中的数据。它实施安全策略,如用户身份验证、权限控制、数据加密等,以保护数据的机密性、完整性和可用性。
- 数据完整性管理 : DBMS通过定义和执行数据完整性约束(如主键、外键、唯一性约束、检查约束等)来确保数据的准确性和一致性。这些约束有助于防止数据错误和不一致性。
- 数据并发控制 : 当多个用户同时访问和修改数据库中的数据时,DBMS负责协调这些操作,以防止数据冲突和确保数据的一致性。它使用锁机制、时间戳、版本号等技术来实现并发控制。
- 数据恢复和备份 : DBMS提供数据备份和恢复功能,以防止数据丢失和损坏。它定期备份数据库,并在发生故障时提供恢复机制,以确保数据的可靠性和可用性。
- 数据访问优化 : DBMS通过索引、查询优化等技术来提高数据访问的效率。它分析用户的查询请求,并选择最优的执行计划来快速返回结果。
- 数据定义和描述 : DBMS提供数据定义语言(DDL)来定义数据库的结构,包括表、视图、索引等。它还使用数据描述语言(DDL)来描述数据的属性和关系。
- 数据操作和管理 : DBMS提供数据操作语言(DML)来允许用户插入、更新、删除和查询数据库中的数据。它还管理数据库的事务处理,确保事务的原子性、一致性、隔离性和持久性(ACID属性)。
- 数据抽象和视图管理 : DBMS通过提供外模式来允许用户定义自己的数据视图,这些视图是数据库逻辑结构的一部分,但可能只包含用户感兴趣的数据。这有助于简化用户的数据访问和提高数据的安全性。
- 存储和检索管理 : DBMS负责数据的物理存储和检索。它选择适当的存储结构和索引策略来优化数据的存储和访问性能。
- 数据库管理和维护 : DBMS提供数据库管理工具,如数据库监视、性能调优、日志管理等,以帮助数据库管理员管理和维护数据库。
总之,DBMS在用户访问数据库数据的过程中起着核心作用,它确保数据的安全性、完整性、一致性和可用性,并提供高效的数据访问和管理功能。
试叙述概念模式在数据库结构中的重要地位。
概念模式在数据库结构中占据着举足轻重的地位,它是数据库设计的核心组成部分,对数据库的构建、使用和维护都起着至关重要的作用。以下是对概念模式在数据库结构中重要地位的详细叙述:
数据模型的定义与表达:
- 概念模式定义了数据库中数据的逻辑结构和关系,包括数据的类型、属性、实体以及实体之间的关系。它是数据库设计者对现实世界业务逻辑和数据需求的抽象表达,为数据库提供了一个清晰、一致的数据模型。
数据独立性的保障:
- 概念模式作为数据库三级模式结构中的中间层,起到了承上启下的作用。通过定义概念模式,可以实现数据逻辑结构与物理存储结构的分离,以及数据逻辑结构与用户视图的分离。这种分离保证了数据的逻辑独立性,使得数据库的存储结构和访问方式发生变化时,不会对应用程序和用户视图产生影响。
数据一致性和完整性的维护:
- 概念模式定义了数据的完整性和约束条件,如主键、外键、唯一性约束等。这些约束条件确保了数据库中的数据在逻辑上是一致的,并且符合业务规则。当数据被插入、更新或删除时,DBMS会根据概念模式中的约束条件进行验证,以确保数据的完整性和一致性。
数据库设计的标准化:
- 概念模式为数据库设计提供了一个标准化的框架,使得数据库设计者可以按照统一的标准和方法进行数据库设计。这有助于确保数据库的结构清晰、易于理解和维护,并且能够提高数据库的可扩展性和可重用性。
用户访问的便利:
- 概念模式为数据库用户提供了一个统一的视图,使得用户能够以一致的方式访问和操作数据库中的数据。同时,概念模式还可以根据用户的实际需求进行裁剪和定制,以满足不同用户的个性化需求。
数据库系统的优化:
- 概念模式为数据库系统的优化提供了基础。通过对概念模式进行分析和优化,可以提高数据库的查询效率、降低数据库的存储成本,并且能够提高数据库系统的可靠性和可用性。
综上所述,概念模式在数据库结构中具有极其重要的地位。它是数据库设计的核心,为数据库提供了一个清晰、一致的数据模型,并且保证了数据的独立性、一致性、完整性和可访问性。同时,概念模式还为数据库系统的优化和扩展提供了基础。因此,在数据库设计和维护过程中,必须高度重视概念模式的设计和实现。
试叙述什么是数据的逻辑独立性和物理独立性。
数据的逻辑独立性和物理独立性是数据库系统中的两个重要概念,它们分别描述了数据库的逻辑结构和物理存储结构发生变化时,对应用程序的影响程度。以下是关于这两个概念的详细叙述:
数据的逻辑独立性:
- 数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据库的逻辑结构(如数据表、字段、关系等)发生改变时,用户的应用程序不需要进行修改。逻辑独立性允许数据库设计者在不改变用户视图和应用程序的前提下,对数据库的逻辑结构进行优化和调整。
- 具体来说,逻辑独立性是通过在数据库系统的外模式与模式之间建立映像来实现的。外模式是用户视图,它描述了用户能够看到和操作的数据结构;模式是数据库的逻辑结构,它描述了数据库的整体数据模型。当数据库的逻辑结构发生变化时,只要修改外模式与模式之间的映像,保持外模式不变,那么以外模式为依据编写的应用程序就不会受到影响,从而实现了数据的逻辑独立性。
数据的物理独立性:
- 数据的物理独立性是指用户的应用程序与数据库的物理存储结构是相互独立的,即当数据库的物理存储结构(如存储设备、存储格式、索引等)发生改变时,用户的应用程序同样不需要进行修改。物理独立性使得数据库管理员能够在不影响用户应用程序的前提下,对数据库的物理存储结构进行优化和调整。
- 物理独立性是通过在数据库系统的模式与内模式之间建立映像来实现的。模式是数据库的逻辑结构,而内模式是数据库的物理存储结构。当数据库的物理存储结构发生变化时,只要修改模式与内模式之间的映像,保持模式不变,那么以模式为依据编写的应用程序就不会受到影响,从而实现了数据的物理独立性。
总结:
- 数据的逻辑独立性和物理独立性是数据库系统中的重要特性,它们确保了数据库的结构变化不会对用户应用程序产生直接影响,从而提高了数据库的灵活性和可维护性。通过这两个特性,数据库设计者可以在不改变用户视图和应用程序的前提下,对数据库的逻辑结构和物理存储结构进行优化和调整,以满足不断变化的业务需求和技术发展。