aaitgreen.gif (2598 bytes)  

line.gif (2401 bytes)

DATABASE

line.gif (2401 bytes)

[1.1] Modern Data Warehousing, Mining, and Visualization, 1/e   George M. Marakas   

line.gif (2401 bytes)

[1.2] Database Concepts, 2/e  Kroenke  David M. Kroenke  ISBN: 0-13-145141-3 Publisher: Prentice Hall Copyright: 2005 Format: Paper; 256 pp

line.gif (2401 bytes)

[1.3] Database Processing: Fundamentals, Design, and Implementation, 10/E  David Kroenke, University of Washington  ISBN: 0-13-167267-3 Publisher: Prentice Hall
Copyright: 2006 Format: Cloth; 696 pp

line.gif (2401 bytes)

[1.4] Modern Database Management, 7/E    Jeffrey A. Hoffer, University of Dayton
Mary Prescott, University of Tampa Fred McFadden, University of Colorado, Colorado Springs  ISBN: 0-13-145320-3  Publisher: Prentice Hall  Copyright: 2005  Format: Paper; 736 pp

line.gif (2401 bytes)

[1.5] Database Design, Application, Development & Administration, 3/e  Michael V. Mannino, University of Colorado - Denver   ISBN: 0072942207  Copyright year: 2007

line.gif (2401 bytes)

[1.6] Database Management Systems-Designing & Building Business Applications, 3rd Edition Gerald V Post, UNIV OF THE PACIFIC  Copyright year: 2005  Hardcover,  512 pages ISBN-13 9780072973129

line.gif (2401 bytes)

[1.7] Introduction to Oracle 10G & Database CD Package

James T. Perry, University of San Diego
Gerald V. Post, University of the Pacific
Publisher: Prentice Hall
Copyright: 2007
Format: Kit/Package/ShrinkWrap

ISBN-10: 0131746006  
ISBN-13: 9780131746008
Description

Description

For the introduction to database or an advanced database course where the instructor wants to feature Oracle.

 

Students need a big-picture introduction to Oracle and they need specific examples and steps.  This concise book covers all of the topics students need in a first class by using step-by-step techniques with a rich set of databases to provide students with practical experience – all in one book.

 

 

Table of Contents

Chapter 1      Introduction to Relational Database Systems and Oracle 10g

 

Chapter 2      Overview of SQL and SQL*Plus

 

Chapter 3      Creating, Modifying, Renaming, and Deleting Database Tables

 

Chapter 4      Modifying Data and Auditing Table Operations

 

Chapter 5      Querying a Database

 

Chapter 6      Creating Multitable Queries and Views

 

Chapter 7      Using PL/SQL to Your Advantage

 

Chapter 8      Understanding and Using Forms Builder

 

Chapter 9        Customizing Forms

 

Chapter 10    Creating and Modifying Reports

 

Chapter 11    Building an Integrated Application

 

Chapter 12    Maintaining Database Security

 

Chapter 13    Database Administration

 

Features

Students need a big-picture introduction to Oracle and they need specific examples and steps.  This concise book covers all of the topics students need in a first class by using step-by-step techniques with a rich set of databases to provide students with practical experience — all in one book. 

How do you expose students to real life database situations? Do you cover cases? Would you be interested in running cases that give step-by-step guidance?

   •  4 Step-By-Step, Hands-on Cases Using Oracle to Problem Solve
         -
  Redwood Reality, Coffee Merchant, Rowing Ventures, Broadcloth Clothing
            -  Problems progress in level of difficulty
                   o First two problems provide students with step-by-step guidance, whereas third and fourth problems provide a case but no steps.

OTHER POINTS OF DIFFERENTIATION:

Do you cover security issues in your course?

  • Entire chapter on security issues in building Oracle applications.

 Do you cover application development?

  • Oracle is encouraging developers to move to its new JDeveloper tool and application development framework for building Web-accessible forms. This book contains a detailed section that shows students how to build interactive forms using these new tools.
  • Better Coverage and explanation of forms, reports, and applications in Oracle10g


End of Chapter Material Includes:

 Do you want students to have review questions to test their understanding of the content?
   •  Set of review questions at the end of each chapter includes:
          -  True/False Questions
          -  Fill-In Questions
          -  Multiple Choice Questions

Companion Website

 

Table of Contents
Introduction to Oracle 10g, 1/e


 
level 0 indent Collapse nested items Chapter 1: Introduction to Relational Database Systems and Oracle 10g
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations      Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 2: Overview of SQL and SQL*Plus
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations     Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 3: Creating, Modifying, Renaming, and Deleting Database Tables
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations       Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 4: Modifying Data and Auditing Table Operations
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations           Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 5: Querying a Database
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations           Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 6: Creating Multitable Queries and Views
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations               Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 7: Using PL/SQL to Your Advantage
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 8: Understanding and Using Forms Builder
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 9: Customizing Forms
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                      Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 10: Creating and Modifying Reports
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                 Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 11: Building an Integrated Application
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations               Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 12: Maintaining Database Security
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                Our Server
 
 
level 1 indent Bullet Student Data Files
 
 
level 0 indent Collapse nested items Chapter 13: Database Administration
 
 
level 1 indent Bullet Objectives
 
 
level 1 indent Bullet PowerPoint Presentations                Our Server
 
 
level 1 indent Bullet Student Data Files

 

line.gif (2401 bytes)

 

[1.8] Oracle SQL Bijoy Bordoloi, Southern Illinois University, Edwardsville
Douglas B. Bock, Southern Illinois University, Edwardsville ISBN: 0-13-101138-3 Publisher: Prentice Hall Copyright: 2004 Format: Paper; 368 pp

 

line.gif (2401 bytes)


[1.9] Oracle Database in 2 days, the whole book on our server

line.gif (2401 bytes)

 

[1.10] SAP R3 Handbook, the whole book on our server

 

line.gif (2401 bytes)

 

[1.11]

 

Database Concepts, 3/E

David Kroenke, University of Washington
David Auer, Western Washington University
Publisher: Prentice Hall
Copyright: 2008
Format: Paper; 448 pp

ISBN-10: 0131986252  
ISBN-13: 9780131986251
Description

Description

Appropriate for all introductory courses or brief courses on database development and management, as well as database courses designed around specific database products such as Microsoft Access, SQL Server, or MySQL.

 

Written by one of the world's leading database authorities, Database Concepts 3e, introduces the essential concepts students need to create and use small databases. 

Table of Contents

Table of Contents

Table of Contents

 

Part I. Fundamentals

1. Getting Started

Why Use a Database? Problems with Lists.  Using Relational Database Tables. Processing the Relational Tables. What is a Database System?

The Access Workbench I

 

2. The Relational Model

Relations. Types of Keys. The Problem of Null Values. Functional Dependencies and Normalization. The Access Workbench II

 

3.  Structured Query Language

An Example Database. "Does Not Work With MS Access SQL". SQL for Data Definition. SQL for Inserting Relational Data. SQL for Relational Query. SQL for Relational Data Modification and Deletion. SQL for Table and Constraint Modification and Deletion. SQL Views. The Access Workbench III

 

Part II. Database Design and Management

4. Data Modeling and the Entity-Relationship Model

The Requirements Stage. The Entity-Relationship Data Model. Entity-Relationship Diagrams. In-Dependent Entities. Recursive Relationships. Developing an Example E-R Diagram. The Access Workbench IV 

 

5. Database Design

Transforming a Data Model into a Database Design. Representing Entities with the Relational Model. Representing Relationships. Database Design at Heather Sweeney Designs. The Access Workbench V

 

6.  Advanced Topics

The Heather Sweeney Design Database. The Need for Control, Security, and Reliability. Concurrency Control. Database Security. Database Backup and Recovery. Additional DBA Responsibilities. Distributed Database Processing. Object-Relational Databases. The Access Workbench VI

 

