0%

1、掌握关系模型概念和 SQL 语言。

数据模型主要有两大类,分别是概念数据模型(实体一联系模型)和基本数据模型(结构数据模型)。

概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体一联系方法(Entity- Relationship Approach)表示,所以也称 E-R 模型。

基本数据模型是按照计算机系统的观点来对数据和信息建模,主要用于 DBMS 的实现。基本数据模型是数据库系统的核心和基础。基本数据模型通常由数据结构、数据操作和完整性约束三部分组成。其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约是一组完整性规则的集合。

常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型。

层次模型用树形结构表示实体类型及实体间的联系。层次模型的优点是记录之间的联系通过指针来实现,査询效率较高。层次模型的缺点是只能表示 1:n 联系,虽然有多种辅助手段实现 m:n 联系,但比较复杂,用户不易掌握。由于层次顺序的严格和复杂,导致数据的査询和更新操作很复杂,应用程序的编写也比较复杂。

网状模型用有向图表示实体类型及实体间的联系。网状模型的优点是记录之间的联系通过指针实现,m:n 联系也容易实现,査询效率高。其缺点是编写应用程序的过程比较复杂程序员必须熟悉数据库的逻辑结构。

关系模型用表格结构表达实体集,用外键表示实体间的联系。其优点有:
(1)建立在严格的数学概念基础上
(2)概念(关系)单一,结构简单、清晰,用户易懂易用
(3)存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作

分类 含义
DDL数据定义语言 负责数据库定义、数据库对象定义。由create,alter,drop
DML数据操作语言 负责绝对数据库对象的操作,CRUD增删改查
DCL数据控制语言 负责数据库权限访问控制,grant和revoke两个指令组成
TCL事务控制语言 负责处理acid事物,支持commit、rollback指令

2、掌握关系数据库设计方法。

目前已有的数据库设计方法可分为四类,即直观设计法、规范设计法、计算机辅助设计法和自动化设计法。

直观设计法又称单步逻辑设计法,它依赖于设计者的知识、经验和技巧,缺乏工程规范的支持和科学根据,设计质量也不稳定,因此越来越不适应信息管理系统发展的需要。为了改变这种状况,1978 年 10 月来自 30 多个欧美国家的主要数据库专家在美国新奥尔良市专门讨论了数据库设计问题,提出了数据库设计规范,把数据库设计分为需求分析、概念结构设计、逻辑结构设计和物理结构设计 4 个阶段。

目前,常用的规范设计方法大多起源于新奥尔良方法,如基于 3NF 的设计方法、LRA 方法、面向对象的数据库设计方法及基于视图概念的数据库设计方法等。

3、掌握关系数据库索引的概念和使用方法。

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。

搜索码。它表示的是记录各种字符段的一个集合,它可以是一个或者是多个字符段的任意序列组合,并不是惟一的一个标识记录。
数据目录项。即为索引的相关元素,在建立索引的过程中,数据目录项一般具有各种不同的选择方式。
记录ID。每一个/段索引在存储内容中惟一的一个标识符。

唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

主键索引
数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。聚集索引和非聚集索引的区别,如字典默认按字母顺序排序,读者如知道某个字的读音可根据字母顺序快速定位。因此聚集索引和表的内容是在一起的。如读者需查询某个生僻字,则需按字典前面的索引,举例按偏旁进行定位,找到该字对应的页数,再打开对应页数找到该字。这种通过两个地方而查询到某个字的方式就如非聚集索引。

索引列
可以基于数据库表中的单列或多列创建索引。多列索引可以区分其中一列可能有相同值的行。如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

4、掌握关系数据库查询处理与查询优化方法。

1、创建索引
对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。

2、复合索引
比如有一条语句是这样的:select * from users where area=’beijing’ and age=22;
如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。

3、索引不会包含有NULL值的列
只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。

4、使用短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的 列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。

5、排序的索引问题
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

6、like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。

7、不要在列上进行运算
select * from users where YEAR(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
select * from users where adddate<‘2007-01-01’;

8、不使用NOT IN和<>操作
NOT IN和<>操作都不会使用索引将进行全表扫描。NOT IN可以NOT EXISTS代替,id<>3则可使用id>3 or id<3来代替。

5、掌握关系数据库事务概念和事务调度方法。

事务是将一组读写操作组合在一起形成一个逻辑单元。这些操作要么全部执行成功提交(commit),要么全部中止失败(abort,rollback),不会留下一个中间状态的烂摊子。所以,失败后程序可以安全的重试,分析原因等。 相反,如果没有对事务的支持,数据库可能持久化很多中间状态,留下无法解释的业务,开发人员处理起来也很麻烦。所以,事务是为了简化编程,提供数据安全/正确性/一致性。当然,任何便利都是有代价的,事务也有一些问题,所以NoSQL数据库,分布式数据库在某种程度上会弱化事务。有些甚至完全放弃事务。

ACID特性

谈到事务,都想到ACID。每个字母分别代表原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性 (Durability)。搞清楚了ACID,就相当于搞清楚了事务的精髓。

事物的调度分类

并行执行:多个事物是可以同时执行的
串行执行:一个事物在执行的时候另外的事物必须等到当前事物执行完才能执行
串行执行会让运行效率低下,而并行执行会破坏数据库的一致性

交叉事物的控制(并行执行事物的控制)

乐观控制(乐观锁)
1.每次访问数据的时候,不加锁,都看做是在做读操作,其他事物也能访问当前事物访问的数据。这样就会造成数据不一致性,所以数据库为了使得数据一致性得到保证,在并发的修改了数据之后,数据库会对相关的数据进行回滚。
2.特点
采用的是事后做回滚操作解决冲突问题
事物的数据回滚可能造成级联回滚
在读操作占大多数的情况下,采用乐观控制效率会高

悲观控制(悲观锁)
1.事物访问数据之前先对数据进行加锁,防止其他事物也访问当前的数据
2.特点
采用的是预防冲突发生的思想
采用悲观控制,除非死锁,否则事物肯定会成功
其他事物,在某些情况下也可以是读操作
悲观控制,就是严格的控制了其他事物对当前事物的访问,有效的避免了大量事物的回滚

锁(锁的实质:数据库对元素进行存取的许可证)

锁的分类

1.粒度:库锁,表锁,页锁,行锁 (粒度越大,并发性越差,开销越少;粒度越小,开销越大,并发越好)

2.强度
(1)排他锁(独占锁,写锁)
某个事物T占有了元素A的排他锁,其他事物对元素A的任何锁请求都不会被允许,直到事物T释放了锁
事物T可以对A元素做写操作,也可以做读操作
(2)共享锁(读锁)
某个事物T占有了元素A的共享锁,那么其他事物对元素A的共享锁请求可以成功,排他锁的请求会失败
事物T只能对元素A做读操作,不能做写操作
(3)更新锁
是解决了锁升级带来的死锁问题
一个事物在查询数据的时候对这个元素加“更新锁”,当真正到了修改的时候将“更新锁”升级为“排他锁”,如果查询完成之后,觉得对元素不进行修改,会将锁降级了“共享锁”。
(4)意向锁(能够解决加锁冲突)
T1事物对A表某一行加了共享锁,T2事物对A表加了排他锁,T2事物其实也隐含了对每一行的排他锁,这样就会造成加锁冲突。

解决加锁层级上问题
分类:意向排他锁;意向共享锁
意向锁,在给表,页加锁的时候并不表明是排他,还是共享,只有到了真正要执行的行数据的时候才会真正表明是“意向共享锁”或者是“意向排他锁”

锁的相兼容性

1.一个元素可以加多个共享锁
2.一个元素只能加一个排他锁
3.一个元素不能同时加共享锁和排他锁

锁升级/降级

共享锁转成排他锁,锁升级
排他锁转成共享锁,锁降级

两段锁协议

主要解决了:冲突事物的可串行话,简化加锁算法
定义:增长阶段,事物只能加锁,不能释放锁;收缩阶段,事物只能解锁,不能获得锁

加锁导致问题

问题:1.事物阻塞,等待;2.死锁
事物各自持有对方想要的锁,并且都在相互等待对方释放锁

解决方式:
1.一次封锁法,事物一次就占据所有字资源,要么全部封锁,要么全不封锁
2.顺序加锁,定义锁的加锁顺序,只能这么来
3.时间戳

6、掌握数据库并发控制技术。

https://baijiahao.baidu.com/s?id=1663478291935672795&wfr=spider&for=pc

7、了解非关系数据库背景、特点和分类。

NOSQL 即 Not Only SQL,可直译“不仅仅是 SQL”,这项技术正在掀起一场全新的数据库革命性运动。

数据的模式包括多种类型,如层次模型、网状模型、关系模型等,而在实际应用过程中,几乎都是在用关系模型,主流的数据库系统都是关系型的。但随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。这也就使得 NOSQL 技术进入了人们的视野。

NOSQL 的出现打破了长久以来关系型数据库与 ACID 理论大一统的局面。NOSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。

关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

与关系型数据库相比,NOSQL 数据库具有以下几个优点:
1.易扩展
NOSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力
2.大数据量,高性能
NOSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MYSQL 使用 Query Cache,每次表一更新 Cache 就失效,它是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NOSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NOSQL 在这个层面上来说性能就高很多了。
3.灵活的数据模型
NOSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个梦。这点在大数据量的 web2.0 时代尤其明显。
4.高可用
NOSQL 在不太影响性能的情况,就可以方便地实现高可用的架构。比如 Cassandra Hbase 模型,通过复制模型也能实现高可用。

当然,NOSQL 也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验,缺乏相关专家技术的支持等。

对于非关系型数据库主要有四种数据存储类型:键值对存储(key-value),文档存储(document store),基于列的数据库(column-oriented),还有就是图形数据库(graph database)。

1、了解数据挖掘的定义、功能、常用方法。

定义

数据挖掘(Data Mining)技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行査询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在数据挖掘技术在商业应用中已经可以马上投入使用,因为对这种技术进行支持的三种基础技术已经发展成熟,它们是海量数据搜集、强大的多处理器计算机和数据挖掘算法。

从技术角度来看,数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海而皆准的知识,仅支持特定的发现问题。

功能

数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下五类功能。

1.自动预测趋势和行为
数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其他可预测的问题包括预报破产及认定对指定事件最可能做出反应的群体。

2.关联分析
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。

3.聚类
数据库中的记录可被划分为一系列有意义的子集,即聚类。聚类增强了人们对客观现实的认识,是概念描述和偏差分析的先决条件。聚类技术主要包括传统的模式识别方法和数学分类学。20 世纪 80 年代初,Michalski 提出了概念聚类技术及其要点,即在划分对象时不仅要考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免了传统技术的某些片面性。

4.概念描述
概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法很多,如决策树方法、遗传算法等。

5.偏差检测
数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。

技术

常用的数据挖掘技术包括关联分析、序列分析、分类、预测、聚类分析及时间序列分析等

1.关联分析

关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。其主要依据是事件发生的概率和条件概率应该符合一定的统计意义。

对于结构化的数据,以客户的购买习惯数据为例,利用关联分析,可以发现客户的关联购买需要。例如,一个开设储蓄账户的客户很可能同时进行债券交易和股票交易,购买纸尿裤的男顾客经常同时购买啤酒等。利用这种知识可以采取积极的营销策略,扩展客户购买的产品范围,吸引更多的客户。通过调整商品的布局便于顾客买到经常同时购买的商品,或者通过降低一种商品的价格来促进另一种商品的销售等。

对于非结构化的数据,以空间数据为例,利用关联分析,可以发现地理位置的关联性。例如,85%的靠近高速公路的大城镇与水相邻,或者发现通常与高尔夫球场相邻的对象等。

2.序列分析

序列分析技术主要用于发现一定时间间隔内接连发生的事件。这些事件构成一个序列,发现的序列应该具有普遍意义,其依据除了统计上的概率之外,还要加上时间的约束。

3.分类分析

分类分析通过分析具有类别的样本的特点,得到决定样本属于各种类别的规则或方法利用这些规则和方法对未知类别的样本分类时应该具有一定的准确度。其主要方法有基于统计学的贝叶斯方法、神经网络方法、决策树方法及支持向量机(support vector machines)等。

利用分类技术,可以根据顾客的消费水平和基本特征对顾客进行分类,找出对商家有较大利益贡献的重要客户的特征,通过对其进行个性化服务,提高他们的忠诚度。

利用分类技术,可以将大量的半结构化的文本数据,如 WEB 页面、电子邮件等进行分类。可以将图片进行分类,例如,根据已有图片的特点和类别,可以判定一幅图片属于何种类型的规则。对于空间数据,也可以进行分类分析,例如,可以根据房屋的地理位置决定房屋的档次。

4.聚类分析

聚类分析是根据物以类聚的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程。其主要依据是聚到同一个组中的样本应该彼此相似,而属于不同组的样本应该足够不相似。

仍以客户关系管理为例,利用聚类技术,根据客户的个人特征及消费数据,可以将客户群体进行细分。例如,可以得到这样的一个消费群体:女性占 91%,全部无子女、年龄在 31 岁到 40 岁占 70%,高消费级别的占 64%,买过针织品的占 91%,买过厨房用品的占 89%,买过园艺用品的占 79%。针对不同的客户群,可以实施不同的营销和服务方式,从而提高客户的满意度。

对于空间数据,根据地理位置及障碍物的存在情况可以自动进行区域划分。例如,根据分布在不同地理位置的 ATM 机的情况将居民进行区域划分,根据这一信息,可以有效地进行 ATM 机的设置规划,避免浪费,同时也避免失掉每一个商机。

对于文本数据,利用聚类技术可以根据文档的内容自动划分类别,从而便于文本的检索。

5.预测

预测与分类类似,但预测是根据样本的知特征估算某个连续类型的变量的取值的过程,而分类则只是用于判别样本所属的离散类别而已。预测常用的技术是回归分析。

6.时间序列

分析时间序列分析的是随时间而变化的事件序列,目的是预测未来发展趋势,或者寻找相似发展模式或者是发现周期性发展规律。

2、了解数据仓库的产生与发展,掌握数据仓库的定义。

传统的操作型数据库主要是面向业务的,所执行的操作基本上也是联机事务处理但随着企业规模的增长,历史积累的数据越来越多,如何利用历史数据来为未来决策服务,就显得越来越重要了,而数据仓库就是其中的一种技术。

著名的数据仓库专家 W. H. Inmon 在《Building the Data Warehouse》一书中将数据仓库定义为:数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。

1.面向主题的操作型数据库的数据组织面向事务处理任务(面向应用),各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。例如,一个保险公司所进行的事务处理(应用问题)可能包括汽车保险、人寿保险、健康保险和意外保险等,而公司的主要主题范围可能是顾客、保险单、保险费和索赔等。

2.集成的在数据仓库的所有特性中,这是最重要的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

3.相对稳定的操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据査询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的询操作但修改和删除操作很少,通常只需要定期地加载、刷新。

4.随时间变化的操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。数据仓库反映历史变化的属性主要表现在

(1) 数据仓库中的数据时间期限要远远长于传统操作型数据系统中的数据时间期限,传统操作型数据系统中的数据时间期限可能为数十天或数个月,数据仓库中的数据时间期限往往为数年甚至几十年;

(2) 传统操作型数据系统中的数据含有“当前值”的数据,这些数据在访问时是有效的,当然数据的当前值也能被更新,但数据仓库中的数据仅仅是一系列某一时刻(可能是传统操作型数据系统)生成的复杂的快照;

(3) 传统操作型数据系统中可能包含也可能不包含时间元素,如年、月、日、时、分、秒等,而数据仓库中一定会包含时间元素。

数据仓库虽然是从传统数据库系统发展而来,但是两者还是存在着诸多差异,如:从数据存储的内容看,数据库只存放当前值,而数据仓库则存放历史值;数据库数据的目标是面向业务操作人员的,为业务处理人员提供数据处理的支持,而数据仓库则是面向中高层管理人员的,为其提供决策支持等。

3、了解数据仓库与数据挖掘的联系与区别。

数据挖掘(Data Mining)技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在数据挖掘技术在商业应用中已经可以马上投入使用,因为对这种技术进行支持的三种基础技术已经发展成熟,它们是海量数据搜集、强大的多处理器计算机和数据挖掘算法。

从技术角度来看,数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海而皆准的知识,仅支持特定的发现问题。

4、了解常用数据挖掘工具。

1.R
2.Oracle Data Mining
3.Tableau
4.Scrapy
5.Weka
6.八爪鱼采集器
7.RapidMiner
8.KNIME
9.Orange
10.IBM SPSS Modeler
11.Pentaho
12.NLTK

5、了解数据仓库的体系结构,掌握元数据、粒度、分割的概念,了解数据仓库中的数据组织形式。

从数据仓库的概念结构看,一般来说,数据仓库系统要包含数据源、数据准备区、数据仓库数据库、数据集市/知识挖掘库及各种管理工具和应用工具。数据仓库建立之后,首先要从数据源中抽取相关的数据到数据准备区,在数据准备区中经过净化处理后再加载到数据仓库数据库,最后根据用户的需求将数据导入数据集市和知识挖掘库中当用户使用数据仓库时,可以利用包括 OLAP (On-line Analysis Processing,联机分析处理) 在内的多种数据仓库应用工具向数据集市/知识挖掘库或数据仓库进行决策査询分析或知识挖掘。数据仓库的创建、应用可以利用各种数据仓库管理工具辅助完成。

元数据

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。

粒度

粒度是数据仓库的重要概念。粒度可以分为两种形式。
第一种粒度是对数据仓库中的数据的综合程度高低的一个度量,它既影响数据仓库中的数据量的多少,也影响数据仓库所能回答询问的种类。在数据仓库中,多维粒度是必不可少的。由于数据仓库的主要作用是DSS分析,因而绝大多数查询都基于一定程度的综合数据之上,只有极少数查询涉及细节。所以应该将大粒度数据存储在快速设备如磁盘上,小粒度数据存储在低速设备如磁带上。
第二种粒度是样本数据库.它根据给定的采样率从细节数据库中抽取出一个子集,这样样本数据库中的粒度就不是根据综合程度的不同来划分,而是由采样率的高低来划分,采样粒度不同的样本数据库可以具有相同的数据综合程度。

分割

分割是数据仓库中的另一个重要概念,它的目的同样在于提高效率。它是将数据分散到各自的物理单元中去,以便能分别独立处理。有许多数据分割的标准可供参考,如日期、地域、业务领域等,也可以是其组合。一般而言,分割标准总应包括日期项,因为它十分自然而且分割均匀。

数据仓库中的数据组织形式

1.简单堆积:以逐个记录为基础堆积的数据。
2.轮转综合数据存储:比如每天的数据综合放到一个日槽中,七天后将七个日槽加到一起,放入周槽,月底将周槽相加放入月槽等。
3.简单直接文件:一般以较长的时间生成,是操作型数据间隔一定时间的快照。
4.连续文件:将一个或者多个简单直接文件生成一种连续文件。

6、了解数据仓库的数据模型,包括概念数据模型、逻辑数据模型、物理数据模型。

1.数据仓库的参考框架
数据仓库的参考框架由数据仓库基本功能层、数据仓库管理层和数据仓库环境支持层组成。

(1) 数据仓库基本功能层。数据仓库的基本功能层部分包含数据源、数据准备区、数据仓库结构、数据集市或知识挖掘库,以及存取和使用部分。本层的功能是从数据源抽取数据,对所抽取的数据进行筛选、清理,将处理过的数据导入或者说加载到数据仓库中,根据用户的需求设立数据集市,完成数据仓库的复杂査询、决策分析和知识的挖掘等。
(2) 数据仓库管理层。数据仓库的正常运行除了需要数据仓库功能层提供的基本功能外,还需要对这些基本功能进行管理与支持的结构框架。数据仓库管理层由数据仓库的数据管理和数据仓库的元数据管理组成。
数据仓库的数据管理层包含数据抽取、新数据需求与查询管理,数据加载、存储、刷新和更新系统,安全性与用户授权管理系统及数据归档、恢复及净化系统等四部分。
(3) 数据仓库的环境支持层。数据仓库的环境支持层由数据仓库数据传输层和数据仓库基础层组成。数据仓库中不同结构之间的数据传输需要数据仓库的传输层来完成。
数据仓库的传输层包含数据传输和传送网络、客户/服务器代理和中间件、复制系统及数据传输层的安全保障系统。

2.数据仓库的架构大众观点的数据仓库的架构如图所示。

(1) 数据源。是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于 RDBMS(关系型 DBMS)中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等。
(2) 数据的存储与管理。是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
(3) OLAP 服务器。对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:基于关系数据库的OLAP实现(ROLAP)、基于多维数据组织的OLAP实现(MOLAP) 和 基于混合数据组织的OLAP实现(HOLAP)。 ROLAP 基本数据和聚合数据均存放在 RDBMS 之中;MOLAP 基本数据和聚合数据均存放于多维数据库中;HOLAP 基本数据存放于 RDBMS 之中,聚合数据存放于多维数据库中。
(4) 前端工具。主要包括各种报表工具、査询工具、数据分析工具、数据挖掘工具及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对 OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。

1.概念数据模型(CDM)(定义实体的概念以及实体之间的联系)

概念数据模型是现实世界到信息世界的第一层抽象,主要是在高水平和面向业务的角度对信息的一种描述,通常作为业务人员和技术人员之间沟通的桥梁。作为现实世界的概念化结构,这种数据模型使得数据库的设计人员在最初的数据库设计阶段将精力集中在数据之间的联系上,而不用同时关注数据的底层细节(如所用的计算机系统的特性以及数据库管理系统—DBMS的特性)。
概念数据模型主要的贡献在于分析数据之间的联系,它是用户对数据存储的一种高度抽象,反应的是用户的一种业务层面的综合信息需求。
在这个阶段一般会形成整个数据模型或者是软件系统中的实体的概念以及实体之间的联系,为构建逻辑数据模型奠定基础。下图中描述了现实世界和信息世界以及最终转换成计算机世界信息的转换流程。

设计概念数据模型的主要工具是E-R图,扩展的E-R图。

2.逻辑数据模型(LDM)(定义实体的属性)

逻辑数据模型是对概念数据模型进一步具体化,在概念数据模型定义实体的基础上定义了各个实体的属性,是用户从数据库的角度能够看到的数据的模型,是所使用的数据库管理系统(Database Management System,DBMS)所支持的数据类型(网状数据模型、层次数据模型、关系数据模型)。这种数据模型架起了用户和系统之间的桥梁,既要面向用户,同时也考虑到了所用的DBMS所支持的特性。
逻辑数据模型反映了系统分析设计人员针对数据在特定的存储系统(如MySQL)的观点,是对概念数据模型的进一步细化和划分。逻辑数据模型是根据业务之间的规则产生的,是关于业务对象、业务对象数据以及业务对象彼此之间关系的蓝图。
逻辑数据模型的内容包括所有的实体、实体的属性、实体之间的关系以及每个实体的主键、实体的外键(用于维护数据完整性)。其主要目标是尽可能详细的描述数据,但是并不涉及这些数据的具体物理实现。逻辑数据模型不仅会最终影响数据库的设计方向,并最终会影响到数据库的性能(如主键设计、外键等都会最终影响数据库的查询性能)。
逻辑数据模型是开发物理数据库的完整文档,逻辑数据模型主要采用的是层次模型、网状模型、关系模型,其中最常用的是关系模型,对应的数据库称之为关系型数据库,如MySQL。

3.物理数据模型(PDM)(数据库设计)

物理数据模型,又称为物理模型,是概念数据模型和逻辑数据模型在计算机中的具体表示。该模型描述了数据在物理存储介质上的具体组织结构,不但与具体的数据库管理系统相关,同时还与具体的操作系统以及硬件有关,但是很多工作都是由DBMS自动完成的,用户所要做的工作其实就是添加自己的索引等结构即可。
物理数据模型是在逻辑数据模型的基础上,综合考虑各种存储条件的限制,进行数据库的设计,从而真正实现数据在数据库中的存放。其主要的工作是根据逻辑数据模型中的实体、属性、联系转换成对应的物理模型中的元素,包括定义所有的表和列,定义外键以维持表之间的联系等,具体例子如下:

7、掌握联机分析处理(OLAP)技术的概念、特征。

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。
F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;
A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户所希望的方式给出报告;
M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;
I是信息性(Information),指能及时获得信息,并且管理大容量信息。

8、掌握 OLAP 中的多维分析操作,包括钻取、切片和切块、旋转。

(1)切片和切块(Slice and Dice)
切片和切块是在维上做投影操作。
切片就是在多维数据上选定一个二维子集的操作,即在某两个维上取一定区间的维成员或全部维成员,而在其余的维上选定一个维成员的操作。
维是观察数据的角度,那么切片的作用或结果就是舍弃一些观察角度,使人们能在两个维上集中观察数据。因为人的空间想象能力毕竟有限,一般很难想象四维以上的空间结构,所以对于维数较多的多维数据空间,数据切片是十分有意义的.
(2)钻取(Drill)
钻取有向下钻取(Drill Down)和向上钻取(Drill up)操作。向下钻取是使用户在多层数据中展现渐增的细节层次,获得更多的细节性数据。向上钻取以渐增概括方式汇总数据(例如,从周到季度,再到年度)。
(3)旋转(Pivoting)
通过旋转可以得到不同视角的数据。旋转操作相当于在平面内将坐标轴旋转。例如,旋转可能包含了交换行和列,或是把某一个行维移到列维中去,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)。

