Chapter 11 – Advanced Topics in DBMS – Introduction to Database Management Systems

Chapter 11






Advanced Topics in DBMS

Multimedia in computer applications can show images, graphics, video, animation, and play all kinds of sounds. Multimedia databases takes care of database issues pertaining to multimedia data.

Chapter Highlights

  • Meaning of Deductive Databases
  • Internet Technology and Its Relevance to DBMS
  • Technology of Multimedia Databases
  • Overview of Digital Libraries
  • Mobile Databases

11.1 DEDUCTIVE DATABASES

11.1.1 Features of Deductive Databases

We store information about things in a DBMS.

A deductive database system contains capabilities to define rules. These rules can deduce or infer information to that stored in a database already.

The rules that are used in such databases are based on mathematics. That is why such rules are called logic databases.

There are two primary variations of deductive database systems: expert database systems and knowledge-based database systems. Deductive databases differ from these two types of databases in one major respect: In the case of expert or knowledge-based databases, the data needs to be present in the primary (main) memory of the computer. However, in a deductive database, this restriction is not present. The data can be in primary or secondary memory.

The fundamental concept in declarative databases is the use of a declarative language. We specify what we want, rather than how to get it done. In other words, we specify rules about the information. There is a specific component called as the inference engine or deductive mechanism. This component of a deductive database finds out new facts based on these rules. This is conceptually similar to the way RDBMS works, and in particular to relational calculus. Recall that relational calculus is also a declarative concept, unlike relational algebra.

There is a programming language by the name Prolog (abbreviation of Programming Logic), which is based on similar principles. Prolog is extensively used in deductive database technology. In addition, its variation (called Datalog) is also used. Datalog defines rules declaratively, in addition to existing rules.

In deductive databases, two basic types of specifications are used, as shown in Fig. 11.1.

Fig. 11.1 Types of specifications in deductive databases

Let us discuss these types.

  • Facts are similar to tables in RDBMS. These are described in a manner that is quite close to the describing of relations. However, unlike tables in RDBMS, there is no concept of attributes or columns here. We know that in the case of RDBMS, the value of a column within a row signifies some real-world fact about that row. Here, there is no such concept. Instead, what is important is the position of the column in a row.
  • Rules are similar to the views in RDBMS. Rules specify and describe virtual (non-existing) tables. Often, in RDBMS, we can infer information from database tables by using views. Similarly, we can deduce information from facts by using rules. This shows that facts are similar to tables, whereas rules are similar to views.

We have discussed OODBMS earlier. Where do deductive databases fit with respect to OODBMS? We know that the basic premise in OODBMS is to try and provide a simple mechanism in order to model real-world objects. We try to model the structure and the behaviour of objects in OODBMS. However, this is not the case in deductive databases. Here, the focus is to try and derive more comprehension from existing information by providing additional details in the form of rules. In the near future, the addition of deductive capabilities to existing OODB features is expected to give birth to what would be termed as Deductive Object Oriented Databases (DOODB).

We now provide a brief outline of what the Prolog language can do, in order to understand the capabilities of deductive database technology.

11.1.2 An Overview of Logic

What is mathematical logic? In our daily lives, when people disagree on certain issues, some say that their arguments are logical and that the other party is speaking illogically. What does this mean? This simply means that the first group of people is using logical reasoning to arrive at some conclusions. Mathematical logic–also called as symbolic logic, deals with the rules of logical reasoning. In early days of computing, mathematical logic was used only at the 1GL machine level – that is the lowest level. However, artificial intelligence is aimed at establishing mathematical logic at higher levels such as 3GL.

The most popular 3GLs, such as COBOL, C, BASIC, C++ are not based on the principle of mathematical logic. These languages were developed to provide data manipulation and computation. However, they cannot be used for simulating an expert's reasoning. They work fine when, say 1000 records are to be read from a file, processed in some way and added into a database. The expert systems developed by using modern languages (such as Prolog) have been specifically designed for artificial intelligence attempts to solve problems in various domains. Expert systems can perform intelligent reasoning and explain how they draw their conclusions. Therefore, these programming languages are based on the principles of mathematical logic.

