For a simple UART, the data speeds must be agreed upon beforehand but, to synchronize the receive clock with the data requires a clock that runs several times faster than the data rate. Synchronization takes place as follows: -
The "fast" clock in this example runs 12x8x faster than the databit rate and every positive edge of the clock it tests the data looking for a start bit. When that happens, the circuit waits 12 fast clock cycles and "measures" the value of the first bit. From that point, it would measure the data every 8th clock cycle. Here's a bit more detail with a UART that uses a 16x clock: -
I've not gone into some subtleties such as multiple symbol testing to ensure there isn't noise present.