Физическая организация данных
Скачать 487.44 Kb.
|
Если оптимизатор плохо оптимизирует операцию "или" (OR), то можно заменять её операцией UNION при наличии индексов. Убедиться в "плохой оптимизации" можно так: выполнить запрос по условию (field=X) и запрос с условием ((field=X) OR (field=Y)) на большой таблице. Если второй запрос выполняется намного дольше, чем первый, то OR не оптимизируется. Например, список "Пациенты палат №3 и пациенты, больные гриппом" в отсутствие индексов можно сформулировать так: SELECT * FROM Patients WHERE room=3 OR diagnose LIKE 'грипп%' ; а если индексы есть, то таким: SELECT * FROM Patients WHERE room=3 UNION ALL SELECT * FROM Patients WHERE diagnose LIKE ' грипп%';
Например, список сотрудников всех отделов (10% от общего числа), кроме сотрудников центрального офиса (отдел №3) будет выглядеть так: SELECT * FROM Emp WHERE deptNo<3 UNION ALL SELECT * FROM Emp WHERE deptNo>3;
SELECT * FROM emp WHERE depNo<3 ORDER BY tabNo;
При настройке команд SQL важно помнить, что, настраивая одну из них, можно оказать влияние (и не всегда позитивное) на другие команды. Поэтому во время настройки необходимо периодически осуществлять регрессионное тестирование, т.е. повторный запуск уже протестированных команд для оценки времени их выполнения. Многие СУБД позволяют просмотреть план выполнения запроса средствами администрирования. Так можно убедиться в том, что система использует поостренные индексы для выполнения запросов. "Сложная система, спроектированная наспех, никогда не работа-ет, и исправить её, чтобы заставить работать, невозможно". Законы Мерфи. 16-й закон системантики
Проектирование базы данных (БД) - одна из наиболее сложных и ответственных задач, связанных с созданием автоматизированных информационных систем (АИС). В первую очередь АИС должна обеспечивать ведение БД: запись, чтение, модификацию данных, удаление неактуальных данных (возможно, в архив) и защиту данных. Взаимодействие конечных пользователей с БД обычно осуществляется с помощью интерфейсного приложения, входящего в состав АИС. Если пользователей АИС можно разделить на группы по характеру решаемых задач, то приложений может быть несколько (по количеству задач или групп пользователей). В результате проектирования БД должны быть определены состав базы данных, эффективный для всех её будущих пользователей способ организации данных и инструментальные средства управления данными.
Основные требования, которым должен удовлетворять проект БД:
База данных должна быть гомоморфным образом моделируемой предметной области, т.е. каждой сущности ПО должны соответствовать данные в памяти ЭВМ, а каждому процессу - адекватные процедуры обработки данных. Корректность подразумевает также логическую непротиворечивость базы данных, которая поддерживается автоматически с помощью средств СУБД.
В первую очередь имеются в виду ограничения на объёмы внешней и оперативной памяти, которые потребуются для функционирования БД.
База данных должна быть спроектирована таким образом, чтобы при её эксплуатации соблюдались ограничения на время реакции системы на запросы и модификацию данных.
Проект БД должен включать описание защиты данных от несанкционированного доступа. Защита от сбоев является внутренней функцией СУБД, но требования к настройке механизмов защиты также выдвигаются на этапе проектирования БД, т.к. определяются предметной областью.
Под этим подразумевается возможность развития и адаптации БД к изменениям предметной области и/или требований пользователей. Конечно, нельзя предусмотреть все возможные варианты использования и изменения базы данных. Но в большинстве предметных областей основные сущности и их взаимосвязи относительно стабильны. Меняются только информационные требования, т.е. способы использования данных для решения задач.
Под этим подразумевается соблюдение привычного для пользователя алгоритма работы с данными. От этого не в последнюю очередь зависит количество ошибок пользователя. Удовлетворение первых 4-х требований обязательно для принятия проекта. В создании автоматизированной информационной системы, вклю-чающей базу данных, можно выделить три этапа:
Проектирование начинается обычно с планирования, что позволяет:
Работа по созданию БД начинается с подбора кадров. Требуется определить, какие специалисты необходимы для выполнения этой работы. В общем случае это должны быть следующие категории:
При определении потребности в кадрах может возникнуть ситуация, когда уже на этом этапе станет очевидна невозможность подбора нужного количества специалистов определённого профиля и квалификации. Тогда это может привести к пересмотру объёма задач, стоящих перед базой данных. Общая схема жизненного цикла приложения баз данных приведена на рис. 8.1. Как видно из этого рисунка, проектирование носит итерационный характер. Например, если на каком-либо этапе выясняется, что ранее сформулированные требования или решения не могут быть реализованы, то разработчики должны вернуться на более ранний этап и внести соответствующие изменения. Эти изменения, естественно, могут потребовать корректировки ранее выполненных этапов. Перечислим более подробно задачи, решение которых должно предшествовать созданию проекта БД.
Включает в себя сбор документов, характеризующих ПО, укрупнённое описание ПО (не детализированное) и общую постановку задачи. В процессе анализа и проектирования желательно ранжировать планируемые функции системы по степени важности. Один из возможных вариантов классификации - MoSCoW-анализ (терминология Клегга и Баркера, [8]): Must have - необходимые функции; Should have - желательные функции; Could have - возможные функции; Won't have - отсутствующие функции Необходимые функции обеспечивают возможности, которые являются критическими для успешной работы системы. Реализация желателъныых и возможных функций системы ограничена временными и/или финансовыми рамками. Отсутствующие функции - это те функции, которые реально существуют, но не будут реализованы в этом проекте по различным причинам. Примечание: если применяются средства автоматизации проектирования (CASE-средства), то задачу последовательного внесения изменений берёт на себя это CASE-средство.
Эта задача обычно решается итеративно во взаимодействии проектировщиков и заказчиков (или аналитиков). На этом этапе очень важно определить, что проектировщики правильно понимают описание предметной области и задачи, поставленные перед ними аналитиками. Для этого обычно проводятся совместные семинары, на которых проверяется адекватность модели и предметной области. Рис. 8.1. Жизненный цикл приложения баз данных
В данном случае под термином критические факторы подразумеваются как "жизненно важные для приёмки и успешной реализации проекта”, так и "критические с точки зрения функционирования системы". Очевидно, что если не учесть хотя бы один из таких факторов, то существование и успешное функционирование проекта будет поставлено под вопрос.
В качестве часто встречающихся ограничений можно отметить следующие: о финансовые о временные о технические (например, выбор определённой аппаратуры); о программные (например, выбор определённого программного обеспечения);
Под целевой архитектурой в данном случае понимается архитектура с точки зрения СУБД (однозадачная или многозадачная, архитектура клиент-сервер, параллельный сервер). Выбор архитектуры повлияет в дальнейшем на перечень требуемых аппаратных и программных средств.
Необходимо примерно оценить количество транзакций в единицу времени и объём обрабатываемых этими транзакциями данных. Требования к производительности зависят от режима, в котором будет функционировать система:
о правил именования объектов; о стандарта проектной документации; о правил введения общих типов и т.п.
Собственно процесс проектирования БД включает в себя следующие основные этапы:
Эти этапы подробно рассмотрены в следующем разделе. После того, как проект базы данных создан, наступает этап реализации проекта. Он разбивается на следующие шаги:
о автономные - тесты отдельных модулей; о тестыг связей - тесты между модулями; о регрессивныге - тесты на проверку уже автономные - тесты отдельных модулей; о протестированных модулей в связи с подключением новых модулей (функций), которые могут нарушить работу ранее созданных модулей; о нагрузочныге - тесты на проверку времени реакции системы в рабочем режиме или определение производительности системы; о системныге - тесты на проверку функционирования системы в целом; о приёмо-сдаточные - тесты, которые проводятся при сдаче системы (АИС) в эксплуатацию. На этапе III.4 обычно выполняются нагрузочные, системные и приёмосдаточные тесты.
|