Welcome to www.notmydesk.com
Web Hosting - Databases, What Are They and Do You Need One?
'Database' is one of the most commonly used terms that one encounters in web site design. Yet, what they really are and whether they're essential is often not clear to novices.
A database is a collection of organized data, stored in files that have a specific structure. It's that organization and structure that allows for easy and rapid storage and retrieval.
The need for a database generally only arises when you have a certain amount of information and that information needs to have some structure. If you have a half-dozen names and addresses to store, a database is usually overkill. If you have a blob of data with no relationships between any of the items in that blob, maintaining a database is usually more trouble than it's worth.
Maintain a database? Yes, like other complex systems a database, to be effective, needs to be designed properly at the outset then kept 'tuned' for good performance. The alternative is to gradually allow the database to become more and more disorganized. That leads to difficulty in use, poor speed of retrieval and more frequent failures.
With MySQL, Access or MS SQL Server, the three most common choices of database product for web sites today, setting up a database is relatively simple. Even those with limited technical skill can get one up and running just by following some simple instructions. But some thought should be given to how you want the information organized, and to maintaining the system during its lifetime.
Suppose you have a set of names, addresses, email addresses, products purchased, date purchased and amount. If you have only a few dozen records it matters very little how these pieces are arranged and related. A database usually isn't even warranted in this scenario. Once you have several thousand or more records, it matters a lot. Speed, the ease of expanding the set of attributes (like adding, say, product category), and other issues come into play.
Even those with little technical expertise, but a willingness to exert logical thought and invest some time, can build a very robust database. Think about how you would organize a set of data (called 'tables'). Should Name, Address, and Product be in the same table? Or should the personal information be stored in one table and any product information (product, price, ...) in another?
Some experimentation may be needed to get it right, but the choices have an impact on how easy the tables are to maintain. It also affects the speed with which programs can fetch old data and store the new.
Having a database also introduces new maintenance issues for the server administrator, since backups usually need to be done differently. Recovering a failed database is usually more complicated than simply re-copying files from yesterday. Ask your hosting company what tools and skills they have for dealing with any database system you consider.
It's true that introducing a database creates more complexity and the need for additional thought and administrative effort. At a certain level, professional expertise will be needed. But clearly the advantages outweigh the costs in many cases. Companies large and small eventually use databases to store and organize data. At some point, you may be fortunate enough to be one of them.
Web Hosting - Bandwidth and Server Load, What's That? Two key performance metrics will impact every web site owner sooner or later: bandwidth and server load. Bandwidth is the amount of network capacity available, and the term actually covers two different aspects. 'Bandwidth' can mean the measure of network capacity for web traffic back and forth at a given time. Or, it sometimes is used to mean the amount that is allowed for some interval, such as one month. Both are important. As files are transferred, emails sent and received, and web pages accessed, network bandwidth is being used. If you want to send water through a pipe, you have to have a pipe. Those pipes can vary in size and the amount of water going through them at any time can also vary. Total monthly bandwidth is a cap that hosting companies place on sites in order to share fairly a limited resource. Companies monitor sites in order to keep one site from accidentally or deliberately consuming all the network capacity. Similar considerations apply to instantaneous bandwidth, though companies usually have such large network 'pipes' that it's much less common for heavy use by one user to be a problem. Server load is a more generic concept. It often refers, in more technical discussions, solely to CPU utilization. The CPU (central processing unit) is the component in a computer that processes instructions from programs, ordering memory to be used a certain way, moving files from one place to the next and more. Every function you perform consumes some CPU and its role is so central (hence the name) that it has come to be used as a synonym for the computer itself. People point to their case and say 'That is the CPU'. But, the computer actually has memory, disk drive(s) and several other features required in order to do its job. Server load refers, in more general circumstances, to the amount of use of each of those other components in total. Disk drives can be busy fetching files which they do in pieces, which are then assembled in memory and presented on the monitor, all controlled by instructions managed by the CPU. Memory capacity is limited. It's often the case that not all programs can use as much as they need at the same time. Special operating system routines control who gets how much, when and for how long, sharing the total 'pool' among competing processes. So, how 'loaded' the server is at any given time or over time is a matter of how heavily used any one, or all, of these components are. Why should you care? Because every web site owner will want to understand why a server becomes slow or unresponsive, and be able to optimize their use of it. When you share a server with other sites, which is extremely common, the traffic other sites receive creates load on the server that can affect your site. There's a limited amount you can do to influence that situation. But if you're aware of it, you can request the company move you to a less heavily loaded server. Or, if the other site (which you generally have no visibility to) is misbehaving, it's possible to get them moved or banned. But when you have a dedicated server, you have much more control over load issues. You can optimize your own site's HTML pages and programs, tune a database and carry out other activities that maximize throughput. Your users will see that as quicker page accesses and a more enjoyable user experience.