Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We are trying to start a web base project that need to develop based on MS technologies such as C#,.net, IIS etc. This is a web application suppose to sell as a product with a single installer.

Now we are discussing which kid of database we are going to use. Some says non-embedded database (Ms Sql) Some of them idea is to use embedded databases. So we are in a bit of confusion stage for a batter decision.

Can you guys give some feedback according to your experience. then that will help us to come up with a good decision.

In simply what is need is When to use non-embedded over embedded databases?

Edit : Anyway We have technical understanding about how to use Non-embedded database such as MS Sql Server or Embedded database. What I need is, Conceptually in which situations usually we prefers each type of databases and what are the pros and cons of using each types.

share|improve this question

closed as too broad by gnat, Kilian Foth, World Engineer Jan 23 at 14:15

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Down voting war started :). at-least mention the reason for down-vote as a comment, then next time we can avoid that. –  Nayana Adassuriya Jan 2 at 7:00

1 Answer 1

If you're hosting the product on your server, then you might create a database for each subscriber, and a master database with a table of subscribers. This isn't 'embedded', but the databases (file systems) are separate.

If you're creating a package that will be distributed, such that you are creating web-enabled applications that run on user's servers, then you have to determine whether the users would reasonably expect to have a DBA as an employee or contractor. If they would, you would want them to install the database first, according to their server configuration. If they already have SQL Server used in other applications, they will merge this one with their others, if appropriate.

If you're creating a package that users will run on their own servers, but they wouldn't reasonably have a DBA, then you want to embed the database. In this case the user is only dimly aware that a database is part of the installation - it occurs automatically and your installer program is responsible for setting it up. This means your app will need to include some administrator tools for database backup, database repair, index rebuilds, etc.

If you distribute a product with an embedded database, be prepared to offer expanded support. Invariably people will get into trouble, and they'll need a responsive support resource, and are usually willing to pay for it once it's determined that the problems are something you couldn't have anticipated.

share|improve this answer
    
Thank you for your ideas. anyway We have technical understanding about how to use Non-embedded database such as MS Sql Server or Embedded database. What I need is, Conceptually in which situations usually we prefers each type and what are the pros and cons of using each type –  Nayana Adassuriya Jan 2 at 6:50
    
You may have to clarify your question, since the answer I provided describes the situations in which you would use one or the other. SQL Server can be embedded, look up the MS SQL website to see how to include it in a package. There is a single-line command for installing SQL Server Express. –  Meredith Poor Jan 2 at 18:58

Not the answer you're looking for? Browse other questions tagged or ask your own question.