- •Выборка всех листьев в дереве, при моделировании иерархической структуры методом вспомогательной таблицы.
- •Проблемы, возникающие при работе со списками. Способы их преодоления.
- •Понятие кольца. Типы организации колец. Особенности «коралловой» организации кольца.
- •Линейные структуры данных. Стэк и дэк.
- •5) Явное соединение отношений в sql. Левое соединение.
- •6) Явное и неявное соединение таблиц в языке sql. Правое и левое соединение.
- •8) 1,2,3 Нф. «Восходящая и нисходящая» нормализация.
- •9) Моделирование иерархий средствами реляционной субд. Способ полного обхода дерева. Повышение производительности за счет использования индексов.
- •10) Транзакции и проблемы, связанные с ними.
- •11) Рекурсивный способ моделирования иерархий средствами реляционной субд. Проблема поиска листьев.
- •12) Нормализация, основное назначение. Что оптимизирует нормализация?
- •2) Как связаны различные типы зависимостей, процесс нормализации и отношения типа «сущность - связь»?
- •3) Напишите предложение select для отыскания всех общих предков для двух наперёд заданных узлов иерархии в случае моделирования иерархии методом вспомогательной таблицы.
- •2) Приведите пример структуры данных, все отношения которой находятся во всех возможных нормальных формах.
- •3) Напишите предложение select для отыскания всех узлов иерархии не имеющих потомков для случая моделирования иерархии рекурсивным методом.
- •2) Напишите предложение select для отыскания всех общих предков для двух наперёд заданных узлов иерархии в случае моделирования иерархии методом правого и левого коэффициентов.
- •3) Коллективный доступ к данным. Проблемы коллективного доступа. Понятие блокирования или захвата.
- •2) Напишите предложение select для отыскания всех узлов иерархии не имеющих потомков для случая моделирования иерархии методом правого и левого коэффициентов.
- •3) Проблема «утраченного обновления». Способы разрешения.
- •2) Для каких целей могут использоваться данные в формате xml?
- •3) Охарактеризуйте известные вам уровни изоляции транзакций.
- •2) Как соотносятся между собой понятия «сущность – связь» и зависимость (функциональная зависимость, многозначная зависимость и т.П.)?
- •3) При помощи какого предложения select можно осуществить выборку всех потомков наперед заданного узла иерархии при моделировании иерархии способом правого и левого коэффициентов?
- •2) Журнализация изменений бд. Индивидуальные откаты транзакций. Восстановление после «мягкого» сбоя («тёплый пуск»). Восстановление после «жесткого» сбоя («холодный пуск»).
- •3) Перечислите и раскройте понятия зависимостей используемых при определении нормальных форм.
10) Транзакции и проблемы, связанные с ними.
Транзакция — группа последовательных операций, которая представляет из себя логическую единицу работы с данными. Транзакция может быть выполнена целиком либо успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.
Проблемы:
1.Проблема «утраченного обновления».
Если имеет место изменение незафиксированных данных транзакции. Незафиксированные данные транзакции еще называют «грязными» (dirty data). Следует также отметить, что феномен потерянного обновления будет наблюдаться при следующих последовательностях завершения транзакций ((T1, commit) или (T1, rollback)) и ((T2, commit) или (T2, rollback)) в любом порядке. Таким образом, полное описание данного феномена будет включать все четыре варианта завершения транзакций T1 и T2.
2.Проблема зависимости от незафиксированных обновлений.
Проблема зависимости от незафиксированных обновлений состоит в том, что пользователь А может увидеть данные, которые уже были обновлены пользователем В, но эти обновления еще не были окончательно зафиксированы. Далее пользователь В может в силу различных причин, например из-за выявленных ошибок ввода, провести откат базы данных в исходное состояние. Пользователь А в этом случае будет предпринимать действия над ошибочными данными. Иногда для такого рода проблем используется термин «преждевременное чтение» (Dirty read).
Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. Блокировка заключается в запрещении некоторых операций над данными (чаще - корректировки информации), если ее обрабатывает (корректирует) другой пользователь. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-либо единице данных, на эту единицу накладывается блокировка.
3. 3)Проблема «грязного чтения данных». Способы разрешения.
Рассмотрим следующий сценарий совместного выполнения транзакций 1 и 2. Транзакция 1 изменяет объект базы данных A. Параллельно с этим транзакция 2 читает объект A. Поскольку операция изменения еще не завершена, транзакция 2 видит несогласованные "грязные" данные (в частности, операция транзакции 1 может быть отвернута при проверке немедленно проверяемого ограничения целостности). Это тоже не соответствует требованию изолированности пользователей (каждый пользователь начинает свою транзакцию при согласованном состоянии базы данных и в праве ожидать видеть согласованные данные). Чтобы избежать ситуации чтения "грязных" данных, до завершения транзакции 1, изменившей объект A, никакая другая транзакция не должна читать объект A (минимальным требованием является блокировка чтения объекта A до завершения операции его изменения в транзакции 1).
4.Тупики.
Одна из основных функций ОС осуществлять распределение ресурсов между процессами. Как устройства, так и данные могут являться ресурсами. Тупики чаще всего возникают, когда процессу дается эксклюзивный доступ к устройствам, файлам и другим ресурсам. Предположим, что несколько процессов конкурируют за обладание конечным числом ресурсов. Если запрашиваемый процессом ресурс недоступен, процесс переходит в состояние ожидания. В случае если требуемый ресурс удерживается другим ожидающим процессом, то первый процесс не сможет сменить свое состояние. Такая ситуация называется тупиком. Говорят, что в мультипрограммной системе процесс находится в состоянии тупика, дедлока (deadlock) или клинча, если он ожидает события, которое никогда не произойдет.