(a) "System bus" was a common aggregation term for "data bus" and "address bus". There are a lot of other buses depending on your machine, e.g. between RAM and video card, or between SCSI controller and devices (hard disks, scanner, whatever).
(b) There's no such thing as "the" memory, it's a whole hierarchy of different memory systems, varying in speed/size/cost. For example, the fastest memory part are the on-processor registers. You can transport their content from and to the data or address bus (to move values to and from RAM), but for example the ALU won't access the registers via "system bus".
(c) Other devices which are able to "drive" the bus. For example, consider a SCSI controller, a scanner or a network card wanting to write something (a disk block, a scanned image, a received packet) to a previously assigned RAM area. Of course, the controller has to harmonize it's RAM access with the CPU. So the device will ask (via an extra control wire) to grant the bus, and wait. After the CPU acknowledges with a signal, the device becomes temporarily bus master and may use data and address bus exclusively (at least for some time), before it has to hand back control. As the CPU is present in every system, but (for example) a network card is not, it's a sensible design choice to make the CPU bus master.