БД Flashcards

1
Q

Уровни изоляции в Postgres

A

Read Commited., Read Uncomitted, Repeatable Read,Serialisable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое транзакция?

A

Множество операций, которые переводят базу данных из одного корректного состояния в другое корректное
состояние (согласованность) при условии, что транзакция выполнена полностью (атомарность) и без помех со стороны других транзакций (изоляция).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие аномалии могут быть при работе с транзакциями в бд

A

Фантомное чтение, грязное чтение, неповторяемое чтение, аномалия сериализации или потерянное обновление (сейчас нигде не допускается. происходит когда транзакции видят одно и то же значение)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое грязное чтение?

A

Одна транзакция может читать изменения, сделанные другой транзакцией, но ещё не закомиченные.
Пример - 1 транзакция переводит деньги на счёт, но не подтверждает. 2 транзакция видит что деньги как бы есть, позволяет их снять. После этого 1 транзакция откатывается и получается что мы не могли снять деньги пока не завершится первая транзакция.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Неповторяющееся чтение

A

Проверяем текущее значение - показывает что 1000
В этот момент другая транзакция сделала update и установила 0
Мы об этом не знаем и уменьшаем значение всё равно. И получается что баланс уходит в минус. (а у нас бизнес правило - запрещаем на счету хранить отрицательные суммы) или пример с докторами

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое блокировки? Какие блокировки ты знаешь в postgres?

A

Блокировки это механизм который упорядочивает конкурентный доступ к разделяемым ресурсам.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие существуют типы ограничений в реляционных базах данных? constraint

A

foreign key, primary key, unique, check, not null, exclude

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Какие локи существуют в postgres?

A

На отношения, на записи, на таблицы
Строчные это когда нельзя изменять выбранные записи, только читать. создаются postgres автоматически.
Табличные - затрагивают всю таблицу
Ручные блокировки
📌 Это пользовательские блокировки, которые не зависят от таблиц или строк.
✅ Можно использовать для блокировки логики внутри приложения (например, гарантировать, что только один процесс обновляет данные).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое null?

A

Указатель на значение отсутствия реального значения

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что происходит с таблицей при добавлении первичного ключа?

A

Автоматически создаём уникальный индекс - B дерево и данные помечаются как not null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Foreign key для чего нужен?

A

Поддержание ссылочной целостности

How well did you know this?
1
Not at all
2
3
4
5
Perfectly