what database best for simultaneous editing from remote users using citrix

What database should i use?

The size of the database I think is small.  Please correct me where im wrong.  Maybe a hundred projects. Employees around 2000.
Hundreds of employees must be able to read information from the database simultaneously.
Maybe up to 50 to use the database simultaneously for editing, deleting and creating records.
They currently are using Metaframe Citrix for all remote users (knowledge on how this program works will also be helpful)

Also, what tools would i need to design and test before implementing into their system?  I currently have VB .NET 2003 and Macromedia 8.

This project is very important to me and your knowledge is appreciated.  Thankyou.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

This is a very vague specification, but whenever I hear that lots of people will be updating the database simultaneously, I recommend Oracle over SQL Server, because despite everything Microsoft claims, there is still no clear model for locking records. Oracle provides row level locking and an excellent model for concurrent access, I can read their documentation and understand how the reader reads changes made prior to the commit from the rollback segment. In Oracle, a user can begin a transaction that changes a record, but other users can view that record until the moment the change is committed . MSSQL has no clear model or documentation and uses what is called "optimisitic" locking - which, compared with Oracle, is unpredictable. SQL Server experts may claim the contrary, but as an expert in both Oracle and SQL, I have never been able to duplicate oracle's performance in a mutliuser situation. If I do an update that affects a large number of records in a table, other users will experience locking that affects reading, which never, ever happens in Oracle unless the user is doing a select for update - a syntax that has no parallel in SQL Server (since they cannot really lock records as far as I can tell).

Now, Oracle tends to be more expensive, so there are lots of reasons people choose SQL Server, but that is my recommendation given what I have heard. There are other excellent databases - mysql, firebird, and sybase.  But in terms of finding support, you will probably want to stick with Oracle or Microsoft (Sybase is still basically MS SQL with a higher price tag, in my opinion).

I use SQL Server a lot for data warehousing, where simultaneous access is required, but updates are infrequent. If that is your model, you may find MSSQL a fine alternative.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
gabesoSolution ArchitectCommented:
The 'metaframe citrix' you mention will just give users a window onto a logon session on some server machine. Presumably they will launch an application hosted on that server.

I am curious about what 'AaronAbend' is saying about SQL Server - it does have a varied locking model and performance is all about tweaking the server: So 'optimistic' locking is available but there are others too and it has row-level locking so a carefully designed application should not suffer from these issues - it's all about design.

I have no doubt that DB2 and Oracle are better than SQL Server in a production environment but remember that a database can be designed and tuned for concurrency and performance so that should play a major part in any considerations.
Oracle has more granular record locking control than MS SQL, which can be handy with large numbers of users doing concurrent updates.  Although, Oracle doesn't appear to have any better deadlock mitigation in my experience.  IOW, you have to do the work in design in order to reap the rewards with Oracle.  For the number of concurrent users and the DB size, I'll bet that MS SQL will work fine.

I can't see that having Citrix Metaframe clients would have any impact on the DB choice.

If it's a commerical application that is planned to be used, then it's best to go with whatever OS and DB the vendor uses as their primary build and test environment.  That combo will always get the most love from the vendor.

Without knowing more about the application you're running, I couldn't comment on integration.
reontarehaAuthor Commented:
i agree that MS SQL and Oracle will more than do the job.  However, I feel mySQL will do just the job.  There is less support but it can get the job done and it is much more cost efficient.  Aaron was the only one who mentioned mySQL so i will give the points to him.  Thankyou.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.