OK.. I have done research on this but the more I look into this the more I get confused. So thought of posting it here.
- DBMS provides database server functionality
- DBMS has a server component and a client component
- DBMS = database server software
- DBMS operates on a server/client architecture
These are the four concepts I come across when I tried to understand the difference between the database server software and DBMS. Could some one here clarify which is the right concept please?
Taken from here:
So, in short, a DBMS is the piece of software responsible for the storage and management of the data stored in the database, and it interacts with the user, other pieces of software and the database itself.
Notice that not all the DBMSs have a client-server architecture, and there's not a specific model for the data stored in the database. The most used database model in this days is the relational model (many popular DBMSs are Relational DBMSs, or RDBMSs), but there are other models (object-relational, document-oriented, etcetera)
Examples of DBMSs which follow a client-server architecture:
Examples of DBMSs which do not follow a client-server architecture ("embeded"):
is a real pain in the neck and a source of sorrow and tearsis kinda hard and not very effective for big projects)So, taking your list:
Not necesarily: DBMS can work in embedded mode (an application has exclusive access to the database, and the DBMS is embedded into the application)
Not necesarily: There are embedded DBMSs for which there's no server, but only an app that has access to the database.
Not necesarily, but frequently
Not necesarily
About your specific question ("Difference between database server software and DBMS")... well, many DBMSs are database servers. As the piece of software responsible for the storage and management of the data, the DBMS has also the responsability of dealing with the specific way that "users" (either human or apps) access the data. When working with embedded DBMSs, there's no server: the data can be stored in files accessible only to the app in which the DBMS is embedded, or even (in some cases) in the same file as the app. The more common client-server architecture has some characteristics (depending on your specific needs, they can be advantages or obstacles):
... and so on