• 数据库复习(概论)(转)


    问:数据库与数据库管理系统一样吗?

    答:数据库管理系统是一个软件,用来管理数据库;数据库是数据的集合;

    问:数据库的历史流程?

    答:对数据库影响最大的项目有IBM的System R项目,还有伯克利大学的INGRES项目;

    (1)20世纪60年代末,第一个商用DBMS出现;

    早期的模型并不是关系模型,而是层次、网状模型,而这些模型也没有类似SQL的高级查询语言;

    (2)1970年Ted Codd提出了关系型数据库;

    (3)关系模型之后还提出了面向对象模型等;

    问:常见的数据模型有哪些?

    答:关系数据模型、半结构化数据模型、面向对象模型、层次模型(基于树)、网状模型(基于图); 

    层次模型和网状模型都是早期的模型,如果要查询,需要对底层的数据直接操作,因此查询效率低;

    而关系模型则不需要关心数据的底层存储格式,并且可以通过SQL快速查询;


    问:数据库有哪些应用?

    答:现在无时无刻我们都会和数据库打交道,比如(1)银行(2)航天(3)各种网站(4)企业管理;

    问:SQL只能对关系型数据库查询吗?

    答:是;

    小知识点:数据存储的单位

    因为现在GB的数据已经是再正常不过了,所以我们需要了解GB以后的数据容量单位;

    TB-->PB-->EB-->ZB-->YB-->DB-->NB;

    DBMS提供的功能:

    (1)拥有DDL(数据定义语言),能够创建数据库并定义模式;

    (2)拥有查询语言或DML(数据操作语言)提供查询和更新数据;

    (3)能够存储大量数据,并且持久性(数据库能够长期存储,比如只要插入了一条数据,这条数据就会一直被保存);

    (4)ACID

            A原子性:事务要么执行、要么不执行;

            C一致性:比如银行转账,需要一致性;

            I 隔离性:多个用户同时访问数据库时,像是只有一个用户访问的感觉;

            D持久性:存储数据不会丢失;

    数据库系统起源于文件系统;

    文件系统的特点:

    (1)能够存储大量数据;

    (2)不能保证持久性(如果不做备份,可能会丢失数据);

    (3)不能对数据有效访问,没有专门的查询语言;

    (4)不能保证隔离性和原子性(如果多个用户同时修改同一个文件,则只能保留一个用户的更改);

    数据库的系统架构

    从图中可以看到,一般对DBMS有两类操作:
    (1)DBA负责数据库的模式;

    (2)DBMS用户查询和更改数据库记录;

    当用户输入查询语句并提交时,查询编译器会将查询语句转为查询计划,并交给执行引擎;

    查询处理器

    查询编译器:将查询语句转为查询计划

    执行引擎:执行查询计划;

    事务

    一般来说数据库默认为自动提交模式,即每个语句都是一个事务,如果取消该模式,则需要处理并发控制的问题;

    并发控制调度器:管理原子性和独立性和一致性;

    日志:管理持久性,每个数据库操作都记录在日志上,日志放在磁盘上;

    存储管理

    缓冲区管理器:管理内存(缓冲区)的存储;

    缓冲区被缓冲区管理器管理;

    存储器管理器:管理磁盘的数据存储;

    缓冲区管理器会向存储器管理器发出请求,让磁盘的某块数据放入内存;

    问:以下两个关系是同一个吗?

    答:是,因为关系表中属性顺序、元组顺序的不同是无所谓的,因此以上两个表示关系的不同表现形式,但是是同一个关系;

    问:属性能够自定义数据类型吗?

    答:不能,因为关系数据模型中明确规定属性的类型是基本数据类型; 

    问:常用的关系型数据库有哪些?

    答:MySQL、DB2、Oracle、SQLite、MS Server;

    问:Java怎么访问操作DBMS?

    答:每个DBMS都会提供相应的驱动器,并且Java提供了两种访问数据库的方法:

    (1)ODBC-JDBC桥;

    (2)JDBC;

    问:NoSQL是什么?

    答:Not Only SQL;

    通常对于Web应用来说,数据库都是放在服务器端,而服务器端一般也分为三层架构

    (1)Web服务器:比如Tomcat,接收用户请求;
    (2)应用服务器:执行业务逻辑,比如DAO;
    (3)数据库服务器:执行数据库的查询和更新;

    SQL环境:安装在电脑上的DBMS;



    模式:组织表、视图、断言等的集合;
    目录:模式的集合;
    :可访问的所有目录的集合;

     

    CREATE SCHEMA [模式名]
            [创建表语句]
            [创建视图语句]
            [创建触发器语句]
            [创建断言语句]

    SET SCHEMA [模式名]            //设置当前模式

    CREATE CATALOG [目录名]      //创建目录
    SET CATALOG [目录名]              //设置当前目录

    如果要定位一张表,我们需要"目录名.模式名.表名"才能确定,但是一般如果引用表名在当前目录及当前模式时,则可以忽略;

    在MySQL中,数据库和模式是一样的,比如在MySQL中输入:show schemas,则会返回和show databases一样的结果;
    而create schema sh1 和 create database sh2 的效果是一样的;
    MySQL中不存在CATALOG的概念;也没有CREATE CATALOG的语法;

    SQL服务器:数据库服务器;
    SQL客户端:应用服务器;
  • 相关阅读:
    问题九十五:Reverse Text
    类对象Java设计模式之十八(中介者模式)
    节点离散温度场有限差分(有限容积)程序入门之三:2D温度场显式迭代计算(暂不考虑潜热)
    分析打开hdu 3335 (最小路径覆盖)
    结点树数据结构:树的定义和基本概念
    数据手动输入c++ 结构体练习 结构体重的char数组指针
    反转指向字符串反转C++实现源码(带测试用例)
    采样干扰十大滤波算法程序大全
    前缀子节点并行前缀求和的算法
    FatMouse's Speed
  • 原文地址:https://www.cnblogs.com/3013218061shang/p/5573509.html
Copyright © 2020-2023  润新知