if a checkbox is checked it's value will be "on", if it's not set there is no value in $_POST.
To make this behavior a little more consistent and predictable, and to make sure you always get some value regardless whether the checkbox was checked or not I always use something like
<input type="hidden" name="somecheckbox" value="0" />
<input type="checkbox" name="somcheckbox" value="1" />
When the checkbox is checked the value of the <input type="checkbox" ... /> is send with the post data, and if it isn't checked the value of the <input type="hidden" ... /> is send with the post data, so you can just check whether the value is 0 (unchecked) or 1 (checked).
And indeed, in the database it customary to use a tinyint to store boolean values