Someone sent me this note about a talk they'd had at their user group and the guest speaker mentioned the following:
- -SQL is not based on “computer science”. He challenged us to come up with a “computer science” term to define a database table. No one could to his satisfaction.
- -No current SQL product truly implements the “relational model” (except of course for the one he just wrote, which isn’t commercially available).
- -Microsoft is making a major push to declarative modeling languages, the object model, and the entity framework. SQL doesn’t fit in here anywhere.
- -.NET developers hate coding in SQL and despise stored procedures. They can’t define a SQL table as a .NET variable.
- -The war inside Microsoft is already over. A few years back everyone on the SQL Server development team who supported the relational model were removed and replaced by .NET folks.
- -LINC is the reason the 2008 product is late, and is the first step towards .NET transparency for data stores.
- -SQL Server as a product is already dead inside Microsoft, and SQL Server DBAs are going to become extinct, since .NET, object-oriented developers will be able to create and maintain their own data stores.
Personally I think it's crap. Or most of it.
There is a push to do more LINQ and get it deployed. That's because it makes developers more productive quicker and they don't have to learn SQL, which many of them don't, and many more do poorly. There are exceptions, but as a general rule I think that most developers don't get the SET model of data.
However there are quite a few DBAs on the SQL Server team. I know a few of them personally and they are recent hires, so there isn't a push to just get .NET people up there. That being said, there's a lot of .NET code inside SQL Server and they're using it to extend the system with things like the HierarchyID, spatial work, etc. Plus it's a software product that needs to be coded.
SQL isn't going away. As a data store, it handles and processes more data than any developer will deal with in their own data store. There are all sorts of large amounts of data, backup, recovery, and more that require a strong back end database to manage. A data store just won't cut it. And relational design will still be required for warehousing, BI, and many other applications. The developer view just isn't practical.
That's not to say SQL is compliant. No one is to my knowledge and it doesn't stop those products from working. SQL Server is a variant, and the finest one, IMHO.