Problems displaying this newsletter? View online.
SQL Server Central
Featured Contents
Question of the Day
The Voice of the DBA
 

NOSQL and RDBMSs

This editorial was originally published on Aug 27, 2015. It is being republished as Steve is traveling.

I first came across the term NOSQL in 2010 at a SQL Bits presentation by Simon Munroe.  Provocatively titled “Improving Database Performance by Removing the Database” it was both deeply disturbing but also strangely liberating.

The irony is that for all the NOSQL fanboyism from the extreme end of the development community many DBAs had also been quietly harbouring heretical thoughts about the way in which their databases were used.  The examples Simon used to articulate the case for NOSQL gave voice to those guilty thoughts.

Why do we use an RDBMS for….

  • Web session state?
  • Logging and auditing?
  • Queueing applications?

I believe the development community saw themselves as experiencing a sort of data Glasnost and escape from the tyranny of the DBAs.  The death of relational technology was gleefully announced…..again.

Where there is change society divides itself into four camps which my experience tells me aligns to a bell curve (not drawn to scale).

Four audiences for change

The stick-in-the-muds took one look at NOSQL solutions and concluded (correctly at that time) that the technology was somewhat flaky and dismissed it out of hand.

The fanboys definitely saw the potential but forgot that RDBMS’s have survived and thrived for a reason.

At the heart of our RDBMS technology is a well thought out and robust model.  Thirty years of evolution and compromise have resulted in a balance of all the concerns that an RDBMS has had to cope with.  The technology has shown a robustness sufficing a number of concerns beyond those it was originally designed to satisfy.  These concerns have been driven by the commercial needs of customers for the technology.  

NOSQL recognises that commercial needs have arisen that require a different compromise, perhaps sacrificing certain attributes in order to favour others.

RDBMS and NOSQL solutions require different compromises to satisfy business need

I think that both the stick-in-the-mudes and fanboys have failed.  The stick-in-the-muds failed in two ways:

  • To consider that in order to satisfy new business models a different balance in the technology compromises must be made
  • To consider the speed at which the NOSQL solutions were evolving.

On the flip side the Fanboys also failed:

  • To consider that the RDBMS vendors would react and evolve themselves to rise to the NOSQL challenge.
  • To consider that some of the ideas from the RDBMS world are actually pretty good and are why the technology has thrived for so long.

It is here that I would offer a few words of caution. The NOSQL vendors have re-discovered that some form of Structured Query Language is a useful abstraction for interacting with database technologies.  While I understand the pressure to adopt a SQL like language I do think it is a mistake to base that language too closely on SQL. I feel that basing their query language on SQL, while aiding adoption it will lead to lazy thinking by architects and developers.  It will prevent the exploration of key strengths of the NOSQL platform that do not fit easily with a language based on SQL.

In the RDBMS camp I can understand the attraction of being able to accept and process JSON and absorb other NOSQL type functionality but isn’t this precisely the one-size-fits-all approach to solutions that NOSQL solutions originally identified as a mistake?

David.Poole

Join the debate, and respond to today's editorial on the forums

 
 Featured Contents
Stairway to DAX and Power BI

Stairway to DAX and Power BI - Level 11: Function / Iterator Function Pairs: The DAX Concatenate() and ConcatenateX() Functions

Bill Pearson from SQLServerCentral.com

Continuing his examination of the evolving DAX “Function / Iterator Pairs,” Business Intelligence Architect, Analysis Services Maestro, Microsoft Data Platform MVP and author Bill Pearson introduces the DAX Concatenate() and ConcatenateX() functions, discussing the syntax, uses and operation of each. He then provides hands-on exposure to Concatenate() and ConcatenateX(), in joining two text strings into a single text string, and in returning the concatenation of an expression evaluated for each row in a table, respectively.

SQL Server Common Table Expression vs Temp Table

Additional Articles from MSSQLTips.com

In this tip we look at how to use Common Table Expressions CTE in SQL Server including the syntax, use cases, using more than 1 CTE at the same time and recursive CTEs with a parameter.

Free eBook: SQL Server Execution Plans, Third Edition

Press Release from Redgate

If a query is performing poorly, and you can't understand why, then that query's execution plan will tell you not only what data set is coming back, but also what SQL Server did, and in what order, to get that data. It will reveal how the data was retrieved, and from which tables and indexes, what types of joins were used, at what point filtering, sorting and aggregation occurred, and a whole lot more. These details will often highlight the likely source of any problem.

From the SQL Server Central Blogs - Containers: Create a Custom Container

Grant Fritchey from SQLServerCentral

Creating a custom container is where things get truly exciting. There’s actually a ton of work and knowledge around this. To start with, I’m going to keep it simple....

From the SQL Server Central Blogs - Mass Backup All Sessions

SQLRNNR from SQLServerCentral

Migrating Extended Event Sessions from one server to another should be a simple task. So simple, one would think there was no need to give it a second thought,...

 

 Question of the Day

Today's question (by Steve Jones - SSC Editor):

 

No More Denial

I decide to prevent the Sales role from accessing the dbo.SalesArchive table. I run this:
DENY SELECT ON dbo.SalesArchive TO Sales
Later I realize that this is breaking our application and need to remove the deny. What code should I run?

Think you know the answer? Click here, and find out if you are right.

 

 

 

 Yesterday's Question of the Day (by Steve Jones - SSC Editor)

Floating Storage

A float data type has a parameter when declared that indicates the mantissa for a number. This is declared as:

DECLARE @f FLOAT(53);

