A binary large object (BLOB or blob) is a collection of
binary data stored as a single entity. Blobs are typically
image
An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensio ...
s,
audio or other
multimedia
Multimedia is a form of communication that uses a combination of different content forms such as text, audio, images, animations, or video into a single interactive presentation, in contrast to tradi ...
objects, though sometimes
binary executable code is stored as a blob. They can exist as persistent values inside some
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
s or
version control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
system, or exist at
runtime as
program variables in some
programming languages
A programming language is a system of notation for writing computer program, computer programs. Most programming languages are text-based formal languages, but they may also be visual programming language, graphical. They are a kind of computer ...
. It is not to be confused with a
binary file
A binary file is a computer file that is not a text file. The term "binary file" is often used as a term meaning "non-text file". Many binary file formats contain parts that can be interpreted as text; for example, some computer document fi ...
stored in a
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one lar ...
.
Blobs were originally just big amorphous chunks of data invented by
Jim Starkey
Jim Starkey (born January 6, 1949 in Illinois) is a database architect responsible for developing InterBase, the first relational database to support multi-versioning,Babcock, Charles"MySQL Database to Get Replication Monitoring, Multiversionin ...
at
DEC, who describes them as "the thing that ate Cincinnati, Cleveland, or whatever" from "the 1958 Steve McQueen movie", referring to ''
The Blob''. Later, Terry McKiever, a marketing person for
Apollo
Apollo, grc, Ἀπόλλωνος, Apóllōnos, label=genitive , ; , grc-dor, Ἀπέλλων, Apéllōn, ; grc, Ἀπείλων, Apeílōn, label=Arcadocypriot Greek, ; grc-aeo, Ἄπλουν, Áploun, la, Apollō, la, Apollinis, label= ...
, felt that it needed to be an acronym and invented the
backronym
A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
''Basic Large Object''. Then
Informix invented an alternative backronym, ''Binary Large Object''.
The data type and definition were introduced to describe data not originally defined in traditional computer database systems, particularly because it was too large to store practically at the time the field of database systems was first being defined in the 1970s and 1980s. The data type became practical when disk space became cheap. This definition gained popularity with
IBM Db2.
The term is used in
NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
databases, especially in
key-value store databases such as
Redis. The term is also used by languages that allow runtime manipulation of Blobs, like
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
.
The name "blob" is further borrowed by the deep learning software
Caffe to represent multi-dimensional arrays.
In the world of
free and open-source software, the term is also borrowed to refer to
proprietary device drivers, which are distributed without their
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
, exclusively through
binary code
A binary code represents text, computer processor instructions, or any other data using a two-symbol system. The two-symbol system used is often "0" and "1" from the binary number system. The binary code assigns a pattern of binary digits, als ...
; in such use, the term ''binary blob'' is common, even though the first letter in the ''blob'' abbreviation already stands for ''binary''.
Depending on the implementation and culture around usage, the concept might be alternately referred to as a "basic large object" or "binary data type".
See also
*
Binary blob
In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source ...
*
Character large object
References
{{The Blob
Databases
Data types