'''Database-centric architecture''' or '''data-centric architecture''' has several distinct meanings, generally relating to [[software architecture]]s in which [[database]]s play a crucial role. Often this description is meant to contrast the design to an alternative approach. For example, the characterization of an architecture as "database-centric" may mean any combination of the following:
* using a standard, general-purpose [[relational database management system]], as opposed to customized in-[[Memory (computers) |memory]] or [[Computer file | file]]-based [[data structures]] and [[access method]]s. With the evolution of sophisticated [[Database management system | DBMS]] software, much of which is either free or included with the [[operating system]], application developers have become increasingly reliant on standard database tools, especially for the sake of [[rapid application development]].
* using dynamic, [[Table (database) | table]]-driven logic, as opposed to logic embodied in previously [[compiled]] [[Computer program | program]]s. The use of table-driven logic, i.e. behavior that is heavily dictated by the contents of a database, allows programs to be simpler and more flexible. This capability is a central feature of [[dynamic programming language]]s. See also [[control table]]s for tables that are normally coded and embedded within programs as [[data structures]] (i.e. not compiled statements) but could equally be read in from a [[flat file]], [[database]] or even retrieved from a [[spreadsheet]].
* using [[stored procedure]]s that run on [[database server]]s, as opposed to greater reliance on logic running in middle-tier [[application server]]s in a [[multi-tier architecture]]. The extent to which [[business logic]] should be placed at the back-end versus another tier is a subject of ongoing debate. For example, Toon Koppelaars presents a detailed analysis of alternative [[Oracle Database | Oracle-based]] architectures that vary in the placement of business logic, concluding that a database-centric approach has practical advantages from the standpoint of ease of development and maintainability.<ref>[http://web.inter.nl.net/users/T.Koppelaars/J2EE_DB_CENTRIC.doc A database-centric approach to J2EE application development]</ref>
* using a shared database as the basis for communicating between [[Parallel computing | parallel processes]] in [[distributed computing]] applications, as opposed to direct [[inter-process communication]] via [[message passing]] functions and [[message-oriented middleware]]. A potential benefit of database-centric architecture in [[distributed application]]s is that it simplifies the design by utilizing DBMS-provided [[transaction processing]] and [[Index (database) | indexing]] to achieve a high degree of reliability, performance, and capacity. For example, [[Base One]] describes a database-centric distributed computing architecture for [[Grid computing|grid]] and [[Computer cluster|cluster]] computing, and explains how this design provides enhanced security, fault-tolerance, and [[scalability]].<ref>[http://www.boic.com/dbgrid.htm Database-Centric Grid and Cluster Computing]</ref>
==See also==
*[[Control table]]s
<references/>
{{DEFAULTSORT:Database-Centric Architecture}}
[[Category:Software architecture]]
[[Category:Data management]]
|