7. Database Administration

The Database Processing Environment. Queries, Forms, and Reports. Client/Server and Traditional Applicaiton Processing. Stored Procedures and Triggers. Web Database Processing. Database Processing and XML. Business Intelligence Systems. The Access Workbench VII

 

Appendix A. Getting Started with Microsoft SQL Server 2005 Express Edition

Appendix B. Getting Started with MySQL

Appendix C. SQL Views

Features

Features

 

Written by one of the world's leading database authorities, Database Concepts 3e, introduces the essential concepts students need to create and use small databases. 

 

 

Do you emphasize concepts first and then the tools available?

 

  • Conceptual Standpoint- Teaching Concepts Independent of DBMS Products illustrates database concepts with Microsoft Access, SQL Server 2005 Express edition, and MySQL 5.0. Students can use these products as tools, but all concepts are presented in a DMBS-agnostic manner.
    • Pg.

Do you use Access with your students?

  • Access WorkBench sections are included in each chapter to illustrate concepts and techniques using Access. The Access Workbench topics start with creating a database and a single table in Section one and end with Web database processing against an Access database in Section Seven. All necessary basics are included so students can effectively build and use Access databases. 
    • Pg.

Do you assign cases?

  • Start-to-finish running cases teach key database concepts through real-world scenarios and case studies, with all sample databases downloadable from the companion Web site. This enables students to understand the real-world challenges they will face in designing, developing, and managing databases. 
     

    • Pg.

Do you assign a variety of questions, exercises and projects for homework?

  • Review Questions, Exercises, and Projects – Each chapter concludes with review questions, exercises and three projects (Garden Glory, James River Jewelry, Queen Anne Curiosity Shop) that run throughout the book.
    • Pg.

New To This Edition

New To This Edition
 

 

