PostgreSQL: A Sophisticated and Robust Open-Source ORDBMS [REVIEW]

postgreSQL

What is PostgreSQL?

PostgreSQL is an open-source object-relational database management system (ORDBMS). PostgreSQL, or “Postgres”, is widely considered one of the most sophisticated and robust databases available. Despite being free to use, Postgres has a reputation for data integrity and is able to compete in terms of quality, scalability, and reliability with commercial products like Oracle.

Postgres is ACID compliant. It runs on nearly any operating system (UNIX, Linux, Windows, etc.) and there are programming interfaces for a range of languages including C/C++, Java, .Net, Perl, Python, Ruby, Tcl, and Open Database Connectivity (ODBC).

Features

  • Point in time recovery
  • Multiversion concurrency control (MVCC)
  • Asynchronous replication
  • Tablespaces
  • Table inheritances
  • Hot standby
  • Automatic Data Compression
  • Complex SQL queries
  • Write ahead logging (WAL)
  • Conforms with ANSI-SQL:2008 standards

For users that want to write their own code, PostgreSQL supports four standard procedural languages: PL/pgSQL, PL/Tcl, PL/Perl and PL/Python. Some non-standard procedural languages which are supported can be found at the Postgres website.

History of PostgreSQL

Professor Michael Stonebraker returned to UC Berkeley after a sabbatical spent developing his previous project, Ingres, as a commercial venture. He created what he dubbed POSTGRES to iron out some problems he’d found with other database systems.

Version 1 was released in 1989, but it wasn’t until Marc Fournier took over in 1996 that POSTGRES moved to a non-academic development server. The code was cleaned up and given a new name, PostgreSQL. After the release of v6 in 1996, the PostgreSQL Global Development Team was established to oversee Postgres. The PGDT still maintains Postgres on a primarily volunteer basis.

Strengths

Postgres has a strong emphasis on accuracy. It supports advanced features normally found in commercial software like Oracle, and the PGDT is continually identifying and fixing problem areas. More than 70 performances have been added through recent releases.

A broad slate of data types are supported by Postgres: numeric, floating-point, string, boolean, date, uuid, monetary, enumerated, geometric, binary, network address, bit string, text search, xml, json, and array. Users would be hard pressed to find similar variety in another program, especially an open-source one.

Weaknesses

Because of its dedication to accuracy, early versions of Postgres suffered from some speed and complexity issues. It’s also not very forgiving to new users because of an intolerance for casually written queries.

The 9.0 release brought the speed up to (maybe past) MySQL and others. However, the requirement for technical competence remains. On the bright side, error messages in Postgres are specific to the mistake instead of returning a generic “This function is impossible”.

Some features, like merge, don’t have specific counterparts in Postgres. Experienced users tend not to mind as there are technical workarounds, but this is a further reflection of the database’s skill requirement.

Real-life Applications

PostgreSQL is a relational database used by developers to store and manage website information. Because it can be accessed by multiple users simultaneously, it’s useful for things that will be shared online such as collaborative reports or blog posts.

Postgres is used by companies like PayPal, Microsoft, Etsy, oDesk, and Skype.

It tends to be popular among internet and telecommunications companies as well as small-to-medium organizations in general.

A few real-world examples:

  • Sony’s Massively Multiplayer Online games (MMOs) rely on Postgres.
  • Yahoo uses a customized version to store the data that fuels its behavioral analysis engines.
  • Skype has hundred of databases, mainly used for their web store, billing and similarly centralized services.

Future Outlook

The beta for v10 was just released in May with some Big Data features like native table partitioning, additional parallelism, and faster analytics queries as well as some tweaks meant to lay the groundwork for logical replication.

41% of those who switched from a commercial product to Postgres reported first-year cost savings upwards of 50%. It remains to be seen whether these savings can tempt enough users from the top-ranked RDBMS Oracle to shift PostgreSQL higher than the #4 spot.

If you need developers who are experts in PostgreSQL, share with us your challenges and we’ll help come up with the right solution.

Request a Consultation

Best Open Source Mobile Development Tools

Time spent on mobile devices passed desktop computer usage recently. Today, adults spend just over 50 percent of their computing time on a mobile device, compared to 42 percent on the desktop. Likewise, open-source mobile development tools have gained a higher profile among programmers. Here is a closer look at some of the most popular.

Ionic

Ionic is a front-end Software Development Kit (SDK) for creating mobile apps. It uses AngularJS to build fast apps with hardware accelerated transitions and uses Phonegap or Cordova to deploy natively. Alternatively, you can run it as a Progressive Web App in your browser. Clean and simple, it offers ready-made mobile components, base themes and typography. Use Ionic when you want to use a hybrid approach to expand your iOS apps to include the Android market.

PhoneGap

PhoneGap is a popular way to build native mobile apps with JavaScript, CSS and HTML. There are two versions: an open source version and a paid enterprise version. When you build an app using PhoneGap, you can use a single code base to create apps for multiple platforms. In addition, the cloud-based compiler PhoneGap Build lets you create apps without worrying about maintaining the native SDKs.

Rhodes

Rhodes is a mobile application development platform for creating native apps for devices like barcode readers, GPS, cameras and Bluetooth. Rhodes is part of the RhoMobile Suite. RhoMobile is now under the umbrella of Zebra Technologies.

Vim

Vim is a popular code editor that is available on your iPad or iPhone. It includes automatic indentation, macro recording and playback, visual mode, multiple clipboards, language-aware syntax highlighting and more. You can use the full Vim syntax and finger gestures. There is now a port for Android called VimTouch.

LoopBack

LoopBack is an extensible Node.JS framework. You can rapidly build dynamic REST APIs, create apps using iOS, AngularJS and Android SDKs, deploy the StrongLoop Arc to edit and monitor LoopBack apps and run in the cloud or on-site. Useful add-on components are available for OAuth2, file management and third-party logins.

Kurogo

Kurogo is middleware that is optimized for mobile. Ideal for creating content-rich sites, it is popular among higher education users including Georgetown University, Harvard University, Brown University and others. Named after Japanese theater stagehands, it chugs along silently in the background while your mobile app works in the user layer.

Hammer.js

Hammer.js helps you add mouse and touch gestures to your app. Hammer.js is used to support gestures, while Hammer Time, a partial polyfill for CSS property touch action, is used to eliminate the delay from focus and clicks. Out of the box, it includes recognition support for press, pan, swipe, tap, double tap and pinch and rotate.

Phaser

Phaser was created for rapid mobile game development in HTML5. It is a framework for WebGL and Canvas powered browser games. It features a preloader, physics, animation, particles, tile maps, plug-in system, device scaling and developer support. Phaser is well-known for its large and supportive developer community.

Sencha Touch

Sencha Touch lets you use JavaScript to build native-looking HTML5 apps. An MVC-based framework, it is ideal for creating cross-platform products. It taps the power of hardware acceleration to give you ultra-high-performance components for the user interface. There are more than 50 built-in components and themes for most mobile platforms including Windows Phone, Android, BlackBerry and iOS. It has an adaptive layout engine, smooth scrolling and fluid animations. Out of the box, you get themes for every significant platform so you can match the graphical look of target platforms easily.

Clearly, the world has gone mobile in a big way, and statistical trends indicate that mobile use will continue to grow. Open source mobile development tools like those listed here will continue to play a major role in meeting the escalating demand.

For more information, contact us today or visit our website.