IFSM 310 – Stage 2 Assignment – Due Sunday

profiletwinkletoes
Chapter6SystemsfromComputerInformationSystemsTextbook.pdf

Chapter 6

Systems

6.1 Information Systems

6.1.1 What is an Information System?

CS, Complex Problems

● Computer Science ● Software Engineering ● Information Systems ● Information Technology ● Customer CS, Applied Solutions

D is

co ve

ry

Customer Support

CS Venn Diagram

A system is a group of procedures and different elements that work together in order to complete a task. Now we can add on to this to get information systems. Informa- tion systems are much the same, there are elements and procedures to work to complete a task. The difference is information systems are used to generate information for the users on a need basis. Information systems man- age and process data as soon as they are created. They can also be used for long term planning or just the day to day work. While systems are great and can ease your life, they are static, which means someone will need to change the systems when new needs arise. This is called system development. While it could be costly, there re- ally is a need for system development since things change constantly. Whether there are new laws or a new policy within the company. Some information systems are meant to be used by all lev- els of employees while others are specifically designed to handle the needs of employees with certain respon- sibilities. As one goes higher up the company ladder, it can be seen how responsibilities may increase relative to position. It is for this reason that some information systems are designed to hone in on the needs of certain

Management Pyramid

level employees. At the ground level, employees gener- ally make job related decisions that are based on “on-the- job” input without having to consider how those decisions will effect other departments or employees in other po- sitions. These usually involve transaction systems such as point-of-sales or warehouse systems that record stock and inventory. Operational managers such as supervisors or foremen use separate information systems designed to meet short term goals and gains. They might use systems that show the productivity of employees or the cost effec- tiveness of certain changes they've made in production. Middle managers are a step up from this and use informa- tion systems that house a broader range of information to make more tactical decisions. These decisions are usually aimed at a farther sighted goal than those of Operational managers and often need more intelligence pulled from data systems in order to reach these objectives. Middle managers might be more concerned with how to improve yearly gains and may use systems that will deliver more detailed information about specific locations of factories or retailers in certain states. Executive managers think in terms of the future and the direction of a company re- lated to their peer corporations. They make very strategic decisions to ensure the survival of the entire company as a whole in relation to the economy and competition. The systems they use might include the stock market, which tracks the progress of a lot of businesses. Because the needs of each position increases, the decision support sys-

159

160 CHAPTER 6. SYSTEMS

tems needed to make well judged verdicts must increase as well.

6.1.2 Types of Information Systems

The Four Essential Information Systems

Which information system do you use the most?

Statement of cash flows can be created by accounting system

There are many different types of information systems. Even though there are many systems, the four that will be elaborated are the following: transaction processing sys- tems, customer relationship management systems, busi- ness intelligence systems, and knowledge management systems. Transaction processing systems are used for

processing and outputting functions for the core opera- tions of a business, storage, and data collection. The pur- pose of this system is to collect input and then produce the output. An online air ticket booking system is an exam- ple of a TPS. Customer relationship management systems are usually used by business owners for sales and market- ing efforts. This system helps businesses keep record of customer activities, purchasing trends, product defects, and customer inquiries. CRM systems also allow busi- ness partners to communicate with each other which con- tributes to a successful business. Business intelligence systems are essential for businesses to predict sale pat- terns for their company. BIS are essential in collecting data from different companies. Financial Institutions are an example of this type of system; it is used to create credit risk models that study the number and amount of lending given to the sectors. Knowledge management systems organize the knowledge within an organization and then share it. KMS brings innovation, top quality per- formance, integration, and knowledge to an organization. Small and large enterprises can benefit from this type of system. Business owners view this system as a valuable attribute to their company because it provides quick re- sponses to their customers and partner questions.[1]

A simplified idea of document management

Office and User Productivity Support Systems There are systems implemented in many institutions (ex. Universities, hospitals, corporations) that help users in everyday tasks including the creation of documents and other content through applications as well as communi- cation. These systems are one of the oldest and sim- ple types of systems that have been created when insti- tutions started going towards paperless solutions.[2] Doc- ument Processing Systems are support systems that allow users to create documents with the use of software and/or hardware. Often these systems include software applica- tions such as Microsoft Office or Apple iWork and hard- ware such as scanners. Document Management Systems are systems that both store and organize the documents. The goal of these types of systems is to make documents easier to find by placing them in one centralized repos- itory. A Content Management System is essentially the same as a Document Management System except that it also manages multimedia documents such as pictures or

6.1. INFORMATION SYSTEMS 161

videos rather. Although they may seem simple because we use them everyday, Document Processing and Doc- ument/Content Management Systems can be very com- plicated when taken to a larger scale because it includes not only the organization and creation of a database, but also ensuring the security of the documents within the system.[3] Another common type of Office and User Pro- ductivity Support Systems include communication sys- tems. These can be any sort of software that allows users within an institution to communicate. Common commu- nication software includes email, videoconferences, and messaging.

Transaction Processing Systems Any computer ap- plication that helps process business transactions is called a transaction processing system (TPS). Order entry sys- tems, payroll systems, and accounting systems are three main types of TPSs. Order entry systems simply record order data. For example, when purchasing an item from Wal-Mart’s website, your order is recorded by an auto- mated order entry system. The type of order entry system Walmart’s website uses is an e-commerce system due to the fact the order was made over the internet. There are also order entry systems that work with physical transac- tions, called point-of-sale systems. For instance, if some- one were to purchase a product at Wal-Mart (not online), the order would be processed at a register using a point- of-sale system. A payroll system is another type of a TPS that is used by almost every employer. Payroll sys- tems basically organize, compute, and issue paychecks. These systems automatically take out the correct amount of taxes and other deductions from an employee’s pay. Accounting systems are a type of TPS that records finan- cial transactions. Three types of widely used account- ing systems are accounts payable systems, accounts re- ceivable systems, and general ledger systems. Accounts payable systems keep track of how much a seller owes a buyer, while accounts receivable systems keep track of how much a buyer owes a consumer. General ledger sys- tems are systems capable of putting together account data to form financial reports.[4][5]

Enterprise Systems

An enterprise system is an integrated information system that is made to support business processes, information flows, reporting, and data analytics in complex organiza- tions. Its main function is to coordinate all of the ma- jor processes of an organization and integrate those pro- cesses into the different departments of the organization. Some of these application processes may include sales and distribution, financial accounting, investment man- agement, materials management, production planning, maintenance, and human resources. Because it is inte- grates, it allows data to be used for several purposes.[6] There is a central database that collects all the data from all of the applications, and then in return it feeds out

Enterprise System Modules

the data as output to all of the processes of the orga- nization. So, once data is given by one processes, then all the processes have access to that data. An example would be a university or college that uses an enterprise system to manage all student records, enrollment appli- cations and acceptance, finances, human resources, etc.[7] Many companies are starting to implement enterprise sys- tems because it is an easy way to combine the core func- tions of the company with technological advancements. It is an easy way because the enterprise system is a sin- gle software architecture that fuses all the core processes of a business to function as one unit. The synchronized functioning of the processes makes it easier and more ef- ficient to for multiple departments to work together and it is also helpful for managers as they can better oversee multiple tasks and project at one time.[8]

Enterprise Architecture Waterfall Model

Enterprise systems were created to eliminate the problem of the shattering of important information in large busi- nesses. Most companies have so much information stored in so many different areas that when information needs to be retrieved, it becomes a hassle. If a company’s infor- mation is shattered and cannot be retrieved when needed if retrieved at all, it will eventually reflect into their sales. An enterprise system is a single database which gets in- formation from all of a company’s activities. Whenever someone changes information in any area, the system will

162 CHAPTER 6. SYSTEMS

then update it throughout and make the information up to date. The amount of productivity and speed can really increase when a company begins using this system. This also gives them the ability to be organized and function on a larger level. Inside of an enterprise system there are modules. Some modules are used universally by all com- panies and other (such as human resources) are specific to each company. Configuration tables are also part of what makes an enterprise system. These are how a company can make their system unique to their business. They can change certain parts of the system such as not only hav- ing an inventory, but instead having inventory account- ing. Enterprise systems help with logic and organization in companies and provide a better “flow” in how things are run.[9]

Data Mining

Data Mining “Data mining” sounds like a kind of un- nerving term or a violation of privacy, but it isn't re- ally. It just refers to any “process of analyzing data from different perspectives and summarizing it into use- ful information”—in other words, taking a lot of data about anything, including public information, and ana- lyzing it with software to a useful end that can't easily be reached by a human alone. It’s using computers to sift through a large amount of data that a human being can't analyze. For example, supermarkets regularly have com- puters analyze massive amounts of data on which items are more or less frequently purchased in which locations so that they can stock stores with items that will be pur- chased by more individuals in that store’s location. They also might change the prices of items slightly on certain days when those items are more commonly purchased, and they stock items close to one another that are often purchased together. There are many other uses of data mining besides just these (which are examples that have actually occurred, not just hypothetical ones), but in gen- eral, data mining is most frequently used via corporations to cut costs or increase revenues.[10]

Data Mining Techniques

Because prediction is the main goal, predictive data min- ing is the most common type of data mining, with popular and practical business application. The process consists of three stages: (1) Exploration, (2) Model Building and Validation/Verification, and (3) Deployment

Stage 1: Exploration. Begins with data preparation which may involve the cleaning and transformation of data, se- lecting subsets of records, or performing preliminary fea- ture selection operations (to bring the number of variables or fields to a manageable range). It also may involve sim- ple, straightforward predictors for a regression model, in order to identify the most relevant factors and determine the complexity, and/or a general nature of models. Stage 2: Model building and validation. Involves con- sidering various models and choosing the best one based on their predictive performance (offering stable results across samples). Many techniques (Bagging, Boosting, Stacking, and Meta-Learning) developed to achieve this are based on so-called “competitive evaluation of mod- els,” which uses different models on the same data, ana- lyzing their performance, and choosing the best. Stage 3: Deployment. Using the model selected as best in the previous stage and applying it to new data in or- der to generate predictions or estimates of the expected outcome.[11]

Computer-aided design/computer-aided manufac- turing

LiftFan-F35B (CAD)

Computer-aided design/computer-aided manufacturing (CAD/CAM) are computer systems that are used to de- sign and manufacture products.[12] CAD is used to assist in the creation, modification, analysis, or optimization of a design. It is used to increase the productivity, improve the quality, improve communications through documen- tation, and to create a database for manufacturing. It is used in many applications such as automotive, ship- building, and aerospace industries, industrial and archi- tectural design, prosthetics, and many more. Also, CAD is used to produce computer animation for special effects in movies, advertising and technical manuals.[13] CAM is used to control machine tools and related machinery in the manufacturing of work pieces.CAM can also as- sist in all operations of a manufacturing plant, including

6.1. INFORMATION SYSTEMS 163

planning, management, transportation and storage. The primary purpose of CAM is to create a faster production process and components.[14] Compared to manual ma- chines, there are several advantages to using CAM such as speed (CAM is faster because machining speeds are higher), greater accuracy, greater consistency (every fin- ished product is the same), efficiency (production can run 24 hours a day, 7 days a week) and sophistication (CAM is able to machine difficult shapes, eg tracks on a circuit boards).[15] After the model is generated in CAD, it can be input into CAM software which then controls the ma- chine tool.

Decision Support Systems

A specific type of support system often used by busi- nesses is known as a decision support system. Decision support systems were originally being researched as early as the 1960’s, but began interacting with users in the mid- dle and late 1980’s. A decision support system enables a user to make decisions on demand, and interactively. These systems use both internal and external data to pro- vide a user the tools to organize the decision-making in- formation. The concept of decision-making is to primar- ily allow the user needed information to make particu- lar decisions. The system is not necessarily making the decision for a user; it is simply retrieving relevant infor- mation that will assist them in their decision. With that being said, DSS systems are primarily used to uncover unstructured information regarding issues middle and ex- ecutive managers may face. Once the data is retrieved from either internal or external sources, the system al- lows human-friendly access to retrieve the data. Exam- ples of prospective data gathered would be: inventories of information, comparative sales figures, and projective revenue. This system is indeed relatively simple to use through its interaction with the user of the system. DSS systems also allow great flexibility for the program, ap- pealing to various ranges of information. The system can also adapt to the user’s environment as well.[16]

You may not realize it, but whenever you fly on an air- line, a massive amount of data has to go through a series of programs and locations and be approved before your flight can occur. These decisions are made at an airline’s dispatch center. At a center, flight data information such as weather, weight, passenger information, and gate avail- ability are all put together and interpreted to make a safe flight. United Airlines is a good example of this. They consolidated their dispatching center to one location, the 27th floor of the Sears Tower in Chicago. Their facility takes up an entire floor of the building and brings every- thing for a flight together. A standard computer program is used to interpret all the data needed for a flight. Af- ter the dispatcher prepares a flight, the information can be transmitted directly to and airplane flight deck, or a United airport facility. The flight can then go as planned. At the same time, as dispatcher can decide to cancel a

Example of Geographic Information System

flight if the information calls for it, of if there is some kind of crisis to deal with. Because of special programs and new technology, your flight can be completed safety, and without long delays.[17]

Artificial Intelligence

