Learn IT

Free learning anything to everything in Information Technology.

Normalizing a Sample Table

Unnormalized table:

EmployeeIDDirectorDirectorRoleSkill1Skill2Skill3
1001BrianTechnicalSQLC++.Net
1002VictorInstitutionalPeople Mgmt.Payroll Mgmt.Knowledge Mgmt.

First Normal Form: No Repeating Groups
Tables should have only two dimensions. Since one employee has several skills, these skills should be listed in a separate table. Fields Skill1, Skill2, and Skill3 in the above records are indications of design trouble.

Spreadsheets often use the third dimension, but tables should not. Another way to look at this problem is with a one-to-many relationship, do not put the one side and the many side in the same table. Instead, create another table in first normal form by eliminating the repeating group (Skills), as shown below:

EmployeeIDDirectorDirectorRoleSkills
1001BrianTechnicalSQL
1001BrianTechnicalC++
1001BrianTechnical.Net
1002VictorInstitutionalPeople Mgmt.
1002VictorInstitutionalPayroll Mgmt.
1002VictorInstitutionalKnowledge Mgmt.

Second Normal Form: Eliminate Redundant Data
Note the multiple Skills values for each Employee value in the above table. Skill is not functionally dependent on EmployeeID (primary key), so this relationship is not in second normal form.
The following two tables demonstrate second normal form:

Employees

EmployeeIDDirectorDirectorRole
1001BrianTechnical
1002VictorInstitutional

EmployeeSkills

EmployeeIDSkills
1001SQL
1001C++
1001.Net
1002People Mgmt.
1002Payroll Mgmt.
1002Knowledge Mgmt.

Third Normal Form: Eliminate Data Not Dependent On KeyIn the last example; DirectorRole is functionally dependent on the Director attribute. The solution is to move that attribute from the Employees table to the Directors table, as shown below:

Employees

EmployeeIDDirector
1001Brian
1002Victor

Directors

DirectorDirectorRole
BrianTechnical
VictorInstitutional

Database Normalization

Normalization is the process of organizing data in a database. This includes creating tables and establishing relationships between those tables according to rules designed both to protect the data and to make the database more flexible by eliminating redundancy and inconsistent dependency. Redundant data wastes disk space and creates maintenance problems. If data that exists in more than one place must be changed, the data must be changed in exactly the same way in all locations.
For example, a customer address change is much easier to implement if that data is stored only in the Customers table and nowhere else in the database.

There are a few rules for database normalization. Each rule is called a "normal form." If the first rule is observed, the database is said to be in "first normal form." If the first three rules are observed, the database is considered to be in "third normal form." Although other levels of normalization are possible, third normal form is considered the highest level necessary for most applications. As with many formal rules and specifications, real world scenarios do not always allow for perfect compliance. In general, normalization requires additional tables and some customers find this cumbersome. If you decide to violate one of the first three rules of normalization, make sure that your application anticipates any problems that could occur, such as redundant data and inconsistent dependencies.

First Normal Form
  • Eliminate repeating groups in individual tables.
  • Create a separate table for each set of related data.
  • Identify each set of related data with a primary key.

Do not use multiple fields in a single table to store similar data. For example, to track an inventory item that may come from two possible sources, an inventory record may contain fields for Vendor Code 1 and Vendor Code 2. What happens when you add a third vendor? Adding a field is not the answer; it requires program and table modifications and does not smoothly accommodate a dynamic number of vendors. Instead, place all vendor information in a separate table called Vendors, then link inventory to vendors with an item number key, or vendors to inventory with a vendor code key.

Second Normal Form

  • Create separate tables for sets of values that apply to multiple records.
  • Relate these tables with a foreign key.

Records should not depend on anything other than a table's primary key (a compound key, if necessary). For example, consider a customer's address in an accounting system. The address is needed by the Customers table, but also by the Orders, Shipping, Invoices, Accounts Receivable, and Collections tables. Instead of storing the customer's address as a separate entry in each of these tables, store it in one place, either in the Customers table or in a separate Addresses table.

Third Normal Form

  • Eliminate fields that do not depend on the key.

Values in a record that are not part of that record's key do not belong in the table. In general, any time the contents of a group of fields may apply to more than a single record in the table, consider placing those fields in a separate table.

For example, in an Employee Recruitment table, a candidate's university name and address may be included. But you need a complete list of universities for group mailings. If university information is stored in the Candidates table, there is no way to list universities with no current candidates. Create a separate Universities table and link it to the Candidates table with a university code key.

