Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Database

SQL Server Everywhere: Just Another Database?


Local Data Storage

DDJ: Let's say someone is working on something like Microsoft Money, which doesn't need to sync to any central server. You don't need to do anything more than back it up. What makes SQL Server Everywhere Edition a good engine to pick for strictly the local data storage scenario?

SL: There are a couple great questions there to think about. The first question is, "What functionality do I need?" If all I care about is local storage and I don't need to sync something like a product catalog, then you might look at your engine and ask, "Is it small? Can I put it in my application?" In many cases it's the application that's central, not the database that you've chosen for storage. You might also ask, "Does it impact the installation or runtime experience of my overall app?" SQL Server Everywhere Edition being small, lightweight, and in proc, makes it a great fit for that. Once you get beyond that, you have to look at its core features. For example, "Does the engine have a query processor?" Absolutely. "Will it be able to handle additional loads?" When you only had 10 products, you might have been able to use XML or a text file, but once you get to hundreds or thousands of products, you may run into issues that you never had before. That's where having a query processor helps in two ways. First, it lets you get a subset of the data in an efficient way. Second, how do you bring just the information that you're querying into memory? With XML, you can query an XML document for certain elements, but often you've had to pull the whole XML file into memory to do that query.

Transactions also become important. Say I want to make an update, do a delete, or do an insert. If something fails because I lost power, dropped the device, or violated a business rule, how do I ensure that things are committed in an all-or-nothing boundary? In many places, people say that if you just give them a query processor and transactions, that's all they need.

There are a couple products that currently meet that bar. Then, you need to look down the road two or three years, and look at where Microsoft is going to be making future investments. As new scenarios become important, for example XML as a database data type, or new hardware architectures evolve, you have to ask if the database engine is going to continue to be enhanced. Will the engine run natively on 64 bit, for example? In the long run you have to look at where Microsoft is strategically investing. Microsoft is saying, very publicly, that SQL Server Everywhere Edition is a very important strategic investment. From a tooling perspective, Visual Studio will be doing a lot of work to make sure that SQL Server Everywhere Edition is a primary focus in our development experience.

DDJ: You've mentioned that you'll be shipping Version 3.1 before Visual Studio "Orcas", and Version 3.5 with Orcas. You've also mentioned that, even though it's called SQL Server Everywhere Edition, there really is no "Server" to install, it's just several DLLs. So I'm guessing that in the future, one application could be running against Version 3.1, and you could drop a new application on the same machine that's using Version SQL Server Everywhere Edition 3.5, and both database engines can just run side-by-side. Is that correct?

SL: That's a fundamental principal of what we're trying to do here. If I have App 1 installed and working, and I install App 2, I want to make sure that App 1 doesn't break. We will absolutely support side-by-side installations of SQL Server Everywhere Edition. There are pros and cons to that, but for most of our customers, they see side-by-side as a pro. If App 1 is running against Version 3.1, and Version 3.5 comes out, App 1 keeps running against Version 3.1 until the development team for App 1 decides that they want to move it to 3.5.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.