DX has libraries for graphics, sound, input, network ... OGL just does graphics but can be ported to other OS's (DX is Windows/XBOX ONLY). It's normal for OGL windows apps to "borrow" stuff from DX like DirectInput and DirectSound.
Its admirable that you wish to "learn it all" but IMHO you are heading for a world of hurt if you are trying to dive straight into learning C/C++, Win32 API, DirectX and 3D programing all-in-one. How much free time have you got?
DB is cool because it abstracts everything out so much you don't have to think how it's achieved (Load Object "model.x", 1: YROTATE object 1, 45) is hardly the same as setting up windows with a message processing loop, setting up DirectX, sorting out your DX surfaces and a mesh loader, texture managment, matrix math would run to hundreds of lines. With DB you can think about how your game plays rather than worrying about the engine and framework.
Having said that, DX9 and the .NET framework could ease some pain and if you could learn to put together your own classes to abstract out the complexities of it then you'd have an engine you could use and get results just as fast as you could in DB (or faster as it's your own design). Plus have the satisfaction of doing it.
This has all been done by others before of course (so the words "wheel" and "re-invent" come to mind) and many freeware/shareware engines exist that do just that, for example in PowerRender you can get something decent onto the screen using C++ with only a couple of screens of code, well, depending on your screen res

Plus it comes with a (working?) toolset for BSPs and terrain.
Which way you go is up to you but it would be a shame to have your enthusiasm knocked out of you by lack of results in a reasonable time-frame.
"My ignorance amuses me..."