3. 数据库语言、用户及体系结构
数据库语言
- DDL数据定义语言
- 指定一个数据库模式作为一组关系模式的定义
- 指定存储结构,访问方法和一致性约束
- DDL语句经过编译,得到一组储存在一个数据字典中的表,里面包含元数据metadata(包括数据库模式、数据存储结构、访问方法和约束、统计信息、授权)
- DML数据操纵语言
- 增删改查
- 过程化DML(C,Pascal,Java)和声明式DML(SQL,Prolog)
【SQL Structured Query Language结构化查询语言】
- DCL数据控制语言
- DB:具体数据库,具体形式例如文件
- OS:操作系统
- DBMS:数据库管理系统,提供一系列工具Tools
- DBA:数据库管理员直接操作DBMS
- Application programs(Embedded SQL):基于数据库的应用系统,被普通用户使用,可以用C,C++,java等开发;也可以是web的应用,比如ASP
- Advanced user高级用户:通过SQL和DBMS直接打交道
事务管理
- 事务:在数据库应用中完成单一逻辑功能的操作集合
- 要求ACID:原子性Atomicity,一致性Consistence,隔离性Isolation,持久性Durability
- 事务管理组件:确保系统在出现故障(例如断电或操作系统宕机),或事务失败的情况下,数据库都能保持一致性
- 并发控制管理器:控制并发事务之间的交互
数据库体系结构
- 存储管理器:在底层数据存储与应用程序及查询之间提供接口,对数据库中的数据进行高效存储、检索与更新,包括:事务管理、授权和完整性管理、文件管理(管理文件系统与数据文件、数据字典、索引文件之间的交互)、缓存管理
- 查询处理器:接受数据库语言输入,经过解析和翻译、优化、执行,输出相应结果给用户。由于同一操作有不同的实现算法,之间的开销差可能巨大,需要预估操作的开销以优化查询处理。
应用程序体系结构
- 两层体系结构Client server:像ODBC和JDBD这样的用用程序接口标准被用于进行客户端和服务器的交互 user-application-(network)-database system
- 三层体系结构Browser server:浏览器服务器架构,如基于web的应用程序及采用中间件构建的应用程序 user-application client-(network)-application server-database system
4.关系模型的基本概念
- 关系数据库基于关系模型,是一个或多个关系组成的集合
- 关系就是表,由行和列构成
- 关系模型的主要优点:简单的数据表示,易于表示复杂的查询
- 关系模式schema:描述关系的结构,即表头
- 关系实例:一个关系的特定实例,即表里特定的一行
- 如果K值能够在一个关系R中唯一地标志一个元组,则K是R的超码
- 最小超码是候选码
- 由用户明确定义的候选码是一个主键
- 假设存在关系r和s,r(A,B,C), s(B,D),则在关系r上的属性B称作参照s的外码,r也称为外码依赖的参照关系,s叫做外码被参照关系
- 参照关系中外码的值必须在被参照关系中实际存在或者为null(参照完整性的检查)
5. 关系代数和关系运算
- 基本运算:选择、投影、并、集合差、笛卡尔积、重命名
- 复合运算
- 附加运算:集合交、自然连接、theta连接、除、赋值
- 要求:
- 并、差、交为双目等元运算;
- 笛卡尔积、自然连接、除为双目运算;
- 投影、选择为单运算对象;
- 关系运算的优先级为投影选择笛卡尔积连接、除交并、差
6. 扩展预算及空值
- 广义投影:允许投影列表中使用算数函数对投影操作进行扩展
- 聚集函数aggregation:输入一个值集合,返回单一值作为结果
- 外连接:连接运算的扩展,可以处理缺失信息,保留一侧关系中所有于另一侧关系的任意元组都不匹配的元组,再把产生的元组加到自然连接的结构上,使用空值。
- 空值:
元组的某些属性值可以是空的
Null表示未知值或值不存在
涉及空的任何算术表达式的结果为空
Sql中聚集函数会忽略空值
与空值的比较将返回一个特殊值unknown(介于true和false之间的状态) - 数据库修改:删除、插入、更新,都是通过赋值操作表示