Home
Username:
Password:
Database Optimization Tutorials

Designing for Performance / Client/Server Interaction

Subtitles of the Movie

Hardware, as I had noted, is one of the components of optimizing a database. At the core of our hardware the client server relationship. When we talk in terms of clients and server we are talking about the common structure for linking computers together. The main purpose is to split the tasks between the server and a client. We refer to this as the client server or the front-end back-end. It's really referring to the software which has been divided up into parts. The client, or the user, will send the request to a server asking for specific information, retrieval of data, or for action to be performed on that actual data itself. It is initiated by the user and typically runs for only one session. Normally it runs on the user's computer. Think, for example, of the Web. If I want to find the balance of my bank account, I, the client, will go to my bank's website, which is now the server and I will ask to retrieve data back to my computer. When I log off that particular session is closed and I will have to reinitiate it again. It's the same concept that we're using in our databases. The server, on the other hand, is the program that's dedicated to providing the service. It'll start normally automatically when the computer boots and it continues to execute through multiple sessions on a shared computer. In other words, I can go into the server and so can you. Now the key with the server is its high performance. It does not necessarily have to be a true Windows server but it does need to be a high performance host. The advantages of working with the client-server relationship are multiple. First, data is stored on the servers now which generally have better security controls. They'll typically have better performance. And because they have the better security I can control access on an individual basis. Now, everyone goes where they're permitted to go not throughout the entire database itself. Centralized data is also much, much easier to maintain. I have one machine in one location so the physical security of that data is actually much easier and the physical location security is of ultimate importance. The centralization of the data is also less time consuming than when it's distributed among multiple machines. This, then, turns around and gives us less opportunity for errors. Client-servers also allow us to work with a variety of different client machines. I'm not limited to just one environment. Many times we can have multiple environments that we're working off of. There are, of course, some disadvantages also, the first being network congestion. I must have enough bandwidth to be able to handle the traffic. If not I need to restructure my network. Keep in mind, just as we have rush hour traffic and traffic jams on our highway systems so, too, does that happen within our network. I also have to make sure that I don't overload the server itself. It must be a high performing machine. That means it must have ample resources, hard drive space, memory, my queue, all of this must be considered when putting together your client-server scenario and, probably one of the biggest disadvantages of the client-server relationship is dependency. If the server fails that's it. Your system is down. This is something that must be taken into consideration and redundancy must be established. Like most programs when you're working with your servers you will find that it needs to have a Transport Protocol in which to communicate. In other words, there must be a language that is used among the computers to be able to talk back and forth. Today the most common and the best known is the Internet or the World Wide Web. You will note that most people are transferring their data now via websites and that has become the most common. Also, keep in mind that the client-server system can have one central server or many individual servers. Now we talked earlier that the distributed server is actually a disadvantage when it comes to maintenance, troubleshooting, et cetera. However, if you have issues with network congestion we may not have a choice. A given machine may even act as both the client and the server for different application. Here's where the rule of not applying this to every situation comes into play. I may be fine with one server, you may need four servers. I may have very light network congestion, you may have extremely heavy network congestion. What we do in our databases depends on our situation and at the core of that situation is our back-end front-end situation which is also referred to as our client-server.

Tutorial Information

Course: Database Optimization
Author: Lauri Sowa-Matson
SKU: 34078
ISBN: 1-935320-94-7
Release Date: 2010-01-06
Duration: 8 hrs / 111 lessons
Work Files: Yes
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available