跳转至

Chapter1 Introduction

Database Systems

  • DBMS: Database Management System
    • 其主要目标是提供一种便捷的数据存储和检索的方式
    • Management包括:定义信息存储结构、提供操作信息的机制(增删查改之类)

Purpose of Database Systems

基于文件系统构建的应用程序会导致:

  1. Data redundancy and inconsistency, eg. 多种文件格式、相同的数据存储在多个不同的文件中
  2. Data isolation, eg. 数据分散在多个文件中
  3. Difficulty in accessing data, eg. 可能需要写一段新代码来访问新的数据
  4. Data integrity, 即数据完整性和一致性的约束条件被隐藏在代码细节中而非显示声明
  5. Atomicity problems, 即无法确保一个事务中的所有操作要么全部成功执行,要么全部不执行。如果事务中的任何一个操作失败,整个事务必须回滚到初始状态,以确保数据的一致性
  6. Concurrent-access anomalies, 并发访问异常
  7. Security problems
ACID Properties
  • 原子性(Atomicity):确保事务中的所有操作要么全部成功执行,要么全部不执行
  • 一致性(Consistency):事务必须使数据库从一个一致性状态转换到另一个一致性状态,即数据满足所有定义的约束、规则和业务逻辑
  • 隔离性(Isolation):并发执行的多个事务之间相互隔离、互不干扰,每个事务都感觉不到其他事务的执行过程
  • 持久性(Durability):一旦事务提交成功,其对数据库所做的修改就会永久保存下来,即使系统出现故障、断电等情况,数据也不会丢失

View of Data

brief explanation
  • view level:由多个视图组成,每个视图是面向不同用户或应用程序的数据呈现方式,只展示用户感兴趣的部分数据,为不同用户提供了个性化的数据视角。view schema定义这一层的结构。
  • logical level:通过view/logical mappin与视图层相连。逻辑层定义了数据库的整体逻辑结构,描述了数据的组织方式以及数据之间的关系,不涉及数据的物理存储细节。logical scheme定义这一层的结构。
  • physical level:通过logical/physical mapping与逻辑层相连。物理层描述了数据在存储设备上的实际存储方式,包括数据的存储位置、存储结构等物理细节。physical schema定义了这一层的结构。

Schema and Instance

二者关系类似于变量的typevalue的关系

  • Schema: 数据库的逻辑结构,定义了数据库中包含哪些实体、实体具有哪些属性以及实体之间存在怎样的关系等信息,不包含具体数据
  • Instance: 数据库中实际存储的数据,即数据库中的具体数据

Data Independence

任一层的修改不会影响其他层

Data Models

  • 数据模型是用于描述数据(Data)、数据联系(Data relationships)、数据语义(Data semantics)和数据约束(Data constraints)的工具集合。

  • 常见数据模型类型:

    • 关系模型(Relational model):以表格形式组织数据,通过行和列存储数据,利用键关联不同表格,是目前应用最广泛的数据模型。 ??? eg
    • 实体 - 联系数据模型(Entity - Relationship data model):用于数据库设计阶段,通过实体、属性和联系描述现实世界的数据结构。
    • 基于对象的数据模型(Object - based data models):包括面向对象数据模型(Object - oriented),将数据和操作封装成对象;对象 - 关系模型(Object - relational),结合了关系模型和面向对象的特点。
    • 半结构化数据模型(Semistructured data model ,XML):数据结构不严格,XML 是典型代表,常用于数据交换和存储。
    • 其他较旧的模型:网状模型(Network model),以图结构表示数据及联系,节点代表记录,边代表联系;层次模型(Hierarchical model),以树状结构组织数据,有唯一根节点,子节点有父节点。

Database Languages

Data Definition Language (DDL)

Data Manipulation Language (DML)

SQL Query Language

Application Programming Interfaces (API)


最后更新: 2025年2月18日 11:31:36
创建日期: 2025年2月18日 00:36:18