Linux数据库大比拼16页word

上传人:M****1 文档编号:486314781 上传时间:2023-07-05 格式:DOCX 页数:16 大小:26.15KB
返回 下载 相关 举报
Linux数据库大比拼16页word_第1页
第1页 / 共16页
Linux数据库大比拼16页word_第2页
第2页 / 共16页
Linux数据库大比拼16页word_第3页
第3页 / 共16页
Linux数据库大比拼16页word_第4页
第4页 / 共16页
Linux数据库大比拼16页word_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《Linux数据库大比拼16页word》由会员分享,可在线阅读,更多相关《Linux数据库大比拼16页word(16页珍藏版)》请在金锄头文库上搜索。

1、Linux数据库大比拼当第一次有人建议我为LinuxPlanet写数据库管理系统的比较时,我摇了摇头, 我从来没做过这样的比较,但是后来,我想:有何不可?也许一种新鲜天真的方 法并不坏。因此就有本文:一种全新眼光看缤纷的Linux数据库世界。本文共4 部分。在这里比较的数据库管理器是免费的或有便宜的许可费,并且他们可在所有 层次的Linux系统上运行,从低端硬件到高端多处理器服务器,他们已经广泛地 应用世界范围的生产系统上。为了比较,我把我自己放在了运行典型的Linux 机器的境地,每天都由DBMS提供动力。我将考察:mSQLMySQLPostgreSQL我将以一个这3个数据库系统的安装和配置

2、的讨论开始,然后我将在第2 部分继续,通过用SQL的一个小数据库的设计,指出我碰到的困难和试图使数据 库系统接受的差异,我也将解释一个程序的编码,它在数据库上执行各种的真实 操作,例如增加数据并产生报表,同时讨论数据库在处理上的各种差别。这个客 户程序针对所有3个数据库系统用C语言实现。为此,我必须不仅学习所有系统 SQL API,还有SQL。如果没有其他东西,这将肯定饶有兴趣地看下去。第三部分将包含一些真实的基准测试,作为奖赏。我已经有了在Linux新 闻组上款观看关于数据库的基准测试结果没完没了的争论的保持怀疑的乐趣,因 此我将只测试客户程序做随机事情的时间性能,既在理想的条件下运行跑又通

3、过 多个并发进程的时候。那时我将已经涉及DBMS之间的大多数差别,因此你应该 有了关于他们的强项和弱项的一个良好概念。最后的部分将是你所期待的一切:结论、覆盖的特征、实现、在DBMS之间 的API和性能差别。但是现在,准备深入数据库管理的王国的探险吧。获得并安装PostgreSQL位于PostgreSQL网站的软件小节,有一个FTP和HTTP镜像网站的列表, 可从他们下载分发,也有定购DBMS CD的选择。构造并安装它是一个多步骤过程。首先,如果你想要建立Postgresql的Perl语言绑定,在你系统上的Perl 5 可执行文件必须已知是perl5的名字。通常,这意味着你需要做一个符号连接。

4、也许要做的最重要的事情是创造一个postgres用户。在我的系统上,这个命令可运行:useradd - c “ PostgreSQL Administrator” - d /opt/postgresql - g users postgres在其他系统上,命令可能有所不同。注意我假定postgres是在users组里。 你可能比较喜欢给数据库主管一个它自己的组。如果不另外说明,所有其它安装步骤需要以用户postgres身份来做。解开PostgreSQL下载包并进入源代码目录树:tar - xvzf postgresql-6.5.2.tar.gz cd postgresql-6.5.2用root用

5、户,创建PostgreSQL目录并把交给postgres用户: mkdir /opt/pgsqlchown postgres.users /opt/pgsql进入源代码目录并配置软件包。我用下列选择:./configure - prefix=/opt/pgsql - with-perl进行构造和安装过程:cd . /doc make installcd . /src make allmake install现在是执行一些附加的系统配置的时间了。作为root,将下行 /opt/pgsql/lib加入/etc/ld.so.conf 并运行 ldconfig。安装Perl绑定,当用root登录后:

6、cd interface/perl5 make install设置postgres账号。将下列行增加到.profile文件中:PATH=$PATH:/opt/pgsql/bin MANPATH=$MANPATH:/opt/pgsql/man第2页PGLIB=/opt/pgsql/libPGDATA=/opt/pgsql/dataexport PATH MANPATH PGLIB PGDATALC_COLLATE=CLC_CTYPE=Cexport LC_COLLATE LC_CTYPE最后3行对init过程和也许某些测试是必要的试。对实际的用户,他们当 然应该设置到适当的现场,但是每个使用Po

7、stgreSQL的人至少需要有PGLIB和 PGDATA的设置。Source .profile 文件:source .profile运行后期安装:initdb获得并安装MySQLMySQL的最新版本可从MySQL下载页。有很多可选择的镜像站点。你需要执 行下列步骤:解开包并进入源代码目录树:tar - xvzf mysql-3.22.26a.tar.gzcd mysql-3.22.26a配置软件包;我使用下列选项目:./configure - prefix=/opt/mysql构造它:make安装它;用root用户:make install然后你需要配置安装:作为root用户,创建授权数据库表

