数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

1. 数据查询语言DQL

  • 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2 .数据操纵语言DML

  • 数据操纵语言DML主要有三种形式:

    • 1) 插入:INSERT
    • 2) 更新:UPDATE
    • 3) 删除:DELETE

3. 数据定义语言DDL

  • 数据定义语言DDL用来创建数据库中的各种对象—–表、视图、
    索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER

表 视图 索引 同义词 簇

DDL操作是隐性提交的!不能rollback

4. 数据控制语言DCL

  • 数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
    数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

    • 1) GRANT:授权。

    • 2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
      回滚—ROLLBACK
      回滚命令使数据库状态回到上次最后提交的状态。其格式为:
      SQL>ROLLBACK;

    • 3) COMMIT [WORK]:提交。

Three Level Architecture

这里写图片描述

1. 外部层(External Level)

  • 用户使用语言的混合:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

  • 用户的视图(view)是一个外部视图,可以包括许多外部事件的记录

  • 每一个视图展示用户所感兴趣的成分而隐藏其他信息

  • 视图被DBA创建,可以使用使用DDL语言定义这种外部结构,如CREATE VIEW
    XXX
    指令

2. 概念层(Conceptual Level)

  • 概念层描述整个database

  • 隐藏了数据存储的细节,描述了数据间的关系和数据的存储位置(理解为归类)

  • 与view有或多或少的相似,如二者都有join语句

  • 原样的展示数据结构:在一个记录中包含多个事件(理解为实体,关系)多种类型

  • 概念模式(Conceptual Schema)

    • 被DBA创建,可以使用使用DDL语言定义
    • 包括为保持安全和完整性的一些约束条件(constraints)
    • 被DBA编译并存储在数据字典(data dictionary), 也就是一个,包含对表(table)与域(field)(即列名或其描述)的数据库里 参考
  • 只不过是一个独立的外部模式的集合(a union of individual external schemas),并添加了安全与完整性因素

3. 内部层(Internal Level)

这里写图片描述

  • 描述数据库的物理存储

  • 具体被操作系统管理,并有DBMS控制

  • 定义数据记录怎样被存储,如变量类型和索引(It defines the types of the stored records, indices, how fields
    are stored)

  • 它被DDL定义,如DDL的子集(CREATE INDEX
    in SQL)

  • 程序员进入这一层操作是危险的,因为这将打破安全和完整性检测

  • 以上3层存在映射关系,而DBA需要维持这些关系

    • 内部层的改变不需要影响概念层,只需要改变这两层之间的映射关系,比如index change

    • 概念层的改变直接映射到外部层的view

对于不同的DBMS, 对sql语句的执行方式也不同。如果使用了一个比较费时的查询,DBMS将会判断他并执行等价的省时的查询

DBA与database designer不同。后者分析客人需求,区分要被存储的数据,并选择一个适当的结构,DBA并不是数据库设计者

这里写图片描述

posted @ 2016-06-11 22:27  panty  阅读(435)  评论(0编辑  收藏  举报