Artificial Intelligence systems are systems that allow com- puters to perform actions that are characteristic of human intelligence. These can include systems such as Expert Systems, which provide the user with the kind of advice one would expect to receive from a human expert. This can help businesses make important decisions and predic- tions. There are also Neural Networks, which are systems in which the human brain recognition process is mim- icked by a computer. This can be used in medical reading or biometric identification. Another advancing technol- ogy is Robotics, or the study of robots. A robot is a de- vice that can respond to sensory input, and is controlled and programmed by human intelligence. With constant advancement in technology pertaining to Artificial Intel- ligence, one would be well advised to seek out the pos- sible effects of these “life like” computers. One person who has already studied this is a man by the name of Ray

164 CHAPTER 6. SYSTEMS

Artificial.intelligence

Kurzwell. Kurzwell is an author, inventor and a futurist who proposes the idea of technological singularity: the idea that artificial intelligence, genetics, nanotechnology and robotics will soon result in a human-machine civi- lization. He believes that in the not so near future, man and machine will merge, “allowing one to transcend bi- ological mortality.” This will be due to advancements in genetics that will allow for scientists to reprogram genes to eliminate disease and curb the aging process. With advancements in nanotechnology, the human body could be able to embody robotic red blood cells to stay healthy from the inside out. Artificial intelligence could allow for super human intelligence allowing the mind to be “backed up.” Ray Kurzwell may be a bit ahead of his time with his ideas and theories, but at the rate technology progresses in this age, it is hard to predict the heights in which it will reach. Is a human-machine race mans inevitable fu- ture? Time will tell. Learn more about Ray Kurzwell and his ideas by checking out his book, The Singularity is Near, and the documentary about him called Transcen- dent Man.[18] Morey, Deborah and Charles Parker. Un- derstanding Computers Today and Tomorrow, Compre- hensive.14 ed.

6.1.3 IBM Watson and Cognitive Comput- ing

IBM Watson is a relatively new computer system (cre- ated by IBM) that handles information processing a lit- tle bit differently than classical computers. In a classic example of computers, a query might be submitted to

IBM Watson

the computer to find, say, a name or number or infor- mation on a certain subject or idea. The computer then sifts through the table, or graph, or even the World Wide Web to find terms that match what was searched. For example, say a chef was looking for a specific method of cooking eggs. They might go onto Google an search, “Eggs Benedict”. This query would result in information about the biology of an egg, where it comes from, its importance in certain areas of the world, and then have some results about Saint Benedict, the movie “Benedic- tion”, etc. In order to find the cooking information that is sought, very precise syntax is needed, and even that might lead results astray. With the integration of cogni- tive computing (CC), the computer used by a chef would understand a query in terms of context and meaning as it relates to the circumstance. In other words, it would give recipes for different types or variations of Eggs Bene- dict from various critically acclaimed cookbooks. Cog- nitive computing allows the computer to think about in- formation its given in a critical way. This allows the com- puter to grasp complex and ambiguous ideas and nuances within the language. A huge accomplishment of these computers is their capacity to understand and interpret metaphors, similes, and idioms. Again referring to the egg example, cognitive computers will be able to under- stand that the context of the search is coming from a chef. It will also remember past searches that also had to do with food and cooking. Then, after understanding con- text and remembering past searches, it sorts through un- structured data, which is information written or created by humans, for other humans. Unstructured data includes blogs, microblogs (such as Facebook or Twitter) news ar- ticles, and even videos. This is, perhaps, most different from classical computing in that it specializes in unstruc- tured data. According to IBM, up to 80% of all data today is unstructured.[19]

6.1.4 System Development

6.1. INFORMATION SYSTEMS 165

An IT Analyst

The Information Systems Department

The information systems department is also referred to as the information technology department. It is responsible for running, maintaining, and developing the computers and information systems in an organization. They also make sure for the programs to run smoothly. It includes all the computer and network personnel of that organi- zation. The IT person that is most involved in system development is the system analyst. The system analyst manages the things related to designing and implement- ing modified systems. A person that is very important to system development is the business analyst. It is one of the biggest growing jobs because of the large increase in the use of technology. It is all about finding the most effective use of electronic communication.[20]

Systems Development Jobs

security specialists job

Some other IT jobs are business analysts, application pro- grammers, operations personnel, and security specialists. A business analyst will analyze the organization and its documents in order to assess and process that informa- tion. They help understand the policies and actions that a business has and then helps to achieve their business goals. Business analysts make a strategic plan, look at the

business model analysis, process design the organizations work, and then interpret for technical systems. An appli- cation programmer will take the technical and functional parts of a business and review the tech system. They look for ways to increase efficiency, manage things better, and enhance the work system to perform at its best. An appli- cation manager will usually create new applications that combine programs together for efficiency.[21] Operations personal look at things more from a day to day basis and look at ways to improve upon things. This job is use- ful because they get to see the progression of things in the business from one day to the next. Security special- ists will create a secure system to protect the company’s data and information. They will make sure that not ev- eryone will have access to everything in the company’s database. They additionally monitor and respond to se- curity incidents.[22]

Becoming a Systems Developer

Learning to code is a basic skill of any systems developer

In order to be a systems developer one must have basic coding skills. One must know at least one programming language. One must know how to fix problems on the fly if ever a system failure occurs. One must learn to keep maintenance of such systems so that the chances of system failure is minimized. The field itself is highly technical in nature involving plenty of computer science and mathematics in an environment which is always and rapidly evolving with technology. One must also learn how to work in a group for in an organization you will most likely have a defined role in a group of program- mers and system developers. So not only must you have the technical skills but also the soft skills such as commu- nication and teamwork. Possibly even leadership if you were to take in a position wherein you are the leader of the group. You can also work as an adviser to those who are using the systems in business settings. The most im- portant role of the systems developer is to be the support system in the organization in order for everything to be able to run as smoothly as possible.[23]

166 CHAPTER 6. SYSTEMS

Outsourcing

Offshore Outsourcing

In the industry today, many businesses have been out- sourcing their work. Outsourcing occurs when businesses hire others outside of their company to perform differ- ent tasks, like creating new software or databases for the company. Some examples of outsourcing today include customer service, technical support, payroll accounting, and credit card processing. This is becoming more preva- lent through the years because outsourcing has many ad- vantages to the business itself. Offshore outsourcing is another term used, but the work is done in another coun- try. India, for example, is one country that generates much revenue from offshore outsourcing alone. Although many speculate that American jobs are at risk, outsourc- ing to other countries benefits the business as a whole. The company saves a lot more money, than if they were to keep technical support, customer service, etc. in the primary country of that company. Another advantage of having offshore outsourcing is that there can always be someone working on a project, gathering information, and helping a client because of the different time zones. A lengthy project can be completed faster than would a normal project worked on in just the United States be- cause 24 hours a day, somebody is always working on the project. Homesourcing is a new trend that many compa- nies are taking advantage of, and adopting. This is the transfer of service industry employment from offices to home-based employees with appropriate telephone and Internet facilities. One downfall of outsourcing is cul- tural differences. Language barriers can be detrimental to a company at times. Another aspect that companies have to look into is security with newly outsourced em- ployees when they are first hiring.

6.1.5 SDLC - System Development Life Cycle

The System Development Life Cycle (SDLC) is com- posed of six steps. These steps are as follows: prelimi- nary investigation, system analysis, system design, system acquisition, system implementation, and system mainte- nance. Each step is important and builds up on the step(s) that happened previously. While these are generally the steps always used, they do not always occur in the same order. The effects are still the same.[24] Below is an ex- planation of each of the six steps.

Step 1: Preliminary Investigation

Time to dig deeper and investigate!

As the first step in the SDLC, preliminary investigation plays a large role in determining whether or not a sys- tem or system modification would be worth making. The main point of doing a preliminary investigation is to de- termine what problems need to be fixed and what is the best way to go about solving those problems, if solutions do in fact exist. A feasibility report is the product of the preliminary investigation in most cases. The feasibility report is essentially a compatibility test between the cur- rent business/system and the new system/modifications. The report will tell companies if they can afford the change, if it will work with the other systems and technol- ogy already in their company, and if it will be beneficial to the company to make the changes. If all these things come back positively from the systems analyst, then the system will receive the “all clear” to head to the next step of the SDLC.

Step 2: System Analysis

This second step, system analysis, is used to investigate the problem on a larger scale and fine tune all the infor- mation a company has on the issue. Data collection and analysis are the two main points of interest inside system analysis. Gathering information about the current system and users allows analysts to develop an idea of what seems to be the real problem and how they should go about fixing

6.1. INFORMATION SYSTEMS 167

it through data analysis. The main outcome from this step is a grouping of organized data about the current system and the new/modified systems improvements to come.

A Use Case diagram describe the behavior of the system’s user

To illustrate systems that are based on the concept of ob- jects, tools like use case diagrams and class diagrams are used. Use case diagrams are used to describe the behavior of the target system from an external point of view, while also illustrating the users who interact with the system. On the other hand, class diagrams provide an overview of the target system by describing the objects and classes, and their relationships, inside the system.

Analysis

Design

ImplementationTesting

Evaluation

CPT-SystemLifeSycle

As mentioned above, system analysis is the phase of sys- tem development where the problem area is fully stud- ied in depth and the needs of system users are assessed. The tools that will help accomplish this phase of col- lecting data and data analysis are entity-relationship di- agrams (ERDs), data flow diagrams (DFDs), decision ta- bles and decision trees, business process modeling nota- tion (BPMN), and class diagrams and use case diagrams. To describe the use of these tools in depth you will need to understand that any tools or processes used during this phase will aid in understanding the problems or issues of the current systems and how to improve them. So you will see several visual aids, charts, tables, diagrams, mod- els, etc. All this is to help clarify and make sense to all personnel involved how the current system may be im-

proved. Essentially, the new system requirements are de- fined and; in particular, the deficiencies in the existing system must be addressed with specific proposals for im- provement. Entity-relationship diagrams and data flow diagrams are used to model the entities in a system and the flow of data between the entities. So, these kinds of diagrams will create a visual for the logical interaction between the individual entities that use the system. Busi- ness process modeling notation is a graphical, standard- ized notation used to model a business process. This type of modeling is similar to a flowchart and is meant to be understood by all users of the system.[25]

Step 3: System Design

When you're designing a system, you are essentially creating a blueprint with your collected data which you build upon in later steps.

After all of the data has been analyzed, it is time to de- sign a blueprint for the system that specifies what it will look like and how it will work. First you have to develop the design by using a few key tools. One important tool is the creation of a data dictionary, which describes the characteristics of all data that is used in a system. Other important creations that the systems analyst will use in- clude different diagrams which help to better describe the proposed system. It has been argued by some that the ever-increasing rate of developing technology has made it impossible for the every day systems analyst to do their job thoroughly. The economics of industry are pushing in a way that doesn't favor design, only production.[26]

168 CHAPTER 6. SYSTEMS

Whether this is truly the case, system design leaves lit- tle room for error, as time is money.

Are the benefits of the system worth the cost?

In addition to a data dictionary, the systems analyst also has to create input designs to help illustrate the input screens and other user interfaces that will be used to in- put data into the new system. To ensure that the data is input accurately and secured against data loss, it is es- sential for the system design to contain some form of a security feature. Also, an output design helps identify the specific outputs required to meet the information require- ments, select methods required for presenting that infor- mation, and design reports, or other documents that carry the information. Lastly, once the new system has finally been designed, a cost-benefit analysis is performed to de- termine whether the expected benefits (tangible or intan- gible benefits) of the new system are worth the expected cost. This analysis will then help determine if the design for the new system is worth implementing. [27]

Step 4: System Acquisition

Once the design blueprint has been approved, it’s off to the proverbial grocery store. The organization needing a

System Acquisition is a way of going down your shopping list and comparing prices to get the best deals.

system will have a set budget and a list of components needed to make their system work properly. With this budget comes a few courses of action. The first thing to think about is whether the company should create their own software for their system or buy the software from others. It is typically cheaper and less time consuming to buy preexisting software but the customization options are limited. If the preexisting software doesn't offer the options required of the system blueprint, then the com- pany will likely have to make custom software to meet their needs.

1

Standard glossary of terms used in Software Testing

Version 2.1 (dd. April 1st, 2010)

Produced by the ‘Glossary Working Party’ International Software Testing Qualifications Board

Editor : Erik van Veenendaal (The Netherlands) Copyright Notice This document may be copied in its entirety, or extracts made, if the source is acknowledged.

Benchmark Test

Assuming that it okay for the company to buy preex-

6.1. INFORMATION SYSTEMS 169

isting software, the next step is to choose where to buy from. To help them choose, they can prepare an RFP, or request for proposal, which asks vendors what software the company might need to consider buying. If they al- ready know what software they need and just want poten- tial prices, the company can file an RFQ, or request for quotation.[28] After filing for the RFQ, the company must evaluate all of the bids from the vendors offering differ- ent software. The company, in order to make the most profit, should evaluate each bid and figure out which one has charged the lowest price while also reaching the nec- essary criteria for the company’s system. The Purchasing Department of a company usually decides which vendor deserves to receive the quote.[29] The decision is usually helped by the use of a benchmark test. A benchmark test is a systematic process that evaluates both the hard- ware and software of a system. Some determinants used for the test include examining for the amount of work- load that a system is capable of processing, the capability of solving complex scientific problems using a range of computations, offering legitimate data for the system to process and viewing the performance and scalability of the software, and many more. These benchmark tests can be offered through third-party organizations where there sole purpose is to test the offered systems. These tests allow for the company to immediately discard incapable systems offered by vendors. Sometimes benchmarks are not capable of being performed due to a company’s loca- tion or accessibility, but for the most part they are a great way to assist in evaluating which bid is the best.[30] After all of the required software has been purchased it is time for the next step.

Step 5: Implementation

This update manager shows all of the updates needed for a com- puter software, part of the continuous system maintenance

SDLC - Software Development Life Cycle

The implementation phase of the System Development Life Cycle is an important one.[31] In this phase, the new system is installed and made functional in the produc- tion environment, after thorough testing. End user test- ing is imperative to assure a smooth transition. Any re- quired documentation, including instructions and manu- als should be developed during the process. Training, for both the system administrators and end users, should also occur during this phase. During some implementations, it is convenient, and sometimes even necessary to run the old system and the new system in parallel. Once imple- mentation is complete and all users are fully operating in the new system, the old system can be removed com- pletely. One of the advantages of a parallel adoption re- lates to risk. Should the new system fail for any reason, the old system is still in place. Productivity can continue with limited effort in restoration of the old system. There are certain situations where parallel implementation is ill- advised. A significant negative consequences of parallel implementation relates to efficiency. In order for both systems to function effectively, data must be entered into both systems to keep them current. This requires dupli- cation of work and redundancy in effort to maintain con- sistency. In this step, users get the old data ready to be moved, called data migration. Once that is complete, they can begin installing new hardware and software. There are four ways of converting data to new a system: direct conversion- the old system is deactivated and the new one is implemented right away; parallel conversion- both sys- tems are operated at the same time until it is known that the new one is working, then the old one gets deactivated; pilot conversion- only one new system is installed within an organization and once it is known that it works then the rest are implemented; and phased conversion- the new system is implemented by modules by using direct or par-

170 CHAPTER 6. SYSTEMS

allel conversion. There are some advantages and disad- vantages of using each method. For example, the easiest and fastest method is direct conversion. [32] The final ac- tion in this step is training the users with manuals, for example.

Step 6:System Maintenance

Often the system maintenance is the ongoing process throughout the life of the system. Maintenance can in- clude updating software or updating what is already in- stalled. Many of you play an active role in this step al- ready. For example, how many of you keep up with the newest updates for your Apple applications? You are tak- ing part in system maintenance.

System updating

Once a software has been fully implemented, it goes through a post-implementation review to evaluate how the new system is running and whether or not it is completing its intended tasks. System maintenance includes modify- ing existing software or adding completely new features to the existing software, as well as fixing any glitches or bugs and checking security. System updates are usually scheduled for off-peak hours, such as late at night to keep the system running smoothly for users.[33] Updates can be manually downloaded by the user or automatically down- loaded through the server. Automatic updates ensure that the user is constantly using the most up-to-date version of the software. For many organizations, system mainte- nance costs more than the production of the actual system itself. If the system is well designed it should be able to be easily updated and maintained. Poor design makes it difficult to implement new features, which could end the software’s life cycle early. Once a major change is deter- mined to be the best option for a software, an organiza- tion must go through the system development life cycle again to replace the old system from scratch. This next

version may be completely different than the old version with completely new features, or just an updated version of the old features.

6.1.6 System Development Approaches

SDLC - Software Development Life Cycle

Most system development projects include the six basic SDLC phases. However, the exact sequence and tasks performed during each phase, and the names and number of the phases, may vary depending on the organization and the type of system being developed. For example, smaller systems in smaller companies may skip or con- dense some activities, while other development projects may go back and repeat a previous step to refine the pro- cess before moving on. In efforts to improve the system analysis and design process, different methods have been developed. Some of these methods include the waterfall method, the iterative approach, and the end-user method. Each of these methods have different advantages and dis- advantages in a way that they could be used to fit and op- timize different kind of projects.[34] These methods can be compared to our methods of vacation planning. Peo- ple don't design their entire vacation plan as the first step and then execute it, without modification, as the second step. Instead, when the first day of vacation is over, they might use that day’s experience as a basis for modifying the plan for the second day. In this way, system designs are similar.

Traditional Approach

A traditional approach for the system development has five phases which have to be completed in chronological order. First phase is the preliminary investigation. In this process, the team of development investigates the need for possible software automation in the given system. At

6.1. INFORMATION SYSTEMS 171

Example

the end the team creates a document of specific recom- mendations for the candidate system. It includes the per- sonnel assignments, costs, project schedule, target dates, identifies problems and constraint. The second phase is systems analysis which is the study of a problem, prior to taking some action. It refers to the study of the business area or application, usually leading to the specification of the new system. The third phase is systems design which is defined as those tasks that focus on the specification of a detailed computer-based solution. The analyst focuses on three basic elements: the output that must be provided by the system, the source data, or input that the user will provide to the system, the processing needed to produce the output, given the input. The fourth phase is system ac- quisition financial institutions should ensure that systems are developed, acquired, and maintained with appropri- ate security controls. This leads us to the last step which is system implementation, in this phase, the production system is installed, initial user training is completed, user documentation is delivered, and the post implementation review meeting is held. When this phase is completed, the application is in steady-state production. Installation the biggest aspect is that the entire system is planned and built and built before anyone gets to use it or test it, so every aspect to every phase is essential to the traditional approach for system development.[35][36]

Iterative Approach

An example of a prototype design pattern

Unlike the traditional approach, the iterative (repet- itive) approach allows for system testing during development.[37] The emphasis here is on incremental changes through a process known as prototyping. Proto- typing is the creation of software application prototypes. Prototypes, generally speaking, are early models of some product that is created for testing purposes. With soft- ware prototyping, developers are able to receive crucial feedback from testers early in the beginning stages of development. For this reason the iterative approach accounts for potential risks that developers face (e.g. accounting for user needs, verifying accuracy of initial project estimates). With that, the iterative approach acts as a response to the traditional development cycle, which is more likely to have “higher software costs and poor estimates of time and cost” due to the expense of changing a finished product. As the product moves closer to release, the cost of implementing changes increases exponentially.[38] It is a difficult task because the whole system has to be modified to incorporate sudden changes, and this can have undesirable results. Prototyping resolves this by knowing what the user really wants, which leads to increased user involvement. Interaction between users and developers is vital because it ensures what tasks need to be accomplished on the end of the developer. Overall the iterative approach addresses some of the problems that might not be possible for the traditional approach to address.

The End-User Development Approach

Using End-user Development Programs for day-to-day activities

As opposed to the iterative or traditional approach, which both focus on professional users, the end-user develop- ment approach is focused solely on configuring the devel- opment of the system and is often done using tools or pro- grams. Instead of having to be highly educated and a pro- fessional in the area of software or programming, some- one trying to develop a simplistic and easy system can use these programming tools and develop something of their own. A good example of this is sending out an email that someone wanted to be addressed to many people. This is usually used in small businesses, tasks, or daily projects, and is not something that an intricate business would ever use to run their day-to-day software programs. However,

172 CHAPTER 6. SYSTEMS

it is a nice alternative from having to start all over from the beginning and developing brand new software for simple tasks. The end user development approach is also conve- nient for a user who wants to make something their own and customize the way the software runs to fit their per- sonal needs. This approach is extremely useful for indi- viduals who don’t have the knowledge, time, or money to put into building new software from the ground up. The software is easy to use, personal, and a great alternative to the other two options.[39]

6.1.7 Review

Vocabulary Words

business intelligence: The process of gathering, storing, accessing, and analyzing data about a company in order to make better business decisions. computer-aided design: A general term applied to the use of computer technology to automate design functions. data mart: A collection of data related to a particular subject or department in a company. decision support system: A type of information system typically used by upper management that provides peo- ple with the tools and capabilities to organize and analyze their decision making information. enterprise architecture: A comprehensive framework used to describe and manage an organization’s business functions and systems. enterprise system: A system that is used throughout an entire enterprise (business, organization, government agency, and so on). geographic information system: An information sys- tem that combines geographic information with other types of data (such as information about customers, sales, and so forth) in order to provide a better understanding of the relationships among the data. intelligent agent: A program that performs specific tasks to help make a user’s work environment more efficient or entertaining and that typically modifies its behavior based on the user’s actions. management information system: A type of infor- mation system that provides decision makers with pre- selected information that can be used to make middle- management decisions. product lifecycle management (PLM) system: A sys- tem designed to manage a product as it moves through the various stages of its life cycle, from design to retirement. robot: A device, controlled by a human operator or a computer, that can move and react to sensory input. robotics: The study of robot technology. system acquisition: The phase of the system develop- ment life cycle in which hardware, software, and other necessary system components are acquired. system design: The phase of the system development life cycle in which a model of the new system and how it will work is formally established.

system implementation: The phase of the system de- velopment life cycle that encompasses activities related to making the system operational.

Review Questions

1. What is a collection of elements and procedures that interact to accomplish a goal?

2. An __________ is a collection of elements (people, hardware, software, and data) and procedures that interact to generate information needed by the users in an organization.

3. What is a conceptual blueprint that defines the struc- ture and operations of an enterprise (a business, or- ganization, government agency, or other entity.)

4. __________ include the hardware and software needed to create electronic documents, as well as to covert printed documents into electronic form so they can be processed or archived electronically.

5. What are programs that perform specific tasks to help make a user’s work environment more efficient or entertaining?

6. What are software programs that can make decisions and draw conclusions, similar to a human expert?

7. The IT person most involved with system develop- ment is the _________

8. When an organization hires an outside firm to per- form specific tasks, it is referred to as _______

9. What is the phase of system development in which the problem area is studied in depth and the needs of system users are assessed?

10. What focuses on specifying what the new system will look like and how it will work?

Answers:

1. System

2. Information system

3. Enterprise architecture

4. Document processing systems

5. Intelligent agents

6. Expert Systems

7. Systems analyst

8. Outsourcing

9. System analysis

10. System design

6.2. PROGRAM DEVELOPMENT 173

Review References

http://coursemate.cengage.com/ CPReader/View/9781133114598/ default.aspx?eISBN=9781133114598# 8b4c69bb-7aeb-42c4-ae54-2b8d4a8996ba

6.1.8 References [1] http://smallbusiness.chron.com/

types-information-systems-organization-43097.html

[2] http://www.contentmanager.eu.com/dms.htm

[3] http://en.wikipedia.org/wiki/Document_management_ system

[4] Understanding Computers 14th Ed. by Deborah Morley & Charles S. Parker

[5] http://www.slideshare.net/sonnaco/ transaction-processing-system

[6] http://rashedchowdhury.com/2012/11/12/ what-is-an-enterprise-system-how-does-enterprise-software-work/

[7] http://it.emerson.edu/department/erp/

[8] http://www.ehow.com/facts_7584818_ benefits-challenges-enterprise-systems.html

[9] http://www.im.ethz.ch/education/HS08/davenport_hbr_ 98.pdf

[10] http://www.anderson.ucla.edu/faculty/jason.frand/ teacher/technologies/palace/datamining.htm

[11] http://documents.software.dell.com/Statistics/Textbook/ Data-Mining-Techniques

[12] http://www.webopedia.com/TERM/C/CAD_CAM.html

[13] http://en.wikipedia.org/wiki/Computer-aided_design

[14] http://en.wikipedia.org/wiki/Computer-aided_ manufacturing

[15] http://www.bbc.co.uk/schools/gcsebitesize/design/ electronics/manufacturing_processesrev2.shtml

[16] https://en.wikipedia.org/wiki/Decision_support_system

[17] http://www.arnnet.com.au/article/544575/inside_ united_airlines_nerve_center/

[18] http://en.wikipedia.org/wiki/Transcendent_Man

[19] http://www.ibm.com/smarterplanet/us/en/ibmwatson/ what-is-watson.html

[20] http://www.wisegeek.org/what-is-an-it-department.htm

[21] http://www.wisegeek.com/ what-is-an-application-programmer.htm

[22] http://work.chron.com/ computer-security-specialist-do-13655.html

[23] http://www.prospects.ac.uk/systems_developer_job_ description.htm

[24] http://www.veracode.com/security/ software-development-lifecycle

[25] http://searchsoftwarequality.techtarget.com/definition/ systems-development-life-cycle

[26] http://scholar.harvard.edu/files/waldo/files/ps-2006-6. pdf

[27] http://worldinfo4u.com/ what-input-design-output-design-system-design/

[28] http://www.buyingexcellence.com/ should-we-use-an-rfp-or-an-rfq/

[29] http://www.cvtc.edu/about/quotes-bids-proposals/pages/ default.aspx

[30] http://www.nersc.gov/assets/Trinity--NERSC-8-RFP/ Documents/N8BmkInstructAug6Final.pdf

[31] https://airbrake.io/blog/insight/ what-is-system-development-life-cycle

[32] http://web.archive.org/web/20080727015416/http: //web1.arthurphil-h.schools.nsw.edu.au/~{}computin/ Year12/SDD/02_AppSWAapproaches/assets/ MethodsOfImplementation_AdvDisAdv.pdf

[33] http://www.wisegeek.org/what-is-system-maintenance. htm

[34] http://www.umsl.edu/~{}sauterv/analysis/termpapers/ f11/jia.html

[35] http://vcampus.uom.ac.mu/cse1010e/chapter_8/c8_ Sections3.htm

[36] http://business-finance.blurtit.com/105917/ what-is-the-traditional-development-approach

[37] http://www.ibm.com/developerworks/rational/library/ may05/bittner-spence/

