<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:foaf="https://xmlns.com/foaf/0.1/" xmlns:og="https://ogp.me/ns#" xmlns:rdfs="https://www.w3.org/2000/01/rdf-schema#" xmlns:schema="https://schema.org/" xmlns:sioc="https://rdfs.org/sioc/ns#" xmlns:sioct="https://rdfs.org/sioc/types#" xmlns:skos="https://www.w3.org/2004/02/skos/core#" xmlns:xsd="https://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/postgresql">
  <channel>
    <title>PostgreSQL</title>
    <link>https://www.linuxjournal.com/tag/postgresql</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>It’s Here. The March 2018 Issue of Linux Journal Is Available for Download Now.</title>
  <link>https://www.linuxjournal.com/content/its-here-march-2018-issue-linux-journal-available-download-now</link>
  <description>  &lt;div data-history-node-id="1339791" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/LJ-March2018-Cover.png" width="600" height="600" alt="Cover" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/carlie-fairchild" lang="" about="https://www.linuxjournal.com/users/carlie-fairchild" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Carlie Fairchild&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;Boasting as many pages as most technical books, this month’s issue of &lt;cite&gt;Linux Journal&lt;/cite&gt; comes in at a hefty 181—that’s 23 articles exploring topics near and dear to everyone from home automation hobbyists to Free Software advocates to hard-core hackers to high-level systems architects.
&lt;p&gt;
&lt;/p&gt;
&lt;img src="https://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/small-200px-left-align-wrap/u800391/march_2018_blockchain_0.jpg" alt="" title="" class="imagecache-small-200px-left-align-wrap" /&gt;
Besides making the magazine bigger overall with more articles in each issue on a wider range of topics, we’ve also added a new feature that explores a given topic in-depth: the Deep Dive—think of it like an ebook inside each magazine. This month contributing editor Petros Koutoupis dives deep in to blockchain. He explores what makes Bitcoin and blockchain so exciting, what they provide, and what the future of blockchain holds. From there, he describes how to set up a private Etherium blockchain using open-source tools and looks at some markets and industries where blockchain technologies can add value.
&lt;p&gt;
&lt;/p&gt;
Subscribers, you can &lt;a href="https://secure2.linuxjournal.com/pdf/dljdownload.php"&gt;download your March issue&lt;/a&gt; now.
&lt;p&gt;
&lt;/p&gt;
Not a subscriber? It’s not too late. &lt;a href="https://www.linuxjournal.com/subscribe"&gt;Subscribe today&lt;/a&gt; and receive instant access to this and all back issues since 2010. Alternatively, you can buy the single issue &lt;a href="https://linuxjournalstore.com/collections/back-issues-of-linux-journal/products/march-2018-issue-of-linux-journal"&gt;here&lt;/a&gt;.&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/its-here-march-2018-issue-linux-journal-available-download-now" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 13 Mar 2018 15:08:24 +0000</pubDate>
    <dc:creator>Carlie Fairchild</dc:creator>
    <guid isPermaLink="false">1339791 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>PostgreSQL 10: a Great New Version for a Great Database</title>
  <link>https://www.linuxjournal.com/content/postgresql-10-great-new-version-great-database</link>
  <description>  &lt;div data-history-node-id="1339684" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/Postgresql_elephant.svg_.png" width="465" height="480" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/reuven-m-lerner" lang="" about="https://www.linuxjournal.com/users/reuven-m-lerner" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Reuven M. Lerner&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Reuven reviews the latest and most interesting features in PostgreSQL
10.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
PostgreSQL has long claimed to be the most advanced open-source relational
database. For those of us who have been using it for a significant amount of time, there's
no doubt that this is true; PostgreSQL has consistently demonstrated its
ability to handle high loads and complex queries while providing a rich set
of features and rock-solid stability.
&lt;/p&gt;

&lt;p&gt;
But for all of the amazing functionality that PostgreSQL offers, there have
long been gaps and holes. I've been in meetings with consulting clients who
currently use Oracle or Microsoft SQL Server and are thinking about using
PostgreSQL, who ask me about topics like partitioning or query
parallelization. And for years, I've been forced to say to them, "Um, that's
true. PostgreSQL's functionality in that area is still fairly weak."
&lt;/p&gt;

&lt;p&gt;
So I was quite excited when PostgreSQL 10.0 was released in October 2017,
bringing with it a slew of new features and enhancements. True, some of
those features still aren't as complex or sophisticated as you might find in
commercial databases. But they do demonstrate that over time, PostgreSQL is
offering an amazing amount of functionality for any database, let alone an
open-source project. And in almost every case, the current functionality is
just the first part of a long-term roadmap that the developers will continue to
follow.
&lt;/p&gt;

