免费智能真题库 > 历年试卷 > 系统架构设计师 > 2018年下半年 系统架构设计师 下午试卷 论文
  第4题      
  知识点:   大数据应用   数据模型   大数据   关系数据库   列存储   数据库   数据库技术   数据类型

 
论NoSQL数据库技术及其应用
随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL(Not only SQL )的产生就是为了解决大规模数据集合及多种数据类型带来的挑战,尤其是大数据应用难题。目前NoSQL数据库并没有一个统一的架构,根据其所采用的数据模型可以分为4类:键值(Key-Value)存储数据库列存储数据库、文档型数据库和图(Graph)数据库
 
问题:4.1   请围绕"NoSQL数据库技术及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细论述常见的NoSQL数据库技术及其所包含的主要内容,并说明NoSQL数据库的主要适用场景。
3.结合你具体参与管理和开发的实际项目,说明具体采用哪种NoSQL数据库技术,并说明架构设计过程及其应用效果。
 
 
 

   知识点讲解    
   · 大数据应用    · 数据模型    · 大数据    · 关系数据库    · 列存储    · 数据库    · 数据库技术    · 数据类型
 
       大数据应用
        大数据可以各行各业应用,如金融服务、医疗保健、零售业、制造业、政府等。
 
       数据模型
        在数据模型下,对于一个预先确定的输入环境,软件的可靠度定义为在n次连续运行中软件完成指定任务的概率。其基本方法如下:
        设需求说明所规定的功能为F,而程序实现的功能为F',预先确定的输入集为E={ei:i=1,2,…,n},令导致软件差错的所有输入的集合为Ee,即Ee={ej:ejEandF'(ej)≠Fej)},则软件运行一次出现差错的概率为:
        
        一次运行正常的概率为R1=1-R1
        在上述讨论中,假设所有输入出现的概率相等。如果不相等,且ei出现的概率为pii=1,2,…,n),则软件运行一次出现差错的概率为:
        
        其中:
        
        于是,软件的可靠度(n次运行不出现差错的概率)为:
        
        显然,只要知道每次运行的时间,上述数据模型中的Rn)就很容易转换成时间模型中的Rt)。
 
       大数据
               大数据相关概念
                      大数据概念
                      大数据的应用和技术是在互联网快速发展中诞生的,起点可追溯到2000年前后。当时互联网网页爆发式增长,每天新增约700万个网页,到2000年底全球网页数达到40亿,用户检索信息越来越不方便。谷歌等公司率先建立了覆盖数十亿网页的索引库,开始提供较为精确的搜索服务,大大提升了人们使用互联网的效率,这是大数据应用的起点。当时搜索引擎要存储和处理的数据,不仅数量之大前所未有,而且以非结构化数据为主,传统技术无法应对。为此,谷歌提出了一套以分布式为特征的全新技术体系,即后来陆续公开的分布式文件系统(Google File System,GFS)、分布式并行计算(MapReduce)和分布式数据库(BigTable)等技术,以较低的成本实现了之前技术无法达到的规模。这些技术奠定了当前大数据技术的基础,可以认为是大数据技术的源头。
                      伴随着互联网产业的崛起,这种创新的海量数据处理技术在电子商务、定向广告、智能推荐、社交网络等方面得到应用,取得巨大的商业成功。这启发全社会开始重新审视数据的巨大价值,于是金融、电信等拥有大量数据的行业开始尝试这种新的理念和技术,取得初步成效。与此同时,业界也在不断对谷歌提出的技术体系进行扩展,使之能在更多的场景下使用。2011年,麦肯锡、世界经济论坛等知名机构对这种数据驱动的创新进行了研究总结,随即在全世界兴起了一股大数据热潮。
                      虽然大数据已经成为全社会热议的话题,但至今“大数据”尚无公认的统一定义。我们认为,认识大数据要把握“资源、技术、应用”三个层次。大数据是具有体量大、结构多样、时效强等特征的数据;处理大数据需采用新型计算架构和智能算法等新技术;大数据的应用强调以新的理念应用于辅助决策、发现新的知识,更强调在线闭环的业务流程优化。因此可以说,大数据不仅“大”,而且“新”,是新资源、新工具和新应用的综合体。
                      大数据特点
                      业界通常用Volume、Variety、Value、Velocity这4个V来概括大数据的特点:
                      (1)数据体量巨大(Volume)。IDC研究表明,数字领域存在着1.8万亿吉字节的数据。企业数据正在以55%的速度逐年增长。实体世界中,数以百万计的数据采集传感器被嵌入到各种设备中,在数字化世界中,消费者每天的生活(通信、上网浏览、购物、分享、搜索)都在产生着数量庞大的数据。
                      (2)数据类型繁多(Variety)。数据可分为结构化数据、半结构化数据和非结构化数据。相对于以往便于存储的以文本为主的结构化数据,音频、视频、图片、地理位置信息等类型的非结构化数据量占比达到了80%,并在逐步提升,有用信息的提取难度不断增大。
                      (3)价值密度低(Value)。价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不间断监控过程中,可能有用的数据仅仅只有一两秒。
                      (4)时效性高(Velocity)。这是大数据区分于传统数据挖掘最显著的特征。数据的价值除了与数据规模相关,还与数据处理周期成正比关系。也就是,数据处理的速度越快、越及时,其价值越大,发挥的效能越大。
               大数据技术
                      大数据技术体系
                      大数据来源于互联网、企业系统和物联网等信息系统,经过大数据处理系统的分析挖掘,产生新的知识用以支撑决策或业务的自动智能化运转。从数据在信息系统中的生命周期看,大数据从数据源经过分析挖掘到最终获得价值一般需要经过5个主要环节,包括数据准备、数据存储与管理、计算处理、数据分析和知识展现,技术体系如下图所示。每个环节都面临不同程度的技术上的挑战。
                      
                      大数据技术框架
                      (1)数据准备环节。在进行存储和处理之前,需要对数据进行清洗、整理,传统数据处理体系中称为ETL(Extracting,Transforming,Loading)过程。与以往数据分析相比,大数据的来源多种多样,包括企业内部数据库、互联网数据和物联网数据,不仅数量庞大、格式不一,质量也良莠不齐。这就要求数据准备环节一方面要规范格式,便于后续存储管理,另一方面要在尽可能保留原有语义的情况下去粗取精、消除噪声。
                      (2)数据存储与管理环节。当前全球数据量正以每年超过50%的速度增长,存储技术的成本和性能面临非常大的压力。大数据存储系统不仅需要以极低的成本存储海量数据,还要适应多样化的非结构化数据管理需求,具备数据格式上的可扩展性。
                      (3)计算处理环节。需要根据处理的数据类型和分析目标,采用适当的算法模型,快速处理数据。海量数据处理要消耗大量的计算资源,对于传统单机或并行计算技术来说,速度、可扩展性和成本上都难以适应大数据计算分析的新需求。分而治之的分布式计算成为大数据的主流计算架构,但在一些特定场景下的实时性还需要大幅提升。
                      (4)数据分析环节。数据分析环节需要从纷繁复杂的数据中发现规律提取新的知识,是大数据价值挖掘的关键。传统数据挖掘对象多是结构化、单一对象的小数据集,挖掘更侧重根据先验知识预先人工建立模型,然后依据既定模型进行分析。对于非结构化、多源异构的大数据集的分析,往往缺乏先验知识,很难建立显式的数学模型,这就需要发展更加智能的数据挖掘技术。
                      (5)知识展现环节。在大数据服务于决策支撑场景下,以直观的方式将分析结果呈现给用户,是大数据分析的重要环节。如何让复杂的分析结果易于理解是主要挑战。在嵌入多业务中的闭环大数据应用中,一般是由机器根据算法直接应用分析结果而无需人工干预,这种场景下知识展现环节则不是必需的。
                      总的来看,大数据对数据准备环节和知识展现环节来说只是量的变化,并不需要根本性的变革。但大数据对数据分析、计算和存储三个环节影响较大,需要对技术架构和算法进行重构,是当前和未来一段时间大数据技术创新的焦点。下面简要分析上述3个环节面临的挑战及发展趋势。
                      大数据技术创新
                      大数据技术体系纷繁复杂,其中一些技术创新格外受到关注。随着社交网络的流行导致大量非结构化数据出现,传统处理方法难以应对,数据处理系统和分析技术开始不断发展。从2005年Hadoop的诞生开始,形成了数据分析技术体系这一热点。伴随着量急剧增长和核心系统对吞吐量以及时效性的要求提升,传统数据库需向分布式转型,形成了事务处理技术体系这一热点。然而时代的发展使得单个企业甚至行业的数据都难以满足要求,融合价值更加显现,形成了数据流通技术体系这一热点。
                             数据分析技术
                             从数据在信息系统中的生命周期看,数据分析技术生态主要有5个发展方向,包括数据采集与传输、数据存储与管理、计算处理、查询与分析、可视化展现。在数据采集与传输领域渐渐形成了Sqoop、Flume、Kafka等一系列开源技术,兼顾离线和实时数据的采集和传输。在存储层,HDFS已经成为了大数据磁盘存储的事实标准,针对关系型以外的数据模型,开源社区形成了K-V(key-value)、列式、文档、图这四类NoSQL数据库体系,Redis、HBase、Cassandra、MongoDB、Neo4j等数据库是各个领域的领先者。计算处理引擎方面,Spark已经取代MapReduce成为了大数据平台统一的计算平台,在实时计算领域Flink是Spark Streaming强力的竞争者。在数据查询和分析领域形成了丰富的SQL on Hadoop的解决方案,Hive、HAWQ、Impala、Presto、Spark SQL等技术与传统的大规模并行处理(Massively Parallel Processor,MPP)数据库竞争激烈,Hive还是这个领域当之无愧的王者。在数据可视化领域,敏捷商业智能(Business Intelligence,BI)分析工具Tableau、QlikView通过简单的拖拽来实现数据的复杂展示,是目前最受欢迎的可视化展现方式。
                             相比传统的数据库和MPP数据库,Hadoop最初的优势来源于良好的扩展性和对大规模数据的支持,但失去了传统数据库对数据精细化的操作,包括压缩、索引、数据的分配裁剪以及对SQL的支持度。经过10多年的发展,数据分析的技术体系渐渐在完善自己的不足,也融合了很多传统数据库和MPP数据库的优点,从技术的演进来看,大数据技术正在发生以下变化:
                             (1)更快。Spark已经替代MapReduce成为了大数据生态的计算框架,以内存计算带来计算性能的大幅提高,尤其是Spark 2.0增加了更多了优化器,计算性能进一步增强。
                             (2)流处理的加强。Spark提供一套底层计算引擎来支持批量、SQL分析、机器学习、实时和图处理等多种能力,但其本质还是小批的架构,在流处理要求越来越高的现在,Spark Streaming受到Flink激烈的竞争。
                             (3)硬件的变化和硬件能力的充分挖掘。大数据技术体系本质是数据管理系统的一种,受到底层硬件和上层应用的影响。当前硬件的芯片的发展从CPU的单核到多核演变转化为向GPU、FPGA、ASIC等多种类型芯片共存演变。而存储中大量使用SSD来代替SATA盘,NVRAM有可能替换DRAM成为主存。大数据技术势必需要拥抱这些变化,充分兼容和利用这些硬件的特性。
                             (4)SQL的支持。从Hive诞生起,Hadoop生态就在积极向SQL靠拢,主要从兼容标准SQL语法和性能等角度来不断优化,层出不穷的SQL on Hadoop技术参考了很多传统数据库的技术。而Greenplum等MPP数据库技术本身从数据库继承而来,在支持SQL和数据精细化操作方面有很大的优势。
                             (5)深度学习的支持。深度学习框架出现后,和大数据的计算平台形成了新的竞争局面,以Spark为首的计算平台开始积极探索如何支持深度学习能力,TensorFlow on Spark等解决方案的出现实现了TensorFlow与Spark的无缝连接,更好地解决了两者数据传递的问题。
                             事务处理技术
                             随着移动互联网的快速发展,智能终端数量呈现爆炸式增长,银行和支付机构传统的柜台式交易模式逐渐被终端直接交易模式替代。以金融场景为例,移动支付以及普惠金融的快速发展,为银行业、支付机构和金融监管机构带来了海量高频的线上小额资金支付行为,生产业务系统面临大规模并发事务处理要求的挑战。
                             传统事务技术模式以集中式数据库的单点架构为主,通过提高单机的性能上限适应业务的扩展。而随着摩尔定律的失效(底层硬件的变化),单机性能扩展的模式走到了尽头,而数据交易规模的急速增长(上层应用的变化)要求数据库系统具备大规模并发事务处理的能力。大数据分析系统经过10多年的实践,积累了丰富的分布式架构的经验,Paxos、Raft等一致性协议的诞生为事务系统的分布式铺平了道路。新一代分布式数据库技术在这些因素的推动下应运而生。
                             如下图所示,经过多年发展,当前分布式事务架构正处在快速演进的阶段,综合学术界以及产业界工作成果,目前主要分为三类:
                             
                             事务型数据库架构演进图
                             (1)基于原有单机事务处理关系数据库的分布式架构改造:利用原有单机事务处理数据库的成熟度优势,通过在独立应用层面建立起数据分片和数据路由的规则,建立起一套复合型的分布式事务处理数据库的架构。
                             (2)基于新的分布式事务数据库的工程设计思路的突破。通过全新设计关系数据库的核心存储和计算层,将分布式计算和分布式存储的设计思路和架构直接植入数据库的引擎设计中,提供对业务透明和非侵入式的数据管理和操作/处理能力。
                             (3)基于新的分布式关系数据模型理论的突破。通过设计全新的分布式关系数据管理模型,从数据组织和管理的最核心理论层面,构造出完全不同于传统单机事务数据库的架构,从数据库的数据模型的根源上解决分布式关系数据库的架构。
                             分布式事务数据库进入到各行各业面临诸多挑战,其一是多种技术路线,目前没有统一的定义和认识;其二是除了互联网公司有大规模使用外,其他行业的实践刚刚开始,需求较为模糊,采购、使用、运维的过程缺少可供参考的经验,需要较长时间的摸索;其三是缺少可行的评价指标、测试方法和测试工具来全方位比较当前的产品,规范市场,促进产品的进步。故应用上述技术进行交易类业务进行服务时,应充分考虑“可持续发展”“透明开放”“代价可控”三原则,遵循“知识传递先行”“测试评估体系建立”“实施阶段规划”三步骤,并认识到“应用过度适配和改造”“可用性管理策略不更新”“外围设施不匹配”三个误区。
                             大数据事务处理类技术体系的快速演进正在消除日益增长的数字社会需求同旧式的信息架构缺陷,未来人类行为方式、经济格局以及商业模式将会随大数据事务处理类技术体系的成熟而发生重大变革。
                             数据流通技术
                             数据流通是释放数据价值的关键环节。然而,数据流通也伴随着权属、质量、合规性、安全性等诸多问题,这些问题成为了制约数据流通的瓶颈。为了解决这些问题,大数据从业者从诸多方面进行了探索。目前来看,从技术角度的探索是卓有成效和富有潜力的。
                             从概念上讲,基础的数据流通只存在数据供方和数据需方这两类角色,数据从供方通过一定手段传递给需方。然而,由于数据权属和安全的需要,不能简单地将数据直接进行传送。数据流通的过程中需要完成数据确权、控制信息计算、个性化安全加密等一系列信息生产和再造,形成闭合环路。
                             安全多方计算和区块链是近年来常用的两种技术框架。由于创造价值的往往是对数据进行的加工分析等运算的结果而非数据本身,因此对数据需方来说,本身不触碰数据、但可以完成对数据的加工分析操作,也是可以接受的。安全多方计算这个技术框架就实现了这一点。其围绕数据安全计算,通过独特的分布式计算技术和密码技术,有区分地、定制化地提供安全性服务,使得各参与方在无需对外提供原始数据的前提下实现了对与其数据有关的函数的计算,解决了一组互不信任的参与方之间保护隐私的协同计算问题。区块链技术中多个计算节点共同参与和记录,相互验证信息有效性,既进行了数据信息防伪,又提供了数据流通的可追溯路径。业务平台中授权和业务流程的解耦对数据流通中的溯源、数据交易、智能合约的引入有了实质性的进展。
               大数据产业体系
               随着大数据技术不断演进和应用持续深化,以数据为核心的大数据产业体系正在加速构建。大数据产业体系中主要包括大数据解决方案提供商、大数据处理服务提供商和数据资源提供商三个角色,分别向大数据的应用者提供大数据服务、解决方案和数据资源,如下图所示。
               
               大数据产业体系
                      大数据解决方案提供商
                      大数据解决方案提供商面向企业用户提供大数据一站式部署方案,覆盖数据中心和服务器等硬件、数据存储和数据库等基础软件、大数据分析应用软件以及技术运维支持等方面内容。其中,大数据基础软件和应用软件是大数据解决方案中的重点内容。当前,企业提供的大数据解决方案大多基于Hadoop开源项目,例如,IBM基于Hadoop开发的大数据分析产品BigInsights、甲骨文融合了Hadoop开源技术的大数据一体机、Cloudera的Hadoop商业版等。大数据解决方案提供商中,主要包括传统IT厂商和新兴的大数据创业公司。传统IT厂商主要有IBM、HP等解决方案提供商以及甲骨文、Teradata等数据分析软件商。它们大多以原有IT解决方案为基础,融合Hadoop,形成融合了结构化和非结构化两条体系的“双栈”方案。通过一系列收购来提升大数据解决方案服务能力,成为这些IT巨头的主要策略。
                      国际上也诞生了一批专门提供非结构化数据处理方案的新兴创业公司。这些公司包括Cloudera、Hortonworks、MapR等,它们主要基于Hadoop开源项目,开发Hadoop商业版本和基于Hadoop的大数据分析工具,单独或者与传统IT厂商合作提供企业级大数据解决方案。这些新兴大数据企业成为资本市场的热点。国内华为、联想、浪潮、曙光等一批IT厂商也都纷纷推出大数据解决方案。但总体上,国内大数据解决方案提供商实力较弱,产品一些关键行业还未形成影响力,新兴大数据解决方案初创企业也凤毛麟角。
                      大数据处理服务提供商
                      大数据处理服务提供商主要以服务的方式为企业和个人用户提供大数据海量数据分析能力和大数据价值挖掘服务。按照服务模式进行划分,大数据处理服务提供商可以分为以下四类。
                      第一类是在线纯分析服务提供商。此类服务商主要是互联网企业、大数据分析软件商和新创企业等,通过SaaS或PaaS云服务形式为用户提供服务。典型的服务如谷歌提供的大数据分析工具Big Query、亚马逊提供的云数据仓库服务RedShift、微软的Azure HDInsigh1010data提供的商业智能服务等。国内一些云服务商也逐步开始提供大数据相关云服务,如阿里云的开放数据处理服务(ODPS)、百度的大数据引擎、腾讯的数据云等。
                      第二类是既提供数据又提供分析服务的在线提供商。此类服务商主要是拥有海量用户数据的大型互联网企业,主要以SaaS形式为用户提供大数据服务,服务背后以自有大数据资源为支撑。典型的服务如谷歌Facebook的自助式广告下单服务系统、Twitter基于实时搜索数据的产品满意度分析等。国内百度推出的大数据营销服务“司南”就属于此类。
                      第三类是单纯提供离线分析服务的提供商。此类服务商主要为企业提供专业、定制化的大数据咨询服务和技术支持,主要集中为大数据咨询公司、软件商等,例如专注于大数据分析的奥浦诺管理咨询公司(Opera Solutions)、数据分析服务提供商美优管理顾问公司(Mu Sigma)等。
                      第四类是既提供数据又提供离线分析服务的提供商。此类服务商主要集中在信息化水平较高、数据较为丰富的传统行业。例如日本日立集团(Hitachi)于2013年6月初成立的日立创新分析全球中心,其广泛收集汽车行驶记录、零售业购买动向、患者医疗数据、矿山维护数据和资源价格动向等庞大数据信息,并基于收集的海量信息开展大数据分析业务。又如美国征信机构Equifax基于全球8000亿条企业和消费者行为数据,提供70余项面向金融的大数据分析离线服务。
                      大数据资源提供商
                      既然数据成为了重要的资源和生产要素,必然会产生供应与流通需求。数据资源提供商因此应运而生,它是大数据产业的特有环节,也是大数据资源化的必然产物。数据资源提供商,包括数据拥有者和数据流通平台两个主要类型。数据拥有者可以是企业、公共机构或者个人。数据拥有者通常直接以免费或有偿的方式为其他有需求的企业和用户提供原数据或者处理过的数据。例如美国电信运营商Verizon推出的大数据应用精准营销洞察(Precision Market Insights),将向第三方企业和机构出售其匿名化和整合处理后的用户数据。国内阿里巴巴公司推出的淘宝量子恒道、数据魔方和阿里数据超市等,属于此种类型。
                      数据数据流通平台是多家数据拥有者和数据需求方进行数据交换流通的场所。按平台服务目的不同,可分为政府数据开放平台和数据交易市场。
                      (1)政府数据开放平台。主要提供政府和公共机构的非涉密数据开放服务,属于公益性质。全球不少国家已经加入到开放政府数据行动,推出公共数据库开放网站,例如美国数据开放网站Data.gov已有超过37万个数据集、1209个数据工具、309个网页应用和137个移动应用,数据源来自171个机构。国内地方政府数据开放平台开始出现,如国家统计局的国家数据网站、北京市政府和上海市政府的信息资源平台等数据开放平台正在建设过程中。
                      (2)数据交易市场。商业化的数据交易活动催生了多方参与的第三方数据交易市场。国际上比较有影响力的有微软的AzureData Marketplace、被甲骨文收购的BlueKai、DataMarket、Factual、Infochimps、DataSift等等,主要提供地理空间、营销数据和社交数据的交易服务。大数据交易市场发展刚刚起步,在市场机制、交易规则、定价机制、转售控制和隐私保护等方面还有很多工作要做。国内,2014年2月,在北京市和中关村管委会指导下,中关村大数据交易产业联盟成立,将在国内推动国内大数据交易相关规范化方面开展工作。
               大数据对电子商务的发展影响
                      大数据更好地支撑了电子商务营销精准化和实时化
                      电子商务发展到今天,其营销平台、营销方式都发生了很大的改变。电子商务平台、移动终端、社交网络以及物联网等设备的使用大大增加了消费者数据,而云计算、复杂分析系统等大数据处理手段,为人们整合各个渠道消费者数据、形成有用的营销信息提供了可能。与传统的电子商务数据处理方式相比,大数据处理方式更快捷、更精细,它给我们科学分析消费者偏好及其消费行为轨迹提供巨大帮助。特别是在移动设备进入电子商务领域后,地理位置服务信息处理使电子商务一对一精准营销成为可能,极大程度提升了电子商务营销的准确性,有力地支撑了电子商务营销的精准化与实时化。
                      大数据更好地支撑了电子商务高度差异化和个性化
                      在传统电子商务营销背景下,企业与消费者总是处于双向信息不对称状态。一方面企业很难掌握消费者的消费行为和消费习惯,另一方面消费者了解企业产品的信息渠道相对较窄。进入大数据时代后,企业可以通过科学分析海量数据来获得更加丰富的消费者信息,从而针对不同消费者消费需求,提供特定的产品和服务,以最大限度地提高其满意度。消费者可以通过移动终端等渠道及时向电子商务企业传递信息,为企业进行个性化服务提供依据。由此可以推断,未来电子商务价值创造将会围绕消费者个性化需求展开,并将消费者纳入到企业产品设计与生产过程,实现共同的价值创造。
                      大数据进一步推进了价值链、供应链一体化
                      大数据等新型信息技术可以促进各个渠道的跨界数据整合,使所有围绕消费者消费行为的价值链、供应链企业成为一个整体。如大数据可以将地理位置不同、从事行业不同的研发、生产、加工、营销、仓储、配送、服务等各环节企业在满足消费者消费需求这一共同目的下组成动态联盟,通过彼此协作和创造,真正为消费者提供个性化产品和服务。相对于传统意义上的供应链,通过大数据连接起来的动态联盟反应速度更快、智能化程度更高,这既有利于联盟内企业的信息、资源共享,也有利于联盟内企业的分工协作,从而创造新的价值。
                      大数据推动了新型增值服务模式发展
                      电子商务中应用众多的新型信息技术产生了生产、消费、金融、物流等一系列大数据,这些本属于不同领域的大数据在被综合运用的过程中会产生新的融合,从而形成新的增值服务。如电子商务中产生的买卖双方信息、物流信息、金融信息,如果加以整合肯定能够使企业在市场竞争中处于比较有利的位置。在此基础上,企业还可以积极开展类似金融信用服务、供应链整合等增值服务。随着大数据的广泛应用,加之大数据分析手段创新,已经产生了互联网金融等多个增值服务,给包括电子商务企业在内的众多中小企业提供了新的发展空间。假以时日,大数据还会催生更多新型增值服务模式、产生众多的产业。
 
       关系数据库
               关系模型概述
               关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构单一,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。关系模型中常用的关系操作包括选择、投影、连接、除、并、交、差等查询操作,和增加、删除、修改操作两大部分。早期的关系操作能力通常用关系代数和关系演算来表示,关系代数是用对关系的运算来表达查询要求的方式,关系演算是用谓词来表达查询要求的方式。另外还有一种介于关系代数和关系演算之间的语言SQL,它不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是关系数据库的标准语言。
               关系数据结构及形式化定义
               首先介绍一些概念:
               (1)域(Domain):域是一组具有相同数据类型的值的集合。
               (2)笛卡尔积(Cartesian Product):给定一组域D1, D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn) |di∈Di, i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组。元素中的每一个值di叫做一个分量。笛卡尔积可以用来表示二维表,表中的每行对应一个元组,每列对应一个域。
               (3)关系(Relation):D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R (D1, D2,…,Dn),这里R表示关系的名字,n是关系的目或度(Degree),关系中的每个元素是关系中的元组。
               关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。由于在笛卡尔积的定义中,域是可以相同的,所以为了加以区分,必须对每个列起一个名字,称之为属性,n目关系必须有n个属性。若关系中的某一属性组的值能够唯一标识一个元组,则称该属性组为候选码(Candidate Key)。若一个关系有多个候选码,则选定其中之一为主码(Primary Key)。主码的各个属性称为主属性(Prime Attribute)。不包含在任何候选码中的属性称为非码属性(Non-key Attribute)。当关系模式的所有属性组是这个关系模式的候选码时,称为全码(All-Key)。
               关系的完整性
               (1)实体完整性。
               若属性A是基本关系R的主属性,则属性A不能取空值。也就是说基本关系得所有主属性都不能取空值,而不仅是主码整体不能取空值。
               (2)参照完整性。
               现实世界中的实体之间往往存在某种联系,在关系模型中实体之间的联系用关系描述,这样就会存在着关系间的引用。例如,学生、课程、选课三个关系如下:
               学生(学号,姓名,性别,专业)
               课程(课程号,课程名,教师,学分)
               选课(学号,课程号,成绩)
               它们之间是多对多联系,存在着属性的引用,即选课关系引用了学生关系的主码和课程关系的主码,如画线所示。在选课关系中必须满足:①选课关系中的“学号”值必须是确实存在的学生的学号,即在学生关系中有该学生的记录;②选课关系中“课程号”也必须确实存在,即课程关系中有该课程的记录。也就是说,选课关系中某些属性的取值需要参照其他关系的属性的取值。
               设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系,关系R和S不一定是不同的关系。在上例中,“学号”和“课程号”是选课关系的外码,学生关系和课程关系是被参照关系,选课关系是参照关系。
               参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值或者取空值或者等于S中某个元组的主码值。
               (3)用户定义的完整性
               用户定义的完整性就是针对某一具体关系数据库的约束条件。例如属性的取值范围、属性间必须满足一定的函数关系等。
 
       列存储
        传统的关系型数据库都是以行为单位来进行数据的存储的,擅长进行以行为单位的数据处理,比如特定条件数据的获取。因此,关系型数据库也被称为面向行的数据库。相反,面向列的数据库是以列作为单位来进行数据的存储的,擅长进行以列为单位的数据处理。下表所示为面向行和面向列的数据库的比较。
        
        面向行和面向列的数据库比较
        面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度,所有它主要应用于需要处理大量数据的情况。另外,利用面向列的数据库的优势,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。
        列存储数据库,主要产品有Google的Bigtable、由Bigtable衍生的Hypertable和HBase、Cassandra这几个数据库。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       数据库技术
        计算机与人类相比的最大优势就是能够迅速准确地处理大量数据。因此,自从计算机发明以来,数据处理就是它的基本功能和关键技术。数据处理的中心问题是数据管理,即对数据的分类、组织、编码、存储、检索和维护等。而数据库技术正是数据处理技术发展到比较成熟后的产物。可以说,数据库技术是现代计算机应用的基础。电子商务以电子计算机及其网络技术取代传统方式来进行生产经营活动,当然离不开数据库技术的支持。数据库技术对电子商务的支持主要表现在两方面:
        存储和管理各种商务数据:这是数据库技术的基本功能。
        决策支持:近几年,随着数据仓库和数据挖掘技术的产生和发展,使企业可以科学地对数据库中海量的商务数据进行科学地组织、分析和统计,从而更好地服务于企业的决策支持。可以说,数据库技术是电子商务的一项支撑技术,在电子商务的建设中占有重要的地位。
               数据库技术基本理论
               电子商务是利用电子网络进行的商务活动,这里的电子网络主要是指Internet和基于Internet技术的Intranet(企业内部网)、Extranet(企业外部网)。其进行的商务活动不仅包含电子数据交换所涉及的电子交易,还包括电子函件交流、网上站点宣传和利用Internet技术改造的其他传统应用。但电子商务应用的前提是企业管理信息系统的广泛应用。数据库技术是企业管理信息系统的核心技术之一,所以,要深入理解电子商务就应该先了解数据库的一些基本理论。
                      数据模型
                      模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模型。
                      (1)概念数据模型,也称信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。
                      (2)基本数据模型。它是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型(Object Oriented Model)。
                      数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作和数据的约束条件。
                      .数据结构。是所研究的对象类型的集合,是对系统静态特性的描述。
                      .数据操作。对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及操作规则。如操作有检索、插入、删除和修改,操作规则有优先级别等。数据操作是对系统动态特性的描述。
                      .数据的约束条件。是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。
                      关系数据库
                      (1)基本概念。关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。关系模型有三部分组成:数据结构、关系操作集合、关系的完整性。
                      .数据结构。在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。
                      .关系操作。关系代数(或等价的关系演算)中并、交、差、选择、投影、连接等。关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求,关系语言的特点是高度的非过程化。其操作方式的特点是集合操作,即操作的对象和结果是集合,称为一次一集合的方式,而不是一次一记录的方式。
                      .关系完整性。实体完整性、参照完整性和用户自己定义的完整性。实体完整性是保证数据库中记录的唯一性,即每个记录的主键不能为空值也不能与其他记录的主键相同。参照完整性是保证表与表之间语意上的完整性,即当一个表引用在另一个表中定义的实体时,要保证这个实体的有效性。这两种完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。
                      (2)结构化查询语言(SQL)。结构化查询语言(Structured Query Language,SQL)的理论是在1974年被提出的,并在IBM公司的System R上实现。由于它功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中备受青睐,很快得以推广。后来,美国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句。所以,尽管当今不同品牌的关系数据库有这样或那样的差异,人们都可以通过标准SQL语句对数据库进行操作,这就大大减轻了用户的负担。
                      SQL虽被称为“查询语言”,其功能却不仅仅是查询,它的功能包括数据定义、数据操纵、数据库控制、事务控制四个方面,是一个综合、通用、功能强大的关系数据库语言。其中:
                      .数据定义。用于定义和修改数据库对象。如CREATE TABLE(创建表)、DROP TABLE(删除表)等。
                      .数据操纵。对数据的增、删、改和查询操作。如SELECT(查询数据)、INSERT(插入记录)、DELETE(删除记录)、UPDATE(修改数据)等。
                      .数据库控制。控制用户对数据库的访问权限。如GRANT(授予权利)、REVOKE(取消权利)等。
                      .事务控制。控制数据库系统事务的运行。如COMMIT(事务提交)、ROLLBACK(事务撤销)等。
                      SQL有如下几个比较突出的优点。
                      .一体化。SQL可以完成包括数据库定义、修改、删除、数据更新、数据查询等数据库生命周期中的全部活动,给用户使用带来很多方便。
                      .灵活。SQL有两种使用方式。一种是联机交互使用,另一种是嵌入某种高级程序设计语言的程序中。这两种方式的语法结构是统一的。这样既给用户带来了灵活的选择余地,又不会带来不一致的困扰。
                      .高度非过程化。与高级编程语言相比,SQL对数据库的操作方面是非常有优势的。使用SQL用户只需提出“做什么”,不用了解实现的细节,复杂的过程均由系统自动完成。
                      .语言简洁,易学易用。
                      (3)关系数据的规范化理论。为了使数据库设计的方法走向完备,人们提出规范化理论。规范化可以使关系的结构简化,更加有规律,存储尽量减少冗余,使数据库设计得更为合理。规范化的目的可以概括为以下几点:①保证库中每一个分量都不可再分;②消除冗余存储,简化检索操作;③消除插入异常和删除异常。
                      数据库系统的建立
                      数据库系统是企业整个管理信息系统的核心和基础,它的任务就是把系统中大量的数据按一定的模型组织起来,以便及时、准确地提供给用户。一个管理信息系统的各部分是否能紧密地结合在一起以及如何结合,关键在数据库。因此只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的管理信息系统。数据库系统是整个管理信息系统建设重要的组成部分。
                      建设数据库系统一般要分为两步:一是设计和建立高效的数据库(DB),二是设计和建立数据库管理系统(DBMS)。其基本过程如下图所示。
                      
                      数据库管理信息系统的建设过程
               数据仓库、联机分析处理和数据挖掘
               广义概念上的数据仓库是一种帮助企业作决策的体系化解决方案,它包括了三个方面的内容:数据仓库技术(Data Warehouse,DW)、联机分析处理技术(Online Analytical Processing,OLAP)和数据挖掘技术(Data Mining,DM)。
                      数据仓库技术
                      数据仓库是一种只读的、用于分析的数据库,常常作为决策支持系统的底层。它从大量的事务型数据库中抽取数据,并将其清理、转换为新的存储格式,即为了决策目标而把数据聚合在一种特殊的格式中。数据仓库之父W. H. Inmon对数据仓库的定义是:数据仓库是支持管理决策过程的、面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合。其中,“主题”是指用户使用数据仓库辅助决策时所关心的重点问题,每一个主题对应一个客观分析领域,如销售、成本、利润的情况等。那么,所谓“面向主题”就是指数据仓库中的信息是按主题组织的,按主题来提供信息。“集成的”是指数据仓库中的数据不是业务处理系统数据的简单拼凑与汇总,而是经过系统地加工整理,是相互一致的、具有代表性的数据。所谓“随时间变化”,是指数据仓库中存储的是一个时间段的数据,而不仅仅是某一个时点的数据,所以主要用于进行时间趋势分析。一般数据仓库内的数据时限为5~10年,数据量也比较大。“信息本身相对稳定”,是指数据一旦进入数据仓库,一般情况下将被长期保留,变更很少。
                      数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源,为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库往往有如下几个特点:
                      (1)数据效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1~3日才能给出数据,显然不行的。
                      (2)数据质量足够好。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗、装载、查询、展现等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
                      (3)数据有足够的扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来若干年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。
                      数据仓库组织和管理数据的方法与普通数据库不同。主要表现在三个方面:
                      (1)依据决策要求,只从数据库中抽取那些需要的数据,并进行预处理使系统获得特定的数据格式。
                      (2)数据仓库是多维的,即数据仓库的数据的组织方式有多层的行和列。
                      (3)支持决策处理,不同于普通的事务处理。
                      数据仓库技术在近几年蓬勃发展起来,不少厂商都推出了他们的数据仓库产品,同时也推出了一些分析工具。仅仅拥有数据仓库是不够的,在其上应用各种工具进行分析,才能使数据仓库真正发挥作用。联机分析处理和数据挖掘就是这样的分析工具。
                      联机分析处理技术
                      联机分析处理是针对特定问题的联机数据访问和分析,通过对信息进行快速、稳定、一致和交互式的存取,对数据进行多层次、多阶段的分析处理,以获得高度归纳的分析结果。联机分析处理是一种自上而下、不断深入的分析工具:在用户提出问题或假设之后,它负责提取出关于此问题的详细信息,并以一种比较直观的方式呈现给用户。联机分析处理技术的发展速度很快,在数据仓库的概念提出不久,联机分析处理的理论及相应工具就被相继推出了。
                      联机分析处理要求按多维方式组织企业的数据,传统的关系数据库难以胜任。为此,人们提出了多维数据库的概念。正是这一技术的发展使决策分析中的数据结构和分析方法相分离,才有可能研制出通用而灵活的分析工具,并使分析工具产品化。维是人们观察现实世界的角度,决策分析需要从不同的角度观察分析数据,以多维数据为核心的多维数据分析是决策的主要内容。多维数据库是以多维方式来组织数据的。目前,联机分析处理的工具可分为两大类,一类是基于多维数据库的,另一类是基于关系数据库的。两者的相同点是基本数据源仍是数据库和数据仓库,都是基于关系数据模型的,都向用户显示多维数据视图;不同点在于,前者是把分析所需的数据从数据仓库中抽取出来,物理地组织成多维数据库,而后者则是利用关系表来模拟多维数据,并不是物理地生成多维数据库。
                      数据挖掘技术
                      数据挖掘的基本思想就是从数据中抽取有价值的信息,其目的是帮助决策者寻找数据间潜在的关联,发现被忽略的要素,而这些信息对预测趋势和决策行为也许是十分有用的。
                      从数据库的角度看,数据挖掘就是这样一个过程,它从数据库的数据中识别出有效的、新颖的、具有潜在效用的并最终可理解的信息(如规则、约束等)的非平凡过程。非平凡是一个数学概念,用来描述其复杂程度,即数据挖掘既不是把数据全部抽取,也不是所有数据都不抽取,而是抽取出隐含的、未知的、可能有用的信息。
                      从决策支持的角度看,数据挖掘是一种决策支持的过程,主要基于人工智能、机器学习、统计学和数据库技术等多种技术,能高度自动地分析企业原始的数据,进行归纳推理,从中挖掘出潜在的模式,使系统能通过这些发现的知识来预测客户的行为,帮助企业的决策者调整市场策略,从而减少风险,辅助做出正确的决策。它是提高商业和科学决策过程质量和效率的一种新方法。
                      数据挖掘和联机分析处理都可以在数据仓库的基础上对数据进行分析,以辅助决策,那么它们之间是否有差别呢?答案是肯定的。从某种意义上来说,联机分析处理还是一种传统的决策支持方法。即,在某个假设的前提下通过数据查询和分析来验证或否定这个假设,所以联机分析处理是一种验证型的分析。一般来说验证型的分析有如下局限性:
                      (1)常常需要以假设为基础。用户的假设能力有限,只能局限于对几种变量进行假设。
                      (2)联机分析处理需要对用户的需求有全面而深入的了解,然而实际上有些时候用户的需求并不是确定的。
                      (3)抽取信息的质量依赖于用户对结果的解释,容易导致错误。
                      我们可以看出,联机分析处理是由用户驱动的,很大程度上受到用户水平的限制。与联机分析处理不同,数据挖掘是数据驱动的,是一种真正的知识发现方法。使用数据挖掘工具,用户不必提出确切的要求,系统能够根据数据本身的规律性,自动地挖掘数据潜在的模式,或通过联想,建立新的业务模型,帮助决策者调整市场策略,并找到正确的决策。这显然利于发现未知的事实。从数据分析深度的角度来看,联机分析处理位于较浅的层次,而数据挖掘则处于较深的层次。所以,联机分析处理和数据挖掘的主要差别就在于是否能自动地进行数据分析。
                      近几年,越来越多的联机分析处理产品融入了数据挖掘的方法,所以联机分析处理与数据挖掘间的界限正在逐渐模糊。
               SQL语言
                      SQL概述
                      SQL(Structured Query Language)结构化查询语言,是一种数据库查询及程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口,常用的数据库开发系统,都支持SQL语言作为查询语言。
                      SQL语言主要具有以下优点:
                      .非过程化语言。SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作。
                      .统一的语言。SQL将许多任务统一在一种语言之中,包括:查询数据;在表中插入、修改和删除记录;建立、修改和删除数据对象;控制对数据和数据对象的存取;保证数据库一致性和完整性。
                      .是所有关系数据库的公共语言。由于主流的关系数据库管理系统都支持SQL语言,所以SQL语言具有很强的公用性,所有用SQL编写的程序都是可以移植的。
                      SQL语法基础
                      (1)CREATE建立表结构语句。
                      基本语法格式:
                      
                      语法说明:CREATE语句用于创建数据库中的表。其中column_name代表表中的字段名称,data_type代表字段可容纳何种数据类型。常用的数据类型可以是integer(size)、int(size)、smallint(size)、tinyint(size)、decimal(size,d)、numeric(size,d)、varchar(size)、date(yyyymmdd)等。CREATE语句的应用格式如下所示。
                      
                      
                      该语句创建Student学生表,其中包含Id、Sname等六个字段。
                      (2)SELECT查询语句。SELECT语句是数据库最基本语句之一,也是最常用的SQL操作。用户使用SELECT语句可以从数据库中按照自身的需要查询数据信息。系统按照用户的要求选择数据,然后将选择的数据以用户规定的格式整理后返回给用户。用户使用SELECT语句不但可以对数据库进行精确查询,还可以进行模糊查询。
                      基本语法格式:
                      
                      语法说明:ALL|DISTINCT用来标识在查询结果中出现相同行时的处理方式。如果使用关键字ALL,则返回查询结果中的所有行(包括重复行);如果使用关键字DISTINCT,返回删除相同行的查询结果;select_list表示获取字段信息的字段列表,各个字段名称之间用逗号分隔。在这个列表中可以包含数据源表或视图中的字段名称及其他表达式,例如常量或函数。如果用户用“*”来代替字段列表,那么系统将返回指定数据库表中的全部数据信息;INTO new_table_list代表创建一个新的数据表,这个数据表的名称是new_table_list,包含的数据信息是查询出来的结果集;table_list表示数据信息的数据源表列表;WHERE search_conditions代表查询条件,该子句表示一个或多个筛选条件的组合。WHERE子句中可以使用算数运算符、比较运算符和逻辑运算符来设置条件。还可以使用BETWEEN…AND…、LIKE、IN、NOT IN等特殊运算符;GROUP BY group_by_list表示查询的分组条件,即归纳信息类型;HAVING search_conditions表示组或聚合的查询条件;ORDER BY order_lis表示查询结果的排序方式。具体应用格式如以下SQL语句所示。
                      语句一:
                      
                      该语句查找Student学生表中所有学生的信息。
                      语句二:
                      
                      该语句查找Student学生表中广东籍女学生的Sno、Sname和Sclass信息。
                      语句三:
                      
                      该语句查找Student学生表中Sno最小的前10个记录。
                      语句四:
                      
                      该语句查找Student学生表中所有Snative既不是湖南也不是湖北的学生信息。
                      语句五:
                      
                      该语句查询以Sclass作为分组条件,查询结果为Student学生表中每个班的人数。
                      语句六:
                      
                      该语句查找Student学生表中人数大于30的Sclass和人数。HAVING子句总是跟在GROUP BY子句之后,不可以单独使用。
                      (3)INSERT插入语句。在SQL语句中,向数据表中添加数据的常用方法就是使用INSERT语句。
                      语法格式:
                      
                      语法说明:INSERT INTO子句用于指定向某数据表插入数据。数据表名跟在INSERT INTO关键字后面;column name用于指定该数据表的列名,可以指定一列或者多列,所有这些列都必须放在圆括号“()”中。如果要指定多个列,则必须用逗号隔开。如果指定了列名,那么在目标数据表中所有未被指定的列必须支持空值或者默认值;VALUES子句主要用于提供向表中插入的值。这些值也必须放在圆括号中,如果指定的值为多个时,这些值之间也必须用逗号隔开。具体应用形式可见以下语句。
                      
                      该语句向Student学生表插入一条新的记录。
                      UPDATE更新语句
                      当数据被添加到数据表之后,会经常需要修改。在SQL语言中,对数据的修改是通过使用UPDATE语句来实现的。
                      语法格式:
                      
                      语法说明:UPDATE子句和SET子句是必需的,而WHERE子句是可选的。在UPDATE子句中,必须指定将要更新的数据表的名称。在SET子句中,必须指定一个或多个子句表达式。使用UPDATE语句可以更改表中单行、多行或者表或视图中所有行的数值。具体应用形式可见以下语句。
                      
                      将Student学生表中Sname为刘晶晶的Sclass和Snative记录进行更新。
                      DELETE删除语句
                      DELETE语句用来从表或视图中删除一行或者多行记录。
                      语法格式:
                      
                      语法说明:DELETE FROM子句要求指定从中删除行的表的名称,WHERE指定搜索条件。如果在DELETE语句中没有包括WHERE子句,那么将从指定的表中删除所有行。在DELETE语句中没有指定列名,这是因为不能从表中删除单个列的值。具体应用形式可见以下语句。
                      
                      该语句删除Student学生表中Sname为“刘晶晶”的记录。
 
       数据类型
        基本数据类型是C++内部预先定义的数据类型,非基本数据类型是用户自己定义的数据类型。
        1)基本数据类型
        基本数据类型包括整型int、字符型char、逻辑型bool、无值型void、实型float、双精度型double,与C语言没什么差别。
        2)非基本数据类型
        非基本数据类型包括数组type[]、指针type*、结构struct、联合union、枚举enum和类class,比C语言增加了类class数据类型。
        3)new和delete
        (1)分配内存。
        在C语言中:char *name=(char*)malloc(Length+1);。
        使用new: char *name=new char[Length+1];。
        (2)释放内存。
        在C语言中:free(name);。
        使用delete: delete[]name;。
   题号导航      2018年下半年 系统架构设计师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第4题    在手机中做本题