欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    免费数据库介绍.docx

    • 资源ID:5035644       资源大小:205.67KB        全文页数:13页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    免费数据库介绍.docx

    免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2Express-C、 Oracle XESQLite数据库是中小站点CMS的最佳选择 作者:孙毓波(AKCMS作者)SQLite是一个类似Access的轻量级数据库系统,但是更小、更快、容量更大,并发更 高。为什么说SQLite最适合做CMS (内容管理系统)呢?并不是说其他数据库不好, Oracle、MySQL、SQLServer也都是非常优秀的DBS,只不过他们设计目标不同,特性不 同,所以只有更适用某个应用场景,没有绝对的好坏之分。我归纳的中小型站点的CMS的特点如下: 1、数据量不超过10万 2、日页面访问量不超过10万 3、一部分网站全部生成静态页面,一部分网站实时查询数据库动态访问 4、站长不懂技术,不懂得复杂的数据库维护,只会用FTP管理网站 5、个人站点基本上是一个人管理,一般情况下只有一个人在访问后台,没有并发 6、对数据库来说是读多写少,只有在站长访问后台的时候才会写入 7、多运行于虚拟主机,大部分PHP主机均同时支持MySQL,小部分PHP主机需要 单独购买MySQL,PHP+MySQL的主机价格较PHP主机价格高。(以万网为例:最便 宜的PHP空间780元,最便宜的PHP+MySQL的PHP空间1150元) 8、多数中小站点的HTTP服务与MySQL部署在同一服务器上SQLite的优点在中小网站CMS应用场景下表现突出: 1、与MySQL相比,它更彻底的免费,并且没有任何使用上的限制 2、非常小巧,PHP5以上版本中无需任何配置即可支持SQLite 3、无需单独购买数据库服务,无服务器进程,配置成本为零 4、整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件,维 护难度为零 5、读速度快,在数据量不是很大的情况下速度较快,更重要的是:省掉了一次数据 库远程链接没有复杂的权限验证,打开就能操作SQLite的缺点在中小网站CMS应用场景下被规避: 1、并发低 动态访问时当访问量不超过10万PV的时候,SQLite超过Access的并 发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题 2、在大数据量的情况下表现较差但是中小站点一般情况下数据量不超过10万,而 SQlite在100万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接 甚至会更快 3、写入较慢 默认配置下的SQlite的写入速度比MySQL慢了很多,但是CMS应用 场景的写入操作较少。在插入新文章的时候基本感受不到慢。集中的写数据库操作 只有在安装的时候会出现,不过只出现一次,可以忽略 4、为已有的表加索引较慢 但是在中小站点CMS中不会有这样的需求,可以忽略 5、无法将MySQL部署到与前端机不同的服务器上,但是中小站点也没有分开部署 的需求综上所述:在中小站点CMS的应用场景下SQLite能最大限度的降低建站成本,降低维护 难度,又很好得规避了自身的缺点。所以我认为未来支持SQLite的CMS系统一定会大行 其道。嵌入式数据库系统Berkeley DB施聪(javer),高级程序员、网络设计师通常,我们在设计UNIX/LINUX平台下的应用软件时,如果数据种类繁多,数据与数据之间 关系比较复杂,就会选用一些大型的企业级数据库系统,如DB2,ORACLE、SYBASE等,如 果软件规模不大,就倾向选用如MYSQL、POSTGRESQL等中小型数据库。例如使用PHP/PERL + MYSQL/POSTGRESQL设计网站基本上是一个很常规的做法。但是,当应用软件管理的数据 类型较少(特别注意:这并不是说需要管理的数据量小),数据管理本身不复杂,且对数 据操作要求高效率,则由大名鼎鼎的Berkeley (美国加州大学伯克利分校)开发的 Berkeley DB可能是一个很明智的选择。DB是一个具有工业强度的嵌入式数据库系统,数据处理的效率很高。DB功能的稳定性历 经时间的考验,在大量应用程序中使用便是明证。可以想见,在同等代码质量 的条件下, 软件的BUG数和代码的长度是成正比的,相对几十兆、几百兆大型数据库软件,DB的只有 不到500K的大小!从实现功能上 看,DB是轻量级数据库系统,或可称为极轻量级数据库系统。但是,我 认为不能因此而心存轻视之意,所谓尺有所短,寸有所长,以绝对角度比较工具之间的 好坏是没有什么意义的,关键在于对工具的选择和运用(似乎可以参考一下极限编程的思 想)。也许,正确的表达范式应该是:在当前应用背景下,选择这种工具是最合适的。作者:肖文鹏发文时间:2004.04.09像MySQL这类基于C/S结构的关系型数据库系统虽然代表着目前数据库应用的主流,但却 并不能满足所有应用场合的需要。有时我们需要的可能只是一个简单的基于磁盘文件的数 据库系统。这样不仅可以避免安装庞大的数据库服务器,而且还可以简化数据库应用程序 的设计。Berkeley DB正是基于这样的思想提出来的。Berkeley DB 简介Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性能的 数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和管 理。与常用的数据库管理系统(如MySQL和Oracle等)有所不同,在Berkeley DB中并没 有数据库服务器的概念。应用程序不需要事先同数据库服务建立起网络连接,而是通过内 嵌在程序中的Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。Berkeley DB为许多编程语言提供了实用的API接口,包括C、C+、Java、Perl、Tcl、 Python和PHP等。所有同数据库相关的操作都由Berkeley DB函数库负责统一完成。这样 无论是系统中的多个进程,或者是相同进程中的多个线程,都可以在同一时间调用访问数 据库的函数。而底层的数据加锁、事务日志和存储管理等都在Berkeley DB函数库中实 现。它们对应用程序来讲是完全透明的。俗话说:“麻雀虽小五脏俱全."Berkeley DB 函数库本身虽然只有300KB左右,但却能够用来管理多达256TB的数据,并且在许多方面 的性能还能够同商业级的数据库系统相抗衡。就拿对数据的并发操作来说,Berkeley DB 能够很轻松地应付几千个用户同时访问同一个数据库的情况。此外,如果想在资源受限的 嵌入式系统上进行数据库管理,Berkeley DB可能就是惟一正确的选择了。Berkeley DB作为一种嵌入式数据库系统在许多方面有着独特的优势。首先,由于其应用 程序和数据库管理系统运行在相同的进程空间当中,进行数据操作时可以避免繁琐的进程 间通信,因此耗费在通信上的开销自然也就降低到了极低程度。其次,Berkeley DB使用 简单的函数调用接口来完成所有的数据库操作,而不是在数据库系统中经常用到的SQL语 言。这样就避免了对结构化查询语言进行解析和处理所需的开销。from: 主流开源数据库的技术特点点评随着开放源代码软件的使用越来越广泛,像Linux操作系统一样,开放源代码数据库 的出现也有其必然性。在当Oracle、IBM、Microsoft、Sybase等几大数据库厂商在数据 库领域处于垄断地位的时候,出现了以MySQL、PostgreSQL为代表的开放源代码的数据库 系统,推动了开源软件事业的发展。开源数据库系统并不是一个新事物,如Postgres (PostgreSQL的前身)已经有20年的发展历史了,而著名的MySQL今年4月刚刚度过了 其10周年纪念活动。1、MYSQLMysQL是瑞典的T.c.X公司负责开发和维护的,它是一个真正的多用户、多线程SQL 数据库服务器。MysQL是以一个客户机/服务器结构实现其功能的,它由一个服务器守护 程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更 新和存取信息更容易。MySQL主要特点是快速、健壮和易用。MySQL的官方发音是“My Ess Que Ell”(不是MY-SEQUEL)。目前MySQL的最新版本是5.0,MySQL的网址是: , MySQL 的 标志是一个小海豚。见图一1。图一1 Mysql标志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。MaxDB是2003年SAP公司和MySQL AB公司合作之后SAP DB新的名称。MaxDB是一款 重量级的、获得SAP R/3认证,适宜于联机事务处理和联机分析处理等多种业务类型的高 可用性、高可靠性和极具伸缩性的数据库,支持大容量的用户和并发业务操作,采用多线 程多进程的服务器设计,支持多处理器的应用,并通过集群和热部署提供高可靠性,支持 TB级的海量数据,支持企业级的数据同步和复制等复杂应用。2. PostgreSQLPostgreSQL是一种运行在Unix和Linux操作系统(在NT平台借助Cygnus也可以运 行)平台上的免费的开放源码的关系数据库。最早是由美国加州大学伯克利分校开发的, 开始只是作为一个演示系统发表,但是随着时间的推移,逐步分发,得到很多实际的应 用,才逐步流行起来。PostgreSQ的网址是http:/www.postgresql.org/,最新版本是 2005 年 10 月 4 日发布的 8.0.4。PostgreSQL 的官方发音 是:Post-gres-Q-L。PostgreSQ的标志是一个大象,见图一2。图 2 PostgreSQL 标志PostgreSQL的技术特点:1. 支持SQL。作为关系数据库,它支持SQL89标准也支持部分SQL92大部分功能。2. 有丰富的数据类型。许多数据类型是一些商业数据库都没有提供的。3. 面向对象。它包含了一些面向对象的技术,如继承和类。4. 支持大数据库,它不同于一般的桌面数据库,能够支持几乎不受限制大小的数据库,而 且性能稳定。5. 方便集成web,提供一些接口方便PHP,Perl等语言操作数据库。6. 事务处理。相对一些其他免费数据库如MySQL,他提供了事务处理,可以满足一些商业 领域的数据需要。7. PostgreSQL运行速度明显低于MySQL。因为MySQL使用了线程,而PostgreSQL使用的 是进程。在不同线程之间的环境转换和访问公用 的存储区域显然要比在不同的进程之间要 快得多。3. Firebird2000年7月,Borland (即现在的Inprise)公司公布了其数据库产品Interbase的源 代码。Firebird数据库就是从该数据库中派生出来的。当时,Interbase是与客户/服务 器版本的Delphi产品捆绑在一些销售的。现在,Interbase已经变成了一只开放源码中的 “火鸟”。Firebird 网址是 2005 年8月5日发布的1.5.3。的标志是一只“火鸟”,见图一3。图一3 Firebird 标志Firebird的技术特点Firebird相对MySQL和PostgreSQL来说比较小,其RPM版本只有3.0MB。这也使其可 以称得上是理想的“嵌入式数据库”,可用于与 其它应用程序服务器和应用程序捆绑。 Firebird具有大部分成熟数据库所具有的功能,比如支持存储过程、SQL兼容等。如果用 户有使用DB2或PostgreSQL的经验,就会发现Firebird与它们的语法非常相似,数据类 型和数据处理方式也很类似。Firebird的设计思想是小型、快速和最小化的管理。这对 于需要一个数据库用于存储数据,但又不想花太多时间来调整数据性能的开发人员很适 用。实际上在很多情况下,我们并不需要存储程序或复杂的表之间的关联。这时会发现 Firebird在大小和功能之间找到了一个理想的平衡点。现在有两个版本的Firebird服务器软件可供下载,分别是Firebird Super Server和 Firebird Classic Server。简单来说,二者的区别在于设计的方法不同。Super Server 使用线程同时为多个客户连接提供服务,而Classic Server使用的则是Interbase的方 法,采用为每个连接提供一个独立服务器进程的方式。如果想对二者的区别有更多的了 解,可查看 page二ibp_ss_vs_classic。对于“嵌入式数据库”的用户,这两个版本之间没有太大的区 别。从理论上讲,如果应用程序的用户很多,那么Super Server将是一个较好的选择。4. mSQLmSQL(mini SQL )是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于 它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini SQL)是一种小 型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中 是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在 线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。MSQL 的网址是:.au,最新版本是2005年5月8日发布的3.7。MSQL 的标志是一个鹿。见图一2。图4 mSQL标志mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/ 写。mSQL缺乏ANSI SQL的大多数特征,它仅仅实现了一个最最少的API,没有事务和参 考完整性。mSQL与Lite (一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到 一个称为W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API。嵌入式数据库嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中, 消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运 行时,它 们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更 理想。嵌入式运行模式允许嵌入式数据库通过SQL来轻松管理应用程序数据,而不依靠原 始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个 快照。5. Berkeley DB像MySQL这类基于C/S结构的关系型数据库系统虽然代表着目前数据库应用的主流, 但却并不能满足所有应用场合的需要。有时我们需要的可能只是一个简单的基于磁盘文件 的数据库系统。这样不仅可以避免安装庞大的数据库服务器,而且还可以简化数据库应用 程序的设计。Berkeley DB正是基于这样的思想提出来的。官方网址是: “猫”,见图一4。图 5 Berkeley DB 标志Berkeley DB的技术特点:Berkeley DB是一个开放源代码的内嵌式数据库管理系统,能够为应用程序提供高性 能的数据管理服务。应用它程序员只需要调用一些简单的API就可以完成对数据的访问和 管理。与常用的数据库管理系统(如MySQL和Oracle等)有所不同,在Berkeley DB中并 没有数据库服务器的概念。应用程序不需要事先同数据库服务建立起网络连接,而是通过 内嵌在程序中的Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。Berkeley DB为许多编程语言提供了实用的API接口,包括C、C+、Java、Perl、 Tcl、Python和PHP等。所有同数据库相关的操作都由Berkeley DB函数库负责统一完 成。这样无论是系统中的多个进程,或者是相同进程中的多个线程,都可以在同一时间调 用访问数据库的函数。而底层的数据加锁、事务日志和存储管理等都在Berkeley DB函数 库中实现。它们对应用程序来讲是完全透明的。俗话说:“麻雀虽小五脏俱 全."Berkeley DB函数库本身虽然只有300KB左右,但却能够用来管理多达256TB的数 据,并且在许多方面的性能还能够同商业级的数据库系统相抗衡。就拿对数据的并发操作 来说,Berkeley DB能够很轻松地应付几千个用户同时访问同一个数据库的情况。此外, 如果想在资源受限的嵌入式系统上进行数据库管理,Berkeley DB可能就是惟一正确的选 择了。Berkeley DB作为一种嵌入式数据库系统在许多方面有着独特的优势。首先,由于其 应用程序和数据库管理系统运行在相同的进程空间当中,进行数据操作时可以避免繁琐的 进程间通信,因此耗费在通信上的开销自然也就降低到了极低程度。其次,Berkeley DB 使用简单的函数调用接口来完成所有的数据库操作,而不是在数据库系统中经常用到的 SQL语言。这样就避免了对结构化查询语言进行解析和处理所需的开销。6. SQLiteSQLite是D. Richard Hipp用C语言编写的开源嵌入式数据库引擎。它是完全独立 的,不具有外部依赖性。它是作为PHP V4.3中的一个选项引入的,构建在PHP V5中。 SQLite支持多数SQL92标准,可以在所有主要的操作系统上运行,并且支持大多数计算 机语言。SQLite还非常健壮。其创建者保守地估计SQLite可以处理每天负担多达 100,00次点击率的Web站点,并且SQLite有时候可以处理10倍于上述数字的负载。 SQLite的网址是,最新版本是2005年9月24日发布的3.2.7。SQLite的标志是一只羽 毛,见图一5。图6 SQLite标志SQLite的技术特点:SQLite对SQL92标准的支持包括索引、限制、触发和查看。SQLite不支持外键限 制,但支持原子的、一致的、独立和持久(ACID)的事务(后面会提供有关ACID的更多 信息)。这意味着事务是原子的,因为它们要么完全执行,要么根本不执行。事务也是一 致的,因为在不一致的状态中,该数据库从未被保留。事务还是独立 的,所以,如果在同 一时间在同一数据库上有两个执行操作的事务,那么这两个事务是互不干扰的。而且事务 是持久性的,所以,该数据库能够在崩溃和断电时幸免 于难,不会丢失数据或损坏。 SQLite通过数据库级上的独占性和共享锁定来实现独立事务处理。这意味着当多个进程和 线程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线 程向数据库执行写入操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操 作将不会再发生。总结:目前的开源数据库还不能在功能和处理能力方面追上商业级产品,但价格的侵 蚀力无法回避,开源数据库迅速增长的市场份额甚至让数据库领域的三巨头,Oracle、 IBM、微软都感到忐忑不安。开源数据库的用户在增长,并正在被越来越多的用户所采用。 在嵌入式数据库领域,开源数据库优势更加明显。分析师称开放源码正在迅速被数据库技 术所采用。开放源码“从2000年被怀疑到2005年已经发展成为全球的主流技术”。低成 本甚至免费的开源数据库时代即将来临。将你的网站从MySQL改为PostgreSQL原 著:Nathan Matias翻译:处处我的站点最初是采用PHP驱动,由MySQL数据库支持的方案,这在当时是一个明智的方 案。在2001年夏天,我将我的数据库换成了 PostgreSQL(有时也简称为Postgres)。这个教程分为两部分,第一部分讲述了我进行这种转换的动机,并一步步地解释了如何将 已存在有MySQL的数据转换到Postgres中。第二部分将会解释如何根据新的数据库系统 对PHP进行相应的调整。转换的动机我第一次了解Postgres是在PHPBuilder网站的一篇文章中。这篇文章将Postgres和 MySQL进行了比较,当时我正在使用MySQL。但是,当我阅读了这篇文章后,我对 Postgres着了迷一但是当时我还没有想到对我的网站进行重新的设计。我继续使用MySQL,因为我的主机提供商只能提供MySQL的支持,这是我所无法改变的。 直到有一天,主机提供商的主机崩溃了。我立即换了一个主机提供商,与原来的那个相 比,新的主机提供商有很多不同,他们在安全性和稳定性方面对我作出了更多的承诺。新 公司试图说服我使用Postgres,因为Postgres要比MySQL来得更稳定,但是我当时没有 接受这个建议,因为我的网站已经根据MySQL完成了全部的编码工作。他们只好专门为我 的站点 安装了 MySQL。于是问题开始了。我的第一个工作是将旧服务器上的MySQL的数据拷贝到新的主机上。首先,我将已有的数 据dump到一个SQL文件中,然后在新的主机上导入这个SQL文 件。在处理这个数千行的 文件时,MySQL迅速地崩溃了。重启MySQL后,其中大概只有一半数据成功地导入了,而 且MySQL只能间歇性地工作。最后,他们不得不删除了已经导入的信息让我再试一次。 MySQL再次崩溃。这种情况重复了好几次,直到最终我决定将我的SQL文件分割成几块。 我不得不又试了几 次,最后终于将绝大多数的数据都成功地导入到新的MySQL服务器中。 一切都好了,我总算松了一口气。在下面的几个月中,MySQL几乎每两周都要崩溃一次,其中最惨痛的一次是在2001年6月 底。这一次,存储在MySQL中的数据完全被毁坏了。我有一个SQL的备份文件,但是因为 上次向MySQL中导入大量数据的痛苦的经历,这一次我再也不想通过这个备份恢复数据 了。这时,公司再次建议我对我的网站进行 转向,使用Postgres。由于MySQL的失败, 最终我接受了这个建议。将数据从MySQL转移到Postgres中将数据从MySQL转移到Postgres是一个不大的挑战,因为Postgres比MySQL支持了更多 的SQL的标准格式,在POstgres中直接使用SQL的dump结果是不可能的。但是,SQL语 法相当相似,因此对于我来说,这并没有花费太多的时间。对MySQL的Dump结果进行转换首先,要求你的主机提供商为你的帐号建立一个数据库。和MySQL数据库一样,Postgres 的数据库也由一系列包含实际数据的数据表组成。然后,使用mysqldump命令为你的 MySQL数据库做一个dump文件。mysqldump -u username -p databasename > sqldump.txt使用FTP将整个dump文件下载下来。现在在你的计算机上有了这个SQL文件,你可以将其 转换成Postgres可以导入的文件。首先,从dump文件中剪切所有的MySQL的CREATE TABLE查询,并将其粘贴到一个单独的 文本文件中。下一步是使用Postgres可以理解的语言重新对数据表进行定义。Postgres建立表的SQL和MySQL非常类似,但不完全一样。下面是一个例子: CREATE TABLE practicetable ( someID SERIAL, time TIMESTAMP DEFAULT now(), name VARCHAR(50), address VARCHAR(50), city VARCHAR(50), state VARCHAR(2), country VARCHAR(3) DEFAULT 'USA', postlcode VARCHAR(15), age smallint, lattitude real, longitude real, somebool boolean, message textitem ;在一个Postgres的表定义中,字段名后面必须跟着字段类型。在上面的例子中我们给出了 一些最普通的字段类型,你还可以在有关Postgres数据类 型的文档中找到全部的字段类 型的列表。对于不同的任务,Postgres在字段类型方面有多种选择,并可以存储各种类型 的数据,从Internet地址到货币信息到几何对象的定义。这儿简要地介绍最常用的几种 数据类型。SERIAL类型的字段和MySQL中的自增唯一 ID等价。当你在你的数据表中定义了一个 SERIAL类型的列后,SERIAL的自增功能会被自动添加到 数据库。当自增功能不能适应实 际需求时,我们可以自定义唯一 ID的逻辑。从MySQL向Postgres转输数据时,默认的功 能已经足够了。和字面上的意义一样VARCHAR类型是一个可变长度的文本字段。字段的长度由括号中的数 值定义。例如,VARCHAR(5)定义了一个最多可包含5个字 符的文本字段。SMALLINT、INT和BIGINT用来定义整型字段。SMALLINT字段可存储数值范围为-32768到 +32767(实际的范围可能会稍微受到你的计算机类型的影响,上面的范围适用于最普通的 系统)。INT字段可存储数值范围为-2147483648到+2147483647。而BIGIN字段 类型可存 储任何更大的整数,它没有范围的限制。REAL字符类型是一个包含十进制小数的实数。它可以精确到小数点后六位。DOUBLE PRECISION字段与此相类似,但是它可以精确到小数点后15位。BOOLEAN字段是真或假、1或0。这和MySQL中相似。TIMESTAMP字段和MySQL中的情况类型。每次记录更新时,timestamp被更新为当前的日期 和时间。Postgres的时间字段还可以包含时区信息。有关Postgres时间数据的更复杂的 应用,请参看PostgreSQL文档的日期和时间。建立数据表当你使用SQL文件在Postgres中建立数据表时,请检查在每一个CREATE TABLE查询的最 后是不是都以分号结束-这对于Postgres是不可省略的。使用telnet这样的工具连接到 你的Web主机,然后用下面的方法建立数据表。首先,用一个文本编辑器打开你的表定义文件。然后登录到你的主机,并输入psql运行 Postgres交互终端。默认的用户论证方式是使用你的telnet/FTP用户名作为你的 Postgres帐号。这使得不需要你输入用户名和口令,Postgres就能自动鉴别你的身份。你 的Web主机也许不是采用的这种方式,在这种情况下,你需要为psql程序带入参数: psql -d databasename -U username -W。-d用来指定数据库,-U指定用户名,而-W要求 psql提示你输入一个口令。当你成功地运行了 psql以后,将每个CREATE TABLE查询单独地粘贴到psql中并按回车 键。如果在你的SQL语句中有错误,psql会给出相应提示。通过逐一地加入每一个表,你 会得到每一个表的调试信息,这样做起来相当简单。如果,在你输入了表的定义之后,你发现遗漏了一两个字段,有两种方法能解决这个问 题。你可以使用ALTER TABLE命令,或者是使用DROP TABLE删除这张表,然后重新生成。 如果你使用第二种方法,你会看到一个警告以验证你是不是真的想要删除表。要使用DROP TABLE命令,只需要输入DROP TABLE practicetable; o这会删除我们刚才定 义的表。但是当你对这个表重新进行定义时,你会发现一个错误。这是因为在删除一个表 时并不相应地删除这个表中SERIAL类型字段的序列。这些遗留下来的序列会在你重建表 时引起错误。要解决这个问题,你必须在删除表之前使用DROP SEQUENCE sequencename; 删除相应的序列。而且有件很讨厌的事,那就是序列名并不就是SERIAL列的名字。当你定 义一个SERIAL类型的字段 时,Postgres会自动生成这样的序列名: tablename_colname_seq。在现在的这种情况下,DROP SEQUENCE语句将会是这样的:DROP SEQUENCE practicetable_someID_seq;。现在你就可以删除这张表并重新生成它了。在添加完这些表之后,你可以输入z对这些表进行复查。而输入q将会退出psql。现在剩 下来的就是准备输入到Postgres中的数据了。处理Dump文件因为MySQL保留了绝大多数的SQL语言的标准,从一个SQL的dump文件中导出实际数据并 不是太困难的。然而,在我们使用Postgres对这个文件进行处理前,我们还是需要作一 些编辑工作。对于数据记录,在MySQL和Postgres之间的主要区别是对引号的处理。在Postgres中, 字符串变量(包含文本的变量)必须由两个单引号引出。而在MySQL中,你还可以使用双引 号,但是幸运的是,在mysqldump程序中程序中使用的是单引号,这刚好与Postgres 一 致。然 而,MySQL和Postgres还有一个地方不同,那就是对字符串中出现的引号的处 理。在MySQL中使用,而在Postgres中使用。使用你 的文本编辑器并通过替换功能将 其中所有的替换为。有趣的是,Postgres和MySQL都使用来表示单引号,这使得我们 免去了一个麻烦。导入到Postgres中当你整理好SQL dump文件后,将这个文件上载到你的Web主机中,就如同你当初建表那样 登录到主机,转到SQL dump文件存放的目录。启动psql,不过这次你必须使用另一个命 令行参数:psql -f sqldump.txt,这儿的sqldump.txt就改为你的SQL dump文件的文件 名。这个命令会将全部的SQL文件导入到适当的Postgres数据表中。在此之前,你也许还 需要其它的一些命令行参数以使得psql可以对你的身份进行验证。如果发生了错误, psql会告诉这是由什么引起的。找到文件中的这一部分,找到问题并手工解决它。我当初 是没有遇到任何问题,我 差不多准备结束工作了。但是,很快我注意到另一个问题。在我开始使用我的新的Postgres驱动的站点时,我偶然地发现MySQL和Postgres之间另 一个不兼容的地方。SERIAL类型的自增字段所使用的Postgres的序列,它从1开始,并 在每次有一个SERIAL类型字段的记录插入时加一。然而,在我导入MySQL的dump文件 时,这个dump文件中的SQL将这个值定义为整型主键。我当时的情况是,我有一个到唯 一主键已经到了 60,而序列仍然是1。于是我的每一个插入命令都没法成功,因为根据序 列产生的不是唯一 ID。我当时用了一个很笨的方法解决这个问题,那就是运行了 60次 INSERT语句以将序列调整为适当的值,但是后来有一个熟悉Postgres的朋友教给我一个 好方法。下面就是他所讲的方法:使用telnet这样的终端程序连接到你的主机。然后启动psql程序。首先,确定表中ID的 最大值。这可以用 SELECT fieldname FROM tablename WHEREfieldname二MAX(fieldname);。然后使用 DROP SEQUENCE table_colname_seq;删除有问题 的序列,这儿table是表名,而colname是SERIAL字段的列名。然后使用CREATE SEQUENCE table_colname_seq START 61;重建序列,当然这儿的61应根据你的实际情况进 行修改。安 装一个图形界面的工具当我成功地将数据导入到Postgres后,我还需要让我的不懂Unix的伙伴能够操作数据库 中的数据。当初的MySQL我是使用的phpMyAdmin,这是一个很好用的工具,它能够在线的 显示和编辑数据库。幸运的是,已经有了“Postgres版本”的phpMyAdmin,那就是 phpPgAdmin。phpPgAdmin的安装非常简单。首先,从phpPgAdmin网站下载最新的版本,然后将其放到 你的Web主 机上的你所能访问的地方。使用telnet这样的工具登陆到主机。到一phpPgAdmin.tar.gz文件所在的目录,输入tar -xzvf phpPgAdmin.tar.gz对程序进行解 压(这里只是举个例子,你的文件名可能不一样)。下面一件事就是将解压生成的新的子目 录移到合适的地方,并阅读README文件。最后,用你的Web主机上的文本编辑器打开config.inc.php。这个文件中包含了对 phpPgAdmin的配置。将这个文件配置好你就可以通过浏览器使用PhpPgAdmin 了,它会提 示你输入用户名并登录,通过这个程序你管理你的数据库将变得非常简单。结语与MySQL相比,Postgres更加稳定,更加可靠,可以应付更大的数据。按照上面的提示, 你可以使用SQL的dump文件将数据从MySQL转到Postgres。如果在这个过程中你遇到什 么困难,从Postgres网站你可以找到一些非常有用的文档资源。MSDEMSDE全称是MS SQL Server Desktop Engine,俗称MSSQL的桌面版,它是一个基于SQL Server核心技术构建的数据引擎。MSDE 2000支持单处理器和双处理器,是面向小型应用 程序桌面扩展的可靠的存储引擎和查询处理器。MSDE与SQL Server完全兼容,它只支持 数据库容量2G,并发用发不超5个,没有图型管理工具,但是免费的。SQL Server系列产品具有各种发行版本,用以满足在不同的环境下对处理的数据量、并发 用户数和硬件的不同要求。一般来说,MSDE适合在并发用户数小于5人,数据量低于2GB 的情况下使用。当数据量和并发用户数超过上面的配额的时候,SQL Server成为了更好的 选择。由于MSDE与SQL Server完全兼容,开发人员可以使用同样的数据访问语言在规模 相对较小的MSDE数据库系统和规模较大的SQL Server数据库系统之间实现无缝转换,并 且,当所在组织的规模扩大后对数据库系统的功能和性能提出新的需求时,则可以在不

    注意事项

    本文(免费数据库介绍.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开