概述(Ch1)
文章目录
这章目标是达到对数据库系统有一个基本的理解,能够识别和解释数据库的基本概念、模型、设计原则和技术发展:
- 数据库基础知识:理解数据库的定义和必要性。
- 数据模型:识别并理解关系模型、实体-关系模型等主要数据模型。
- 关系数据库:掌握表、行、列的基本概念。
- 数据库设计:了解逻辑设计和物理设计的区别。
- 存储管理:知道存储管理器的基本职责。
- 查询处理:理解查询处理的基本步骤。
- 事务管理:理解事务的概念和作用。
- 数据库架构:识别集中式、客户端-服务器等数据库架构。
- 数据库历史:了解数据库技术的发展里程碑。
- DBMS:理解DBMS的组成和功能。
- 数据库抽象层次:区分物理层、逻辑层和视图层。
- DDL和DML:了解DDL和DML的基本用途。
- 数据库设计方法:了解实体关系模型和规范化理论的基本概念。
- 数据库引擎组件:识别数据库引擎的主要组件。
原文链接,阅读更丝滑:《数据库复习-1. 概述(Ch1)》
数据和数据库的定义
- 数据:“data are raw facts that describe people, objects, and events.”
- 数据库:“An integrated collection of related data constitutes a Database (DB).”
数据库管理系统DBMS
- DBMS包含有关特定企业的信息
- Collection of interrelated data
- Set of programs to access the data
- An environment that is both convenient and efficient to use
- 数据库应用
- 银行,航空公司,大学,商场,线上商店等
使用文件系统存储数据的缺点
Database systems offer solutions to all the above problems
- 数据冗余与不一致性:多种文件格式在不同文件中的重复
- 数据访问困难:需要写一个新的程序来得出每个任务
- 数据隔离:多个文件和格式
- 完整性问题:完整性约束
- 数据更新的原子性问题
- 用户并发访问问题
- 安全问题:访问权限问题
抽象的层次
- 物理层
- 逻辑层:数据与数据关系
- 视图层:隐藏数据类型的细节
DBMS 架构
- Logical Schema逻辑模式
- External Schema子模式/用户模式
- Physical Schema存储模式
实例和模式
类似于类型和变量
- 逻辑模式——数据库总体逻辑机构
- 物理模式——数据库的整体物理结构
- 实例——数据库的具体内容
- 物理数据独立性——不改变逻辑模式的情况下修改物理模式
数据模型
描述数据、数据关系、数据语义、数据约束的一组工具
- 关系模型
- 实体-关系数据模型(主要用于数据库设计)
- 基于对象的数据模型(面向对象和对象关系型)
- 半结构化数据模型(XML)
- 网络模型
- 层次模型
关系模型Relational Model
所有的数据都存储在各种表格中
数据定义语言DDL
数据库模式定义的规范表示法
- 示例
create table instructor (ID char(5),
name varchar(20),
dept_name varchar(20),
salary numeric(8,2))
- DDL编译器生成一组存储在数据字典中的表模板
- 数据字典包含元数据(即与关于数据的数据)
- 数据库模式
- 完整性约束
- 主键
- 权限
数据操作语言DML
用于访问和操作由适当数据模型组织的数据,DML也被称为查询语言
- 两种类别
- Pure纯语言——用于证明计算能力的属性和优化
- 关系代数
- 元组关系盐酸
- 域关系演算
- Commercial商业语言——在商业系统中使用
- SQL
- Pure纯语言——用于证明计算能力的属性和优化
SQL
- 商业语言
- 与图灵机不等价
- 嵌入某种高级语言中以计算复杂的函数
- 应用程序访问数据库通过:
- 语言扩展嵌入式SQL
- 应用程序接口(ODBC/JDBC),它们运行SQL查询被发送到数据库
数据库设计
设计数据库总体结构的过程
- 逻辑设计——决定数据库模式
- 物理设计——决定数据库物理布局
设计方法
确保数据库中的每个关系都是良好的
- Entity Relationship Model实体-关系模型
- 将企业建模为实体和关系的集合
- 通过ER图来展现
- Normalization Theory规范化方法
- 定义什么是不良设计,并进行测试
数据库引擎
- Storage manager存储管理
- 一个程序模块——提供between低级数据and应用程序和提交给系统的查询之间的接口
- 与OS文件管理器交互
- 高效存储、检索和更新数据
- 涉及的问题:存储访问、文件组织、索引和散列
- Query processing查询处理
- parsing and translation 解析和翻译
- optimization 优化
- evaluation 评估
- 评估给定查询的方法
- 等价表达式
- 每个操作不同的算法
- 评估查询的好方法和坏方法之间的成本差异巨大
- 需要估计操作的成本
- 数据库必须维护的关于关系的统计信息量
- 估计中间结果的统计数据以计算复杂表达式的成本
- Transaction manager事务管理
- 事务是一组操作,在数据库应用程序中执行单一逻辑功能
- Transaction-management component事务管理组件确保数据库在系统失败(例如操作系统崩溃)和事务失败的情况下仍然保持一致状态
- Concurrency-control manager并发控制管理器控制并发事务之间的交互以确保数据库的一致性
数据库用户和管理员
- 普通用户——使用用户界面
- 应用程序程序员——写应用程序
- 老练用户分析师——查询工具
- 数据库管理员——管理员工具
数据库系统内部结构
- 用户使用
query processor
query processor
输出到storage manager
和disk storage
storage manager
管理disk storage
DB架构
数据库架构极大地收到底层计算机系统地影响
- 集中式
- 客户端-服务器模式
- 并且(多处理器)模式
- 分布式
Database Systems历史
- 1950s-1960s——磁带
- 1960s-1970s——硬盘,网络和层次数据模型,关系数据模型
- 1960s——层级系统Hierarchical system
- 1980s——关系原型,SQL,分布式,面向对象
- 1990s——大型决策支持和数据挖掘应用,大型多太字节数据仓库,网络商务
- 2000s——XML和XQuery标准,自动化数据库管理
- 2000s+——大型数据库存储系统Google BigTable, Yahoo PNuts, Amazon, …