9、了解多维联机分析处理、关系联机分析处理、MOLAP 和 ROLAP 的差异、混合型联机分析处理;OLAP 的衡量标准。

数据仓库与OLAP的关系是互补的,现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取。
OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。

ROLAP

ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。

MOLAP

MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(PhysicalOLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(VirtualOLAP)。

HOLAP

由于MOLAP和ROLAP有着各自的优点和缺点,且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。

10、了解数据预处理的原因、数据预处理的方法。

原因

(1)现实世界的数据是肮脏的(不完整,含噪声,不一致)
(2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据;数据仓库需要对高质量的数据进行一致地集成)
(3)原始数据中存在的问题:
不一致 —— 数据内含出现不一致情况
重复
不完整 —— 感兴趣的属性没有
含噪声 —— 数据中存在着错误、或异常(偏离期望值)的数据
高维度

方法

(1)数据清洗 —— 去噪声和无关数据
(2)数据集成 —— 将多个数据源中的数据结合起来存放在一个一致的数据存储中
(3)数据变换 —— 把原始数据转换成为适合数据挖掘的形式
(4)数据归约 —— 主要方法包括:数据立方体聚集,维度归约,数据压缩,数值归约,离散化和概念分层等。

11、掌握数据清洗、数据集成和变换、数据归约的概念与方法,具有应用上述方法进行数据清洗的能力。

数据清洗

1)处理缺失值方法:
a.忽略元祖,挖掘任务涉及分类任务中如果缺少类标号时通常这样做
b.人工填写缺失值,量大时行不通
c.使用一个全局常量填充缺失值,简单但不可靠
d.使用属性的均值填充缺失值
e.使用与给定元组属同一类的所有样本的属性均值
f.使用最有可能的值填充缺失值,可以用回归,使用贝叶斯形式化的基于推理的工具或决策树归纳确定,是流行的做法。
2)数据光滑技术:噪声是被测量的变量的随机误差或方差
a.分箱,分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据的值,有序值分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此进行局部光滑。几种分箱技术:用箱均值光滑、用箱边界光滑、用箱中位数光滑。
b.回归:可以用一个函数(如回归函数)拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”线,是的一个属性可以用来预测另一个。多元线性回归是线性回归的扩展,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。
c.聚类:通过聚类检测离群点
3)数据清理作为一个过程的方法:过程的第一步是偏差检测,有大量商业工具帮助我们进行偏差检测,数据清洗工具、数据审计工具、数据迁移工具、ETL工具。新的数据清理方法强调加强交互性,如Potter’s Wheel,集成了偏差检测和数据变换。

数据集成和变换

1)数据集成:数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。
数据集成有三个主要问题:
a.模式集成和对象匹配,实体识别问题:来自多个信息源的现实世界的等价实体如何才能匹配?元数据可以帮助避免模式集成的错误。
b.冗余:有些冗余可以被相关分析检测到。通过计算属性A,B的相关系数(皮尔逊积矩系数)来判断是否冗余;对于离散数据,可通过卡方检验来判断两个属性A和B之间的相关联系。
c.数据值冲突的检测与处理
2)数据变换:将数据转换或统一成适合于挖掘的形式。涉及如下内容:
a.光滑:去掉数据的噪声,包括分箱,回归和聚类
b.聚集:对数据进行汇总或聚集。这一步通常用来为多粒度数据分析构造数据立方体
c.数据泛化:使用概念分层,用高层概念替换底层或“原始”数据。
d.规范化:又称为归一化,feature scaling特征缩放。将属性数据按比例缩放,使之落入一个小的特定区间。规范化方法:
1.最小-最大规范化:v’=[(v-min)/(max-min)]*(new_max-new_min)+new_min
2.z-score规范化(或零均值规范化):v’=(v-属性A的均值E)/属性A的标准差∽
3.小数定标规范化:v’=v/10的j次方,j是使Max(|v’|)<1的最小整数
e.属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。

数据归约

数据集可能非常大!面对海量数据进行复杂的数据分析和挖掘将需要很长的时间。数据归约技术可以用来得到数据集的归约表示,它小很多,但仍接近保持原数据的完整性。数据归约策略如下:
1)数据立方体聚集:聚集操作用于数据立方体结构中的数据。数据立方体存储多维聚集信息。
2)属性子集选择,参见文本分类概述中特征选择算法
3)维度归约:使用数据编码或变换,以便得到原数据的归约或“压缩”表示。归约分为无损的和有损的。有效的有损维归约方法为:小波变换和主成分分析
4)数值归约:通过选择替代的、‘较小的’数据表示形式来减少数据量
5)离散化和概念分层产生

12、了解关联规则的概念和分类。

关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。其中,关联规则XY,存在支持度和信任度。

基于规则中处理的变量的类别

关联规则处理的变量可以分为布尔型和数值型。布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书” ,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。

基于规则中数据的抽象层次

基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。

基于规则中涉及到的数据的维数

关联规则中的数据,可以分为单维的和多维的。在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。

1、电子政务的概念、内容和技术形式

(1)掌握电子政务的概念

电子政务实质上是对现有的、工业时代形成的政府形态的一种改造,即利用信息技术和其他相关技术,来构造更适合信息时代的政府组织结构和运行方式。因此,电子政务在概念、内容和技术形式上都区别于现有政务。

现有的政府组织形态是工业革命的产物,与工业化的行政管理的需求和技术经济环境相适应,已经存在了两百年以上。随着网络时代和网络经济的来临,管理正由传统的金字塔模式走向网络模式。政府的组织形态也必然由金字塔式的垂直结构向网状结构转变,从而减少管理的层次,以各种形式通过网络与企业和公民建立直接的联系。因此,电子政务的发展过程实质上是对原有的政府形态进行信息化改造的过程,通过不断的摸索和实践,最终构造出一个与信息时代相适应的政府形态。

(2)熟悉电子政务的内容

在社会中,与电子政务相关的行为主体主要有三个,即:政府、企(事)业单位及公民。因此,政府的业务活动也主要围绕着这三个行为主体展开,即包括政府与政府之间的互动;政府与企(事)业单位,尤其是与企业的互动;政府与公民的互动。在信息化的社会中,这三个行为主体在数字世界的映射,构成了电子政务、电子商务和电子社区三个信息化的主要领域。电子商务在经历了一个发展热潮之后,目前正在向一个新的、更扎实的阶段发展;电子政务则是当前全球关注的热点,正在形成一个发展的热潮。

(3)熟悉电子政务的技术形式

电子政务的技术模式由网络管理模式、信息资源管理模式和应用开发模式,以及网络安全、标准化等构成。电子政务通过一定的技术模式将现有的和即将建设的各个政府网络和应用系统联结起来,统一标准和规范,做到互联互通,成为一个统一的政府信息化平台。

网络管理模式
电子政务在网络管理上分为政府专网和通用网络两部分,包括专用网络、内部网络和外部网络。