Mathematical logic is based on two factors:

  • Facts – Facts are pieces of fundamental knowledge. For instance, ‘A is son of B’ can be a fact, since it is not based on any conditions.
  • Rules – When facts depend on certain conditions, they become rules. For instance, when we say ‘If you get at least 35 marks out of 100, you will be declared a successful candidate’, it is a rule.

PROLOG is a very concise but effective language. It is very logical in nature, and is usually based on a series of logical/Boolean (Yes/No) answers.

A deductive database system based on artificial intelligence works on a set of facts and rules that describe objects and their relations. Facts are statements that are always unconditionally true while rules declare properties and relations that depend on a given condition.

11.1.3 Knowledge Representation

What is knowledge representation? Let us consider a simple example to illustrate the concepts learned so far and see how knowledge can be represented. Suppose we have a relationship, as shown in Fig. 11.2.

Fig. 11.2 A sample family tree

The figure shows a sample family tree. How would a deductive database system represent this information? Of course, it has to make use of facts and rules for this, as discussed earlier. Let us write this family tree in the Prolog language as shown in Fig. 11.3.

Fig. 11.3 A Prolog program (left box) for the family tree

The program (shown in the left box of the figure) consists of four statements: three facts and one rule. The facts represent family relations. They state that Kathy is a child of Sandy and that Barry and Paul are Kathy's children. The fourth clause is a rule that states that ‘For all x and y, x is a parent of y if y is a child of x’. This is how knowledge is represented inside a deductive database system. Of course, the exact way in which this is done would differ from language to language. However, the principles of describing facts and rules as knowledge remain the same.

Having established the facts and rules, how do deductive database systems allow us to derive intelligence from them? For this, let us extend the same example. Suppose, someone who does not know much about the family described earlier, wants to know if Kathy is Sandy's child. For this, the following question may be asked to the program:

? child (Kathy, Sandy)

The program would come back with the message:

Yes

The program comes back with a positive message since it finds a fact that states this relation. Similarly, if someone types:

? child (Kathy, Paul)

The program would respond with:

No

Going further, we can query our knowledge established so far to find who is Sandy's child and whose child is Paul.

? child (x, Sandy)

x = Kathy

? child (Paul, x)

x = Kathy

All these answers are based on facts. Remember we had a rule as the fourth statement. How can we use that rule to derive some information? Suppose we ask the program who is Kathy's parent, using this rule.

? parent (x, Kathy)

x = Sandy

Thus, using the basic principles of facts and rules, knowledge can be represented and then used to query that knowledge in a variety of ways. All artificial intelligence systems work on similar principles.

If we study the example carefully, we would realise that to answer a questions such as who is child or parent of whom, we would have also worked in a similar manner. We would have thought about the facts and rules and come up with similar answers. The point is, once we are able to set up all the facts and rules, we can let the artificial intelligence system take care of the answers. As discussed earlier, however, establishing facts and rules itself is not easy, simply because there are so many of them. But for special purpose smaller applications, that should certainly be possible.

A great amount of research is still being carried out on deductive database systems. In the coming years, perhaps artificial intelligence systems based on deductive databases will do things which are unthinkable at the moment.

11.2 INTERNET AND DBMS

11.2.1 What is WWW?

World Wide Web (WWW) is an application that uses the Internet for communications, with TCP/IP as the underlying transport mechanism. Many companies set up Internet Websites. A Website, like a brochure, is a collection of Web pages. These pages on a Website are stored digitally on the Web server.

The function of the Web server is to store the Web pages and send them to a client computer as and when it requests for them. The Website address is called as the Uniform Resource Locator (URL). It corresponds to the first page (also called as home page) of the Website. Internally, a Web page is a computer file stored on the disk of the server. The file contains tags written in a codified form. These tags decide how the file would look when displayed on a computer screen.

11.2.2 Web server and Web browser

A Web server is a program running on a server computer. Additionally, it consists of the Website containing a number of Web pages. A Web page constitutes simply a special type of computer file written in a specially designed language called as Hyper Text Markup Language (HTML). Each Web page can contain text, graphics, sound, video and animation that people want to see or hear.

