400-685-0732

WJMonitor舆情之声

企业大数据智能舆情监测管理解决方案

全网监测海量数据按需发布监测预警

实时把握舆情动态精准追溯信息源头

获取验证码
企业采购 个人使用
当前位置: 首页 > SEO博客 > 数据库系统杂谈

数据库系统杂谈

时间:2012-01-24 09:47:54
何为数据库?也许各有各的说法,各有各的描述重点。但是bruce看来,数据库是这样一个系统,它是用来存储企业信息中结构化数据的一个系统,而且一般支持标准的sql语句,并且有友好而方便操作数据管理的一整套后台操作的界面。
数据库系统

传统数据库举例:

1,FoxPro。这个数据库系统,在本人刚入大学的时候,见到过别人的教科书,然而,我们当初并没有学习过FoxPro的这个数据库系统。而visual foxpro简称VFP,同VB、DELPHI一样都是程序开发工具,在国内曾经是非常流行的开发语言。VFP主要用在小规模企业单位的MIS系统开发,当然也有像工控软件、多媒体软件的开发中。由于VFP不支持多线程编程,其DBF数据库在大量客户端的网络环境中对数据处理能力比较吃力,加之微软推出了SQL数据库,另有VB、VC等编程工具,所以对VFP的投入逐渐减少,微软曾经明确表态,VFP9是VFP最后一个版本。可以说,FoxPro是一个相对比较老的一个数据库系统,也是当初时代的一个产物吧,早期的学习对以后更多数据库的理解和使用都是有非常大的好处的。

2,Access。Access其实是微软的Office系统的一个成员。作为一个相对简单实用的数据库来说,其作用还是不小的。大家都知道,2000年初的那几年,Asp+Access程序的网站还是挺常见的,功能也可以做的很好,就是放在现在,其实也是有不少知名的系统还是采用的access+asp的架构来实现的。但是由于其设计存在的安全性,以及可承受负载的有限性,导致了其应用一般用于个人站长,以及小企业使用的场景。

3,Sql Server。SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、 Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。数据库引擎是SQL Server系统的核心服务,负责完成数据的存储、处理和安全管理。SQl Server数据库,和微软自身的asp以及.net等程序开发语言配合的不错,例如.net+sql server技术实现的网站还是不少的。

4,Oracle。隶属于甲骨文公司,即Oracle公司。近几年来,Oracle数据库版本有以下几个,Oracle 9i,Oracle 10g,Oracle 11g。最新的一个版本是Oracle11g。Oracle数据库的特点有:

1),Oracle7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。

2)提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。

3) 支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。

4) 提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。

5) 提供了新的分布式数据库能力。

5,MySQL。大家都知道,MySql是一个非常有名的数据库,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库,所以具有良好的声誉。MySQL虽然是一个小型关系型数据库管理系统,但是其作用却不小,社交媒体网站Facebook就是采用MySql数据库的,博客界最著名的系统WordPress也是采用MySql数据库的。可以毫不夸张的说,绝大部分CMS系统(大部分采用php+mysql实现),都是MySql的使用者。

6,PostgreSQL。PostgreSQL是由加州大学伯克利分校计算机系开发的。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制。PostgreSQL 也可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL, 不管是私用,商用,还是学术研究使用。目前,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务,目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。

7,DB2。DB2是IBM公司研制的一种关系型数据库系统,从开发到至今,已经有30年左右的历史。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。

db2数据库

它采用了数据分级技术,能够使大型机数据很方便地到LAN数据库服务器,使得c/s用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

除了主流的关系型数据库之外,还有一种嵌入式数据库值得关注。嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过 SQL 来轻松管理应用程序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。在java应用程序中,有一个开源的嵌入式数据库比较有名,那就是Derby,它是完全基于java实现的一个开源的数据库系统。

随着互联网大数据时代的来临,另外一种数据库系统也悄然而生,那就是NoSQL数据库。NoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的社交媒体类型的web2.0网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

NoSQL数据库举例:

nosql数据库

1,谷歌的BigTable。BigTable是非关系的数据库,是一个稀疏的、分布式的、持久化存储的多维度排序Map。Bigtable的设计目的是可靠的处理PB级别的数据,并且能够部署到上千台机器上。Bigtable已经实现了下面的几个目标:适用性广泛、可扩展、高性能和高可用性。Bigtable已经在超过60个Google的产品和项目上得到了应用,例如Google Reader, Google Maps,Google Book Search, "My Search History", Google Earth, Blogger.com, Google Code hosting, Orkut, 以及Gmail。BigTable 是一种压缩的、高效能的、高可扩展性的Google档案系统(Google File System, GFS),用于储存大规模结构化资料,适用于云端计算。BigTable不是传统的关连性数据库,不支援 JOIN 这样的SQL语法, BigTable更像今日的NoSQL的Table-oriented, 优势在于扩展性和性能。BigTable的Table数据结构包括row key、col key和timestamp, 其中row key用于储存倒转的url, 例如www.google.com必须改成com.google.www。

2,Amazon的Dynamo。Dynamo是亚马逊的key-value模式的存储平台,可用性和扩展性都很好,性能也不错:读写访问中99.9%的响应时间都在300ms内。按分布式系统常用的哈希算法切分数据,分放在不同的node上。Read操作时,也是根据key的哈希值寻找对应的node。Dynamo使用了Consistent Hashing算法,node对应的不再是一个确定的hash值,而是一个hash值范围,key的hash值落在这个范围内,则顺时针沿ring找,碰到的第一个node即为所需。Dynamo对Consistent Hashing算法的改进在于:它放在环上作为一个node的是一组机器(而不是memcached把一台机器作为node),这一组机器是通过同步机制保证数据一致的。

3,Apache的Cassandra。Apache Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。Cassandra使用了Google BigTable的数据模型,与面向行的传统的关系型数据库不同,这是一种面向列的数据库,列被组织成为列族(Column Family),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。Cassandra的系统架构与Dynamo一脉相承,是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。

4,MongoDB。MongoDB是一种文件导向数据库,由C++撰写而成,以此来解决应用程序开发社区中的大量现实问题。2007年10月,MongoDB由10gen团队所发展,在2009年2月首度推出。MongoDB可以从开放源代码来建构与安装,更常见的是安装binary档。许多Linux包管理系统现在已包含了MongoDB的包,包括CentOS和Fedora,Debian 和 Ubuntu, Gentoo以及 Arch Linux.同样可从官方网站取得。MongoDB 使用 memory-mapped files, 32位系统上限制大小为2GB的数据 (64-比特要更大的数据)。 MongoDB服务器只能用在小端序 (little-endian)系统, 虽然大部分公司衏会同时准备小端序和大端序系统。

到此位置,bruce介绍了一些传统数据库,嵌入式数据库,以及未来适合大数据处理的nosql数据库,希望看了对读者有所帮助。

 
分享按钮