信息资源管理模式
信息资源是电子政务的处理对象,也是电子政务的基础。采用何种模式进行信息资源管理,关系到电子政务的成败。政府部门的信息从内容上大致可以分成两类:一类是来自公文系统的文档型信息,另一类是来自数据处理系统的结构化信息。电子政务可以选用的信息资源管理模式有多种,目前主要有两种,即元数据管理模式和XML数据管理模式。

应用开发模式
应用开发是电子政务最关键的一环,也是体现电子政务价值的所在。电子政务的应用开发模式主要有:G2E/G2B/G2G/G2C。

电子政务的安全体系
电子政务系统中的重要组成部分就是安全体系。电子政务的安全体系包括物理安全、网络安全、信息安全及安全管理等方面。

电子政务的标准化
电子政务是一项系统工程,是国家信息化建设的重要领域,而标准化是电子政务重要的支撑手段。国家信息化领导小组发布的《关于我国电子政务建设指导意见》规定了电子政务建设的指导思想和原则:统一规划,加强领导;需求主导,突出重点;整合资源,拉动产业;统一标准,保障安全。在阐释“统一标准,保障安全”原则时指出,“加快制定统一的电子政务标准规范,大力推进统一标准的贯彻落实。要正确处理发展与安全的关系,综合平衡成本和效益,一手抓电子政务建设,一手抓网络与信息安全,制定并完善电子政务网络与信息安全保障体系”。

2、中国政府信息化的策略和历程

1.我国政府信息化最早起始于20世纪80年代末期“中国国家经济信息系统”的建设和运行。
2.到了20世纪90年代,随着信息技术的飞速发展和广泛应用,我国政府信息化也得到了长足的发展,其中最主要的成果有:
一是以“金”字头为代表的多项信息工程项目取得了突破性进展。
二是政府上网工程初具规模。在“金”字系统工程取得重大进展的同时,从1999年起,又及时地推出包含“三金”在内的“十二金”工程。
三是在“十二金”工程的带动下,各级政府都加强了电子政务的软件和硬件两方面的基础建设,建成了覆盖广泛的“两网、一站、四库”:“两网”是指政务内网和政务外网;“一站”,是政府门户网站;“四库”,即建立人口、法人单位、空间地理和自然资源、宏观经济4个基础数据库。
四是在中央的大力倡导下,各地在推动政府信息化方面健康发展,并在全国普遍实行了政府上网工程。到目前为止,全国绝大多数县级以上的政府都实现了电子政务。一些地区、部门在政府信息化方面已取得了显著成效。

3、电子政务应用模式

(1)熟悉政府对政府(G2G)模式

政府间的信息交换有助于不同部门间的协同办公,可以解决信息孤岛的问题,使目前很难实现的信息共享、交换、协同工作等问题得以较好的解决。

(2)熟悉政府对企业(G2B)模式

利用互联网等网络手段为经济活动提供信息化支持,包括:电子商务、电子税务、电子金融、电子海关等基础设施服务。

(3)熟悉政府对公众(G2C)模式

利用公共网络为公众提供广泛的信息服务,包括卫生、教育、法律、税务、金融等一系列的信息服务。

(4)熟悉政府对公务员(G2E)模式

利用Intranet建立有效的行政办公体系,为提高政府工作效率服务。内容包括:电子公文、电子邮寄、电子规划管理、电子人事管理等。

1、电子商务的概念及基本特征

(1)熟悉电子商务的概念

电子商务(Electronic Commerce,EC)是指买卖双方利用现代开放的Internet,按照一定的标准所进行的各类商业活动。主要包括网上购物、企业之间的网上交易和在线电子支付等新型的商业运营模式。产品可以是实体化的,如计算机、汽车、电视,也可以是数字化的,如新闻、影像、软件;也可以直接提供服务,如安排旅游、远程教育等。

(2)熟悉电子商务的基本特征

电子商务分三个方面:即电子商情广告、电子选购和交易及电子交易凭证的交换、电子支付与结算以及网上售后服务等。
参与电子商务的实体有四类:顾客(个人消费者或集团购买)、商户(包括销售商、制造商、储运商)、银行(包括发卡行、收单行)及认证中心。

2、电子商务的类型

(1)熟悉企业与企业之间的电子商务(B2B)模式

两个或若干个有业务联系的公司通过B2B模式彼此连接起来,形成网上的虚拟企业圈。例如,企业利用计算机网络向它的供应商进行采购,或利用计算机网络进行付款等。B2B具有很强的实时商务处理能力,使企业能以一种安全、可靠、简便、快捷的方式进行企业间的商务联系活动。

(2)熟悉商业企业与消费者之间的电子商务(B2C)模式

企业与消费者之间的电子商务是人们最熟悉的一种电子商务类型。网上商店利用Internet提供的双向交互通信,完成网上购物的过程。这类电子商务主要是借助于Internet所开展的在线式销售活动。最近几年随着Internet的发展,这类电子商务的发展异军突起。例如,在Internet上目前已出现许多大型超级市场,所出售的产品一应俱全,从食品、饮料到电脑、汽车等,几乎包括了所有的消费品。由于这种模式节省了客户和企业双方的时间和空间,大大提高了交易效率,节省了各类不必要的开支,因而这类模式得到了人们的认同,获得了迅速的发展。

(3)熟悉消费者与消费者之间的电子商务(C2C)模式

C2C电子商务平台就是通过为买卖双方提供一个在线交易平台,使卖方可以主动提供商品上网拍卖,而买方可以自行选择商品进行竞价。

(4)熟悉电子商务与线下实体店有机结合向消费者提供商品和服务(O2O) 模式

O2O是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个概念最早来源于美国。O2O的概念非常广泛,既可涉及到线上,又可涉及到线下,可以称为O2O。如团购就属于一种典型的O2O。

1、项目管理的理论与体系

(1)了解项目管理基础知识

项目管理是项目的管理者,在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。即从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。

(2)掌握项目管理知识体系的构成

1、项目范围管理
是为了实现项目的目标,对项目的工作内容进行控制的管理过程。它包括范围的界定,范围的规划,范围的调整等。

2、项目时间管理
是为了确保项目最终的按时完成的一系列管理过程。它包括具体活动的界定,如:活动排序、时间估计、进度安排及时间控制等项工作。

3、项目成本管理
是为了保证完成项目的实际成本、费用不超过预算成本、费用的管理过程。它包括资源的配置,成本、费用的预算以及费用的控制等项工作。

4、项目质量管理
是为了确保项目达到客户所规定的质量要求所实施的一系列管理过程。它包括质量规划,质量控制和质量保证等。

5、项目人力资源管理
是为了保证所有项目关系人的能力和积极性都得到最有效地发挥和利用所做的一系列管理措施。它包括组织的规划、团队的建设、人员的选聘和项目的班子建设等一系列工作。

6、项目沟通管理
是为了确保项目的信息的合理收集和传输所需要实施的一系列措施,它包括沟通规划,信息传输和进度报告等。

7、项目风险管理
涉及项目可能遇到各种不确定因素。它包括风险识别,风险量化,制订对策和风险控制等。

8、项目采购管理
是为了从项目实施组织之外获得所需资源或服务所采取的一系列管理措施。它包括采购计划,采购与征购,资源的选择以及合同的管理等项目工作。

9、项目集成管理
是指为确保项目各项工作能够有机地协调和配合所展开的综合性和全局性的项目管理工作和过程。它包括项目集成计划的制定,项目集成计划的实施,项目变动的总体控制等。

(3)了解 IPMP/PMP、PRINCE2 等项目管理认证体系

(4)掌握项目管理成熟度模型

参考[开发管理(七)软件过程改进]

(5)了解项目管理的量化方法

2、组织结构对项目的影响

(1)了解组织结构对项目的影响。

01、职能式组织结构

职能式组织结构就是在组织目前的职能型等级结构下加以管理,一旦项目开始运行,项目的各个组成部分就由各职能单位承担,各单位负责完成其分管的项目内容。如果项目的性质既定,某一职能领域对项目的完成发挥着主导性的作用,职能领域的高级经理将负责项目的协调工作。

职能式组织结构的优点:

1、人员的使用上有较大的灵活性,只要选择了一个合适的职能部门作为项目的上级,该部门就能为项目提供它所需要的专业技术人员,而且技术专家可以同时被不同的项目所使用,并在工作完成后又可以回去做他原来的工作;

2、在人员离开项目组甚至离开公司时,职能部门可作为保持项目连续性的基础;

3、职能部门可以为本部门的专业人员提供一条正常的晋升途径。 

职能式组织结构的缺点:

1、项目经常缺少重点,每个职能单位都有自己的核心常规业务,有时为了满足自己的基本需要,对项目的责任就被忽视,尤其是项目给单位带来的利益不同时;

2、这种组织结构在跨部门之间的合作与交流方面存在一定困难;

3、项目参与者的动机不够强,他们认为项目是一项额外的负担,与他们的职业发展和提升无直接关系;

02、项目式组织结构

项目式组织结构就是指创建独立项目团队,这些团队的经营与母体组织的其他单位分离,有自己的技术人员与管理人员,企业分配给项目团队一定的资源,然后授予项目经理执行项目的最大自由。

项目式组织结构的优点:

1、这种项目团队重点集中,项目经理对项目全权负责,项目团队工作者的唯一任务就是完成项目,并只对项目经理负责,避免了多重领导;

2、项目团队的决策是在项目内制定,反应时间比较短;

3、在这种项目团队中,成员动力强、凝聚力高,参与者分享项目及小组的共同目标与个人责任比较明确。

项目式组织结构的缺点:

1、当一个公司有多个项目时,每个项目有自己一套独立的班子,这将导致不同项目的重复努力和规模经济的丧失;

2、项目团队自身是一个独立的实体,容易产生一种被称为“项目炎症”的疾病,即项目团队与母体组织之间出现一条明显的分界线,削弱项目团队与母体组织之间的有效融合;

3、创建自我控制的项目团队限制了用最好的技术来解决问题;

4、对项目组成员来说,缺乏一种事业的连续性和保障,项目一旦结束,返回原来的职能部门可能会比较困难。

03、矩阵式组织结构

矩阵式组织结构是一种混合形式,它在常规的职能层级结构之上“加载”了一种水平的项目管理结构。根据项目与职能经理相对权力的不同,实践中存在不同种类的矩阵体系,分别有权力明显倾向于职能经理的职能矩阵,权力明显倾向于项目经理的项目矩阵和传统矩阵安排的平衡矩阵。

矩阵式组织结构的优点:

1、和职能式组织结构一样,资源可以在多个项目中共享,可大大减少项目式组织中人员冗余的问题;

2、项目是工作的焦点,具有一个正式指定的项目经理会使他对项目给予更强的关注,负责协调和整合不同单位的工作;

