How do I set "has_title = false" for an existing node? I understand how to set the node attribute 'has title' via the hook_node_info() when creating a node programmatically. However, I struggle to edit this attribute for a node that has been created with the built in Drupal node designer. Can anyone please give me advice on how to modify this attribute, for example on a node such as "article"? Which hook do I use and when? Could I even modify this attribute directly in the database and therefore get this changed permanently?
There is good comment in source:  

// title_label is required in core; has_title will always be true, unless a
// module alters the title field.
$type-&gt;has_title = ($type-&gt;title_label != '');


So, you can alter the form and customize it. 
I have created a simple example, because I found it interesting.

/**
 * Implements hook_form_FORM_ID_alter().
 * Alter 'node_type_form'
 */
function nodetitle_off_form_node_type_form_alter(&amp;$form, &amp;$form_state) {

    $type = $form['#node_type'];
    $default_value = $type-&gt;has_title;
    // Create simple flag
    $form['submission']['nodetitle_off'] = array(
        '#type' =&gt; 'checkbox',
        '#title' =&gt; t('Has title'),
        '#default_value' =&gt; $default_value,
        '#weight' =&gt; -1,
    );

    $value = !empty($form_state['input']) ? isset($form_state['input']['nodetitle_off']) : $default_value;
    if (!$value) {
        // Make field not required and empty
        $form['submission']['title_label']['#required'] = FALSE;
        $form_state['values']['title_label'] = '';
    }

}