The Web server constantly and passively waits for a request for a Web page from a browser program and when any such request is received, it locates that corresponding page and sends it to the requesting client computer. This request-response model is governed by a protocol called as Hyper Text Transfer Protocol (HTTP). For instance, HTTP software on the client computer prepares the request for a Web page, whereas the HTTP software on the server interprets such a request and prepares a response to be sent back to the client. Thus, both client and server computers need to have HTTP software running on them. We should not confuse HTTP with HTML. HTML is a special language in which the Web pages are written and stored on the server. HTTP is a protocol which governs the dialog between the client and server.

A Web browser acts as the client in the WWW interaction. Using this program, a user requests for a Web page (which is a disk file, as we have noted) stored on a Web server. The Web server locates this Web page and sends it back to the client computer. The Web browser then interprets the Web page written in the HTML language/format and displays it on the screen of the client computer.

11.2.3 Hyper Text Markup Language (HTML)

A language called Hyper Text Markup Language (HTML) is used in order to create Web pages. HTML is used to specify where and how to display headings, where a new paragraph starts, which text to display in what font and color, and so on.

Deductive databases are based on principles that are similar to PROLOG and other logic-based languages.

HTML uses tags to define the contents of Web pages. Tags are enclosed in angled brackets. For example, a tag <I> indicates the beginning of text in italics. Thus, when a Web page containing a <I> tag is sent by a Web server, the Web browser interprets this tag and starts displaying the contents after this point in italics. Most tags end with a corresponding </> tag. For example, the <I> tag would end with a </I> tag. There are many such tags to create document titles, headings, changing fonts and styles, and so on.

For example, let us consider how the tag pair <U> and </U> can be used to change the text font to underlined. This is shown in Fig. 11.4.

Fig. 11.4 Example of the <U> and </U> HTML tags to make the specified text underlined

When a browser hits the <U> portion of an HTML file, it realises that the following section of the text embedded within the <U> and </U> tags needs to be displayed underlined. Therefore, it displays this text underlined, as shown in Fig.11.5.

Fig. 11.5 Output resulting from the use of the <U> and </U> HTML tags

11.2.4 Dynamic Web Pages

Many Web pages are static. That is, their content does not change on the basis of request made. In other words, when a browser requests the server to send a static Web page, the server does not execute any application program. It simply finds the requested Web page (which is an HTML file on its disk) and sends it back to the browser as it is. Of course, the page should have been created and stored on the server prior to this, and it cannot be created at run time. In contrast, a dynamic Web page is a program in response to a Web page request. The output of this program (which is also in HTML) is sent back to the Web browser. For ease of understanding, we can show the differences between static and dynamic Web pages as shown in Fig. 11.6 and Fig. 11.7.

Fig. 11.6 Static Web page

Fig. 11.7 Dynamic Web page

In case of static Web pages, the browser sends the address of the desired Web page in the form of URL to the Web server. After this, the Web server locates the requested file on its disk and sends it back to the browser. In this case, the browser has requested for a file called as test.html. The server locates that file and sends it back to the browser.

Now let us consider what happens in case of a dynamic Web page. Here, the URL does not correspond to the address of a per-created (static) Web page. Instead, it is the address of a program to be executed on the Web server. There are various programming languages/technologies used for this purpose, such as Active Server Pages (ASP), Java Server Pages (JSP) or Common Gateway Interface (CGI). These are programs that get executed on the server. Their output is also in plain HTML. This output is sent to the browser for display.

In the following example, the browser sends a request for a program called test.cgi. The Web server locates test.cgi and hands it over to the CGI interpreter program. The CGI interpreter executes the program test.cgi and produces HTML output, which goes back to the Web server. The server sends this HTML output back to the browser. Note how different this is from the retrieval of the static Web page called test.html.

We can now very well understand that dynamic Web pages are extremely important. Imagine that we need to show the Internet users something that is constantly changing: for example, the inventory balance of a product. To do this, we will need to create a program (in ASP, JSP, CGI, etc.). This program would reside on the Web server. This program would will accept a request from the client, and search the product database maintained on the server for the desired product. It would read the inventory record for that product, extract the inventory balance, and send it in HTML format to the browser. The browser will then display the output. It should be noted that inventory transaction such as receipts, issues and returns would be updating the product database records continuously on the server. At any moment, when a user clicks on a particular product to check on the balance, the product code and the URL of the Web page (in which this program for the product database search is stored) are sent from the browser to the server. The server then locates the Web page (knowing that it is a program from the extension such as .asp or .jsp), it loads it in its memory, executes it with the help of the appropriate (ASP, JSP or CGI) compiler/interpreter, and sends the results in HTML format back to the browser. This is how a user gets real time information about various things.

We can now imagine how dynamic Web pages are useful in getting the latest information on weather forecasts, stock prices, and many other subjects. The only point to remember is that some other programs have to do the job of updating the respective databases.

11.2.5 Issues in Web Databases

We shall now examine a few issues related to DBMS that need to be addressed in the context of Web technologies.

  1. Constant availability: The Internet is always on. In other words, at any point of time, someone or the other in the world accesses the Internet. This also means that it needs to be constantly available. Applications running on the Internet must provide for 24 × 7 support. These applications make heavy use of DBMS technology for storing huge amounts of data. Consequently, it is also very significant that DBMS is able to stand up to such demands. Several approaches are used in order to ensure this. We have already studied most of them, such as data replication, data redundancy and data distribution.
  2. Security: The Internet is an open platform. The Web can be accessed by anyone armed with a simple Web browser and an Internet connection. This also means that one need not possess any special privileges to browse the Internet. However, when it comes to accessing specific applications running on the Internet, appropriate security measures to ensure authentication, authorisation, integrity and confidentiality must be in place. The DBMS is closely associated with all these aspects. Many times security breaches on the Internet occur in the form of access to databases directly, bypassing the application. Such attacks must be prevented by creating and practicing an elaborate security policy and by using the appropriate technical tools.
  3. Transaction processing capabilities: There have been instances when literally millions of users have tried to access the same Website at the same time. Examples of such sites are the ones that host live sports updates, news telecasts, election results, and so on. Such sites must be able to weather the demands of such a high number of users. This also means that the DBMS that these sites use must be able to process transactions at a very rapid pace. It must be able to recover from transactional problems quite quickly. Worse still, if these sites make use of distributed/replicated databases, the transaction processing logic has to take care of these aspects as well.
  4. Concurrency: We can guess from the above points that Web databases need a high amount of concurrency. The same table, or for that matter, the same row, may be accessed by millions of users at the same time. The DBMS must cater to such requirements by providing a very sophisticated concurrency model. We have discussed all the issues and the possible solutions related to concurrency earlier.
  5. Support for XML: Extensible Markup Language (XML) and its variants have gained a lot of popularity over the last few years. XML is a data description language that allows data to be exchanged between applications quite easily, as opposed to the earlier proprietary standards. These days, most popular DBMS products allow the data to be directly stored or retrieved as XML.

Multimedia is exciting and the way forward. Plain text-based computing will continue to dominate serious business applications for at least a few more decades. However, multimedia applications will become the norm for all entertainment and many business applications as well. It would provide sound, animation, graphics, video, and so on. The faster the hardware and more optimised the compression techniques, the better it will be.

11.3 MULTIMEDIA DATABASES

11.3.1 What is Multimedia?

The modern computer systems can also be used for the following:

  • Drawing, storing and viewing pictures
  • Storing sounds and playing them back
  • Storing videos and playing them back

Computers store textual information in the form of bits and bytes. We can codify various characters of the English language as a series of zeroes and ones. Once this codification is ready, we can continue to use our language of words and sentences, and let the computer treat these as a series of appropriate zeroes and ones, depending on the character.

However, pictures, videos and sounds are not made up of alphabets and numbers. How can a computer recognise and store them? How can we codify information about these so that a computer can store them? Clearly, we cannot have a scheme such as ASCII or EBCDIC here. What is the solution, then?

The concept of multimedia came into being to resolve this problem of codification of pictures, videos and sounds. As the name says, multimedia means multiple media. Thus, with the use of multimedia, we can not only access the usual textual information, but also information in the form of pictures, videos and sounds, which can be created by using a computer, stored inside a computer and played back.

Multimedia is used in several areas, such as document management, training, marketing, travel, education, entertainment, advertising, control systems, and so on.

11.3.2 Sampling and Quantising

If we want to transform a picture, video or an audio signal such that it can be mapped to the computer-recognisable data of 0 and 1, we must map it as digital data. This means that, we must measure the signal in the form of numbers; when we do that, the signal becomes equivalent to what it would be when interpreted by a computer!

Two techniques are used together for measuring such a signal. They are sampling and quantising. Put simply, we must determine how frequently we should measure the signal and how much signal range we should have.

Measuring audio signals at fixed intervals of time is called sampling. Thus, if we decide that an audio signal would be measured 60 times a second, the sampling rate would be 60. So, if we have an audio signal as shown in Fig.11.8, we can sample it as shown. Obviously, the higher the sampling rate, the better is the representation of the audio signal inside the computer, as we would have more samples.

Fig. 11.8 Sampling an audio waveform

Having determined how many times the signal should be measured, the next step is to assess the range of amplitudes. If we take 60 samples per second, we would have 60 discrete numbers for the audio signal. In quantising, we assign them numbers depending on their amplitude values. Obviously, a 0 would represent the weakest signal or a lack of signal, whereas a powerful signal would get translated into a high positive value. The question that arises is: how much is the quantising range? The answer is: the higher the range, the better is the audio quality, since finer audio details can be captured on a broader scale. Fig.11.9 illustrates the idea. The numbers thus obtained are the signal values for the original audio signal, as stored inside a computer.

Fig. 11.9 Sampled values being quantised (measured)

After having obtained the numbers for representing an audio signal they need to be fed to the memory of the computer. When we want to play back this audio, the necessary audio equipment in the computer's hardware can then translate these numbers back to original soundwaves!

For instance, in the example offered just now, the numbers corresponding to the original audio signal are 6, 5, 2, 1, 2, 3, 6, 9, 11, 10, 7. These numbers would be stored in their binary form on the disk as a computer representation of the sound, for example 0101 for 5, 0010 for 2, 0001 for 1, as so on. Therefore, it will be stored as a binary string 010100100001…. if we assume that four bits represent a value (0-15). When we read this back from the disk, the player would have to pick up four bits at a time, interpret them (i.e. convert them to their decimal value and regenerate the original signal for each value). The next step, of course, is to actually generate the sound based on these signal values.

The entire process can be summarised as shown in Fig. 11.10.

Fig. 11.10 Sampling and quantising

A similar process needs to be employed for graphics/video.

11.3.3 Issues in Multimedia Databases

Multimedia applications can hold thousands of pictures, audio files and videos. They must be stored in the most efficient manner and retrieved as and when necessary in the shortest possible time. To make this possible, the design of multimedia databases must be well thoughtout. Several issues need to be kept in mind while designing multimedia databases. They are:

  1. Performance: Multimedia applications demand a very high level of performance. For example, video must be delivered at a speed of 60 picture frames per second. If the speed is below this threshold, the video would appear to be shaky and would not appeal to the users. Some of the important techniques used to deal with performance issues are query optimisation and data compression.
  2. Storage: Storing multimedia files is not easy. One has to think about problems in the form of how to represent, compress, map, archive, buffer and backup such data during any file operation. Several multimedia file standards are available, such as MPEG and JPEG. Vendors who comply with such standards automatically solve some of these problems. DBMS products provide a special data type called as Binary Large Object (BLOB), which allows multimedia data to be stored in the form of bitmaps. The major problem in this category of issues is related to data synchronisation and compression.
  3. Modelling: Multimedia databases can hold complex objects. Modelling such objects is not easy, since they cannot be easily mapped to the standard data types.
  4. Design: We know that database design looks at three levels: physical, logical and conceptual. The research in multimedia databases has not progressed to address all of these aspects. Therefore, currently multimedia databases are designed in the same way as traditional databases. However, within each level, the complexity of design is far more than in the case of traditional databases. The designer needs to address this fact quite carefully.

11.4 DIGITAL LIBRARIES

Digital libraries are an upcoming research area. A digital library is similar to a traditional library in concept in so far as a digital library also contains a large amount of information in the form of some sources and different media. But there are several differences between a traditional library and a digital library. Information in digital library is in the form of bits and bytes. It can be remotely accessed and searched far more easily. Making extra copies of information is also quite easy and cheap, as compared to traditional libraries.

Like traditional databases, digital libraries also collect, organise, save, find, process, retrieve and provide data. They can also contain multiple media. Handling of complex data types and different types of data is possible. However, in the case of most digital libraries, there is no central administrator (unlike a Database Administrator or DBA). Also, the quality standards of data in digital libraries is less rigid, because of the lack of centralised control.

11.5 MOBILE DATABASES

11.5.1 What is Mobile Computing?

In the early days all computing was wired. In other words, a physical cable needed to exist between computers that communicated with each other and worked together to form a network. This has changed with the advances in the area of wireless networking. With wireless networking, computers need not be connected to each other by physical cables. They can communicate with each other via air. This advancement led to the development of mobile computing.

Mobile computing allows users to communicate with each other and manage their work while on the move.

Mobile computing is extremely handy for people and organisations who work in geographically diverse areas. Examples of such people are marketing staff, who are constantly on the move making presentations in one city today or negotiating a contact in another city the very next day.

Mobile computing is very interesting and useful. However, it also comes with its own set of problems, as follows:

  • Software problems: Data management, Transaction management, Data recovery
  • Hardware problems: Small bandwidth, Limited power supply to the mobile units, Changing locations of required information (e.g. air, ground, vehicles).

11.5.2 Case Study - WAP

To understand how mobile computing works, we shall consider the example of the Wireless Application Protocol (WAP). WAP allows mobile users to access the Internet from their cell phones. We shall quickly summarise how WAP works. The specific ideas related to the working of WAP can be applied to other wireless protocols to a certain extent.

The WAP gateway is a device that logically sits between the client (called as WAP device) and the server (called as origin server). Several new terms have been introduced with the development of WAP. Let us understand them.

  • A WAP device is any mobile device such as a mobile phone or a PDA that can be used to access mobile computing services. The idea is that the device can be any mobile device as long as it supports WAP.
  • An origin server is any Web server on the Internet.
  • The WAP gateway enables a WAP device to communicate with an origin server.

In the wired Internet architecture, both the client (a Web browser) and the server (a Web server) understand and work with the HTTP protocol. Therefore, no such gateway is required between the two. However, in the case of WAP, the client (i.e. a WAP device) runs WAP as the communications protocol, and not HTTP, while the server (the origin server) continues to work with HTTP. Therefore, some translation is required between the two. This is precisely what a WAP gateway is used for; it acts as an interpreter that does two things:

  1. It takes WAP requests sent by the client and translates them to HTTP requests for forwarding them on to the origin server.
  2. It takes HTTP responses sent by the origin server and translates them to WAP responses for forwarding them on to the client.

This is shown in Fig. 11.11.

We can now describe a simple interaction between a mobile user and the Internet with the help of the following steps:

  1. The user presses a button, selects an option (which internally selects the buried URL) or explicitly enters a URL on the mobile device. This is similar to the way in which an Internet user makes a request for a Web page on the browser. This request is received by the WAP browser in the mobile device. A WAP browser is a software program running on the WAP device that interprets WAP content, similar to the way a Web browser interprets HTML content. The WAP browser is responsible for sending requests from the WAP device to the WAP gateway and receiving responses from the WAP gateway, and interpreting them (i.e. displaying them on the screen of the mobile device).

    Fig. 11.11WAP architecture

  2. The WAP browser sends the user's request, which travels via the wireless network set up by the network operator to the WAP gateway. This is a WAP request, which means that the request is in the form of WAP commands. Note that this is in contrast to the normal interaction between a Web browser and a Web server, which starts with a HTTP request.
  3. The WAP gateway receives the WAP request, translates it to the equivalent HTTP request and forwards it to the origin server.
  4. The origin server receives the HTTP request from the WAP gateway. This request could be for obtaining a static HTML page, or for executing a dynamic server-side application written in languages such as ASP, JSP, servlets or CGI – just like the normal Internet HTTP requests. In either case, the origin server takes an appropriate action, the final result of which is a HTML page. However, a WAP browser is not created with the intention of interpreting HTML. HTML has now grown into a highly complex language that provides a number of features that are not suited for mobile devices. Therefore, a special program now converts the HTML output to a language called Wireless Markup Language (WML). WML is a highly optimised language that has been invented keeping in mind all the shortcomings of mobile devices and, therefore, suits these devices very well. Of course, rather than first producing HTML output and then translating it into WML, some origin servers now directly produce WML output, bypassing the translation phase. We shall also discuss this possibility and what the WAP gateway does in that case, later. The point is, the outcome of this process conforms to the WML standards. The origin server then encapsulates these WML contents inside a HTTP response, and sends it back to the WAP gateway.
  5. The WAP gateway receives the HTTP response (which has the WML code encapsulated within it) from the origin server. It now translates this HTTP response into WAP response, and sends it back to the mobile device. WAP response is a representation of the HTTP response that a mobile device can understand. The WML inside remains as it was.
  6. The mobile device now receives the WAP response along with the WML code from the WAP gateway, and hands it over to the WAP browser running on it. The WAP browser takes the WAP response and interprets it. The result of this is the display of the required information on the screen of the mobile device.