3、当有多个项目同时进行时,公司可以平衡资源以保证各个项目都能完成其各自的进度、费用及质量要求;

4、项目组成员对项目结束后的忧虑减少,他们一方面与项目有很强的联系,另一方面他们对职能部门也有一种“家”的感觉。

矩阵式组织结构的缺点:

1、矩阵结构加剧了职能经理和拥有关键技能与看法的项目经理之间的紧张局面;

2、任何情况下的跨项目分享设备、资源和人员都会导致冲突和对稀缺资源的竞争;

3、在项目执行过程中,项目经理必须就各种问题与部门经理进行谈判和协商,从而导致决策的制定被耽误;

4、矩阵管理与命令统一的管理原则相违背,项目组成员有两个上司,即项目经理和部门经理,当他们的命令有分歧时,会令成员感到左右为难,无所适从。

3、信息系统项目典型生命周期模型

(1)掌握瀑布模型及其瀑布模型基础上改进的模型
(2)了解原型化模型
(3)了解敏捷开发模型
(4)了解软件生命周期其它模型

该章节统一参考[开发方法(二)软件开发模型]

4、单个项目的管理过程

(1)掌握项目整体管理的含义、作用
(2)了解项目整体管理过程
(3)掌握项目进度管理
(4)了解项目成本管理
(5)了解项目质量管理
(6)了解项目人力资源管理
(7)了解项目沟通管理和干系人管理
(8)了解项目风险管理
(9)了解项目单个项目管理的其它方法

该章节统一参考[软考-开发管理]

5、信息系统安全管理

(1)掌握信息系统安全策略
(2)了解信息安全系统工程
(3)了解 PKI 公开密钥基础设施
(4)了解 PMI 权限(授权)管理基础
(5)了解信息安全审计
(6)了解信息系统安全管理其它方法

该章节统一参考[软考-安全性和保密性设计]

1、熟悉网络安全的一些基本概念、基本属性及网络安全模型等;了解网络安全评估;掌握各种类型的网络安全服务。

2、了解网络安全体系的安全服务、安全机制、安全服务配置和安全管理等;掌握 TCP/IP 协议安全体系。

3、熟悉各种网络安全技术的概念,了解物理安全、网络安全设备、系统安全、应用安全的技术知识。

4、了解网络安全运维与保障的框架、基本原理等知识,掌握安全管理的技术、设施、工具和方法。

1、了解大数据安全管理及安全需求的原则,掌握数据安全分类、定级的原则和方法。

大数据安全管理及安全需求的原则

“谁主管、谁负责”、“管行业必须管安全、管业务必须管安全、管生产经营必须管安全”和“分级负责、属地为主”的原则,履行安全生产工作职责,即“一岗双责”。

数据分类分级应满足以下原则:

a)科学性。按照数据的多维特征及其相互间逻辑关联进行科学和系统地分类,按照大数据安全需求确定数据的安全等级。
b)稳定性。应以数据最稳定的特征和属性为依据制定分类和分级方案。
c)实用性。数据分类要确保每个类下要有数据,不设没有意义的类目,数据类目划分要符合对数据分类的普遍认识。数据分级要确保分级结果能够为数据保护提供有效信息,应提出分级安全要求。
d)扩展性。数据分类和分级方案在总体上应具有概括性和包容性,能够针对组织各种类型数据开展分类和分级,并满足将来可能出现的数据的分类和分级要求。

数据分类分级流程:

组织应结合自身业务特点,针对采集、存储和处理的数据,制定数据分类分级规范,规范应包含但不限于以下内容:
a)数据分类方法及指南;
b)数据分级详细清单,包含每类数据的初始安全级别;
c)数据分级保护的安全要求;

2、了解数据采集、存储、处理、分发、删除等活动的概念,了解相关安全技术与安全要求。

参考[大数据法律法规、政策文件及相关标准(三)相关标准] 《GB/T 37973-2019 信息安全技术 大数据安全管理指南》

3、熟悉云存储安全体系、数据生命周期中的安全风险、保障云存储安全的原则及云计算边界安全相关的概念及云计算安全架构。

云存储安全体系

云计算平台将以分布式云存储为主,同时支持多种存储形态的融合管理,如配合特定场景下的高性能集中式存储,可满足不同业务场景的需求。存储资源池应实现多种异构存储资源的管理,将多种异构设备形成可按需分配的存储资源池;并以块存储、文件存储、分布式存储、对象存储等多种方式提供服务。
分布式存储系统将分散在不同物理服务器上的硬盘空间虚拟化成统一的云存储空间,并能对外提供多种形式的存储服务。分布式存储系统的功能要求如下:
1.应支持分布式架构,将普通 x86 服务器本地硬盘空间虚拟化成统一的存储资源池;
2.应提供在线增量扩容和自动数据平衡能力,允许建设位配置数据分布策略
3.应采用多管理节点设计,避免集群单点失效,自动进行故障监测和数据迁移
4.应具备高可扩展性,可支持上亿个文件和 PB 以上量级的文件存储;支持不重启系统,增加物理服务器后自动扩容
5.应支持数据副本自动冗余,能够提供按需定义的数据副本冗余份数;
6.应支持以块存储或对象存储方式接入。

数据生命周期中的安全风险

保障云存储安全的原则

云计算边界安全相关的概念

云计算安全架构

4、了解大数据安全与防护保障机制、大数据安全审计、大数据安全评估与安全管理系统。

1、物联网

(1)掌握物联网的概念

物联网(The Internet of Things,IoT)是实现物物相连的互联网络。其内涵包含两个方面:第一,物联网的核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,使其进行信息交换和通信。
物联网是将无处不在的末端设备和设施,包括具备“内在智能”的传感器、移动终端、工业系统、楼控系统、家庭智能设施、视频监控系统等和“外在使能”的,如贴上RFID的各种资产、携带无线终端的个人与车辆等“智能化物件或动物”或“智能尘埃”,通过各种无线、有线的长距离/短距离通信网络实现互联互通、应用大集成,以及基于云计算的SaaS营运等模式。提供安全可控乃至个性化的实时在线监测、定位追溯、报警联动、调度指挥、预案管理、远程控制、安全防范、远程维保、在线升级、统计报表、决策支持等管理和服务功能。实现对“万物”的“高效、节能、安全、环保”的“管、控、营”一体化。

(2)熟悉物联网架构

物联网可以分为三个层次,底层是用来感知数据的感知层,即利用传感器、二维码、RFID等设备随时随地获取物体的信息。第二层是数据传输处理的网络层,即通过各种传感网络与互联网的融合,将物体当前的信息实时准确地传递出去。第三层则是与行业需求结合的应用层,即通过智能计算、云计算等对物体进行智能化控制。
1.感知层
感知层用于识别物体、采集信息。感知层包括二维码标签和识读器、RFID标签和读写器、摄像头、GPS、传感器、M2M终端、传感器网关等,主要功能是识别物体、采集信息,与人体结构中皮肤和五官的作用类似。
感知层解决的是人类世界和物理世界的数据获取问题。它首先通过传感器、数码相机等设备,采集外部物理世界的数据,然后通过RFID、条码、工业现场总线、蓝牙、红外等短距离传输技术传递数据。感知层所需要的关键技术包括检测技术、短距离无线通信技术等。
对于目前关注和应用较多的RFID网络来说,附着在设备上的RFID标签和用来识别RFID信息的扫描仪、感应器都属于物联网的感知层。在这一类物联网中被检测的信息就是RFID标签的内容,现在的电子不停车收费系统(Electronic Toll Collection,ETC)、超市仓储管理系统、飞机场的行李自动分类系统等都用到了这个层次的设备。
2.网络层
网络层用于传递信息和处理信息。网络层包括通信网与互联网的融合网络、网络管理中心、信息中心和智能处理中心等。网络层将感知层获取的信息进行传递和处理,类似于人体结构中的神经中枢和大脑。
网络层解决的是传输和预处理感知层所获得数据的问题。这些数据可以通过移动通信网、互联网、企业内部网、各类专网、小型局域网等进行传输。特别是在三网融合后,有线电视网也能承担物联网网络层的功能,有利于物联网的加快推进。网络层所需要的关键技术包括长距离有线和无线通信技术、网络技术等。
物联网的网络层将建立在现有的移动通信网和互联网基础上。物联网通过各种接入设备与移动通信网和互联网相连,例如,手机付费系统中由刷卡设备将内置手机的RFID信息采集上传到互联网,网络层完成后台鉴权认证,并从银行网络划账。
网络层中的感知数据管理与处理技术是实现以数据为中心的物联网的核心技术,包括传感网数据的存储、查询、分析、挖掘和理解,以及基于感知数据决策的理论与技术。云计算平台作为海量感知数据的存储、分析平台,将是物联网网络层的重要组成部分,也是应用层众多应用的基础。在产业链中,通信网络运营商和云计算平台提供商将在物联网网络层占据重要的地位。
3.应用层
应用层实现广泛智能化。应用层是物联网与行业专业技术的深度融合,结合行业需求实现行业智能化,这类似于人们的社会分工。
物联网应用层利用经过分析处理的感知数据,为用户提供丰富的特定服务。物联网的应用可分为监控型(物流监控、污染监控)、查询型(智能检索、远程抄表)、控制型(智能交通、智能家居、路灯控制)和扫描型(手机钱包、高速公路不停车收费)等。
应用层解决的是信息处理和人机交互的问题。网络层传输而来的数据在这一层进入各类信息系统进行处理,并通过各种设备与人进行交互。这一层也可按形态直观地划分为两个子层。一个是应用程序层,进行数据处理,它涵盖了国民经济和社会的每一领域,包括电力、医疗、银行、交通、环保、物流、工业、农业、城市管理、家居生活等,其功能可包括支付、监控、安保、定位、盘点、预测等,可用于政府、企业、社会组织、家庭、个人等。这正是物联网作为深度信息化的重要体现。另一个是终端设备层,提供人机接口。物联网虽然是“物物相连的网”,但最终要以人为本,还是需要人的操作与控制,不过这里的人机界面已远远超出现实中人与计算机交互的概念,而是泛指与应用程序相连的各种设备与人的交互。
应用层是物联网发展的体现,软件开发、智能控制技术将会为用户提供丰富多彩的物联网应用。各种行业和家庭应用的开发将会推动物联网的普及,也给整个物联网产业链带来丰厚的利润。

(3)了解物联网技术的应用

物联网技术

1.射频识别技术
射频识别技术(Radio Frequency Identification,RFID),又称电子标签,是一种通信技术,可通过无线电信号识别特定目标并读写相关数据,而无须识别系统与特定目标之间建立机械或光学接触。该技术是物联网的一项核心技术,很多物联网应用都离不开它。
最初在技术领域,应答器是指能够传输信息、回复信息的电子模块,近些年,由于射频技术发展迅猛,应答器有了新的说法和含义,又称为智能标签或标签。RFID电子阅读器(读写器)通过天线与RFID电子标签进行无线通信,可以实现对标签识别码和内存数据的读出或写入操作。典型的阅读器包含有高频模块(发送器和接收器)、控制单元及阅读器天线。RFID采用的是非接触的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物并可同时识别多个标签,操作快捷方便。这种系统一般由一个询问器(或阅读器)和很多应答器(或标签)组成。RFID的基本组成部分通常包括标签、阅读器和天线。(1)标签(Tag):由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象。(2)阅读器(Reader):读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式。

