Jump to content

Access Database Engine

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Ta bu shi da yu (talk | contribs) at 00:15, 19 July 2005 (→‎Notes & references). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

File:MSJetDBEngineProgrammersGuide.png

The Microsoft Jet Database Engine is a database engine that several Microsoft products were built upon. A database engine is the underlying component that a Relational Database Management System (RDBMS) uses to create, update and delete data from a database, and is accessed by the user interface part of the RDBMS. JET stands for "Joint Engine Technology". Microsoft Access, Microsoft Exchange Server (up to Exchange 2003) and Visual Basic used Jet as their underlying database engine, however it has since been surpassed by Microsoft SQL Server and no longer exists as a component of Microsoft Data Access Components (MDAC).

Architecture

Jet version Jet engine DLL file name MDB version
1.1 1.10.0001 MSAJT110.DLL 1.0, 1.1
2.0 (comlyr) 2.00.0000 MSAJT200.DLL 1.0, 1.1, 2.0
2.5 (accsvc) 2.50.1606 MSAJT200.DLL 1.0, 1.1, 2.0, 3.0
2.5 (VB4 16) 2.50.1606 MSAJT200.DLL 1.0, 1.1, 2.0, 3.0
3.0 3.0.0.2118 MSJT3032.DLL 1.0, 1.1, 2.0, 3.0
4.0 (SP7) Msjet40.dll 4.0.7328.0 1.0, 1.1, 2.0, 3.0, 4.0

Jet allowed for a single-point of interface for software that accessed Microsoft databases. Because of this, the Jet Engine provides for support for security, referential integrity, transaction processing, indexing, record and page locking and also data replication. In later versions of Jet the engine gained the ability to run SQL queries, store character data in Unicode format, create views, and allowed bi-directional replication with Microsoft SQL Server.

There were three modules to Jet:

  1. a Jet dynamic link library (DLL) that could directly manipulate Microsoft Access database files (MDB)
  2. Indexed Sequential Access Method (ISAM) DLLs that allowed access to Xbase, Paradox, Btrieve and FoxPro files
  3. a Data Access Objects (DAO) DLL that allowed programmers access to the Jet engine. It was basically an object-oriented data language used by Access Basic and Visual Basic application developers to access Jet

History

Jet originally started in 1992 as an underlying data access technology that came from a Microsoft internal database product development project, code named Cirrus. Cirrus was developed from a pre-release version of Visual Basic code and was used as the database engine of Microsoft Access. Tony Goodhew, who worked for Microsoft at the time, says that "It would be reasonably accurate to say that up until that stage Jet was more the name of the team that was assigned to work on the DB engine modules of Access rather than a component team. For VB [Visual Basic] 3.0 they basically had to tear it out of Access and graft it onto VB. That's why they've had all those Jet/ODBC problems in VB 3.0." Jet became more componentised when Access 2.0 was released because the Access ODBC developers used parts of the Jet code to produce the ODBC driver. A retrofit was provided that allowed Visual Basic 3.0 users to use the updated Jet issued in Access 2.0. [1]

Jet 2.0 was released as several dynamic linked libraries (DLLs) that were utilised by application software, such as Microsoft's Access database. DLLs in Windows are "libraries" of common code that can be used by more than one application — by keeping code that more than one application uses under a common library which each of these applications can use independently code maintenance is reduced and the functionality of applications increases, with less development effort. The three dlls that comprised Jet 2.0 were the Jet DLL, the Data Access Objects (DAO) DLL and several external ISAM DLLs. The Jet DLL determined what sort of database it was accessing, and how to perform what was requested of it. If the data source was an MDB file (a Microsoft Access format) then it would directly read and write the data to the file. If the data source was external, then it would call on the correct ODBC driver to perform it's request. The DAO DLL was a component that programmers could use to interface with the Jet engine, and was mainly used by Visual Basic and Access Basic programmers. The ISAM DLLs were a set of modules that allowed Jet to access three ISAM based databases: Xbase, Paradox and Btrieve. [2]

Jet 3.0 included many enhancements, including a new index structure that reduced storage size and the time that was taken to create indices that are highly duplicated, the removal of read locks on index pages, a new mechanism for page reuse, a new compacting method whereby compacting the database resulted in the indices being stored in a clustered-index format, a new page allocation mechanism to improve Jet's read-ahead capabilities, improved delete operations that speeded processing, multithreading (three threads were used to perform read ahead, write behind, and cache maintenance), implicit transactions (whereby users did not have to have to manually instruct the engine to start and commit transactions to the database), a new sort engine, long values (such as memos or binary data types) were stored in separate tables, and dynamic buffering (whereby Jet's cache was dynamically allocated at start up and had no limit and which changed from a first in, first out (FIFO) buffer replacement policy to a least recently used (LRU) buffer replacement policy). [3] Jet 3.0 also allowed for database replication.

Jet 4.0 was the last version produced by Microsoft. It had numerous additional features and enhancements [4]: Unicode character storage support, along with an NT sorting method that was also implemented for Windows 95; Changes to data types to be more like SQL Server's (LongText or Memo; Binary; LongBinary; Date/Time; Real; Float4; IEEESingle; Double; Byte or Tinyint; Integer or Interger synonyms Smallint, Integer2, and Short; LongInteger or LongInteger synonyms Int, Integer, and Counter; Auto-Increment support was dropped; Currency or Money; Boolean and GUID); a new decimal data type; memo files could be indexed; compressible data types; SQL enhancements to make Jet conform more closely to ANSI SQL 92; Finer grained security; views support; procedure support; invocation and termination (committing or rolling back) of transactions; enhanced table creation and modification; referential integrity support; connection control (connected users remain connected, but once disconnected they cannot reconnect. New connections cannot be made &mdash was useful for database administrators to gain control of the database); a user list, which allows administrators to determine who is connected to the database; record-level locking (previous versions only supported page-locking) and bi-directional replication with Microsoft SQL Server.

Notes

  1. ^ Tony Goodhew, "Jet Engine: History". Accessed July 14, 2005.
  2. ^ Paul Litwin (1994), Microsoft Jet Database Engine 2.0: A User's Overview, retrieved July 14, 2005.
  3. ^ Microsoft, MS KB article 137039 New Features in Microsoft Jet Version 3.0, last updated December 9, 2003, retrieved July 14, 2005.
  4. ^ Microsoft, MS KB article Q275561 Description of the new features that are included in Microsoft Jet 4.0

References

  • Haught Dan; & Ferguson, Jim. (1997) "Microsoft Jet Database Engine Programmer's Guide". Microsoft Press. ISBN 1572313420.