数据库系统原理
  • 数据库系统原理
  • 引言
    • 数据库系统概述
  • 关系模型介绍
    • 关系数据库结构
    • 数据库模式
    • 关系代数
      • 选择运算
      • 投影运算
      • 笛卡尔运算
      • 连接运算
      • 集合运算
      • 其他运算
  • SQL介绍
    • SQL语言分类
    • SQL数据类型
    • SQL数据库操作
    • SQL数据表操作
    • SQL数据操纵语言
    • SQL数据查询语言
    • 集合运算
    • 聚集函数
  • 中级SQL
    • 连接查询
    • 内连接
    • 外连接
    • 交叉连接和自连接
    • 视图
    • 完整性约束
    • SQL用户和授权
  • 高级SQL
    • 函数
    • 存储过程
    • 触发器
  • ER模式数据库设计
    • 数据库设计过程概览
    • 需求分析
    • 实体-联系模型
      • 复杂属性
      • 映射基数和弱实体集
    • 将E-R图转换为关系模式
    • E-R模型设计
  • 关系数据库设计
    • 数据库设计规范化
    • 函数依赖理论
    • 关系范式
  • 半结构化数据
    • 半结构化数据
  • 应用程序开发
    • ADO.NET访问数据库技术
    • 断开模式数据查询
    • 连接模式数据更新
  • 数据存储结构
    • 磁盘
    • 文件的存储
    • 文件的逻辑结构
    • 文件组织
  • 索引
    • 索引基本概念
    • B树索引
    • B+树索引
    • MySQL索引的基本语法
    • 联合索引
  • 查询处理
    • 查询处理概述
  • 查询优化
    • 查询优化概述
    • 查询树的启发式优化(代数优化算法)
  • 事务
    • 事务的概念
    • 事务的特性
    • MySQL事务处理
    • 可串行化
  • 并发控制
    • 并发控制概述
    • 封锁
    • 两阶段封锁协议封锁
    • 多粒度封锁
    • 活锁和死锁
    • 基于时间戳排序的并发控制
    • 乐观控制法
  • 恢复系统
    • 数据库恢复概述
    • 数据库恢复的实现技术
    • 基于检查点的数据库恢复
Powered by GitBook
On this page
  • 基本概念
  • 数据模型
  • 关系数据模型
  • 数据抽象
  • 数据库语言
  • 数据库设计
  • 概念设计
  • 逻辑设计
  • 物理设计
  • 数据库引擎(核心组件)
  1. 引言

数据库系统概述

Previous数据库系统原理Next关系数据库结构

Last updated 4 months ago

基本概念

  • 数据库(Data Base,DB):是按照一定的组织形式存储在一起的相互关联的数据的集合。

  • 数据库管理系统(DBMS):是数据库系统的核心部分,由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。主要目标是提供一个可以方便、高效地存取数据库信息的途径。

数据模型

  • 数据模型:一个描述数据、数据联系、数据语义、以及一致性约束的概念工具的集合。

  • 关系模型:用表的集合来表示数据和数据间的联系。表也称为关系,每个表有多行多列,每列有唯一的列名,每行为一条记录。

  • 实体-联系模型:(Entity-Relationship,E-R)数据模型,描述实体对象以及它们之间的联系。

  • 半结构化数据模型:允许在其数据定义中某些相同类型的数据项含有不同的属性集。

  • 基于对象的数据模型:将面向对象的概念整合到关系数据库中。

关系数据模型

关系数据模型是使用最广泛的数据模型。数据以表的形式表示,每个表有多行多列,每列有唯一的列名,每行为一条记录。

数据抽象

  • 物理层:最低层次的抽象,详细描述复杂的底层数据结构

  • 逻辑层:描述数据库中存储什么数据以及这些数据之间存在什么联系。

  • 视图层:最高层次的抽象,只描述整个数据库的某个部分。

  • 物理模式:在物理层描述数据库的设计

  • 逻辑模式:在逻辑层描述数据库的设计

  • 子模式:在视图层描述数据库视图的设计

数据库语言

  • 数据定义语言(Data- Definition Language,DDL)

    用于定义数据模式。比如创建数据库、修改数据库、数据库备份等管理,创建数据表、修改数据表结构,域约束定义、用户权限定义。

      create table instructor(
    				  ... ...)
  • 数据操纵语言(Data- Manipulation Language,DML)

    用于表达数据的查询和更新(增删改),比如插入数据、修改数据、删除数据、查询数据。

    select name
    from instructor
    where dept_name = '...'

    数据定义语言和数据操纵语言不是两种相互独立的语言,它们只是构成了单一的数据库语言(例如SQL语言)的不同部分。

数据库设计

数据库设计的主要内容是数据库模式的设计

数据库设计是指对于一个给定的应用环境,设计最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各类用户的应用需求。

  • 概念设计:决定数据库中应该包括哪些数据,以及如何组织这些属性到各个表中。使用E-R模型。

  • 逻辑设计:将高层次的概念模式移到要使用的实现数据库系统的数据模型上。

  • 物理设计:设计数据库的物理特性,包括文件组织形式以及内部存储结构。

概念设计

对需求分析阶段收集到的数据进行分类、组织(聚集),形成:

  • 实体

  • 实体的属性,标识实体的码

  • 确定实体之间的联系类型(1:1,1:n,m:n)

逻辑设计

  • 概念结构设计得到的E-R图根据转换规则转化为一般数据模型;

  • 根据特定DBMS的特点与限制转化为特定DBMS支持下的数据模型;

  • 根据优化方法如规范化理论转化为优化模型;

  • 得到逻辑模型进入物理结构设计;

物理设计

  • 逻辑结构设计得到的逻辑模型输入,确定数据库的物理结构;

  • 评价数据库的物理结构;

  • 得到物理模型,进行数据库实施阶段。

数据库引擎(核心组件)

数据库系统被划分为多个模块,每个模块完成整个系统的一个功能

  • 存储管理器:负责数据库中数据的存储、检索和更新

    权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器

  • 查询处理器:负责数据检索

    DDL解释器、DML解释器、查询执行引擎

  • 事务管理:负责完成原子性、一致性功能的操作

    并发控制管理器、恢复管理器