① mpp数据库跟oracle的区别
先这要看下:
② GBase 8a MPP数据库如何通过JDBC实现连接级的负载均衡
在使用JDBC实现连接GBase8aMPP数据库时,由于GBase8aMPP数据库是分布式数据库,那么在通过JDBC实现连接高可用的情况下,还希望能够实现连接级别的负载均衡,需要如何实现呢?这就需要使用到GBase8aMPP数据库JDBC驱动自带的负载均衡功能。
如果我们希望把数据库连接请求平均分布到各个节点的上话,我们可以使用JDBC 高可用负载均衡功能。
假设有如下场景,部署有一个GBase 集群,三个节点IP如下:
192.168.1.1;192.168.1.2;192.168.1.3;
String dbUrl =
“jdbc:gbase://192.168.1.1:5258/test?user=gbase&password=gbase20110531&failoverEnable=true&hostList=192.168.1.2,192.168.1.3&gclusterId=gcl1”;
failoverEnable:是否开启高可用。
hostList:集群节点的IP列表,以逗号分隔,hostList中不需要包含url中的主IP。
gclusterId:不同的gclusterId会创建不同的列表,用于区分被连接的集群,要求必须以a-z任意字符开头的可以包含a-z、0-9所有字符长度为最大为20的字符串。
高可用负载均衡功能是将url中的IP和hostList中的IP放入一个列表中,当应用获取连接的时候,JDBC会从列表表中顺序获取IP创建连接,每个IP获取一个连接,从而实现连接的负载均衡,同时,当列表中的IP不可连接时,JDBC会顺序获取列表中的下一个IP,获取连接,如果无可用连接时,将抛出异常。也就是说高可用负载均衡功能既实现了连接负载均衡功能,也实现了高可用功能。
③ 2019数据架构选型必读:1月数据库产品技术解析
本期目录
DB-Engines数据库排行榜
新闻快讯
一、RDBMS家族
二、Nosql家族
三、NewSQL家族
四、时间序列
五、大数据生态圈
六、国产数据库概览
七、云数据库
八、推出dbaplus Newsletter的想法
九、感谢名单
为方便阅读、重点呈现,本期Newsletter(2019年1月)将对各个板块的内容进行精简。需要阅读全文的同学可点击文末 【阅读原文】 或登录https://pan..com/s/13BgipbaHeMfvm0YPtiYviA
DB-Engines数据库排行榜
以下取自2019年1月的数据,具体信息可以参考http://db-engines.com/en/ranking/,数据仅供参考。
DB-Engines排名的数据依据5个不同的因素:
新闻快讯
1、2018年9月24日,微软公布了SQL Server2019预览版,SQL Server 2019将结合Spark创建统一数据平台。
2、2018年10月5日,ElasticSearch在美国纽约证券交易所上市。
3、亚马逊放弃甲骨文数据库软件,导致最大仓库之一在黄金时段宕机。受此消息影响,亚马逊盘前股价小幅跳水,跌超2%。
4、2018年10月31日,Percona发布了Percona Server 8.0 RC版本,发布对MongoDB 4.0的支持,发布对XtraBackup测试第二个版本。
5、2018年10月31日,Gartner陆续发布了2018年的数据库系列报告,包括《数据库魔力象限》、《数据库核心能力》以及《数据库推荐报告》。
今年的总上榜数据库产品达到了5家,分别来自:阿里云,华为,巨杉数据库,腾讯云,星环 科技 。其中阿里云和巨杉数据库已经连续两年入选。
6、2018年11月初,Neo4j宣布完成E轮8000万美元融资。11月15日,Neo4j宣布企业版彻底闭源:
7、2019年1月8日,阿里巴巴以1.033亿美元(9000万欧元)的价格收购了Apache Flink商业公司DataArtisans。
8、2019年1月11日早间消息,亚马逊宣布推出云数据库软件,亚马逊和MongoDB将会直接竞争。
RDBMS家族
Oracle 发布18.3版本
2018年7月,Oracle Database 18.3通用版开始提供下载。我们可以将Oracle Database 18c视为采用之前发布模式的Oracle Database 12c第2版的第一个补丁集。未来,客户将不再需要等待多年才能用上最新版Oracle数据库,而是每年都可以期待新数据库特性和增强。Database 19c将于2019年Q1率先在Oracle cloud上发布云版本。
Oracle Database 18c及19c部分关键功能:
1、性能
2、多租户,大量功能增强及改进,大幅节省成本和提高敏捷性
3、高可用
4、数据仓库和大数据
MySQL发布8.0.13版本
1、账户管理
经过配置,修改密码时,必须带上原密码。在之前的版本,用户登录之后,就可以修改自己的密码。这种方式存在一定安全风险。比如用户登录上数据库后,中途离开一段时间,那么非法用户可能会修改密码。由参数password_require_current控制。
2、配置
Innodb表必须有主键。在用户没有指定主键时,系统会生成一个默认的主键。但是在主从复制的场景下,默认的主键,会对丛库应用速度带来致命的影响。如果设置sql_require_primary_key,那么数据库会强制用户在创建表、修改表时,加上主键。
3、字段默认值
BLOB、TEXT、GEOMETRY和JSON字段可以指定默认值了。
4、优化器
1)Skip Scan
非前缀索引也可以用了。
之前的版本,任何没有带上f1字段的查询,都没法使用索引。在新的版本中,它可以忽略前面的字段,让这个查询使用到索引。其实现原理就是把(f1 = 1 AND f2 > 40) 和(f1 = 2 AND f2 > 40)的查询结果合并。
2)函数索引
之前版本只能基于某个列或者多个列加索引,但是不允许在上面做计算,如今这个限制消除了。
5、SQL语法
GROUP BY ASC和GROUP BY DESC语法已经被废弃,要想达到类似的效果,请使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。
6、功能变化
1)设置用户变量,请使用SET语句
如下类型语句将要被废弃SELECT @var, @var:=@var+1。
2)新增innodb_fsync_threshold
该变量是控制文件刷新到磁盘的速率,防止磁盘在短时间内饱和。
3)新增会话级临时表空间
在以往的版本中,当执行SQL时,产生的临时表都在全局表空间ibtmp1中,及时执行结束,临时表被释放,空间不会被回收。新版本中,会为session从临时表空间池中分配一个临时表空间,当连接断开时,临时表空间的磁盘空间被回收。
4)在线切换Group Replication的状态
5)新增了group_replication_member_expel_timeout
之前,如果某个节点被怀疑有问题,在5秒检测期结束之后,那么就直接被驱逐出这个集群。即使该节点恢复正常时,也不会再被加入集群。那么,瞬时的故障,会把某些节点驱逐出集群。
group_replication_member_expel_timeout让管理员能更好的依据自身的场景,做出最合适的配置(建议配置时间小于一个小时)。
MariaDB 10.3版本功能展示
1、MariaDB 10.3支持update多表ORDER BY and LIMIT
1)update连表更新,limit语句
update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;
MySQL 8.0直接报错
MariaDB 10.3更新成功
2)update连表更新,ORDER BY and LIMIT语句
update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;
MySQL 8.0直接报错
MariaDB 10.3更新成功
参考:
https://jira.mariadb.org/browse/MDEV-13911
2、MariaDB10.3增补AliSQL补丁——安全执行Online DDL
Online DDL从名字上看很容易误导新手,以为不论什么情况,修改表结构都不会锁表,理想很丰满,现实很骨感,注意这个坑!
有以下两种情况执行DDL操作会锁表的,Waiting for table metadata lock(元数据表锁):
针对第二种情况,MariaDB10.3增补AliSQL补丁-DDL FAST FAIL,让其DDL操作快速失败。
例:
如果线上有某个慢SQL对该表进行操作,可以使用WAIT n(以秒为单位设置等待)或NOWAIT在语句中显式设置锁等待超时,在这种情况下,如果无法获取锁,语句将立即失败。 WAIT 0相当于NOWAIT。
参考:
https://jira.mariadb.org/browse/MDEV-11388
3、MariaDB Window Functions窗口函数分组取TOP N记录
窗口函数在MariaDB10.2版本里实现,其简化了复杂SQL的撰写,提高了可读性。
参考:
https://mariadb.com/kb/en/library/window-functions-overview/
Percona Server发布8.0 GA版本
2018年12月21日,Percona发布了Percona Server 8.0 GA版本。
在支持MySQL8.0社区的基础版上,Percona Server for MySQL 8.0版本中带来了许多新功能:
1、安全性和合规性
2、性能和可扩展性
3、可观察性和可用性
Percona Server for MySQL 8.0中将要被废用功能:
Percona Server for MySQL 8.0中删除的功能:
RocksDB发布V5.17.2版本
2018年10月24日,RocksDB发布V5.17.2版本。
RocksDB是Facebook在LevelDB基础上用C++写的高效内嵌式K/V存储引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底层的存储都是基于RocksDB来构建。
PostgreSQL发布11版本
2018年10月18日,PostgreSQL 11发布。
1、PostgreSQL 11的重大增强
2、PostgreSQL 插件动态
1)分布式插件citus发布 8.1
citus是PostgreSQL的一款sharding插件,目前国内苏宁、铁总、探探有较大量使用案例。
https://github.com/citusdata/citus
2)地理信息插件postgis发布2.5.1
PostGIS是专业的时空数据库插件,在测绘、航天、气象、地震、国土资源、地图等时空专业领域应用广泛。同时在互联网行业也得到了对GIS有性能、功能深度要求的客户青睐,比如共享出行、外卖等客户。
http://postgis.net/
3)时序插件timescale发布1.1.1
timescale是PostgreSQL的一款时序数据库插件,在IoT行业中有非常好的应用。github star数目前有5000多,是一个非常火爆的插件。
https://github.com/timescale/timescaledb
4)流计算插件 pipelinedb 正式插件化
Pipelinedb是PostgreSQL的一款流计算插件,使用这个创建可以对高速写入的数据进行实时根据定义的聚合规则进行聚合(支持概率计算),实时根据定义的规则触发事件(支持事件处理函数的自定义)。可用于IoT,监控,FEED实时计算等场景。
https://github.com/pipelinedb/pipelinedb
3、PostgreSQL衍生开源产品动态
1)agensgraph发布 2.0.0版本
agensgraph是兼容PostgreSQL、opencypher的专业图数据库,适合图式关系的管理。
https://github.com/bitnine-oss/agensgraph
2)gpdb发布5.15
gpdb是兼容PostgreSQL的mpp数据库,适合OLAP场景。近两年,gpdb一直在追赶PostgreSQL的社区版本,预计很快会追上10的PostgreSQL,在TP方面的性能也会得到显着提升。
https://github.com/greenplum-db/gpdb
3)antdb发布3.2
antdb是以Postgres-XC为基础开发的一款PostgreSQL sharding数据库,亚信主导开发,开源,目前主要服务于亚信自有客户。
https://github.com/ADBSQL/AntDB
4)迁移工具MTK发布52版本
MTK是EDB提供的可以将Oracle、PostgreSQL、MySQL、MSSQL、Sybase数据库迁移到PostgreSQL, PPAS的产品,迁移速度可以达到100万行/s以上。
https://github.com/digoal/blog/blob/master/201812/20181226_01.md
DB2发布 11.1.4.4版本
DB2最新发布Mod Pack 4 and Fix Pack 4,包含以下几方面的改动及增强:
1、性能
2、高可用
3、管理视图
4、应用开发方面
5、联邦功能
6、pureScale
NoSQL家族
Redis发布5.0.3版本
MongoDB升级更新MongoDB Mobile和MongoDB Stitch
2018年11月21日,MongoDB升级更新MongoDB Mobile和MongoDB Stitch,助力开发人员提升工作效率。
MongoDB 公司日前发布了多项新产品功能,旨在更好地帮助开发人员在世界各地管理数据。通过利用存储在移动设备和后台数据库的数据之间的实时、自动的同步特性,MongoDB Mobile通用版本助力开发人员构建更快捷、反应更迅速的应用程序。此前,这只能通过在移动应用内部安装一个可供选择或限定功能的数据库来实现。
MongoDB Mobile在为客户提供随处运行的自由度方面更进了一步。用户在iOS和安卓终端设备上可拥有MongoDB所有功能,将网络边界扩展到其物联网资产范畴。应用系统还可以使用MongoDB Stitch的软件开发包访问移动客户端或后台数据,帮助开发人员通过他们希望的任意方式查询移动终端数据和物联网数据,包括本地读写、本地JSON存储、索引和聚合。通过Stitch移动同步功能(现可提供beta版),用户可以自动对保存在本地的数据以及后台数据库的数据进行同步。
本期新秀:Cassandra发布3.11.3版本
2018年8月11日,Cassandra发布正式版3.11.3。
Apache Cassandra是一款开源分布式NoSQL数据库系统,使用了基于Google BigTable的数据模型,与面向行(row)的传统关系型数据库或键值存储key-value数据库不同,Cassandra使用的是宽列存储模型(Wide Column Stores)。与BigTable和其模仿者HBase不同,数据并不存储在分布式文件系统如GFS或HDFS中,而是直接存于本地。
Cassandra的系统架构与Amazon DynamoDB类似,是基于一致性哈希的完全P2P架构,每行数据通过哈希来决定应该存在哪个或哪些节点中。集群没有master的概念,所有节点都是同样的角色,彻底避免了整个系统的单点问题导致的不稳定性,集群间的状态同步通过Gossip协议来进行P2P的通信。
3.11.3版本的一些bug fix和改进:
NewSQL家族
TiDB 发布2.1.2版本
2018 年 12 月 22 日,TiDB 发布 2.1.2 版,TiDB-Ansible 相应发布 2.1.2 版本。该版本在 2.1.1 版的基础上,对系统兼容性、稳定性做出了改进。
TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品。除了底层的 RocksDB 存储引擎之外,分布式SQL层、分布式KV存储引擎(TiKV)完全自主设计和研发。
TiDB 完全开源,兼容MySQL协议和语法,可以简单理解为一个可以无限水平扩展的MySQL,并且提供分布式事务、跨节点 JOIN、吞吐和存储容量水平扩展、故障自恢复、高可用等优异的特性;对业务没有任何侵入性,简化开发,利于维护和平滑迁移。
TiDB:
PD:
TiKV:
Tools:
1)TiDB-Lightning
2)TiDB-Binlog
EsgynDB发布R2.5版本
2018年12月22日,EsgynDB R2.5版本正式发布。
作为企业级产品,EsgynDB 2.5向前迈进了一大步,它拥有以下功能和改进:
CockroachDB发布2.1版本
2018年10月30日,CockroachDB正式发布2.1版本,其新增特性如下:
新增企业级特性:
新增SQL特性:
新增内核特性:
Admin UI增强:
时间序列
本期新秀:TimescaleDB发布1.0版本
10月底,TimescaleDB 1.0宣布正式推出,官方表示该版本已可用于生产环境,支持完整SQL和扩展。
TimescaleDB是基于PostgreSQL数据库开发的一款时序数据库,以插件化的形式打包提供,随着PostgreSQL的版本升级而升级,不会因为另立分支带来麻烦。
TimescaleDB架构:
数据自动按时间和空间分片(chunk)
更新亮点:
https://github.com/timescale/timescaledb/releases/tag/1.0.0
大数据生态圈
Hadoop发布2.9.2版本
2018年11月中旬,Hadoop在2.9分支上发布了新的2.9.2版本,该版本进行了204个大大小小的变更,主要变更如下:
Greenplum 发布5.15版本
Greenplum最新的5.15版本中发布了流式数据加载工具。
该版本中的Greenplum Streem Server组件已经集成了Kafka流式加载功能,并通过了Confluent官方的集成认证,其支持的主要功能如下:
国产数据库概览
K-DB发布数据库一体机版
2018年11月7日,K-DB发布了数据库一体机版。该版本更新情况如下:
OceanBase迁移服务发布1.0版本
1月4日,OceanBase 正式发布OMS迁移服务1.0版本。
以下内容包含 OceanBase 迁移服务的重要特性和功能:
SequoiaDB发布3.0.1新版本
1、架构
1)完整计算存储分离架构,兼容MySQL协议、语法
计算存储分离体系以松耦合的方式将计算与存储层分别部署,通过标准接口或插件对各个模块和组件进行无缝替换,在计算层与存储层均可实现自由的弹性伸缩。
SequoiaDB巨杉数据库“计算-存储分离”架构详细示意
用户可以根据自身业务特征选择面向交易的SQL解析器(例如MySQL或PGSQL)或面向统计分析的执行引擎(例如SparkSQL)。众所周知,使用不同的SQL优化与执行方式,数据库的访问性能可能会存在上千上万倍的差距。计算存储分离的核心思想便是在数据存储层面进行一体化存储,在计算层面则利用每种执行引擎的特点针对不同业务场景进行选择和优化,用户可以在存储层进行逻辑与物理的隔离,将面向高频交易的前端业务与面向高吞吐量的统计分析使用不同的硬件进行存储,确保在多类型数据访问时互不干扰,以真正达到生产环境可用的多租户与HTAP能力。
2、其他更新信息
1)接口变更:
2)主要特性:
云数据库
本期新秀:腾讯发布数据库CynosDB,开启公测
1、News
1)腾讯云数据库MySQL2018年重大更新:
2)腾讯云数据库MongoDB2018年重大更新:
3)腾讯云数据库Redis/CKV+2018年重大更新:
4)腾讯云数据库CTSDB2018年重大更新:
2、Redis 4.0集群版商业化上线
2018年10月,腾讯云数据库Redis 4.0集群版完成邀测、公测、商业化三个迭代,在广州、上海、北京正式全量商业化上线。
产品特性:
使用场景:
官网文档:
https://cloud.tencent.com/document/proct/239/18336
3、腾讯自研数据库CynosDB发布,开启公测
2018年11月22日,腾讯云召开新一代自研数据库CynosDB发布会,业界第一款全面兼容市面上两大最主流的开源数据库MySQL和PostgreSQL的高性能企业级分布式云数据库。
本期新秀:京东云DRDS发布1.0版本
12月24日,京东云分布式关系型数据库DRDS正式发布1.0版本。
DRDS是京东云精心自研的数据库中间件产品,获得了2018年 ”可信云技术创新奖”。DRDS可实现海量数据下的自动分库分表,具有高性能,分布式,弹性升级,兼容MySQL等优点,适用于高并发、大规模数据的在线交易, 历史 数据查询,自动数据分片等业务场景,历经多次618,双十一的考验,已经在京东集团内大规模使用。
京东云DRDS产品有以下主要特性
1)自动分库分表
通过简单的定义即可自动实现分库分表,将数据实际存放在多个MySQL实例的数据库中,但呈现给应用程序的依旧是一张表,对业务透明,应用程序几乎无需改动,实现了对数据库存储和处理能力的水平扩展。
2)分布式架构
基于分布式架构的集群方案,多个对等节点同时对外提供服务,不但可有效规避服务的单点故障,而且更加容易扩展。
3)超强性能
具有极高的处理能力,双节点即可支持数万QPS,满足用户超大规模处理能力的需求。
4)兼容MySQL
兼容绝大部分MySQL语法,包括MySQL语法、数据类型、索引、常用函数、排序、关联等DDL,DML语句,使用成本低。
参考链接:
https://www.jdcloud.com/cn/procts/drds
RadonDB发布1.0.3版本
2018年12月26日,MyNewSQL领域的RadonDB云数据库发布1.0.3版本。
推出dbaplus Newsletter的想法
dbaplus Newsletter旨在向广大技术爱好者提供数据库行业的最新技术发展趋势,为社区的技术发展提供一个统一的发声平台。为此,我们策划了RDBMS、NoSQL、NewSQL、时间序列、大数据生态圈、国产数据库、云数据库等几个版块。
我们不以商业宣传为目的,不接受任何商业广告宣传,严格审查信息源的可信度和准确性,力争为大家提供一个纯净的技术学习环境,欢迎大家监督指正。
至于Newsletter发布的周期,目前计划是每三个月左右会做一次跟进, 下期计划时间是2019年4月14日~4月25日, 如果有相关的信息提供请发送至邮箱:[email protected]
感谢名单
最后要感谢那些提供宝贵信息和建议的专家朋友,排名不分先后。
往期回顾:
↓↓别忘了点这里下载 2019年1月 完整版Newsletter 哦~
④ MPP 和 NoSQL 有什么区别 架构上, 应用上
MPP是一种进行系统扩展的方式,它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。每一个节点只能访问自己本地资源(内存,存储等),是一种完全无共享结构(Share Nothing)结构。
而NoSql=Not Only Sql。泛指的是非关系型数据库。大概分为四类。Key-Value存储的数据库,列式存储数据库(Hbase),文档型数据库和图形数据库。
⑤ 为什么说Spark SQL远远超越了MPP SQL
这里说的并不是性能,因为我没尝试对比过(下文会有简单的说明),而是尝试从某种更高一层次的的角度去看,为什么Spark SQL 是远远超越MPP SQL的。
Spark SQL 和 MPP SQL 其实不在一个维度上。简而言之,
MPP SQL 是 Spark SQL 的一个子集
Spark SQL 成为了一种跨越领域的交互形态
MPP SQL 是 Spark SQL 的一个子集
MPP SQL 要解决的技术问题是海量数据的查询问题。这里根据实际场景,你还可以加上一些修饰词汇,譬如秒级,Ad-hoc 之类。
在实际业务中
探索类业务,比如KPI多维分析,用户画像查询,数据科学家摸底数据等
运营类业务,比如报表(现在很多BI系统基本上完全基于SQL来构建),各种运营临时统计需求
分析类业务,不过这个会比较浅显。显然,真实的的分析应该主要依托一些统计类,机器学习等技术的支持
运维类业务,比如实时查询查看海量的系统日志等
MPP SQL 是有一定的性能优势的,从HAWQ,Impala 等都是基于MPP架构的。然而仅限于此。这些功能Spark SQL 目前都已经涵盖了,MPP SQL能做的事情,Spark SQL都完成的很漂亮。
依托于Spark 自身的全平台性(漂亮的DataSource API以及各个厂商的努力适配),Spark SQL 基本上可以对接任意多个异构数据源进行分析和查询。大家可参考我的一个简略实现 利用StreamingPro实现SQL-交互式查询。
关于性能可以再多说两句:
得益于一些具有复杂存储格式的文件的诞生,譬如CarbonData, Spark SQL 已经实现海量数据的秒级查询
Spark 自身通过Tungsten等项目的优化(尤其是代码自动生成),速度越来越生猛,而JVM譬如GC带来的问题则可以进一步通过off-heap的方式减少。
所以 Spark SQL 和 MPP SQL在性能上的差距也会越来越小。
Spark SQL 成为了一种跨越领域的交互形态
Spark 通过使用DS(2.0统一了DF 和 DS,使用一套SQL引擎)极大的增强了交互语意,意味着你可以用SQL(DS)作为统一的交互语言完成流式,批处理,交互式查询,机器学习等大数据领域常见场景。这在任何一个系统都是不多见的,也可见Spark团队的抽象能力。
引言中的那篇文章其实是作者吐槽Spark 团队对Spark core(RDD)那层关注太少了,所以开始发牢骚。
现在我们再回过头来看我们常见的一些业务:
实时分析类业务
探索类业务
分析预测类业务
运营报表类业务
首先这些业务都可以使用Spark 来实现。其次统一的交互接口都是DS(DF/SQL),并且DS/SQL 是一套极度易用并且广泛普及和接受的。
当然Spark 也不是一步就做到这点的,原来流式计算和批量计算就是两套API, DF 和 DS 也是两套API,后面经过发展,Databricks 团队也在积极思考和慢慢成长,经过先前已经有的积累,才做到现在的这一步。
所以本质上DS/SQL 已经成为除了RDD API 以外,另外一套通用的,统一的交互式API,涵盖了流式,批处理,交互式查询,机器学习等大数据领域。这也是我们第一次达成这样的统一,目前来看也仅在Spark平台上得以实现,它是的大数据的使用和学习门槛进一步降低,功在千秋。
RDD VS DS/SQL
DS/SQL 是一套数据类型首先,操作种类受限的表达语言,意味着Spark 团队可以做更好的性能优化,也意味着门槛更低,在易用性和性能上都能取得良好的平衡
⑥ 请教!成为一名合格的数据库工程师需掌握那些知识技能
数工讨论群:27955282 数工考试交流群:37263632
你们交流。
2004数据库系统工程师级大纲
一、考试说明
1.考试要求
(1)掌握计算机体系结构以及各主要部件的性能和基本工作原理;
<广告>
(2)掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(3)熟练掌握常用数据结构和常用算法;
(4)熟悉软件工程和软件开发项目管理的基础知识;
(5)熟悉计算机网络的原理和技术;
(6)掌握数据库原理及基本理论;
(7)掌握常用的大型数据库管理系统的应用技术;
(8)掌握数据库应用系统的设计方法和开发过程;
(9)熟悉数据库系统的管理和维护方法,了解相关的安全技术;
(10)了解数据库发展趋势与新技术;
(11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(12)了解信息化、计算机应用的基础知识;
(13)正确阅读和理解计算机领域的英文资料。
2. 通过本考试的合格人员能参与应用信息系统的规划、设计、构建、运行和管理,能按照用户需求,设计、建立、运行、维护高质量的数据库和数据仓库;作为数据管理员管理信息系统中的数据资源,作为数据库管理员建立和维护核心数据库;担任数据库系统有关的技术支持,同时具备一定的网络结构设计及组网能力;具有工程师的实际工作能力和业务水平,能指导计算机技术与软件专业助理工程师(或技术员)工作。
3. 本考试设置的科目包括
(1)信息系统知识,考试时间为150分钟,笔试;
(2)数据库系统设计与管理,考试时间为150分钟,笔试。
二、考试范围
考试科目1:信息系统知识
1. 计算机系统知识
1.1 硬件知识
1.1.1 计算机体系结构和主要部件的基本工作原理
?CPU和存储器的组成、性能、基本工作原理
?常用I/O设备、通信设备的性能,以及基本工作原理
?I/O接口的功能、类型和特点
?CISC/RISC,流水线操作,多处理机,并行处理
1.1.2 存储系统
?虚拟存储器基本工作原理,多级存储体系
?RAID类型和特性
1.1.3 安全性、可靠性与系统性能评测基础知识
?诊断与容错
?系统可靠性分析评价
? 计算机系统性能评测方法
1.2 数据结构与算法
1.2.1 常用数据结构
?数组(静态数组、动态数组)
?线性表、链表(单向链表、双向链表、循环链表)
?栈和队列
?树(二叉树、查找树、平衡树、遍历树、堆)、图、集合的定义、存储和操作
?Hash(存储位置计算、碰撞处理)
1.2.2 常用算法
?排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
?算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表),算法的复杂性
1.3 软件知识
1.3.1 操作系统知识
?操作系统的类型、特征、地位、内核(中断控制)、进程、线程概念
?处理机管理(状态转换、同步与互斥、信号灯、分时轮转、抢占、死锁)
?存储管理(主存保护、动态连接分配、分段、分页、虚存)
?设备管理(I/O控制、假脱机、磁盘调度)
?文件管理(文件目录、文件的结构和组织、存取方法、存取控制、恢复处理、共享和安全)
?作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
?汉字处理,多媒体处理,人机界面
?网络操作系统和嵌入式操作系统基础知识
?操作系统的配置
1.3.2 程序设计语言和语言处理程序的知识
? 汇编、编译、解释系统的基础知识和基本工作原理
? 程序设计语言的基本成分:数据、运算、控制和传输,程序调用的实现机制
? 各类程序设计语言的主要特点和适用情况
1.4 计算机网络知识
?网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
?传输介质,传输技术,传输方法,传输控制
?常用网络设备和各类通信设备
?Client/Server结构、Browser/Server结构、Browser/Web/Datebase结构
?LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
?因特网基础知识及应用
?网络软件
?网络管理
?网络性能分析
?网络有关的法律、法规
2. 数据库技术
2.1 数据库技术基础
2.1.1 数据库模型
?数据库系统的三级模式(概念模式、外模式、内模式),两级映像(概念模式/外模式、外模式/内模式)
?数据库模型:数据模型的组成要素,概念数据模型ER图(实体、属性、关系),逻辑数据模型(关系模型、层次模型、网络模型)
2.1.2 数据库管理系统的功能和特征
?主要功能(数据库定义、数据库操作、数据库控制、事务管理、用户视图)
?特征(确保数据独立性、数据库存取、同时执行过程、排它控制、故障恢复、安全性、完整性)
?RDB(关系数据库),OODB(面向对象数据库),ORDB(对象关系数据库),NDB(网状数据库)
?几种常用Web数据库的特点
2.1.3 数据库系统体系结构
? 集中式数据库系统
? Client/Server数据库系统
? 并行数据库系统
? 分布式数据库系统
? 对象关系数据库系统
2.2 数据操作
2.2.1 关系运算
?关系代数运算(并、交、差、笛卡儿积、选择、投影、连接、除)
?元组演算
?完整性约束
2.2.2 关系数据库标准语言(SQL)
?SQL的功能与特点
?用SQL进行数据定义(表、视图、索引、约束)
?用SQL进行数据操作(数据检索、数据插入/删除/更新、触发控制)
?安全性和授权
?程序中的API,嵌入SQL
2.3 数据库的控制功能
?数据库事务管理(ACID属性)
?数据库备份与恢复技术(UNDO、REDO)
?并发控制
2.4 数据库设计基础理论
2.4.1 关系数据库设计
?函数依赖
?规范化(第一范式、第二范式、第三范式、BC范式、第四范式、第五范式)
?模式分解及分解应遵循的原则
2.4.2 对象关系数据库设计
?嵌套关系、 复杂类型,继承与引用类型
?与复杂类型有关的查询
?SQL中的函数与过程
?对象关系
2.5 数据挖掘和数据仓库基础知识
?数据挖掘应用和分类
?关联规则、聚类
?数据仓库的成分
?数据仓库的模式
2.6 多媒体基本知识
2.6.1 多媒体技术基本概念
?多媒体系统基础知识
?常用多媒体文件格式
2.6.2 多媒体压缩编码技术
?多媒体压缩编码技术
?统计编码
?预测编码
?编码的国际标准
2.6.3多媒体技术应用
?简单图形的绘制,图像文件的处理方法
?音频和视频信息的应用
?多媒体应用开发过程
2.7 系统性能知识
?性能计算(响应时间、吞吐量、周转时间)
?性能指标和性能设计
?性能测试和性能评估
2.8 计算机应用基础知识
?信息管理、数据处理、辅助设计、科学计算,人工智能等基础知识
?远程通信服务及相关通信协议基础知识
3. 系统开发和运行维护知识
3.1 软件工程、软件过程改进和软件开发项目管理知识
?软件工程知识
?软件开发生命周期阶段目标和任务
?软件开发项目基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
?主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
?软件开发工具与环境知识
?软件质量管理基础知识
?软件过程改进基础知识
?软件开发过程评估、软件能力成熟度评估的基础知识
3.2 系统分析基础知识
?系统分析的目的和任务
?结构化分析方法(数据流图(DFD)和数据字典(DD),实体关系图(ERD),描述加工处理的结构化语言)
?统一建模语言(UML)
?系统规格说明书
3.3 系统设计知识
?系统设计的目的和任务
?结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
?系统总体结构设计(总体布局,设计原则,模块结构设计,数据存取设计,系统配置方案)
?系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
?系统设计说明书
3.4 系统实施知识
?系统实施的主要任务
?结构化程序设计、面向对象程序设计、可视化程序设计
?程序设计语言的选择、程序设计风格
?系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
?测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试试用例设计、系统测试报告)
?系统转换基础知识
3.5 系统运行和维护知识
?系统运行管理知识
?系统维护知识
?系统评价知识
4. 安全性知识
?安全性基本概念(网络安全、操作系统安全、数据库安全)
?计算机病毒的防治,计算机犯罪的防范,容灾
?访问控制、防闯入、安全管理措施
?加密与解密机制
?风险分析、风险类型、抗风险措施和内部控制
5.标准化知识
?标准化意识,标准化的发展,标准出台过程
?国际标准、国家标准、行业标准、企业标准基本知识
?代码标准、文件格式标准、安全标准软件开发规范和文档标准
?标准化机构
6.信息化基础知识
?信息化意识
?全球信息化趋势、国家信息化战略、企业信息化战略和策略
?有关的法律、法规
?远程教育、电子商务、电子政务等基础知识
?企业信息资源管理基础知识
7.计算机专业英语
?掌握计算机技术的基本词汇
?能正确阅读和理解计算机领域的英文资料
考试科目2:数据库系统设计与管理
1.数据库设计
1.1理解系统需求说明
?了解用户需求、确定系统范围
?确定应用系统数据库的各种关系
?现有环境与新系统环境的关系
?新系统中的数据项、数据字典、数据流
1.2 系统开发的准备
?选择开发方法,准备开发环境,制订开发计划
1.3 设计系统功能
?选择系统机构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流
1.4 数据库设计
1.4.1 设计数据模型
?概念结构设计(设计ER模型)
?逻辑结构设计(转换成DBMS所能接收的数据模型)
?评审设计
1.4.2 物理结构设计
?设计方法与内容
?存取方法的选择
?评审设计与性能预测
1.4.3 数据库实施与维护
?数据加载与应用程序调试
?数据库试运行
?数据库运行与维护
1.4.4 数据库的保护
?数据库的备份与恢复
?数据库的安全性
?数据库的完整性
?数据库的并发控制
1.5 编写外部设计文档
?编写系统说明书(系统配置图、各子系统关系图、系统流程图,系统功能说明、输入输出规格说明、数据规格说明、用户手册框架)
?设计系统测试要求
1.6 设计评审
2. 数据库应用系统设计
2.1 设计数据库应用系统结构
?信息系统的架构(如Client/Server)与DBMS
?多用户数据库环境(文件服务器体系结构、Client/Server体系结构)
?大规模数据库和并行计算机体系结构(SMP、MPP)
?中间件角色和相关工具
?按构件分解,确定构件功能规格以及构件之间的接口
2.2 设计输入输出
?屏幕界面设计,设计输入输出检查方法和检查信息
?数据库交互与连接(掌握C程序设计语言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一种开发工具与数据库互连的方法(如何与数据库服务器沟通))
2.3 设计物理数据
?分析事务在数据库上运行的频率和性能要求,确定逻辑数据组织方式、存储介质,设计索引结构和处理方式
?将逻辑数据结构变换成物理数据结构,计算容量(空间代价),确定存取方法(时间效率)、系统配置(维护代价)并进行优化
2.4 设计安全体系
?明确安全等级
?数据库的登录方式
?数据库访问
?许可(对象许可、命令许可、授权许可的方法)
2.5 应用程序开发
2.5.1 应用程序开发
?选择应用程序开发平台
?系统实施顺序
?框架开发
?基础小组的程序开发
?源代码控制
?版本控制
2.5.2 模块划分(原则、方法、标准)
2.5.3 编写程序设计文档
?模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
?测试要求说明书(测试类型和目标,测试用例,测试方法)
2.5.4 程序设计评审
2.6 编写应用系统设计文档
?系统配置说明、构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、程序设计文档、文件设计文档、数据库设计文档
2.7 设计评审
3. 数据库应用系统实施
3.1 整个系统的配置与管理
3.2 常用数据库管理系统的应用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
?创建数据库
?创建表、创建索引、创建视图、创建约束、创建UDDT(用户自定义类型)
?创建和管理触发器
?建立安全体系
3.3 数据库应用系统安装
?拟定系统安装计划(考虑费用、客户关系、雇员关系、后勤关系和风险等因素)
?拟定人力资源使用计划(组织机构安排的合理性)
?直接安装(安装新系统并使系统快速进入运行状态)
?并行安装(新旧系统并行运行一段时间)
?阶段安装(经过一系列的步骤和阶段使新系统各部分逐步投入运行)
3.4 数据库应用系统测试
?拟定测试目标、计划、方法与步骤
?数据加载,准备测试数据
?指导应用程序员进行模块测试进行验收
?准备系统集成测试环境测试工具
?写出数据库运行测试报告
3.5 培训与用户支持
4.数据库系统的运行和管理
4.1 数据库系统的运行计划
?运行策略的确定
<广告>
?确定数据库系统报警对象和报警方式
?数据库系统的管理计划(执行,故障/恢复,安全性,完整性,用户培训和维护)
4.2 数据库系统的运行和维护
?新旧系统的转换
?收集和分析报警数据(执行报警、故障报警、安全报警)
?连续稳定的运行
?数据库维护(数据库重构、安全视图的评价和验证、文档维护)
?数据库系统的运行统计(收集、分析、提出改进措施)
?关于运行标准和标准改进一致性的建议
?数据库系统的审计
4.3 数据库管理
?数据字典和数据仓库的管理
?数据完整性维护和管理(实体完整性、参照完整性)
?数据库物理结构的管理(保证数据不推迟访问)
?数据库空间及碎片管理
?备份和恢复(顺序、日志(审计痕迹)、检查点)
?死锁管理(集中式、分布式)
?并发控制(可串行性、锁机制、时间戳、优化)
?数据安全性管理(加密、安全、访问控制、视图、有效性确认规则)
?数据库管理员(DBA)职责
4.4 性能调整
?SQL语句的编码检验
?表设计的评价
?索引的改进
?物理分配的改进
?设备增强
?数据库性能优化
4.5 用户支持
?用户培训
?售后服务
5. SQL
5.1 数据库语言
?数据库语言的要素
?数据库语言的使用方式(交互式和嵌入式)
5.2 SQL概述
?SQL语句的特征
?SQL语句的基本成分
5.3 数据库定义
?创建数据库(Create Datebase)、创建表(Create Table)
?定义数据完整性
?修改表(Alter Table)、删除表(Drop Table)
?定义索引(Create Index)、删除索引(Drop Index)
?定义视图(Create View)、删除视图(Drop View)、更新视图
5.4 数据操作
?Select语句的基本机构
?简单查询
?SQL中的选择、投影
?字符串比较,涉及空值的比较
?日期时间,布尔值,输出排序
?多表查询
?避免属性歧义
?SQL中的连接、并、交、差
?SQL中的元组变量
?子查询
5.5 完整性控制与安全机制
?主键(Primary Key)约束
?外键(Foreign Key)约束
?属性值上的约束(Null、Check、Create Domain)
?全局约束(Create Assertions)
?权限、授权(Grant)、销权(Revoke)
5.6 创建触发器(Create Trigger)
5.7 SQL使用方式
?交互式SQL
?嵌入式SQL
?SQL与宿主语言接口(Declare、共享变量、游标、卷游标)
?动态SQL
?API
5.8 SQL 标准化
6. 网络环境下的数据库
6.1 分布式数据库
6.1.1 分布式数据库的概念
?分布式数据库的特点与目标
6.1.2 分布式数据库的体系结构
?分布式数据库的模式结构
?数据分布的策略(数据分片、分布透明性)
?分布式数据库管理系统
6.1.3 分布式查询处理和优化
6.1.4 分布式事务管理
?分布式数据库的恢复(故障、恢复、2段提交、3段提交)
?分布式数据库的透明性(局部、分裂、复制、处理、并发、执行)
6.1.5 分布式数据库系统的应用
6.2 网络环境下数据库系统的设计与实施
?数据的分布设计
?负载均衡设计
?数据库互连技术
6.3 面向Web的DBMS技术
?三层体系结构
?动态Web网页
?ASP、JSP、XML的应用
7.数据库的安全性
7.1 安全性策略的理解
?数据库视图的安全性策略
?数据的安全级别(最重要的、重要的、注意、选择)
7.2 数据库安全测量
?用户访问控制(采用口令等)
?程序访问控制(包含在程序中的SQL命令限制)
?表的访问控制(视图机制)
?控制访问的函数和操作
?外部存储数据的加密与解密
8. 数据库发展趋势与新技术
8.1 面向对象数据库(OODBMS)
8.1.1 OODBMS的特征
8.1.2 面向对象数据模型
?对象结构、对象类、继承与多重继承、对象标识、对象包含、对象嵌套
8.1.3 面向对象数据库语言
8.1.4 对象关系数据库系统(ORDBMS)
?嵌套关系
?复杂类型
?继承、引用类型
?与复杂类型有关的查询
?函数与过程
?面向对象与对象关系
?ORDBMS应用领域
8.2 企业资源计划(ERP)和数据库
8.2.1 ERP概述
?基本MRP(制造资源计划)、闭环MRP、ERP
?基本原理、发展趋势
?ERP设计的总体思路(一个中心、两类业务、三条干线)
8.2.2 ERP与数据库
?运行数据库与ERP数据模型之间的关系
?运行数据库与ERP数据库之间的关系
8.2.3 案例分析
8.3 决策支持系统的建立
?决策支持系统的概念
?数据仓库设计
?数据转移技术
?联机分析处理(OLAP)技术
?企业决策支持解决方案
?联机事务处理(OLTP)