Informally, a functional dependency means one value on the left side cannot produce multiple values on the right, even when the left side exists in more than one row.1
So, in Wikipedia example, there is a functional dependency Winner -> Winner Date of Birth
, simply because the same winner cannot have different dates of birth even when he/she exists in multiple rows (because he/she won multiple tournaments).
Since...
{Tournament, Year} -> Winner
(since one tournament cannot have multiple winners)- and
Winner -> Winner Date of Birth
(as explained above) - and not
Winner -> {Tournament, Year}
(since one person can win multiple tournaments)
...then by definition there is a transitive dependency.
I cannot understand that Winner Date of Birth->Winner(there may be someone who have same birthday and same name?)
You flipped the direction. The functional dependency is not "from" the single value, it's "toward" it. Therefore Winner -> Winner Date of Birth
, but not Winner Date of Birth -> Winner
.
BTW, There cannot be two people with different names in this model. A better (more realistic) model would probably use a surrogate key to identify people, allowing for duplicated names.
1 Which is compliant with the mathematical concept of "function". No matter how many times you "call" a function (i.e. how many rows contain the f.d. left side), it always produces the same "result" (the f.d. right side). If it could produce multiple results, it would not be a function, it would be a "relation".