数据库八股文——数据库概述

数据库概论

数据库的功能

  1. Storage Management: 存储数据
  2. Query: 构建一条高效的查询路径
  3. Execution Component: 根据查询所需的执行计划实际执行
  4. Internal Management and Scheduling: 内部管理和调度
  5. Management Tools Interfaces: 管理工具接口

数据库的基本概念

数据 Data

数据是指可以记录和存储在计算机介质上的关于对象和事件的事实,数据可以保存在文件系统和数据库中。

数据分为结构化数据非结构化数据

数据是指可以记录和存储在计算机介质上的关于对象和事件的事实。而信息是人们按照知识的方式处理后得到的数据。数据本身没有任何意义,只有通过某些操作将数据转化为信息才能被人们理解和利用。

元数据 Metadata

元数据是“数据的数据”,用于描述数据的特征或性质以及该数据的内容。例如数据的名称、长度、可能的取值;数据的来源、存储位置、使用方式。

元数据本身与数据独立,只用于描述数据的性质。

文件系统存储数据的缺陷

Data Issues in Database Systems
  • Data redundancy and inconsistency: Multiple file formats, duplication of information in different files.
  • Difficulty in accessing data: Need to write a new program to carry out each new task.
  • Data isolation — multiple files and formats.
  • Integrity problems: Integrity constraints (e.g., account balance > 0) become “buried” in program code rather than being stated explicitly and hard to add new constraints or change existing ones.
  • Atomicity of updates: Failures may leave database in an inconsistent state with partial updates carried out. Example: Transfer of funds from one account to another should either complete or not happen at all.
  • Concurrent access by multiple users: Concurrent access needed for performance. Uncontrolled concurrent accesses can lead to inconsistencies. Example: Two people reading a balance (say 100) and updating it by withdrawing money (say 50 each) at the same time.
  • Security problems: Hard to provide user access to some, but not all, data.
数据库系统中的数据问题
  • 数据冗余和不一致:多种文件格式,信息在不同文件中重复。
  • 数据访问困难:需要为每个新任务编写新的程序。
  • 数据隔离 — 多种文件和格式。
  • 完整性问题:完整性约束(例如,账户余额 > 0)被“埋”在程序代码中,而不是明确陈述,且很难添加新的约束或更改现有约束。
  • 更新的原子性:故障可能会导致数据库处于不一致状态,并且部分更新已执行。例如:从一个账户转账到另一个账户应该要么完成,要么完全不发生。
  • 多个用户并发访问:性能需要并发访问,未经控制的并发访问可能导致不一致。例如:两个人同时读取余额(例如100)并分别通过取款(例如每人50)来更新余额。
  • 安全问题:很难为用户提供部分数据的访问权限,而不是全部数据。

数据库 DataBase

数据库是长期存储在计算机内的、有组织的、可共享的大量数据集合。

数据库系统 DBS

The Functions of a DBS
  • Schema definition.
  • Storage structure and access-method definition.
  • Schema and physical-organization modification.
  • Granting of authorization for data access.
  • Routine maintenance.
数据库系统的功能
  • 模式定义。
  • 存储结构和访问方法定义。
  • 模式和物理组织的修改。
  • 授予数据访问权限。
  • 常规维护。

数据库管理员 DBA