Wireless computing is the way forward. People do not like to use wires to connect their computers to the power supply or to the network interface any more. The mobile user is most likely the driver of future computer applications.

This should give us a fair idea about the interaction of a mobile user with the Internet. Of course, it is quite simplistic, and many finer details are not described.

11.5.3 Data in Mobile Applications

Applications running on mobile computers satisfy different needs, such as personal communications, workplace activities and providing updates on certain pieces information. Regardless of their roles, we can classify mobile applications into two categories, as follows.

(a) Vertical applications: In vertical applications, the users access data within a specified geographical unit (called a cell). For example, such applications provide information on emergency services or restaurants within that cell. Any attempts at accessing information outside the boundaries of the cell are not successful.

(b) Horizontal applications: Users of mobile computing work together in the horizontal applications. Unlike vertical applications, there is no restriction in terms of accessing data within a specific cell. The entire data can be used across the system.

Based on these concepts, mobile data can be classified into three categories, as follows.

(i)   Private data: The private data belongs to a single user. The user is responsible for managing this data. No other user can access this data.

(ii)  Public data: Public data can be accessed by anyone having the authority to browse through it. However, it can be updated by only one user. Examples of such data are scores of a cricket match.

(iii)  Shared data: The shared data can be read and updated by all users.

11.5.4 Mobile Databases: Problem Areas

We can now summarise the problem issues related to mobile databases.

  1. Data distribution and replication: The distribution of data between the gateway (which is usually called as the base station) and the mobile devices is uneven. Since the amount of data that can be passed between the devices and the base station is limited, an attempt is made to provide locally cached data. This can lead to consistency related problems.
  2. Query processing: The mobile units may be on the move while submitting a query. The exact location of the data should be known before the query is processed completely. Moreover, by the time query processing is over, the device might have moved out. Yet, there is a need to provide complete and correct query results to the mobile device.
  3. Database design: The problem of name resolution is compounded in mobile databases. This can be attributed to the constant movement and unpredictability about the shutting down of these devices.
  4. Transactions: The problems of fault tolerance and transaction completeness are compounded in mobile databases. A mobile transaction can serve multiple users working in different base stations. This must be coordinated and managed centrally. It is very difficult to enforce the traditional ACID model of transactions.
  5. Recovery: Site failures are common because of the limited battery power of mobile devices. When a mobile device moves from one cell to another (in a process called handoff), it is common to see a transaction failing because of this movement.

Active Server Pages (ASP)

Cell

Datalog

Deductive database system

Deductive Object Oriented Databases (DOODB)

Dynamic Web page

Facts

Home page

Hyper Text Markup Language (HTML)

Inference engine

Java Server Pages (JSP)

Knowledge-based database systems

Mathematical logic

Multimedia

Private data

Rules

Shared data

Symbolic logic

Binary Large Object (BLOB)

Public data

Common Gateway Interface (CGI)

Declarative language

Deductive mechanism

Digital libraries

Expert database systems

Handoff

Horizontal applications

Hyper Text Transfer Protocol (HTTP)

Internet

Knowledge representation

Logic databases

Mobile computing

Origin server

Prolog

Quantising

Sampling

Static Web page

Uniform Resource Locator (URL)

