InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

SQL Server Everywhere: the Future of Lightweight Databases

Posted by Jonathan Allen on Sep 08, 2006

Sections
Architecture & Design,
Development,
Operations & Infrastructure
Topics
.NET ,
Data Access
Tags
SQL Everywhere ,
Database
Jet, the database engine behind Access, is an old and venerable technology. Dating back to 1992, it is the lightweight database of choice for countless Visual Basic programmers. After 14 years, its days are finally numbered. 

The first attempt to replace Jet is the Microsoft SQL Server Desktop Engine (MSDE). As a scaled-down version of SQL Server 2000, it was quite effective. Many small businesses that need more power than Jet but don't want to purchase a full copy of SQL Server are quite happy with it.

Unfortunately MSDE doesn't really replace Jet. MSDE, and its successor SQL Server 2005 Express, are still heavy-weight database engines. The download is large, the installation not entirely automated, and in the end you have a Windows service running in the background. Compare this to Jet, which is essentially a set of DLLs that runs in-process.

So what is a developer who wants a light-weight, file-sharing based database to do? The answer is SQL Server Everywhere (SSEv). Like Jet, it is an in-process, file-sharing based engine. Though it lacks the functionality of SQL Server, it is suitable for small end-user applications that run on the desktop.

SSEv isn't really a variant of SQL Server. Rather, it is based on the SQL Mobile codebase. This means it doesn't have a lot of the functionality of a large scale database. Specifically, it doesn't support views, stored procedures, or triggers. Basically all you get is tables and raw SQL. It does however support transactions, multiple users, and row-level locking. Due the major differences between this and the other SQL Server SKUs, William Vaughn questions the logic behind the name.

SSEv also supports indexes and statistics. This, combined with the fact that it is in-process, should result in really good performance for desktop applications. It may very well replace flat files and XML as a storage mechanism for many applications.

Distribution is much easier with this edition. The DLLs are only 1.4 MB, small enough to put on a floppy disk. And because it doesn't run as a service, SQL Server Everywhere is much harder to target with worms like Slammer. A beneficial side-effect of not having stored procedures is that malicious code cannot be hidden in the file. This makes an SSEv data safer than a Word document. For more information on SSEv, check out Steve Lasker's Web Log.

SSEv is currently available as a community tech preview . It cannot be used in production. SSEv has a built-in limitation preventing web servers from accessing it.
Excellent! by Clinton Begin Posted
SQL Everywhere Languages by Jonathan Allen Posted
Sqlite by Eric Schoneveld Posted
  1. Back to top

    Excellent!

    by Clinton Begin

    I looked at this the other day, it looks quite good. Finally, an "HSQLDB" for .NET. This will be a great thing to simplify our persistence focused unit tests.

    But about this...

    >> Specifically, it doesn't support views, stored procedures, or triggers.

    ...how is that a bad thing? ;-) Finally, good database design for .NET. ;-)

    J/K -- I know procs have their place. Views and triggers less so, but fair enough tha they're not there.

    The funniest thing about "SQL Server Everywhere" is that it's only available in English. So much for "everywhere". ;-)

    Clinton

  2. Back to top

    Sqlite

    by Eric Schoneveld

    Sqlite is also an excellent alternative, you can get the ado.net wrapper here. It's even going to include LINQ support, and the dll to use it is only 477k ;).

    sqlite.phxsoftware.com/

    And no I am not the author, just a user ;).

  3. Back to top

    SQL Everywhere Languages

    by Jonathan Allen

    I was able to get some more information from Microsoft.


    We focused the CTP on English just to get it out there. But the final release will be multi-lingual.

    -- Steve Lasker


    These are the languages supported by SSEv 3.1:

    1. English
    2. German
    3. Spanish
    4. French
    5. Italian
    6. Japanese
    7. Korean
    8. Chinese Traditional
    9. Chinese Simplified
    10. Russian ? Russian is supported by Yukon but not by Whidbey. This is the only language in which Whidbey and Yukon differs. SSEv 3.1 supports Russian

    -- Ambrish Mishra

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.