SQLServerCentral - www.sqlservercentral.com

A community of more than 1,600,000 database professionals and growing

Featured Contents

Featured Script

The Voice of the DBA

Why Object Databases will always be Tomorrow's Technology

This editorial was originally published on Jun 17, 2009. It is being re-run as Steve is away on holiday.

For many years now we always seem to have been on the verge of the revolution in object databases, without it ever quite transpiring. No-one should be holding their breath on the disappearance of the relational database. At the same time, the object database issue will never quite go away, due to the fervent desire of some developers to avoid using relational databases unless they really have to.

This is a manifestation of the YAGNI (You Ain't Gonna Need It) principle that emerged from the bowels of the Extreme Programming movement. It refers to the idea that you should only add a feature if there is an immediate need for it, not because you can predict a future need for it. Some advocates of Domain Driven Design (DDD) apply this principle to the relational database. DDD adopts a silo-based approach focussed solely on the business domain that a particular application represents and tries to implement an entity model that directly reflects what the business sees, rather than some 'compromised' version of this, imposed by the constraints of working in harmony with the underlying relational database.

Unfortunately, however warm and cozy it feels within the realm of their pure business entities, they know that the light at the end of the tunnel is the headlamp of the train that is the relational data model to which they will have to meld their entities. The knowledge of the impending impact is ever-present and they wish to avert it, or at least lessen its impact.

After all, why does one need a huge relational database engine to "persist" the data required to guide users through their application? Object databases are becoming ever more powerful, they now work with stored procedures to keep DBAs happy and, of course, they fit far more readily into the world of their entity business models. Surely, the majority of their application processes could easily be driven by an object-oriented database, resorting to a relational database only to store that data required for business reporting?

This is "relational database YAGNI". However, it is proving to be the proverbial itch that cannot be scratched. Despite the understandable allure of object databases, they have remained resolutely out of reach of the mainstream. Why is this? After all, it has found a place in a few industries, such as telecoms, and the largest database underpins the Stanford linear accelerator system, and it's an object database, so there seems to be no issue with scalability.

The problem is fundamental. Relational databases strongly reflect the inherent nature of the business and accounting applications that we have been developing over centuries. A ledger is essentially a database table. There is a strong, probably unbreakable, connection between the world of commerce and the relational database. It is also no accident that the most widely deployed database engine in the world, SQLite, is a relational one, and powers the likes of the iPod, FireFox3, Nokia's Symbian platform and several others. The data needed to drive such applications and platforms is essentially relational in nature, and needs to be subject to SQL-style data definition and manipulation.

It is for this reason that object databases are destined to be always "next year's technology".

Cheers,

Tony Davis (Guest editor)

Tony Davis from SQLServerCentral.com

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

ADVERTISEMENT
SQL Prompt

How can you help your team write better, shareable SQL faster?

Find out by discovering 15 Super SQL Tips from Microsoft MVPs and other SQL Server experts. Using SQL Prompt to write, refactor, and share SQL, they show how it strips away the repetition of coding and standardizes it everywhere. View the tips and download a free trial.

Featured Contents

 

In Search of Elasticity

Alex Chamchourine from SQLServerCentral.com

An Evaluation of the Azure SQL Database Ecosystem. More »


 

Getting Started with Azure SQL Data Warehouse - Part 1

Additional Articles from Database Journal

As the demand for data analytics grows so does the need for a technology or platform to process large amounts of different types of data in timely manner. Azure SQL Data Warehouse is a new enterprise-class, elastic petabyte-scale, data warehouse service that can scale according to organizational demands in just a few minutes. Read on to learn more about this data warehouse-as-a-service offering from Microsoft. More »


 

From the SQLServerCentral Blogs - Power BI in SSRS – T-SQL Tuseday

The Database Avenger from SQLServerCentral Blogs

T-SQL Tuesday is a monthly event where SQL Server bloggers write a post based on a subject chosen by the... More »


 

From the SQLServerCentral Blogs - Managing Bad Data

Tim Mitchell from SQLServerCentral Blogs

In the last post in my ongoing series about ETL best practices, I discussed the importance of error handling in ETL... More »

Question of the Day

Today's Question (by Steve Jones):

I have a SQL Server 2016 instance and want to use BULK INSERT to load data. What file types can I import? Note that native refers to the native binary representation used by bcp. Character refers to the character formatting produced by bcp.

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


We keep track of your score to give you bragging rights against your peers.
This question is worth 1 point in this category: bulk insert.

We'd love to give you credit for your own question and answer.
To submit a QOTD, simply log in to the Contribution Center.

ADVERTISEMENT

Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud

With Microsoft SQL Server 2016, a variety of new features and enhancements to the data platform deliver breakthrough performance, advanced security, and richer, integrated reporting and analytics capabilities. In this ebook, we introduce new security features: Always Encrypted, Row-Level Security, and dynamic data masking; discuss enhancements that enable you to better manage performance and storage: TemDB configuration, query store, and Stretch Database Get your copy from Amazon today.

e

Yesterday's Question of the Day

Yesterday's Question (by Steve Jones):

For President's Day, which one of these is President George H. W. Bush? 

Answer: SELECT POWER(3,4) - 40

Explanation:

President George H. W. Bush was the 41st President of the United States. Of the items, only POWER(3,4) - 40 gets 41.


» Discuss this question and answer on the forums

Featured Script

Tall generator

Sergiy Fox from SQLServerCentral.com

The function is based on well known Tally function published on SSC.

I added parameters to make it more flexible and easier to use in complicated queries.

Use cases:

Sequential numbers from 1 to 100, step 1:

select N 

from dbo.TallyGenerator (1,100, null, 1)
100 sequential numbers starting from 15 , step 1:
select N 
from dbo.TallyGenerator (15,null, 100, 1)
Counting down from 100 to 1, step 11:
select N 
from dbo.TallyGenerator (100,1, null, -11)
Top 100 numbers less or equal 256:
select N 
from dbo.TallyGenerator (256, null, 100,-1)

More »

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 2016 : SQL Server 2016 - Administration

Restore DB takes a coffee break to open file explorer - Hi all! This has been a problem sice my first SQL DB's in 2005. When i want trestore from device, it's really...

Log shipping from sql 2008 to 2016? - Hello, We want to do a migration, these databases range from 100-500 gigs of data, and want to log ship from...


SQL Server 2016 : SQL Server 2016 - Development and T-SQL

How do I state my foreign key in my Create Table? - Hi Expert, I tried to create a table with foreign key but I am not sure why it is giving me...

Linking rows based on matching fields - I have a sub-set of customers : CREATE TABLE #temptable ( int, nvarchar(20), date, nvarchar(50), nvarchar(10)...


SQL Server 2014 : Administration - SQL Server 2014

Multiple Files & disks - One of our production DB is very new and growing at a rate of 8GB per month which is in...


SQL Server 2014 : Development - SQL Server 2014

Optimizing a query - This needs to be a SQL view for C# to consume.  I am sure there is a better way to...

Trouble with openxml query - Hello, I have an XML document formed like the attachment.  I have it in a table which ddl is: CREATE...


SQL Server 2012 : SQL 2012 - General

SQL ALwaysOn Dependencies - Hi all, Im having a strange problem. I have 2 Availability Groups set up both of which are working. Except 1...


SQL Server 2012 : SQL Server 2012 - T-SQL

Where is that CPU gone? (Profiler Trace) - I have a stored procedure (uspRetrieveMonthlyDiagnosticsForFrontEnd) that takes about 6 seconds. Almost all processing is done through a sub procedure (uspRetrieveMonthlyDiagnostics)...


SQL Server 2008 : SQL Server 2008 - General

sql debugger enabling in the production server without admin privileges? - Hi I am trying to help my DBA so that I get the DEBUGGER enabled ? The caveats are: 1. It is...

redesigning table to accommodate new data types - i have a table in which there is  column called Marks of type int. This is used to save the...

Corruption when restoring/renaming databases - Hi i am trying to move databases to new SSD drives but some have dozens of logical file and are...

Need to migrate a databases from DB2 to SQL server - Hi, Need a help in Migrating a database of 100 GB from DB2 to Sql server. Client would extract the data from...

Weird Resource Database Message in Error Log - I'm getting this message in the error-log each time on a SQL restart. The resource database has been detected in two...


SQL Server 2008 : T-SQL (SS2K8)

Invalid length parameter passed to the LEFT or SUBSTRING function. Trying to remove everything after the period - I have a table that has Machinename that looks like the following: TH1239.CDB.LOCAL TH1238.CDB.LOCAL TH1237.CDB.LOCAL TH1236.CDB.LOCAL TSB1-TLA.CDB.LOCAL TSB2-TLA.CDB.LOCAL I would like to remove everything after the . SO...

Help me see why my trigger is failing - should be simple, but can't see the answer.... - Hi, Had a database migration (SQL 2005 to 2008) about a week ago - don't know if it is even relevant. For...

Index Performance - Hi ,  I have a table with 100 million records with below index structure. CREATE CLUSTERED INDEX IDX_ID ON TEST(ID) CREATE...

Exists on where clause - Hi, Sample data to play with Declare @vendor table(IdVenor int,MessageId int); Declare @vendor_customer table(IdVenorCustom int,MessageId int); Declare @Message table(MessageId int, description varchar(4000)); insert into...


Reporting Services : Reporting Services

SSRS Subscription cannot be created because the credentials used... - I am trying to create my first subscription on my SSRS webpage and I'm getting an error that says "Subscriptions...


Database Design : Design Ideas and Questions

Many to Many Relationship Design Query - Hi, I have a table - TagDetail - that stores the many-to-many relationship between Tag, ParentTask, and ChildTask tables. Basically any 'Tag' can relate...

This email has been sent to newsletter@newslettercollector.com. 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.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.
This transmission is ©2015 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
Contact: webmaster@sqlservercentral.com