&lt;p&gt;
In this article, I review some of the newest and most interesting
features in PostgreSQL 10—not only what they can do for you now, but what
you can expect to see from them in the future as well. If you haven't yet
worked with PostgreSQL, I'm guessing you'll be impressed and amazed by
what the latest version can do. Remember, all of this comes in an open-source package that is
incredibly solid, often requires little or no administration, and which
continues to exemplify not only high software quality, but also a
high-quality open-source project and community.
&lt;/p&gt;

&lt;h3&gt;
PostgreSQL Basics&lt;/h3&gt;

&lt;p&gt;
If you're new to PostgreSQL, here's a quick rundown: PostgreSQL is a
client-server relational database with a large number of data types, a
strong system for handling transactions, and functions covering a wide
variety of tasks (from regular expressions to date calculations to string
manipulation to bitwise arithmetic). You can write new functions using a
number of plugin languages, most commonly PL/PgSQL, modeled loosely on
Oracle's PL/SQL, but you also can use languages like Python, JavaScript, Tcl,
Ruby
and R. Writing functions in one of these extension languages provides you
not only with the plugin language's syntax, but also its libraries, which
means that if you use R, for example, you can run statistical analyses inside
your database.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/postgresql-10-great-new-version-great-database" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 05 Mar 2018 16:38:22 +0000</pubDate>
    <dc:creator>Reuven M. Lerner</dc:creator>
    <guid isPermaLink="false">1339684 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The PostgreSQL Global Development Group's PostgreSQL</title>
  <link>https://www.linuxjournal.com/content/postgresql-global-development-groups-postgresql</link>
  <description>  &lt;div data-history-node-id="1339017" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/11980f1_0.gif" width="640" height="234" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;img src="https://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/11980f1.gif" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
With Gartner predicting that 70% of new applications soon will be deployed
on an open-source relational database, purveyors of proprietary DBMSes
surely long for the golden lock-in age of yore. Said trend is in no small
part due to the surging PostgreSQL, which recently stepped up to a new version
9.5. Highlights of this release, reported the PostgreSQL Global Development
Group, include the addition of UPSERT capability, Row Level Security and
multiple Big Data features, all of which the Group hopes will broaden the
user base for the database. The Group added that version 9.5 marks a
turning point for use of Postgres with data-driven applications of
engagement and high-speed, high-volume mobile, Web and digital apps. Other
specific features are performance boosters for today's more powerful
big iron servers, analytics and productivity enhancements to
speed complex query capabilities on extreme data volumes, and a foundation
for horizontal scalability across multiple servers for importing entire
tables from external databases.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://postgresql.org"&gt;https://postgresql.org&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/postgresql-global-development-groups-postgresql" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 31 Mar 2016 16:00:00 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339017 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>PostgreSQL, the NoSQL Database</title>
  <link>https://www.linuxjournal.com/content/postgresql-nosql-database</link>
  <description>  &lt;div data-history-node-id="1338610" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/540px-PostgreSQL_logo.3colors.svg_.png" width="150" height="154" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/reuven-lerner" lang="" about="https://www.linuxjournal.com/users/reuven-lerner" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Reuven Lerner&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
One of the most interesting trends in the computer world during the past
few years has been the rapid growth of NoSQL databases. The term may
be accurate, in that NoSQL databases don't use SQL in order to store
and retrieve data, but that's about where the commonalities end. NoSQL
databases range from key-value stores to columnar databases to
document databases to graph databases.
&lt;/p&gt;

&lt;p&gt;
On the face of it, nothing sounds more natural or reasonable than a
NoSQL database. The "impedance mismatch" between programming languages
and databases, as it often is described, means that we generally
must work in two different languages, and in two different paradigms. In
our programs, we think and work with objects, which we carefully
construct. And then we deconstruct those objects, turning them into
two-dimensional tables in our database. The idea that I can manipulate
objects in my database in the same way as I can in my program is
attractive at many levels.
&lt;/p&gt;

&lt;p&gt;
In some ways, this is the holy grail of databases: we want something
that is rock-solid reliable, scalable to the large proportions that
modern Web applications require and also convenient to us as
programmers. One popular solution is an ORM (object-relational
mapper), which allows us to write our programs using objects. The ORM
then translates those objects and method calls into the appropriate
SQL, which it passes along to the database. ORMs certainly make it
more convenient to work with a relational database, at least when it
comes to simple queries. And to no small degree, they also improve the
readability of our code, in that we can stick with our objects,
without having to use a combination of languages and paradigms.
&lt;/p&gt;