[38] http://www.silvercrestconsulting.com/gui/pdf/ 1237375021.pdf

[39] http://www.interaction-design.org/encyclopedia/ end-user_development.html

6.2 Program Development

6.2.1 Program Design and Development

Procedural programming is more or less self explanatory, it’s procedural so it will go step by step in order to solve a problem. This was a much older type of program- ming language that has since been outdated by object oriented programming. However this type of program- ming is very important and should be well understood if you want to understand the concepts of programming and

174 CHAPTER 6. SYSTEMS

Flowchart procedural programming

Object-Oriented-Programming-Methods-And-Classes-with- Inheritance

what all goes into it. This process is also called impera- tive programming in some contexts, meaning top-down languages; this is how the programming functions, from a top to bottom procedural order. This is what makes this process self-explanatory in a way, because in order for something to work and pass along a message we as- sume it to go in this order. Along with going step by step in order to solve a problem, the list of instructions must be sent to the computer in order for it to know what to do with this information. It relies on routines, or pro- cedures, that have multiple steps that need to be carried out. Procedural programming has been somewhat of a stepping stone for other types of programming because of its simplicity. It is an older type of programing and is now outdated by another popular form which is ob-

Similar to this picture, AOP is complimentary to OOP when to- gether

ExampleOfProceduralProgramming

ject oriented programming.[1] Object oriented program- ming is more focused on objects to make a program in- stead specific steps. An object, such as a person, should have a name, or be able to walk, which can be seen as a method in oriented programming. Having a method is this programming is like having a procedure in procedural programming.[2] One of the most popular object oriented programming languages is Java,[3] which is used virtually everywhere. Objects within an object oriented program consists of attributes. If you have ever played D&D[4] you know that your character has different attributes that would define them. If you have an object you can change its attributes like size, shape, and color. Aspect Oriented Programming is a form of program- ming that compliments Object Oriented Programming (or OOP) by allowing the developer to modify OOP in a way where the system can grow to meet new require- ments. It keeps the original model, which was devel- oped in OOP, but allows for new syntax without having to change the compiler being used or reconfigure the editor either. In essence, it is complimentary to the previously developed OOP style and allows the application to adopt new characteristics over its lifetime without having to be completely remodeled or redeveloped. This ability for an application to be adapted to the current trend in technol- ogy prolongs the usefulness and life span of the applica- tion, which then benefit the users of that application as well.[5]

Adaptive software development consists of cyclical spec- ulation, collaboration, and learning rather than the more

6.2. PROGRAM DEVELOPMENT 175

Adaptive software development is a cyclical process.

traditional approach of linear planning, building, and im- plementation. First, the term “speculate” is used, be- cause outcomes can never be fully predicted to the point of “planning”—but also, of course, it would be a waste of time to wander around aimlessly without any organized approach. A mission is still defined; it is just acknowl- edged that the mission can never be inclusive of all pos- sible outcomes and may need to be changed. Second, the term “collaborate” shows that management, per this model, does not just focus on “managing the doing”— i.e. delegating instructions and seeing fit that they are followed—but also focuses on fostering and maintaining a collaborative environment that is needed for real growth to take place. This can be difficult, because, per this model, that environment is often at the “edge of chaos”— that is, a project can't be fully structured, because then nothing new can emerge, but things can't teeter over the edge into anarchy. Finally, there is a focus on learning from mistakes on the part of both the developers and the consumers. These three-phase cycles are short so that small mistakes, not large ones, are the ones from which lessons are learned.[6]

6.2.2 Program Development Life Cycle - Analysis, Design, Coding

The following are six steps in the Program Development Life Cycle: 1. Analyze the problem. The computer user must figure out the problem, and the best program to fix it. 2.Design the program. A flow chart is important to use during this step of the PDLC. This is a visual diagram of the flow containing the program. All in all, this step is breaking down the problem. 3. Code the program. This is using the language of pro- gramming to write the lines of code. The code is called

SoftwareDevelopmentLifeCycle

the listing or the source code. The computer user will run an object code for this step. 4. Debug the program. The computer user must debug. This is the process of finding the “bugs” on the computer. The bugs are important to find because this is known as errors in a program. 5. Formalize the solution. One must run the program to make sure there are no syntax and logic errors. Syntax are grammatical errors and logic errors are incorrect results. 6. Document and maintain the program. This step is the final step of gathering everything together. Internal doc- umentation is involved in this step because it explains the reasoning one might of made a change in the program or how to write a program.[7]

Writing Code

Example of a Code Editing Software

Essentially, computer code is a series of statements that have been assigned a function by a higher level language (typically referred to as source code). This language is similar to English and has been converted to machine language using a type of program known as a compiler. Because code is used to instruct computers to perform

176 CHAPTER 6. SYSTEMS

a wide array of tasks, there are many different kinds of languages and programs available. One of the most im- portant aspects of coding is deciding which jobs (creat- ing a web page, writing a game, etc.) a computer will do. Regardless of what is chosen, the majority of codes uti- lize plain-text because of its compatibility. Though the actual content is written this way, documents are each given a unique file extension that is indicative of their type. One can write a simple code with a basic word processor or text editor. However, using a software ap- plication (specifically designed for coding in a particu- lar language) is significantly more effective and efficient. As with a document written in English, where word pro- cessing software is used to aid in detection of spelling errors and non-standard grammar, a coding editor pro- vides comparable tools to ensure accuracy. A code editor is also known as an integrated development environment (IDE), which is a software application for formatting. A large downfall of working with IDEs is a lack of flexibil- ity. While some IDEs work with multiple programming languages, a sizable amount are very specific for only one language. [8]

Flowcharts and Pseudocode

Common symbols used in flowcharts

During the design process of the Program Development Life Cycle, it is important that programmers (and non- programmers) are able to visualize the way in which the program will work. Certain tools such as flowcharts and pseudocode are used to simplify the design process and allow the developers to see the program before any ac- tual coding is used. A common type of design tool is the flowchart. A flowchart can be either handwritten or cre- ated with software such as Visual Logic or Flowgorithm [9] Many of these software programs have similar sym- bols to represent certain actions such as input, output, assignments, and various types of loops. Flowcharts are also useful for education tools because they focus more on the concept of programming rather than focusing on the syntax of languages. Another type of design tool is pseudocode. Pseudocode is very similar to a program- ming language except that it uses non-syntactical words to summarize the processes of a program. Pseudocode can- not be compiled or executed but it does serve as a good starting point for programmers.[10] Here is an example of pseudocode:

If user’s age is greater than or equal to 18:

Print “You can vote” else

Print”You cannot vote”

Compiler

Codice sorgente

Analisi lessicale

getNextToken

Analisi sinattica

Analisi semantica

Generazione del codice

Programma eseguibile

NextToken

Abstract Syntax Tree

AST modificato

Assembly

Multi-pass compiler

A compiler is a special program that processes state- ments written in a particular programming language and turns them into machine language or “code” that a com- puter’s processor uses. When executing (running), the compiler first parses (or analyzes) all of the language statements syntactically one after the other and then, in one or more successive stages or “passes”, builds the out- put code, making sure that statements that refer to other statements are referred to correctly in the final code. A compiler works with what are sometimes called 3GLs (FORTRAN, BASIC, COBOL, C, etc.) and higher-level languages.[11] There are one-pass and multi-pass compil- ers as well as just-in-time compiler, stage compiler, and source-to-source. The compiler frontend analyzes the source code to build an internal representation of the pro- gram, called the intermediate representation. The com- piler backend includes three main phases, such as analy- sis, optimization, and code generation.[12] Because com- pilers translate source code into object code, which is unique for each type of computer, many compilers are available for the same language. For example, there is a FORTRAN compiler for PCs and another for Apple Macintosh computers. In addition, the compiler industry is quite competitive, so there are actually many compil- ers for each language on each type of computer. More than a dozen companies develop and sell compilers for the PC.[13]

6.2. PROGRAM DEVELOPMENT 177

6.2.3 Program Development Life Cycle - Debugging and Testing, Implemen- tation and Maintenance

Control Structures

Process

Process Process

Selection control structure involving a condition

A control structure is a diagram used to show how func- tions, statements, and instructions are performed in a pro- gram or module. The diagram shows exactly when an instruction is performed, and how it’s performed. Most importantly, a control structure shows the order of the instructions.[14] There are three basic types of control structures: sequence, selection, and repetition. Choosing a specific control structure depends on what you want the program or module to accomplish. A sequence control structure is the simplest and least complex control struc- ture. Sequence control structures are instructions that are executed one after another.[15] The structure could be compared to following a recipe. A more complex control structure might be a selection control structure, a struc- ture that involves conditions or decisions. This means that the structure can allow different sets of instructions to be executed depending on whether a condition is true or false.[16] The last basic control structure is a repetition control structure, which is sometimes called an iteration control structure. This control structure is used when re- peating a group of code is necessary. The code will be repeated until a condition is reached. Repetition control structures are used when looping is needed to reach a spe- cific outcome.[17]

Testing Program Design

Good program design needs to be specific. The program design is very important, especially because it involves the overall step-by-step directions regarding the program. A programmer must test the program design to ensure that it runs correctly and that there are no mistakes. The op- eration a programmer must do to complete this task is called desk checking. Desk checking allows the program- mer to run through the program design step-by-step. Es-

For (A ;B;C) D Loop

A

B

TRUE

FALSE

C

D

Programming Loop

sentially, the programmer runs through lines of code to identify potential errors and to check the logic. The pro- grammer uses tracing tables to keep track of any loop counters. The goal of checking the program design is to avoid running into mistakes further on in the program de- velopment cycle. The sooner the mistake is caught in the development cycle the better. If the error is not found un- til later in the developmental cycle, it may delay a project. Therefore, a programmer must make sure they pay strict attention while desk checking. Advantages to desk check- ing include the convenience of hands-on “proof-reading” of the programmer’s own code. The programmers wrote the code themselves, so it is an advantage that they can work immediately with familiar code. A disadvantage to the desk checking system includes potential human error. Since a computer is not checking the design code, it is prone to human error.[18]

Debugging

Debugging is basically making sure that a program does not have any bugs (errors) so that it can run properly with- out any problems. Debugging is a large part of what a pro-

178 CHAPTER 6. SYSTEMS

grammer does. The first step to debugging is done before you can actually debug the program; the program needs to be changed into machine language so that the computer can read it. It is converted using a language translator. The first goal of debugging is to get rid of syntax errors and any errors that prevent the program from running. Errors that prevent the program from running are com- piler errors. These need to be removed right away be- cause otherwise you cannot test any of the other parts of the program.[19] Syntax errors occur when the program- mer has not followed the correct rules of the program- ming language. Another kind of error is a runtime error, which occurs while the program is running and it is not noticed until after all syntax errors are corrected. Many run time errors are because of logic errors, which are er- rors in the logic of the program. It could occur when a formula is written incorrectly or when a wrong variable name is used.[20]

Debugger in action

There are different types of debugging techniques that can be used. One technique called print debugging, or also known as the printf method, finds errors by watch- ing the print (or trace) statement live or recorded to see the execution flow of the process. This method origi- nated in the early versions of the BASIC programming language. Remote debugging is the method of finding errors using a remote system or network, and using that different system to run the program and collect informa- tion to find the error in the code. If the program has al- ready crashed, then post-mortem debugging can be used through various tracing techniques and by analyzing the memory dump of the program. Another technique is one created by Edward Gauss called wolf-fence debugging. Basically, this method find the error by zeroing in on the problem by continuous divisions or sectioning until the bug is found. Similar to this is the saff squeeze technique which uses progressive inlining of a failure test to isolate the problem.[21]

Debugging a program can be done by using the tools provided in the debugging software. Typically, and es- pecially with high-level programming languages, specific debugging tools are already included in the. Having

language-specific debugging tools make it easier to detect the errors in a code, because they can look for known er- rors as opposed to tediously “walking through” the code manually. It also good to note that fixing one bug manu- ally may lead to there being another bug; this is also why language-specific debugging tools are helpful. There are also debugging software for embedded system as well.[22]

Testing/Implementation and Maintenance

Testing

Relating to getting a program up and running, many things need to happen before it can be used. One step is to test the program. After the debugging process oc- curs, another programmer needs to test the program for any additional errors that could be involved in the back- ground of the program. This person needs to perform all of the tasks that an actual user of the program would use and follow. To ensure privacy rights, test data is used in the testing process. However, this still has the same structure and feel to the actual data. The tester needs to check for possible input errors as well, as this would cre- ate many problems and issues in the future had it not been checked. Companies usually implement different types of tests. An Alpha test [23] is first conducted, which is on-site at the company, and Beta tests are sent out to dif- ferent states or countries to ensure the program is 100% ready for use. The Alpha test occurs before the Beta test. Once the debugging and testing are finished, the program is now in the system and the program implementation and maintenance phase are completed. Program maintenance still needs to be kept up, in case of future errors. This is the most costly to organizations because the program- mers need to keep improving and fixing issues within the program. As stated earlier, a program goes through extensive test- ing before it is released to the public for use. The two types of testing are called Alpha and Beta testing. First, it is important to know what each test does. Alpha testing is done “in house” so to speak. It is done within a com- pany prior to sending it to Beta testing and its intention in this early stage is to improve the product as much as possible to get it Beta ready. Beta testing is done “out

6.2. PROGRAM DEVELOPMENT 179

