📄 sysreq.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>SQLite System Requirements</title><style type="text/css">body { margin: auto; font-family: "Verdana" "sans-serif"; padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline { float:right; text-align:right; font-style:italic; width:240px; margin:12px; margin-top:58px;}.toolbar { font-variant: small-caps; text-align: center; line-height: 1.6em; margin: 0; padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se { background: url(images/se.png) 100% 100% no-repeat #80a796}.sw { background: url(images/sw.png) 0% 100% no-repeat }.ne { background: url(images/ne.png) 100% 0% no-repeat }.nw { background: url(images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><div><!-- container div to satisfy validator --><a href="index.html"><img class="logo" src="images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td> <div class="se"><div class="sw"><div class="ne"><div class="nw"> <div class="toolbar"> <a href="about.html">About</a> <a href="sitemap.html">Sitemap</a> <a href="docs.html">Documentation</a> <a href="download.html">Download</a> <a href="copyright.html">License</a> <a href="news.html">News</a> <a href="http://www.sqlite.org/cvstrac/index">Developers</a> <a href="support.html">Support</a> </div></div></div></div></div></td></tr></table> <h1>System Requirements For SQLite</h1><p>This document outlines the chief goals and objectives of the SQLitelibrary. All of the features and capabilities of SQLite (that is to say,<a href="requirements.html">all requirements</a> of SQLite) can ultimately be traced back to one of the broad and generalrequirements specified here.</p><p>SQLite is not a complete system and so the requirementsprovided by this document are not system requirements in thestrict sense. Perhaps "sub-system requirements" would be a betterterm, since SQLite is always a sub-component of a larger system.</p><p>This document is targeted primarily at developers who areworking within a waterfall development model that uses detailedrequirements written with the modal auxiliary verb "shall". However, this document is also useful as a general-purpose high-level description of SQLite for developers who are not working underdifferent development paradigms.</p><dl><dt><b><a name="S10000"></a>S10000</b></dt><dd><p>The SQLite library shall translate high-level SQL statements intolow-level I/O calls to persistent storage.</p><p>SQLite is an SQL database engine. And the fundamental task of every SQL database engine it to translate the abstract SQL statements readily understood by humans into sequences of I/O operations readily understood by computer hardware. This requirement expresses the essense of SQLite.</p></dd><dt><b><a name="S10100"></a>S10100</b></dt><dd><p>The SQLite library shall accepts a well-defined dialect of SQLthat conforms to published SQL standards.</p><p>SQL is one of the worlds most widely known programming languages, but it is also one of the most ill-defined. There are various SQL standards documents available. However the SQL standards documents are obtuse to the point of being incomprehensible. And the standards allow for so much "implementation defined" behavior that there exist two SQL database engines understand exactly the same language.</p> <p>SQLite does not attempt to obtain strict compliance with any one of the various SQL standards. Instead, SQLite tries to be as compatible as possible with other SQL database engines. SQLite attempts to operate on the principle of least surprise. That is to say, experienced SQL programmers should find SQLite's dialect intuitive and natural.</p> <p>SQLite may omit some obscure features of SQL. And the SQL dialect that SQLite understands might contain some enhancements not found in some standards documents. Nevertheless, applications written for other SQL database engines should be portable to SQLite with little to no change. And programmers writing code for SQLite should not encounter anything unexpected.</p></dd><dt><b><a name="S10110"></a>S10110</b></dt><dd><p>The SQLite library shall support BLOB, CLOB, integer, and floating-pointdatatypes.</p></dd><dt><b><a name="S10120"></a>S10120</b></dt><dd><p>The SQLite library shall implement the standard SQL interpretationof NULL values.</p><p>In cases where published standards are ambiguous, SQLite will follow the practice of other popular database engines.</p></dd><dt><b><a name="S10200"></a>S10200</b></dt><dd><p>The SQLite library shall communicate directly with database filesin persistent storage.</p><p>Most other database engines implement a client/server model in which a small client library is linked with the application and the client communicates with a separate server process using interprocess communication (IPC). SQLite avoids the complication of having a separate server process by doing direct I/O directly to the underlying filesystem.</p></dd><dt><b><a name="S10300"></a>S10300</b></dt><dd><p>The SQLite library shall implement ACID transactions.</p><p>In the database world, "ACID" is an acronym for Atomic, Consistent, Isolated, and Durable. Atomic means that a change to the database happens either entirely or not at all. Consistent means that if the database file is well-formed before the start of a transaction then it is guaranteed to be well-formed after the transaction commits. Isolated means that when two or more threads are processes are working with the same database, uncommitted changes made by one are not visible to the other. Durable means that once a transaction commits, it stays committed even if there is a subsequent software crash or power failure.</p></dd><dt><b><a name="S10500"></a>S10500</b></dt><dd><p>The SQLite library shall implement transactions that are robustacross application crashes, operating-system crashes, and powerfailures.</p><p>An operating system crash or an unexpected power loss can sometimes damage the underlying persistent storage in ways that no software can defend against. (For example, the content of a disk drive might be completely erased and become unrecoverable.) Nevertheless, software can take steps to defend against the kinds of damage that typically occurs following operating system crashes and power failures. The usual damage is that some writes are missing or incomplete and that writes have occurred out of order. We say that software is "robust" if it defines against the common kinds of damage seen following an operating system crash or power loss.</p></p></dd><dt><b><a name="S10600"></a>S10600</b></dt><dd><p>The SQLite library shall support simultaneous access to multipledatabase files on the same database connection.</p><p>Many applications benefit from being about to access multiple database file using the same database connection, so that information can be transfered from from one database to another atomically, or so that queries can join data across multiple databases.</p></dd><dt><b><a name="S10700"></a>S10700</b></dt><dd><p>The SQLite library shall provide interfaces that allow the applicationto obtain the status and results of SQL operations.</p></dd><dt><b><a name="S20000"></a>S20000</b></dt><dd><p>The SQLite library shall be extensible and configurable.</p><p>SQLite is intended to be an embedded database that functions well in resource-limited systems. For that reason we desire to keep the size of the library small. That choices argues against a large default function set. Instead of having many built-in features, SQLite is designed to be extensible at compile-time and run-time with new application-defined functions and behaviors.</p></dd><dt><b><a name="S20100"></a>S20100</b></dt><dd><p>The SQLite library shall provide interfaces that permit the applicationto override interfaces to the platform on which the application is running.</p><p>SQLite works on common workstations and in embedded systems. Sometimes these devices, particularly embedded systems, have odd and unusual operating systems. In order to support this level of portability, SQLite allows the interface to the operating system to be defined at run-time.</p></dd><dt><b><a name="S20110"></a>S20110</b></dt><dd><p>The SQLite library shall provide interfaces that permit the applicationto override the interfaces used to read and write persistent storage.</p></dd><dt><b><a name="S20120"></a>S20120</b></dt><dd><p>The SQLite library shall provide interfaces that permit the applicationto override the interfaces used for memory allocation.</p></dd><dt><b><a name="S20130"></a>S20130</b></dt><dd><p>The SQLite library shall provide interfaces that permit the applicationto override the interfaces used for controlling mutexes.</p></dd><dt><b><a name="S20200"></a>S20200</b></dt><dd><p>The SQLite library shall provide interfaces that permit the applicationto create new SQL functions.</p><p>Most SQL database engines support a rich set of SQL functions. SQLite, in contrast, supports only a select few SQL functions. But SQLite makes up for its dearth of built-in SQL functions by allowing the application to create new SQL function easily.</p></dd><dt><b><a name="S20300"></a>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -