Tournaments are completely independent. Players, leagues, and seasons in your database are also independent. Tournaments and the database have a "loose" connection. When you set a tournament's league, the league name and an internal identifier that references the league in the database are saved as part of the tournament. If you delete that league in your database, when you next load that tournament the TD will alert you that it has a league setting that does not exist in your database, and will force you to either (a) clear the league setting in the tournament, or (b) add the league to your database. By saving the league's name (at the time of the tournament) with the tournament, you are given a better idea of what may have happened (why you don't have that particular league in your database). Same goes for seasons.
Same goes for players, mostly. The player's name (first, last, and nickname) and an internal identifier are stored in the tournament. If, when the tournament is loaded, the internal ID for a player is found in the database, then you've got a "database player" as part of your tournament (and the software will use the information in the player database - first/last/nicknames - to identify the player). Otherwise, you've got a non-database player.
Stats are completely independent of everything, really. To compute stats, the software counts up various items in a set of tournaments that you specify. You specify which tournaments by using the filter. Every time you want to see stats, they are re-computed. So you could load up any given tournament, make a change, then go back to the Stats (and refresh) and you'll see the updated values. Since they are computed every time, they are not saved anywhere.
I don't know if that answers your question ... it was kind of vague.