I have worked many positions where delete of data was almost always forbiden (gov (military) conctract, financial, Nuclear power plants). If a delete is to be performed on parent data we always require a reponse in the affirmitave that the delete is required. If the answer is yes we would code the delete of all required tables in stored procs or in the code itself. If someone did a delete on the database the keys will keep the delete from happening by accident.

In fact more often then not the delete was not a phsyical delete but a locgical delete only (the record had a field to mark it as logically deleted).