Beyond Relational Interview: Vinod Kumar speaks on SQL Server 2008 Beyond Relational – Part 1
During Tech-ED India 2009, I had an opportunity to meet SQL Server Legend Vinod Kumar and he agreed to give an interview. Vinod Kumar is my favorite SQL Server speaker and mentor. I take speaking lessons from him, every time I meet him. Thank you Vinod for your continuous support and encouragement. Here is a summary of the discussion.
Jacob: Please give a brief description of your self
Vinod: A lot of folks in the community know me because of my webspace – www.ExtremeExperts.com and the passionate sessions I have delivered for them in the community on SQL Server from time-to-time. I currently work with Microsoft as a Technology Evangelist specializing in Databases and BI workloads. These are my core areas of expertise and I love them like anything. If you are keen, you can also catch me over my blogs and Twitter where I try to share my learning’s from time-to-time.
Jacob: could you explain what is meant by "beyond relational"
Vinod: For me “Beyond Relational” is more of a fact and reality. I think in this internet era, we talk of relational data but applications have pressures of storing and getting data that defy the fundamentals of relational world. Images, chat scripts, medical data, location aware data, documents in .doc or .pdf, our mails, podcasts, videos everything have become seamless part of the internet world and people don’t want to store or write applications differently to just integrate these data. Finally, even the world of XML is beyond relational and it seems to have got into places where we never imagined. Nowadays, documents are stored as XML, languages are around XML schemas, definition templates are around XML notations and more. These are some incarnations of the world – “Beyond Relational”.
Jacob: Are you more of a relational guy or beyond relational guy? or both?
Vinod: This is a tough question – I used to be purely a relational guy about 5yrs back. I saw it was impossible to be a pure-relational person looking at the application needs which drive our very existence. If you need to survive in the database world and be really successful in understanding the spectrum of the databases requirements, one needs to have a blend of both. At the same time, I want to caution the thinking for both these worlds are quite different and we need to be very careful not to mix the fundamentals between these worlds.
Jacob: what is the relevance of BR in SQL Server
Vinod: SQL Server also has a life “Beyond Relational” without any questions. In fact, in the early days of SQL Server 2000, we exposed XML streams before it became a first-class citizen in SQL Server 2005. So our relationship is more than a decade old if people can recollect correctly. But since SQL Server 2005, this new avatar of SQL Server gave data beyond relational a new life. Obviously with the last release of SQL Server 2008 this association has just increased and we have made some great enhancements to target these new and complex requirements of real-world problems.
Jacob: What are components and features that are part of the BR feature set?
Vinod: Though I will not be getting an exhaustive list for a reference but I want to just give you some interesting stuff as starting pointers -
· XML – This feature has been with us for close to a decade as I mentioned before. FOR XML, XML Indexes, FLOWR statement, .NET XML API via CLR, XML Schema support, XQuery support, DML on XML etc are something that will really get the XML nerds really happy. Now being a first-class data type inside SQL this is a boon to all developers.
· CLR Integration – This is also a feature we introduced with SQL Server 2005 and there was a lot of synergy in utilizing the .NET CLR’s BCL (Base class libraries) inside the SQL Server environment to get the max out of SQL Server logics. A lot of them have been defensive on using this feature. As much as I also recommend certain design decisions must be in place before using this feature, it is surely a safe feature to have and very powerful too.
The next three features were introduced with SQL Server 2008 and hence wanted to call them out specifically.
· Filestream Storage – Fundamentally storing large binary objects inside of database is very sub-optimal and such large objects database memory buffers and cause database fragmentation too. Hence Filestream is a special datatype that stores the files on the filesystem and yet gives you all the ACID rule properties of a databases to these objects. Moreover, it also enhances the experience of backup, recovery, transactional consistency, no limit on file size etc. These are a bonus to any database engine.
· Hierarchical Data – Most data schemas involve some form of hierarchy. Manager -> employee, parent company -> child company, Region -> County -> Town etc. Storing these in a relational model is difficult and full of compromises. Hence giving power back to the user especially via a programming paradigm is critical. I know this is a underplayed feature and it will take some time for people to understand its power. Unlike LDAP’s ADSI model, there is nothing new one needs to learn but use the same TSQL constructs for using these special data.
· Spatial Data – This I consider as a wishist item that got into SQL Server 2008. Now SQL Server supports both Geometry and Geography data - Both types support all of the OGC types. Apart from this SQL Server also supports two dimensional data like X &Y or Lat + Long data, Z-member, M-members etc.
It is important to understand that SQL Server or for that matter any upcoming databases will need to store and support both relational and non-relational data. And SQL Server 2008 has enough firepower under its arsenal to keep you busy.
Jacob: What is your favorite BR feature available in SQL Server and why?
Vinod: This is the real tough question – I personally loved SQLCLR when SQL Server 2005 and with SQL Server 2008 I have started loving the Filestream feature more than the others. Well, I know there are quite a lot of unique requirements which can capitalize this feature beyond imagination. Workloads of DAM (Digital Asset Management) or even Sharepoint in the future can get the real value out of this feature.
Jacob: What according to you is the future of BR?
Vinod: For me, this sort of data storage / usage are going to get complex and the application requirements will also get interesting. I think we are just getting started with this type of data manipulation strategies. As a database developer, administrator or architect if we fail to unearth these hidden riches - then we are utilizing maybe just 5-10% of what the technology is capable off. I also understand not all applications will need to embrace this, but if you close your eyes to this - your competition is surely making the best use of this opportunity you gave them.
Jacob: Where do you see XML stand in the BR world?
Vinod: XML for me is no more a separate entity inside the database world. It is very much an integral part of data and there is no way we can separate these entities. I see more and more support of XML into the relational epitome and as you see XML seamlessly co-existing with SQL Server - this bonding is going to get stronger and stronger moving forward. If you had asked me this question about a 5yrs back, I would have given you theories of XML as B2B scenario’s, integration, interoperability etc – though all these still exist we have surely moved beyond this myopic view for XML usages. Look at how we package RDL (Report Definition Languages) as XML with Reports Server, how we store word documents as XML, Call the Analysis processing via XML constructs etc – so the usages and life of XML is surely expanding even without us knowing it.