&lt;p&gt;
But ORMs have their problems as well, in no small part because they
can shield us from the inner workings of our database. NoSQL
advocates say that their databases have solved these problems,
allowing them to stay within a single language. Actually, this isn't
entirely true. MongoDB has its own SQL-like query language, and
CouchDB uses JavaScript. But there are adapters that do similar
ORM-like translations for many NoSQL databases, allowing developers to
stay within a single language and paradigm when developing.
&lt;/p&gt;

&lt;p&gt;
The ultimate question, however, is whether the benefits of NoSQL
databases outweigh their issues. I have largely come to the conclusion
that, with the exception of key-value stores, the answer is
"no"—that a relational database often is going to be a better solution.
And by "better", I mean that relational databases are more reliable,
and even more scalable, than many of their NoSQL cousins. Sure, you
might need to work hard in order to get the scaling to work correctly,
but there is no magic solution. In the past few months alone, I've
gained several new clients who decided to move from NoSQL solutions to
relational databases, and needed help with the architecture,
development or optimization.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/postgresql-nosql-database" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 29 Jan 2015 20:55:35 +0000</pubDate>
    <dc:creator>Reuven Lerner</dc:creator>
    <guid isPermaLink="false">1338610 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Rails and PostgreSQL</title>
  <link>https://www.linuxjournal.com/content/rails-and-postgresql</link>
  <description>  &lt;div data-history-node-id="1265009" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/200px-Ruby_on_Rails.png" width="200" height="259" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/reuven-lerner" lang="" about="https://www.linuxjournal.com/users/reuven-lerner" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Reuven Lerner&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Regular readers of this column won't be surprised to hear that I love
both Ruby on Rails and PostgreSQL. Rails has been my primary
server-side Web development framework for about eight years, and it has
managed to provide solutions for a large number of consulting and
personal projects. As for PostgreSQL, I've been using it for about 15
years, and I continue to be amazed by the functionality it has
gained in that time. PostgreSQL is no longer just a relational
database. It's also a platform supporting the storage and retrieval of many
types of data, built on a rock-solid, ACID-compliant, transactional
core.
&lt;/p&gt;

&lt;p&gt;
When I started to develop using Ruby on Rails, most of the other
developers (including the core Rails developers at 37Signals) were
using MySQL. As a result, Rails didn't offer any support for
PostgreSQL-specific features. Indeed, one of my favorite Rails
features always has been database migrations, which allow developers
to change a database schema incrementally. The downside of such
platform independence is that special features often are ignored,
and indeed, in order to serve the lowest common denominator, many of
PostgreSQL's features were ignored or relegated to third-party gems.
&lt;/p&gt;

&lt;p&gt;
During the past few years, PostgreSQL has grown in popularity, both
overall and within the Rails community. This is partly due to the
large (and constantly growing) feature set that PostgreSQL provides.
However, I'm guessing that it also has to do with the fact that Oracle
now owns MySQL, along with the growth of the popular Heroku hosting
service. Whether Heroku is an appropriate choice for your application
is a decision that should be made on a case-by-case basis. However,
the fact that Heroku offers a free tier for tiny data sets, and that
it uses PostgreSQL by default, has made it a popular option for
people learning Rails, for small applications and for many people who
want to outsource their hosting.
&lt;/p&gt;

&lt;p&gt;
As as result of PostgreSQL's growing popularity, the latest (4.x)
version of Ruby on Rails includes extensive, built-in support for many
PostgreSQL features. In this article, I introduce a number of
these features, both from the perspective of a Rails developer
and from that of a PostgreSQL administrator and DBA. Even if you
aren't a Rails or PostgreSQL user, I hope these examples will
give you a chance to think about how much you can and should expect
from your database, as opposed to handling it from within your
application.
&lt;/p&gt;

&lt;h3&gt;
UUIDs as Primary Keys&lt;/h3&gt;

&lt;p&gt;
One of the first things database developers learn is the need
for a primary key, a field that is guaranteed to be unique and
indexed, and that can be used to identify a complete record. That's
why many countries have ID numbers; using that number, government
agencies, banks and health-care systems quickly can pull up your
information. The usual standard for primary keys is an integer, which
can be defined in PostgreSQL using the SERIAL pseudo-type:

&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/rails-and-postgresql" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 29 Jan 2014 20:37:35 +0000</pubDate>
    <dc:creator>Reuven Lerner</dc:creator>
    <guid isPermaLink="false">1265009 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