8、:scripts/mysql_install_db作为root,启动服务器:/opt/mysql/bin/safe_mysqld &作为root,创建mysql用户:useradd - c “ MySQL Administrator” - d /opt/mysql - g users mysql 作为root,把安装树属权赋给mysql用户:获得并安装mSQL下载mSQL不比下载PostgreSQL或MySQL那样简单,但是,其分发更小。从Hughes 技术网页开始并且寻找更进一步的指令。为了下载mSQL,首先需要在该站点注册并且通过一个基于CGI的下载系统,如有必要允许你在一些镜像站点间选择

9、。构造和安装的mSQL 的步骤如下:解开包并进入源代码目录:tar - xvzf msql-2.0.11.tar.gzcd msql-2.0.11产生目标定义:make target进入你平台的目标目录:cd targets/Linux-2.2.12-i586配置软件包:./setup编辑site.mm ;我将安装路径改成/opt/msql。构造它:make all作为root用户安装它:make install在构造和安装的mSQL以后,你需要配置它:作为root,创建msql用户:useradd - c “mSQL Administrator,d /opt/msql - g users m

10、sql作为root,把目录属权交给msql用户:chown - R msql.users /opt/msql据库设计编者按:这是涉及可自由地获得的Linux DBMS的系列文章的第二部分。为了测试并比较3个数据库管理系统,我当然需要一个数据库来管理他们。在读完了 SQL傻瓜书后,我有了一些如何设计现实的数据库的基本知识,因此我拣选了一特别 无聊的真实世界情形(一个因特网书店,其他?)并且写下了一个小型数据库设计以便探讨一 点Sql的能力。在这个数据库里有5个表,BOOK保存可得到的书的登记信息;CUSTOMER包含登 记的顾客。对每份订单,BOOKORDER创建一行,参照其顾客。对每个定购的项

11、目,在 ORDER_POSITION里引用它的订单号。作为一种奖励,针对书的排名我增加了一 RATING 表。下列的SQL代码可装入到一个数据库系统的SQL监控程序并且被接受应该没有任何问 题。所有的表在创建前被删除因此确保他们不会在创建之前已经存在。ARTICLE_NO INTEGER PRIMARY KEY,AUTHOR_FIRST_NAMES CHARACTER(30),AUTHOR_LAST_NAMES CHARACTER(30),TITLE CHARACTER(30),ISBN CHARACTER(13) UNIQUE,WHOLESALE_PRICE NUMERIC(4,2),RET

12、AIL_PRICE NUMERIC(4,2),COPIES_AVAILABLE INTEGER);DROP TABLE CUSTOMER;CREATE TABLE CUSTOMER (CUSTOMER_NO INTEGER PRIMARY KEY,FIRST_NAMES CHARACTER(30),LAST_NAMES CHARACTER(30),STREET CHARACTER(30),HOUSE_NO SMALLINT,POSTCODE CHARACTER(7),TOWN CHARACTER(30),ISO_COUNTRY_CODE CHARACTER(2);DROP TABLE BOOK

13、ORDER;CREATE TABLE BOOKORDER (ORDER_NO INTEGER PRIMARY KEY,CUSTOMER_NO INTEGER NOT NULL,ORDERED DATE,DELIVERY DATE,STATUS CHARACTER(8)CHECK (STATUS IN (ACCEPTED,DELAYED,SHIPPED,RETURNED,PAID),CONSTRAINT CUSTOMER_FK FOREIGN KEY (CUSTOMER_NO)REFERENCES KUNDE (KUNDENNAME);DROP TABLE ORDER_POSITION;CREA

14、TE TABLE ORDER_POSITION (POSITION_NO INTEGER PRIMARY KEY,ORDER_NO INTEGER NOT NULL,ARTICLE_NO INTEGER NOT NULL,NUMBER SMALLINT,CONSTRAINT ORDER_FK FOREIGN KEY (ORDER_NO)REFERENCES BOOKORDER (ORDER_NO),CONSTRAINT BOOK_FK FOREIGN KEY (ARTICLE_NO)REFERENCES BOOK (ARTICLE_NO);DROP TABLE RATING;CREATE TA

15、BLE RATING (RATING_NO INTEGER PRIMARY KEY,ARTICLE_NO INTEGER NOT NULL,SCORE NUMERIC(1,0),COMMENT CHARACTER VARYING(300),CONSTRAINT BOOK_FK FOREIGN KEY (ARTICLE_NO) REFERENCES BOOK (ARTICLE_NO);当然,这是一个极其简单的数据库。它看上去真实,但是它不适用于真实世界的应。它 不保存顾客记录或任何东西,并且它甚至没有书的出版商的列。它只是一个测试环境。注意我不想花大气力强制CUSTOMER.ISO_COUNTRY_CODE为今天是实际有效的 编码。我在代码做了一点限制以测试数据库系统是否接受他们;我没尝试使数据库无懈可击。改变设计适应PostgreSQL当我将遵循ANSI标准的CREATE TABLE语句装入Postgresql的psql监控视程序是, 我遇到的困难是很少的。我得到一些警告:外部关键字限制被接受但还没有实现,而且我不 得不裁减RATING的COMME

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号