选择显示字体大小

为何不用mysql?

注意:这篇文档写于2000年5月。因此,它并不能说明mysql的最新特性。但从中我们仍然可以了解rdbms的一些基本概念、原理,从而在实践中更好地应用数据库,同时也才能对一些不实的炒作保持必要的警惕。

为何不用mysql

作者:ben adida  译者:马维达

几乎每周、有时甚至更为频繁,总有人会问我们为何不采用mysql作为openacs的rdbms(关系式数据库管理系统)。acs classic team(arsdigita)也一再地在他们的论坛上遇到同样的提问。如果mysql对于slashdot来说足够好的话,它也一定能够用于openacs,不是吗?

不对。 这篇简短的论文将尝试解释为何mysql不仅对openacs来说是错误的选择,它也不应被用于任何处理关键数据的系统。

rdbms的目的

rdbms的目的是提供一种可靠的永久存储机制,在acid测试中具体表述了这种机制的非常严格的特性。我将直接引用philip greenspun的精彩解释(以oracle作为rdbms的代表):

原子性(atomicity)

事务的执行结果或者被全部提交、或者被全部回滚(roll back)。要么所有的变动都生效,要么就没有变动生效。假定一个用户正在编辑一条注释,web脚本告诉数据库“将旧注释值拷贝到审计表中,并用新文本更新活动表”。如果在拷贝之后、更新之前硬盘变满的话,审计表插入就将被回滚。

一致性(consistency)

数据库从一种有效状态转换到另一种有效状态。仅在服从用户定义的完整性约束时,一个事务才是合法的。不允许非法的事务,而且,如果不能满足某完整性约束的话,该事务会被回滚。例如,假定你定义了一条规则:论坛表中的帖子必须与有效的用户id相关联。然后你雇用了joe novice来编写管理页面。joe编写了一个删除用户页面,它不会检查删除是否会产生一些无主的论坛帖子。然而像oracle这样的rdbms将会进行检查,并中止任何事务,如果它产生的论坛帖子为已被删除的用户所拥有的话。

隔离性(isolation)

一个事务的结果对于其他事务是不可见的,直到该事务完成为止。例如,假定你有一个显示新用户和他们的照片的页面。按照出版者的要求,在页面中每个用户都有一张面部照片,如果用户没有照片的话就显示一幅表示无照片的图像。在新用户jane在你的站点注册的同时,老用户bill正在查看新用户页面。处理jane的注册的脚本会对若干表进行插入:users、mugshots、users_demographics。如果jane的面部照片很大的话,上述插入可能会需要一些时间。如果bill的查询在jane的事务提交之前开始的话,bill根本不会在他的新用户页面上看到jane,即使在jane的事务中,对某些表的插入已经完成。

持久性(durability)

一旦提交(完成),事务的结果将是永久性的,并能免于未来的系统和介质故障。假设你的电子商务系统将来自某消费者的定单插入数据库表中,并指示cybercash收取该消费者500美元的费用。突然间,在你的服务器收到cybercash的回复之前,有人绊掉了机器的电源线。在这样的情况下,oracle将不会忘记该定单。而且,如果有程序员将咖啡洒进了磁盘驱动器中,安装一个新磁盘,并将事务回复到咖啡泼洒时为止是可能的;数据将显示你曾试图收取某人500美元,并且还不清楚在cybercash那里发生了什么。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons