Your definitions are correct, but in a different domain: you are using the mathematical definitions.
What these functions give you is information about the representation of the numbers in memory, not information about the numbers themselves. For example, (integer? 1.0) will give you false.
A rational number in mathematics is one that can be written as a fraction (of integers), or equivalently one that does not have an infinite and non-periodic expansion. A rational number in the sense of "rational?" in Clojure is an object in memory which is actually stored as a couple of integers, not merely a valie that could be stored that way.
As others have mentioned, the way in which a number is stored will have some impact on how much memory it takes up, how fast the computer can compute operations on it, and how much precision will be lost with these operations.
As always, Clojure puts more emphasis on behaviours and interfaces than on implementations, so you should really understand "rational?" as "will I get an exact answer if I use operations that would give an exact answer with a rational number (in the mathematical sense)?"
For example, (/ 1M 3) will throw an exception rather than returning an inexact, truncated answer, whereas (/ 1.0 3) will happily lie to you. (According to the documentation, BigDecimal always returns a correct value or throws an exception, except if you explicitly tell it to round. It can represent values down to about 1e-2_147_483_647, and up to filling your computer's memory.)
For a first step towards understanding floating-point values, I would recommend reading: