精华内容
下载资源
问答
  • 数据库是长期存放在计算机内,有组织的,可共享的大量数据的集合。数据库中的数据是按照一定的“数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可被各种用户共享。 数据库的三个基本...

    什么是数据?
    1、不是数字,含义要更广泛,是描述事物的符号记录;
    2、现实世界信息在计算机中的抽象表示;

    数据库是长期存放在计算机内,有组织的,可共享的大量数据的集合。数据库中的数据是按照一定的“数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可被各种用户共享。

    数据库的三个基本特点——永久存储、有组织、可共享。

    数据库管理系统(DataBase Management System,DBMS)是管理数据库的工具,是为数据库的建立、使用和维护而配置的一组软件。它建立在操作系统之上,实现对数据库的统一管理和控制。具有如下特点:
     数据库定义功能
     数据组织存储和管理功能
     数据操纵功能
     数据库的事务管理和运行维护
     数据库的建立和维护功能
     其他

    数据库系统指,在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理人员构成。是个更“宽泛”的概念。

    数据管理技术的产生与发展

    1. 人工管理阶段
      科学计算
      无存储设备
      无操纵系统
      面向对象——程序
      管理人员——程序员
      冗余度高,非结构化
    2. 文件系统阶段
      科学计算、数据管理
      有操作系统
      有存储设备
      有文件系统
      文件内有结构
      缺点:不适合管理大规模的数据,独立性不够高,应用方面不够多样化,不够灵活。
    3. 数据库管理阶段
      大规模的数据管理
      大容量此片
      联机实时、分布式
      共享性高,独立性高
      结构化,超强管理能力

    数据库系统的特点(相比较人工管理和文件管理)
    1 数据结构化(整体和内部均为结构化),数据之间有联系,有相应的完整性控制策略。
    2 数据共享性高、冗余度低、易扩充
    3 独立性高
    4 数据由DBMS统一管理和控制(安全性Security、完整性Integrity、并发Concurrency、恢复Recovery)

    展开全文
  • 数据库数据类型

    2018-07-10 19:36:25
    数据类型概念: 数据列,存储过程参数,表达式和局部变量的数据特征, 它决定了数据存储...浮点型 3定点型 4字符型 5日期 ***浮点型:在数据库中存放的是近似值 ***定点型:在数据库中存放的是精确值 字符串型 ...

    数据类型概念:  数据列,存储过程参数,表达式和局部变量的数据特征,

                     它决定了数据存储格式 代表了不同信息数据类型

        ***根据数据类型的特点选择合适的数据类型

    数据类型分为:          1.整型  2.浮点型  3定点型  4字符型   5日期



      ***浮点型:在数据库中存放的是近似值


      

      ***定点型在数据库中存放的是精确值

        

      字符串型     

        


         日期       








    展开全文
  • 数据库中连接方式详解

    千次阅读 2019-06-13 10:52:48
    在 关系数据库管理系统,表建立时各数据之间关系不必确定,常把一个实体所有信息存放在一个表。当检索数据时,通过连接操作查询出存放在多个表中的不 同实体信息。连接操作给用户带来很大灵活性,他们...

    连接查询

    通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
    在 关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不 同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。
    连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。
    SQL-92标准所定义的FROM子句的连接语法格式为:

    FROM join_table join_type join_table 
    [ON (join_condition)] 
    

    其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。
    join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。
    内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连 接、自然连接和不等连接三种。
    外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有 符合搜索条件的数据行。
    交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

    连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。
    无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:

    SELECT p1.pub_id,p2.pub_id,p1.pr_info 
    FROM pub_info AS p1 INNER JOIN pub_info AS p2 
    ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) 
    

    (一)内连接

    内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

    1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

    2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

    3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

    例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

    SELECT *  
    FROM authors AS a INNER JOIN publishers AS p   
    ON a.city=p.city 
    

    又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):

    SELECT a.*,p.pub_id,p.pub_name,p.country 
    FROM authors AS a INNER JOIN publishers AS p 
    ON a.city=p.city 
    

    (二)外连接

    内 连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边 接表(全外连接)中的所有数据行。

    如下面使用左外连接将论坛内容和作者信息连接起来:

    SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b 
    ON a.username=b.username
    

    下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:

    SELECT a.*,b.* 
    FROM city as a FULL OUTER JOIN user as b 
    ON a.username=b.username 
    

    (三)交叉连接

    交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

    例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等

    于6*8=48行。

    SELECT type,pub_name 
    FROM titles CROSS JOIN publishers 
    ORDER BY type
    

    两个主要的连接类型是内连 接和外连 接。到目前为止,所有示例中使用的都是内连 接。内连 接只保留交叉积中满足连接条件的那些行。如果某行在一个表中存在,但在另一个表中不存在,则结果表中不包括该信息。
    外连 接是内连 接和左表和/或右表中未包括内连 接中的那些行的并置。当对两个表执行外连 接时,可任意将一个表指定为左表而将另一个表指定为右表。外连 接有三种类型:

    左外连 接包括内连 接和左表中未包括在内连 接中的那些行。

    右外连 接包括内连 接和右表中未包括在内连 接中的那些行。

    全外连 接包括内连 接以及左表和右表中未包括在内连 接中的行。
    内连 接一般是检索两个表里连接字段都存在的数据。
    左连接的意思是,查询左(语句前面)表里的所有内容,无论右边表里有没有。右边表里没有的内容用NULL代替。
    右连接和左连接相反。

    数据表的连接有:
    1、内连 接(自然连接): 只有两个表相匹配的行才能在结果集中出现
    2、外连 接: 包括
    (1)左外连 接(左边的表不加限制)
    (2)右外连 接(右边的表不加限制)
    (3)全外连 接(左右两表都不加限制)
    3、自连接(连接发生在一张基表内)

    一.先看一些最简单的例子

    例子

    Table A
    aid adate
    1 a1
    2 a2
    3 a3

    TableB

    bid bdate
    1 b1
    2 b2
    4 b4
    两个表a,b相连接,要取出id相同的字段
    select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
    此时的取出的是:
    1 a1 b1
    2 a2 b2

    那么left join 指:

    select * from a left join b on a.aid = b.bid
    

    首先取出a表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    3 a3 空字符

    同样的也有right join
    指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
    此时的取出的是:
    1 a1 b1
    2 a2 b2
    4 空字符 b4

    LEFT JOIN 或 LEFT OUTER JOIN。
    左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值

    二. left join/right join/inner join操作演示
    表A记录如下:
    aID aNum
    1 a20050111
    2 a20050112
    3 a20050113
    4 a20050114
    5 a20050115

    表B记录如下:
    bID bName
    1 2006032401
    2 2006032402
    3 2006032403
    4 2006032404
    8 2006032408

    实验如下:

    1. left join
      sql语句如下:
    SELECT*FROM A
    LEFTJOIN B
    ON A.aID= B.bID
    

    结果如下:
    aID aNum bID bName
    1 a20050111 1 2006032401
    2 a20050112 2 2006032402
    3 a20050113 3 2006032403
    4 a20050114 4 2006032404
    5 a20050115 NULL NULL
    (所影响的行数为 5 行)

    结果说明:
    left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
    换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
    B表记录不足的地方均为NULL.

    1. right join
      sql语句如下:
    SELECT*FROM A
    RIGHTJOIN B
    ON A.aID= B.bID
    

    结果如下:
    aID aNum bID bName
    1 a20050111 1 2006032401
    2 a20050112 2 2006032402
    3 a20050113 3 2006032403
    4 a20050114 4 2006032404
    NULL NULL 8 2006032408
    (所影响的行数为 5 行)

    结果说明:
    仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

    3.inner join
    sql语句如下:

    SELECT*FROM A
    INNERJOIN B
    ON A.aID= B.bID
    

    结果如下:
    aID aNum bID bName
    1 a20050111 1 2006032401
    2 a20050112 2 2006032402
    3 a20050113 3 2006032403
    4 a20050114 4 2006032404

    结果说明:
    很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

    展开全文
  • 存放在数据库中数据的特点:1.永久存储 2.有组织 3.可共享 数据库管理系统是一个能够科学地组织和存储数据,高效地获取和维护数据的系统软件,是位于用户与操作系统之间的数据管理软件。 数据库管理系统主要功能包

    第一章 数据库介绍

    1.1数据库技术概述

    学习目标:
    1.描述数据库技术相关概念;
    2.列举主要的关系型数据库;
    3.区别不同的关系型数据架构;
    4.描述并识别关系型数据库的主要应用场景。

    • 记录是在计算机中表示和存储数据的一种格式或一种方法。
    • 数据库是存放数据的仓库,是大量数据的集合。(数据库是长期存放在计算机内,有组织的、可共享的,大量数据集合。)
    • 存放在数据库中数据的特点:1.永久存储 2.有组织 3.可共享
    • 数据库管理系统是一个能够科学地组织和存储数据,高效地获取和维护数据的系统软件,是位于用户与操作系统之间的数据管理软件。
    • 数据库管理系统主要功能包括:1.数据定义功能;2.数据组织、存储和管理功能;3.数据操纵功能;4.数据库的事务管理和运行管理功能;5.数据库的建立和维护功能;6.与其他软件系统的通信功能等。
    • 数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

    思考题

    1. 存放在数据库中数据的特点是(ABD)A.永久存储 B.有组织 C.独立性 D.可共享
    2. 属于数据库系统这个概念范围的组成部分有(ABCD)A.数据库管理系统 B.数据库 C.应用开发工具 D.应用程序
    3. 数据库应用程序可以不经过数据库管理系统而直接读取数据库文件(False)

    1.2数据库技术发展史

    1.2.1 数据库系统的优势

    • 整体数据的结构化:数据面向整个系统而不是单个应用,被多个应用共享。
    • 数据的共享性高,冗余度低且易扩充。
    • 数据独立性高:①物理独立性:应用程序与数据库中数据的物理存储是相互独立的。②逻辑独立性:应用程序与数据库的逻辑结构是相互独立的。
    • 统一管理与控制:①数据的安全性保护;②数据的完整性检查;③并发控制;④数据库恢复。

    1.2.2 数据库系统发展特点

    • 数据库系统已经成为计算机信息系统和智能应用系统的核心技术之一和重要基础。
    • 数据库系统的发展特点:①数据库的发展集中表现在数据模型的发展上;②与其他计算机技术交叉结合;③面向应用领域发展数据库新技术。

    1.2.3 三大经典数据模型:层次、网状、关系模型

    • 层次模型:①有且只有一个节点没有双亲,该节点被称为根节点(root)。②根节点以外的其他节点有且只有一个双亲节点。
    • 网状模型:①允许一个以上的节点无双亲。②一个节点可以有多于一个的双亲。
    • 关系模型:①建立在严格的数据概念基础上。②关系必须是规范化的。③关系的分量必须是一个不可分的数据项。

    1.2.4 结构化查询语言(Structured Query Language)

    SQL语言:

    1. 高级的非过程化编程语言,允许用户在高层数据结构上工作;
    2. 不要求用户指定数据存放方法;
    3. 不需要用户了解具体数据存放方式;
    4. 底层结构完全不同的各种关系型数据库系统可以使用相同的SQL语言作为数据操作和管理的接口。

    1.2.5 关系型数据库ACID特性:

    • 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中的操作,要么都做,要么都不做。
    • 一致性(Consistency):事物的执行结果必须是使数据库从一个一致性状态转到另一个一致性状态。
    • 隔离性(Isolation):数据库中一个事务的执行不能被其他事务干扰。即一个事物的内部操作及使用的数据对其他事务是隔离的,并发执行的各个事务不能相互干扰。
    • 持久性(Durability):事务一旦提交,对数据库中数据的改变是永久的。提交后的操作或者故障,不会对事务的操作结果产生任何影响。。

    1.2.6 其他数据模型

    面向对象数据模型(ObjectOrientedDataModel,OO模型):

    1. 将语义数据模型和面向对象程序设计方法结合起来,用一系列面向对象核心概念构成模型基础。
    2. 由于面向对象数据库操作语言过于复杂,没有得到开发人员认可。

    XML数据模型:

    1. 随着互联网迅速发展,出现了大量的半结构化和非结构化数据源,XML成为网上交换数据的标准之一以及研究热点,相应地出现了半结构化数据的XML数据模型。
    2. 纯XML数据库基于XML节点树模型,可以支持XML数据管理,但是同样要解决传统关系型数据库所面临的各种问题。

    RDF数据模型:

    1. 互联网的信息没有统一表达方式,W3C提出资源描述框架(Resource Description Framework,RDF)来描述和注解互联网资源;
    2. RDF是描述互联网资源的标记语言,结构为(主语,谓词,宾语);
    3. 主要用于语义网、知识库的基础数据模型,是当前知识图谱技术的基石。

    1.2.7 数据管理技术的新挑战

    高度可扩展性和可伸缩性:

    1. 随着数据获取手段的自动化,多样化和智能化,导致数据量急剧增大。

    数据类型多样和异构处理能力:

    1. 结构化数据到半结构化/非结构化数据;
    2. 文本到图形图像,音频视频等多媒体数据;
    3. 流数据、队列数据。

    数据处理时效性要求:

    1. 传感、网络和通信技术发展对于数据快速流入和处理,实时性方面提出了更高要求。

    大数据时代来临:

    1. 传统关系型数据库面对海量异构、形式繁杂、高速增长、价值密度低的数据问题遇到全面挑战。
    2. NoSQL技术顺应大数据发展的需要,蓬勃发展。

    管理需求:

    • 高可扩展性
    • 高性能
    • 容错性
    • 高伸缩性

    4V特性:

    • Volume 数量
    • Variety 多样性
    • Veracity 速度
    • Velocity真实

    1.2.8 NoSQL技术特点和类型

    NoSQL(Not Only SQL):

    1. 非关系型的、分布式的、不保证满足ACID特性的一类数据管理系统。

    技术特点:

    1. 对数据进行分区(partitioning),利用大量节点并行处理获得高性能,同时能够采用横向扩展方式(scale out);
    2. 降低ACID一致性约束,允许暂时不一致,接受最终一致性。遵循BASE(Basically Available,Soft state,Eventual consistency)原则;
    3. 各数据分区提供备份(一般是三份),应对节点故障,提高系统可用性。

    常见NoSQL数据库技术:
    在这里插入图片描述


    1.2.9 主要NoSQL数据库简介

    在这里插入图片描述


    1.2.10 NewSQL浅谈

    NewSQL:

    1. 指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景。
    2. 能够支持SQL作为主要的使用语言。

    NewSQL的分类:

    1. 采用了新架构重新构建产品。
      ①Shared-nothing,多节点并发控制,分布式处理,利用复制实现容错,流式控制等技术架构。
      ②Google Spanner,H-Store,VoltDB等。

    2. 采用Transparent Sharding中间件技术。
      ①数据分片(sharding)的过程对于用户来说是透明的(transparent),用户的应用程序不需要作出变化。
      ②Oracle Mysql Proxy,MariaDB MaxSacle等。

    3. DAAS(Database-as-a-Service,数据库即服务)。
      ①云服务商提供的数据库产品,云服务商提供具备NewSQL特性的数据库产品。
      ②Amazon Aurora,阿里云的Oceanbase,腾讯云的CynosDB。


    思考题

    1. 数据管理的发展,历史上经历了哪几个阶段?(ACD)A.人工阶段 B.智能系统C.文件系统 D.数据库系统
    2. 允许一个以上的节点无双亲,一个节点可以有多于一个的双亲,这些特性对应的是哪种数据模型?(D)A.层次模型 B.关系模型 C.面向对象模型 D.网状模型
    3. 下面选项中属于NOSQL数据库的是:(ABCD)A.图数据库 B.文档数据库 C.键值数据库 D.列分组数据库
    4. NOSQL和NewSQL数据库的出现能够彻底颠覆和取代原有的关系型数据库系统。(False)

    1.3关系型数据库架构介绍

    1.3.1 数据库架构发展

    数据库架构变化:

    • 随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增加,数据库的架构需要随之变化,为上层应用提供稳定和高效的数据服务。
      在这里插入图片描述

    图片讲解:

    • 按照主机数量划分,可以将数据架构分成单机架构多机架构。所以,一个数据库主机的数据库架构叫单机架构;多于一个数据库主机的数据库架构叫多机架构
    • 多机架构,通过增加服务器数量来增加整个数据库服务的可用性和服务能力。
    • 单机架构进一步划分。数据库应用和数据库都部署在一个主机上,叫单主机架构;数据库应用和数据库部署在不同主机上,叫独立主机架构
    • 按照数据是否拆分成分片状态,可以将多机架构分成分组架构分片架构
    • 因为每个服务器拥有的角色不同,因而分组架构可以进一步划分成主备机架构主从式架构多主架构
    • 无论哪种分组方式,都是多个数据库结构相同,多个库存储的数据也完全相同,本质上是利用同步技术在多个库之间进行数据复制,而分片架构就是通过某种机制,把数据分片后,分散到不同主机里面。

    1.3.2 单机架构

    单机架构:

    • 为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开。应用服务可以增加服务器数量,进行负载均衡,增大系统并发能力。
      优点:
    • 部署集中,运维方便。
      缺点:
    • 可扩展性:数据库单机架构扩展性只有纵向扩展(Scale-up)。通过增加硬件配置来提升性能,但单台主机的硬件可配置的资源会遇到上限。
    • 存在单点故障:①扩容的时候往往需要停机扩容,服务停止。②硬件故障导致整个服务不可用,甚至数据丢失。③单机会遇到性能瓶颈。

    在这里啊啊啊


    1.3.3 分组架构——主备

    主备机架构:

    • 由单机架构衍生而来,主要为了解决单点故障问题。
    • 数据库部署在两台服务器,其中承担数据读写服务的服务器称为“主机”。
    • 另外一台服务器利用数据同步机制把主机的数据复制过来,称为“备机”。
    • 同一时点,只有一台服务器对外提供数据服务。

    优点:

    • 应用不需要针对数据库故障来增加开发量。
    • 相对单机架构提升了数据容错性。

    缺点:

    • 资源浪费,备机和主机同等配置,但长期范围内基本上资源限制,无法利用。
    • 性能压力还是集中在单机上,无法解决性能瓶颈问题。
    • 当出现故障时候,主备机切换需要一定的人工干预或者监控。
    • 主备机模式只是解决了数据高可用性问题,无法解决性能瓶颈,性能依然受制于单排(台)服务器的硬件配置。增加服务器数量不助于性能的整体提升。
      在这里插入图片描述

    1.3.4 分组架构——主从

    主从式架构:

    • 部署模式和主备机模式相似,备机(Backup)上升为从机(Slave),对外提供一定的数据服务。
    • (需要稍微改变一下应用程序的设计)通过读写分离方式分散压力:①写入、修改、删除操作,在写库(主机)上完成;
    • 把查询请求,分配到读库(从机)。

    优点:

    • 提升资源利用率,适合读多写少的应用场景。
    • 在大并发读的使用场景,可以使用负载均衡在多个主机间进行平衡。
    • 从机的扩展性比较灵活,扩容操作不会影响到业务进行。
      缺点:
    • 延迟问题,数据同步到从机数据库时会有延迟,所以应用必须能够容忍短暂的不一致性。对于一致性要求非常高的场景是不适合的。
    • 写操作的性能压力还是集中在主机上。
    • 主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换复杂度较高。
      在这里插入图片描述

    1.3.5 分组架构——多主

    多主架构:

    • 数据库服务器互为主从,同时对外提供完整的数据服务。多主架构也称双活、多活架构。

    优点:

    • 资源利用率较高的同时降低了单点故障的风险。

    缺点:

    • 双主机都接受写数据,要实现数据双向同步。双向复制同样会带来延迟问题,极端情况下有可能数据丢失。
    • 数据库数量增加会导致数据同步问题变得极为复杂,实际应用中多见双机模式。
      在这里插入图片描述

    1.3.6 共享存储多活架构

    共享存储的多活架构(SharedDisk):

    • 一种特殊的多主架构。
    • 数据库服务器共享数据存储,而多个服务器实现均衡负载。

    优点:

    • 多个计算服务器提供高可用服务,提供了高级别的可用性。可伸缩性,避免了服务器集群的单点故障问题。
    • 比较方便的横向扩展能够增加整体系统并行处理能力。

    缺点:

    • 实现技术难度大。
    • 当存储器接口带宽达到饱和的时候,增加节点并不能获得更高的性能,存储IO容易成为整个系统的性能瓶颈。
      在这里插入图片描述

    1.3.7 分片(Sharding)架构

    分片架构主要表现形式就是水平数据分片架构:

    • 把数据分散在多个节点上的分片方案,每一个分片包括数据库的一部分,称为一个shard。
    • 多个节点都拥有相同的数据库结构,但不同分片的数据之间没有交集,所有分区数据的并集构成数据总体。
    • 常见的分片算法有:根据列表值,范围取值和Hash值进行数据分片。

    优点:

    • 数据分散在集群内的各个节点上,所有节点可以独立性工作。
    • 充分发挥了集群的并行优势。
      在这里插入图片描述

    1.3.8 无共享(Share-Nothing)架构

    无共享架构:

    • 集群中每一个节点(处理单元)都完全拥有自己独立的CPU/内存/存储,不存在共享资源。
    • 各节点(处理单元)处理自己本地的数据,处理结果可以向上层汇总或者通过通信协议在节点间流转。
    • 节点是相互独立的,扩展能力强。整个集群拥有强大的并行处理能力。
    • 在硬件发展到当前时代,一个节点或一个物理主机上,可以部署多个处理单元,所以Share-Nothing最小单元可能不是物理主机,而是逻辑上的虚拟处理单元,比如一个物理主机具有4核cpu可以部署四个数据库实例,也是相当于拥有4个处理单元。
      在这里插入图片描述

    1.3.9 MPP架构(Massively Parallel Processing)

    MPP:大规模并行处理(MassivelyParallelProcessing):

    • MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。

    特征:

    • 任务并行执行,分布式计算。

    常见的MPP产品:

    • 无共享Master:Vertica,Teradata。
    • 共享Master:Greenplum,Netezza

    无共享Master:

    • 所有节点对等;
    • 可以通过任意节点查询或加载数据;
    • 不存在性能瓶颈和单点风险。
      在这里插入图片描述

    1.3.10 数据库架构特点对比

    在这里插入图片描述


    思考题

    1. 主备架构可以通过读写分离方式来提高整体的读写并发能力(B)
      A.True B.False

    解析:主从架构可以提供读写分离,主备架构中的“备”只是提高数据高可用性,不保证服务的性能提升。

    1. 哪种数据库架构具有良好的线性扩展能力?(B)
      A.主从架构 B.Shared-nothing架构 C.Shared-disk架构 D.主备架构
    2. 分片架构的特点就是通过一定的算法把数据分散在集群的各个数据库节点上,利用集群内服务器数量的优势进行并行计算。(A)
      A.True B.False

    1.4 关系型数据库主流应用场景

    1.4.1 联机事务处理(OnLineTransaction Processing):

    OLTP是传统关系数据库的主要应用:

    • 面向基本的,日常的事务处理,例如银行储蓄业务的存取交易,转账交易等。

    特点:

    • 大吞吐量:大量的短在线事务(插入、更新、删除),非常快速的查询处理。
    • 高并发,(准)实时响应。
    • 每个事务的数据量都非常小,比如一条客户信息,一个订单信息发生插入、更新、删除操作的时候影响的数据是有限的,OLTP场景对响应的时效性要求非常高,要求数据库系统能对大量的并发事务操作进行快速处理,每个事务的响应级别都是毫秒级别的,甚至更低,而且业务并发量很大,高并发是OLTP场景下最显著的特征之一。

    典型的OLTP场景:

    • 零售系统
    • 金融交易系统
    • 火车机票销售系统
    • 秒杀活动

    1.4.2 联机分析处理(OnLine Analytical Processing)

    OLAP

    • 联机分析处理的概念最早是E.F.Codd于1993年相对于OLTP系统而提出的。
    • 是指对数据的查询和分析操作,通常对大量的历史数据查询和分析。涉及到的历史周期比较长,数据量大,在不同层级上的汇总,聚合操作使得事务处理操作比较复杂。

    特点:

    • 主要面向侧重于复杂查询,回答一些“战略性”的问题。
    • 数据处理方面聚焦于数据的聚合,汇总,分组计算,窗口计算等“分析型”数据加工和操作。
    • 从多维度去使用和分析数据。
    • 相较于OLTP, OLAP更侧重于大数据量的事务型操作,通常是较为复杂的查询数据处理方面,则聚焦于数据的聚合,汇总,分组计算,窗口计算等“分析型”数据加工和操作,这种查询涉及到的数据历史周期比较长,数据量很大,而且一般会在不同层级上进行汇总、聚合、排序等操作,使得事务处理操作非常复杂,对于这种事故的查询,一般要求响应时间在秒级,甚至分钟级,常见的OLAP的使用场景就是常说的数据仓库,数据集市系统。

    典型的OLAP场景:

    • 报表系统,CRM系统。
    • 金融风险预测预警系统、反洗钱系统。
    • 数据集市,数据仓库。

    1.4.3 数据库性能衡量指标

    TPC(TransactionProcessingPerformanceCouncil,事务处理性能委员会):

    • 职责是制定商务应用基准测试标准(Benchmark)的规范、性能和价格度量,并管理测试结果的发布。
    • 制定的是标准规范而不是代码,任何厂家依据规范最优地构造自己系统进行评测。
    • 推出了很多基准测试标准,其中针对OLTP和OLAP分别有两个规范。

    TPC-C规范:

    • 面向OLTP系统,主要包括两个指标:
      ①流量指标:tpmC(tpm–transactions per minuete, 即每分钟测试系统处理的事务数量)。
      ②性价比指标:Price(测试系统价格)/tmpC。即达到基本单位需要达到的成本。

    TPC-H规范:

    • 面向OLAP类系统:
      ①流量指标:qphH–Query per hour,即每小时处理的复杂查询数量。
      ②需要考虑测试数据集合大小,分为不同的测试数据集,指定了22个查询语句,可以根据产品微调。
      ③测试场景:数据加载,Power能力测试和Througput测试。

    1.4.4 OLTP和OLAP对比分析

    在这里插入图片描述


    思考题

    1. 衡量OLTP系统的测试指标包括:(AB)
      A.tpmC B.Price/tmpC C.qphH D.qps
    2. OLAP系统适用下面哪些场景(ACD)
      A.报表系统 B.在线交易系统 C.多维分析,数据挖掘系统 D.数据仓库
    3. OLAP系统能够对大量数据进行分析处理,所以同样能够满足OLTP对于小数据量处理的性能需求(B)
      A.True B.False

    HTAP目标是使用一套系统能同时承载OLTP和OLAP两种应用场景。
    OLTP和OLAP都遵循关系型数据库ACID特性。

    展开全文
  • 数据库

    2021-01-15 14:52:26
    数据库存储数据的特点 1、数据存放到表中,表再存放数据库中 2、一个数据库可以有多张数据表,每张表均有一唯一的表名来标识自己 3、表中有一个或多个列,列也称为“字段” 4、数据表中是按行存储的 数据库相关...
  • 数据库在实际拥有广泛的应用,它主要用于存放和处理大批量的结构化的数据,能够快速的执行增删查改操作。本文主要是给大家介绍关系型数据库的特点以及Python操作数据库的核心API和开发流程。数据库可以简单理解为...
  • 详解数据库中的视图、临时表

    千次阅读 2013-10-27 20:33:21
    数据 库中我们可以看到除了建立基表之外我们还可以建立效率比较高视图,临时局部表,临时全局表。...数据库中只存放视图定义,而不存放视图包含的数据,这些数据存放在原来基表中。所以基表
  • 这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的...
  • 而要说清楚缘由,就得先介绍一下Tree这种结构首先是最简单二叉树我们知道,向二叉树插入或查找数据时,是以比较节点数据大小来决定存放在哪个子节点。如下图二叉树具有如下特点:1.左子树节点必小于上一级节点...
  • (1)、数据库(data base)是储存数据的仓库,是长期存放在计算机内,有组织,可共享的大量数据的集合。具有以下几种特点: 数据结构化 数据共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制 ...
  • 在关系数据库管理系统,表建立时各数据之间关系不必确定,常把一个实体所有信息存放在一个表。当检索数据时,通过连接操作查询出存放在多个表中的不同实体信息。连接操作给用户带来很大灵活性,他们可以...
  • 数据的特点:同时具有型和值。比如一个数据是int型的,那么如果它的值是有小数位的,就是一个错误的数据。 数据库(DB,DataBase):是数据的集合,这些数据以同样的结构存放在一起。 数据库管理系统(DBMS):是...
  • SQLite最大的特点是你可以把各种类型的数据保存到任何字段,而不用关心字段声明的数据类型是什么。 例如:可以Integer类型的字段中存放字符串,或者布尔型字段中存放浮点数,或者字符型字段中存放日期型值。...
  • 当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息。当两个或多个表存在相同意义字段时,便可以通过这些字段对不同表进行连接查询。如下将介绍多表之间内连接查询、外连接查询以及复合条件连接...
  • 也可以说数据库是一种存储结构,它允许使用各种格式输入、处理和检索数据,不必在每次需要数据的时候重新输入,而是直接在数据库中调用。 数据库具有以下特点: 实现数据共享 减少数据的亢余度 保证数据的独立性 ...
  • SQLite最大的特点是你可以把各种类型的数据保存到任何字段,而不用关心字段声明的数据类型是什么。 例如:可以Integer类型的字段中存放字符串,或者布尔型字段中存放浮点数,或者字符型字段中存放日期型值...
  • 数据库的基本了解

    2017-06-11 13:16:43
    数据库:是存放数据的仓库,所有的数据计算机存储设备上保存,而且所有保存的数据会按照一定的格式进行保存。数据库具有永久存储~有组织和可共享的三个基本特点数据库管理系统(DBMS):科学的组织和存储数据~...
  • 特点:面向资源有限设备, 没有服务器进程, 所有数据存放在同一文件跨平台, 可自由复制。 这里就不详细写了,贴一个可以直接调用方法: import android.content.ContentValues; import android.database....
  • 在关系数据库管理系统,表建立时各数据之间关系不必确定,常把一个实体所有信息存放在一个表。当检索数据时,通过连接操作查询出存放在多个表中的不同实体信息。连接操作给用户带来很大灵活性,他们可以...
  • 在关系数据库管理系统,表建立时各数据之间关系不必确定,常把一个实体所有信息存放在一个表。当检索数据时,通过连接操作查询出存放在多个表中的不同实体信息。连接操作给用户带来很大灵活性,他们可以...
  • 数据库中存放的是视图定义,不存放视图对应的数据数据在基本表中 视图作用就像一个函数,是根据用需要将其它基本表中部分信息集中一起,方便使用而创建,它起到重复、快捷使用作用,三级模式中处于...
  • Mysql数据库

    2020-06-03 13:04:14
    Mysql数据库 ...三、数据库存储数据的特点 1.数据存放到表,然后放到库 2.一个库可以有多张表,每张表具有唯一的表名,用来标识自己 3.表有一个或多个列,列又称为 字段 ,相当于Java
  • 一、MySQL的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),mysql以文件...特点 提高数据的获取效率,也是数据库优化的一部分。 多表连接时,作为条件加速连接的速度 。 分组和排序查...
  • 关于数据库你必须知道事~

    千次阅读 2021-02-04 12:08:50
    数据库基础理论一、数据库二、数据库管理系统(DBMS)三、数据库系统(DBS)的组成四、数据库系统的特点五、数据库应用系统六、数据库系统的体系结构七、概念模型八、常用的数据模型关系模型的基本术语关系的性质...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 763
精华内容 305
关键字:

存放在数据库中数据的特点