1、File processing system vs Database system
disadvantage:
数据冗余和不一定
数据访问困难
数据独立
完整性问题
原子性问题
并发式访问异常
安全性问题
ps:数据库解决了以上问题
2、数据库的分层:
物理层:描述数据库实际存储方式
逻辑层:描述数据库中存储什么数据及这些数据存在的关系
视图层:应用程序能够隐藏数据类型的详细信息。也可以隐藏数据
ps:逻辑层类比结构体定义,试图层类比结构体引用,物理层类似于解释器
3、实例和模式:
类似于编程语言:
类型模式, 变量实例
ps:xxx模式,类似于编程语言里不同函数里的内部变量(作用域,生命周期?)
4、内模式、模式、外模式,三个模式相互独立、通过映射完成数据操作
——修改一层的结构定义不影响更高层的结构定义
5、数据库设计过程:
1、需求分析(需要什么样的数据)
2、概念设计(使用E——R模型或类似的高层数据模型)
3、逻辑设计(将概念设计转化为某个DBMS所支持的数据模型)
4、结构优化(关系标准化,检查冗余和相关的异常关系结构)
5、物理数据库设计(索引,集群和数据库的调优)
6、创建并初始化数据&安全设计
——加载初始数据,测试
——识别不同的用户及它们的角色
6、数据模型:
1、功能:数据模型是一个概念工具的集合,用于描述:
1、数据结构
2、数据关系
3、数据语义
4、数据约束
2、分类:
1、实体——联系模型
E——R(Entity——Relationship)模型
实体(对象)
联系:几个实体之间的关系
E——R模型数据库设计中广泛使用
——ER模型常将数据库设计转化为关系模型设计
2、关系模型
3、其他模型:
——面向对象模型
——半结构化数据模型
——早期模型:网状模型和层次模型
7、数据库语言:
1、DDL(数据定义语言)
——指定数据库模式作为一组关系模式的定义
——指定存储结构,访问方法和一致性约束
——DDL语句经过编译,得到一组存储在特殊文件的表
——数据字典(data dictionary)包含元数据(metdata),包括:
——数据库模式
——数据库存储结构
——访问方式和约束
——统计信息
——授权
2、DML(数据操作语言)
——数据查询
——数据的增删查改
——两类基本数据操作语言
——过程化DML:跟写代码一样获取数据
——声明式DML:用户只需要指定数据获取类型
3、DCL(数据控制语言)
4、SQL = DDL + DML + DCL
8、事务:数据库应用中完成的那一逻辑功能的操作集合
——事务管理组件:
确保系统在出现故障或事物失败的情况下,数据库都能保持一致
——并发式控制管理器:
控制并发事务之间的交互
9、数据库体系结构:
1、存储管理器
——在底层数据存储与应用程序及查询之间,提供接口
——对数据库中的数据库中的数据进行高效存储,检索与更新
实现的数据结构:
——数据文件
——数据字典
——索引
包括:
——事务管理器
——授权和完整性管理器
——文件管理器
——缓存管理器
2、查询管理器
——DDL解释器
——DML编译器
——查询执行引擎
10、应用程序体系结构
两层体系结构:类似于ODBC和JDBC这样的应用程序接口标准用于进行客户端和服务器的交互
(CS)
三层体系结构:基于web的应用程序及采用“中间件”构建的应用程序
(BS)