A database is an information set with a regular structure. A database is usually but not necessarily stored in some machine-readable format accessed by a computer. There are a wide variety of databases, from simple tables stored in a single file to very large databases with many millions of records, stored in rooms full of disk drives.
Databases resembling modern versions were first developed in the 1960s. A pioneer in the field was Charles Bachman.
The most useful way of classifying databases is by the programming model associated with the database. Several models have been in wide use for some time. Historically, the hierarchical model was implemented first, then the network model, then the relational model overcame with the so-called flat model accompanying it for low-end usage. The first two and the last one were never theoretised and were deemed as data models only as a contrast to the relational model, not having conceptual underpinnings of their own; they have arisen simply out of the realisation of physical constraints and programming, not data, models.
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 might be used as a part of a system security database. Each row would have the specific password associated with a specific 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 the basis of the spreadsheet.
The network model allows multiple tables to be used together through the use of pointers (or references). Some columns contain pointers to different tables instead of data. Thus, the tables are related by references, which can be viewed as a network structure. A particular subset of the network model, the hierarchical model, limits the relationships to a tree structure, instead of the more general directed graph structure implied by the full network model.
relations of n-tuples (tables of rows) of data elements (or attributes or columns); each n-tuple (row) is a colection of data elements (attributes/columns) of the entity represented by that particular n-tuple (row);
a collection of operators, the relational algebra and calculus;
and a collection of integrity constraints, defining the set of consistent database states and changes of state. The integrity constraints can be of four types: domain (AKA type), attribute, relvar and database constraints.
Unlike the hierarchical and network models, there are no explicit pointers whatsoever in the data held in the relational model. In the hierarchical and network models data is accessed by the programmer specifying an access path from pointer to pointer embedded in the data. In the relational model data is accessed using relational algebra. Subsets of n-tuples (rows) in different relations (tables) are joined in cross-products, they are intersected and they are differenced using the values of any of the attributes (columns). This flexibility in relational databases allow users (and 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 relational databases very popular with businesses.
Any number of declararative programming languages could be invented which would provide users with the means of specifying the relational algebra necessary to access and manipulate the data in relational databases. The de facto standard is Structured Query Language (SQL) although every RDBMS has its own dialect of this English-like declarative programming language.
The relational model is an implementation of the relational algebra and set theory branches of mathematics to the design and working of databases. Perhaps the most important pioneer in this field was Ted Codd. Although this model is the basis for relational database software management systems (RDBMS), very few RDBMS's implement the model entirely rigourously or completely and many have extra features which, if used, violate the theory. Some so called RDBMS's are not relational enough to be worthy of the term - they are DBMS's with relational features.
In recent years, the object-oriented paradigm has been applied to databases as well, creating a new programming model known as object databases. These databases attempt to overcome some of the difficulties of using objects with the SQL DBMSs. An object-oriented program allows objects of the same type to have different implementations and behave differently, so long as they have the same interface (polymorphism). This doesn't fit well with a SQL database where user-defined types are difficult to define and use, and where the Two Great Blunders prevail: the identification of classes with tables (the correct identification is of classes with types, and of objects with values), and the usage of pointers.
A variety of ways have been tried for storing objects in a database, but there is little consensus on how this should be done. Implementing object databases undo the benefits of relational model by introducing pointers and making ad-hoc queries more difficult. This is because they are essentially adaptations of obsolete network and hiearchical databases to object-oriented programming. As a result, object databases tend to be used for specialized applications and general-purpose object databases have not been very popular. Instead, objects are often stored in SQL databases using complicated mapping software. At the same time, SQL DBMS vendors have added features to allow objects to be stored more conveniently, drifting even further away from the relational model.
The term "database application" usually refers to software providing a user interface to a database. The software that actually manages the data is usually called a database management system (DBMS) or (if it is embedded) a database engine.
Atomicity - either all or no operations are completed. (Transactions that can't be finished must be completely undone.)
Consistency - all transactions must leave the database in consistent state.
Isolation - transactions can't interfere with each other's work and incomplete work isn't visible to other transactions.
Durability - successful transactions must persist through crashes.
In practice, many DBMS's allow some of these rules to be relaxed for better performance.
Concurrency control is a method used to ensure transactions are executed in a safe manner and follows the ACID rules. The DBMS must be able to ensure only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.
Resolution Software xCase offers powerful automation and maintenance features to assist the database developer throughout the life cycle of the application. http://www.xcase.com
Sleepycat Software, Inc. Builds, distributes, and supports The Berkeley Database, an open source embedded database system. Berkeley DB is a programmatic toolkit that provides high-performance built-in database support for both standalone and client/server applications. http://www.sleepycat.com/
Innovative Routines International Vendor of CoSORT (Unix and Windows NT sort software), netCONVERT (cross-platform file and data translation), and x-PRESS (cross-platform data compression). http://www.iri.com/
Micro Data Base Systems, Inc. Offers high-performance solutions for developers of complex information management applications and creator of TITANIUM, a multi-model database engine supporting relational SQL, ODMG object classes, and navigational APIs. http://www.mdbs.com/
Cardett Associates Advanced Query Tool is designed for database developers and DBAs with particular features for DB2, Oracle, Sybase, MS SQL Server. http://www.cardett.co.nz/
askSam Systems Free-form database and information management software. http://www.asksam.com/
OpenLink Virtuoso High-performance and compact DBMS server with support for SQL-92, ODBC, JDBC, UDBC, SAX, DOM, and XML. http://www.openlinksw.com/virtuoso/
Quick Tips Quick cheats and information for Sybase, Oracle, Informatica, and Microstrategy. http://quick-tips.com/local-search/pages/Computers/Quick_Tips/
Alpha Software Produces database products for Windows and DOS operating systems. http://www.alphasoftware.com/
Cincom Systems, Inc. SUPRA is an ANSI-compliant relational database management system that can help you bring your legacy mainframe data into the SQL, client/server, and ODBC world. http://www.cincom.com/en/products/about.asp?ProductID=11
Zoot Software A multiple database storage model and provides a browser-like interface. Features a number of built-in databases. http://www.zootsoftware.com/
Easysoft Limited SQL Engine is a relational database engine that provides users with heterogeneous access to multiple local and remote data sources and enhanced functionality in your existing ODBC drivers. Native access is also provided to Easysoft RDBMS, which provides a powerful local Relational Data Base Management System. http://www.odbcdriver.com/
Xenomorph XBD Time Series Database High performance data management and analysis system for risk management, trading and software application development http://www.xenomorph.com/products/systems/xdb/
Inquiry.com Expert answers for IT professionals. http://www.devx.com/
ITtoolbox Database Offers forums for technical discussion, an integrated directory, white papers and daily news geared towards database professionals and users of database products. http://database.ittoolbox.com/
Ocelot's Full SQL DBMS for Windows Download the complete package (libraries, documentation, example programs) useable with Windows 95/98 or WindowsNT with ODBC 3 interface. http://www.ocelot.ca/
Birdstep Technology Provider of enabling software for companies operating in the embedded and wireless marketplace. http://www.birdstep.com/
PrÃ¦dictus Corporation - ERDB The Entity Relation Database is a real-time dataflow management system built on entity-relation structures designed specifically for response-sensitive environments. http://www.praedictus.com/
Vitaliy Levchenko Software Data manipulation and reporting software. Allows to view, edit, print, sort, filter, export, import, convert, search, replace the data. http://www.raritet.com.ua/vlsoft/
SWS Software Technologies Software products based on the Data and Application Software Evolution technology (DASE) rule-based expert system, typically migrating data from file systems (such as VSAM) and non-relational DataBase Management Systems (DBMS) to relational DBMS such as Oracle and DB2. http://www.sws.de/
eWeek: Databases Latest articles on the database industry from eWeek. http://rssnewsapps.ziffdavis.com/eweekdatabase.xml
SoftTree Technologies, Inc. Tools for database management, performance monitoring, tuning, and benchmarking as well as job scheduling, PowerBuilder add-ons, and custom built solutions. Based in Brooklyn, NY. http://www.SoftTreeTech.com/
About.com on Databases Articles, discussion forum and links covering a variety of database products. http://databases.about.com/
ODBC and the Mac MacInTouch discussion on the declining state of ODBC on the Mac. http://www.macintouch.com/odbc.html
Data Harmony, Inc. A text based database company providing software and technical support for small and large business needs. http://www.dataharmony.com/
Pervasive Software, Inc. Supplies application builders and developers with embedded database products (ODBC, SQL, client-server) with high performance, small footprint database engines. http://www.pervasive.com/
Lazy Software Develops and distributes Sentences, the first database management system based on the Associative Model of Data. http://www.lazysoft.com/
UCO-Wisql Wisql, by Tom Poindexter, is an X11 version of isql (Windowing-ISQL) which gives you a SQL query editing window, a results window, and a lot of menus and buttons. http://www.ucolick.org/~de/tcl_syb/wisql.html
Introduction to Databases for the Web This tutorial introduces how to use CGI scripts, with Perl 5, to interface to SQL databases. Introduces database concepts and give you the tools you need to get to work using the databases available to you. Suitable for webmasters and web developers with little or no database experience. http://wdvl.com/Authoring/DB/Intro/index3.html
itmWEB: Database Administrator Toolbox Useful collection of tools, vendor sites, discussion forums, FTP locations, and resources selected especially for database administrators. http://www.itmweb.com/tboxda.htm
searchDatabase.com Database-specific portal. Includes database-focused search, links, editorial insight, summaries, daily news, weekly tips delivered via email, career center and chats. By TechTarget.com, Inc. http://searchdatabase.techtarget.com/
ADO Explorer An SQL database tool that presents a explorer tree view of a database. By PEYO. http://www.peyo-home.sk/adoexplorer/
Open Source Database Benchmark A free, open source, performance benchmark for private testing of relational database systems. Tests are written in the C language using GNU tools. http://osdb.sourceforge.net/
DbTools DbLoader, DbExport, DbView, Console, Windows shareware for scanning and manipulating data in relational databases using ODBC. By Ing.Roman Vincze. http://sweb.cz/roman.vincze/en6whut.htm
NewsNow Database Theme A 24-hour database-specific newsfeed aggregating breaking news headlines from over twenty of the Web's most prestigious sites. Sources include CNET, TechWeb, Wired, The Register, Slashdot, Silicon.com, InfoWorld, and PC Week. NewsNow updates every five minutes, every day. http://www.newsnow.co.uk/cgi/NewsNow/NewsLink.htm?Theme=Databases
DBMS Overview Leonid Druyanov's descriptions of database modeling tools such as ERWin. http://members.tripod.com/druyanov/dbms.html
RTX Data Access Free Internet enabled, Java database query and reporting tool for Oracle, DB2, Sybase and Microsoft SQL Server from ioMetrics, Inc. http://www.db2link.com/Tools/Tools_full_listing/RTX_Data_Access_System.htm
Allexperts Database Programming Q&A Volunteer experts answer your detailed one-on-one questions about database programming. http://www.allexperts.com/getExpert.asp?Category=1041
Help build the largest human-edited directory on the web.