The Functions of a DBA (数据库管理员的职能)
  • Schema definition. The DBA creates the original database schema by executing a set of data definition statements in the DDL.
    模式定义。数据库管理员通过执行一组数据定义语句(DDL)来创建原始的数据库模式。
  • Storage structure and access-method definition.
    存储结构和访问方法定义。
  • Schema and physical-organization modification. The DBA carries out changes to the schema and physical organization to reflect the changing needs of the organization, or to alter the physical organization to improve performance.
    模式和物理组织的修改。数据库管理员根据组织需求的变化,或通过更改物理组织来提高性能,进行模式和物理组织的修改。
  • Granting of authorization for data access. By granting different types of authorization, the database administrator can regulate which parts of the database various users can access. The authorization information is kept in a special system structure that the database system consults whenever someone attempts to access the data in the system.
    授予数据访问权限。通过授予不同类型的权限,数据库管理员可以控制不同用户访问数据库的不同部分。授权信息存储在一个特殊的系统结构中,每当有人尝试访问系统中的数据时,数据库系统会查阅此信息。
  • Routine maintenance.
    常规维护。
    • Periodically backing up the database, either onto tapes or onto remote servers, to prevent loss of data in case of disasters such as flooding.
      定期备份数据库,可以备份到磁带或远程服务器,以防止灾难(如洪水)导致数据丢失。
    • Ensuring that enough free disk space is available for normal operations, and upgrading disk space as required.
      确保有足够的空闲磁盘空间进行正常操作,并根据需要升级磁盘空间。
    • Monitoring jobs running on the database and ensuring that performance is not degraded by very expensive tasks submitted by some users.
      监控数据库中运行的作业,确保性能不会因某些用户提交的高消耗任务而受到影响。

数据模型 DataModel

数据模型的发展历程

  1. 层次模型
  2. 网状模型
  3. 关系模型

数据处理的三个世界

  1. 现实世界:是对客观存在的世界中的事物及其联系
  2. 信息世界:是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述
  3. 计算机世界:是在信息世界基础上的进一步抽象

数据模型应满足以下三个要求:

  1. 比较真实地模拟现实世界(现实世界)
  2. 容易为人所理解(概念世界)
  3. 便于在计算机上实现(机器世界)

数据模型的分类

  1. 概念数据模型:高层模型
  2. 表示型/实现型模型:中间层模型
  3. 物理数据模型:低层模型

概念数据模型——高层模型

实体联系模型对象数据模型

实体-联系模型 entity-relation model

实体是一个集合名词,表示真是世界中的对象集合或概念。
属性表示进一步描述实体的某个感兴趣的特性。
联系表示在两个或多个实体间的关联。

对象-数据模型 object-data model

类间的关系:

  1. 泛化 (is-a)
    1. 继承
  2. 关联 (has-a)
    1. 关联 assiaciation
    2. 聚合 aggregation
    3. 组合 composition
  3. 依赖 (use-a)
    1. 在方法接口中使用 use-in-interface
    2. 在实现中使用 use-in-implementation
  4. 实现 (implement)
    1. 实现一个接口

表示型/实现型模型——中间层模型

表示型数据模型使用记录结构来表示数据,因此也称为基于记录的数据模型。目前主要的数据库模型是关系数据模型。

物理数据模型——低层模型

提供的概念只对计算机专家有意义,而不是最终用户。描述了数据如何在计算机存储介质(硬盘)上存储的细节。

数据库规范化 Normalization Theory

数据库规范化是将数据库组织成符合一定规则和标准的过程。其核心目标是消除数据冗余、增强数据一致性、提高查询性能。规范化通常分为几个阶段或“范式”,每个范式都有特定的规则和标准。

1.第一范式(1NF)要求消除重复的列,从而确保每个列都包含原子值。
2.第二范式(2NF)在第一范式的基础上,消除非主属性对部分关键字的依赖。
3.第三范式(3NF)要求消除非主属性对主关键字的传递依赖。进一步的规范化阶段如BCNF(Boyce Codd范式)。
4.第四范式(4NF),则解决了更复杂的依赖和多值依赖问题。

数据库三层模式体系结构 Three-Schema

内模式 internal schema

内层对应内模式,用于描述数据库的物理存储结构。内模式使用物理数据模型,描述数据库的从存取路径和数据存储的全部细节。

概念模式 conceptual schema

简称模式,中间层为概念层,对应概念模式。
用于为所有用户描述整个数据库的结构,注重描述实体、数据类型、联系、用户操作和约束,并隐藏了物理存储结构的细节。

使用表示型数据模型 E-R 模型来描述概念模式。
使用实现型数据模型 OO 模型来进行概念模式设计。

外模式 external schema

外层或者视图层,对应若干位模式或用户视图。

