数据库系统架构图示

数据库系统三级模式结构

内模式 模式 外模式 模式/内模式映射 外模式/模式映射
外模式 (External Schema)

外模式是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。

实例:学生信息系统的不同视图
  • 教务处视图: 学号、姓名、专业、班级、所有课程成绩
  • 学生视图: 学号、姓名、已选课程、成绩
  • 教师视图: 课程号、课程名、选课学生名单、成绩
模式 (Conceptual Schema)

模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它描述的是数据的全局逻辑结构。

实例:大学数据库的全局模式
学生(学号, 姓名, 性别, 出生日期, 专业, 班级)
课程(课程号, 课程名, 学分, 开课院系)
选课(学号, 课程号, 成绩, 学期)
教师(工号, 姓名, 职称, 院系)
授课(工号, 课程号, 学期, 教室)
                    
内模式 (Internal Schema)

内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。它定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

实例:学生表的物理存储结构
  • 存储文件: STUDENT.dat (定长记录,每个记录200字节)
  • 索引: B+树索引 on 学号,哈希索引 on 专业
  • 存储方式: 按专业聚簇存储,每个专业的学生连续存放
  • 缓冲区: LRU算法管理,大小8MB

关系型 vs 非关系型数据库比较

拖动滑块查看两种数据库类型的特性对比:

关系型数据库 (RDBMS)
  • 基于表格的结构化数据
  • 严格的预定义模式
  • SQL查询语言
  • ACID事务保证
  • 适合复杂查询
  • 垂直扩展为主
  • 示例: MySQL, PostgreSQL, Oracle
非关系型数据库 (NoSQL)
  • 灵活的数据模型
  • 动态模式或无模式
  • 特定领域查询语言
  • BASE原则(基本可用)
  • 适合大规模数据
  • 水平扩展能力强
  • 示例: MongoDB, Cassandra, Redis