How does a Search Engine work?

10:33 AM, Posted by Mini, No Comment

When a use accesses a search engine, they are presented with a graphical interface form, on which they specify what they are looking for. Whey they tell the search engine to start the search (by pressing “Enter” or on clicking on a specific button), the search engine invokes a program that queries its database (a collection of all the web pages it has access to).

The results are returned to the user as a number of possible URL’s. Often, these will be ranked in priority or success rate, which higher values meaning more likely to contain the information you request (what it really means is that it contains more occurrences of the keywords you were searching for compared to other documents).

How does a search engine know where the information is?

There are a number of ways a search engine can know about where information is to be found. Firstly, a search engine can list information by keywords or page titles. These keywords or titles (subject categories) can either be submitted by user’s that provide information on the internet, or can be extracted by accessing web pages and extracting the page title and keywords from the header of the web page. This keyword extraction relies on the appropriate HTML code in the header of the web page (it is called a meta-tag). The advantage is that it quicker to index information and less traffic is involved (only headers are requested from websites, the entire web document is not read).

The second method a search engine can use relies upon reading every page it knows about (usually pages are submitted for inclusion by web authors). This technique involves the use of programs called spiders or web robots that request every page then extracts all words from the content of the page and stores these words in a large database.

Not all search engines are the same. Some use keyword extraction via meta-tags while other use keywords via page content indexing. Obviously content indexing is a much better method because you are more likely to find specific information. However, this method has a number of problems. One is the sheer size of the resultant database and number of pages involved (which means a lot of traffic, and it might take two weeks to fully search all those pages). As the size of the www continues to grow this becomes more and more difficult.

Keeping the database up-to-date is a serious problem. It is common find that pages returned by a search engine have in fact since been moved or deleted.

Object Relational Database Management System and Object Oriented Database Management System

8:13 AM, Posted by Mini, No Comment

Object Relational Database Management System (ORDBMS)
  • ORDBMS provides support for complex data types. Powerful query languages support through SQL. ORDBMS also provides good protection of data against programming errors.
  • One of the major assets here is SQL. Although, SQL is not as powerful as a programming language, but it is none the less essentially a fourth generation language, thus, it provides excellent protection of data from the programming errors.
  • The relational model has a very rich foundation for query optimization, which helps in reducing the time taken to execute a query.
  • These databases make the querying as simple as in relational even, for complex data types and multimedia data.
  • Although the strength of these DBMS is SQL, it is also one of the major weaknesses from the performances point of view in memory applications.
Object Oriented Database Management System (OODBMS)
  • OODBMS provides good support for complex data types. It high integration of database with the programming language. It has very good performance but not as powerful as relational.
  • It is based on object oriented programming languages, thus, are very strong in programming, however, any error of a data type made by a programmer may effect many users.
  • These databases are still evolving in this direction. They have reasonable systems in places.
  • The querying is possible but somewhat difficult to get.
  • Some applications that are primarily run in the RAM and require a large number of database accesses with high performance may find such DBMS more suitable. This is because of rich programming interface provided by such DBMS. However, such applications may not support very strong query capabilities. A typical example of one such application is databases required for CAD.

HTML Tags: Important SEO HTML tags

12:47 AM, Posted by Mini, No Comment

SEO contains some of the very important HTML tags, which are used while performing On Page SEO. These tags are very simple to use, but they are really very effective from SEO point of view. SEO HTML tags are really helpful in making a website search engine friendly and helps in easily getting high search engine rankings with less Off Page SEO efforts. Some of the important HTML tags for SEO are given below:

Title Tag: <'title'>keyword x 2<'/title'>

Heading Tags:
H1 Tag: <'h1'>Most Important<'/h1'>

H2 Tag: <'h2'>Second Most Important<'/h2'>

H3 Tag: <'h3'>Third Most Important<'/h3'>

Strong Tag: <'strong'>Keyword<'/strong'>

Image Tag: <'img src="" alt="keyword"' />

Hyperlink Tag: <'a href="" title="keyword"'>Keyword<'/a'>

*Note: Remove quotes while writing tags

Free Web Tools: SEO Tools

4:11 AM, Posted by Mini, No Comment

Web Tools play an important role for analyzing a website. If you use some good web tools/SEO tools you can better analyze the status of a website. There are number of free web and SEO tools available on internet. Some of the well known web and SEO tools are given below.

  • Back Link Checker Tool:
  • Link Popularity Checker Tool:
  • Auto Responder Tool:
  • Keyword Research Tool:
  • Social Bookmarking Tool:
  • Open Source Image Editor Tool:
  • Keyword Density Analyzer Tool:
  • Screenshot Tool:
  • W3C Quality Assurance Toolbox:

Dynamic SQL: Use of Dynamic SQL Statements

9:45 AM, Posted by Mini, No Comment

Dynamic SQLDynamic SQL, unlike embedded SQL statements, are built at the run time and placed in a string in a host variable. The created SQL statements are then sent to the DBMS for processing. Dynamic SQL is generally slower than statically embedded SQL as they require complete processing including access plan generation during the run time.

However, they are more powerful than embedded SQL as they allow run time application logic. The basic advantage of using dynamic embedded SQL is that we need not compile and test a new program for a new query.

Let us explain the use of dynamic SQL with the help of an example:

Example: Write a dynamic SQL interface that allows a student to get and modify permissible details about him/her. The student may ask for subset of information also. Assume that the student database has the following relations.

