Friday, November 13, 2009

Database Server

Refers to the back-end system of a database application using client/server architecture. The back-end, sometimes called a database server, performs tasks such as data analysis, storage, data manipulation, archiving, and other non-user specific tasks.

Such a server is accessed either through a "front end" running on the user’s computer which displays requested data or the back end which runs on the server and handles tasks such as data analysis and storage.

In a master-slave model, database master servers are central and primary locations of data while database slave servers are synchronized backups of the master acting as proxies.

Implementation of Database Server:

A database server can be implemented in a straightforward manner as separate node (on a network) dedicated to running database-management software. This node provides an interface to client nodes such that the same data is accessible to all nodes. The interface allows users to submit requests to the database server and retrieve information. These requests are typically made using a high-level query language such as SQL (standard query language).

The server manages the any processor-intensive work such as data manipulation, compilation, and optimization, and sends only the final results back to the client. Database servers are typically made to run on a UNIX operating system.

Benefits of using Database Server:

  • A database server allows users to store data in one central location.
  • It performs complex functions such as searching, sorting, and indexing on the server itself. This reduces network traffic because fewer items need to be transferred between the client and the server.
  • Because data is stored centrally, there is enhanced security.
  • A database server uses its own processing power to find requested data, rather than sending the complete data to the client so that the client searches for the data, as is done in a file server.
  • A database server allows concurrent access to data.
The types of databases available:

As database software has evolved, a number of different approaches to storing and linking information have emerged. Some of the more common include:

Relational databases. A relational database creates formal definitions of all the included items in a database, setting them out in tables, and defines the relationship between them. For instance, a typical business database would include tables for defining both customers and orders. Using ids or keys, the two tables can be related together. Such databases are called 'relational' because they explicitly define these connections (an order form can look up customer details from the customer table rather than having to store the information twice). Most relational databases now make use of SQL to handle queries (discussed in more detail below). Currently these are the most common form of database.

Object databases. Object databases store data in discreet, self-contained units - objects. These objects have specific data, attributes and behaviours associated with them. An extremely simple example might be a product database with a shirt object, which has attributes such as size, colour, and price. In practical use, the main difference between object and relational databases is the way in which data is accessed. Programmers use object-oriented programming languages to access the data objects from the object database by calling methods in their code. This takes much of the information that would have resided in the application code and transfers that information to the object database. Thus the application code is simplified. However, at the same time the fact that the database and application are tightly entwined can make accessing the data outside of the application more complex.

Object-relational databases. Object-relational databases attempt to combine object and relational approaches. This allows the benefits of using objects where necessary to be tied to the strengths of relational databases.

Hierarchical databases. While relational databases arrange data in tabular format, hierarchical databases arrange them in a tree format, with a parent node leading to further child nodes (which in turn may have further nodes of their own). The model is very similar to the way in which a program such as Windows Explorer displays the contents of a hard drive (double-clicking on a parent directory leads down the tree to further information, and so on down the directory tree). This allows for multiple types of subsidiary data, but makes it difficult to identify complex multiple relationships between individual data items (just as there is no obvious link between two subdirectories on a hard drive).

Until recently, hierarchical databases have been more common in computer science fields than in real-world applications. However, hierarchical methods have become more popular with the emergence of XML (Extensible Markup Language), which uses a hierarchical structure, as a common data exchange format.

About SQL

SQL (Structured Query Language) is used by relational databases to define queries and help generate reports. First developed in 1976, it provides a standardised means of sending queries to relational databases. SQL also defines more fundamental elements of databases, such as data types. SQL has become a dominant standard in the world of database development, since it allows developers to use the same basic constructions to query data from a wide variety of systems.

The central functions of SQL have been defined by international standards organisations: originally the American National Standards Institute (ANSI), and subsequently the International Standards Organisation (ISO). Like most computer-based standards, SQL also comes in a number of flavours. The two most recent iterations are SQL-99 (also sometimes known as SQL-3) and SQL-92, both named for the years in which they were first released. (SQL-99 had been originally planned for release in 1996).

While SQL-92 defined three individual levels of compliance (basic, intermediate and advanced), SQL-99 reverted to the model used in previous versions of providing just one large feature list. More importantly, SQL-99 also added some basic support for object features, extending SQL's usefulness and blurring the distinction between relational and object approaches to databases.

It is comparatively rare for vendors to implement the precise standards laid down for SQL, which is a complex standard running into thousands of pages. Several companies choose not to implement every aspect of the existing standards, arguing that the functions in question are rarely if ever needed by developers or users. Simultaneously, many provide additional, functions (known as extensions) to make particular tasks easier. Despite what you might suspect, many companies will simultaneously add their own extensions while ignoring some aspects of the basic standard. Whether these additions and exclusions are important to your business will depend on the exact mix of applications you wish to run or develop, and what existing applications you already have in place.

How to choose Database Server?

When choosing a database server, the most important consideration will be whether it can deliver the specific application functions you require. These may be supplied in the form of pre-packaged software, or you may choose to develop your own (or more likely hire a consultant to do so). This may involve considerable expenditure, but this needs to be balanced against improved staff productivity and the ability to more accurately analyse your business.

Standards compliance. As discussed above, SQL support varies widely between database server suppliers. Databases which comply with SQL should allow relatively straightforward data exchange, so SQL compliance is important, especially in environments running more than one operating system.

Security systems. Databases often store highly valuable and sensitive commercial information, so it's important that there is some security system in place, even if this is only a basic username/password system. Most database servers will provide audit trails, allowing you to see who has entered, accessed or modified information. If your database server is going to be exposed to the Internet, then security mechanisms will need to be more robust and you will need to consider whether other mechanisms (such as encryption) are necessary as well.

Performance features. Databases are generally critical applications, and even a brief outage can be harmful to your business. To help prevent this, modern database servers have borrowed many features from the world of general network operating systems, including fault tolerance (systems to keep the server running in the event of unexpected errors) and load balancing (which allows database queries on high-volume systems to be handled by multiple servers, improving performance and response times). These are unlikely to be needed if you're just running a single database server, but as your needs expand they are likely to become more crucial considerations. If your database server is used for e-commerce applications, these availability issues will take on a heightened degree of importance.

While you may not require all these features immediately, you should consider future needs as well as your current plans. Retrofitting these features to your system is likely to be more difficult than installing a database server that supports them from the beginning, even if it takes time for you to actively deploy them.

XML: If you will be doing data interchange now or in the future you may want to look for a database that allows extraction of data as XML. This may make using XML as a data interchange format simpler.

No comments:

Post a Comment