Външен ключ с каскадно изтриване означава, че ако се изтрие запис в родителската таблица, тогава съответните записи в дъщерната таблица ще бъдат изтрити автоматично. Това се нарича каскадно изтриване.
Вие казвате по обратен начин, това не е, че когато изтриете от дъщерна таблица, записите ще бъдат изтрити от родителската таблица.
UPDATE 1:
ЗА ИЗТРИВАНЕ НА КАСКАДА опцията е да посочите дали искате редовете да бъдат изтрити в дъщерна таблица, когато съответните редове се изтрият в родителската таблица. Ако не зададете каскадни изтривания, поведението по подразбиране на сървъра на базата данни ви пречи да изтриете данни в таблица, ако други таблици се позовават на нея.
Ако посочите тази опция, по-късно, когато изтриете ред в родителската таблица, сървърът на базата данни също изтрива всички редове, свързани с този ред (външни ключове) в дъщерна таблица. Основното предимство на функцията за каскадно изтриване е, че ви позволява да намалите количеството SQL изрази, от които се нуждаете, за да извършите действия за изтриване.
Така че всичко е за това какво ще се случи, когато изтриете редове от родителска таблица, а не от дъщерна таблица.
Така че във вашия случай, когато потребителят премахне записи от таблицата CATs, тогава редовете ще бъдат изтрити от таблицата с книги. :)
Надявам се това да ви помогне :)