STUDENT (enrolno, name , dob)
RESULT (enrolno, coursecode, marks)

In the table above, a student has access rights for accessing information on his/her enrolment number, but s/he can’t update the data. Assume that user names are enrolment number.

/* declarations in SQL */

Char inputfields (50);
Char tablename (10);
Char sqlquery ystring (20);

Printf(“Enter the fields you want to see \n”);
Scanf(“SELECT %s”, inputfields);
Printf(“Enter the name of table STUDENT or RESULT”);
Scanf(“FROM %s”, tablename);
Sqlqueryystring= “SELECT” +inputfields+””+”FROM” +tablename+ “WHERE enrolno + “USER”

/*Plus is used as a symbol for concatenation operator; in some DBMS it may be ||*/
/* Assumption: the user name is available in the host language variable USER */

EXEC SQL PREPARE sqlcommand FROM: sqlqueryystring;
EXEC SQL EXECUTE sqlcommand;

Please note the following points in the example above.

  • The query can be entered completely as a string by the user or s/he can be suitably prompted.
  • The query can be fabricated using a concatenation of strings. This is language dependent in the example and is not a portable feature in the present query.
  • The query modification of the query is being done keeping security in mind.
  • The query is prepared and executed using a suitable SQL EXEC commands.

What is an SEO friendly Website?

3:15 AM, Posted by Mini, No Comment

The term SEO friendly relates to search engine friendly. A website is called SEO/search engine friendly, if it is easily crawled and ranked by search engines. Search Engines give special preference to SEO friendly websites and these websites get good Search Engine Ranking Placements(SERP) on most competitive keywords with less efforts. A website becomes SEO friendly if it is properly optimized with SEO standards.

The most important SEO standards for making a website search engine friendly is to set a very informative Title of page based on the most targeted keyword(s) of the page. Title is the very basic but most important point for the on page optimization. One H1 tag will be used on one page and this h1 tag will be based on the most targeted/important keyword of that page.

Sitemap is very important for a website. There are basically two types of sitemaps that are required. One is HTML sitemap and other is XML sitemap. XML sitemap is very important and every website must have an XML sitemap. XML sitemap is one, from where search engines can easily crawl all the pages of a website.

Every image must have an alt tag associated with it and for every link, a specific title for the link should be given. Some search engines also check meta descriptions and keywords, so give appropriate meta description and keywords for every page.

More important, never use any hidden text or don’t try any black hat SEO techniques. All these will have some bad effects on website and Google never give preference to such sites. So, always apply some standard SEO techniques to make your website SEO friendly. If your website is search engine friendly then search engines will automatically give preference to your website.

Embedded SQL: Use of Embedded SQL Statements

2:16 AM, Posted by Mini, No Comment

The embedded SQL statements can be put in the application program written in C, Java or any other host language. These statements may sometimes be called static. The term ‘static’ is used to indicate that the embedded SQL commands, which are written in the host program, do not change automatically during the lifetime of the program. Thus, such queries are determined at the time of database application design. For example, a query statement embedded in C to determine the status of train booking for a train will not change. However, this query may be executed for many different trains. Please note that it will only change the input parameter to the query that is train-number, date of boarding, etc., and not the query itself.

Below is the example of embedded SQL where to write a C program segment that prints the details of a student whose enrolment number is input.

Student(enrolno:char(9), name:char(25), phone:integer(12), prg-code:char(3))
/* add proper include statements */
/* declaration in C program */
Char enrolno[10], name[26], p-code[4];
int phone;
char SQLSTATE[6];

/* The connection needs to be established with SQL */
/* Program segment for the required function */
printf(“enter the enrolment number of the student”);
scanf(“%s”, &enrolno);
SELECT name, phone, prog-code INTO
:name, :phone:, :p-code
WHERE enrolno=:enrolno;
Printf(“%d, %s, %s”, enrolno, name, phone, p-code)
Printf(“Wrong Enrolment Number”);

Please note the following points in the program above:
  • The program is written in the host language ‘C’ and contains embedded SQL statements.
  • Although in the program an SQL query (select) has been added. You can embed any DML, DDL, or views statements.
  • The distinction between and SQL statement and host language statement is made by using the keyword EXEC SQL; thus this keyword helps in identifying the Embedded SQL statements by the pre-compiler.
  • Please note that the statements including(EXEC SQL) are terminated by a semi-colon(;).
  • As the data is to be exchanged between a host language and a database, there is a need of shared variables that are shared between the environments. Please note that enroll[10], name[20], p-code[4]; etc. are shared variables, colon(:) declared in ‘C’.
  • The Type mapping between ‘C’ and SQL types is defined in the following table:
‘C’ Type SQL Type
Float REAL
Char[I+1] CHAR(i)
  • Please also note that these shared variables are used in SQL statements of the program. They are prefixed with the colon(:) to distinguish them from database attribute and relation names. However, they are used without this prefix in any C language statement.
  • Please note that these shared variables have almost the same name(except p-code) as that of the attribute name of the database. The prefix colon(:) this distinguishes whether we are referring to the shared host variable or an SQL attribute. Such similar names is a good programming convention as it helps in identifying the related attribute.
  • Please note that the shared variables are declared between BEGIN DECLARE SECTION and END DECLARE SECTION and there typed is defined in ‘C’ language.