NORMAL FORMS 2NF — no dependency on a part of the key Violation: The current level is outside the candidate keys and depends solely on the player_id match_participants match_id + player_id (PK) kills deaths current_player_level 1 42 7 2 12 <- depends only on player_id 2 42 4 3 12 <- and therefore repeats Converted to 2NF: the information that depends on the player is included in the players table match_participants players match_id + player_id PK player_id PK kills deaths assists level nickname UNIQUE NOT NULL region created_at current level in one place; it can be changed with a single operation You need to check all candidate keys, not just the selected primary key. Adding a surrogate key does not, in and of itself, eliminate the partial dependency.