Read uncommitted. Это самый низкий уровень изоляции. Согласно стандарту SQL на этом уровне разрешено чтение грязных данных (незакоммиченных записей). Но в PostgreSQL на этом уровне чтение грязных данных не допускается.
Read Committed. По стандарту SQL на этом уровне не допускается чтение грязных данных. Таким образом в PostgreSQL уровни read uncommitted и read committed совпадают. Этот уровень по умолчанию установлен в PostgreSQL.
Repeatable read. Не допускается грязное чтение и неповторяющееся чтение. В PostgreSQL не допускается так же фантомное чтение. Транзакция, использующая этот уровень изоляции делает снимок БД при первом запросе после начала транзакции и работает с этим снимком до конца транзакции. Поэтому не возникает неповторяемости чтения. При этом если другая транзакция изменила данные входящие в состав снимка, то текущая транзакция эти же данные изменить не сможет. Запрос на изменение будет отклонен и потребуется делать изменения уже в новой транзакции (т.е. снова прочитать).
Serializable. Не допускается ни один из феноменов. На этом уровне снимок БД делается сразу после начала транзакции.
Грязное чтение (dirty read). Первая транзакция изменила данные, но еще не зафиксировала свои изменения. В это время вторая транзакция читает измененные данные. Если первая транзакция сделает отмену своих изменений - ROLLBACK, то получится что вторая транзакция работает с данными, которых нет в базе данных.