Database and Web Application Design
1. You have many options
In the field of data storage, retrieval and manipulation there is a bewildering number of options.
For most computer users the word database
means MS Access. In a few cases they also know about MS SQL Server and have
heard the word Oracle, but they're not sure how exactly Oracle differs from the
Microsoft products.
Limiting your choice to what you know about is natural. One cannot include anything in one's
options one doesn't know exists. Unfortunately, it is what one wants to do and how one wants to
do it that is important in making a choice about the best framework and technology to use, not what one knows
about.
It's always better to ask someone who really knows the field before embarking on a new project in an
unfamiliar field. And let's face it, there are many things a business will only need once in its lifetime.
So it's not surprising that the people in such a business are not experts on that one thing. You can get
going by sending us some details about what you need and have in mind.
We will get back to you real soon.
2. Your needs determine the framework you need
One of the most important questions you have to ask yourself is how many people are
going to use this application? If only one user is going to use it, it's unlikely that access control
(user names and passwords) is needed.
The second equally important question is how is this application going to be accessed?
If all users using it are going to use it from the machine on which it lives, network access is not
needed and the part of the application used to access the data can be tightly integrated with the
database itself. If MS Access is used, both the part accessing the data (also called the front-end)
and the part containing the data (also called the back-end) can be in one file, making setting up
communication between back- and front-end unnecessary.
If, however, different users are going to access this application from different machines, the part
of the application used to access the data needs to be separate
from the part responsible for the data. Ideally, this front-end which lives on different machines should require no user
input to configure it to get it to run correctly. This cannot be stressed enough. It is absolutely
guaranteed that some users won't be able to get a front-end that requires some set up to run correctly
and connect to the back-end where the data is. This is all the more true if some users have different versions
of the operating system required by the front-end or different versions of the database software.
With MS Access, users of the front-end need such a front-end on each of their machines
and it needs to be set up correctly. Either it is left to the users to set it up or someone has to do it for them.
If left to the users, many of them will certainly get it wrong. Of course, it also means they have to have MS Access
installed on every machine they use to access data. This translates to dollars you have to spend - many of them.
3. The ultimate multi-user framework
One has four aims in a multi-user environment:
- limit end-user set-up requirements
- be independent of end-user operating systems and operating system versions
- limit the number of places future changes have to be applied to
- limit the cost
There is no framework that so fully addresses all the above points as the following:
-
a network, either:
- a local area network
- a private wide area network
- the Internet
- a server machine on your network running:
- the database application - which can even be something like an online shop
- the software database server - unless you have a really huge user base and want to run this on a different server machine
- plain old web browsers on the end user machines
This framework ensures the following:
- no end-user set-up required - they only need to know how to start their browsers and enter the server location in the address field
- if your end-user machine can run a browser, your database application and server don't care which operating system or version of that system the client machine is running
- future changes are applied only to what runs on your server
- you can choose a server operating system that doesn't cost anything and doesn't charge seat license costs
3.1 Your server machine
Here you have the following options:
- if you don't have a dedicated server in your network, choose the most powerful machine that carries the lowest load
- use your present dedicated server
- buy a new machine and set it up to serve your database application to your users - more on this later
- if your users are widely dispersed, obtain commercial hosting and let your users use the Internet - it's cheaper than you think
3.1.1 Setting up your own server machine for your database application
As this machine will serve only your database application and have the database server running on it, in most cases, its
workload will be light. You don't need the most powerful and expensive machine available. The following
points are important:
- get a well ventilated case - cooling is very important
- keep your server machine in a well ventilated area
- your hard drive is the component most likely to fail - all brands have good and bad drives - don't get the current stinker
- do get good quality RAM - preferably error correcting RAM - 4 to 8 GB will do
- if you get error correcting RAM, make sure your motherboard can handle it
3.1.1.1 Setting up your own server - the operating system
Get a Linux server operating system, like CENTOS, Debian or one of many other Linux distributions. Not only are they free,
but they are rock-solid and run most of the Internet. What do you think
Google runs? Or
for that matter the US Government?
Not only that, they integrate easily into a Windows network and your database application is easily accessible using the browser
of a machine running Windows.
3.1.1.2 Setting up your own server - the database
Here it's very easy again; get PostgreSQL
or MySQL. Both of them run on many operating systems,
including Linux and Windows and both are free. Both are also widely used on the Internet.
4. Do all these options confuse you?
First of all, if you're still with us you're going to get it right. You're obviously willing to spend time getting the
right information. Sadly, not many are. You now know enough to get started.
Getting input from people who will eventually use the system is always valuable, as is itemizing your aims and requirements
about what you want. Time spent planning a project before it actually starts is not wasted. Planning time is often paid back many times
over in getting it right, or nearly right, the first time around.