Vertical applications

WAP gateway

Web page

Website

Wireless Markup Language (WML)

World Wide Web (WWW)

WAP device

Web browser

Web server

Wireless Application Protocol (WAP)

Wireless networking

  • Deductive databases use facts and rules.
  • Deductive databases are used in Artificial Intelligence (AI).
  • Facts are similar to tables. Rules are similar to views.
  • A declarative language is used in the case of deductive databases.
  • The World Wide Web (WWW) is an application over the Internet.
  • The Hyper Text Transfer Protocol (HTTP) is used in the case of the WWW.
  • The client in HTTP is a Web browser. The Web server is the server.
  • Web browser sends requests for Web pages, Web server fulfills them.
  • A Web page that always shows the same content is called as a static Web page.
  • A dynamic Web page is actually a server-side program.
  • Dynamic Web pages provide different results, depending on the context.
  • Hyper Text Markup Language (HTML) is used to create Web pages.
  • Databases are used in dynamic Web pages.
  • Multimedia means multiple media, such as text, sound, video and graphics.
  • Multimedia is transformed into binary values by using sampling and quantising techniques.
  • In sampling, a continuous analog waveform is broken down into slices.
  • In quantising, the slices of an analog waveform are measured.
  • Digital libraries are similar to traditional libraries, but store information in the digital form.
  • Mobile computing means the ability to use computers while on the move.
  • Wireless networking has made mobile computing possible.
  • Data in mobile computing can be private, public or shared.

  1. Deductive databases use procedural language.
  2. COBOL is a declarative language.
  3. Rules and facts are different things.
  4. Static Web pages do not need a program to be executed on the Web server.
  5. Dynamic Web pages provide the same output for every request.
  6. ASP is an active Web page technology.
  7. Sampling and quantising help transform an analog signal into digital form.
  8. Digital libraries store data about one fact only.
  9. WAP is the name of a wireless protocol.
  10. Limited battery life is a problem in mobile computing.

  1. Rules in deductive databases are called _________.

    (a) facts

    (b) definitions

    (c) logical information

    (d) logical databases

  2. _________ is a declarative language.

    (a) C

    (b) Prolog

    (c) Pascal

    (d) Java

  3. Mathematical logic is also called ______________.

    (a) declarative logic

    (b) symbolic logic

    (c) simple logic

    (d) linear logic

  4. The _______ protocol is used in WWW application.

    (a) HTTP

    (b) SMTP

    (c) FTP

    (d) TELNET

  5. _________ is one of the issues in Web databases.

    (a) Database size

    (b) DBA

    (c) Security

    (d) Networking

  6. Many modern DBMS products provide support for ________,

    (a) HTML

    (b) SGML

    (c) WML

    (d) XML

  7. When a mobile device moves from one cell to another, it is called as _________.

    (a) handoff

    (b) move

    (c) transfer

    (d) passing

  8. In _________, an analog signal is broken down into slices.

    (a) slicing

    (b) sampling

    (c) quantising

    (d) breaking

  9. In _________, an analog signal is measured.

    (a) slicing

    (b) sampling

    (c) quantising

    (d) breaking

  10. ________ is a tag-based language.

    (a) C

    (b) HTML

    (c) Prolog

    (d) Pascal

  1. What are deductive databases?
  2. Explain the concepts of facts and rules.
  3. What is Prolog?
  4. Describe a static Web page.
  5. How is a dynamic Web page different from a static Web page?
  6. What are the DBMS issues in Web technologies?
  7. What is multimedia?
  8. Discuss the DBMS issues in Web technologies.
  9. Describe the concept of mobile computing.
  10. Explain the DBMS issues in Web technologies.

  1. Learn more about deductive databases.
  2. Study more about the Prolog language.
  3. What is Artificial Intelligence (AI)? Find out more about it.
  4. Who was Boole? What is his contribution to logic?
  5. Find out if digital electronics uses the concept of facts and rules.
  6. Study about multimedia databases and multimedia operating systems.
  7. Find out how cellular telephony works.
  8. What are AMPS, GSM and CDMA in the context of mobile telephony?
  9. Study about a few digital library projects.
  10. Find out information about the 3G protocol.