数据库原理与应用_基本概念

数据库原理与应用_基本概念

数据库系统

一些概念

数据:描述事物的符号记录。

数据库:低冗余度(redundancy)、高数据独立性(data independency)、高可扩展性(scalability)。

数据库管理系统:DBMS

数据定义语言:DDL

数据操纵语言:DML

数据库系统:DBS

数据库管理员:DBA

系统分析员:SA

应用程序员:Programmer & Programmer leader

graph TD subgraph 数据库系统 A[硬件] B[OS] C[DBMS] D[开发工具] E[数据库应用系统] end

对数据的需求

  1. 数据结构化,方便储存、管理和共享。

  2. 低冗余,易扩充

  3. 数据逻辑结构与程序之间相互独立,具有逻辑独立性

  4. 数据储存方式与程序之间相互独立,具有物理独立性

  5. 存取粒度小。

  6. 安全、完整、支持并发、可以恢复

  7. ……

数据模型

概念模型 + 逻辑模型和物理模型

graph LR subgraph 三级模型 D((概念模型)) --> E((逻辑模型)) --> F((物理模型)) end subgraph 数据建模 A[现实世界] -->|提取特征| B[信息世界] -->|数据建模| C[机器世界] end B --> D C --> E C --> F

概念模型

E-R图

表现实体与关系的图

ER Graph

概念

graph LR subgraph "实体集(同类实体)" A[实体 1] B[实体 2] C["……"] end subgraph 实体型 G["实体型(共同特征)"] --> D[[属性 1]] G --> E[[属性 2]] G --> F["……"] end A --> G B --> G C --> G subgraph 主码 I["主码(Primary Key)"] end D --> H[\能够唯一标识实体\] --> I E --> H subgraph 域 K[域] end D --> J[\取值范围\] --> K E --> J
graph LR subgraph 联系 L[实体] -->|"一对一、一对多、多对多"| L M[属性] -->|"一对一、一对多、多对多"| M end

逻辑模型

组成要素:数据结构、数据操作、完整性约束

分类:

  • 层次模型
    • 结构清晰、查询效率高、完整性约束好
    • 只能处理一对多的联系,或者引入冗余;结构过于严密,层次命令趋于程序化。
  • 网状模型
    • 更容易描述现实世界、存取效率高、性能好、具有一定的完整性约束
    • 结构复杂、其DDL和DML复杂、存取路径复杂。
  • 关系模型
    • 关系 \(\to\) 元组 \(\to\) 属性 \(\to\) 域(属性值的范围) \(\to\) 码(主键) \(\to\) 分量(记录中的一个属性值)
    • e.g. 学生(学号, 姓名, 年龄, 专业)
    • 数据操作是集合操作、非过程化(操作对象和操作结果都是关系
    • 数学基础严密、存取路径透明。但是需要内部优化模块。
  • 面向对象模型
  • NoSQL模型

DBS结构

一些概念

graph TD subgraph Instance Value_1k Value_2k Value_nk end subgraph Schema Type_1 Type_2 Type_n end
  • 型(Type):某一类数据的结构和属性的说明。e.g. (学号, 姓名, 年龄, 专业)
    • 实体型(entity type):实体名 + 属性名集合。e.g. 学生(学号, 姓名, 年龄, 专业)
  • 值(Value):Type 的一个具体值。
    • e.g. (12302, 张三, 23, 计算机)
  • 模式(Schema):数据库中全体数据逻辑结构和特征的描述,仅涉及型,不涉及值。
  • 实例(Instance):Schema 的一个具体值

三级模式结构

graph LR A["逻辑模式(模式)"] -->|外模式/模式映像| C["外模式(用户模式)"] --> D[应用] A -->|内模式/模式映像| B["内模式(物理模式)"] A --> D

逻辑模式:唯一。描述数据库中所有数据的逻辑结构和特征,是用户公共数据视图。例如,数据项、取值范围、安全性和完整性要求。

内模式:唯一。描述数据的物理储存方式和结构。例如,是否压缩加密、是否升序。

外模式:不唯一,取决于应用。是用户能够看见和使用的 Schema 的子集。

graph BT A[[数据库]] --> B[内模式] B -->|内模式/模式映像| C[模式] C --> D[外模式1] C -->|外模式/模式映像| E[外模式2] C --> F[外模式3] D --> G[应用A] D --> H[应用B] E --> I[应用C] F --> J[应用D] F --> K[应用E]

二级映像

如果 Schema 改变,通过修改 外模式/模式映像,能够保持外模式不变,构成逻辑独立性

如果 Stroge Schema 改变,通过修改 内模式/模式映像,能够保持模式不变,构成物理独立性