Respecto de la primera pregunta, define un dominio de la siguiente manera:
Código SQL
[-]
create domain TBoolean as
char(1) not null
check (value in ('S','N'));
a partir de entonces ya puedes usar el tipo TBoolean en tu base de datos.
Respecto de la segunda pregunta puedes usar al final de tu tabla
Código SQL
[-]
on delete no action on update cascade
Con esto prohibes el borrado de registros a los que se hace referencia desde otra tabla y en caso de actualización de la clave, propagas los cambios a las claves secundarias de las otras tablas.
Un saludo