一:数据库系统的概念
1. 数据抽象
- 物理层:数据的存储
- 逻辑层:数据的定义和数据间的关系
- 视图层:部分数据信息的展示
2. 数据库(DB)
长期存储在计算机的、有组织、可共享的数据集合
3. 数据库管理系统(DBMS)
(1)文件处理系统(操作系统)
- 优点:由传统操作系统支持,随时可用
- 缺点:
- 数据冗余和不一致:信息重复存储
- 数据访问困难:需要编写程序
- 数据孤立:检索、共享数据困难
- 完整性问题:无法动态修改约束
- 原子性问题
- 并发访问问题
- 安全性问题:控制粒度过大
(2)数据库管理系统(操作系统之上)
数据库+操作数据的程序工具
特点
- 数据访问的高效和可扩展
- 缩短应用开发时间
- 数据独立性、完整性、安全性
- 并发访问
分类
- 网状数据库
- 层次数据库
- 关系数据库
- Oracle、DB2、SQL-Server、ACCESS
- MySQL、PostgreSQL
- 面向对象数据库系统
- 对象关系数据库系统
- 面向应用数据库系统
二:数据库系统的结构
三级模式与两级映像
(1)三级模式:数据库的总体设计
- 内模式:在物理层描述数据库(用户不可见)
- 模式:在逻辑层描述数据库
- 外模式:在视图层描述数据库
(2)两级映像:模式间的转换
- 模式-内模式映像:模式和内模式的转换
- 外模式-模式映像:外模式和模式的转换
(3)特点
通过对模式的分层,保证了数据的物理独立性和逻辑独立性,修改一层的结构不会影响更高层的结构
- 物理数据独立性:修改物理结构而不需要改变逻辑结构的能力
- 易于实现,应用程序独立于物理结构
- 当物理结构修改时,由数据库系统的“模式-内模式映像”对逻辑结构进行映射转换
- 逻辑数据独立性:修改逻辑结构而不影响应用程序
- 难以实现,应用程序依赖于逻辑结构
- 当逻辑结构修改时,由数据库系统的“模式-外模式映像”对应用程序进行映射转换
三:数据库的设计
1. 数据模型
数据模型主要用于描述数据的结构、关系、语义和约束。
分类
- 网状模型
- 层次模型
- 实体-关系模型(概念设计)
- 实体(□)
- 属性 (○)
- 联系 (◇)
- 实体(□)
- 关系模型(逻辑设计)
- 面向对象模型
2. 设计步骤
- 需求分析
- 概念数据库设计(信息):描述数据
- 逻辑数据库设计(逻辑+物理):把概念设计转换为某个DBMS支持的数据模型,同时对应的DBMS自动映射物理结构
- 结构优化
- 物理数据库设计:索引、集群、调优
- 创建数据库
- 安全设计:为用户配置权限
四:数据库的语言
1. SQL的组成
(1)数据定义语言DDL
- 指定一个数据库模式(也就是创建表)作为一组关系模式的定义,。
- 指定数据的存储结构,访问方法,一致性约束
DDL语句经过编译,得到一组存储在数据字典的表
- 数据库模式
- 数据存储结构
- 访问方法
- 约束
- 统计信息
- 授权
(2)数据操作语言DML
- 从数据库中检索语言
- 插入、删除、更新数据
分类
- 过程化:用户指定需要的数据以及获取方法
- 声明化:用户只需指定需要的数据
(3)数据控制语言DCL
2. SQL的使用方式
- 直接在交互环境使用
- 编程语言通过ODBC、JDBC等开发式数据库连接使用
- 编程语言中使用嵌入式SQL
五:数据库的用户
数据库管理员DBA
对数据库系统进行集中控制的特殊用户
- 拥有数据库管理的最高权限
- 控制所有用户访问数据库的权限
- 协调数据库系统的活动
工作:
- 定义模式、存储结构、存取方法
- 修改模式、物理组织
- 授权
- 维护
六:数据库的事务
定义
在数据库应用中完成单一逻辑功能的操作集合
要求ACID
- 原子性:要么执行要么不执行
- 一致性:不会破坏数据库的一致性
- 隔离性:并发运行的事务互不影响
- 持久性:事务操作的结果持久化
事务管理组件
确保系统出现异常时,数据库能够保持一致性
并发控制管理器
七:数据库的体系结构
1. 文件(磁盘存储)
- 数据文件
- 索引文件
- 日志文件
- 统计数据文件
- 数据字典
2. 存储管理器(DBMS)
在底层数据存储于应用程序之间提供接口,对数据进行高效的存储、检索、更新。
- 事务管理器
- 文件管理器
- 缓存管理器
- 授权和完整性管理器
3. 查询管理器(DBMS)
- 接收数据库语言的输入
- 解析
- 优化(预估操作的开销也就是统计信息)
- 执行
- 输出结果