Prog

of house” and gives real customers a chance to try the program with the set intention of catching any bugs or errors prior to it being fully released. Alpha testing is the phase that takes the longest and can sometimes last three to five times longer than Beta. However, Beta testing can be completed in just a few weeks to a month, assuming no major bugs are detected. Alpha testing is typically per- formed by engineers or other employees of the company while Beta testing occurs in the “real world”, temporar- ily being released to the public to get the widest range of feedback possible. During Alpha testing, it is com- mon for there to be a good amount of bugs detected as well missing features. During Beta testing, there should be a big decrease in the amount of these problems. When testing in the Alpha phase is over, companies have a good sense of how the product performs. After Beta testing is complete, the company has a good idea of what the cus- tomer thinks and what they experienced while testing. If all goes well in both phases, the product is ready to be re- leased and enjoyed by the public. The length of time and effort that is put forth in order for the world to enjoy and utilize the many programs on computers today is often overlooked. Information such as this gives the user a new appreciation for computers and computer programs.[24]

6.2.4 Program Development Tools

Adobe Air

Adobe Air allows the user to package all of the code into applications for Windows, MacOS, iOS, and An- droid desktops. Adobe air reaches billions of desktops and apps for 500 million devices. There are many ap- plications that can be used with adobe air. Adobe air can open books online and allow the user to be able to read them easily that way. You can change the font size, quickly get to a page, and go to a full screen while reading the book. Adobe Air can also open desktop blog editor and allow the user to use HTML/Javescript. An example of this type of application is Bee. It can use word to start a

Adobe Acrobat dot com (2010)

blog and the user can add photos easily and allow the blog to flow evenly. BkMark is another application that can be used on Adobe Air. It allows the user to make bookmarks for favorite websites. It store actual data and allows you to reopen any website that you want to go to. It is really convenient application for users who want something fast to go to a commonly used website. Finally another ex- ample of an application that can be used with Adobe Air is dAIRnotes. This allows the user to make notes on the computer and keep track of all of the notes.[25]

Application Lifecycle Management (ALM) Tools

Programmers are often overworked and need all the help they can get. This is where ALM tools come into play.

ALM tools are, surprise surprise, tools that manage an application throughout its entire life cycle. They are very helpful for programmers who are under increas- ing amounts of stress to develop new programs quickly. The helpfulness comes from wide range of features that the ALM tools can offer. One example is how many ALM programs come with built-in program design tools, along with the ability to generate the program code from the finished design to create the application. This code

180 CHAPTER 6. SYSTEMS

generating ability saves companies time and money that they don't have to put towards outsourcing, especially if they've got a small number of programming staff. In ad- dition to code generators, another important tool that can be included in ALM programs is requirements manage- ment. Essentially, requirements management is defined in exactly that way, referring to keeping track of and man- aging program requirements as they are defined and then modified throughout the process of developing the pro- gram. The larger the company, the nicer ALM toolset they can purchase; there are many ALM toolsets on the market to choose from.[26]

Application Generators

Keyboard shortcuts (like those used to initiate the use of a macro)

Application generators are extremely useful devices. They can be used by amateurs/people with less experi- ence or by professionals. The point of an application generator is to make a task simpler than it is. Even if it is just changing a few basic formatting characteristics, these generators can make it so that the user only has to type in a specific key or command in order for all the actions to happen at once with much less effort. One of these useful generators is called a Macro. A macro is an application generator that simply makes it possi- ble to perform repeated actions instantaneously on a sin- gle command. The idea is that it will make reformatting or calculating things much easier, thus saving the oper- ator time.[27] Most Microsoft programs contain a macro recorder which allows users to easily record all inputs and commands they use and associate them with a keyboard shortcut for future repetition. Other application genera- tors create reports and form which make things such as memberships, records (such as medical treatments, his- tory, and vaccinations), and even insurance claims more organized and easier to access by those who should be able to access them.

RIA Tools

Java Rich Internet Applications

Other types of tools include device software develop- ment tools, software development kits (SDKs), applica- tion program interfaces (APIs), and rich internet applica- tion tools (RIAs). A rich internet application offers many of the same features associated with desktop applications. They are more interacting and engaging that other web- based applciations. Some big names in this area are Mi- crosoft, Adobe, and JavaScript. Microsoft actually has a very put together developer’s website that goes into some detail about how to create such applications. It includes information such as things to consider before starting an RIA, such as the audience. [28]

A few key features about RIAs include direct interac- tion, partial-page updating, better feedback, consistency of look and feel, offline use, and performance impact. [29]

Direct interaction allows for a wider range of controls, such as editing or drag-and-drop tools. Partial-page up- dating allows for real-time streaming and cuts down on load time waiting for a response from a server. RIAs can provide users with quicker feedback because of the partial-page updates. Also, it is sometimes possible to use RIAs offline when there is no connectivity. Once downside to RIAs is that smaller devices, such as mobile phones, often times do not have the means necessary to run such applications.

6.2.5 Programming Languages

What is a Programming Language?

Program Language

A programming language is designed to communicate in-

6.2. PROGRAM DEVELOPMENT 181

structions to a computer and so the computer can inter- pret the instructions and make sense of them. They are used to create programs that control the behavior of a machine and algorithms. There are multiple languages created into this program which are created from differ- ent styles or forms. The description of a programming language is known to be split into the two components of syntax (form) and semantics (meaning). The syntax is the form in which the language is presented in and the actual sense or meaning of the instructions is the seman- tics. A program is written so that it can be understood by computer so that the instructions can be interpreted, translated into so the computer can eventually make sense of it. So the moment you turn on your computer after it starts to run programs, it interprets these instructions, tests the ram and resets all attached devices and loads the operating system from hard disk. Every operation that the computer holds has instructions that someone had to translate into a programming language. With every lan- guage, they have to be created, compiled and tested which tends to be a long and complex task.[30]

Categories of Programming Languages

Visual Basic is an example of a high-level programming lan- guage.

Two categories that programming languages can fall un- der are procedural (programs that use the procedural approach) and object (for those programs that use the object-oriented approach). However, probably the most common way of categorizing programming languages is by their designation into a tier structure. Programming languages can fall under low-level languages, high-level languages, and very high-level languages. Low-level lan- guages, which are made up of the first generation lan- guage, machine language, and second generation lan- guage, assembly language, are written at a very low level: programming consists of 0s and 1s for machine language and assembly language includes names and symbols for some of the 0s and 1s. These languages allow computer hardware to read commands quickly, but this happens at the cost of a much steeper learning curve as opposed to higher level languages.[31] High-level languages, on the other hand, are easier to use because they are closer to natural language. They are also machine independent: programs written on one computer can be transferred to another computer without modification. This is in con- trast to the machine dependent-nature of low-level pro- grams where modification is necessary. Lastly, very high-

level languages, also known as fourth-generation pro- gramming languages, are more difficult to distinguish from high-level languages. Fourth-generation languages (4GLs) are known to be declarative, which does not spec- ify exactly how a computer should go about processing a command. This results in programmers using very little code. Although, those languages deemed very-high level languages in the past (e.g. Visual Basic, Python, Perl) have now been called simply high-level languages [32]

Official Scratch Wiki Logo

There are some high-level programming languages that are visual programming languages or graphical program- ming languages. They are referred to by these names be- cause they have a graphical interface. In these programs, instead of typing program code, a user can drag and drop objects to generate the needed code. There are even pro- grams that incorporate visual elements that help with cod- ing but also still require actual coding. These kinds of programs are called visual programming environments (VPEs) One of the first programming languages to use a visual programming environment was Visual Basic. The convenience of visual programming environments is that you can drag and place objects but also with a code is typed, the program assists in creating the code by listing options. These helps users learn appropriate codes. An online definition of visual programming environments describes it as software which allows the use of visual expressions (such as graphics, drawings, and animations or icons) in the process of programming. These visu- als items are then used as graphical interfaces for textual programming languages. These kinds of visual program- ming languages software are also used for educational purposes and in the future may be the most common pro- gramming language. Scratch is one example of an ed- ucational visual programming environment for children. As mentioned above, Visual Basic was one of the first programming languages to use visual programming envi- ronment, but since then C++, Pascal, and Java have also

182 CHAPTER 6. SYSTEMS

begun to create visual programming environments.[33]

Common Programming Languages

Fortran is one example of a very common programming lan- guage.

There are many programming languages out there that are still, to this day, used immensely on a day-to-day basis. Fortran, which is one of the older options, is used mainly in the scientific field for scientists, mathematicians, and formulating numerical formulas. Cobol is another pro- gramming language commonly used today, and can typ- ically can be seen utilized in business environments for everyday transactions. This language is seen as extremely time consuming, and more and more businesses today are starting to move away from it, towards quicker processes. Pascal is yet another language that is used commonly in math and science programs. The Pascal programming language obtained its name from the famous mathemati- cian, Blaise Pascal. It was created by Niklaus Wirth, a member of the International Federation of Information Processing Working Group. He created the Pascal pro- gramming language because he wanted to include new features that past programming languages did not pro- vide. It was originally created as a teaching tool and uses control structures in its software. The use of con- trol structures helped the programming language become more structured and organized compared to other lan- guages, which is why it was used as a teaching tool. Pas- cal was published in 1971 and revised in 1973, which al- lowed for it to stay prominent in colleges from the 1970’s and into the late 1980’s. One of the new features of Pas- cal was the new data types, like Integer, Real, Character,

and Boolean. These new types are what allowed Pascal to become a programming language used strongly in math- ematic programs. Another new feature was a strong data typing element, which allowed the compilers for Pascal to see and correct an incompatible assignment in one type in accordance to a variable in a different type. This further helped keep the organized structure of Pascal and enabled it to be used more in college level classes. Pascal was a great creation for the programming language world.[34]

The Pascal programming language was named after Blaise Pas- cal, a mathematician.

Another common programming language is Basic. It is one of the most used languages because it can be con- sidered user friendly. It was designed to be an uncom- plicated and stressful language that is used typically for interactive programs. It is extremely easy to get to know, and many people enjoy its simplistic and understandable functioning. One aspect of basic is Visual Basic, which again uses their understandable language, but is focused on visual aid. These are just a few examples of the im- mense and intricate amount of languages that are out there. Though many of these are still used today, it is obvious that some of the older and more time-consuming software is on its way out.[35]

On the other hand, there are also some programming lan- guages that are no longer widely used today. Among these programming languages are LISP and Prolog. Speci- fied in 1958, LISP (LISt Processing) is the second-oldest high-level programming language, running right behind Fortran. It allows a code to be expressed in the same form as the data structures in the language, which is very beneficial when performing genetic algorithms or sym- bolic manipulation. On the other hand, in the early 1970s,

6.2. PROGRAM DEVELOPMENT 183

In Logo, by inputting text commands into a prompt, the user moves the cursor around the screen to create squares, stars, and other shapes

Prolog was designed for natural language processing, and logical reasoning. This language allowed using similar grammars to translate logical representation back into language.[36] Being a dialect of LISP comes another lan- guage used to teach children how to program: The Logo Programming language. To act as a tool for learning, its features included modularity, extensibility, interactiv- ity, and flexibility. Another third generation program- ming language not used today is PL/I, “Programming Language 1.” This language was developed as an alterna- tive to Cobol (large-scale business applications) and For- tran (scientific and algorithmic applications). Lastly, and most importantly, comes one of the first object-oriented programming languages: SmallTalk. As there is no such language called SmallTalk any more, other different lan- guages like SmallTalk-xx (the xx being the year that the language was finalized,) have gradually taken its place. Therefore, although new languages such as C, Java, or PHP have now taken over, old programming languages still play a significant role behind the shift to the new and better technology. [37]

Java is a high-level, object-oriented programming lan- guage that is designed to let developers write once, run anywhere. This means that the coding does not have to be recompiled for various platforms and can run the same on any system. The language was developed by Sun Mi- crosystems in 1995 and was released to the public as open source software in 2007.[38] Since then, the language has become one of the most popular programming languages in the world, particularly for client-server web applica- tions. Much of the syntax used is derived from other pro- gramming languages C and C++. Java programs are com- piled into the bytecode format, which can be run on any computer that runs Java virtual machine no matter how simple or complex the computer’s architecture may be.

One popular application for the Java language is Java ap- plets, which are small programs that can be inserted into a web page of a java-enabled web browser. These applets can be used to run games, banner ads, scrolling text, or various other types of programs from inside the browser. These applets are inserted into the HTML statements of the web page just as an image would be added. The ap- plet is downloaded from the host server of the webpage when being displayed, allowing for the program to run on the viewer’s computer.[39]

Python

Python is an open source, dynamic object-oriented pro- gramming language. Python can be used to develop a variety of applications, including gaming, database, and Web applications. It’s a freely available programming language and can run on almost any computer without needing to change the program. Python’s compatibil- ity is the reason it’s used daily in the Google search en- gine, Youtube, NASA, and the New York Stock Ex- change. Also, due to its readability, ease of acquisition, and extensibility, Python was recently chosen by MIT for students learning to program.[40] Another open source object-oriented programming language, often compared to Python, is Ruby. Ruby can be used to create both Web applications and general-purpose programming for Linux, Mac OS X, and Microsoft Windows computers. Similar to Python, Ruby uses a syntax that is relatively easy to read and write. A difference, however, is that Ruby tends to presume upon the programmer’s intentions, while Python’s information is typically plain in syntax. Ruby on Rails (RoR) is a framework for developing dy- namic Web applications that are written in the Ruby pro- gramming language. RoR applications run on a variety of types of Web servers and with a variety of databases, consequently growing rapidly in use and popularity.

