MS Access Question

jaredbkt

Registered
I read some where that MS Access is not a "real" relational database application. What does that mean and is it true? Just curious. Thanks :)
 
Whomever stated that really doesn't know what they are talking about. M$ Access is a fully capable relational database program. Sure, it doesn't have the power of software like MySQL, Oracle, or even Sequel Server...but that doesn't mean that it isn't a relational database.

Most people I know would call Access a "toy" more because it really isn't designed for creating enterprise level databases, not because it isn't a real database engine. Access is great for small databases used by a small number of users...course M$ would argue that it could go toe to toe with programs like Oracle, but enough of Microshaft's propoganda.

I'd challenge whomever made a statement like that to first of all define what a "real relational database" is, and then secondly to try to find something that their "real database" can do that Access couldn't (within the scope for which it was designed).
 
"Access is a cheap and easy to use file based database solution. However, it is designed to function in a desktop environment. Using it in a web server environment poses many issues. In a production environment, Access should not be used.

An Access MDB file is a data file like a word document or text file. When you use an Access MDB file (or a dBase DBF file or an Excel spreadsheet), the application you're running opens the file and directly manipulates the data in it. As data is added, deleted or updated, the application manipulates the opened data file. If two applications (or applications on two computers) open the same file at once, then both applications open the file. On a practical level Access files are limited to 3 concurrent connections.
Access, FoxPro, dBase, FileMaker and Paradox are all examples of file-based databases.

Unlike file-based databases, client/server database files are never accessed directly. They are usually on another computer with restricted access. Your application communicates with a driver which in turn communicates with the database server and only the database server ever manipulates data.

The underlying data files used to store client/server data are never opened by client applications. If multiple client applications access data simultaneously, all requests are sent to the database server and it processes them sequentially or concurrently. Far more concurrent connections are available with these databases than with file based systems. Per Microsoft the default maximum connections is 32,767.

aside from relational discussion.. what bot triggers... stored procedures.. i'm not sure if these are in access. are they?"
 
sorry i was just responding to access being a toy.. relational in simplest terms.. access is. you've got indexes and primary keys, etc. so you guys are all right about that.
 
MS Access is relational. It is normally connected to on a peer basis, making locking tricky. More complex server based database systems handle the locking for you. They are just as relational, but are better to design larger apps on.

It would be possible to design and create a middle tier on top of an MS Access database, but what is the point - it is cheaper just to go out and buy something like Oracle or MSSQL than re-invent the wheel.

I tend to use MS Access as an altenative to the INI file or Registry on Win32 machines.

My rule of thumb:

MSAccess: single user applications
MSSQL Server: department/office wide applications
Oracle: Enterprise wide applications.

There may be technicalities as to why MSAccess isn't pure relational, but for practical purposes it is a relational as other more robust system. Tables can be linked and contrained. Sure MSAccess is not best used for a large multi-user application, but it is a useful data store with some nice functionality when used appropriately.

R.
 
Back
Top