Major changes:

  • Coverage of SQL views (Appendix C)
  • Coverage of subtype/supertype entities (Chapters 4 & 5)
  • Coverage of associative entities and asssociation relationships (Ch. 5)
  • Use of IE Crow's Foot E-R Diagrams instead of UML E-R models for ease of use and consistency with Database Processing (Ch. 4 and following)
  • Rearrangement of the topics in Ch. 6 & 7- Distributed Database and Object-Relational Databases are covered as part of Database Administration in Ch. 6
  • Additional coverage of Web based database processing including specific steps and code examples to create Web pages that display data stored in databases (Ch. 7)
  • Coverage of concepts of Business Intelligence (BI) systems (Ch. 7)
  • The use of the Access Workbench sections in each chapter and Appendix C to provide coverage of Access fundamentals
  • Introduction to the use of SQL Server 2005 Express Edition (Appendix A) and MySQL 5.0 (Appendix B)
  • Three example databases that run throughout various portions of the book (The Wedgewood Pacific Corporation and Heather Sweeny Design in the chapters, and Wallingford Motors in the Access Workbench sections- are fully developed with example datasets. 

 

Companion Website

 

line.gif (2401 bytes)

[1.12] 

 

Database

From Wikipedia, the free encyclopedia

(Redirected from Databases)
Jump to: navigation, search

The term or expression database originated within the computer industry. Although its meaning has been broadened by popular use, even to include non-electronic databases, this article takes a more technical perspective towards the topic. A possible definition is that a database is a structured collection of records or data which is stored in a computer so that a program can consult it to answer queries. The records retrieved in answer to queries become information that can be used to make decisions. The computer program used to manage and query a database is known as a database management system (DBMS). The properties and design of database systems are included in the study of information science.

The central concept of a database is that of a collection of records, or pieces of knowledge. Typically, for a given database, there is a structural description of the type of facts held in that database: this description is known as a schema. The schema describes the objects that are represented in the database, and the relationships among them. There are a number of different ways of organizing a schema, that is, of modelling the database structure: these are known as database models (or data models). The model in most common use today is the relational model, which in layman's terms represents all information in the form of multiple related tables each consisting of rows and columns (the true definition uses mathematical terminology). This model represents relationships by the use of values common to more than one table. Other models such as the hierarchical model and the network model use a more explicit representation of relationships.

The term database refers to the collection of related records, and the software should be referred to as the database management system or DBMS. When the context is unambiguous, however, many database administrators and programmers use the term database to cover both meanings.

Many professionals would consider a collection of data to constitute a database only if it has certain properties: for example, if the data is managed to ensure its integrity and quality, if it allows shared access by a community of users, if it has a schema, or if it supports a query language. However, there is no agreed definition of these properties.

Database management systems are usually categorized according to the data model that they support: relational, object-relational, network, and so on. The data model will tend to determine the query languages that are available to access the database. A great deal of the internal engineering of a DBMS, however, is independent of the data model, and is concerned with managing factors such as performance, concurrency, integrity, and recovery from hardware failures. In these areas there are large differences between products.

History

The earliest known use of the term 'data base' was in June 1963, when the System Development Corporation sponsored a symposium under the title Development and Management of a Computer-centered Data Base. Database as a single word became common in Europe in the early 1970s and by the end of the decade it was being used in major American newspapers. (Databank, a comparable term, had been used in the Washington Post newspaper as early as 1966.

The first database management systems were developed in the 1960s. A pioneer in the field was Charles Bachman. Bachman's early papers show that his aim was to make more effective use of the new direct access storage devices becoming available: until then, data processing had been based on punched cards and magnetic tape, so that serial processing was the dominant activity. Two key data models arose at this time: CODASYL developed the network model based on Bachman's ideas, and (apparently independently) the hierarchical model was used in a system developed by North American Rockwell, later adopted by IBM as the cornerstone of their IMS product.

The relational model was proposed by E. F. Codd in 1970. He criticized existing models for confusing the abstract description of information structure with descriptions of physical access mechanisms. For a long while, however, the relational model remained of academic interest only. While CODASYL systems and IMS were conceived as practical engineering solutions taking account of the technology as it existed at the time, the relational model took a much more theoretical perspective, arguing (correctly) that hardware and software technology would catch up in time. Among the first implementations were Michael Stonebraker's Ingres at Berkeley, and the System R project at IBM. Both of these were research prototypes, announced during 1976. The first commercial products, Oracle and DB2, did not appear until around 1980. The first successful database product for microcomputers was dBASE for the CP/M and PC-DOS/MS-DOS operating systems.

During the 1980s, research activity focused on distributed database systems and database machines, but these developments had little effect on the market. Another important theoretical idea was the Functional Data Model, but apart from some specialized applications in genetics, molecular biology, and fraud investigation, the world took little notice.

In the 1990s, attention shifted to object-oriented databases. These had some success in fields where it was necessary to handle more complex data than relational systems could easily cope with, such as spatial databases, engineering data (including software engineering repositories), and multimedia data. Some of these ideas were adopted by the relational vendors, who integrated new features into their products as a result.

In the 2000s, the fashionable area for innovation is the XML database. As with object databases, this has spawned a new collection of startup companies, but at the same time the key ideas are being integrated into the established relational products. XML databases aim to remove the traditional divide between documents and data, allowing all of an organization's information resources to be held in one place, whether they are highly structured or not.

 

Database models

Various techniques are used to model data structure. Most database systems are built around one particular data model, although it is increasingly common for products to offer support for more than one model. For any one logical model various physical implementations may be possible, and most products will offer the user some level of control in tuning the physical implementation, since the choices that are made have a significant effect on performance. An example of this is the relational model: all serious implementations of the relational model allow the creation of indexes which provide fast access to rows in a table if the values of certain columns are known.

A data model is not just a way of structuring data: it also defines a set of operations that can be performed on the data. The relational model, for example, defines operations such as select, project, and join. Although these operations may not be explicit in a particular query language, they provide the foundation on which a query language is built.

 

Flat model

This may not strictly qualify as a data model, as defined above. The flat (or table) model consists of a single, two-dimensional array of data elements, where all members of a given column are assumed to be similar values, and all members of a row are assumed to be related to one another. For instance, columns for name and password that might be used as a part of a system security database. Each row would have the specific password associated with an individual user. Columns of the table often have a type associated with them, defining them as character data, date or time information, integers, or floating point numbers. This model is, incidentally, a basis of the spreadsheet.

Hierarchical model

In a hierarchical model, data is organized into a tree-like structure, implying a single upward link in each record to describe the nesting, and a sort field to keep the records in a particular order in each same-level list. Hierarchical structures were widely used in the early mainframe database management systems, such as the Information Management System (IMS) by IBM, and now describe the structure of XML documents. This structure allows one 1:N relationship between two types of data. This structure is very efficient to describe many relationships in the real world; recipes, table of contents, ordering of paragraphs/verses, any nested and sorted information. However, the hierarchical structure is inefficient for certain database operations when a full path (as opposed to upward link and sort field) is not also included for each record.

Network model

The network model (defined by the CODASYL specification) organizes data using two fundamental constructs, called records and sets. Records contain fields (which may be organized hierarchically, as in the programming language COBOL). Sets (not to be confused with mathematical sets) define one-to-many relationships between records: one owner, many members. A record may be an owner in any number of sets, and a member in any number of sets.

The operations of the network model are navigational in style: a program maintains a current position, and navigates from one record to another by following the relationships in which the record participates. Records can also be located by supplying key values.

Although it is not an essential feature of the model, network databases generally implement the set relationships by means of pointers that directly address the location of a record on disk. This gives excellent retrieval performance, at the expense of operations such as database loading and reorganization.

Relational model

The relational model was introduced in an academic paper by E. F. Codd in 1970 as a way to make database management systems more independent of any particular application. It is a mathematical model defined in terms of predicate logic and set theory.

The products that are generally referred to as relational databases in fact implement a model that is only an approximation to the mathematical model defined by Codd. Three key terms are used extensively in relational database models: relations, attributes, and domains. A relation is a table with columns and rows. The named columns of the relation are called attributes, and the domain is the set of values the attributes are allowed to take.

The basic data structure of the relational model is the table, where information about a particular entity (say, an employee) is represented in columns and rows (also called tuples). Thus, the "relation" in "relational database" refers to the various tables in the database; a relation is a set of tuples. The columns enumerate the various attributes of the entity (the employee's name, address or phone number, for example), and a row is an actual instance of the entity (a specific employee) that is represented by the relation. As a result, each tuple of the employee table represents various attributes of a single employee.

All relations (and, thus, tables) in a relational database have to adhere to some basic rules to qualify as relations. First, the ordering of columns is immaterial in a table. Second, there can't be identical tuples or rows in a table. And third, each tuple will contain a single value for each of its attributes.

A relational database contains multiple tables, each similar to the one in the "flat" database model. One of the strengths of the relational model is that, in principle, any value occurring in two different records (belonging to the same table or to different tables), implies a relationship among those two records. Yet, in order to enforce explicit integrity constraints, relationships between records in tables can also be defined explicitly, by identifying or non-identifying parent-child relationships characterized by assigning cardinality (1:1, (0)1:M, M:M). Tables can also have a designated single attribute or a set of attributes that can act as a "key", which can be used to uniquely identify each tuple in the table.

A key that can be used to uniquely identify a row in a table is called a primary key. Keys are commonly used to join or combine data from two or more tables. For example, an Employee table may contain a column named Location which contains a value that matches the key of a Location table. Keys are also critical in the creation of indexes, which facilitate fast retrieval of data from large tables. Any column can be a key, or multiple columns can be grouped together into a compound key. It is not necessary to define all the keys in advance; a column can be used as a key even if it was not originally intended to be one.

A key that has an external, real-world meaning (such as a person's name, a book's ISBN, or a car's serial number) is sometimes called a "natural" key. If no natural key is suitable (think of the many people named Brown), an arbitrary or surrogate key can be assigned (such as by giving employees ID numbers). In practice, most databases have both generated and natural keys, because generated keys can be used internally to create links between rows that cannot break, while natural keys can be used, less reliably, for searches and for integration with other databases. (For example, records in two independently developed databases could be matched up by social security number, except when the social security numbers are incorrect, missing, or have changed.)

Relational operations

Users (or programs) request data from a relational database by sending it a query that is written in a special language, usually a dialect of SQL. Although SQL was originally intended for end-users, it is much more common for SQL queries to be embedded into software that provides an easier user interface. Many web sites, such as Wikipedia, perform SQL queries when generating pages.

In response to a query, the database returns a result set, which is just a list of rows containing the answers. The simplest query is just to return all the rows from a table, but more often, the rows are filtered in some way to return just the answer wanted.

Often, data from multiple tables are combined into one, by doing a join. Conceptually, this is done by taking all possible combinations of rows (the Cartesian product), and then filtering out everything except the answer. In practice, relational database management systems rewrite ("optimize") queries to perform faster, using a variety of techniques.

There are a number of relational operations in addition to join. These include project (the process of eliminating some of the columns), restrict (the process of eliminating some of the rows), union (a way of combining two tables with similar structures), difference (which lists the rows in one table that are not found in the other), intersect (which lists the rows found in both tables), and product (mentioned above, which combines each row of one table with each row of the other). Depending on which other sources you consult, there are a number of other operators - many of which can be defined in terms of those listed above. These include semi-join, outer operators such as outer join and outer union, and various forms of division. Then there are operators to rename columns, and summarizing or aggregating operators, and if you permit relation values as attributes (RVA - relation-valued attribute), then operators such as group and ungroup. The SELECT statement in SQL serves to handle all of these except for the group and ungroup operators.

The flexibility of relational databases allows programmers to write queries that were not anticipated by the database designers. As a result, relational databases can be used by multiple applications in ways the original designers did not foresee, which is especially important for databases that might be used for decades. This has made the idea and implementation of relational databases very popular with businesses.

Dimensional model

The dimensional model is a specialized adaptation of the relational model used to represent data in data warehouses in a way that data can be easily summarized using OLAP queries. In the dimensional model, a database consists of a single large table of facts that are described using dimensions and measures. A dimension provides the context of a fact (such as who participated, when and where it happened, and its type) and is used in queries to group related facts together. Dimensions tend to be discrete and are often hierarchical; for example, the location might include the building, state, and country. A measure is a quantity describing the fact, such as revenue. It's important that measures can be meaningfully aggregated - for example, the revenue from different locations can be added together.

In an OLAP query, dimensions are chosen and the facts are grouped and added together to create a summary.

The dimensional model is often implemented on top of the relational model using a star schema, consisting of one table containing the facts and surrounding tables containing the dimensions. Particularly complicated dimensions might be represented using multiple tables, resulting in a snowflake schema.

A data warehouse can contain multiple star schemas that share dimension tables, allowing them to be used together. Coming up with a standard set of dimensions is an important part of dimensional modeling.

Object database models

In recent years, the object-oriented paradigm has been applied to database technology, creating a new programming model known as object databases. These databases attempt to bring the database world and the application programming world closer together, in particular by ensuring that the database uses the same type system as the application program. This aims to avoid the overhead (sometimes referred to as the impedance mismatch) of converting information between its representation in the database (for example as rows in tables) and its representation in the application program (typically as objects). At the same time object databases attempt to introduce the key ideas of object programming, such as encapsulation and polymorphism, into the world of databases.

A variety of these ways have been tried for storing objects in a database. Some products have approached the problem from the application programming end, by making the objects manipulated by the program persistent. This also typically requires the addition of some kind of query language, since conventional programming languages do not have the ability to find objects based on their information content. Others have attacked the problem from the database end, by defining an object-oriented data model for the database, and defining a database programming language that allows full programming capabilities as well as traditional query facilities.

Object databases suffered because of a lack of standardization: although standards were defined by ODMG, they were never implemented well enough to ensure interoperability between products. Nevertheless, object databases have been used successfully in many applications: usually specialized applications such as engineering databases or molecular biology databases rather than mainstream commercial data processing. However, object database ideas were picked up by the relational vendors and influenced extensions made to these products and indeed to the SQL language.

 

Database internals

 

Indexing

All of these kinds of database can take advantage of indexing to increase their speed, and this technology has advanced tremendously since its early uses in the 1960s and 1970s. The most common kind of index is a sorted list of the contents of some particular table column, with pointers to the row associated with the value. An index allows a set of table rows matching some criterion to be located quickly. Various methods of indexing are commonly used; B-trees, hashes, and linked lists are all common indexing techniques.

Relational DBMSs have the advantage that indexes can be created or dropped without changing existing applications making use of it. The database chooses between many different strategies based on which one it estimates will run the fastest. In other words, indexes are transparent to the application or end user querying the database; while they affect performance, any SQL command will run with or without indexes existing in the database.

Relational DBMSs utilize many different algorithms to compute the result of an SQL statement. The RDBMS will produce a plan of how to execute the query, which is generated by analyzing the run times of the different algorithms and selecting the quickest. Some of the key algorithms that deal with joins are Nested Loops Join, Sort-Merge Join and Hash Join. Which of these is chosen depends on whether an index exists, what type it is, and its cardinality. Relational DBMSs utilize many different algorithms to compute the result of an SQL statement. The RDBMS will produce a plan of how to execute the query, which is generated by analyzing the run times of the different algorithms and selecting the quickest. Some of the key algorithms that deal with joins are Nested Loops Join, Sort-Merge Join and Hash Join. Which of these is chosen depends on whether an index exists, what type it is, and its cardinality.

 

Transactions and concurrency

In addition to their data model, most practical databases ("transactional databases") attempt to enforce a database transaction . Ideally, the database software should enforce the ACID rules, summarized here:

  • Atomicity: Either all the tasks in a transaction must be done, or none of them. The transaction must be completed, or else it must be undone (rolled back).
  • Consistency: Every transaction must preserve the integrity constraints — the declared consistency rules — of the database. It cannot place the data in a contradictory state.
  • Isolation: Two simultaneous transactions cannot interfere with one another. Intermediate results within a transaction are not visible to other transactions.
  • Durability: Completed transactions cannot be aborted later or their results discarded. They must persist through (for instance) restarts of the DBMS after crashes

In practice, many DBMS's allow most of these rules to be selectively relaxed for better performance.

Concurrency control is a method used to ensure that transactions are executed in a safe manner and follow the ACID rules. The DBMS must be able to ensure that only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.

Replication

Replication of databases is closely related to transactions. If a database can log its individual actions, it is possible to create a duplicate of the data in real time. The duplicate can be used to improve performance or availability of the whole database system. Common replication concepts include:

  • Master/Slave Replication: All write requests are performed on the master and then replicated to the slaves
  • Quorum: The result of Read and Write requests is calculated by querying a "majority" of replicas.
  • Multimaster: Two or more replicas sync each other via a transaction identifier.

Applications of databases

Databases are used in many applications, spanning virtually the entire range of computer software. Databases are the preferred method of storage for large multiuser applications, where coordination between many users is needed. Even individual users find them convenient, though, and many electronic mail programs and personal organizers are based on standard database technology. Software database drivers are available for most database platforms so that application software can use a common application programming interface (API) to retrieve the information stored in a database. Two commonly used database APIs are JDBC and ODBC. A database is also a place where you can store data and then arrange that data easily and efficiently.

 

line.gif (2401 bytes)