Oracle Database is a database that I like very much, but some people like other related databases, no matter which database we choose, our main goal is to store a large amount of relevant data, the operating system and language platform used by your applications, your budget, and whether you need a data warehouse, BI or decision support system.
Background
Many of my friends, developers, application and system architects, and sometimes even System Administrators often ask me the same type of questions: "Bo, should I use SQL Server or Oracle Database in my applications? ", "BO, should I migrate my Sybase Database to SQL Server ?", "Which database platform) is the best ?", "Why don't we use open-source databases, such as MySQL or PostgreSQL ?".
All these problems are basically the same-which database platform is most suitable for an application or which database platform is most meaningful to IT and business?
To answer these questions, before I recommend any database platform, I will ask them more than 10 questions ), many times, people do not understand why a simple problem causes so many problems.
In fact, many people do not know why he/she needs a database, what is a relational database, the difference between the database and the workbook, and their respective advantages and disadvantages), the Access database or the SQL Server database should be used, or what benefits applications can obtain from the database platform.
Although I am not here to publicize what databases are, I know that IT and non-IT personnel are not the same thing about databases. I don't want to be called a database-centric nerd, however, I think that in the 21st century, people have been talking about BI business intelligence. I also think that the most flexible, complex, and easy-to-maintain systems are data-driven, if the generated data volume is too large, you must use a database to save it.
Next, I will give a brief introduction to the most popular database platform. Based on my experience and interactions with other it friends, I will introduce how people use these databases.
The following databases I have used over the past 19 years:
DBase/FoxBase/FoxPro in the DOS/Novell/Windows 3.x world
Ms SQL Server (6.5, 7.0, 2008, and)
Oracle (7, 8/8i, 9i, 10g)
Sybase SQL/ASE Servers (4.9.2, 10, 11, 11.9.2, 12/12. 5, 15.x)
Sybase IQ 12.6/12.7
Informix/Dynamic (6, 7)
MySQL (4, 5/5. 1)
PostGreSQL (8.3.5)/EnterpriseDB
In addition, I participated in a series of database selection evaluations, such as Vhayu and OneTick. I have also experienced memory database usage in various industries, for example, the Oracle database TimesTen and Sybase ASE memory versions are part of the commercial version of Sybase RAP. It has become a strong competitor in the time series database field, especially since the early integration with CEP last year, the impact is getting greater and greater ).
I have worked as a full-time employee or consultant for different projects in different companies. I really think there is no silver bullet in the database world,
The selection of databases depends on the following factors:
Who are you;
Target business/function requirements, performance/reliability/scalability/availability requirements );
How much data is stored in the current database;
The operating system and language platform to be selected for the application;
What is your budget;
Do you want to/need to build a data warehouse, BI or decision support system.
Comparing different database systems is like comparing different development platforms and operating system platforms:
Comparison between Java/J2EE and (C #, VB)/. NET
Comparison between Windows and Linux/UNIX
Comparison between Linux and private UNIX systems such as AIX/HP-UX/Solaris/Tru64/Irix
Comparison between Unix and OpenMVS/UniSys/Tandem/IBM Mainframe
If we do not need databases in front-end office application systems, such as order entry, banking or telecommunications systems, we are mainly worried about locking/blocking, latency, and low I/O ), we only want to use a database to store fact data or use a database to back up data.
Of course, all relational databases provide different functionality, even though they all claim to comply with ansi SQL and SQL-92 standards, but actually all have their own set of SQL languages, this is like the relationship between Websphere/Weblogic/Oracle App Server/Sybase Eserver/Jboss. They are different implementations of J2EE and are compatible with J2EE specifications, but they also have their own extensions and changes.
Key tasks (OLTP) and high-performance systems
If we need databases to play a more important role in key business systems and want to achieve no-fault time/High Availability/cluster, reliability performance and data volume ), for targets such as disaster replication and automatic generation of reports, or for ultra-high-speed and low-latency HPC, high-performance computing, we may need enterprise-level database features, but this costs more.
HA high availability) Cluster Function
The cluster functions of each database platform are as follows:
Oracle RAC is most suitable for HA clusters, Server Load balancer, and expansion;
Ms SQL Server provides HA failover without load balancing;
Sybase ASE 15 clusters have the same functions as Oracle RAC clusters;
TeraData is a distributed database platform;
MySQL clusters claim that TPC-C performance benchmarking is higher than Oracle RAC;
IBM DB2/UDB runs well on IBM pseries/Power servers running aix hacmp high-availability cluster multi-process) and Veritas VCS/Sun clusters.
High performance/low latency/memory database
Oracle Database provides a TimesTen memory database;
MySQL clusters use the memory storage engine;
Sybase provides the ASE memory database;
In addition, we can also use RAMSAN/SSD to install the SQL Server database. All Database-related disk I/O occurs on the SSD instead of the traditional hard disk, therefore, we can greatly reduce disk I/O latency, provide I/O throughput, and improve the overall performance of the database;
There are other memory databases, such as SQLite or eXtremeDB, but most of them either only support embedded systems or only support single users or single connections at the same time.