每个外模式描述了特定用户组感兴趣的一部分数据库,并且对该组用户隐藏数据库的其他部分。

例子:把数据库看作仓库,数据看作货物。内模式描述货物的摆放规则;概念模式描述仓库中货物的分类等信息;外模式实际服务仓库的相关人员。

需要注意的是,三层模式仅仅是对数据的描述,数据实际上仅存储在物理层

  1. 每个用户组只需关注自己的外模式
  2. DBMS 必须将在外模式中指定的请求转化为针对概念模式的请求,并进而转化为对内模式的请求以实现对存储的数据库进行处理。
  3. 如果是一个数据库检索请求,那么从存储在数据库中提取出的数据必须经过格式转化,来匹配用户外部视图所要求的格式。
  4. 在各层之间完成请求和结果转换的处理过程被称为映射。

数据独立性

较低层的修改不会对较高层产生影响

  1. 逻辑数据独立性: 外模式不会受概念模式变化的影响
  2. 物理数据独立性: 概念模式不会受内模式变化的影响

DBMS 体系结构

  1. Centralized
  2. Client-server
  3. Parallel computer architectures.
  4. Distributed databases

数据库是一整套数据管理体系,包括数据存储的模型、数据组织的架构、数据分析的算法、数据管理的工具以及数据访问的接口等等。

ppt 中有大量的概念,这里直接附上英文原文和翻译,虽然完全记不住:

Storage Manager
Storage manager is a program module that provides the interface between the low-level data stored in the database and the application programs and queries submitted to the system.
The storage manager is responsible for the following tasks:
  • Interaction with the file manager
  • Efficient storing, retrieving and updating of data
Issues:
  • Storage access
  • File organization
  • Indexing and hashing
存储管理器是一个程序模块,它提供了数据库中存储的低级数据与提交给系统的应用程序和查询之间的接口。
存储管理器负责以下任务:
  • 与文件管理器的交互
  • 数据的高效存储、检索和更新
问题:
  • 存储访问
  • 文件组织
  • 索引和哈希
Query Processor
  • DDL interpreter
  • DML Compiler
  • Query Evaluation Engine
Alternative ways of evaluating a given query
  • Equivalent expressions
  • Different algorithms for each operation
Cost difference between a good and a bad way of evaluating a query can be enormous
Need to estimate the cost of operations
  • Depends critically on statistical information about relations which the database must maintain
  • Need to estimate statistics for intermediate results to compute cost of complex expressions
查询处理器
  • DDL 解释器
  • DML 编译器
  • 查询评估引擎
评估给定查询的替代方法:
  • 等效表达式
  • 每个操作的不同算法
评估查询的好方式和坏方式之间的成本差异可能是巨大的,需要估算操作的成本:
  • 成本估算严重依赖于数据库必须维护的关系的统计信息。
  • 为了计算复杂表达式的成本,还需要估算中间结果的统计信息。
Possible Issues in Databases
  • What if the system fails?
  • What if more than one user is concurrently updating the same data?
  • A transaction is a collection of operations that performs a single logical function in a database application.
  • Transaction-management component ensures that the database remains in a consistent (correct) state despite system failures (e.g., power failures and operating system crashes) and transaction failures.
  • Concurrency-control manager controls the interaction among the concurrent transactions, to ensure the consistency of the database.
  • 如果多个用户同时更新相同的数据怎么办?
  • 事务是一个操作集合,在数据库应用程序中执行一个单一的逻辑功能。
  • 事务管理组件确保数据库在系统故障(例如电力故障和操作系统崩溃)和事务失败的情况下仍保持一致(正确)状态。
  • 并发控制管理器控制并发事务之间的交互,确保数据库的一致性。
ACID of A Transaction - Atomicity
  • Often, several operations on the database form a single logical unit of work (Transaction).
  • An example is a funds transfer.
  • One department account (say A) is debited.
  • Another department account (say B) is credited.
Clearly, it is essential that either both the credit and debit occur, or that neither occur. That is, the funds transfer must happen in its entirety or not at all.
This all-or-none requirement is called Atomicity.
事务的ACID——原子性 (Atomicity)
  • 通常,多个操作在数据库上形成一个单一的逻辑工作单元(事务)。
  • 例如,一个资金转账操作。
  • 一个部门账户(如A)被扣款。
  • 另一个部门账户(如B)被存款。
显然,至关重要的是,扣款和存款要么都发生,要么都不发生。也就是说,资金转账要么完全发生,要么完全不发生。
这种“全有或全无”的要求被称为原子性。
ACID of A Transaction - Consistency
  • It is essential that the execution of the funds transfer preserve the consistency of the database.
  • That is, the value of the sum of the balances of A and B must be preserved.
  • This correctness requirement is called consistency.
事务的ACID —— 一致性 (Consistency)
  • 确保资金转账的执行保持数据库的一致性是至关重要的。
  • 也就是说,A和B账户余额的总和必须保持不变。
  • 这种正确性要求被称为一致性。
ACID of A Transaction - Durability
  • Finally, after the successful execution of a funds transfer, the new values of the balances of accounts A and B must persist, despite the possibility of system failure.
  • This persistence requirement is called durability.
事务的ACID —— 持久性 (Durability)
  • 最后,在资金转账成功执行后,账户A和B的新余额值必须持久存在,即使系统发生故障也不受影响。
  • 这种持久性要求被称为持久性。
ACID of A Transaction - Isolation
  • Even if the consistency and atomicity properties are ensured for each transaction, if several transactions are executed concurrently, their operations may interleave in some undesirable way, resulting in an inconsistent state.
  • For example, as we saw earlier, the database is temporarily inconsistent while the transaction to transfer funds from A to B is executing, with the deducted total written to A and the increased total yet to be written to B.
  • If a second concurrently running transaction reads A and B at this intermediate point and computes A+B, it will observe an inconsistent value.
  • Furthermore, if this second transaction then performs updates on A and B based on the inconsistent values that it read, the database may be left in an inconsistent state even after both transactions have completed.
事务的ACID —— 隔离性 (Isolation)
  • 即使每个事务都确保了一致性和原子性属性,如果多个事务并发执行,它们的操作可能会以某种不期望的方式交错,导致数据库处于不一致状态。
  • 例如,如前所述,在从A账户转账到B账户的事务执行期间,数据库是暂时不一致的,因为A账户的扣款已写入,而B账户的增加金额尚未写入。
  • 如果第二个并发运行的事务在这个中间状态下读取A和B,并计算A+B,它将观察到一个不一致的值。
  • 此外,如果这个第二个事务基于读取到的不一致值对A和B进行更新,即使两个事务都已完成,数据库仍可能处于不一致的状态。
ACID of A Transaction - Isolation
  • A way to avoid the problem of concurrently executing transactions is to execute transactions serially—that is, one after the other. However, concurrent execution of transactions provides significant performance benefits.
  • Other solutions have therefore been developed; they allow multiple transactions to execute concurrently. We discuss the problems caused by concurrently executing transactions in Section 14.5.
  • The isolation property of a transaction ensures that the concurrent execution of transactions results in a system state that is equivalent to a state that could have been obtained had these transactions executed one at a time in some order.
  • Ensuring the isolation property is the responsibility of a component of the database system called the concurrency-control system.
事务的ACID —— 隔离性 (Isolation)
  • 避免并发执行事务问题的一种方法是串行执行事务——即一个接一个地执行。然而,并发执行事务能够提供显著的性能提升。
  • 因此,已经开发出其他解决方案,它们允许多个事务并发执行。我们将在第14.5节讨论并发执行事务引发的问题。
  • 事务的隔离性属性确保并发执行的事务结果等同于按某种顺序逐个执行这些事务时所得到的系统状态。
  • 确保隔离性属性是数据库系统中的一个组件——并发控制系统——的责任。

数据库八股文——数据库概述
https://dmx20070206.github.io/2024/12/14/DataBase0/
Author
DM-X~X~X
Posted on
December 14, 2024
Licensed under