Hello people, here is a question related to sharing of databse between two applications.
I am developing an application which has two parts:
1) Client Side. (Student)
2) Server Side. (Faculty, teacher)
What I want to accomplish is that if a teacher creates question paper the student should be able to give exam based on that question paper.
So, the initial idea that i came up with is sharing a common database which will be accessed by both teachers (for making question paper) and students (for giving exams).
I solicit your precious advice on this project.
Any Suggestions that might help in making this a success are welcomed.
@Reverend Jim: i dont expect you to design it for me .
My question is How can we share a single database which is on single machine and can be accessed by client applications on may computers all connected to server in LAN .
A database can be accessed by more than one person (or process) at a time. How you set up your access will depend on whether more than one person at a time will be modifying the same areas. I can't offer any suggestions without knowing how the database will be used.
That is about as useful as saying "I want to write a program that does stuff. Any suggestions?". I don't mean to be rude but how you design will depend on how the database will be accessed, as I stated earlier, and you didn't provide any further information.
The answer to the question you asked is yes of course, the world is littered with client server applications using a common database. (Including this very web site.)
The answer to your question I suspect you are actually asking depends on the database server / program you are using.
The database should be able to support concurrent access/users.
For instance, Microsoft Access is a database but Microsoft themselves do not recommend it for concurrent access (although I have observed client server systems using it but they became unstable after heavy use). SQL server is a database server that Microsoft does recommend for concurrent access (Including SQL Server Express Edition which is free).
If you don't fancy Microsoft then MySQL is also free and very popular and supports concurrent access.
Perhaps a tad blunt. What I am trying to get across is that if only one person will be updating the database then you don't have to worry about record or table locking to prevent an attempt for two people to update at the same time.
until we know what the database structure is like, we really cannot help as "Reverend Jim" has been trying to say, if you have more that 1 client accessing a certain region of the database (Example: teacher - edit student 1 & student views student 1) at the same time the data will not be the same or equal as changes are being made to thus row in a table.
@Rahul47: G_Waddell already provided some info about two commonly used databases, you just appeared to have ignored that advise. In addition to VB.NET you will have to learn how to communicate with the databases, the language is SQL (Structured Query Language). There are a number of online tutorials to help you with that.
If you want to use MySQL (recommended because it is very popular and it is free) here is a tutorial that uses vb.net to create/update files on mysql database. It's a pretty good tutorial, I just finished it myself last week.
For the sake of completeness, Microsoft SQL is also free unless you are planning databases in excess of (I think the limit is) 4 gig. And you can also download the SQL Server Management Console for free which makes setting up and administering the databases much easier.