Методы извлечения знаний
p align="left">Для решения задачи кластеризации (clustering problem) необходим набор неклассифицированных объектов и средства измерения подобия объектов. Целью кластеризации является организация объектов в классы, удовлетворяющие некоторому стандарту качества, например на основе максимального сходства объектов каждого класса [11].Числовая таксономия (numeric taxonomy) - один из первых подходов к решению задач кластеризации. Числовые методы основываются на представлении объектов с помощью набора свойств, каждое из которых может принимать некоторое числовое значение. При наличии корректной метрики подобия каждый объект (вектор из n значений признаков) можно рассматривать как точку в n-мерном пространстве. Мерой сходства двух объектов можно считать расстояние между ними в этом пространстве. Многие алгоритмы кластеризации, как и многие алгоритмы обучения с учителем, определяют категории в терминах необходимых и достаточных условий принадлежности к этим категориям. Эти условия представляют собой наборы признаков, свойственных каждому элементу категории и отличных от признаков другой категории. Таким образом можно описать многие категории, однако человеческие категории не всегда соответствуют этой модели. На самом деле они характеризуются большей гибкостью и более разветвлённой структурой. Человеческие категории определяются сложной системой сходства между элементами, а не необходимыми и достаточными условиями принадлежности членов. При такой категоризации может не существовать свойств, общих для всех элементов класса. Эти проблемы учтены в системе COBWEB [10]. В данной системе реализован инкрементальный алгоритм обучения, не требующий представления всех обучающих примеров до начала обучения. Во многих приложениях обучаемая система получает данные, зависящие от времени. В этом случае она должна строить полезные определения понятий на основе исходных данных и обновлять эти описания с появлением новой информации. В системе COBWEB также решена проблема определения корректного числа кластеров. Подход, когда количество кластеров определяется пользователем нельзя назвать гибким. В системе COBWEB для определения количества кластеров, глубины иерархии и принадлежности категории новых экземпляров используется глобальная метрика качества. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определён при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий. Критерий полезности категории максимизирует вероятность того, что два объекта, отнесённые к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются. Полезность категории определяется формулой: Значения суммируются по всем категориям , всем свойствам и всем значениям свойств . Значение называется предсказуемостью (predictability). Это вероятность того, что объект, для которого свойство принимает значение , относится к категории . Чем выше это значение, тем вероятнее, что свойства двух объектов, отнесённых к одной категории, имеют одинаковые значения. Величина называется предиктивностью (predictiveness). Это вероятность того, что для объектов из категории свойство принимает значение . Чем больше эта величина, тем менее вероятно, что для объектов, не относящихся к данной категории, это свойство будет принимать указанное значение. Значение - это весовой коэффициент, усиливающий влияние наиболее распространённых свойств. Благодаря совместному учёту этих значений высокая полезность категории означает высокую вероятность того, что объекты из одной категории обладают одинаковыми свойствами, и низкую вероятность наличия этихсвойств у объектов из других категорий [11]. Этот алгоритм достаточно эффективен и выполняет кластеризацию на разумное число кластеров. Поскольку в нем используется вероятностное представление принадлежности, получаемые категории являются гибкими и робастными. Кроме того, в нем проявляется эффект категорий базового уровня, поддерживается прототипирование и учитывается степень принадлежности. Эта концепция будет использована в системе извлечения знаний из реляционных баз данных. Одним из основных подходов в «обнаружении знаний в данных» (Data Mining) является кластеризация. Кластеризация служит для объединения больших объемов данных в группы (кластеры), которые характеризуются тем, что элементы внутри каждой группы имеют больше «сходства» между собой, чем между элементами соседних кластеров. В целом, все методы кластеризации можно подразделить на иерархические и неиерархические. Последние чаще всего используются при анализе больших объемов данных, т.к. они обладают большей скоростью [6]. Кластерный анализ позволяет открыть в данных ранее неизвестные закономерности, которые практически невозможно исследовать другими способами и представить их в удобной для пользователя форме. Методы кластерного анализа используются как самостоятельные инструменты исследований, так и в составе других средств Data Mining (например, нейросетей). Кластерный анализ применяется для обработки больших объемов данных, от 10 тысяч записей до миллионов, каждая из которых может содержать сотни атрибутов, и широко используется в распознавании образов, финансах, страховом деле, демографии, торговле, маркетинговых исследованиях, медицине, химии, биологии и др. К настоящему времени разработано большое число методов кластеризации, применяющихся к данным числового типа. В области нечисловых (категориальных) данных общепринятых методов гораздо меньше.(ROCK, DBSCAN, BIRTH, CP, CURE и др.) Обработка данных смешанного типа в настоящий момент вызывает значительные трудности и является областью исследований. Рекомендуемые этапы процесса кластерного анализа. В общем случае все этапы кластерного анализа взаимосвязаны, и решения, принятые на одном из них, определяют действия на последующих этапах [14]. Аналитику следует решить, использовать ли все наблюдения либо же исключить некоторые данные или выборки из набора даннях: · Выбор метрики и метода стандартизации исходных данных. · Определение количества кластеров (для итеративного кластерного анализа). · Определение метода кластеризации (правила объединения или связи). По мнению специалистов, выбор метода кластеризации является решающим при определении формы и специфики кластеров. Анализ результатов кластеризации. Этот этап подразумевает решение таких вопросов: не является ли полученное разбиение на кластеры случайным; является ли разбиение надежным и стабильным на подвыборках данных; существует ли взаимосвязь между результатами кластеризации и переменными, которые не участвовали в процессе кластеризации; можно ли интерпретировать полученные результаты кластеризации. Проверка результатов кластеризации. Результаты кластеризации также должны быть проверены формальными и неформальными методами. Формальные методы зависят от того метода, который использовался для кластеризации. Неформальные включают следующие процедуры проверки качества кластеризации: · анализ результатов кластеризации, полученных на определенных выборках набора данных; · кросс-проверка; · проведение кластеризации при изменении порядка наблюдений в наборе данных; · проведение кластеризации при удалении некоторых наблюдений; · проведение кластеризации на небольших выборках. Один из вариантов проверки качества кластеризации - использование нескольких методов и сравнение полученных результатов. Отсутствие подобия не будет означать некорректность результатов, но присутствие похожих групп считается признаком качественной кластеризации. Как и любые другие методы, методы кластерного анализа имеют определенные слабые стороны, т.е. некоторые сложности, проблемы и ограничения. При проведении кластерного анализа следует учитывать, что результаты кластеризации зависят от критериев разбиения совокупности исходных данных. При понижении размерности данных могут возникнуть определенные искажения, за счет обобщений могут потеряться некоторые индивидуальные характеристики объектов. Существует ряд сложностей, которые следует продумать перед проведением кластеризации. Сложность выбора характеристик, на основе которых проводится кластеризация. Необдуманный выбор приводит к неадекватному разбиению на кластеры и, как следствие, - к неверному решению задачи. Сложность выбора метода кластеризации. Этот выбор требует неплохого знания методов и предпосылок их использования. Чтобы проверить эффективность конкретного метода в определенной предметной области, целесообразно применить следующую процедуру: рассматривают несколько априори различных между собой групп и перемешивают их представителей между собой случайным образом. Далее проводится кластеризация для восстановления исходного разбиения на кластеры. Доля совпадений объектов в выявленных и исходных группах является показателем эффективности работы метода. Проблема выбора числа кластеров. Если нет никаких сведений относительно возможного числа кластеров, необходимо провести ряд экспериментов и, в результате перебора различного числа кластеров, выбрать оптимальное их число. Проблема интерпретации результатов кластеризации. Форма кластеров в большинстве случаев определяется выбором метода объединения. Однако следует учитывать, что конкретные методы стремятся создавать кластеры определенных форм, даже если в исследуемом наборе данных кластеров на самом деле нет. 2.2.2 Решения задачи кластеризации В области машинного обучения широко применяются методы кластерного анализа. Например, в области медицины кластеризация заболеваний, лечения заболеваний или симптомов заболеваний даёт возможность широко использовать таксономию. В области психиатрии правильная диагностика кластеров симптомов, таких как паранойя, шизофрения и т.д., является решающей для успешной терапии. Известны широкие применения кластерного анализа в маркетинговых исследованиях, археологии. Таким образом, в тех случаях, когда необходимо классифицировать большое количество информации для формирования знаний о предметной области, кластерный анализ оказывается весьма полезным и эффективным. Для решения задачи кластеризации (clustering problem) требуются набор неклассифицированных объектов и средства измерения их подобия. Целью кластеризации является организация объектов в классы, удовлетворяющие некоторому стандарту качества, например, на основе максимального сходства объектов каждого класса. Одним из первых подходов решения задач кластеризации является числовая таксономия (numeric taxonomy). Численные методы основываются на представлении объектов с помощью свойств, каждое из которых может принимать некоторое числовое значение. При наличии корректной метрики подобия каждый объект (вектор из n значений признаков) рассматривают как точку в n-мерном пространстве. Используя метрику подобия, алгоритмы кластеризации этой группы строят классы по принципу «снизу вверх». В рамках этого подхода, также называемого стратегией накопительной кластеризации (agglomerative clustering), категории формируются следующим образом: 1) среди всех пар объектов выбирается пара с максимальной степенью подобия, которая и становится кластером; 2) определяются свойства кластера как некоторые функции свойств элементов (например, среднее значение), и компоненты объектов заменяются этими значениями признаков; 3) процесс повторяется до тех пор, пока все объекты не будут отнесены к одному кластеру. Результатом работы такого алгоритма является бинарное дерево, листья которого соответствуют экземплярам, а внутренние узлы - кластерам более общего вида. Данный алгоритм обучения без учителя оценивает плотность по методу максимального правдоподобия. Это означает построение такого распределения, которому с наибольшей вероятностью подчиняются входные объекты. Примером такой кластеризации является система COBWEB [10]. Не претендуя на лучшую модель человеческого познания, эта система учитывает категории базового уровня и степень принадлежности элемента соответствующей категории. Кроме того, в программе COBWEB реализован инкрементальный алгоритм обучения, не требующий представления всех обучающих примеров до начала обучения. Во многих приложениях обучаемая система получает данные, зависящие от времени. В этом случае она должна строить полезные определения понятий на основе исходных данных и обновлять эти описания с появлением новой информации. В системе COBWEB также решена проблема определения корректного числа кластеров. Подход, когда количество кластеров определяется пользователем нельзя назвать гибким. В системе COBWEB для определения количества кластеров, глубины иерархии и принадлежности категории новых экземпляров используется глобальная метрика качества. В системе COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Также в системе реализован метод поиска экстремума в пространстве возможных кластеров с использованием критерия полезности категорий для оценки и выбора возможных способов категоризации. Этот алгоритм достаточно эффективен и выполняет кластеризацию на разумное число кластеров. Поскольку в нем используется вероятностное представление принадлежности, получаемые категории являются гибкими и робастными. Кроме того, в нем проявляется эффект категорий базового уровня, поддерживается прототипирование и учитывается степень принадлежности. Он основан не на классической логике, а, подобно методам теории нечетких множеств, учитывает «неопределенность» категоризации как необходимый компонент обучения и рассуждений в гибкой и интеллектуальной манере. Программа COBWEB является недоступной, и дальнейшая работа будет направлена на реализацию алгоритмов кластеризации для извлечения знаний в прикладных областях. 2.3 Неиерархические методы кластеризации При большом количестве наблюдений иерархические методы кластерного анализа не пригодны. В таких случаях используют неиерархические методы, основанные на разделении, которые представляют собой итеративные методы дробления исходной совокупности. В процессе деления новые кластеры формируются до тех пор, пока не будет выполнено правило остановки. Такая неиерархическая кластеризация состоит в разделении набора данных на определенное количество отдельных кластеров. Существует два подхода. Первый заключается в определении границ кластеров как наиболее плотных участков в многомерном пространстве исходных данных, т.е. определение кластера там, где имеется большое «сгущение точек». Второй подход заключается в минимизации меры различия объектов. Алгоритм k-средних (k-means) Наиболее распространен среди неиерархических методов алгоритм k-средних, также называемый быстрым кластерным анализом. Полное описание алгоритма можно найти в работе Хартигана и Вонга (Hartigan and Wong, 1978). В отличие от иерархических методов, которые не требуют предварительных предположений относительно числа кластеров, для возможности использования этого метода необходимо иметь гипотезу о наиболее вероятном количестве кластеров. Алгоритм k-средних строит k кластеров, расположенных на возможно больших расстояниях друг от друга. Основной тип задач, которые решает алгоритм k-средних, - наличие предположений (гипотез) относительно числа кластеров, при этом они должны быть различны настолько, насколько это возможно. Выбор числа k может базироваться на результатах предшествующих исследований, теоретических соображениях или интуиции. Общая идея алгоритма: заданное фиксированное число k кластеров наблюдения сопоставляются кластерам так, что средние в кластере (для всех переменных) максимально возможно отличаются друг от друга. Описание алгоритма. 1. Первоначальное распределение объектов по кластерам. Выбирается число k, и на первом шаге эти точки считаются «центрами» кластеров. Каждому кластеру соответствует один центр. Выбор начальных центроидов может осуществляться следующим образом: - выбор k-наблюдений для максимизации начального расстояния; - случайный выбор k-наблюдений; - выбор первых k-наблюдений. В результате каждый объект назначен определенному кластеру. 2. Итеративный процесс. Вычисляются центры кластеров, которыми затем и далее считаются покоординатные средние кластеров. Объекты опять перераспределяются. Процесс вычисления центров и перераспределения объектов продолжается до тех пор, пока не выполнено одно из условий: - кластерные центры стабилизировались, т.е. все наблюдения принадлежат кластеру, которому принадлежали до текущей итерации; - число итераций равно максимальному числу итераций. На рисунке 2.4 приведен пример работы алгоритма k-средних для k, равного двум. Рис. 2.4 - Пример работы алгоритма k-средних (13 кадров, 12 повторений). Выбор числа кластеров является сложным вопросом. Если нет предположений относительно этого числа, рекомендуют создать 2 кластера, затем 3, 4, 5 и т.д., сравнивая полученные результаты. Проверка качества кластеризации. После получений результатов кластерного анализа методом k-средних следует проверить правильность кластеризации (т.е. оценить, насколько кластеры отличаются друг от друга). Для этого рассчитываются средние значения для каждого кластера. При хорошей кластеризации должны быть получены сильно отличающиеся средние для всех измерений или хотя бы большей их части. Достоинства алгоритма k-средних: * простота использования; * быстрота использования; * понятность и прозрачность алгоритма. Недостатки алгоритма k-средних: * алгоритм слишком чувствителен к выбросам, которые могут искажать среднее. Возможным решением этой проблемы является использование модификации алгоритма - алгоритм k-медианы; * алгоритм может медленно работать на больших базах данных. Возможным решением данной проблемы является использование выборки данных. Алгоритм PAM (Partitioning around Medoids) PAM является модификацией алгоритма k-средних, алгоритмом k-медианы (k-medoids). Алгоритм менее чувствителен к шумам и выбросам данных, чем алгоритм k-means, поскольку медиана меньше подвержена влияниям выбросов. PAM эффективен для небольших баз данных, но его не следует использовать для больших наборов данных. Предварительное сокращение размерности рассмотрим на примере. Есть база данных клиентов фирмы, которых следует разбить на однородные группы. Каждый клиент описывается при помощи 25 переменных. Использование такого большого числа переменных приводит к выделению кластеров нечеткой структуры. В результате аналитику достаточно сложно интерпретировать полученные кластеры. Более понятные и прозрачные результаты кластеризации могут быть получены, если вместо множества исходных переменных использовать некие обобщенные переменные или критерии, содержащие в сжатом виде информацию о связях между переменными. Т.е. возникает задача понижения размерности данных. Она может решаться при помощи различных методов; один из наиболее распространенных - факторный анализ. Остановимся на нем более подробно. Факторный анализ Факторный анализ - это метод, применяемый для изучения взаимосвязей между значениями переменных. Вообще, факторный анализ преследует две цели: * сокращение числа переменных; * классификацию переменных - определение структуры взаимосвязей между переменными. Соответственно, факторный анализ может использоваться для решения задач сокращения размерности данных или для решения задач классификации. Критерии или главные факторы, выделенные в результате факторного анализа, содержат в сжатом виде информацию о существующих связях между переменными. Эта информация позволяет получить лучшие результаты кластеризации и лучше объяснить семантику кластеров. Самим факторам может быть сообщен определенный смысл. При помощи факторного анализа большое число переменных сводится к меньшему числу независимых влияющих величин, которые называются факторами. Фактор в «сжатом» виде содержит информацию о нескольких переменных. В один фактор объединяются переменные, которые сильно коррелируют между собой. В результате факторного анализа отыскиваются такие комплексные факторы, которые как можно более полно объясняют связи между рассматриваемыми переменными. На первом шаге факторного анализа осуществляется стандартизация значений переменных, необходимость которой была рассмотрена в предыдущей лекции. Факторный анализ опирается на гипотезу о том, что анализируемые переменные являются косвенными проявлениями сравнительно небольшого числа неких скрытых факторов. Факторный анализ - это совокупность методов, ориентированных на выявление и анализ скрытых зависимостей между наблюдаемыми переменными. Скрытые зависимости также называют латентными. Один из методов факторного анализа - метод главных компонент - основан на предположении о независимости факторов друг от друга. Итеративная кластеризация в SPSS Обычно в статистических пакетах реализован широкий арсенал методов, что позволяет сначала провести сокращение размерности набора данных (например, при помощи факторного анализа), а затем уже собственно кластеризацию (например, методом быстрого кластерного анализа). Рассмотрим этот вариант проведения кластеризации в пакете SPSS. Для сокращения размерности исходных данных можно воспользоваться факторным анализом. Для этого в меню выбирается: Analyze (Анализ)/Data Reduction (Преобразование данных)/Factor (Факторный анализ): При помощи кнопки Extraction:(Отбор) можно выбрать метод отбора. Также можно выбрать метод вращения - например, один из наиболее популярных - метод варимакса. Для сохранения значений факторов в виде переменных в закладке «Значения» необходимо поставить отметку «Save as variables» (Сохранить как переменные). В результате этой процедуры пользователь получает отчет «Объясненная суммарная дисперсия», по которой видно число отобранных факторов - это те компоненты, собственные значения которых превосходят единицу. Полученные значения факторов, которым обычно присваиваются названия fact1_1, fact1_2 и т.д., используем для проведения кластерного анализа методом k-средних. Для проведения быстрого кластерного анализа в меню необходимо выбрать: Analyze (Анализ)/Classify(Классифицировать)/K-Means Cluster: (Кластерный анализ методом k-средних). В диалоговом окне K Means Cluster Analysis (Кластерный анализ методом k-средних) необходимо поместить факторные переменные fact1_1, fact1_2 и т.д. в поле тестируемых переменных. Здесь же необходимо указать количество кластеров и количество итераций. В результате этой процедуры получаем отчет с выводом значений центров сформированных кластеров, количестве наблюдений в каждом кластере, а также с дополнительной информацией, заданной пользователем. Таким образом, алгоритм k-средних делит совокупность исходных данных на заданное количество кластеров. Для возможности визуализации полученных результатов следует воспользоваться одним из графиков, например, диаграммой рассеивания. Однако традиционная визуализация возможна для ограниченного количества измерений, ибо, как известно, человек может воспринимать только трехмерное пространство. Поэтому, если мы анализируем более трех переменных, следует использовать специальные многомерные методы представления информации, о них будет рассказано в одной из последующих лекций курса. Итеративные методы кластеризации различаются выбором следующих параметров: - начальной точки; - правилом формирования новых кластеров; - правилом остановки. Выбор метода кластеризации зависит от количества данных и от того, есть ли необходимость работать одновременно с несколькими типами данных. В пакете SPSS, например, при необходимости работы как с количественными (например, доход), так и с категориальными (например, семейное положение) переменными, а также если объем данных достаточно велик, используется метод Двухэтапного кластерного анализа, который представляет собой масштабируемую процедуру кластерного анализа, позволяющую работать с данными различных типов. Для этого на первом этапе работы записи предварительно кластеризуются в большое количество суб-кластеров. На втором этапе полученные суб-кластеры группируются в необходимое количество. Если это количество неизвестно, процедура сама автоматически определяет его. При помощи этой процедуры банковский работник может, например,выделять группы людей, одновременно используя такие показатели как возраст, пол и уровень дохода. Полученные результаты позволяют определить клиентов, входящих в группы риска невозврата кредита. 2.4 Алгоритм COBWEB Примером кластеризации также является система COBWEB. Не претендуя на лучшую модель человеческого познания, эта система учитывает категории базового уровня и степень принадлежности элемента соответствующей категории. Кроме того, в программе COBWEB реализован инкрементальный алгоритм обучения, не требующий представления всех обучающих примеров до начала обучения. Во многих приложениях обучаемая система получает данные, зависящие от времени. В этом случае она должна строить полезные определения понятий на основе исходных данных и обновлять эти описания с появлением новой информации. В системе COBWEB также решена проблема определения корректного числа кластеров. Подход, когда количество кластеров определяется пользователем нельзя назвать гибким. В системе COBWEB для определения количества кластеров, глубины иерархии и принадлежности категории новых экземпляров используется глобальная метрика качества[11.10.32] . В системе COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определён при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий. Критерий полезности категории максимизирует вероятность того, что два объекта, отнесённые к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются. Полезность категории определяется формулой: (2.5) Значения суммируются по всем категориям , всем свойствам и всем значениям свойств . Значение называется предсказуемостью (predictability). Это вероятность того, что объект, для которого свойство принимает значение относится к категории . Чем выше это значение, тем вероятнее, что свойства двух объектов, отнесённых к одной категории, имеют одинаковые значения. Величина называется предиктивностью (predictiveness). Это вероятность того, что для объектов из категории свойство принимает значение . Чем больше эта величина, тем менее вероятно, что для объектов, не относящихся к данной категории, это свойство будет принимать указанное значение. Значение - это весовой коэффициент, усиливающий влияние наиболее распространённых свойств. Благодаря совместному учёту этих значений высокая полезность категории означает высокую вероятность того, что объекты из одной категории обладают одинаковыми свойствами, и низкую вероятность наличия этих свойств у объектов из других категорий. В системе COBWEB реализован метод поиска экстремума в пространстве возможных кластеров с использованием критерия полезности категорий для оценки и выбора возможных способов категоризации. Сначала вводится единственная категория, свойства которой совпадают со свойствами первого экземпляра. Для каждого последующего экземпляра алгоритм начинает свою работу с корневой категории и движется далее по дереву. На каждом уровне выполняется оценка эффективности категоризации на основе критерия полезности. При этом оцениваются результаты следующих операций: · отнесение экземпляра к наилучшей из существующих категорий; · добавление новой категории, содержащей единственный экземпляр; · слияние двух существующих категорий в одну новую ; · добавлением в неё этого экземпляра; · разбиение существующей категории на две и отнесение экземпляра к лучшей из вновь созданных категорий. 3 ОБЗОР И СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ, ИСПОЛЬЗУЕМОГО ПРИ СОЗДАНИИ СУБД Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения. Такая система должна: обеспечивать получение общих и/или детализированных отчетов по итогам работы; позволять легко определять тенденции изменения важнейших показателей; обеспечивать получение информации, критической по времени, без существенных задержек; выполнять точный и полный анализ данных. Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать возможности персональной ЭВМ, нежели среда DOS. Снижение стоимости высокопроизводительных ПК обусловил не только широкий переход к среде Windows, где разработчик программного обеспечения может в меньше степени заботиться о распределении ресурсов, но также сделал программное обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам ЭВМ. Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии “клиент-сервер”. Фактически, у любой современной СУБД существует аналог, выпускаемый другой компанией, имеющий аналогичную область применения и возможности, любое приложение способно работать со многими форматами представления данных, осуществлять экспорт и импорт данных благодаря наличию большого числа конвертеров. Общепринятыми, также, являются технологи, позволяющие использовать возможности других приложений, например, текстовых процессоров, пакетов построения графиков и т.п., и встроенные версии языков высокого уровня (чаще - диалекты SQL и/или VBA) и средства визуального программирования интерфейсов разрабатываемых приложений. Поэтому уже не имеет существенного значения на каком языке и на основе какого пакета написано конкретное приложение, и какой формат данных в нем используется. Более того, стандартом “де-факто” стала “быстрая разработка приложений” или RAD (от английского Rapid Application Development), основанная на широко декларируемом в литературе “открытом подходе”, то есть необходимость и возможность использования различных прикладных программ и технологий для разработки более гибких и мощных систем обработки данных. Поэтому в одном ряду с “классическими” СУБД все чаще упоминаются языки программирования Visual Basic 4.0 и Visual C++, которые позволяют быстро создавать необходимые компоненты приложений, критичные по скорости работы, которые трудно, а иногда невозможно разработать средствами “классических” СУБД. Современный подход к управлению базами данных подразумевает также широкое использование технологии “клиент-сервер”. Таким образом, на сегодняшний день разработчик не связан рамками какого-либо конкретного пакета, а в зависимости от поставленной задачи может использовать самые разные приложения. Поэтому, более важным представляется общее направление развития СУБД и других средств разработки приложений в настоящее время. Выбор программного обеспечения в основном зависит от бюджета и желаемых эксплуатационных качеств. Рыночная цена статистических пакетов варьирует у разных производителей, равно как и мощность и изысканность программ. Для достижения целей, описываемых в этом пособии, «хорошее» программное обеспечение должно предоставлять следующие возможности при условии приемлемой цены: Простота доступа к данням, достаточная мощность, чтобы обрабатывать данные и управлять ими. Наличие продвинутых статистических инструментов. Способность преподносить результаты анализа просто и ясно. Используемые в настоящее время СУБД обладают средствами обеспечения целостности данных и надежной безопасности, что дает возможность разработчикам гарантировать большую безопасность данных при меньших затратах сил на низкоуровневое программирование. Продукты, функционирующие в среде WINDOWS, выгодно отличаются удобством пользовательского интерфейса и встроенными средствами повышения производительности. Рассмотрим основные характеристики некоторых СУБД -- лидеров на рынке программ, предназначенных как для разработчиков информационных систем, так и для конечных пользователей, а именно: · Visual FoxPro 3.0, · Visual Basic 4.0, · Visual С++, · Access 7.0, · SQL Server 6.5. Наиболее интересной чертой этих пакетов являются их большие возможности интеграции, совместной работы и использования данных, так как данные пакеты являются продуктами одного производителя, а также используют сходные технологии обмена данными. Visual FoxPro отличается высокой скоростью, имеет встроенный объектно-ориентированный язык программирования с использованием xBase и SQL, диалекты которых встроены во многие СУБД. Имеет высокий уровень объектной модели. При использовании в вычислительных сетях обеспечивает как монопольный, так и раздельный доступ пользователей к данным. Применяется для приложений масштаба предприятия для работы на различных платформах: Windows 3.x, Windows 95, Macintosh... Минимальные ресурсы ПК: для Visual FoxPro версии 3.0 - процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 8 (12) Мб, занимаемый объем на ЖМД 15-80 Мб, а для Visual FoxPro версии 5.0 (выпущена в 1997 году) - Windows 95 или NT, 486 с тактовой частотой 50 МГц, 10 Мб ОЗУ, от 15 до 240 Мб на ЖМД. Access входит в состав самого популярного пакета Microsoft Office. Основные преимущества: знаком многим конечным пользователям и обладает высокой устойчивостью данных, прост в освоении, может использоваться непрофессиональным программистом, позволяет готовить отчеты из баз данных различных форматов. Предназначен для создания отчетов произвольной формы на основании различных данных и разработки некоммерческих приложений. Минимальные ресурсы ПК: процессор 468DX, Windows 3.1, 95, NT, объем оперативной памяти 12 (16) Мб, занимаемый объем на ЖМД 10-40 Мб. Visual Basic - это универсальный объектно-ориентированный язык программирования, диалекты которого встроены в Access, Visual FoxPro. Преимущества: универсальность, возможность создания компонентов OLE, невысокие требования к аппаратным ресурсам ЭВМ. Применяется для создания приложений средней мощности, не связанных с большой интенсивностью обработки данных, разработки компонентов OLE, интеграция компонентов Microsoft Office. Минимальные ресурсы ПК: процессор 368DX, Windows 3.1, 95, NT, объем оперативной памяти 6 (16) Мб, занимаемый объем на ЖМД 8-36 Мб. Visual C++ - наиболее мощный объектно-ориентированный язык программирования, обладает неограниченной функциональностью. Предназначен для создания компонентов приложений для выполнения операций, критичных по скорости. SQL Server - сервер баз данных, реализует подход “клиент-сервер” и взаимодействует с указанными пакетами. Главные достоинства: высоая степень защиты данных, мощные средства для обработки данных, высокая производительность. Область применения: хранение больших объемов данных, хранение высокоценных данных или данных, требующих соблюдения режима секретности. Минимальные ресурсы ПК: процессор 468DX-33МГц, Windows NT, объем оперативной памяти 16 (32) Мб, занимаемый объем на ЖМД 80 Мб. Указанные программные продукты имеют возможности визуального проектирования интерфейса пользователя, то есть разработчик из готовых фрагментов создает элементы интерфейса, программирует только их изменения в ответ на какие-либо события. В табл. 3.1 показаны места (условные), которые занимают рассматриваемые программные средства относительно друг друга. Например, / означает, что в указанной позиции данная программа обладает лучшими характеристиками, 5 -- худшими, нет-- указанной характеристикой данная программа не обладает. Таблица 3.1. Характеристики СУБД |
Наименование | dBASE IV 2.0 | Microsoft Access 7.0 | Microsoft FoxPro for Windows 2.6 | Visual FoxPro 3.0 | Paradox for DOS 4.5 | Paradox for Windows 4.5 | | Производительность | 4 | 3 | 1 | 1 | 2 | 2 | | Обеспечение целостности данных на уровне базы данных | нет | 1 | нет | нет | 2 | 2 | | Обеспечение безопасности | 2 | 1 | 5 | 5 | 3 | 4 | | Работа в многопользовательских средах | 2 | 2 | 4 | 4 | 1 | 3 | | Импорт-экспорт | 2 | 1 | 2 | 1 | 1 | 1 | | Доступ к данным SQL | 2 | 1 | 2 | 2 | нет | 3 | | Возможности запросов и инструментальные средства разработки прикладных программ | 3 | 3 | 1 | 1 | 2 | 4 | | |
Страницы: 1, 2, 3, 4
|