EXCEPTION: Adhering to the third normal form, while theoretically desirable, is not always practical. If you have a Customers table and you want to eliminate all possible interfield dependencies, you must create separate tables for cities, ZIP codes, sales representatives, customer classes, and any other factor that may be duplicated in multiple records. In theory, normalization is worth pursing. However, many small tables may degrade performance or exceed open file and memory capacities.

It may be more feasible to apply third normal form only to data that changes frequently. If some dependent fields remain, design your application to require the user to verify all related fields when any one is changed.

Databases: It’s Characteristics & Components

Database is an electronic filing system. The term database is derived from the datum. Datum is the smallest unit of information. Database is a collection of large data where data is grouped according to their characteristics into tables. Also it is easily accessed, managed, and updated. Database Tables have rows and columns. The information is stored in the table in the form of rows and columns. Columns have Data type like int, char, date, byte, image etc. We can restrict the row size to maximum number of characters by setting the properties.

Computer databases typically contain aggregations of data records or files, such as sales transactions, product catalogs and inventories, and customer profiles.

Characteristics of Database Systems:

  1. Performance: Response time given by database applications must be appropriate for the human-terminal dialogue. This is dependent on organization of the data.
  2. Minimal Redundancy: Objective of the database System should be to eliminate data redundancy wherever possible or if redundancy cannot be avoided foe some reasons, it should be controlled.
  3. Integrity:Integrity checks can also be performed at the data level itself, by checking that data values confirm to certain specified rules, e.g. value falls in a specified range.
  4. Privacy and Security: The information stored in the database should be kept in such a way that it doesn’t get lost or stolen.
    Security of data means protecting data against accidental or intentional disclosure to unauthorized persons or even unauthorized modification or destruction.

Components of a Database Management system

  1. Database Manager: It is an interface between low level data stored in the database and the application programs and queries submitted by the system.
  2. File Manager: It manages the allocation of space on the disk storage and maintain the data structures used to represent information stored on the disk.
  3. Query Processor: It translates English like statements into low level statements.
  4. DML Pre-Compiler: DML stands for Data Manipulation Language. DML Pre-Copiler manages retrieval, insertion, deletion and modification of the data.
  5. DDL Compiler: DDL stands for Data Definition Language. It provides the definition and description of database objects.

Unified Modeling Language (UML)

The Unified Modeling Language is a language for communicating about systems: an evolutionary, general-purpose, broadly applicable, tool-supported, and industry-standardized modeling language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process.

The UML was originally conceived by, and evolved primarily from, Rational Software Corporation and three of its most prominent methodologists, the Three Amigos: Grady Booch, James Rumbaugh, and Ivar Jacobson. The UML emerged as a standard from the Object Management Group (OMG) and Rational Software Corporation to unify the information systems and technology industry's best engineering practices as a collection of modeling techniques.

The UML may be applied to different types of systems (software and non-software), domains (business versus software), and methods or processes. The UML enables and promotes (but does not require nor mandate) a use-case-driven, architecture-centric, iterative and incremental, and risk-confronting process that is object-oriented and component-based. However, the UML does not prescribe any particular system development approach. Rather, it is flexible and can be customized to fit any method.

The UML is significantly more than a standard or another modeling language. It is a "paradigm," "philosophy," "revolution," and "evolution" of how we approach problem solving and systems. It is often said that the English language is the world's "universal language"; now it is virtually certain that the UML will be the information systems and technology world's "universal language."

Basic Tasks Performed by an Operating System

In addition to my previous post, I am providing a list of basic tasks performed by an Operating System. This is just a list to give the readers a basic idea of different tasks performed by an OS. I will be elaborating on individual tasks in my future postings.

 Memory Management
 Process Management
 Disk and File System Management
 Networking
 Security
 Graphical User Interface (GUI)
 Device Driver Management

Please follow these links for details on these tasks:
Memory Management
Process Management
Disk and File Management
Networking
Security
Graphical User Interface
Device Driver Management

Operating System: What & Why?

Without an Operating System (OS) a computer is useless or Every general purpose computer system must have an Operating System (OS), as we read these statement there are a couple queries popup in our mind i.e. what is an OS?, and why I need it?
Here I am going to clarify these queries in a nutshell.
What:
In simple terms, an operating system performs basic tasks such as recognizing input from the keyboard, sending output to the display screens, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.
Why:
Operating systems provide a software platform on top of which other programs, called application programs, can run. The application programs must be written to run on top of a particular operating system. Your choice of operating system, therefore, determines to a great extent the applications you can run. For PCs, the most popular operating systems are DOS, OS/2, and Windows.

OOPS

Object Oriented Programming
It is a problem solving technique to develop software systems. It is a technique to think real world in terms of objects. Object maps the software model to real world concept. These objects have responsibilities and provide services to application or other objects.

Class
A class describes all the attributes of objects, as well as the methods that implement the behavior of member objects. It’s a comprehensive data type which represents a blue print of objects. It’s a template of object.

Object
It is a basic unit of a system. An object is an entity that has attributes, behavior, and identity. Objects are members of a class. Attributes and behavior of an object are defined by the class definition.

Relationship between Classes and Objects
Class is a definition, while object is an instance of the class created. Class is a blue print while objects are actual objects existing in real world. Example we have class CAR which has attributes and methods like Speed, Brakes, Type of Car etc. Class CAR is just a prototype, now we can create real time objects which can be used to provide functionality. Example we can create a specific car object with fixed max speed and urgent brakes.

Characteristics of Object Oriented System’s

Abstraction
It allows complex real world to be represented in simplified manner. Example color is abstracted to RGB. By just making the combination of these three colors we can achieve any color in world. It’s a model of real world or concept.

Encapsulation
It is a process of hiding all the internal details of an object from the outside world.

Communication using Messages
When application wants to achieve certain task it can only be done using combination of objects. A single object can not do the entire task. Example if we want to make order processing form. We will use Customer object, Order object, Product object and Payment object to achieve this functionality. In short these objects should communicate with each other. This is achieved when objects send messages to each other.

Object Lifetime
All objects have life time. Objects are created, and initialized, necessary functionalities are done and later the object is destroyed. Every object have there own state and identity which differ from instance to instance.

Class Hierarchies (Inheritance and Aggregation)
In object oriented world objects have relation and hierarchies in between them. There are basically three kind of relationship in Object Oriented world:

Association
This is the simplest relationship between objects. Example every customer has sales. So Customer object and sales object have an association relation between them.

Aggregation
This is also called as composition model. Example in order to make a “Accounts” class it has use other objects example “Voucher”, “Journal” and “Cash” objects. So accounts class is aggregation of these three objects.

Inheritance
Hierarchy is used to define more specialized classes based on a preexisting generalized class. Example we have VEHICLE class and we can inherit this class make more specialized class like CAR, which will add new attributes and use some existing qualities of the parent class. Its demonstrate more of a parent-child relationship. This kind of hierarchy is called inheritance.

SOFTWARE

Software, computer programs; instructions that cause the hardware—the machines—to do work. Software as a whole can be divided into a number of categories based on the types of work done by programs. The two primary software categories are operating systems (system software), which control the workings of the computer, and application software, which addresses the multitude of tasks for which people use computers. System software thus handles such essential, but often invisible, chores as maintaining disk files and managing the screen, whereas application software performs word processing, database management, and the like.

In addition to these task-based categories, several types of software are described based on their method of distribution. These include the so-called canned programs or packaged software developed and sold primarily through retail outlets; freeware and public-domain software, which is made available without cost by its developer; shareware, which is similar to freeware but usually carries a small fee for those who like the program; and the infamous vaporware, which is software that either does not reach the market or appears much later than promised.

What Information Technology actually is ?

Information Technology (IT), as defined by the Information Technology Association of America (ITAA), is "the study, design, development, implementation, support or management of computer-based information systems, particularly software applications and computer hardware." IT deals with the use of electronic computers and computer software to convert, store, protect, process, transmit and retrieve information, securely.

Today, the term information technology has ballooned to encompass many aspects of computing and technology, and the term is more recognizable than ever before. The information technology umbrella can be quite large, covering many fields. IT professionals perform a variety of duties that range from installing applications to designing complex computer networks and information databases. A few of the duties that IT professionals perform may include data management, networking, engineering computer hardware, database and software design, as well as the management and administration of entire systems.

A warm welcome to all of you...

I have the pleasure to welcome all visitors of this blog to Learn Information Technology.

This blog is launched with the objective of sharing knowledge in the field of Information Technology.

I do hope that the information presented by this blog will be highly useful for the readers. I would also like to highlight my willingness to receive your constructive comments and valuable remarks on the effectiveness of this blog in order to contribute in its continuous enrichment and progress to achieve the utmost benefit for all of us.

Thanks & Regards,
Anshul Gagneja