Практические и лабораторные работы / СПО. Практ. 6
.pdfПрактическиезанятия СПО
#6.Многопользовательский доступ к данным, типовыепроблемы.
Д/з для закреплениятемы.
Рассматриваеммеханизмы многопользовательскойработы сБД, основанные на транзакциях. Необходимо ознакомиться стипичными ошибкамипри проектировании модели данных, приводящими впоследствии квозникновению острой конкуренции и массовых блокировокво время многопользовательской работы стакой БД.
Справочно. Типовыеслучаи часто встречаются при пренебрежении нормальными формами во время проектирования структуры таблиц. Например, это поля- «счётчики», таблицы-аггрегаторы данных, таблицы«суперобъектов» (хранящих верхнийродительский классвиерархии наследования) и другие похожие варианты так наз. «бутылочных горлышек» при доступе кданным.
На основе любой реляционной клиент-серверной СУБД требуется показать пример «неправильно» спроектированной таблицы и 1-2SQL-операции обращения кней, которые при массовом выполнении приводили бы ксущественному увеличению блокировоки очередей. Затем предложить способ устранения этой проблемы (добавлением другой таблицы, перестройкой структуры полей, добавлением вспомогательных элементов - индексов, джобов и др.)
Вотчёте приложить тексты DDLи SQLконструкций, а также краткое словесное описание иллюстрируемой проблемы.
Вкачестве отладочного стенда можно использовать доступные online-средства («песочницы») для работы сБД,например sqlfiddle.com
Вспомогательные материалы
https://en.wikipedia.org/wiki/Concurrency_control – общие сведения о механизмах контроля конкурентного доступа кданным
https://habr.com/ru/post/121858/ – краткий обзорный материал о транзакциях, конкуренции и несколькоанти-примеров (ошибокпроектированиятаблиц)
https://www.ozon.ru/context/detail/id/7598812/ – книга «Программирование базданных SQL.
Типичные ошибки и их устранение». Б.Карвин, 2012
Инструменты для онлайн-экспериментов сСУБД (бесплатные):
http://sqlfiddle.com/ – онлайн-песочница для работы сБД
http://sqlfiddle.com/#!9/a6c585/1– пример работы сMySQL
https://www.db-fiddle.com/
https://extendsclass.com/postgresql-online.html#