Microsoft announced today a number of new business and technology features for their new release of SQL Server 2017 as follows:

http://www.zdnet.com/article/review-sql-server-2017-adds-python-graph-processing-and-runs-on-linux/

https://www.microsoft.com/en-us/sql-server/sql-server-2017

Today, at its Ignite conference in Orlando, Microsoft is announcing the general availability of a new version of its flagship operational database, SQL Server 2017.  At almost 30 years of age, Microsoft’s flagship database has learned many new tricks.

In a move that may seem ironic to the market and is yet quite consistent with SQL Server’s legacy, the release of SQL Server 2017 heralds SQL Server’s return to the *NIX platform, with a new Linux version of the product. And despite this development being legacy-consistent, it is still a very big deal (i.e., back in 1993 early versions of MS/SQL Server, co-developed with Sybase, also ran on UNIX).

1. Improved Linux compatibility — Microsoft begins the work of eliminating these adoption blockers. SQL Server can now run on Windows servers, Linux-based servers, or some combination of the two. The Linux version can also run in Docker containers (which can also be Windows- or Linux-based) making it almost trivial to run on a Mac. In fact, if a developer’s machine already has Docker installed, running and has allocated at least 4GB of memory to it, then two commands, entered in a Mac or Linux machine’s Terminal window, will download, install and start the product running

2. Data Science improvements with “R” and Python support — Microsoft has taken SQL Server R Services, introduced in the 2016 release, and added support for the Python programming language. The enhanced feature, now dubbed SQL Server Machine Learning Services (ML Services), allows code in either language to execute natively on the SQL Server itself. Another option is to write and execute the R/Python code on a workstation but have it delegate the heavy work to run on the SQL Server.

3. New support for NoSQL graph processing — Instead of rows and columns, tables in graph databases contain “nodes” (sometimes called “vertices”) and “edges.” Nodes represent entities while edges represent relationships between them. With relationships codified at the entity level, rather than the table level, it becomes much easier to do things like get all the entities related to another one in particular.