(3)天线(Antenna):在标签和读取器间传递射频信号。
RFID技术的基本工作原理并不复杂:标签进入磁场后,接收解读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(Passive Tag,无源标签或被动标签),或者由标签主动发送某一频率的信号(Active Tag,有源标签或主动标签),解读器读取信息并解码后,送至中央信息系统进行有关数据处理。
一套完整的RFID系统,是由阅读器与电子标签(即应答器)及应用软件系统三个部分组成的,其工作原理是Reader发射一特定频率的无线电波能量给Transponder,用以驱动Transponder电路将内部的数据送出,此时Reader便依序接收解读数据,送给应用程序作相应的处理。
以RFID卡片阅读器及电子标签之间的通信及能量感应方式来看大致上可以分成:感应耦合(Inductive Coupling)及后向散射耦合(Backscatter Coupling)两种。一般低频的RFID大都采用第一种方式,而较高频大多采用第二种方式。
阅读器根据使用的结构和技术不同可以是读或读/写装置,也是RFID系统信息控制和处理中心。阅读器通常由耦合模块、收发模块、控制模块和接口单元组成。阅读器和应答器之间一般采用半双工通信方式进行信息交换,同时阅读器通过耦合给无源应答器提供能量和时序。在实际应用中,可进一步通过Ethernet或WLAN等实现对物体识别信息的采集、处理及远程传送等管理功能。应答器是RFID系统的信息载体,目前应答器大多由耦合原件(线圈、微带天线等)和微芯片组成无源单元。

2.二维码技术
二维码(2-dimensional bar code),如图21-1所示。它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的记录数据符号信息的黑白相间的图形。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。1.png
二维码具有条码技术的一些共性:每种码制有其特定的字符集、每个字符占有一定的宽度、具有一定的校验功能等。同时还具有对不同行的信息自动识别功能及处理图形旋转变化等特点。在许多种类的二维条码中,常用的码制有 Data Matrix、Maxi Code、Aztec、 QR Code、 Vericode、PDF417、Ultracode、Code 49、Code 16K 等,QR 码是1994年由日本Denso-Wave公司发明的。QR来自英文 Quick Response 的缩写,即快速反应的意思,源自发明者希望QR码可让其内容快速被解码。QR码最常见于日本、韩国,是目前日本最流行的二维空间条码。
二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。其信息量远远超过原来的条码技术,原来的条码技术仅能存储十多个字符,而二维码存储容量可达数千字符。以PDF417编码格式为例:若采用扩展的字母数字压缩格式,可容纳1850个字符;若采用二进制/ASCII格式,可容纳1108字节;若采用数字压缩格式,可容纳2710个数字。

3.传感网
传感网是由随机分布的,集成有传感器(传感器有很多种类型,包括温度、湿度、速度、气敏等)、数据处理单元和通信单元的微小节点,通过自组织的方式构成的无线网络。
传感网借助于节点中内置的传感器测量周边环境中的热、红外、声呐、雷达和地震波信号,从而探测包括温度、湿度、噪声、光强度、压力、土壤成分、移动物体的大小、速度和方向等物质现象。它给我们的生活带来了深刻的变化。然而在目前,网络功能再强大,网络世界再丰富,也终究是虚拟的,它与我们所生活的现实世界还是相隔的,在网络世界中,很难感知现实世界,很多事情还是不可能的,时代呼唤着新的网络技术。传感网络正是在这样的背景下应运而生的全新网络技术,它综合了传感器、低功耗、通信及微机电等技术,将现实的世界与虚拟的网络世界联系起来,达到很多意想不到的效果。目前传感网技术已广泛应用于石油、化工、电力、医药、生物、航空、航天、国防、能源、冶金、电子等众多行业。可以预见,在不久的将来,传感网络将给我们的生活方式带来革命性的变化。

4.M2M
简单地说,M2M是将数据从一台终端传送到另一台终端,也就是机器与机器(Machine to Machine)的对话。但从广义上讲 M2M 可代表机器对机器(Machine to Machine)、人对机器(Man to Machine)、机器对人(Machine to Man)、移动网络对机器(Mobile to Machine) 之间的连接与通信,它涵盖了所有实现在人、机器、系统之间建立通信连接的技术和手段。
M2M强调的是在商业活动中通过移动通信技术和设备的应用变革既有商务模式或创造出新商务模式,是机器设备间的自动通信。现在,M2M应用遍及电力、交通、工业控制、零售、公共事业管理、医疗、水利、石油等多个行业,对于车辆防盗、安全监测、自动售货、机械维修、公共交通管理等,M2M可以说是无所不能。
M2M不是简单的数据在机器和机器之间的传输,更重要的是,它是机器和机器之间的一种智能化、交互式的通信。也就是说,即使人们没有实时发出信号,机器也会根据既定程序主动进行通信,并根据所得到的数据智能化地作出选择,对相关设备发出正确的指令。可以说,智能化、交互式成为了M2M有别于其他应用的典型特征,这一特征下的机器也被赋予了更多的“思想”和“智慧”。
M2M的发展前景非常好,因为在当今世界上,机器的数量至少是人的数量的4倍以上,机器将替代人做更多的事情,这意味着巨大的市场潜力。
在国内,也有一些企业很早就开始应用M2M技术。三一重工对M2M的应用比较成功,三一重工在其销往全球各地的工程机械(关键部位或关键部件)上加装数据采集终端。机械的运行数据通过电信运营商网络汇总到三一集团企业控制中心( Enterprise Control Center,ECC),实现对工程设备作业状况的实时监控。这样,企业控制中心可以随时发现设备运行中存在的问题(如工程机械设备上智能设备控制器检测到的油温、转速、工作压力等运行数据信息异常),并就问题立即指导客户排除故障或派出维修人员上门服务。

物联网的应用

物联网用途广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、老人护理、个人健康等多个领域。在生产生活中的应用举不胜举,下面简述几个比较典型的应用。

目前食品安全是一个被大众所关注的主题,即便是超市的食品,人们也很难弄清楚这些食品的来源,以及相关情况。当物联网体系建立好以后,超市里销售的禽、肉、蛋、奶,在包装上可以嵌入微型感应器,顾客只需用手机扫描,就能了解食品的产地和转运、加工的时间地点,甚至还能显示加工环境的照片,是否绿色安全,一目了然。在医疗方面,也可以应用物联网。将传感器嵌入到家人的手表里,即使用户在千里之外,也可以随时掌握家人的体征。用这种方法,医生也可以随时随地了解病人的体征,为病人诊断看病。

如果在汽车和汽车钥匙上都植入微型感应器,酒后驾车现象就可能被杜绝。当喝了酒的司机掏出汽车钥匙时,钥匙能通过气味感应器察觉到酒气,并通过无线信号通知汽车“不要发动”,汽车会自动罢工,并能够“命令”司机的手机给其亲友发短信,通知他们司机所在的位置,请亲友们来处理。

2、云计算

(1)掌握云计算的概念

云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云其实是网络、互联网的一种比喻说法。云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。提供资源的网络称为云。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。

通俗一点来说,提供资源的网络称为云。云中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。

(2)熟悉云计算的架构及关键技术

云计算是一项交叉学科技术,所以它有许多的特点:
(1)计算资源集成提高设备计算能力。云计算把大量计算资源集中到一个公共资源池中,通过租用的方式共享计算资源。虽然单个用户在云计算平台获得服务水平受到网络带宽等各因素影响,未必获得优于本地主机所提供的服务,但是从整个社会资源的角度而言,整体的资源调控降低了部分地区峰值荷载,提高了部分荒废的主机的运行率,从而提高了资源利用率。

(2)分布式数据中心保证系统容灾能力。分布式数据中心可将云端的用户信息备份到地理上相互隔离的数据库主机中,甚至用户自己也无法判断信息的确切备份地点。该特点不仅仅提供了数据恢复的依据,也使得网络病毒和网络黑客的攻击失去目的性而变成徒劳,大大提高系统的安全性和容灾能力。

(3)软硬件相互隔离减少设备依赖性。虚拟化层将云平台上方的应用软件和下方的基础设备隔离开来。技术设备的维护者无法看到设备中运行的具体应用。同时对软件层的用户而言基础设备层是透明的,用户只能看到虚拟化层中虚拟出来的各类设备。这种架构减少了设备依赖性,也为动态的资源配置提供可能。

(4)平台模块化设计体现高可扩展性。目前主流的云计算平台均根据SPI架构在各层集成功能各异的软硬件设备和中间件软件。大量中间件软件和设备提供针对该平台的通用接口,允许用户添加本层的扩展设备。部分云与云之间提供对应接口,允许用户在不同云之间进行数据迁移。类似功能更大程度上满足了用户需求,集成了计算资源,是未来云计算的发展方向之一。

(5)虚拟资源池为用户提供弹性服务。云平台管理软件将整合的计算资源根据应用访问的具体情况进行动态调整,包括增大或减少资源的要求。因此云计算对于在非恒定需求的应用,如对需求波动很大、阶段性需求等,具有非常好的应用效果。在云计算环境中,既可以对规律性需求通过事先预测事先分配,也可根据事先设定的规则进行实时公台调整。弹性的云服务可帮助用户在任意时间得到满足需求的计算资源。

(6)按需付费降低使用成本。作为云计算的代表按需提供服务、按需付费是目前各类云计算服务中不可或缺的一部分。对用户而言,云计算不但省去了基础设备的购置运维费用,而且能根据企业成长的需要不断扩展订购的服务,不断更换更加适合的服务,提高了资金的利用率。

(3)了解云计算服务的类型

1.软件即服务
软件即服务(Software-as-a-Service,SaaS)是基于互联网提供软件服务的软件应用模式。作为一种在21世纪开始兴起的创新的软件应用模式,SaaS是软件科技发展的最新趋势。SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无须购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,从SaaS提供商租赁软件服务。

2.平台即服务
平台即服务(Platform-as-a-Service,PaaS)是把服务器平台或者开发环境作为一种服务提供的商业模式,如将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。早在2007年,国内外SaaS厂商就先后推出了自己的PaaS平台。
PaaS之所以能够推进SaaS的发展,主要在于它能够提供企业进行定制化研发的中间件平台,同时涵盖数据库和应用服务器等。PaaS可以提高在Web平台上利用的资源数量。

