Linux环境主要数据库简介

转载 2007年10月15日 19:08:00

数据库是Linux应用中的主要部分。Linux上的主要数据库包括:商业数据库: Oracle、Sybase、DB2、Informix;自由软件数据库: MySQL、PostgreSQL、Msql等。

 

商业数据库

由于商业数据库有很好的技术支持,这里只简单介绍一下。

(1) IBM DB2 (http://www.software.ibm.com/data/db2/linux/)

(2) Informix (http://www.informix.com/informix/products/linux/) Informix目前支持Linux是Informix SE,ESQL/C,Connect.

(3) Oracle (http://www.oracle.com/iplatform/linux/) Oracle 目前支持Linux的是Oralce 8i 、9i。

(4) Sybase (http://www.sybase.com/products/databaseservers/linux/index.html) Sybase 目前支持Linux的是Adaptive Server Enterprise 11.9.2 。

(5)Ingres (http://www.cai.com/products/betas/ingres_linux/ingresii_qa.htm) CA目前支持Linux的是 Ingres II数据库.

 

自由软件数据库

1、MYSQL

MysQL是瑞典的T.c.X公司负责开发和维护的,它是一个真正的多用户、多线程SQL数据库服务器。MysQL是以一个客户机/服务器结构实现其功能的,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。MySQL主要特点是快速、健壮和易用。MySQL的官方发音是“My Ess Que Ell”(不是MY-SEQUEL)。目前MySQL的最新版本是4.04,MySQL的网址是:http://www.mysql.com,MySQL的标志是一个小海豚。见图-1。

 

 

图-1

(1)MySQL的优点:

1. 它使用的核心线程是完全多线程,支持多处理器。

2. 有多种列类型:1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM类型。

3. 它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。

4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查询中混来自不同数据库的表。

5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。

6. 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。

7. MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCL API。

(2) MySQL的缺点:

1、 MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。

2、 MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。

3、 MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。

4、 MySQL不支持热备份。

5、 MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或Linux 自行安装 免费 、Unix或Linux 第三方安装 200美元,

需要一个应用组件 200美元 。

2、mSQL

mSQL(mini SQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。 由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都 要快一些。MSQL的网址是:www.hughes.com.au ,最新版本是3.3。MSQL的标志是一个山羊。见图-2。

 

 

图-2

安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写。mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API。

3、PostgreSQL

PostgreSQL是属于"对象-关连"式的数据库管理系统 (ORDBMS)。PostgreSQL 的前身叫做 Ingres,是于 1977年至1985年间由着名的柏克莱大学所发展出来的。由于PostgreSQL是用C语言写成的。所以在不同的Unix平台上移植非常方便。PostgreSQL可以在Linux、FreeBSD、SCO Unix、HP Unix、Solaris、AIX等平台上运行。PostgreSQ的网址是http://www.postgresql.org/,最新版本是7.2。 PostgreSQL的官方发音是 :Post-gres-Q-L。 PostgreSQ的标志是一个大象。见图-3

 

 

图-3

(1)PostgreSQL的主要优点:

1、对事务的支持与MySQL相比,经历了更为彻底的测试。

2、PostgreSQL支持存储过程,对于一个严肃的商业应用来说,作为数据库本身,有众多的商业逻辑的存在,此时使用存储过程可以在较少地增加数据库服务器的负担的前提下,对这样的商业逻辑进行封装,并可以利用数据库服务器本身的内在机制对存储过程的执行进行优化。此外存储过程的存在也避免了在网络上大量的原始的SQL语句的传输,这样的优势是显而易见的。

3、PostgreSQL支持视图,视图的存在同样可以最大限度地利用数据库服务器内在的优化机制。而且对于视图权限的合理使用,事实上可以提供行级别的权限,这是MySQL的权限系统所无法实现的。

4、PostgreSQL支持触发器,触发器的存在不可避免的会影响数据库运行的效率,但是与此同时,触发器的存在也有利于对商业逻辑的封装,可以减少应用程序中对同一商业逻辑的重复控制。合理地使用触发器也有利于保证数据的完整性。

5、PostgreSQL支持约束。约束的作用更多地表现在对数据完整性的保证上,合理地使用约束,也可以减少编程的工作量。

6、PostgreSQL支持子查询。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。

7、PostgreSQL支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。 支持ODBC。

8、PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展。

(2)PostgreSQL的主要缺点:

1、PostgreSQL运行速度明显低于MySQL,因为MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

2、PostgreSQL目前仍不完全适应24×7小时运行,这是因为你必须每隔一段时间运行一次VACUUM。

3、PostgreSQL在权限系统上不过完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。

4、由于PostgreSQL生成每页的速度要比MySQL慢,所以 不足以用来作高流量网站应用。Postgres没有与MySQL的mysql_insertid()等价的函数调用。如果在MySQL的数据库中插入一行数据,MySQL将返回这行主关键字的ID。而在Postgres中完成这样一个操作需要绕许多圈子,如果大量应用就会降低效率。

5、PostgreSQL 还欠缺一些比较高端的数据库管理系统需要的特性,比如对大对象的有效支持,以及查询缓冲等提高数据库性能的机制等。

Linux下的数据库系统还有一些,如dbm 是linux下的一种非关系数据库,它实际上是文件形式 的哈希表,每一对名字/值项称为一个记录. dbm有好几个版本,如ndbm,gdbm等。

总结:以上我们主要介绍了Linux环境下的一些主要的数据库,其他自由软件数据库还有 Gadfly 、BeagleSQL、Berkely DB、GNU SQL等。你可以到http://www.linux.org网站查看更多的相关内容。

 

Linux系统简介(-)

Linux是一款开放源代码的类Linux操作系统。1991年,托瓦茨根据Minix(具有微内核的UNIX)写出了Linux内核并发布到网上,大家可以自由下载和修改。后来为了Linux的普及和发展,Li...
  • AHUSTU1737683317
  • AHUSTU1737683317
  • 2015-04-05 11:56:35
  • 1038

在linux环境下用C语言编程简介

  • 2011年11月10日 20:15
  • 20KB
  • 下载

项目的框架简要

做的是一个系统,算是第一次FLEX的实战,收获颇多。比较珍惜这次机会,发现问题,积累经验。        目前接触到的是后台管理系统的开发,有以前的版本,目的是将以前的版本进行更新,以前的版本是C/...
  • xiliangxiaoke
  • xiliangxiaoke
  • 2012-12-14 14:47:53
  • 176

linux下nginx服务应用总结(1)--基础认识和环境应用

在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结。 一、nginx服务简介 Nginx是一个高性能的HTTP和反向代理...
  • u012699382
  • u012699382
  • 2016-11-28 10:28:05
  • 747

Hadoop 介绍与环境安装

Hadoop 介绍与环境安装预备知识 Linux: 《Linux私房菜》 Java: 《Java就业培训教程》 Hadoop: 《Hadoop权威指南》 《实战Hadoop》 《Hadoop实战》 《...
  • sanxiaxugang
  • sanxiaxugang
  • 2016-05-29 13:13:53
  • 694

Linux内核源代码导读

  • 2009年10月09日 16:09
  • 1003KB
  • 下载

Linux内核导读操作系统的基本概念

  • 2010年04月11日 13:42
  • 1.02MB
  • 下载

linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数

一、linux 系统内核参数 /etc/sysctl.conf文件常用参数 net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目 ...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2015-05-06 22:19:16
  • 208

Linux环境下访问Windows环境下的SQL Server数据库

  • 2013年03月21日 16:25
  • 249KB
  • 下载

Linux操作系统简介和流行的厂商版本介绍

一、Linux简介 1: Linux可以有狭义和广义两种定义。 狭义来说,Linux实际上指Linux kernel (内核)。内核负责管理硬件,并为上层应用提供接口。 而广义来说,是指以Lin...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2016-11-30 14:49:32
  • 1414
收藏助手
不良信息举报
您举报文章:Linux环境主要数据库简介
举报原因:
原因补充:

(最多只允许输入30个字)