一:数据库系统的概念

1. 数据抽象

  • 物理层:数据的存储
  • 逻辑层:数据的定义和数据间的关系
  • 视图层:部分数据信息的展示

2. 数据库(DB)

长期存储在计算机的、有组织、可共享的数据集合

3. 数据库管理系统(DBMS)

(1)文件处理系统(操作系统)

  • 优点:由传统操作系统支持,随时可用
  • 缺点:
    • 数据冗余和不一致:信息重复存储
    • 数据访问困难:需要编写程序
    • 数据孤立:检索、共享数据困难
    • 完整性问题:无法动态修改约束
    • 原子性问题
    • 并发访问问题
    • 安全性问题:控制粒度过大

(2)数据库管理系统(操作系统之上)

数据库+操作数据的程序工具

特点
  1. 数据访问的高效和可扩展
  2. 缩短应用开发时间
  3. 数据独立性、完整性、安全性
  4. 并发访问
分类
  • 网状数据库
  • 层次数据库
  • 关系数据库
    • Oracle、DB2、SQL-Server、ACCESS
    • MySQL、PostgreSQL
  • 面向对象数据库系统
  • 对象关系数据库系统
  • 面向应用数据库系统

二:数据库系统的结构

三级模式与两级映像

(1)三级模式:数据库的总体设计

  • 内模式:在物理层描述数据库(用户不可见)
  • 模式:在逻辑层描述数据库
  • 外模式:在视图层描述数据库

(2)两级映像:模式间的转换

  • 模式-内模式映像:模式和内模式的转换
  • 外模式-模式映像:外模式和模式的转换

(3)特点

通过对模式的分层,保证了数据的物理独立性和逻辑独立性,修改一层的结构不会影响更高层的结构

  • 物理数据独立性:修改物理结构而不需要改变逻辑结构的能力
    • 易于实现,应用程序独立于物理结构
    • 当物理结构修改时,由数据库系统的“模式-内模式映像”对逻辑结构进行映射转换
  • 逻辑数据独立性:修改逻辑结构而不影响应用程序
    • 难以实现,应用程序依赖于逻辑结构
    • 当逻辑结构修改时,由数据库系统的“模式-外模式映像”对应用程序进行映射转换

三:数据库的设计

1. 数据模型

数据模型主要用于描述数据的结构、关系、语义和约束。

分类

  • 网状模型
  • 层次模型
  • 实体-关系模型(概念设计)
    • 实体(□)
      • 属性 (○)
    • 联系 (◇)
  • 关系模型(逻辑设计)
  • 面向对象模型

2. 设计步骤

  1. 需求分析
  2. 概念数据库设计(信息):描述数据
  3. 逻辑数据库设计(逻辑+物理):把概念设计转换为某个DBMS支持的数据模型,同时对应的DBMS自动映射物理结构
  4. 结构优化
  5. 物理数据库设计:索引、集群、调优
  6. 创建数据库
  7. 安全设计:为用户配置权限

四:数据库的语言

1. SQL的组成

(1)数据定义语言DDL

  • 指定一个数据库模式(也就是创建表)作为一组关系模式的定义,。
  • 指定数据的存储结构,访问方法,一致性约束

DDL语句经过编译,得到一组存储在数据字典的表

  • 数据库模式
  • 数据存储结构
  • 访问方法
  • 约束
  • 统计信息
  • 授权

(2)数据操作语言DML

  • 从数据库中检索语言
  • 插入、删除、更新数据
分类
  • 过程化:用户指定需要的数据以及获取方法
  • 声明化:用户只需指定需要的数据

(3)数据控制语言DCL

2. SQL的使用方式

  • 直接在交互环境使用
  • 编程语言通过ODBC、JDBC等开发式数据库连接使用
  • 编程语言中使用嵌入式SQL

五:数据库的用户

数据库管理员DBA

对数据库系统进行集中控制的特殊用户

  • 拥有数据库管理的最高权限
  • 控制所有用户访问数据库的权限
  • 协调数据库系统的活动

工作:

  • 定义模式、存储结构、存取方法
  • 修改模式、物理组织
  • 授权
  • 维护

六:数据库的事务

定义

在数据库应用中完成单一逻辑功能的操作集合

要求ACID

  • 原子性:要么执行要么不执行
  • 一致性:不会破坏数据库的一致性
  • 隔离性:并发运行的事务互不影响
  • 持久性:事务操作的结果持久化

事务管理组件

确保系统出现异常时,数据库能够保持一致性

并发控制管理器

七:数据库的体系结构

1. 文件(磁盘存储)

  • 数据文件
  • 索引文件
  • 日志文件
  • 统计数据文件
  • 数据字典

2. 存储管理器(DBMS)

在底层数据存储于应用程序之间提供接口,对数据进行高效的存储、检索、更新。

  • 事务管理器
  • 文件管理器
  • 缓存管理器
  • 授权和完整性管理器

3. 查询管理器(DBMS)

  1. 接收数据库语言的输入
  2. 解析
  3. 优化(预估操作的开销也就是统计信息)
  4. 执行
  5. 输出结果
04-25 08:34