3.基础设施即服务
基础设施即服务(Infrastructure as a Service,IaaS)是指消费者通过Internet可以从完善的计算机基础设施获得服务,如《纽约时报》就使用成百上千台Amazon EC2实例在36小时内处理TB级的文档数据。如果没有EC2,《纽约时报》处理这些数据将要花费数天或者数月的时间。

(4)了解发展云计算的主要任务

1.云安全
云安全(Cloud Security)是一个从“云计算”演变而来的新名词。云安全的策略构想是:使用者越多,每个使用者就越安全,因为如此庞大的用户群,足以覆盖互联网的每个角落,只要某个新木马病毒出现,就会立刻被截获。
“云安全”通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,推送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。

2.云存储
应用云存储是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。

3.云呼叫
应用云呼叫中心是基于云计算技术而搭建的呼叫中心系统,企业无须购买任何软、硬件系统,只需具备人员、场地等基本条件,就可以快速拥有属于自己的呼叫中心,软硬件平台、通信资源、日常维护与服务由服务器商提供。具有建设周期短、投入少、风险低、部署灵活、系统容量伸缩性强、运营维护成本低等众多特点;无论是电话营销中心还是客户服务中心,企业只需按需租用服务,便可建立一套功能全面、稳定、可靠、座席可分布全国各地,全国呼叫接入的呼叫中心系统。

4.云会议
应用云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。它是视频会议与云计算的完美结合,带来了最便捷的远程会议体验。使用者只需通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前国内云会议大多以SaaS模式为主体,其服务内容包括电话、网络、视频等形式。

3、移动互联网

(1)掌握移动互联网的概念

移动互联网是PC互联网发展的必然产物,将移动通信和互联网二者结合起来,成为一体。它是互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。
移动互联网是移动和互联网融合的产物,继承了移动随时、随地、随身和互联网开放、分享、互动的优势,是一个全国性的、以宽带IP为技术核心的,可同时提供话音、传真、数据、图像、多媒体等高品质电信服务的新一代开放的电信基础网络,由运营商提供无线接入,互联网企业提供各种成熟的应用。

(2)熟悉移动互联网的特点

移动互联网是在传统互联网基础上发展起来的,因此二者具有很多共性,但由于移动通信技术和移动终端发展不同,它又具备许多传统互联网没有的新特性。

交互性
用户可以随身携带和随时使用移动终端,在移动状态下接人和使用移动互联网应用服务。
便携性
相对于PC,由于移动终端小巧轻便、可随身携带两个特点,人们可以装入随身携带的书包和手袋中,并使得用户可以在任意场合接人网络。
隐私性
移动终端设备的隐私性远高于PC的要求。由于移动性和便携性的特点,移动互联网的信息保护程度较高。
定位性
移动互联网有别于传统互联网的典型应用是位置服务应用。它具有以下几个服务:位置签到、位置分享及基于位置的社交应用;基于位置围栏的用户监控及消息通知服务;生活导航及优惠券集成服务;基于位置的娱乐和电子商务应用;基于位置的用户换机上下文感知及信息服务。
娱乐性
移动互联网上的丰富应用,如图片分享、视频播放、音乐欣赏、电子邮件等,为用户的工作、生活带来更多的便利和乐趣。
局限性
移动互联网应用服务在便捷的同时,也受到了来自网络能力和终端硬件能力的限制。在网络能力方面,受到无线网络传输环境、技术能力等因素限制;在终端硬件能力方面,受到终端大小、处理能力、电池容量等的限制。移动互联网各个部分相互联系,相互作用并制约发展,任何一部分的滞后都会延缓移动互联网发展的步伐。
强关联性
由于移动互联网业务受到了网络及终端能力的限制,因此,其业务内容和形式也需要匹配特定的网络技术规格和终端类型,具有强关联性。移动互联网通信技术与移动应用平台的发展有着紧密联系,没有足够的带宽就会影响在线视频,视频电话,移动网游等应用的扩展。同时,根据移动终端设备的特点,也有其与之对应的移动互联网应用服务,这是区别于传统互联网而存在的。
身份统一性
这种身份统一是指移动互联用户自然身份、社会身份、交易身份、支付身份通过移动互联网平台得以统一。信息本来是分散到各处的,互联网逐渐发展、基础平台逐渐完善之后,各处的身份信息将得到统一。例如,在网银里绑定手机号和银行卡,支付的时候验证了手机号就直接从银行卡扣钱。

(3)了解移动互联网技术的应用

通信业
通信行业为移动互联网的繁荣提供了必要的硬件支撑,传统的通信业,”开路收费”模式,如寄信、通话等都是为你“开路”然后收钱。移动互联网的出现却完全无视这些规则,要求人与人更紧密地连接,都可以以最低成本随时随地联系得到。
医疗行业
受移动互联网的影响,目前的医疗行业已经开始做出改变,比如在线就医、在线预约、远程医疗合作在线支付等方面。
移动电子商务
移动电子商务可以为用户随时随地提供所需的服务、应用、信息和娱乐,利用手机终端方便便捷地选择及购买商品和服务。多种支付方式,使用方便。移动支付平台不仅支持各种银行卡通过网上进行支付,还支持手机、电话等多种终端操作,符合网上消费者追求个性化、多样化的需求。
AR
增强现实(AR),也被称之为混合现实。它通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。增强现实提供了在一般情况下,不同于人类可以感知的信息。它不但展现了真实世界的信息,而且将虚拟的信息同时显示出来,两种信息相互补充叠加。
移动电子政务
在信息技术快速变革的情况下,国家的政府单位也紧跟时代发展步伐,开始广泛的使用移动电子政务。

4、人工智能

(1)掌握人工智能的概念

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

(2)熟悉人工智能研究范畴

人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。

具体包括:自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法

(3)了解人工智能实际应用

机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。

5、区块链

(1)掌握区块链的概念

区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。

(2)熟悉区块链的系统架构


一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。
其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;
网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
共识层主要封装网络节点的各类共识算法;
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
应用层则封装了区块链的各种应用场景和案例。
该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。

(3)了解区块链的分类

公有区块链
公有区块链(Public Block Chains)是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
联合(行业)区块链
行业区块链(Consortium Block Chains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
私有区块链
私有区块链(Private Block Chains):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。传统金融都是想实验尝试私有区块链,而公链的应用例如bitcoin已经工业化,私链的应用产品还在摸索当中。

(补充)核心技术

分布式账本
分布式账本指的是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。
非对称加密
存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
共识机制
共识机制就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。
智能合约
智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。

(4)了解区块链的应用

金融领域
区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。
物联网和物流领域
区块链在物联网和物流领域也可以天然结合。通过区块链可以降低物流成本,追溯物品的生产和运送过程,并且提高供应链管理的效率。该领域被认为是区块链一个很有前景的应用方向。
公共服务领域
区块链在公共管理、能源、交通等领域都与民众的生产生活息息相关,但是这些领域的中心化特质也带来了一些问题,可以用区块链来改造。区块链提供的去中心化的完全分布式DNS服务通过网络中各个节点之间的点对点数据传输服务就能实现域名的查询和解析,可用于确保某个重要的基础设施的操作系统和固件没有被篡改,可以监控软件的状态和完整性,发现不良的篡改,并确保使用了物联网技术的系统所传输的数据没用经过篡改。
数字版权领域
通过区块链技术,可以对作品进行鉴权,证明文字、视频、音频等作品的存在,保证权属的真实、唯一性。作品在区块链上被确权后,后续交易都会进行实时记录,实现数字版权全生命周期管理,也可作为司法取证中的技术性保障。例如,美国纽约一家创业公司Mine Labs开发了一个基于区块链的元数据协议,这个名为Mediachain的系统利用IPFS文件系统,实现数字作品版权保护,主要是面向数字图片的版权保护应用。
保险领域
在保险理赔方面,保险机构负责资金归集、投资、理赔,往往管理和运营成本较高。通过智能合约的应用,既无需投保人申请,也无需保险公司批准,只要触发理赔条件,实现保单自动理赔。一个典型的应用案例就是LenderBot, 是 2016 年由区块链企业 Stratumn、德勤与支付服务商 Lemonway 合作推出,它允许人们通过 Facebook Messenger 的聊天功能,注册定制化的微保险产品, 为个人之间交换的高价值物品进行投保,而区块链在贷款合同中代替了第三方角色。
公益领域
区块链上存储的数据,高可靠且不可篡改,天然适合用在社会公益场景。公益流程中的相关信息,如捐赠项目、募集明细、资金流向、受助人反馈等,均可以存放于区块链上,并且有条件地进行透明公开公示,方便社会监督。

6、量子技术

(1)掌握量子技术的概念

量子信息是量子物理与信息技术相结合发展起来的新学科,主要包括量子通信和量子计算2个领域。量子通信主要研究量子密码、量子隐形传态、远距离量子通信的技术等等;量子计算主要研究量子计算机和适合于量子计算机的量子算法。

(2)熟悉量子技术的特点

作为一种微观粒子,量子具有许多特别的基本特性,如量子力学三大基本原理:
量子测不准
也称为不确定性原理,即观察者不可能同时知道一个粒子的位置和它的速度,粒子位置的总是以一定的概率存在某一个不同的地方,而对未知状态系统的每一次测量都必将改变系统原来的状态。也就是说,测量后的微粒相比于测量之前,必然会产生变化。
量子不可克隆
量子不可克隆原理,即一个未知的量子态不能被完全地克隆。在量子力学中,不存在这样一个物理过程:实现对一个未知量子态的精确复制,使得每个复制态与初始量子态完全相同。
量子不可区分
量子不可区分原理,即不可能同时精确测量两个非正交量子态。事实上,由于非正交量子态具有不可区分性,无论采用任何测量方法,测量结果的都会有错误。

除此之外,还包括以下基本特性:
量子态叠加性(superposition)
量子状态可以叠加,因此量子信息也是可以叠加的。这是量子计算中的可以实现并行性的重要基础,即可以同时输入和操作个量子比特的叠加态。
量子态纠缠性(entanglement)
两个及以上的量子在特定的(温度、磁场)环境下可以处于较稳定的量子纠缠状态,基于这种纠缠,某个粒子的作用将会瞬时地影响另一个粒子。爱因斯坦称其为: “幽灵般的超距作用”。
量子态相干性(interference)
量子力学中微观粒子间的相互叠加作用能产生类似经典力学中光的干涉现象。

(3)了解量子技术的应用

量子技术应用包括量子传感与计量、量子通信、量子模拟及量子计算等方面,它将在传感与测量、通信、仿真、高性能计算等领域拥有广阔的应用前景。

1、了解面向对象的发展历史,为什么引入面向对象。

面向对象的发展历史

1.雏形阶段
20世纪60年代挪威计算中心发布的simula语言,首次引入了类的概念和继承机制,该语言的诞生是面向对象发展历史上的第一个里程碑。
70年代CLU、并发Pascal、Ada和Modula-2等语言对抽象数据类型理论的发展起到重要作用(支持数据和操作封装)。
1972年Palo Alno研究中心(PARC)发布了Smalltalk 72,其中正式使用了面向对象这个术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成,但是这个时期的Smalltalk语言还不够完善。

2.完善阶段
PARC先后发布了Smalltalk 72,76和78等版本,直至1981年推出该语言完善的版本Smalltalk 80。Small talk 80的问世被认为是面向对象语言发展史上最重要的里程碑。迄今绝大多数面向的基本概念及其支持机制在Small talk 80中都已具备。他是第一个完善的、能够实际应用的面向对象语言。Small talk 80的问世被认为是面向对象语言发展史上最重要的里程碑。迄今绝大多数面向的基本概念及其支持机制在Small talk 80中都已具备。他是第一个完善的、能够实际应用的面向对象语言。

3.繁荣阶段
从20世纪80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的面向对象编程语言的涌现,例如 C++、Objective C 、Object Pascal、CLOS(Common Lisp Object System)、Eiffel和Actor等。这些面向对象的编程语言分为纯OO型语言和混合型OO语言。混合型语言是在传统的过程式语言基础上增加了OO语言成分形成的,在实用性方面具有更大的优势。此时的纯OO型语言也比较重视实用性。现在,在面向对象编程方面,普遍采用语言、类库和可视化编程环境相结合的方式,如Visual C++、JBuilder和Delphi等。面向对象方法也从编程发展到设计、分析,进而发展到整个软件生命周期。

4.面向对象的当前状况
当前,面向对象方法几乎覆盖了计算机软件领域的所有分支。例如,已经出现了面向对象的编程语言、面向对象的分析、面向对象的设计、面向对象的测试、面向对象的维护、面向对象的图形用户界面、面向对象的数据库、面向对象的数据结构、面向对象的智能程序设计、面向对象的软件开发环境和面向对象的体系结构等。此外,许多新领域都以面向对象理论为基础或作为主要技术,如面向对象的软件体系结构、领域工程、智能代理(Agent)、基于构件的软件工程和面向服务的软件开发等。

为什么引入面向对象

1、面向对象符合人类看待事物的一般规律。

2、对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。

2、掌握面向对象编程与非面向对象编程的优缺点。

面向过程是一种以过程为中心的编程思想,它首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在使用时依次调用,是一种基础的顺序的思维方式。面向过程开发方式是对计算机底层结构的一层抽象,它将程序分为数据和操纵数据的操作两部分,其核心问题是数据结构和算法的开发和优化。常见的支持面向过程的编程语言有 C语言、COBOL 语言等。

面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的编程思想,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。

面向对象方法直接把所有事物都当作独立的对象,处理问题过程中所思考的不再主要是怎样用数据结构来描述问题,而是直接考虑重现问题中各个对象之间的关系。面向对象方法的基础实现中也包含面向过程的思想。常见的支持面向对象的编程语言有 C++ 语言、C# 语言、Java 语言等。

具体来说,面向对象与面向过程有以下四个方面的不同:

  1. 出发点不同

面向对象使用符合常规思维的方式来处理客观世界的问题,强调把解决问题领域的“动作”直接映射到对象之间的接口上。而面向过程则强调的是过程的抽象化与模块化,是以过程为中心构造或处理客观世界问题。

  1. 层次逻辑关系不同

面向对象使用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的单位,尽可能地使计算机世界向客观世界靠拢,以使处理问题的方式更清晰直接,面向对象使用类的层次结构来体现类之间的继承与发展。面向过程处理问题的基本单位是能清晰准确地表达过程的模块,用模块的层次结构概括模块或模块间的关系与功能,把客观世界的问题抽象成计算机可以处理的过程。

  1. 数据处理方式与控制程序方式不同

面向对象将数据与对应的代码封装成一个整体,原则上其他对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序的。而面向过程是直接通过程序来处理数据,处理完毕后即可显示处理的结果,在控制方式上是按照设计调用或返回程序,不能自由导航,各模块之间存在着控制与被控制,调动与被调用的关系。

  1. 分析设计与编码转换方式不同

面向对象贯穿于软件生命周期的分析、设计及编码中,是一种平滑的过程,从分析到设计再到编码是采用一致性的模型表示,实现的是一种无缝连接。而面向过程强调分析、设计及编码之间按规则进行转换贯穿于软件生命周期的分析、设计及编码中,实现的是一种有缝的连接。

面向对象 面向过程
特性 抽象、继承、封装、多态 功能模块化,代码流程化
优点 易维护、易复用、易扩展、低耦合 性能高,适合资源紧张、实时性强的场合
缺点 性能比面向过程低 没有面向对象易维护、易复用、易扩展

3、掌握抽象的5个层次,抽象形式。

抽象的5个层次

1.变量和函数
2.接口
3.消息传递
4.对象集单元
5.设计模式

抽象形式

1.概念
2.推理
3.判断

4、掌握类和方法。

1.概念
java中没有结构体类型,类就是高度封装的结构体类型。还有c是面向过程的编程语言,而java是面向对象的,所以对数据的处理方式会有些不同,java中的类更适用于对数据的高度封装,适合调用。

类是具有相同特性(数据元素)和行为(功能)的对象的抽象。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

2.类与类之间最常见的关系主要有以下3种。
依赖(或uses–a)。
聚合(或has–a)。
继承(或is–a)。

方法

1.概念
方法是指对象能够进行的操作,方法同时还有另外一个名称,叫做函数。方法是类中的定义函数,其具体的作用就是对对象进行描述操作。

方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。

面向过程中,函数是最基本单位,整个程序由一个个 函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

5、掌握消息、实例和初始化。

6、了解继承和替换。

一、继承

父类:基类
子类:派生类

继承的概念:
1.传递性:子类能继承父类的所有方法、属性
2.单根性:类只能继承一个父类

继承的注意的问题:
1.创建子类对象的时候,会为子类与父类的对象的字段提供空间
2.父类不能继承子类
3.构造方法不能被继承,但是可以在子类用添加 base(指定引用)
4.子类能继承父类的属性与方法、但是私有的方法只能被继承,不能被使用
5.基本格式:
子类:父类 base(“构造方法”)
6.基本的访问修饰符
public 公开的类 任何都能访问
prive 私有的类 只能在类中进行访问
protected 受保护的类 只能在本类或者子类进行访问
7.过程:创建子类的时候先条用子类的构造函数,然后再调用父类的构造函数
执行父类的构造函数后,再执行子类的构造函数。

二、里氏替换

概念:父类引用可以指向一个子类,看到的也只是父类的引用
1.父类引用能引用到子类的父类引用,可以看到,但是无法使用。
例:a(父类引用)se(子类对象)=new se();
子类可以访问包括父类的引用以及自己的属性
se(子类) ss=new se();
2.里氏替换的原则:
父类不能替换成子类
子类能替换成父类
Parent p=new Son()
Son s=(Son)p; –正确
Parent p=new Parent()
Son s=(Son)p; –错误
注:因为继承的概念就是子孙类会越来越比祖先类详细,所以可以将子孙类强制转换成祖先类,因为祖先有的行为子孙类示例都有了(重新定义的或者是默认的);但是当将祖先类示例强制转换成子孙类示例的时候,一些子孙类有的行为祖先是没有的(即使的是默认的实现也没有)。
3.如果需要父类访问到子类的字段,必须要转换
4.转换的方式有两种:
(1)(子类类型) 父类引用 //会报错
(2)父类引用 as 子类类型 //不会报错、但是会返回一个null值
5.判断父类的对象引用类型,父类引用 is 子类类型 并且返回一个布尔值
例:if(数组[i] is pe)
{
((pe)数组(I).方法/属性)
}

7、了解静态行为和动态行为。

动态行为是指代码具有一定的响应能力的行为,比如,一个对于线程进行封装的类,其行为应当就是动态的。另一个例子,就是Socket通讯问题,我们需要对连接进行测试,此时其所表现出来的也是动态行为。对于动态行为的代码,其在不同的操作系统中表现有可能是不同的。

与动态行为不同的是,静态行为只是被动的计算或是组织数据结构。比如,一个MD5的计算函数,其行为就是静态的,这种行为不论你是在任何操作系统或是处理器上运行,其结果都是一样的。

1、掌握程序性能分析的概念和方法,包括时间复杂性与空间复杂性分析。

一 定义

衡量一个算法的性能,除了能实现需求之外。进阶就是考虑在算法运行过程中时间和资源的消耗。
时间复杂度:执行当前算法所消耗的时间; 
空间复杂度:执行当前算法所需要占用的内存空间;

时间复杂度与空间复杂度是紧密相连的。对于我们程序开发来说:时间复杂度与空间复杂度是可以相互转化的。
1.以空间换时间:对于执行慢的程序,消耗内存来减少时间,提高效率。
2.以时间换空间:对于程序来说,增加时间,减少效率,节省内存空间。

二 计算

1 时间复杂度(使用O符号表示法,表示代码执行时间的增长变化趋势)
  T(n)=O(f(n))   // f(n)表示每行代码执行次数之和,O表示正比例关系
2 空间复杂度 S(n)

三 常用的复杂度量级

1 时间复杂度(从上往下复杂性增加)
常数阶O(1):消耗的时间并不随某个变量n变化而变化
对数阶O(logN):当数据增大n倍,耗时增大logn倍(以2为底)。如二分查找
线性阶O(n):如n决定的for循环,消耗的时间随着n的变化而变化
线性对数阶O(nlogN):将时间复杂度为O(logN)的代码循环N遍,如归并排序
平方阶O(n²):把 O(n) 的代码再嵌套循环一遍
立方阶O(n³):3层N循环
K次方阶O(n^k):k层N循环
指数阶(2^n)

2 时间复杂度
O(1):所需要的临时空间并不随某个变量n变化而变化
O(n):如new了一个大小为n的数组,int[] m = new int[n];
O(n^2)

2、掌握线性表的概念,掌握堆栈、队列、跳表和散列的描述方法与应用。

线性表

线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。
线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。

堆栈

堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。

队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

跳表

增加了向前指针的链表叫作跳表。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。

散列

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

3、了解树的描述方法与应用。

定义

树是一种数据结构,它是由n(n≥1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

它具有以下的特点:
每个节点有零个或多个子节点;
没有父节点的节点称为根节点;
每一个非根节点有且只有一个父节点;
除了根节点外,每个子节点可以分为多个不相交的子树。

种类

无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;
二叉树:每个节点最多含有两个子树的树称为二叉树;
满二叉树:叶节点除外的所有节点均含有两个子树的树被称为满二叉树;
完全二叉树:除最后一层外,所有层都是满节点,且最后一层缺右边连续节点的二叉树称为完全二叉树;
哈夫曼树(最优二叉树):带权路径最短的二叉树称为哈夫曼树或最优二叉树。

4、了解图的描述方法与应用。

一个图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。

有向图

加权图