频遭收购 开源数据库如何转变市场角色(1)
2006年年初,甲骨文收购了位于加州的开源数据库提供商Sleepycat。并在这之后,甲骨文还试图收购另一开源数据库厂商MySQL——在“开放源代码商业会议”上,MySQL的首席执行官对媒体表示希望“保持(MySQL)公司的独立性”而拒绝了甲骨文的“好意”。甲骨文对
2006年年初,甲骨文收购了位于加州的开源数据库提供商Sleepycat。并在这之后,甲骨文还试图收购另一开源数据库厂商MySQL——在“开放源代码商业会议”上,MySQL的首席执行官对媒体表示希望“保持(MySQL)公司的独立性”而拒绝了甲骨文的“好意”。甲骨文对开源数据库的动作还包括2005年对InnoDB的收购。InnoDB采用GPL许可协议,被捆绑在MySQL数据库中。甲骨文在收购后表示,将继续保持InnoDB和MySQL之间的关系。与此相似的是,IBM曾在2005年的LinuxWord大会上把自己的关系型Java数据库Cloudscape作为开源产品发布给了ASF组织(Apache Software Foundation),并为此建立了一个“Derby”开源项目。
意图收购MySQL,一方面印证了甲骨文的“收购式”市场策略,另一方面也可以从中看出开源数据库产品和厂商对于高端商业数据库产品市场和厂商的冲击和影响。虽然收购MySQL未果,但可以从中窥探到甲骨文对开源数据库带来的影响所做出的反应。
与甲骨文的高端市场领地不同的是,MySQL的产品领地是低端市场,尽管如此,二者之间还是存在重叠部分,甲骨文和MySQL之间存在明显的竞争关系。甲骨文自己很清楚在相当一段时间内,他们不会失去企业级商业数据库产品的大客户群和市场份额,业界分析认为甲骨文试图收购MySQL的明显意图在于打开具有相当规模的中低端市场。开源数据库自身的产品功能特点和免费购买价格着实吸引了中小企业的用户,并且,全球的知名大公司中除了在自己的总部与核心业务中应用主流企业级数据库外,在其分公司和日常业务中也在应用开源数据库。据AMR Research之前的调研报告显示,已经有43%的企业中在核心业务中使用开源数据库产品,而将来计划在核心业务中采用开源数据库产品的企业占37%。随着各类型企业对开源数据库产品的使用和试用,以及开源数据库产品自身功能的完善,开源数据库的使用率和市场份额将会逐渐提升,据分析师Yuhanna预测,伴随着旧式数据库应用向开源的转移,至2008年,开源数据库产品相关的销售额会升至约10亿美元。
不仅传统商业数据库巨头对开源数据库提起了重视,开源数据库厂商本身也很清楚自己的实力。MySQL公司的CEO Marten Mickos曾表示,MySQL是最为经济实惠的数据库产品,数据库市场上目前还没有可以替代MySQL的产品。Mickos还乐观的预测到,在未来,所有的数据库厂商将进行合作,共同开发数据库市场。Mickos表示,MySQL不希望把甲骨文干掉,MySQL需要考虑如何才能开发和服务一个新的市场。Mickos所指的“所有厂商”当然包括甲骨文、IBM这样的巨头,而“数据库市场”自然指全部高、中、低端市场。MySQL试图提高自己的市场定位,转换公司的角色,MySQL本身是秉持着与数据库巨头合作的态度在市场中生存和发展,而不是“谁吃谁”的心态,这就不奇怪MySQL为何拒绝甲骨文的收购了。
另外,媒体业界和分析届也很看好开源数据库和MySQL,有分析人士称,甲骨文、IBM的数据库产品提供了很强大的功能,但这些功能只有40%被客户所应用,现在的一些企业正在寻求“瘦身”,所以那些60%的“多余”功能完全可以去除掉,而与之对应的开源数据库产品所追求的目标是用10%的投入实现90%的理想。甚至有声音说MySQL将会成为上市的开源巨头。对于此种声音,Mickos坦言:“这种想法很吸引人,但是我们不会操之过急。”
数据库市场正在发生变化,甲骨文、IBM正在收购或提供面向中低端市场的免费数据库产品,而MySQL、Ingres和EnterpriseDB等公司则在试图开发高端开放源代码数据库产品。“免费、开源”似乎在市场中响彻一片,但这个市场是一个商业的市场,无论是MySQL还是甲骨文,大家都要“在商言商”,都是依靠盈利为目的的商家,而不是慈善机构——诚然,依靠公司盈利使个人资产达到一定数目后,个人可以投身慈善事业。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

JSON data can be saved into a MySQL database by using the gjson library or the json.Unmarshal function. The gjson library provides convenience methods to parse JSON fields, and the json.Unmarshal function requires a target type pointer to unmarshal JSON data. Both methods require preparing SQL statements and performing insert operations to persist the data into the database.

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.

PHP database connection guide: MySQL: Install the MySQLi extension and create a connection (servername, username, password, dbname). PostgreSQL: Install the PgSQL extension and create a connection (host, dbname, user, password). Oracle: Install the OracleOCI8 extension and create a connection (servername, username, password). Practical case: Obtain MySQL data, PostgreSQL query, OracleOCI8 update record.
