Hi fahd-ga :
Being a database designer and programmer myself, I have prepared the
answers to your questions :
==== What is a database in detail? ====
database - a searchDatabase definition
http://searchdatabase.techtarget.com/sDefinition/0,,sid13_gci211895,00.html
"A database is a collection of data that is organized so that its
contents can easily be accessed, managed, and updated. The most
prevalent type of database is the relational database, a tabular
database in which data is defined so that it can be reorganized and
accessed in a number of different ways. A distributed database is one
that can be dispersed or replicated among different points in a
network. An object-oriented programming database is one that is
congruent with the data defined in object classes and subclasses."
"Databases contain aggregations of data records or files, such as
sales transactions, product catalogs and inventories, and customer
profiles. Typically, a database manager provides users the
capabilities of controlling read/write access, specifying report
generation, and analyzing usage. Databases and database managers are
prevalent in large mainframe systems, but are also present in smaller
distributed workstation and mid-range systems such as the AS/400 and
on personal computers. Structured Query Language is a standard
language for making interactive queries from and updating a database
such as IBM's DB2, Microsoft's Access, and database products from
Oracle, Sybase, and Computer Associates."
==== How do I ask the database a question? ====
The way you ask a database a question is by writing what is known as a
"query". Queries are usually written in SQL (Structured Query
Language).
Please go here for more information about SQL :
SQL Introduction
http://www.w3schools.com/sql/sql_intro.asp
Introduction to SQL
http://www.free-ed.net/fr03/lfc/030101/121/
==== What database concept am I talking about when I say "The key the
whole key and nothing but the key," and define why this concept is
needed? ====
This concept refers to the practice of refering to another record by
its unique identifier, the "primary key", or just "key", and not by
any other information. For example, in a large names database, there
may be several John Smiths, so instead of asking the database to bring
up records using the name John Smith, we specify the unique key. It's
like an address. Primary keys are automatically assigned to each newly
added record, and are usually numeric.
==== How is an Object Oriented database different than a relational
database? ====
"Relational database" refers to a database that uses tables
representing conceptual entities (for example, Customer, Product,
Transaction, Vendor). There are tables that keep track of the
characteristics of each entity, and tables that track the
relationships between entities. Relational databases are the most
popular type of database today.
To understand an Object Oriented database, we first need to understand
Object Oriented Programming:
object-oriented programming - a searchWin2000 definition - see also
OOP, object-oriented
http://searchwin2000.techtarget.com/sDefinition/0,,sid1_gci212681,00.html
"A revolutionary concept that changed the rules in computer program
development, object-oriented programming (OOP) is organized around
"objects" rather than "actions," data rather than logic. Historically,
a program has been viewed as a logical procedure that takes input
data, processes it, and produces output data. The programming
challenge was seen as how to write the logic, not how to define the
data. Object-oriented programming takes the view that what we really
care about are the objects we want to manipulate rather than the logic
required to manipulate them. Examples of objects range from human
beings (described by name, address, and so forth) to buildings and
floors (whose properties can be described and managed) down to the
little widgets on your computer desktop (such as buttons and scroll
bars)."
An Object-Oriented database is defined as follows :
Object [Oriented] Database vs_ Object-Relational Databases
http://www.cai.com/products/jasmine/analyst/idc/14821E.htm#BKMTOC11
"Object databases combine the elements of object orientation and
object-oriented programming languages with database capabilities. They
provide more than persistent storage of programming language objects.
Object databases extend the functionality of object programming
languages (e.g., C++, Smalltalk, Java) to provide full-featured
database programming capability. The result is a high level of
congruence between the data model for the application and the data
model of the database, resulting in less code (25% to 35% less), more
natural data structures, and better maintainability and reusability of
code. C++, Java, and Smalltalk programmers can write complete database
applications with a modest amount of additional effort."
==== Why is the design of database so important to get as close as
possible at the start of the project? ====
The goal of a database is to mirror reality as accurately as possible.
Like building a house, one must ensure a solid, faultless foundation
so that the rest of the structure, down to the finest details, can be
built in a systematic and orderly fashion. Once the foundation is set,
and the database is in use, this "structure" (database design) will be
filled by the bricks (data) and any changes to be made to the design
will be either very difficult, time-consuming or expensive. Therefore,
any database should be designed will correct principles in mind. These
principles are often taught in many database design courses and employ
a wide variety of models and techniques. One of the most popular is
the E-R diagram (entity-relational diagram).
Consider the following links on database design :
Introduction to Database Design
http://www.schools.ash.org.au/olshc/infotech/dbdesign.htm
Relational Database Design Resource Center
http://support.microsoft.com/default.aspx?scid=/support/access/content/reldesign.asp
Database design Tutorial
http://www.creativeprogrammers.com/article/rd.php/database-design-tutorial-54-1.html
Database Tutorials
http://www.geekgirls.com/menu_databases.htm
Google Search Terms :
introduction SQL
://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=introduction+SQL
object oriented database definition
://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=object+oriented+database+definition
introduction database design
://www.google.com/search?q=introduction+database+design&hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&start=20&sa=N
Hope that answers your question, and have fun with databases! I love
designing and working with them.
Regards,
kyrie26-ga |