- •1 СТАТИСТИЧЕСКАЯ ОБРАБОТКА БИОМЕДИЦИНСКОЙ ИНФОРМАЦИИ
- •1.1 Биомедицинская информация и способы ее получения
- •1.2 Организация медико-статистических исследований
- •1.3 Относительные величины
- •1.4 Статистическая обработка вариационного ряда
- •1.4.1 Основные понятия и определения
- •1.4.2 Методика составления вариационного ряда
- •1.4.3 Методика статистической обработки вариационного ряда при нормальном законе распределения вариант
- •1.4.4 Расчет статистических характеристик при малом числе наблюдений
- •1.5 Выборочный метод исследований
- •1.5.1 Формирование выборочной совокупности
- •1.5.2 Определение объема выборочной совокупности
- •1.5.3 Сравнение средних арифметических величин двух выборок из совокупности с нормальным распределением вариант
- •1.6 Основы дисперсионного анализа
- •1.6.1 Общие положения
- •1.6.2 Методика однофакторного дисперсионного анализа
- •1.6.3 Методика двухфакторного дисперсионного анализа
- •1.6.4 Методика однофакторного дисперсионного анализа альтернативных признаков
- •1.7 Определение соответствия эмпирических и теоретических данных
- •1.7.1 Общие положения
- •1.7..2 Определение соответствия признаков альтернативных явлений
- •1.7.3 Определение критерия χ2 по данным, представленным в сложных таблицах
- •1.7.4 Проверка соответствия фактических частот вариационного ряда теоретическому распределению
- •1.8 Корреляционный анализ
- •1.8.1 Способы выявления корреляционной связи
- •1.8.2 Виды и теснота корреляционной связи
- •1.8.2 Определение коэффициент корреляции при малом числе наблюдений
- •1.8.3 Определение коэффициент корреляции при большом числе наблюдений
- •1.8.4 Средняя ошибка коэффициента корреляции
- •1.8.5 Определение тесноты связи между качественными признаками
- •1.8.6 Множественная корреляция
- •1.8.7 Понятие о корреляционном отношении
- •1.9 Основы регрессионного анализа
- •1.10 Непараметрические критерии в медицинских исследованиях
- •1.10.1 Критерии для характеристики одной совокупности
- •1.10.2 Критерии различия для двух сопряженных совокупностей
- •1.10.3 Критерии различия для двух несопряженных совокупностей
- •1.10.3 Непараметрические методы изучения связи
- •1.11 Современное программное обеспечение для статистической обработки биомедицинских исследований
- •2 ПРИНЦИПЫ ПОСТРОЕНИЯ БАНКОВ ДАННЫХ
- •2.1 Общие сведения о банках данных
- •2.2 Типы баз данных
- •2.2.1 Автономные базы данных
- •2.2.2 Файл-серверные базы данных
- •2.2.3 Многоярусные базы данных
- •2.2.4 Базы данных клиент/сервер
- •2.3 Реляционный подход к построению БД
- •2.3.1 Реляционная модель данных
- •2.3.1.1 Целостность данных
- •2.3.2 Реляционная алгебра
- •2.3.3 Реляционное исчисление
- •2.4 Иерархический и сетевой подходы
- •2.4.1 Иерархический подход.
- •2.4.2 Сетевой подход.
- •2.5 Инвертированные базы данных
- •2.6 Принципы построения реляционных баз данных
- •2.6.1 Процедура индексирования
- •2.6.2 Организация связи с базами данных прикладных программ
Индексы могут использоваться как раздельно, так и совместно для более эффективного доступа к данным об успеваемости, например, при запросе на поиск студентов, сдавших физику на 5.
Тогда согласно индексу PN для студентов будут найдены записи с идентификационными указателями 3412 и 3414, а согласно индексу OCENKA - записи с указателями 3412 и 3415. Понятно, что на основе сравнения этих двух наборов записей условиям запроса удовлетворяет только запись с данными о студенте 3412 и только после этого в СУБД будет организован доступ к файлу успеваемости и будет извлечена данная запись.
Часто индекс создают на основе комбинации двух или более полей. Например, на рис. 2.19 показана схема индексирования файла успеваемости на основе комбинации полей PN и OCENKA. При такой организации индексов в СУБД можно выполнить запрос на поиск студентов, сдавших физику на 5 на основе однократного просмотра с помощью одного индекса, в то время как при использовании пары индексов требуется два отдельных просмотра, тем более, что скорость выполнения запроса может сильно зависеть от последовательности выполнения отдельных просмотров по индексам.
Рис. 2.19. Индексирование таблицы оценок по комбинации двух полей PN и
OCENKA
Итак, основной целью использования индекса является ускорение процесса извлечения данных, за счет уменьшения числа дисковых операций вводавывода, для чего используются указатели.
2.6.2 Организация связи с базами данных прикладных программ
Создают базы данных и обрабатывают запросы к ним системы управления базами данных — СУБД. Известно множество СУБД, различающихся своими возможностями или обладающих примерно равными возможностями и конку-
рирующих друг с другом: Paradox, dBase, Microsoft Acess, FoxPro, Oracle, Inter-
131
Base, Sybase и много других.
Разные СУБД по разному организуют и хранят базы данных. Например, Paradox и dBase используют для каждой таблицы отдельный файл. В этом случае база данных — это каталог, в котором хранятся файлы таблиц. В Microsoft Access и в InterBase несколько таблиц хранится как один файл. В этом случае база данных — это имя файла с путем доступа к нему. Системы типа клиент/сервер, такие, как серверы Sybase или Microsoft SQL, хранят все данные на отдельном компьютере и общаются с клиентом посредством специального языка, называемого SQL.
Поскольку конкретные свойства баз данных очень разнообразны, пользователю было бы весьма затруднительно работать, если бы он должен был указывать в своем приложении все эти каталоги, файлы, серверы и т.п. Да и приложение часто пришлось бы переделывать при смене, например, структуры каталогов и при переходе с одного компьютера на другой, Чтобы решить эту про-
блему, используют псевдонимы баз данных.
Псевдоним (alias) содержит всю информацию, необходимую для обеспечения доступа к базе данных. Эта информация сообщается только один раз при создании псевдонима. А приложение для связи с базой данных использует псевдоним. В этом случае приложению безразлично, где физически расположена та или иная база данных, а часто безразлична и СУБД, создавшая и обслуживающая эту базу данных. При смене системы каталогов, сервера и т.п. ничего в приложении переделывать не надо. Достаточно, чтобы администратор базы данных ввел соответствующую информацию в псевдоним.
При работе с базами данных часто используется кэширование всех изменений. Это означает, что все изменения данных, вставка новых записей, удаление существующих записей, т.е. все манипуляции с данными, проводимые пользователем, сначала делаются не в самой базе данных, а запоминаются в памяти во временной, виртуальной таблице. И только по особой команде после всех проверок правильности вносимых в таблицу данных пользователю предоставляется возможность или зафиксировать все эти изменения в базе данных, или отказаться от этого и вернуться к тому состоянию, которое было до начала редактирования.
Фиксация изменений в базе данных осуществляется с помощью транзакций. Это совокупность команд, изменяющих базу данных. Пользователю предоставляется возможность завершить транзакцию или внесением всех изменения в реальную базу данных, или отказом от этого с возвратом к тому состоянию, которое было до начала транзакции.
Основой работы прикладных программ с базами данных является Borland Database Engine (BDE) — процессор баз данных фирмы Borland. BDE служит посредником между приложением и базами данных. Он предоставляет пользователю единый интерфейс для работы, развязывающий пользователя от конкретной реализации базы данных. Благодаря этому не надо менять приложение при смене реализации базы данных. Приложение никогда не обращается непо-
132
средственно к базе данных, а только к BDE. Таким образом, общение с базами данных соответствует схеме, приведенной на рис. 2.20.
Приложение, когда ему нужно связаться с базой данных, обращается к BDE и сообщает обычно псевдоним базы данных и необходимую таблицу в ней. BDE реализован в виде динамически присоединяемых библиотек DLL.
Они, как и любые библиотеки, снабжены API (Application Program Interface —
интерфейсом прикладных программ), названным IDAPI (Integrated Database Application Program Interface). Это список процедур и функций для работы с базами данных, которым и пользуются приложения.
BDE по псевдониму находит подходящий для указанной базы данных драйвер. Драйвер — это вспомогательная программа, которая понимает, как общаться с базами данных определенного типа. Если в BDE имеется собственный драйвер соответствующей СУБД, то BDE связывается через него с базой данных и с нужной таблицей в ней, обрабатывает запрос пользователя и возвращает в приложение результаты обработки. BDE поддерживает естественный доступ к таким базам данных, как Microsoft Access, FoxPro, Paradox, dBase.
Рис. 2.20. Схема связи приложения с базами данных
Если собственного драйвера нужной СУБД в BDE нет, то используется драйвер ODBC. ODBC (Open Database Connectivity) — это DLL, аналогичная по функциям BDE, но разработанная фирмой Microsoft. Она хранится в файле ODBC.DLL. Поскольку Microsoft включила поддержку ODBC в свои офисные продукты и для ODBC созданы драйверы практически к любым СУБД, фирма Borland включила в BDE драйвер, позволяющий использовать ODBC. Правда, работа через ODBC осуществляется несколько медленнее, чем через собствен-
133
ные драйверы СУБД, включенные в BDE.
BDE поддерживает SQL — стандартизованный язык запросов, позволяющий обмениваться данными с SQL-серверами, такими, как Sybase, Microsoft SQL, Oracle, Interbase. Эта возможность используется особенно широко при работе на платформе клиент/сервер.
В C++ введена другая альтернативная возможность работы с базами данных, минуя BDE. Это разработанная в Microsoft технология ActiveX Data Objects (ADO). ADO — это пользовательский интерфейс к любым типам данных, включая реляционные и не реляционные базы данных, электронную почту, системные, текстовые и графические файлы. Связь с данными осуществляется посредством так называемой технологии OLE DB. Использование ADO обеспечивает более эффективную работу с данными. Для реализации этой возможности на компьютере пользователя должна быть установлена система ADO 2.1 или более старшая версия. Кроме того должна быть установлена клиентская система доступа к данным, например, Microsoft SQL Server, а в ODBC должен иметься драйвер OLE DB для того типа баз данных, с которым вы работаете.
Надо сказать, что возможности ADO в С++ пока в некоторых отношениях ниже, чем возможности BDE.
134
