Sie sind auf Seite 1von 14

Computer programming is the process of designing,

writing, testing, debugging, and maintaining the source


code of computer programs. This source code is written
in one or more programming languages. The purpose of
programming is to create a set of instructions that
computers use to perform specific operations or to
exhibit desired behaviors. The process of writing source
code often requires expertise in many different subjects,
including knowledge of the application domain,
specialized algorithms and formal logic. Within software
engineering, programming is regarded as one phase in a
software development process. There is an ongoing
debate on the extent to which the writing of programs is
an art form, a craft, or an engineering discipline. n
general, good programming is considered to be the
measured application of all three, with the goal of
producing an efficient and evolvable software solution.
The discipline differs from many other technical
professions in that programmers, in general, do not need
to be licensed or pass any standardized certification
tests in order to call themselves !programmers! or even
!software engineers.! "ecause the discipline covers
many areas, which may or may not include critical
applications, it is debatable whether licensing is required
for the profession as a whole. n most cases, the
discipline is self#governed by the entities which require
the programming, and sometimes very strict
environments are defined. $owever, representing
oneself as a !%rofessional &oftware 'ngineer! without a
license from an accredited institution is illegal in many
parts of the world.
Computer programming (often shortened
to programming) is the comprehensive process that
leads from an original formulation of a computing
problem to executable programs. t involves activities
such as analysis, understanding, and generically solving
such problems resulting in an algorithm, verification of
requirements of the algorithm including its correctness
and its resource consumption, implementation (or
coding) of the algorithm in a target programming
language, testing, debugging, and maintaining
the source code, implementation of the build system and
management of derived artefacts such as machine code
ofcomputer programs. The algorithm is often only
represented in human#parseable form and reasoned
about using logic. &ource code is written in one or
moreprogramming languages (such as *+
+, *,, -ava, %ython, &malltalk, etc.). The purpose of
programming is to find a sequence of instructions that
will automate performing a specific task or solve a given
probelm. The process of programming thus often
requires expertise in many different subjects, including
knowledge of the application domain,
specialized algorithms and formal logic.
Within software engineering, programming
(the implementation) is regarded as one phase in
a software development process.
There is an ongoing debate on the extent to which the
writing of programs is an art form, a craft, or
an engineering discipline.
./0
n general, good
programming is considered to be the measured
application of all three, with the goal of producing an
efficient and evolvable software solution (the criteria for
!efficient! and !evolvable! vary considerably). The
discipline differs from many other technical professions
in that programmers, in general, do not need to be
licensed or pass any standardized (or governmentally
regulated) certification tests in order to call themselves
!programmers! or even !software engineers.! "ecause
the discipline covers many areas, which may or may not
include critical applications, it is debatable whether
licensing is required for the profession as a whole. n
most cases, the discipline is self#governed by the entities
which require the programming, and sometimes very
strict environments are defined (e.g. 1nited &tates 2ir
3orce use of2da*ore and security clearance). $owever,
representing oneself as a !%rofessional &oftware
'ngineer! without a license from an accredited institution
is illegal in many parts of the world.
2nother ongoing debate is the extent to which
the programming language used in writing computer
programs affects the form that the final program takes.
This debate is analogous to that surrounding the &apir4
Whorf hypothesis
.50
in linguistics and cognitive science,
which postulates that a particular spoken language6s
nature influences the habitual thought of its speakers.
7ifferent language patterns yield different patterns
of thought. This idea challenges the possibility of
representing the world perfectly with language, because
it acknowledges that the mechanisms of any language
condition the thoughts of its speaker community.
Quality requirements
Whatever the approach to software development may
be, the final program must satisfy some fundamental
properties. The following properties are among the most
relevant8
Reliability8 how often the results of a program
are correct. This depends on conceptual correctness
of algorithms, and minimization of programming
mistakes, such as mistakes in resource
management (e.g., buffer overflows and race
conditions) and logic errors (such as division by zero
or off#by#one errors).
Robustness8 how well a program anticipates
problems not due to programmer error. This includes
situations such as incorrect, inappropriate or corrupt
data, unavailability of needed resources such as
memory, operating system services and network
connections, and user error.
Usability8 the ergonomics of a program8 the
ease with which a person can use the program for
its intended purpose, or in some cases even
unanticipated purposes. &uch issues can make or
break its success even regardless of other issues.
This involves a wide range of textual, graphical and
sometimes hardware elements that improve the
clarity, intuitiveness, cohesiveness and
completeness of a program6s user interface.
Portability8 the range of computer
hardware and operating system platforms on which
the source code of a program can
be compiled9interpreted and run. This depends on
differences in the programming facilities provided by
the different platforms, including hardware and
operating system resources, expected behaviour of
the hardware and operating system, and availability
of platform specific compilers (and sometimes
libraries) for the language of the source code.
Maintainability8 the ease with which a program
can be modified by its present or future developers
in order to make improvements or customizations,
fix bugs and security holes, or adapt it to new
environments. :ood practices during initial
development make the difference in this regard. This
quality may not be directly apparent to the end user
but it can significantly affect the fate of a program
over the long term.
Efficiency9performance8 the amount of system
resources a program consumes (processor time,
memory space, slow devices such as disks, network
bandwidth and to some extent even user
interaction)8 the less, the better. This also includes
correct disposal of some resources, such as
cleaning up temporary files and lack of memory
leaks.
Readability of source code
n computer programming, readability refers to the ease
with which a human reader can comprehend the
purpose, control flow, and operation of source code. t
affects the aspects of quality above, including portability,
usability and most importantly maintainability.
;eadability is important because programmers spend
the majority of their time reading, trying to understand
and modifying existing source code, rather than writing
new source code. 1nreadable code often leads to bugs,
inefficiencies, and duplicated code. 2 study
./<0
found that
a few simple readability transformations made code
shorter and drastically reduced the time to understand it.
3ollowing a consistent programming style often helps
readability. $owever, readability is more than just
programming style. =any factors, having little or nothing
to do with the ability of the computer to efficiently
compile and execute the code, contribute to readability.
./>0
&ome of these factors include8
7ifferent indentation styles (whitespace)
*omments
7ecomposition
?aming conventions for objects (such as
variables, classes, procedures, etc.)
@arious visual programming languages have also been
developed with the intent to resolve readability concerns
by adopting non#traditional approaches to code structure
and display.
7ebugging
7ebugging, is a very important task in the software
development process since having defects in a program
can have significant consequences for its users. &ome
languages are more prone to some kinds of faults
because their specification does not require compilers to
perform as much checking as other languages. 1se of
astatic code analysis tool can help detect some possible
problems.
7ebugging is often done
with 7's like 'clipse, Adevelop, ?et"eans, *ode88"lock
s, and @isual &tudio. &tandalone debuggers like gdb are
also used, and these often provide less of a visual
environment, usually using a command line.
Programming languages
7ifferent programming languages support different styles
of programming (called programming paradigms). The
choice of language used is subject to many
considerations, such as company policy, suitability to
task, availability of third#party packages, or individual
preference. deally, the programming language best
suited for the task at hand will be selected. Trade#offs
from this ideal involve finding enough programmers who
know the language to build a team, the availability
ofcompilers for that language, and the efficiency with
which programs written in a given language execute.
Banguages form an approximate spectrum from !low#
level! to !high#level!C !low#level! languages are typically
more machine#oriented and faster to execute, whereas
!high#level! languages are more abstract and easier to
use but execute less quickly. t is usually easier to code
in !high#level! languages than in !low#level! ones.
2llen 7owney, in his book How To Think Like A
Computer Scientist, writes8
The details look different in different languages,
but a few basic instructions appear in just about
every language8
input8 :ather data from the keyboard, a file,
or some other device.
output8 7isplay data on the screen or send
data to a file or other device.
arithmetic8 %erform basic arithmetical
operations like addition and multiplication.
conditional execution8 *heck for certain
conditions and execute the appropriate
sequence of statements.
repetition8 %erform some action repeatedly,
usually with some variation.
=any computer languages provide a mechanism to
call functions provided by libraries such as in a .so.
%rovided the functions in a library follow the
appropriate run time conventions (e.g., method of
passingarguments), then these functions may be
written in any other language.
2 programming language is an artificial
language designed to communicate instructions to
a machine, particularly a computer. %rogramming
languages can be used to createprograms that control
the behavior of a machine and9or to
express algorithms precisely.
The earliest programming languages predate
the invention of the computer, and were used to direct
the behavior of machines such as -acquard
looms and player pianos.
.citation needed0
Thousands of
different programming languages have been created,
mainly in the computer field, with many being created
every year. =ost programming languages describe
computation in an imperative style, i.e., as a sequence of
commands, although some languages, such as those
that support functional programming or logic
programming, use alternative forms of description.
The description of a programming language is usually
split into the two components of syntax (form)
and semantics (meaning). &ome languages are defined
by a specification document (for example,
the * programming language is specified by
an &D &tandard), while other languages, such as %erl >
and earlier, have a dominantimplementation that is used
as a reference.
Programming language
2 programming language is a computer language
programmers use to develop applications, scripts,
or other set of instructions for a computer to
execute. "elow is a listing of several different
programming languages and scripting languages
currently listed in our database.
3D;T;2?
3ox%ro
$7=B
$T=B
-ava
-ava&cript
-*B
B&%
Bive &cript
BD:D
%ascal
%erl
%$%
%ick
%ython
%rolog
;uby
&:=B
&malltalk
&EB
Tcl
True "2&*
@$7B
@isual "asic
@isual 3ox%ro
W=B
W$T=B
F=B
1sers who are new to computer programming may
find the above list confusing and may not be sure
where to start. Where to start really depends on the
computer programming you wish to do. "elow is a
listing of some of the different fields of
programming as well as what language you should
consider for each of these fields.
Note: There are several programming languages
listed above that may not be listed in a category
below that they are capable of doing. nstead of
listing every language under every category below,
we have just listed some of the more popular
choices for each category.
2pplication and %rogram development
2rtificial ntelligence development
7atabase development
:ame development
*omputer drivers or other hardware interface
development
nternet and web page development
&cript development
pplications and Program de!elopment
2pplication and program development involves
programs you work on a daily bases. 3or example,
the nternet browser you are using to view this web
page is considered a program. f you are interested
in writing your own programs you should consider
the below languages.
*
*,
*++
7
-ava
Tcl
@isual "asic
rtificial "ntelligence de!elopment
2rtificial ntelligence or related fields could involve
anything from creating the character interactions in
computer games, portions of programs that make
the decisions in programs, chatbots, or any other
related programs. f you6re interested in writing your
own 2 you should consider the below languages.
2=B
*
*,
*++
%rolog
#atabase de!elopment
7atabase developers create and
maintain databases. f you6re interested in creating
your own database or maintaining other databases
you should consider any of the below languages.
7"2&'
3ox%ro
=y&EB
&EB
@isual 3ox%ro
$ame de!elopment
:ame development involves the development of
computer games or other entertainment software. f
you6re interested in writing your own games you
should consider the below languages.
*
*,
*++
7ark"2&*
-ava
Computer dri!ers or other hard%are interface
de!elopment
*omputer drivers and programming hardware
interface support is a necessity for computers to
operate with the hardwareC without it your computer
wouldn6t work. f you6re interested in writing your
own drivers or software interfaces for hardware
devices you should consider the below languages.
2ssembly
*
"nternet and %eb page de!elopment
The nternet and web page development is the
essence of the nternet, without developers we
would have no nternet. f you6re interested in
creating your own web pages, developing nternet
applications, or nternet related tasks, you should
consider the below languages.
$7=B
$T=B
-ava
-ava&cript
%erl
%$%
%ython
F=B
&cript de!elopment
2lthough not likely to be a career, knowing how to
create and develop scripts to increase your
productivity or your company6s can save you
countless hours. f you6re interested in developing
your own scripts you should consider the below
languages.
2utohotkey
awk
bash
"atchfile
%erl
%ython
Tcl
Programming 'anguage Categories
There are literally thousands of programming
languages in the world and each has its own
strengths and weakness. =any are simply for
teaching or language research. These languages
do not interest or concern me. They are frequently
limited and almost useless. There is a certain set of
programming fields9categories that believe are
currently distinct enough to have an independent
programming language to represent them. 'ach is
however, narrow enough that there is no need for
more than one language.
Banguage ;ole "est *andidate
&cripting
%rogrammer6s scripting
"etter
&cheme (+DD)
2pplication
7evelopment

Bow#level *9*++
%ure 3unctional
*omplete *ore
&cripting
The most basic need of for scripting languages is
one which is simple to use because it will be used
by those with a minimum of programming
knowledge or in situations where cranking out code
which does the job is all the matters. 2n example of
where this language might be used by people with
more of a programming background is in web
scripting. 'xamples of languages that might fall into
this category are %$%, -ava&cript, %erl, and
%ython. @" could also be considered in this family
but it is too frequently used for application
development today.
There is currently no outstanding candidate
language for this category. When one is chosen
believe it should bare resemblance to the
2pplication development language but with more
bells and whistles to let one crank things out and
make it easier.
Programmer(s scripting
;eal programmers also often have a need for
scripting capabilities. $owever, they need a
language which is simple and complete. t must
never stand in there way as is all to often the case
with standard scripting languages. t must be able
to easily integrate into other languages.
"etter &cheme is an excellent language for use in
%rogrammer6s &cripting. t is simple, complete,
powerful and concise. n addition many
programmers are exposed to &cheme or Bisp
during their education and so are already familiar
with it. Dne thing which will most likely be needed is
a good extension to "etter &cheme which provides
solid support for object oriented programming
because "etter &cheme scripts will frequently need
to interact with objects created in other languages.
pplication #e!elopment
To develop applications a language is needed
which is complete and powerful but very safe. The
complexity of large application mandates a compile
time safe language. t should also be fairly high
level and object oriented. The only languages
which believe comes close to this today are 'iffel
and -ava.
There is currently no outstanding candidate
language for this category.
'o%)le!el
3or the purpose of operating systems and other low
level code we need a language that operates fast
and just above the machine level. Df course there
will always be occasion to slip into assembly but
that is by its nature machine specific and so not
considered here.
"oth * and *++ can be used for this. They provide
the low level power needed while giving a
reasonable level of safety and abstraction.
Pure *unctional
*ertain tasks can best be done working in a purely
function environment. 2nd these languages while
not as widely used today are in many ways so
distinct from others that it is important to keep there
legacy alive in the hopes that they may positively
influence more common languages. The only real
example of this today is $askell since languages
like =B are not purely functional.
There is currently no outstanding candidate
language for this category.
Complete Core
This language may never be used for real
programming but still think it would be important to
have in mind. t would be a core language which
the application, scripting and pure functional
languages could build on and modify. t would have
everything truly necessary and little more. Dne
might think that the lambda calculus would be a
minimal example of this. $owever, it makes no
provision for mutability which is clearly a key
concept to many languages. n addition the lambda
calculus has no concept of types, another important
feature of modern languages. The are no examples
of a complete core language today.
Lesson 2: Understanding Databasee
Terminology
A computer cannot process data unless it
is organized in special ways; into
characters, fields, records, files and
databases.
After reading this lesson, you should be
able to:
Define the key terms needed to
understand what a database is and
how it is used.
Identify the purpose and role of
characters in data processing.
Identify the purpose and role of
fields in data processing.
Identify the purpose and role of
records in data processing.
Identify the purpose and role of
database files in data processing.
Identify the purpose and role of
databases in data processing.
Identify the purpose and role of
data management systems in data
processing.
Identify the purpose and role of
keys in data processing.
Character
A character is the most basic element of
data that can be observed and
manipulated. ehind it are the invisible
data elements we call bits and bytes,
referring to physical storage elements
used by the computer hardware. A
character is a single symbol such as a
digit, letter, or other special character
!e.g., ", #, and $%.
Field
A field contains an item of data; that is,
a character, or group of characters that
are related. &or instance, a grouping of
related te't characters such as ()ohn
*mith( makes up a name in the name
field. +et,s look at another e'ample.
*uppose a political action group
advocating gun control in -ennsylvania is
compiling the names and addresses of
potential supporters for their new
mailing list. &or each person, they must
identify the name, address, city, state,
zip code and telephone number. A field
would be established for each type of
information in the list. .he name field
would contain all of the letters of the
first and last name. .he zip code field
would hold all of the digits of a person,s
zip code, and so on. In summary, a field
may contain an attribute !e.g., employee
salary% or the name of an entity !e.g.,
person, place, or event%.
Record
A record is composed of a group of
related fields. As another way of saying
it, a record contains a collection of
attributes related to an entity such as a
person or product. +ooking at the list of
potential gun control supporters, the
name, address, zip code and telephone
number of a single individual would
constitute a record. A payroll record
would contain the name, address, social
security number, and title of each
employee.
Database File
As we move up the ladder, a database
file is defined as a collection of related
records. A database file is sometimes
called a table. A file may be composed of
a complete list of individuals on a
mailing list, including their addresses
and telephone numbers. &iles are
fre/uently categorized by the purpose or
application for which they are intended.
*ome common e'amples include mailing
lists, /uality control files, inventory
files, or document files. &iles may also
be classified by the degree of
permanence they have. .ransition files
are only temporary, while master files
are much more long0lived.
Database
1rganizations and individuals use
databases to bring independent sources
of data together and store them
electronically. .hus, a database is
composed of related files that are
consolidated, organized and stored
together. 1ne collection of related files
might pertain to employee information.
Another collection of related files might
contain sports statistics.
1rganizations and individuals may have
and use many different databases,
depending on the nature of the work
involved. &or e'ample, a library
database might consist of several
related, but separate, databases
including book titles and author names,
book description, books on order, books
checked out, and similar sets of
information. 2ost organizations have
product information databases, customer
databases, and human resource
databases that contain information about
employees, salaries, home address, stock
purchase plans, and ta' deduction
information. In each case, the data
stored in a database is independent from
the application programs which use and
process the data.
Data Management System
Data management systems are used to
access and manipulate data in a
database. A database management
system is a software package that
enables users to edit, link, and update
files as needs dictate. Database
management systems will be discussed in
greater detail in another lesson.
Key
In order to track and analyze data
effectively, each record re/uires a
uni/ue identifier or what is called a key.
.he key must be completely uni/ue to a
particular record 3ust as each individual
has a uni/ue social security number
assigned to them. In fact, social security
numbers are often used as keys in large
databases. 4ou might think that the
name field would be a good choice for a
key in a mailing list. 5owever, this would
not be a good choice because some
people might have the same name. A key
must be identified or assigned to each
record for computerized information
processing to function correctly. An
e'isting field may be used if the entries
are entirely uni/ue, such as a social
security or telephone number. In most
cases, a new field will be developed to
hold a key, such as a customer number or
product number.
'esson +: n "ntrduction to #atabase Management
&ystems
2 database is a collection of related files that are usually
integrated, linked or cross#referenced to one another.
The advantage of a database is that data and records
contained in different files can be easily organized and
retrieved using specialized database management
software called a database management system
(7"=&) or database manager.
#,M& *undamentals
2 database management system is a set of software
programs that allows users to create, edit and update
data in database files, and store and retrieve data from
those database files. 7ata in a database can be added,
deleted, changed, sorted or searched all using a 7"=&.
f you were an employee in a large organization, the
information about you would likely be stored in different
files that are linked together. Dne file about you would
pertain to your skills and abilities, another file to your
income tax status, another to your home and office
address and telephone number, and another to your
annual performance ratings. "y cross#referencing these
files, someone could change a person6s address in one
file and it would automatically be reflected in all the other
files. 7"=&s are commonly used to manage8
=embership and subscription mailing lists
2ccounting and bookkeeping information
The data obtained from scientific research
*ustomer information
nventory information
%ersonal records
Bibrary information
#,M&s and *ile Management &ystems
*omputerized file management systems (sometimes
called file managers) are not considered true database
management systems because files cannot be easily
linked to each other. $owever, they can serve as useful
data management functions by providing a system for
storing information in files. 3or example, a file
management system might be used to store a mailing
list or a personal address book. When files need to be
linked, a relational database should be created using
database application software such as Dracle, =icrosoft
2ccess, "= 7"5, or 3ile=aker %ro.
-he d!antages of a #,M&
mproved availability8 Dne of the principle advantages of
a 7"=& is that the same information can be made
available to different users.
=inimized redundancy8 The data in a 7"=& is more
concise because, as a general rule, the information in it
appears just once. This reduces data redundancy, or in
other words, the need to repeat the same data over and
over again. =inimizing redundancy can therefore
significantly reduce the cost of storing information on
hard drives and other storage devices. n contrast, data
fields are commonly repeated in multiple files when a file
management system is used.
2ccuracy8 2ccurate, consistent, and up#to#date data is a
sign of data integrity. 7"=&s foster data integrity
because updates and changes to the data only have to
be made in one place. The chances of making a mistake
are higher if you are required to change the same data in
several different places than if you only have to make
the change in one place.
%rogram and file consistency8 1sing a database
management system, file formats and system programs
are standardized. This makes the data files easier to
maintain because the same rules and guidelines apply
across all types of data. The level of consistency across
files and programs also makes it easier to manage data
when multiple programmers are involved.
1ser#friendly8 7ata is easier to access and manipulate
with a 7"=& than without it. n most cases, 7"=&s also
reduce the reliance of individual users on computer
specialists to meet their data needs.
mproved security8 2s stated earlier, 7"=&s allow
multiple users to access the same data resources. This
capability is generally viewed as a benefit, but there are
potential risks for the organization. &ome sources of
information should be protected or secured and only
viewed by select individuals. Through the use of
passwords, database management systems can be
used to restrict data access to only those who should
see it.
-he #isad!antages of a #,M&
There are basically two major downsides to using
7"=&s. Dne of these is cost, and the other the threat to
data security.
*ost8 mplementing a 7"=& system can be expensive
and time#consuming, especially in large organizations.
Training requirements alone can be quite costly.
&ecurity8 'ven with safeguards in place, it may be
possible for some unauthorized users to access the
database. n general, database access is an all or
nothing proposition. Dnce an unauthorized user gets into
the database, they have access to all the files, not just a
few. 7epending on the nature of the data involved, these
breaches in security can also pose a threat to individual
privacy. &teps should also be taken to regularly make
backup copies of the database files and store them
because of the possibility of fires and earthquakes that
might destroy the system.
'esson .: -ypes of #atabase Management &ystems
7"=&s come in many shapes and sizes. 3or a few
hundred dollars, you can purchase a 7"=& for your
desktop computer. 3or larger computer systems, much
more expensive 7"=&s are required. =any mainframe#
based 7"=&s are leased by organizations. 7"=&s of
this scale are highly sophisticated and would be
extremely expensive to develop from scratch. Therefore,
it is cheaper for an organization to lease such a 7"=&
program than to develop it. &ince there are a variety of
7"=&s available, you should know some of the basic
features, as well as strengths and weaknesses, of the
major types.
-ypes of #,M&: /ierarchical #atabases
There are four structural types of database management
systems8 hierarchical, network, relational, and object#
oriented.
$ierarchical 7atabases (7"=&), commonly used on
mainframe computers, have been around for a long time.
t is one of the oldest methods of organizing and storing
data, and it is still used by some organizations for
making travel reservations. 2 hierarchical database is
organized in pyramid fashion, like the branches of a tree
extending downwards. ;elated fields or records are
grouped together so that there are higher#level records
and lower#level records, just like the parents in a family
tree sit above the subordinated children.
"ased on this analogy, the parent record at the top of the
pyramid is called the root record. 2 child record always
has only one parent record to which it is linked, just like
in a normal family tree. n contrast, a parent record may
have more than one child record linked to it. $ierarchical
databases work by moving from the top down. 2 record
search is conducted by starting at the top of the pyramid
and working down through the tree from parent to child
until the appropriate child record is found. 3urthermore,
each child can also be a parent with children underneath
it.
The advantage of hierarchical databases is that they can
be accessed and updated rapidly because the tree#like
structure and the relationships between records are
defined in advance. $owever, this feature is a two#edged
sword. The disadvantage of this type of database
structure is that each child in the tree may have only one
parent, and relationships or linkages between children
are not permitted, even if they make sense from a logical
standpoint. $ierarchical databases are so rigid in their
design that adding a new field or record requires that the
entire database be redefined.
-ypes of #,M&: Net%or0 #atabases
?etwork databases are similar to hierarchical databases
by also having a hierarchical structure. There are a few
key differences, however. nstead of looking like an
upside#down tree, a network database looks more like a
cobweb or interconnected network of records. n network
databases, children are called membersand parents are
called owners. The most important difference is that
each child or member can have more than one parent
(or owner).
Bike hierarchical databases, network databases are
principally used on mainframe computers. &ince more
connections can be made between different types of
data, network databases are considered more flexible.
$owever, two limitations must be considered when using
this kind of database. &imilar to hierarchical databases,
network databases must be defined in advance. There is
also a limit to the number of connections that can be
made between records.
-ypes of #,M&: Relational #atabases
n relational databases, the relationship between data
files is relational, not hierarchical. $ierarchical and
network databases require the user to pass down
through a hierarchy in order to access needed data.
;elational databases connect data in different files by
using common data elements or a key field. 7ata in
relational databases is stored in different tables, each
having a key field that uniquely identifies each row.
;elational databases are more flexible than either the
hierarchical or network database structures. n relational
databases, tables or files filled with data are
called relations, tuples designates a row or record, and
columns are referred to as attributes or fields.
;elational databases work on the principle that each
table has a key field that uniquely identifies each row,
and that these key fields can be used to connect one
table of data to another. Thus, one table might have a
row consisting of a customer account number as the key
field along with address and telephone number. The
customer account number in this table could be linked to
another table of data that also includes customer
account number (a key field), but in this case, contains
information about product returns, including an item
number (another key field). This key field can be linked
to another table that contains item numbers and other
product information such as production location, color,
quality control person, and other data. Therefore, using
this database, customer information can be linked to
specific product information.
The relational database has become quite popular for
two major reasons. 3irst, relational databases can be
used with little or no training. &econd, database entries
can be modified without redefining the entire structure.
The downside of using a relational database is that
searching for data can take more time than if other
methods are used.
-ypes of #,M&: 1b2ect)oriented #atabases
311#,M&4
2ble to handle many new data types, including graphics,
photographs, audio, and video, object#oriented
databases represent a significant advance over their
other database cousins. $ierarchical and network
databases are all designed to handle structured dataC
that is, data that fits nicely into fields, rows, and columns.
They are useful for handling small snippets of
information such as names, addresses, zip codes,
product numbers, and any kind of statistic or number you
can think of. Dn the other hand, an object#oriented
database can be used to store data from a variety of
media sources, such as photographs and text, and
produce work, as output, in a multimedia format.
Dbject#oriented databases use small, reusable chunks of
software called objects. The objects themselves are
stored in the object#oriented database. 'ach object
consists of two elements8 /) a piece of data (e.g., sound,
video, text, or graphics), and 5) the instructions, or
software programs called methods, for what to do with
the data. %art two of this definition requires a little more
explanation. The instructions contained within the object
are used to do something with the data in the object. 3or
example, test scores would be within the object as would
the instructions for calculating average test score.
Dbject#oriented databases have two disadvantages.
3irst, they are more costly to develop. &econd, most
organizations are reluctant to abandon or convert from
those databases that they have already invested money
in developing and implementing. $owever, the benefits
to object#oriented databases are compelling. The ability
to mix and match reusable objects provides incredible
multimedia capability. $ealthcare organizations, for
example, can store, track, and recall *2T scans, F#rays,
electrocardiograms and many other forms of crucial
data.
Dne of the most influential and widely spread open
source database applications that manipulates large
databases and can be accessed over the Web is =y&EB
database server.
=y&EB runs as a service providing multiple user
access to several databases. =y&EB is popular for web
applications and operates with the database elements
for the platforms (Binux9"&79=ac9Windows).
=y&EB popularity for use with web applications is
closely associated to the popularity of %$% programming
language which is often used along with =y&EB. =any
high#traffic web sites use =y&EB as the backend for its
data warehouse. =y&EB is very popular with startup
companies, small or medium businesses and projects
because it can be easy to use at a low cost. n case
when high speed reads are applied for web, gaming and
medium or small data storages =y&EB surpasses all the
other database management systems.
=icrosoft &EB &erver designed to create web,
enterprise, and desktop database systems. t is used
with various goals and at different levels.
=& &EB &erver allows you to store large amount of data
which handles components like video, photographs,
numbers, text, and much more. =icrosoft &EB &erver is
developed to manage terra bytes of data in comparison
with =icrosoft 2ccess that can handle only / gigabyte of
data.
=icrosoft Dffice 2ccess combines software
development tools and the relational =icrosoft -et
7atabase 'ngine with easy#to#use :1.
=& 2ccess is an ideal solution for start level users as
they have the ability to create database structures and
relations.
=& 2ccess can be used by small businesses, within
branches of large corporations, and by pastime
programmers to design special customized desktop
systems for manipulating the creation and management
of data.
=icrosoft 2ccess databases have certainly become very
popular due to its key advantage to build a software
system to manage a range of services very quickly.
=icrosoft @isual 3ox%ro, generally abbreviated
as @3%, is closely integrated with its own relational
database engine, which broadens 3ox%ro6s x"ase
capabilities to maintain &EB inquiry and data
manipulation. 1nlike most 7"=&s, @isual 3ox%ro is a
full#function, dynamic programming language that does
not demand the use of an additional universal
programming environment. t can be used to write not
just conventional !thick client! applications, but also web
application programs and middleware. &ince 5GGH
=icrosoft renounced updating 3ox%ro therefore recently
data is usually converted in one#way direction from
3ox%ro into the other 7"=&s.
%ostgre&EB is a relational 7"=& that many
web application developers prefer as the back#end data
management component. t6s principally used by many
distinguished organizations applying it for mission critical
or wide#ranging applications. The .info and .org domain
name registries use it as their primary data store, so do
many financial institutions and large companies.
2lthough %ostgre&EB is not the right choice for every
project but its advanced feature set and key advantages
such as open source community support, very low
deployment cost, and easy administration make it the
great choice for those who use it for database driven
website development.
&EBite is a small * library that performs a
standalone, embeddable, zero#configuration &EB
database engine. This database engine provides a rapid
and easy method to work with flat file databases. The
&EBite engine is not a self#contained process with which
the program connects. 1nlike server database
management systems, the &EBite is an integral part of
the program.
&EBite is an ideal solution in situations where
implementation, maintenance, and simplicity of
administration are more significant than the innumerable
complex features that enterprise database engines
provide.
&EBite database is an alternative solution instead of
fopen() to write F=B or some proprietary format into disk
files used by your application. &EBite is a right choice as
the database for small and mid#sized websites. 1sage of
&EBite as the database engine in =%I players,
cellphones, %72s, and other electronic gadgets is also a
reasonable decision. &EBite is often used as a substitute
for an enterprise ;7"=& for displaying purposes or for
testing.
3irebird is a fully featured and powerful ;7"=&
despite of its installer size. t can manipulate databases
from only a few kilobytes to many gigabytes with good
execution and almost free support. t6s equally suitable
both for commercial and open source applications.
3irebird6s ability to run completely automated without any
administrative necessity makes it ideal for distributing
databases and applications. t offers practically every
common feature accessible in high#performance
databases without any significant influence on
accomplishment and able to operate well with such
open#source tools as %$% and %erl.
Dracle is one of the leading commercial &EB
relational database management systems. t is available
in a variety of configurations from small personal
versions to fail#safe, enterprise#class versions.
Dracle offers lots of feature and functionality for solving
complicated problems that6s why it excels in 3ortune
/GG, medium and large enterprise business applications
and warehouses. This powerful system requires lots of
deep knowledge and skill to handle large environments.

Das könnte Ihnen auch gefallen