History of SQLite:
SQLite is a mostly ACID-compliant relational database management system contained in a relatively small (~500kB) C programming library.
Unlike client-server database management systems, the SQLite engine is not a standalone process with which the program communicates. Instead, the SQLite library is linked in and thus becomes an integral part of the program. The program uses SQLite's functionality through simple function calls, which reduces latency in database access as function calls are more efficient than inter-process communication. The entire database (definitions, tables, indices, and the data itself) is stored as a single cross-platform file on a host machine. This simple design is achieved by locking the entire database file at the beginning of a transaction.
SQLite was created by D. Richard Hipp, who sells training, direct technical support contracts and add-ons such as compression and encryption. The source code for SQLite is in the public domain.
The program was originally developed by Mauricio Piacentini from Tabuleiro Produções, a Brazilian company, as the Arca Database Browser. The original version is a free companion tool to Arca Database Xtra, a commercial product that embeds SQLite databases with some additional extensions for handling of compressed and binary data.
The original code was later adjusted to be compatible with standard SQLite 2.x databases. The resulting program was renamed SQLite Database Browser, and released into the public domain by the original author. Icons were contributed by Raquel Ravanini, also from Tabuleiro.
Monday, August 25, 2008
Thursday, August 14, 2008
Personal View # 7
A. Rules of Normalization
1.Eliminate Repeating Groups - Make a separate table for each set of related attributes, and give each table a primary key.
2.Eliminate Redundant Data - If an attribute depends on only part of a multi-valued key, remove it to a separate table.
3.Eliminate Columns Not Dependent On Key- If attributes do not contribute to a description of the key, remove them to a separate table.
4.Boyce-Codd Normal Form - If there are non-trivial dependencies between candidate key attributes, separate them out into distinct tables.
5.Isolate Independent Multiple Relationships - No table may contain two or more 1:n or n:m relationships that are not directly related.
6.Isolate Semantically Related Multiple Relationships - There may be practical constrains on information that justify separating logically related many-to-many relationships.
7.Optimal Normal Form - a model limited to only simple (elemental) facts, as expressed in Object Role Model notation.
8.Domain-Key Normal Form - a model free from all modification anomalies.
B. How would this be applied into the DBMS in the software that you are assigned?-SQLite
SQLite uses an unusual type system for an SQL DBMS.
-instead of assigning a type to a column as in most SQL database systems, types are assigned to individual values.Like in language terms it is dynamically typed. Moreover, it is weakly typed in some of the same ways that Perl is: one can insert a string into an integer column (although SQLite will try to convert the string to an integer first, if the column's preferred type is integer).
- this adds flexibility to columns, especially when bound to a dynamically typed scripting language. However, the technique is not portable to other SQL databases. The inability to have strictly typed columns, as in typical databases, is a common criticism. The SQLite web site describes a "strict affinity" mode, but this feature has not yet been added.Several computer processes or threads may access the same database without problems. Several read accesses can be satisfied in parallel. A write access can only be satisfied if no other accesses are currently being serviced, otherwise the write access fails with an error code or can automatically be retried until a configurable timeout expires. This concurrent access situation would change when dealing with temporary tables.
-a standalone program called sqlite3 is provided which can be used to create a database, define tables within it, insert and change rows, run queries and manage an SQLite database file. This program is a single executable file on the host machine. It also serves as an example for writing applications that use the SQLite library.
Subscribe to:
Posts (Atom)
