Database-centric architecture: Difference between revisions

Content deleted Content added
No edit summary
Citation bot (talk | contribs)
Add: pages, issue. Removed URL that duplicated identifier. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 606/1032
 
(28 intermediate revisions by 21 users not shown)
Line 1:
{{Short description|Software architecture}}
'''Database-centric architectureArchitecture''' 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>{{cite web
|url = http://www.oracle.com/technology/pub/articles/odtug_award.pdf
|title = A DATABASE-CENTRIC APPROACH TO J2EE APPLICATION DEVELOPMENT
|last = Koppelaars
|first = Toon
|date = 2004
|publisher = Oracle Development Tools Users Group (ODTUG)
|access-date = 2024-09-26
|url-status = dead
|archive-url = https://web.archive.org/web/20060525094651/http://www.oracle.com/technology/pub/articles/odtug_award.pdf
|archive-date = 2006-05-25
}}</ref> and performance.<ref>{{cite AV media
|people = Toon Koppelaars
|date = 2016-10-31
|title = NoPLSql and Thick Database Approaches with Toon Koppelaars
|type = Video
|language = English
|url = https://www.youtube.com/watch?v=8jiJDflpw4Y
|access-date = 2024-09-26
|publisher = Oracle Learning
|via = Youtube
}}</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.<ref>{{Citation |author=Lind P, Alm M |title=A database-centric virtual chemistry system |journal=J Chem Inf Model |volume=46 |issue=3 |pages=1034–9 |year=2006 |pmid=16711722 |doi=10.1021/ci050360b |postscript=. }}</ref> 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>
* an overall [[enterprise architecture]] that favors shared data models<ref>{{Cite news|url=http://tdan.com/the-data-centric-revolution/18780|title=The Data Centric Revolution|newspaper=TDAN.com|access-date=2017-01-09}}</ref> over allowing each application to have its own, idiosyncratic data model.
Even an extreme database-centric architecture called '''RDBMS-only architecture'''<ref>{{Cite book|last1=Vicente|first1=Alfonso|last2=Etcheverry|first2=Lorena|last3=Sabiguero|first3=Ariel|title=2021 XLVII Latin American Computing Conference (CLEI) |chapter=An RDBMS-only architecture for web applications |date=2021|pages=1–9|doi=10.1109/CLEI53233.2021.9640017|isbn=978-1-6654-9503-5 |s2cid=245387844 }}</ref><ref>{{Cite journal |last=Vicente |first=Alfonso |date=2023-06-30 |title=In defense of extreme database-centric architecture |journal=Memoria Investigaciones en Ingeniería |volume=24 |issue=24 |pages=117–128 |doi=10.36561/ing.24.9 |s2cid=259690085 |issn=2301-1106|doi-access=free }}</ref> has been proposed, in which the three classic layers of an application are kept within the [[RDBMS]]. This architecture heavily uses the DBPL (Database Programming Language) of the RDBMS. An example of software with this architecture is [[Oracle Application Express]] (APEX).
 
* 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.
 
* 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.<ref>{{Citation |author=Lind P, Alm M |title=A database-centric virtual chemistry system |journal=J Chem Inf Model |volume=46 |issue=3 |pages=1034–9 |year=2006 |pmid=16711722 |doi=10.1021/ci050360b |postscript=. }}</ref> 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
*[[:Category:Data-centric_programming_languagescentric programming languages|Data-centric programming languages]]
 
*The [[data-driven programming]] paradigm, which makes the information used in a system the primary design driver.
*[[:Category:Data-centric_programming_languages|Data-centric programming languages]]
 
*The [[data-driven programming]] paradigm, which makes the information used in a system the primary design driver.
 
==References==