### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
dag = DAG(
            "dag",
            start_date=DEFAULT_DATE,
            owner_links={"owner1": "https://mylink.com", "owner2": "mailto:someone@yoursite.com"},
        )
        assert dag.owner_links == {"owner1": "https://mylink.com", "owner2": "mailto:someone@yoursite.com"}
        session = settings.Session()
        dag.sync_to_db(session=session)
        expected_owners = {"dag": {"owner1": "https://mylink.com", "owner2": "mailto:someone@yoursite.com"}}
        orm_dag_owners = DagOwnerAttributes.get_all(session)
        assert orm_dag_owners == expected_owners
        
        dag = DAG(
            "dag",
            start_date=DEFAULT_DATE,
        )
        dag.sync_to_db(session=session)
        orm_dag_owners = session.query(DagOwnerAttributes).all()
        assert not orm_dag_owners
        
        with pytest.raises(AirflowException):