1.明确目的和思路
首先明白本次的目的,梳理分析思路,并搭建整体分析框架,把分析目的分解,化为若干的点,清晰明了,即分析的目的,用户什么样的,如何具体开展数据分析,需要从哪几个角度进行分析,采用哪些分析指标(各类分析指标需合理搭配使用)。同时,确保分析框架的体系化和逻辑性。
2.数据收集
根据目的和需求,对数据分析的整体流程梳理,找到自己的数据源,进行数据分析,一般数据来源于四种方式:数据库、第三方数据统计工具、专业的调研机构的统计年鉴或报告(如艾瑞资讯)、市场调查。
3.数据处理
数据收集就会有各种各样的数据,有些是有效的有些是无用的,这时候我们就要根据目的,对数据进行处理,处理主要包括数据清洗、数据转化、数据提取、数据计算等处理方法,将各种原始数据加工成为产品经理需要的直观的可看数据。
4.数据分析
数据处理好之后,就要进行数据分析,数据分析是用适当的分析方法及工具,对处理过的数据进行分析,提取有价值的信息,形成有效结论的过程。
5.数据展现
一般情况下,数据是通过表格和图形的方式来呈现的。常用的数据图表包括饼图、柱形图、条形图、折线图、气泡图、散点图、雷达图等。进一步加工整理变成我们需要的图形,如金字塔图、矩阵图、漏斗图、帕雷托图等。
6.报告撰写
撰写报告一定要图文结合,清晰明了,框架一定要清楚,能够让阅读者读懂才行。结构清晰、主次分明可以使阅读者正确理解报告内容图文并茂,可以令数据更加生动活泼,提高视觉冲击力,有助于阅读者更形象、直观地看清楚问题和结论,从而产生思考。
在Oracle 数据库中,我们经常需要去手工分析表和索引,还有某个模式下所有的表和索引等等。oracle 提供了两种分析方法,分别是dbms_stats 包和analyze 命令。这些是我们在日常项目管理中的真实使用的方法,供参考。在10g 中分析某一个用户下所有的对象,如user_miki 用户
Sql代码 收藏代码
sys.dbms_stats.gather_schema_stats(ownname =>'user_miki',estimate_percent =>30,method_opt =>'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade =>true,options =>'GATHER')
这是我在项目中分析一个用户所有对象的分析方法,取样比例为30% ,分析所有索引字段,生成柱形图,并且也分析索引。
(miki西游 @mikixiyou 文档,原文链接: http://mikixiyou.iteye.com/blog/1553986 )
在10g 中分析某一个用户下某一个表及其索引,如user_miki 用户下info 表和它的索引
Sql代码 收藏代码
execute dbms_stats.gather_table_stats(ownname =>'user_miki',tabname =>'info',estimate_percent =>30,method_opt =>'for all indexed columns size auto')
这是我在项目中单独分析一个用户中一张表的分析方法,取样比例为30% ,分析所有索引字段,生成柱形图,并且也分析索引。
我们在google 时,还能看到使用analzye 命令分析表的方法。
Sql代码 收藏代码
analyze table table_name compute statistics
这个会将索引和表一起分析;
Sql代码 收藏代码
analyze table table_name compute statistics for table
这个仅分析表;
analyze table table_name compute statistics for all columns
这个仅分析表,和上面所有的字段,生成柱形图
analyze table table_name compute statistics for all indexed columns
这个仅分析表,和上面所有建立索引的字段,生成柱形图
在9i 中,我们常常使用analyze 方法,在10g 以后,就改为dbms_stats.gather_schema_stats 类似的包来分析数据库对象了。
10g 的分析函数包比9i 的analyze 方法更灵活一些。
在10g 中,会有个系统的计划任务,每天10 点和周末两天都自动分析新的数据库对象和它认为统计信息已经过期的数据库对象。这个分析结果有时候不靠谱。
因此,我都采用10g 中提供的dbms_stats.gather_schema_stats 方法作为补充,设置一个计划任务定期去分析业务用户下所有数据库对象。
Sql代码 收藏代码
variable job number
begin
sys.dbms_job.submit(job =>:job,
what =>'sys.dbms_stats.gather_schema_stats(ownname =>''USR_MIKI'',estimate_percent =>30,method_opt =>''FOR ALL INDEXED COLUMNS SIZE AUTO'',cascade =>true,options =>''GATHER'')',
next_date =>to_date('16-12-2012 00:56:24', 'dd-mm-yyyy hh24:mi:ss'),
interval =>'sysdate+7')
commit
end
/
例如,设置为每周六运行一次。
数据库设计需求1. 需求概述
建立完善的数据库结构管理设备的基本参数、运行状态和各种工作计划。
数据库的框架和结构必须根据设备和运行状态而设计,方便提供强大的录入、查询、统计、分析和报表等各种功能 *** 作,较好的反映平台业务的基本情况和运行状况,满足平台的基本要求。
2. 外部设计需求
2.1 标识符和状态
数据库表前缀:根据模块名定义(如用户模块:sys_)
用户名:root
密码:待定
权限:全部
有效时间:开发阶段
说明:系统正式发布后,可能更改数据库用户/密码。
2.2 使用它的程序
本系统主要利用java作为后端的应用开发工具,使用MySQL作为后台的数据库, Linux或Windows均可作为系统平台。
2.3 约定
所有命名一定要具有描述性,杜绝一切拼音、或拼音英文混杂的命名方式。
字符集采用 UTF-8,请注意字符的转换。
所有数据表第一个字段都是系统内部使用主键列,自增字段,不可空,名称为:id,确保不把此字段暴露给最终用户。
除特别说明外,所有日期格式都采用date格式。
除特别说明外,所有字段默认都设置不充许为空, 需要设置默认值。
所有普通缩影的命名都是表名加设置缩影的字段名组合,例如用户表User中name字段设置普通所以,则缩影名称命名方式为user_name_index。
2.4 专门指导
对本系统的开发者、使用这、测试员和维护人员,提出以下参考意见:
在使用数据库时,首先要参考上面的约定内容,做好软件的安装以及表格的建立。
数据库的输入统一采用键盘。对于数据库的使用权限,请参考本系统其他相关文档。
数据库的后台管理员没用等级差异,可根据实际情况添加删除管理员。
2.5 支持软件
*** 作系统: Linux / Windows
数据库系统:MySQL
查询浏览工具:Navicat Premium
命令行工具:mysql
注意:mysql 命令行环境下对中文支持不好,可能无法书写带有中文的 SQL 语句。
3. 结构设计需求
3.1 概念结构设计需求
概念数据库的设计是进行具体数据库设计的第一步,概念数据库设计的好坏直接影响到逻辑数据库的设计,影响到整个数据库的好坏。
我们已经得到了系统的数据流程图和数据字典,现在就是要结合数据规范化的理论,用一种模型将用户的数据要求明确地表示出来。
概念数据库的设计应该极易于转换为逻辑数据库模式,又容易被用户所理解。概念数据库设计中最主要的就是采用“实体-关系数据”模型来确定数据库的结构。
数据是表达信息的一种重要的量化符号,是信息存在的一种重要形式。数据模型则是数据特征的一种抽象。它描述的是数据的共性,而不是描述个别的数据。一般来说,数据模型包含两方面内容:
数据的静态特性:主要包括数据的基本结构、数据间的关系和数据之间的相互约束等特性。
数据的动态特性:主要包括对数据进行 *** 作的方法。
在数据库系统设计中,建立反映客观信息的数据模型,是设计中最为重要的,也最基本的步骤之一。
数据模型是连接客观信息世界和数据库系统数据逻辑组织的桥梁,也是数据库设计人员与用户之间进行交流的共同基础。概念数据库中采用的实体-关系模型,与传统的数据模型有所不同。“实体-关系”模型是面向现实世界,而不是面向实现方法的,它主要是用使用方便,因而在数据库系统应用的设计中,得到了广泛应用。“实体-关系”模型可以用来说明数据库中实体的等级和属性。
以下是实体-关系模型中的重要标识:
在数据库中存在的实体;
实体的属性;
实体之间的关系;
3.2 逻辑结构设计需求
物理结构设计需求
1)定义数据库、表及字段的命名规范:
数据库、表及字段的命名要遵守可读性原则。
数据库、表及字段的命名要遵守表意性原则。
数据库、表及字段的命名要遵守长名原则。
2)选择合适的存储引擎:
3)为表中的字段选择合适的数据类型。
4)建立数据库结构
4. 运用设计需求
4.1 表名的命名规范
表名以英文单词、单词缩写、简写、下划线构成,总长度要求小于30位。
4.2 表字段的命名规范
字段名以英文单词、单词缩写、简写、下划线构成,总长度要求不超过30位。
字段名以名词或名词短语,字段采用单数形式。若表名由多个单词组成,则取各个单词的缩写组成,单词缩写间使用下划线作为分隔。
若某个字段是引用某个表的外键,则字段名应尽量与源表的字段名保持一致,一面混淆。
5. 安全保密设计需求
5.1 防止用户直接 *** 作数据库的方法
通过把关键应用服务器和数据库服务器进行分离,防止用户对数据库服务器的直接 *** 作,保证数据库安全。
5.2 应用系统的用户口令进行加密
在软件系统中,对于数据的保护、业务 *** 作的许可是通过识别用户身份和权限来完成的。用户口令相比较,相同的话系统将该用户的 *** 作权限分配给用户,用户再根据所分配的权限对系统进行 *** 作。
由以上过程可知,用户口令在传输过程中容易被窃取泄漏,另外如果数据库被非法进入则其中保存的口令能够被非法查看。因此,在传输过程中和数据库中的口令记录字段不应使用明文传递和保存,应该在口令被传递前对其明文口令使用有效的主流技术,对传输数据进行加密部分描述的加密算法进行加密,在加密后传输到系统。系统将用户提交的经过加密的口令数据保存的加密口令进行比较,相一致则进行后续 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)