184 CHAPTER 6. SYSTEMS

Java Java is another very common programming lan- guage. It was developed by Sun Microsystems (who were later bought by Oracle), and bases most of its syntax off the other programming languages such as C and C++. Java is used extensively in apps, both on computers and mobile devices. Is is liked by app developers as it is easy to use, and compatible with most devices as most devices are able to read Java. Mobile devices are making use of Java in many of their systems, as it is compact, and can be used for many operations in the device. Android uses Java as a major part of their mobile operating system. While not the foundation of the operating system Java is used for most of the non-basic functions. In regards to the mobile phone market, Java’s biggest competitor is Google, as they are marketing their own operating system for use on mobile devices. Java is found in most devel- oped apps, but programmers to create simple programs from scratch. The major downside of Java, as with any programming language, is that it may expose weak areas that can be hacked. Java is currently on its 8th edition, with a 9th edition being beta tested.[41]

MS-DOS and Batch Files

Batch processing has been in use since the 1950’s in main- frame computers. [42] This started on punch cards, how- ever it developed into a fully digital language. MS-DOS is an acronym that stands for “Microsoft Disk Operating System”. MS-DOS has an interface that is just a black screen with white text on it. Since the early days of com- puting, DOS has been used to read and write programs for a myriad of jobs. The MS-DOS Batch language is simply a text file that allows a user to create a sequence of commands that are executed as if they were typed in to the command line, with some enhancements for con- ditionals (making decisions based on whether programs fail or succeed). Over the years, various batch versions of varying capabilities have appeared on many comput- ing platforms. The command prompt (as it is now called) still appears on modern Windows and Linux machines, and many IT professionals swear by it, and by the power and control it gives them. This ability to automate com- mon tasks s often a budding programmer’s first exposure to programming languages.

6.2.6 Key Terms Review

Procedural programming: An approach to program design in which a program is separated into small mod- ules that are called by the main program or another mod- ule when needed. Variable: A named memory location defined in a com- puter program that is used to store the current value of a data item used in that program. Object-oriented programming (OOP): An approach to program design in which a program consists of objects

that contain data (attributes) and processes (methods) to be used with those objects. Aspect-oriented programming (AOP): An approach to program design in which different functions are clearly separated so program components can be developed and modified independently from one another, and the com- ponents can be easily reused with separate, nonrelated ob- jects. Program development: The process of creating appli- cation programs. Program development life cycle (PDLC) The process containing the five phases of program development: ana- lyzing, designing, coding, debugging and testing, and im- plementing and maintaining application software. Problem analysis: The phase of the program develop- ment life cycle in which the problem is carefully consid- ered and the program specifications are developed. Programmer: A person whose job it is to write, test, and maintain computer programs. Program design: The phase of the program develop- ment life cycle in which the program specifications are expanded into a complete design of the new program. Flowchart: A program design tool that graphically shows step-by-step the actions a computer program will take. Pseudocode: A program design tool that uses English- like statements to outline the logic of a program. Unified Modeling Language (UML): A set of standard notations for creating business models; widely used for modeling object-oriented programs. Control structure: A pattern for controlling the flow of logic in a computer program, module, or method. Sequence control structure: A series of statements that follow one another. Selection control structure: A series of statements in which the results of a decision determine the direction the program takes. Repetition control structure: A series of statements in a loop that are repeated until a particular condition is met. Program coding: The phase of the program develop- ment life cycle in which the program code is written using a programming language. Coding: The process of writing the programming lan- guage statements to create a computer program. Source code: A computer program before it is compiled. Program debugging and testing: The phase of the pro- gram development life cycle that ensures a program is correct and works as intended. Debugging: The process of ensuring a program is free of errors. Object code: The machine language version of a com-

6.2. PROGRAM DEVELOPMENT 185

puter program generated when the program’s source code is compiled. Language translator: A software program that converts source code to object code. Compiler: A language translator that converts an entire program into machine language before executing it. Interpreter: A language translator that converts program statements line-by-line into machine language, immedi- ately executing each one.

6.2.7 Review Questions

1.) What is a computer program called before it is com- piled? 2.) A program design tool that graphically shows step-by- step the actions a computer program will take is called a _______? 3.) What phase of the PDLC has the program code writ- ten using a programming language? 4.) If your job is to write, test, and maintain computer programs, you are a _______. 5.) What language translator converts an entire program into machine language before executing it? 6.) What process ensures a program is free of errors? 7.) What is the process of creating application programs? 8.) How many phases are there in the program develop- ment life cycle? 9.) List the phases of the PDLC in order. 10.) What is a software program that converts source code to object code?

6.2.8 Review Answers

1.) Source code 2.) Flowchart 3.) Program coding 4.) Programmer 5.) Compiler 6.) Debugging 7.) Program development 8.) Five 9.) Analyzing, designing, coding, debugging and testing, implementing and maintaining ap- plication software 10.) Language translator

6.2.9 References

[1] http://education-portal.com/academy/lesson/ object-oriented-programming-vs-procedural-programming. html#lesson

[2] http://education-portal.com/academy/lesson/ object-oriented-programming-vs-procedural-programming. html#lesson

[3] http://www.java.com/en/

[4] http://www.wizards.com/dnd/

[5] http://www.onjava.com/pub/a/onjava/2004/01/14/aop. html

[6] http://www.adaptivesd.com/articles/messy.htm

[7] http://blog.teachbook.com.au/index.php/ computer-science/software-development/ program-development-lifecycle/

[8] http://study.com/academy/lesson/ how-to-write-a-program-coding-testing-debugging. html

[9] https://en.wikipedia.org/wiki/Flowgorithm

[10] http://www.webopedia.com/TERM/P/pseudocode.html

[11] http://whatis.techtarget.com/definition/compiler

[12] http://en.wikipedia.org/wiki/Compiler

[13] http://www.webopedia.com/TERM/C/compiler.html

[14] Understanding Computers 14th ed. by Deborah Morley & Charles Parker

[15] http://www.britannica.com/EBchecked/topic/1086517/ sequence

[16] http://www.thevbprogrammer.com/Ch05/ 05-03-SelectionStructure.htm

[17] http://www.cs.fsu.edu/~{}myers/c++/notes/control1. html

[18] http://www.ehow.com/facts_5941523_desk-checking_ .html

[19] http://searchsoftwarequality.techtarget.com/definition/ debugging

[20] http://www.techopedia.com/definition/16373/debugging

[21] http://en.wikipedia.org/wiki/Debugging

[22] http://en.wikipedia.org/wiki/Debugging

[23] http://www.thefreedictionary.com/alpha+test

[24] http://www.centercode.com/blog/2011/01/ alpha-vs-beta-testing/

[25] http://www.adobe.com/devnet/air/samples_javascript. html

[26] http://www.infoq.com/research/alm-survey

[27] http://office.microsoft.com/en-us/help/ macros-demystified-what-they-are-and-why-to-use-them-HA010007210. aspx

[28] http://msdn.microsoft.com/en-us/library/ee658083.aspx

[29] http://www.computerworld.com/s/article/335519/Rich_ Internet_Applications?taxonomyId=16&pageNumber=2

[30] http://cplus.about.com/od/introductiontoprogramming/ p/programming.htm

[31] http://www.webopedia.com/TERM/M/machine_ language.html

186 CHAPTER 6. SYSTEMS

[32] https://en.wikipedia.org/wiki/Very_high-level_ programming_language

[33] http://dictionary.reference.com/browse/visual+ programming+environment

[34] http://groups.engin.umd.umich.edu/CIS/course.des/ cis400/pascal/pascal.html

[35] http://www.freerepublic.com/focus/chat/2880277/posts

[36] http://www.princeton.edu/~{}achaney/tmve/wiki100k/ docs/Lisp_(programming_language).html

[37] http://el.media.mit.edu/logo-foundation/logo/

[38] https://www.java.com/en/download/faq/whatis_java. xml

[39] http://en.wikipedia.org/wiki/Java_(programming_ language)

[40] http://python.about.com/od/gettingstarted/ss/ whatispython_7.htm

[41] https://www.oracle.com/java/index.html

[42] https://www.microsoft.com/resources/documentation/ windows/xp/all/proddocs/en-us/batch.mspx?mfr=true

6.3 Database

6.3.1 Database Definition and Examples

Phone book

A database is a collection of data that is saved and or- ganized to allow easy retrieval when needed. In order to

maintain and access the database you will need a DBMS (database management system). This kind of system manages and protects data so that the database is safe and secure. Databases consists of tables that include groups of related data fields that are known as records. Databases are not limited to only computers; in fact, a phone book is an example of a database.[1] All of the names alpha- betized and each column has its own category. There is a column for your name, phone number, and possibly a street address. With a relational database, all of the data within the row can be pulled up when you are looking for the specific attribute.

All that data has to be stored somewhere!

There are a few advantages to using a database manage- ment system. On the plus side, it has the ability to control redundancy, the integrity of the information being stored can be maintained, it can restrict access, it can share data, and can backup/recover information. A database man- agement system can counteract redundancy by compiling the information in one spot. The same way that you can't have two audio files with the same name and extension in a single folder, you can't have the same file in a single database. This controls and can increase storage space. The integrity of the information being stored can also be increased based on the specifications of the database de- veloper. This means that the constraints on the informa- tion put into the database (which is determined by the developer) will keep the data stored accurate. So if a database is only able to store pictures, for example, then a music file will be rejected ensuring that a picture will al- ways be retrieved from the database with 100% accuracy. This is a very simple example to get the idea across as the constraints imposed by the developer can determine dif- ferent things. Databases can also share data as well allow- ing a developer to build multiple applications off of one source of information rather than having to create new stored files. Databases can also backup and recover data. If a computer system fails during a long, complex update

6.3. DATABASE 187

then the database can restore the files to the place in the update when it is becomes operational again.[2]

Microsoft Access 2013 logo

Primarily, databases are used for collecting data and orga- nizing, one may wonder what instances this may be used for. Some examples of databases are Microsoft Excel or Access. For an example of what these databases could be used for we can go with a situation: you are having a wedding and need to make an invitation list. For a pro- cess like this, users can utilize Microsoft Excel because their database will not have many types of transactions and should not become too uncontrollable. However, if this were to happen, Access would be more compatible with the material needed. Access is basically just a more advanced version of Excel that is only needed for uncon- trollable databases or ones that need to be directly linked to others in order to access information in an systematized way. Either database can help you make informed deci- sions and can also help you make sense of the data in dif- ferent ways. The storage in Access is not repetitive so it can essentially save space and improve accuracy.[3] Ac- cess also has different templates to choose from so that you do not have to create a new database from scratch. There is also a relationship you can establish between the tables so that you can navigate easier. For creating a wed- ding invitation list: you can decide who to invite and who not to invite to the reception and put those people in sep- arate tables.[4]

Databases are also important in businesses. Especially when it comes to keeping inventory. Databases can be used for controlling inventory as well as reducing the time, cost, and effort of inventory management. Control- ling your inventory is essential in order to have good and efficient business. A database can provide an up-to-date picture of stock levels and products. It helps in main- taining that the stocks keep up with the demand of the consumers. It can be used to provide forecasts and trends of demand in order to adjust adapt to the change of the

These items need to be organized somehow.

market and maximize profit. It also provides automation which improves productivity. It can update stock levels automatically as well as control stock to ensure products are always available for consumers. This automation frees up employees to do more productive things such as help out customers. Speaking of customers, they always order things and want them delivered on time and right away. Well a database can help in increasing and maintaining the efficiency of orders and deliveries. They help make it easier to place orders and find products. While these are also important in business they can be applied to any or- ganization that may have inventory. An example of such would be libraries. With he millions of books that a li- brary can potentially carry, a database is not only impor- tant but necessary.[5]

Who Uses Databases?

A database whose creation and use involve many people.

There are a number of individuals who create, use, manage, and secure database management systems. A database designer is responsible for designing a database. They work with people involved in the sys- tem development life cycle, such as systems analysts, to find out what kinds of data are needed and what rela- tionships among the data should be studied, and they de- sign the database based off of these. A database de- signer may also be referred to as a database architect, database engineer, or database analyst. Database de- velopers create the database based on the work of the

188 CHAPTER 6. SYSTEMS

database designer, setting up its structure and user inter- face, typically with the use of the database management system. This may be the same as the database designer, and they work alongside the database programmer, who creates the programs necessary for the database to be developed. Database administrators, or DBAs, man- age databases within an organization, maintaining them, monitoring user access to them, monitoring their perfor- mance, and performing backup. The users are the ones who actually “use” the database: they enter data into the database, update data within the database, and retrieve data from the database.[6]

6.3.2 Data Characteristics

3 states of data

Data is a collection of facts. It can be values, mea- surements, numbers, words, measurements, and observa- tions. Many businesses would not be as successful with- out data.[7] A data has a hierarchy; this hierarchy is a sys- tematic organization of data. Fields, records, and files are apart of the data organization. Product names or quanti- ties are the lowest level of the hierarchy, and the database is the highest level of the hierarchy.[8] Also, the data defi- nition consists of the following: name, data type, descrip- tion, and properties. This describes the properties that go into a database. If a computer user wants to look up all of the data definitions for a database, he or she would look up the data dictionary. A few key terms a computer user should be aware of, concerning data characteristics, con- sist of data field, record, file, and database. A data field contains a single fact of an entity. A record is a collec- tion of related fields. A file is an organization of related business records. The database is the place where files are integrated. The data characteristic key terms are essential to be aware of for businesses who use a database.

Data Organization

In order for a database to be efficient, its data must be organized in a fashion to make it easily and quickly ac- cessible. This is called data organization. Data orga- nization typically uses a primary key to identify where data is being stored. This allows for a specific record to

Server-web-database

be located efficiently. There are a few different meth- ods that databases use in order to store and retrieve data efficiently. The two most common are Indexed Method and Direct Method. Indexed Method is the method in which a database uses an index to keep track of where data is stored within it. An index is a table that has the primary key as well as the location information for that key. Index organization allows for records to be looked up quickly and retrieve information from the database. Di- rect organization is faster than index organization. This is due to it using the key field and a mathematical formula called hashing algorithm to find where specific records are physically stored in the database. These systems are much harder to develop. They pave the way for an inci- dent called collision, which happens when two or more records are assigned the same storage address. Some sys- tems use both methods. The key field will first indicate where the record is located in the table, and then the hash- ing algorithm is used to find where the data is physically stored on the storage medium.[9]

6.3. DATABASE 189

6.3.3 The Data Dictionary

A data dictionary is a read-only set of tables that contain all data definitions in a database. The table structures are non-editable without a password. A password is needed to view or edit a table. The definitions included in the database include all of the following: tables, views, in- dexes, clusters, synonyms, sequences, procedures, func- tions, packages, triggers, and more. Keep in mind; the data dictionary does not contain any of the information located in the data tables, only the data about the tables. This specific data about the tables is otherwise known as metadata. The database dictionary includes informa- tion regarding how much space has been taken up by the schema objects and the amount of space that is left. [10] The information that is included in the database must be organized before put into the data dictionary. Data mod- eling, or putting a descriptive name to each data object, must be done for each independent object. Once that is done, the relationship of the data is described, along with the description of type of data. Type of data can include defining the object as text or an image. Once that is com- pleted, the programmer must include a brief textual de- scription regarding the data. [11]

6.3.4 Data Security and Privacy

Public key encryption is one way to secure data.

Data security is a must-have, and is required by most in- dustry, business and legal mandates. Data security is what protects that data from being breached, so that the infor- mation it contains cannot be disclosed or leaked. Data se- curity also ensures the integrity of the data, meaning that no unauthorized changes can be made to data, data struc-

tures, configuration files, or logs. Data security programs can keep track of the files and monitor the transferring of data to prevent unauthorized access and stop any possible intrusions from occurring.[12]

Because technology has developed so much over the years, more and more actions are taking place over on- line through the internet, apps, or other networks. This has raised the issue of privacy, as many personal and sen- sitive information is often held in databases for many or- ganizations (hospitals, insurance companies, jobs, health care companies, etc.). To help solve this, privacy laws have been made to determine how companies and indi- viduals can have the ability to choose what information can be given to third parties and what cannot be given out. In the United States, different privacy laws have been passed for specific industries or situations. Some of these laws include the Children’s Online Privacy Protec- tion Act (COPPA), the Health Insurance Portability and Accountability Act (HIPPA), the Electronic Communi- cations Privacy Act (ECPA), and the Video Privacy Pro- tection Act.[13]

6.3.5 Classification of Databases

Single-User vs. Multiuser Database Systems

Database Server

Single-user database systems are located on one computer and they are designed for one user. They are used for per- sonal use and small businesses. Only one person can use

190 CHAPTER 6. SYSTEMS

the database at a time, so if one user is using the database the other users must wait until that user is done. The other kind is used for bigger businesses. It is a database that is accessed through a network. It is so more than one per- son can access and change the data in a system. Most use some kind of lock on the database so that there are no conflicts between people making changes. They can be on one computer or multiple computers.[14]

Client-Server and N-Tier Database Systems

email

Most multiuser database systems are client-server database systems. Basically client-server database sys- tems are servers that have resources for other computers. It is when the client part makes a service request from the server, which completes the request. The client is referred to as the front end and the database server is referred to as the back end.[15] Some of the client-server database systems have more than just the front end and the back end but also a middle part called a tier. These are referred to as n-tier database systems. In these databases the client and the database never communicate directly, all data is passed through the middle layer. The advantages of this database system is that the middle tier provides a layer of abstraction, that way you can change parts of the back end without having to modify parts of the front end. It is also a good way to separate responsibilities; they can also be more efficient.[16] Client Server Internet gives IT organization. They look into three specific technologies in the IT organization. They first act like clients and servers of course, they can access the internet as well to get into databases..etc. The final technology is to be able to create, view, use, modify, and delete applications. Software modules and hardware components are used to be able to actually perform functions. The client server connection is by two different modules, one acting as the client/server.

The two are able to communicate with messages. They can be sent whether the server is online or off. They are thus able to connect with a network. A network is a group of connected objects or people; the network is able to relay those messages to one another. The main use for a client server is to produce a useful application for the business’s needs. Client servers use middleware which is an important part that allows for applications on the client end to be able to reach the actual network and talk to the server. It is the basis that is in between the network and the application software. E-mails are a type of middleware since it is in between the network and the application.[17]

Centralized vs. Distributed Database Systems and Disk-Based vs. In-Memory Database Systems

Database Systems

Centralized database systems are all located on one com- puter. This can either be a server or mainframe com- puter. Distributed database systems share a network and the data is divided between several computers connected to that network. An advantage of a centralized database system is that all information is in one place. The dis- advantage may be that a bottleneck might occur. Hav- ing all information on one computer can make it easier to some users, but difficult for others who want to access the files. One advantage of distributed database systems is that the database can be accessed using any computer on the network even if all the information is not on one computer. This is the preferred type of system to use for databases, because information can be easily found. It also ensures that all data will not be lost, if using the distributed database system over the centralized system. Because of the recent advances in technology, using the “cloud” is another way to store database information over the Internet for an easy way of storage. This concept goes hand in hand with disk-based and in-memory database systems. Most databases are stored on conventional hard drives in computers today, but recently many are switch- ing to in-memory databases. This can hold all data on the main memory of the computer. This creates faster per- formances than it would if using the disk-based system.

In-Memory Database

An in-memory database (IMDB) is a database whose data is stored in main memory to facilitate faster re- sponse times.[18] In-memory databases are also some- times referred to as main memory database systems, or MMDBs, and have become more popular in recent years

6.3. DATABASE 191

Main Oracle Memory Areas

for handing High-Performance Computing (HPC) and Big Data applications. Applications, such as those run- ning telecommunications network equipment and mobile advertising networks, often use main-memory databases. Three developments in recent years have made in- memory analytics increasingly feasible: 64-bit comput- ing, multi-core servers and lower RAM prices.[19] Source is loaded into system memory in a compressed, non- relational format. In-memory databases streamline the work involved in processing queries which provides faster and more predictable performance than disk(as access times and database requests are typically considerably faster when system memory is used as opposed to disk storage, particularly hard drive storage.). Main memory databases are faster than disk-optimized databases since the internal optimization algorithms are simpler and exe- cute fewer CPU instructions. Another advantage of in- memory databases comes into play when transactional data and analysis data is stored in the same database. It’s easier to carry out ad-hoc analysis as all of the data needed to analyze a business case is written to a single database.[20]

6.3.6 Database Models

Relational Database Model

Relational database management systems are important because they take several related tables and combine them in the least complex way that is possible. Essentially the RDBMS takes these smaller, less compact, tables and finds ways to relate them to one another based on singular variables to avoid repetition as much as possible. When creating such a database there are four main questions to ask: what is the point of this database? what information needs to be included in this database? which variables should be placed in which table to make the end result the least tangled/complicated? and how should this table be formatted? Once all those things are completed, one could use a program such as Microsoft Office’s Access[21]

to create a query by choosing specific related fields to dis- play and organize. After this, one could use the query to generate a report which is essentially used to import the selected information into a singular database that would be easier to read through and find information from.

A database table

Relational database comes into play when an asset track- ing database is needed, and spreadsheets are too large to use for the particular data. After the design of your new database, including the fields, data types, primary keys, and foreign keys, is finished, the next step is to actually go ahead and create the corresponding table for the database. The very first step to create a relational database is to cre- ate and name a new database file, which will contain all tables and objects included in the database. Next, using the table structure formed in the “design” phase of the process, each table in the database is created. And fi- nally, once that table structure is complete, the last step is to enter the data into the tables, and relate different tables to each other as needed. In Microsoft Access, a table can be created under the Design View by entering each field name and specifying the data type and other properties as needed. However, if you wish to use your old or existing data in the new database, a process called data migration takes place by transferring the data from the old files to the new. Additionally, Design View also lets you make various sorts of edits in the form if you wish to have a specific layout or design—such as chang- ing the form color, font size, the placement of the fields, or adding a heading, etc. [22]

Star Schema Model

Star schema database

Star schema is one of the simplest database models and is commonly used as a model for relational data warehouses and multidimensional databases. It consists entirely of fact tables and dimension tables. Fact tables are an event or entity such as a sale and a dimension table consists of

192 CHAPTER 6. SYSTEMS

details about that event such as date, place, speed of deliv- ery, etc. For example, a geography dimension table can be used to describe location data, such as country, state, or city. In a star schema, a fact table is surrounded by numerous dimensions that branch out, creating an image similar to a star. One of the advantages of a star schema model is that it is compatible with Online Analytical Pro- cessing (OLAP) which allows for data mining of specific information from different points of view. For example, a user can view the sales from a specific item at any spe- cific time in the past.[23] One of the disadvantages of the star schema model is that it is a simplistic model so it is not capable of creating complex relational analytics. Star schemas are also denormalized so it is possible for redun- dancies to occur within the database.[24]

Types of Relationships

League Team

One-to-many relationship (Leagues related to teams in the league)

There are three basic types of relationships among enti- ties. These three types include: one-to-one, one-to-many, and many-to-many. In a one to one relationship every row in one table is linked to one specific row in another table. This means that there must be exactly as many rows in the first table as in the second table. This type of relationship isn’t very common due to the fact that there isn’t always a benefit to the design of a database. There is no benefit to the design because if the data is directly related it would make sense to have all the data in one table. One way that one-to-one relationships could be beneficial is if some of the data is needed, but isn’t used often. The data that isn’t used often could be stored separately, and away from the more important data.[25] One-to-many relationships allow each row in a table to be related to many rows in another table. This type of relationship is beneficial to a database due to the fact that you can reference frequently used data in many different tables by only entering it into one mas- ter table. Usually, the number of rows in the first table would be less than the number of rows in a second, third, forth, and so on, table. One-to-many relationships are of- ten used in libraries. For example, names of authors in one table could correspond with the books each author has written in different tables.[26]

Hierarchical and Network Database Models

The hierarchical model is the oldest database models. It organizes date in a tree-like structure, using parent and child data segments. For example, it begins at the top of the tree with a single root. That stems into a lower level

Database models

segment, which connects to other subordinate segments after. This is used to model one-to-many relationships. A disadvantage of using this model is that it requires data to be stored repetitively in multiple levels. This causes the database to function very slowly because it can be searching for information in lower levels as well. The net- work model uses a set structure. A set is comprised of an owner record type, a set name, and a member record type. This type of model shows many-to-many relation- ships. Parents can have multiple children, and children can have multiple parents. Both of these model types are outdated and no longer used for building new database ap- plications. They are often less flexible than other model types. [27]

Also, all paths for accessing the data must be planned ahead of time and cannot easily be changed. Some places you might still see the hierarchical model might be in large systems that use high-volume transaction process- ing, like banks or insurance companies.

Object-Oriented Database Models

OODBMSs, like this abstract statue, are more difficult to compre- hend initially while ultimately promising greater rewards.

Whereas other database models can only store conven- tional data (such as dates, numbers, and text), the object-

6.3. DATABASE 193

oriented database management system (OODBMS) is far more abstract. In an OODBMS, you can store pretty much any kind of data you desire, along with the methods to be used with that data. To retrieve this more complex and varied data, the user sends queries written in object query language(OQL) which is an object-oriented version of SQL. OODBMSs are becoming increasingly prevalent because of the higher demands of computer users today. However, as is the case with any new technology, there is some resistance because of the downsides of OODBMSs.

Cell Diagram for OOBDMS

One downside is how editing an OODBMS based appli- cation is more time consuming because changes have to be made to the other classes in the application that inter- act with instances of the parent class, versus an RDBMS system where edits can typically be independent of the parent application.[28] This is very time consuming and that means a lot of money has to be spent on making changes to the object-oriented database management sys- tem. Many companies in the business world have certain budgets set aside for the information department, which includes the database system used for the company, and the OODBMS is very costly. Another disadvantage for the OODBMS is the lack of support for security and views. The user of an OOBDMS cannot grant individu- als’ access to certain objects or classes within the system, which either means the individual wouldn’t be allowed to see the system at all or that they would get access to every- thing within the system, something businesses might not like. Also, the OOBDMSs do not contain a view mech- anism, which is a disadvantage for employees who like to see their work and also to make sure everything they put in is correct. Two more disadvantages of OOBDMSs that go hand in hand is the lack of standards for the sys- tem and the fact that there is no universal data model. Without standards for the system, the cleanliness of the system can be dragged down and it could be hard to use. Many people like when something is universal because then they know what is right and wrong, something that cannot see with the OODBMS.[29] Even with the extra difficulties, many important clients continue to operate using a OODBMS, one big example being Chicago Stock Exchange, which uses the system to manage stock trades. After looking at the types of database models, there are 4