The maximum value for the parameter is 53. When 53 is used, the variable uses 8 bytes of storage. If the value of 24 is used, 4 bytes of storage are needed.

How many bytes of storage are used for a parameter of 4?

Answer: 4 bytes

Explanation: In SQL Server, a float either uses 4 or 8 bytes. For values of 24 or less, 4 bytes are used. Ref: float - https://docs.microsoft.com/en-us/sql/t-sql/data-types/float-and-real-transact-sql?view=sql-server-2017

Discuss this question and answer on the forums

 

 

 

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.


SQL Server 2017 - Administration
TDE error Server principal 'public' has no credential associated with cryptograp - As our first foray into TDE (corporate mandate, so please don't post "don't do it"), we're playing with a sandbox server (fortunately) and I was given wrong instructions. We're using a third party encryption key that SQL Server is hooking into. We installed it, got halfway through the instructions and SQL Server blew up at […]
How to capture permission denied errors - we are implementing SP 2019 and getting an error regarding permission denied on VIEW SERVER STATE. The error doesn't have an account name, is there a way to via a trace flag or more verbose logging level that would force these permission denied events to show in the log? This is just a test server. […]
System Database directory at Install - I'm running my first real SQL 2017 (Dev edition) install and find that I can't seem to deliberately place the system database files (aside from tempdb) in a location of my choosing. When I name the instance (the default / named instance install page) the path is auto-named with no edit boxes available. When I […]
SQL Server 2017 - Development
XML Query Help - Hi: I have xml column with date in this format 2018-07-31T00:00:00+02:00 , when I parse the date with this statement xmldata.value('(ns8:date)[1]', 'DATE') RDate I get the RDate as 2018-07-30 instead of 2018-07-31. When I use xmldata.value('(ns8:date)[1]', 'DATETIMEOFFSET') RDate I get the RDate as 2018-07-31 00:00:00.0000000 +02:00 I want the date to be 2018-07-31. How would […]
SQL Server 2016 - Administration
TempDB files - While running the script below I am seeing all the tempdb files but I am just able to see the primary and log file(2 files) in the GUI. Use master GO SELECT name AS [LogicalName] ,physical_name AS [Location] ,state_desc AS [Status] FROM sys.master_files WHERE database_id = DB_ID(N'tempdb'); GO
ReportServer DB will not join basic availability group - Hello, I am running into a strange situation that I have not been able to resolve.  I have a 2 node Basic AG running sql server 2016 standard.  I am trying to add the reportserver DB to an ag, but it keeps failing on joining the DB to the secndary node.  I have done the […]
SQL Server 2016 - Development and T-SQL
t-sql 2016 using different languages - Right using t-sql 2016, in sql server management studio. I can change the fonts by picking options->tex editor->fonts and I can pick 'Karen Hilang'. When I do that, all the sql changes to the language called 'Karen'. **Note: this font is available for me since I installed this font on my computer. Now I have […]
Looking for Step by Step Instructions for SQL Server Loop using Powershell - Hi Everyone! Does anyone have a good link with instructions to Query a list of servers in a table and put the results in a table? I created a table for the server connection strings. I created a table to store the results. I have the SQL query to get the information. I just don't […]
row size exceeds the maximum allowable of 8060 bytes - Hello Team, I am having a SQL view(having 600 columns). From last 5 years it is working fine but suddenly we are getting below error. Msg 8618, Level 16, State 2, Line 3 The query processor could not produce a query plan because a worktable is required, and its minimum row size exceeds the maximum […]
SQL 2012 - General
Making a Copy of an Existing DB in SQL using SQL script - We need a script by which a source DB, the name will be supplied, to be copied into another DB with another name and also create users who have access only to the new DB.
Data Type Error In Stored Procedure -Updating a Table - I have the below stored procedure, and I am getting this error message: Incorrect syntax near '01' I have other stored procedures which begin with '01,' and they work ok. I'm not sure where the incorrect syntax is. Thanks for any leads. Here is my table structure: CREATE TABLE [dbo].[01_news_test] ( [interestid] [INT] IDENTITY(1, 1) […]
SSRS 2012
Uploading 10 MB PDF file to SSRS - I need to upload 10 MB pdf file ssrs  2012 I used  advice from https://www.mssqltips.com/sqlservertip/4688/resolving-the-maximum-request-length-exceeded-exception-in-sql-server-reporting-services/ and changed maxRequestLength to 1100000 After I restart SSRS I can 't access server   SSRS Log file show error bellow   The value for the property 'maxRequestLength' is not valid. The error is: The value must be inside the […]
Design Ideas and Questions
Is there any way of storing database related information? - Last week I was asked to write a SSRS report against a MySQL database. Never having worked with MySQL, I found this a challenge that I enjoyed. And I got it done. Today we had a follow-up meeting to learn more about the database, what two applications that run against it and other related things. […]
Storing Unit Of Measures - Hello, What is a good design to store unit of measures ? We have a measure dimension with all the measures and we are building a scorecard fact table that leverages these measures and build performance metrics. I could think of three options with third one as a best pick: Option 1: Build a UOM […]
Microsoft Access
MS Access will not allow update or delete commands - MS Access will not allow update or delete commands on an external table in SQL Server. Does anyone ever seen this issue. It's not a rights issue. Using the same account it works directly against SQL Server. Please advise?
 

 

RSS FeedTwitter

This email has been sent to {email}. To be removed from this list, please click here. If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com. This newsletter was sent to you because you signed up at SQLServerCentral.com.
©2019 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
webmaster@sqlservercentral.com

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -