Thread: Understanding Binary Data Type

Understanding Binary Data Type

From
Carlos Mennens
Date:
Hello everyone! I wanted to ask the list a question about the 'bytea'
data type & how I can picture this in my head. I've been reading SQL
for about a few months now and since then, I've only been working with
textual data. Basically I'm familiar with storing text and numerical
characters into tables but my friend told me that databases can hold
much more than just ASCI text. In so I've read up on some pages that
describe the bytea data type:

http://en.wikipedia.org/wiki/Binary_large_object

http://www.postgresql.org/docs/9.1/static/datatype-binary.html

So my question is can and in fact does PostgreSQL and most other RDBMS
have the ability to store large binary files like photos, music, etc
etc into an actual table? I'm guessing the data is dumped into the
table but rather linked or parsed through the file system store path
into the database itself, right? I would just like to know in a basic
round about way how databases store and handle large files like .jpg
or .png files & regardless how relative this term is, how common is it
to use these files or 'bytea' data in tables?

Thanks for any info!


Re: Understanding Binary Data Type

From
Jasen Betts
Date:
On 2012-05-22, Carlos Mennens <carlos.mennens@gmail.com> wrote:
> Hello everyone! I wanted to ask the list a question about the 'bytea'
> data type & how I can picture this in my head. I've been reading SQL
> for about a few months now and since then, I've only been working with
> textual data. Basically I'm familiar with storing text and numerical
> characters into tables but my friend told me that databases can hold
> much more than just ASCI text. In so I've read up on some pages that
> describe the bytea data type:
>
> http://en.wikipedia.org/wiki/Binary_large_object
>
> http://www.postgresql.org/docs/9.1/static/datatype-binary.html
>
> So my question is can and in fact does PostgreSQL and most other RDBMS
> have the ability to store large binary files like photos, music, etc
> etc into an actual table? I'm guessing the data is dumped into the
> table but rather linked or parsed through the file system store path
> into the database itself, right? I would just like to know in a basic
> round about way how databases store and handle large files like .jpg
> or .png files & regardless how relative this term is, how common is it
> to use these files or 'bytea' data in tables?
>
> Thanks for any info!

postgres has a maximum logical row size just under 2GiB so there's plenty of
room there for photos etc (DVD images might not fit).  

postgres uses a strategy called TOAST to move "wide" values out of the
file that holds the main table.

implementation detals: http://www.postgresql.org/docs/9.1/static/storage-toast.html

-- 
⚂⚃ 100% natural



Re: Understanding Binary Data Type

From
"F. BROUARD / SQLpro"
Date:
Hi

Le 22/05/2012 19:13, Carlos Mennens a écrit :
> Hello everyone! I wanted to ask the list a question about the 'bytea'
> data type&  how I can picture this in my head. I've been reading SQL
> for about a few months now and since then, I've only been working with
> textual data. Basically I'm familiar with storing text and numerical
> characters into tables but my friend told me that databases can hold
> much more than just ASCI text. In so I've read up on some pages that
> describe the bytea data type:
>
> http://en.wikipedia.org/wiki/Binary_large_object
>
> http://www.postgresql.org/docs/9.1/static/datatype-binary.html
>
> So my question is can and in fact does PostgreSQL and most other RDBMS
> have the ability to store large binary files like photos, music, etc
> etc into an actual table? I'm guessing the data is dumped into the
> table but rather linked or parsed through the file system store path
> into the database itself, right? I would just like to know in a basic
> round about way how databases store and handle large files like .jpg
> or .png files&  regardless how relative this term is, how common is it
> to use these files or 'bytea' data in tables?

Actually SQL standard offer the ability to store large datafile directly
on the filesystem, but under the control of the RDBMS (the OS cannot
read, write or remove the file directly). This concept is based on the
DATALINK SQL type.
The main advantage is that the file stay exactly as a file and can be
transactionned and backuped like all other dataobjects of the database.

Some RDBMS like IBM DB2 or MS SQL Server does it (For SQL Server it is
called FILESTREAM due to some main differences, but the concept is the
same).

Actually PG does not offer this feature.

A +


>
> Thanks for any info!
>


--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR  :  http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************