Tuple

Relation

Attribute

Relational database terms

steps involved with designing a relational database. The first step in designing a relational database is to identify the purpose of the database and the activities that it will be used for. These activities can range from keeping track of rental properties, students grades, customer orders, or inventory. Databases are used in a wide variety of ways and knowing what you will use your database for will help you create your database and optimize its use. In know- ing what purpose your database will serve, you will be able to determine the data (fields) that needs to be in- cluded in the database, then the fields can be organized into tables. It is good to group fields that logically belong together. Next look at the table structure and ensure that all fields are represented and in the proper table. Look to see if there is any redundancy in the data, that way you can restructure fields in order to minimize that redun- dancy. Lastly, finalize the structure of each table, listing each field’s name, type, size and so on and selecting a pri- mary key (data definition). This procedure will assist you in create a database that will suit your needs and provide the information you request.[30]

6.3.7 Databases on the Web

Web Databases in Use

There are many ways Web databases can be used. The most obvious way is the retrieval of information. Web databases provide a means for users to access the mas- sive amount of information the Web has to offer, and this is made possible, in one way, by the use of search sites where databases provide links for the user. Other personal uses for databases include the storage of email addresses, telephone numbers, and other information for one who might create a site for friends and family.[31] On the business end, Web databases allow businesses to cre- ate “website polls, feedback forms, and client/customer inventory lists.”[32] This is a vital function that both large and small businesses can take advantage of to suite their needs. One, specific example relating to business-use of Web databases is the management of e-commerce-related activities. Here databases are used to provide informa- tion like pictures and pricing for products as well as order information and other necessary functions to enable effi- cient and reliable business transactions. Another feature of Web databases is their ability to display dynamic Web

194 CHAPTER 6. SYSTEMS

Amazon is just one of many companies that utilize Web databases for their business needs

pages. These pages display information that changes de- pending on the input of the user, like a B2C site showing pages related to the interests of the consumer based on his or her past acivities. From personal to business appli- cations, Web databases are a vital part of addressing the tasks associated with Web-related activity.

This advertisement would be targeted towards someone involved with universities.

Not only are websites becoming more and more person- alized for the viewer, but the advertisements on the web page are as well. Companies including major search en- gine Google deliver targeted ads towards certain con- tent and audiences. One method is contextual targeting, which analyzes keywords, word frequency, and link struc- tures to determine what ads would match the content of the page. Placement targeting uses specific ads chosen by advertisers on certain web pages that are supposed to match what the viewer’s other interests may be and what other kinds of products they have to offer. Similar to this is interest-based advertising, which places advertise- ments relevant to certain interests on web pages that are commonly viewed by people with that similar interest. Google offers a program that people can use in order to set their interests so that ads are tailored towards their selections. Lastly, language targeting determines the pri- mary language of the page and ensures that the advertise- ments shown will be in the same language. Advertise- ments would not work very well if the viewer could not even read what the product was that they were advertis- ing! All of this information is placed into Google’s ad search database which processes the information and en-

sures that the advertisement on your screen is going to be relevant to you.[33]

Middleware

Database Layout

This is a computer software that provides services to soft- ware applications beyond those available from the operat- ing system. It is software that connects two otherwise sep- arate applications, which can resemble “software glue.” For example, there are a number of middleware products that link a database system to a Web server. This pro- vides the user to be able to receive data from the data base by using forms that are displayed on a Web browser, and it enables the Web server to return dynamic Web pages based on the user’s requests and profile. As stated previ- ously, the term middleware is used to describe separate products that serve as the glue between two applications. It is, therefore, distinct from import and export features that may be built into one of the applications. It is some- times called plumbing because it connects two sides of an application and passes data between them. Distributed computing system middleware can loosely be divided into two categories. These categories are those who provide human-time services and those that perform in machine- time. This latter middleware is somewhat standardized through the Service Availability Forum and is commonly used in complex, embedded systems within telecom, de- fense and aerospace industries. [34]

How Web Databases Work

In our technological world, we use web-based database requests on a daily basis. We are constantly visiting web pages, clicking on links and using the menu to navigate us through our activity on that page. Using middleware, the web server passes a request on to a database query and the information is stored and passed along to the database server. The database server then uses this information to direct the page to where it was intended to go. CGI Script is another way information is passed along. They use instructions via a programming language and accept and return the websites data to the user. Active server pages are yet another example of scripts used commonly

6.3. DATABASE 195

Example of PHP Script

on websites. They are very similar to CGI Scripts, yet they are exclusive because they almost always use VBS script or Java script. PHP Hypertext processor is a lan- guage that is becoming more and more popular everyday. This script is extremely similar to CGI scripts and active server pages yet are more highly compatible with other programs. The script functions using PHP tags and html codes to get their job done. These scripts are just some examples of what is used today and how information in transmitted on a web server.[35]

CGI Scripts

a CGI (common gateway interface) script is a set of in- structions written in a programming language (such as C, Perl, Java, or Visual Basic) and designed to accept data from and return data to a Web page visitor. On very busy sites, CGI can slow down server response time sig- nificantly because it processes each request individually. The usual placement of a CGI script is in the remote web servers cgi-bin directory, but the exact location of this directory is determined by the web administrator for that machine.[36]

Active Server Pages

Active Server Pages (ASPs), Microsoft’s first server-side script engine for dynamically generated Web pages, have the extension .asp. ASPs work similarly to Web pages uti- lizing CGI scripts, but the code to tie the database to the Web site is typically written in JavaScript or VBScript.

PHP Scripts

PHP (PHP Hypertext Preprocessor) is a scripting lan- guage that is increasingly being used to create dynamic Web pages. Free to download and use,[37] It uses code similar to Perl or C++ that is inserted into the HTML code of a Web page using special PHP tags. Although PHP scripts perform tasks similar to CGI and ASPs, they

PHP Elephpant mascot

have the advantage of high compatibility with many types of databases.

6.3.8 Review

Terms and definitions [38]

attribute A characteristic of an entity. centralized database system A database system in which all of the data used by the system is located on a single computer. client-server database system A database system where the database is located on a server and accessed by client devices. column In a database, a field. data definition The process of describing the properties of data that is to be included in a database table. data dictionary The repository of all data definitions in a database. data integrity The accuracy of data. data privacy' Protecting the privacy of the data located in a database. data security Protecting the data located in a database against destruction and misuse. data validation The process of ensuring that data entered into a database is valid (matches the data definition). database A collection of related data that is stored in a manner enabling information to be retrieved as needed; in a relational database, a collection of related tables. database management system (DBMS) A type of software program used to create, maintain, and access databases. direct organization A method of arranging data on a storage medium that uses hashing to specify the exact storage location. distributed database system A database system in which the data used by the system is located on multiple computers that are connected via a network.

196 CHAPTER 6. SYSTEMS

entity Something (such as a person, object, or event) that is important to a business or organization; typically be- comes a database table in a database system for that busi- ness or organization. field A single category of data to be stored in a database, such as customer names or employee telephone numbers. Also called a column. form A formatted way of viewing and editing a table in a database. hybrid XML/relational database A type of database system that can store and retrieve both XML data and relational data. in-memory database (IMDB) A database that stores all data in memory instead of on a hard drive. index A small table containing a primary key and the lo- cation of the record belonging to that key; used to locate records in a database. indexed organization A method for organizing data on a storage medium or in a database that uses an index to specify the exact storage location. metadata Data about data, such as the data contained in a data dictionary. middleware Software used to connect two otherwise sep- arate applications, such as a Web server and a database management system. multidimensional database (MDDB) A type of database designed to be used with data warehousing. multiuser database system A database designed to be accessed by multiple users. normalization The process of evaluating and correcting the structure of a database table to minimize data redun- dancy. object-oriented database management system (OODBMS)' A type of database system in which multiple types of data are stored as objects along with their related code. primary key A specific field in a database table that uniquely identifies the records in that table. query A request to see information from a database that matches specific criteria. record A collection of related fields in a database. Also called a row. relational database management system (RDBMS) A type of database system in which data is stored in tables related by common fields; the most widely used database model today. report A formatted way of looking at information re- trieved from a database table or the results of a query. row In a database, a record. single-user database system A database located on a

single computer and designed to be accessed by a single user. structured query language (SQL) A popular query language standard for information retrieval in relational databases. table In a relational database, a collection of related records or rows. Questions 1. Match each term with its example: A. When the database does not allow a user to enter a letter in a phone number field. B. Requiring users to log on to a database system via a fingerprint reader. C. Assigning a field the property of “required.” i. Data definition ii. Data integrity iii. Data security Fill in the blank

2. In a student information database, Name would be considered a(n) _______________, while all of Jennifer Mitchell’s information would be a(n)___________. 3. Data _______ refers to accuracy of data. 4. When _____ organization is used, a hashing procedure determines where data is stored. 5. The term front end and back end refer to ______ database systems True or False

6. Normalization is used to minimize data redundancy. 7. In a relational database, more than one table can be included in a database. 8. Using usernames and passwords is a data validation technique. 9. The network database model is the most widely used model today. 10. Dynamic Web pages commonly use databases. Answers [39]

1. A. ii B. iii. C. i. 2. field or column; row or record 3. integrity 4. direct 5. client-server 6. True 7. True 8. False 9. False

6.3. DATABASE 197

10. True

6.3.9 References [1] http://www.usg.edu/galileo/skills/unit04/primer04_01.

phtml

[2] http://ecomputernotes.com/ fundamental/what-is-a-database/ advantages-and-disadvantages-of-dbms

[3] http://products.office.com/en-us/excel

[4] https://support.office.com/en-us/article/ Training-courses-for-Access-2013-a4bd10ea-d5f4-40c5-8b37-d254561f8bce? ui=en-US&rs=en-US&ad=US

[5] http://smallbusiness.chron.com/ importance-inventory-databases-retail-40269.html

[6] Understanding Computers: Today and Tomorrow - 14th Edition Comprehensive

[7] http://www.mathsisfun.com/data/data.html

[8] http://technet.microsoft.com/en-us/library/ee633737. aspx

[9] http://ng.cengage.com/static/nb/ui/index.html?nbId= 7345&nbNodeId=1013914#!&parentId=1013946

[10] https://docs.oracle.com/html/A96524_01/c05dicti.htm

[11] http://searchsoa.techtarget.com/definition/ data-dictionary

[12] http://www-01.ibm.com/software/data/security-privacy/

[13] http://searchcio.techtarget.com/definition/ data-privacy-information-privacy

[14] http://www.slideshare.net/raminder90/ single-user-vs-multi-user-databases

[15] http://searchnetworking.techtarget.com/definition/ client-server

[16] http://databases.about.com/od/specificproducts/a/ architectures.htm

[17] http://www.networkcomputing.com/netdesign/ 1005part1a.html

[18] http://whatis.techtarget.com/definition/ in-memory-database

[19] http://whatis.techtarget.com/definition/ in-memory-database

[20] http://www.gft.com/etc/medialib/2009/downloads/ techreports/2012.Par.0003.File.tmp/gft_techreport_ inmemorydatabases.pdf

[21] http://office.microsoft.com/en-us/access-help/ create-a-query-based-on-multiple-tables-HA010096275. aspx

[22] http://office.microsoft.com/en-us/access-help/ create-tables-RZ101772997.aspx?section=2

[23] http://searchdatamanagement.techtarget.com/definition/ OLAP

[24] http://searchdatamanagement.techtarget.com/definition/ star-schema

[25] http://www.databaseprimer.com/pages/relationship_ 1to1/

[26] http://www.databaseprimer.com/pages/relationship_ 1tox/

[27] http://wps.prenhall.com/wps/media/objects/14071/ 14409392/Learning_Tracks/Ess10_CH05_LT3_ Hierarchical_and_Network_Data_Models.pdf

[28] http://slashdot.org/story/01/05/03/1434242/ why-arent-you-using-an-oodms

[29] http://www.scribd.com/doc/6142698/oodbms

[30] http://code.tutsplus.com/tutorials/ relational-databases-for-dummies--net-30244

[31] http://www.htmlgoodies.com/primers/ database/article.php/3478121/ To-Use-or-Not-to-Use-a-Database-That-is-the-Question. htm

[32] http://www.ehow.com/info_8219542_database.html

[33] https://support.google.com/adsense/answer/9713?hl=en

[34] https://docs.djangoproject.com/en/1.3/topics/http/ middleware/

[35] http://guide.netfronts.com/Database-PHP-ASP/adding_ dynamic_web_content.html

[36] http://snowwhite.it.brighton.ac.uk/staff/mas/mas/ courses/html/html3.html

[37] http://www.w3schools.com/php/php_intro.asp

[38] http://coursemate.cengage.com/CPReader/View/ 9781133114598/default.aspx?eISBN=9781133114598# 66897dee-5c5a-4b7d-8a74-0eac7f4de56c

[39] http://ng.cengage.com/static/nb/ui/index.html?nbId= 7345&nbNodeId=1013914#!&parentId=1013946