The file has been moved from /usr/include/ in RedHat 5.2 to /usr/include/db1/ in redhat 6.0, found it while installing OpenSSL and ModSSl
The choice of which ndbm.h implicitly chooses which database emulation to use. What used to be in /usr/include was the gdbm ndbm.h, what is in /usr/include/db1 is the db1 emulation. Since there is no way for Red Hat to choose one emulation over another for all possible applications, there is no way that we can supply /usr/include/ndbm.h.
Then pick one! You _have_ to have to set some kind of standard here, if only for those folks compiling third-party software, like Perl and its various companion libraries, which expects one. As it is now, Redhat 6.0 is a MAJOR bottleneck for me as a professional Perl developer. I've lost two days' work trying to get Perl. 5.005.03 installed without success because of these (effectively) broken DBM libraries. Linking db1/ndbm.h to /usr/include/ndbm.h only increased the number of test errors.