一个好的数据库产品不等于就有一个好的应用系统 如果不能设计一个合理的数据库模型 不仅会增加客户端和服务器段程序的编程和维护的难度 而且将会影响系统实际运行的性能 一般来讲 在一个MIS系统分析 设计 测试和试运行阶段 因为数据量较小 设计人员和测试人员往往只注意到功能的实现 而很难注意到性能的薄弱之处 等到系统投入实际运行一段时间后 才发现系统的性能在降低 这时再来考虑提高系统性能则要花费更多的人力物力 而整个系统也不可避免的形成了一个打补丁工程 笔者依据多年来设计和使用数据库的经验 提出以下一些设计准则 供同仁们参考
命名的规范
不同的数据库产品对对象的命名有不同的要求 因此 数据库中的各种对象的命名 后台程序的代码编写应采用大小写敏感的形式 各种对象命名长度不要超过 个字符 这样便于应用系统适应不同的数据库
游标(Cursor)的慎用
游标提供了对特定集合中逐行扫描的手段 一般使用游标逐行遍历数据 根据取出的数据不同条件进行不同的 *** 作 尤其对多表和大表定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等特甚至死机 笔者在某市《住房公积金管理系统》进行日终帐户滚积数计息处理时 对一个 万个帐户的游标处理导致程序进入了一个无限期的等特(后经测算需 个小时才能完成)(硬件环境 Alpha/ Mram Sco Unix Sybase ) 后根据不同的条件改成用不同的UPDATE语句得以在二十分钟之内完成 示例如下
Declare Mycursor cursor for select count_no from COUNT
Open Mycursor
Fetch Mycursor into @vcount_no
While (@@sqlstatus= )
Begin
If @vcount_no= 条件
*** 作
If @vcount_no= 条件
*** 作
Fetch Mycursor into @vcount_no
End
改为
Update COUNT set *** 作 for 条件
Update COUNT set *** 作 for 条件
在有些场合 有时也非得使用游标 此时也可考虑将符合条件的数据行转入临时表中 再对临时表定义游标进行 *** 作 可时性能得到明显提高 笔者在某地市〈电信收费系统〉数据库后台程序设计中 对一个表( 万行中符合条件的 多行数据)进行游标 *** 作(硬件环境 PC服务器 PII Mram NT Ms Sqlserver ) 示例如下
Create #tmp / 定义临时表 /
(字段
字段
)
Insert into #tmp select from TOTAL where
条件 / TOTAL中 万行 符合条件只有几十行 /
Declare Mycursor cursor for select from #tmp
/对临时表定义游标/
索引(Index)的使用原则
创建索引一般有以下两个目的 维护被索引列的唯一性和提供快速访问表中数据的策略 大型数据库有两种索引即簇索引和非簇索引 一个没有簇索引的表是按堆结构存储数据 所有的数据均添加在表的尾部 而建立了簇索引的表 其数据在物理上会按照簇索引键的顺序存储 一个表只允许有一个簇索引 因此 根据B树结构 可以理解添加任何一种索引均能提高按索引列查询的速度 但会降低插入 更新 删除 *** 作的性能 尤其是当填充因子(Fill Factor)较大时 所以对索引较多的表进行频繁的插入 更新 删除 *** 作 建表和索引时因设置较小的填充因子 以便在各数据页中留下较多的自由空间 减少页分割及重新组织的工作
数据的一致性和完整性
为了保证数据库的一致性和完整性 设计人员往往会设计过多的表间关联(Relation) 尽可能的降低数据的冗余 表间关联是一种强制性措施 建立后 对父表(Parent Table)和子表(Child Table)的插入 更新 删除 *** 作均要占用系统的开销 另外 最好不要用Identify 属性字段作为主键与子表关联 如果数据冗余低 数据的完整性容易得到保证 但增加了表间连接查询的 *** 作 为了提高系统的响应时间 合理的数据冗余也是必要的 使用规则(Rule)和约束(Check)来防止系统 *** 作人员误输入造成数据的错误是设计人员的另一种常用手段 但是 不必要的规则和约束也会占用系统的不必要开销 需要注意的是 约束对数据的有效性验证要比规则快 所有这些 设计人员在设计阶段应根据系统 *** 作的类型 频度加以均衡考虑
事务的陷阱
事务是在一次性完成的一组 *** 作 虽然这些 *** 作是单个的 *** 作 SQL Server能够保证这组 *** 作要么全部都完成 要么一点都不做 正是大型数据库的这一特性 使得数据的完整性得到了极大的保证
众所周知 SQL Server为每个独立的SQL语句都提供了隐含的事务控制 使得每个DML的数据 *** 作得以完整提交或回滚 但是SQL Server还提供了显式事务控制语句
BEGIN TRANSACTION 开始一个事务
MIT TRANSACTION 提交一个事务
ROLLBACK TRANSACTION 回滚一个事务
事务可以嵌套 可以通过全局变量@@trancount检索到连接的事务处理嵌套层次 需要加以特别注意并且极容易使编程人员犯错误的是 每个显示或隐含的事物开始都使得该变量加 每个事务的提交使该变量减 每个事务的回滚都会使得该变量置 而只有当该变量为 时的事务提交(最后一个提交语句时) 这时才把物理数据写入磁盘
数据库性能调整
在计算机硬件配置和网络设计确定的情况下 影响到应用系统性能的因素不外乎为数据库性能和客户端程序设计 而大多数数据库设计员采用两步法进行数据库设计 首先进行逻辑设计 而后进行物理设计 数据库逻辑设计去除了所有冗余数据 提高了数据吞吐速度 保证了数据的完整性 清楚地表达数据元素之间的关系 而对于多表之间的关联查询(尤其是大数据表)时 其性能将会降低 同时也提高了客 户端程序的编程难度 因此 物理设计需折衷考虑 根据业务规则 确定对关联表的数据量大小 数据项的访问频度 对此类数据表频繁的关联查询应适当提高数据冗余设计
数据类型的选择
数据类型的合理选择对于数据库的性能和 *** 作具有很大的影响 有关这方面的书籍也有不少的阐述 这里主要介绍几点经验
Identify字段不要作为表的主键与其它表关联 这将会影响到该表的数据迁移
Text 和Image字段属指针型数据 主要用来存放二进制大型对象(BLOB) 这类数据的 *** 作相比其它数据类型较慢 因此要避开使用
日期型字段的优点是有众多的日期函数支持 因此 在日期的大小比较 加减 *** 作上非常简单 但是 在按照日期作为条件的查询 *** 作也要用函数 相比其它数据类型速度上就慢许多 因为用函数作为查询的条件时 服务器无法用先进的性能策略来优化查询而只能进行表扫描遍历每行
例如 要从DATA_TAB 中(其中有一个名为DATE的日期字段)查询 年的所有记录
lishixinzhi/Article/program/Oracle/201311/17929
根据不同用户的实际需求和场景,选择适合自己的数据库审计产品非常重要。以下是一些常见的数据库审计产品推荐:安华金和的数据库审计支持对 国际主流数据库、国产数据库数据库、大数据等库进行审计,提供全面的数据库安全风险识别、告警、排查和分析能力。
是传统的mpp数据库。
南大通用自主研发的GBase 8a MPP Cluster是能够支撑PB级行业大数据分析类应用的国产新型数据库产品。
GBase 8a MPP Cluster是南大通用自主研发的国产MPP数据库集群产品,主要应用于行业大数据的分析场景。所采用的MPP技术,代表着大规模并行计算,具备高性能和高扩展性等特点。
大数据肯定用云数据库啦,可以了解一下阿里云云数据库。
现在有阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦。
幸运券地址
数据库划分
小型数据库:access,foxbase
中型数据库:mysql,sql server,Informix
大型数据库:sysbase,oracle,db2
如何考虑用什么类型的数据库(小型数据库)
1 项目的规模
a 负载量多大,用户多大
b 成本
c 安全性
负载量小 100人内
比如留言板,信息系统 选用小型数据库
成本在千元以内,对安全性要求不高。
中型数据库
比如在负载,日访问量 5000—15000
成本在万元内
比如 电子商务网站
大型数据库
负载可以处理 少量数据库
Sybase < Oracle < db2
安全性能高,价格昂贵
科蓝软件和宇信科技都是国内知名的软件公司,都提供数据库相关的产品和服务。但是哪个数据库更优秀,取决于使用它的实际需求和应用场景。
科蓝软件的产品包括云计算、大数据和数据库等,其主打数据库产品是超级数据库,该数据库是高性能、可扩展、高可靠性的关系型数据库,被广泛应用在金融、电信、运营商、能源等领域。其具有在高并发并行读写场景下表现优异的特点。此外,它还有高级的安全性、可靠性和易运维性等特性,而且其支持 SQL92 标准和 Oracle PL/SQL 标准的语法和函数。
宇信科技的数据库产品包括服务器数据库、容器化数据库和云上数据库等,主打数据库产品是速达数据库。该数据库具有高性能、高可靠性的特性,支持海量数据存储和在线扩容,同时还提供多样化的业务数据处理服务。此外,它还具有多层次的安全机制和优质的售后服务支持,可以满足企业大规模的数据处理需求。
因此,需要根据不同的应用环境和具体的功能需求来选择合适的数据库产品。在选择时应该考虑因素包括:性能、可靠性、安全性、易用性、生态支持等。建议进行比较试用后再进行决策。
传统数据库处理大数据很困难吧,不建议使用传统数据库来处理大数据。
建议研究下,Hadoop,Hive等,可处理大数据。
如果有预算,可以使用一些商业大数据产品,国内的譬如永洪科技的大数据BI产品,不仅能高性能处理大数据,还可做数据分析。
当然如果是简单的查询,传统数据库如果做好索引,可能可以提高性能。
1、Tableau
这个号称敏捷BI的扛把子,魔力象限常年位于领导者象限,界面清爽、功能确实很强大,实至名归。将数据拖入相关区域,自动出图,图形展示丰富,交互性较好。图形自定义功能强大,各种图形参数配置、自定义设置可以灵活设置,具备较强的数据处理和计算能力,可视化分析、交互式分析体验良好。确实是一款功能强大、全面的数据可视化分析工具。新版本也集成了很多高级分析功能,分析更强大。但是基于图表、仪表板、故事报告的逻辑,完成一个复杂的业务汇报,大量的图表、仪表板组合很费事。给领导汇报的PPT需要先一个个截图,然后再放到PPT里面。作为一个数据分析工具是合格的,但是在企业级这种应用汇报中有点局限。
2、PowerBI
PowerBI是盖茨大佬推出的工具,我们也兴奋的开始试用,确实完全不同于Tableau的 *** 作逻辑,更符合我们普通数据分析小白的需求, *** 作和Excel、PPT类似,功能模块划分清晰,上手真的超级快,图形丰富度和灵活性也是很不错。但是说实话,毕竟刚推出,系统BUG很多,可视化分析的功能也比较简单。虽然有很多复杂的数据处理功能,但是那是需要有对Excel函数深入理解应用的基础的,所以要支持复杂的业务分析还需要一定基础。不过版本更新倒是很快,可以等等新版本。
3、Qlik
和Tableau齐名的数据可视化分析工具,QlikView在业界也享有很高的声誉。不过Qlik Seanse产品系列才在大陆市场有比较大的推广和应用。真的是一股清流,界面简洁、流程清晰、 *** 作简单,交互性较好,真的是一款简单易用的BI工具。但是不支持深度的数据分析,图形计算和深度计算功能缺失,不能满足复杂的业务分析需求。
最后将视线聚焦国内,目前搜索排名和市场宣传比较好的也很多,永洪BI、帆软BI、BDP等。不过经过个人感觉整体宣传大于实际。
4、永洪BI
永洪BI功能方面应该是相对比较完善的,也是拖拽出图,有点类似Tableau的逻辑,不过功能与Tableau相比还是差的不是一点半点,但是 *** 作难度居然比Tableau还难。预定义的分析功能比较丰富,图表功能和灵活性较大,但是 *** 作的友好性不足。宣传拥有高级分析的数据挖掘功能,后来发现就集成了开源的几个算法,功能非常简单。而 *** 作过程中大量的d出框、难以理解含义的配置项,真的让人很晕。一个简单的堆积柱图,就研究了好久,看帮助、看视频才搞定。哎,只感叹功能藏得太深,不想给人用啊。
5、帆软BI
再说号称FBI的帆软BI,帆软报表很多国人都很熟悉,功能确实很不错,但是BI工具就真的一般般了。只能简单出图,配合报表工具使用,能让页面更好看,但是比起其他的可视化分析、BI工具,功能还是比较简单,分析的能力不足,功能还是比较简单。帆软名气确实很大,号称行业第一,但是主要在报表层面,而数据可视化分析方面就比较欠缺了。
6、Tempo
另一款工具,全名叫“Tempo大数据分析平台”,宣传比较少,2017年Gartner报告发布后无意中看到的。是一款BS的工具,申请试用也是费尽了波折啊,永洪是不想让人用,他直接不想卖的节奏。
第一次试用也是一脸懵逼,不知道该点哪?不过抱着破罐子破摔的心态稍微点了几下之后, *** 作居然越来越流畅。也是拖拽式 *** 作,数据可视化效果比较丰富,支持很多便捷计算,能满足常用的业务分析。最最惊喜的是它还支持可视化报告导出PPT,彻底解决了分析结果输出的问题。深入了解后,才发现他们的核心居然是“数据挖掘”,算法十分丰富,也是拖拽式 *** 作,我一个文科的分析小白,居然跟着指导和说明做出了一个数据预测的挖掘流,简直不要太惊喜。掌握了Tempo的基本 *** 作逻辑后,居然发现他的易用性真的很不错,功能完整性和丰富性也很好。不过没有宣传也是有原因的,系统整体配套的介绍、 *** 作说明的完善性上还有待提升。
以上就是关于大型数据库设计原则全部的内容,包括:大型数据库设计原则、数据库审计产品推荐、gbase数据库用sqlserver吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)