DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

FileMaker


FileMaker is a proprietary relational database application which can be used in a cross-platform environment. It's well-known for being easy to use and create custom applications with an intuitive graphical user interface. FileMaker supports convenient data exchange with other web applications by cURL, JSON functions, and REST-based API. It can also connect to a number of SQL databases including MySQL, Oracle, and Microsoft SQL as data sources with operations like creation, edit, deletion.[03][04]

Developer
Country of Origin
US
Start Year
1985 [23]
Former Name
Nutshell
Acquired By
Project Type
Commercial
Supported Languages
Java, JavaScript, PHP, PL/SQL, Python, SQL
Compatible With
MySQL, Oracle RDBMS, SQL Server
Operating Systems
Hosted, iOS, Linux, macOS, Windows
License
Proprietary

Database Entry

FileMaker


FileMaker is a proprietary relational database application which can be used in a cross-platform environment. It's well-known for being easy to use and create custom applications with an intuitive graphical user interface. FileMaker supports convenient data exchange with other web applications by cURL, JSON functions, and REST-based API. It can also connect to a number of SQL databases including MySQL, Oracle, and Microsoft SQL as data sources with operations like creation, edit, deletion.[03][04]

History[03]


FileMaker was originally developed as a DOS application called Nutshell distributed by Leading Edge. The developers later evolved and published it for Apple Macintosh as FileMaker in April 1985. In the late 1980s, it was acquired by Claris, a wholly owned subsidiary of Apple and was first expanded to run under Windows there in 1992. Later, FileMaker was the only strong-selling product in Claris's lineup and Apple changed Claris's name to FileMaker, Inc., to concentrate on the database. FileMaker Go for iOS devices came out in 2010, supporting the creation, modification, and deletion. In 2016, FileMaker Cloud was released which includes a Linux server.

Checkpoints[05][06]


When running the backup schedule, FileMaker creates an entire copy of the databases and creates a hard link pointing to the most recent backup if no changes have been made to the databases since then to improve backup performance. FileMaker also supports Progressive backup which only saves the delta changes. The backup schedule is not blocking in FileMaker where users can continue to update data during backups. When the copy finishes, database hosting will be blocked to sync the backup with the current databases.

Concurrency Control[07][08]


FileMaker has been using pessimistic concurrent control for years to avoid conflicts. A record will be locked when someone starts editing it and the lock will only be released until the user issues commit. Users that try to modify concurrently will receive a message about invalid modification. The most recent release introduced the FileMaker Data API which adopts the concept of transaction and uses optimistic concurrent control. All updates within one transaction will be submitted altogether. If any related record is empty or is in use, then nothing gets updated.

Data Model[03][09][10]


FileMaker is a relational database system. It follows the standard relational data model where a database consists of multiple connected tables. Data can be accessed through related tables.

Foreign Keys


FileMaker supports the foreign key constraint. By specifying a foreign key, the field can uniquely identify records in some related tables. FileMaker allows to have multiple foreign keys within one table and the values for foreign key don't have to be unique.

Indexes[11][12][13][14]


FileMaker uses index for searching and joining related tables. It creates lists of the words or values in a field and stores references to its record. There are two types of indexes in FileMaker. A word index is for text fields while a value index is for numbers, dates, time, relationships, etc. Words are mostly defined by spaces as well as some special characters and support partial text search. In addition to searching and joins, the index can also be used to generate value lists which allows FileMaker to build pop-up menu really quickly.

Isolation Levels


FileMaker provides Read Committed isolation by having the pessimistic record locking. It is guaranteed that the lock is released only after commits and the version being read is the latest committed version. However, FileMaker has the client-side cache which may prevent the clients from reading the most recent version by looking at an outdated cache.

Logging


Query Compilation


Query Execution[15][16]


By default, FileMaker searches across all the fields to execute queries. Users can also perform vectorized searching in Browse mode by specifying one field.

Query Interface[17][18][19]


Users can write scripts by using FileMaker commands to perform queries. FileMaker also provides ExecuteSQL, which enables the user to perform an SQL query with the databases.

Storage Architecture[20]


FileMaker stores its data on disk. Changes will be stored temporarily in memory, i.e. in the cache and will be flushed to hard disk regularly. The cache size and the interval between flushing can be specified by users. Users can force FileMaker to migrate updates to disk by running a given script.

Storage Model


Stored Procedures


System Architecture[21]


FileMaker does not do partitioning.

Views[22]


Citations

24 sources
  1. Claris | Build custom apps, automate work, and integrate systems claris.com
  2. Home | Claris Help Center claris.com
  3. FileMaker - Wikipedia wikipedia.org
  4. Browse the Glossary - F - WhatIs techtarget.com Dead — Check Archive
  5. Understanding backup options claris.com
  6. Scheduling database backups claris.com
  7. http://www.thepracticalba.com/filemaker-thoughts/2011/4/7/the-basics-of-filemaker-record-locking.html thepracticalba.com Dead — Check Archive
  8. http://www.philosophyoffilemaker.com/reconciling-record-locking-121 philosophyoffilemaker.com Dead — Check Archive
  9. Working with related tables claris.com
  10. Access Restricted | Information Systems & Technology mit.edu Dead — Check Archive
  11. Using a field index claris.com
  12. Defining field indexing options claris.com
  13. http://www.philosophyoffilemaker.com/in-depth-index-63 philosophyoffilemaker.com Dead — Check Archive
  14. http://fullcityconsulting.com/filemaker-indexing-there-can-be-too-much-of-a-good-thing fullcityconsulting.com Dead — Check Archive
  15. Finding records claris.com
  16. Finding records based on criteria in a single field claris.com
  17. FileMaker - Wikipedia wikipedia.org
  18. ExecuteSQL claris.com
  19. Claris Academy: Free Claris FileMaker training for beginners to advanced developers. filemaker.com Dead — Check Archive
  20. Setting memory preferences claris.com
  21. FileMaker System Properties db-engines.com
  22. Login — FileMaker Community filemaker.com Dead — Check Archive
  23. History of FileMaker - Dancing-Data dancing-data.com
  24. About us — Claris filemaker.com Dead — Check Archive
Revision #6