数据库系统原理 浙江大学 陈岭

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之间的状态)
  • 数据库修改:删除、插入、更新,都是通过赋值操作表示