zoukankan      html  css  js  c++  java
  • 数据库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并不是数据库设计者

    这里写图片描述

  • 相关阅读:
    Mapreduce的Job运行流程
    Mapreduce的job提交流程
    Hadoop之hdfs
    Java之垃圾回收机制
    Java中线程死锁问题
    删除数据表重复元素方法
    JAVA
    php篇一 之上传文件
    php篇二 之微信公众号开发
    android + php 后台开发
  • 原文地址:https://www.cnblogs.com/bishi/p/5699011.html
Copyright © 2011-2022 走看看