Database Management System(DBMS)
数据库管理系统 = 相关联数据的集合 + 访问数据的程序 + 方便有效的使用环境
数据管理系统解决的问题:
1. Data redundancy and inconsistency(数据冗余与不一致):不同的文件格式、不同文件中的组织形式
2. Difficulty in accessing data(数据访问困难):每种访问需求必须编写相应的程序
3. Data isolation(数据孤立):不同的文件和格式
4. Integrity problems(完整性约束):对不同数据能否设置初始范围
5. Atomicity of updates(更新的原子性):当发生错误时,能否保证数据库处于可恢复的、正确的状态
6. Concurrent access by multiple users(多位使用者的异步访问):当多位使用者同时访问/修改数据时实现异步
7. Security problems:安全性问题
Levels of Abstraction
Physical level:描述数据以何种方式存储 底
Logic level:描述存储在数据库中的数据及数据之间的关系 ↓
View level:应用程序隐藏数据类型,同时可以实现隐藏信息 高
Instance and Schemas
与数据类型相似
Schema(模式):数据库的逻辑架构(表头),可分为physical或logical schema
Instance:数据库中的一行实例
Physical data independence:不改变逻辑模式直接更改物理模式的能力,实现各层分离
Data models(数据模型)
描述数据、数据间的关系、数据语义和数据属性的一系列工具集
Relational model:关系模型
Entity-Relationship model:ER模型
Object-based data models
Relational model
关系模型:其实就是一张完整的表
Data manipulation language(DML)
数据查询语言:用于查询和修改数据模型内部数据的语言
DML的类型:procedural:用户指明需要哪些数据及数据的获得方式
declarative:用户只指明需要哪些数据
SQL是数据查询里面最常用的语言
Data definition language(DDL)
用来建表的语言,表的相关信息(数据模型、完整性约束、许可等)存储在data dictionary中
Database design
包括逻辑层和物理层设计
Query processing
Parsing and translation(解析和翻译)->optimization(最优化)->evaluation(求解)
Transaction Management
Transaction:执行一个简单逻辑的操作的集合
Transaction-management component:保证数据库系统处于正常状态
Concurrency-control manager:控制异步操作之间的关系
--------------------------------------这是章节间可爱的分割线(04.02)---------------------------------
Relation
关系 = attributes + tuples
Attribute:
Domain:每个属性独立的取值范围
Atomic:属性要求有原子性,即每个属性都是独立的
Null:每个属性的范围都包括空值,但是空值在计算过程中可能会发生多种问题
在做比较运算时永远返回unknown
unknown or True = True unknown or False = unknown unknown or unknown = unknown
unknown and True = unknown unknown and False = False unknown and unknown = unknown
Attribute=A1,A2,A3… Domain= D1,D2,D3… tuple= a1,a2,a3…
R=( A1,A2,A3…)是一个relation schema(若不记得看第一章),R一般是表的名字,A一般是各个表头
一个关系r(一行关系)是D1xD2xD3中的一个子集
数据库术语与数学术语对应关系如下表
Table(表格) |
Relation(关系) |
Attribute name |
Set name |