ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6865
Скачиваний: 51
511
• обеспечение защиты от несанкционированного доступа или случайного уничтожения дан-
ных;
• гибкость и адаптивность структуры базы данных;
•динамичность данных и способность к расширению;
• возможность поиска по многим ключам.
2.2. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
Рассмотрим вопрос о проектировании баз данных. К любой базе данных возможен подход
на каждом из следующих трех уровней (рис. 6.6):
• на уровне представлений данных конечного пользователя или прикладного программиста
(внешнего представления);
• на уровне концептуального представления данных (представления администратора);
• на уровне внутреннего представления данных (с позиции системного программиста) или
представления реализации.
Под представлением данных понимаются правила организации и кодирования данных.
Представление данных конечного пользователя (внешнее представление) является сово-
купностью требований к данным со стороны некоторой конкретной задачи или программы.
Для конечного пользователя внешнее представление является совокупностью специфика-
ций и реальных форматов данных, отражающих конкретные информационные потребности при
решении некоторой задачи (проблемы). Представление прикладного программиста отображает
элементы данных и их взаимосвязи так, что из данных, хранящихся в базе, может извлекаться
скрытая в них информация (например, возраст человека по дате рождения и текущей дате).
Рис. 6.6.
Трехуровневое представление данных в концепции ANSI/SPARC '
Так как с данными обычно работают многие пользователи и прикладные программисты,
имеется множество частично перекрывающихся внешних представлений данных.
Концептуальное представление данных является интегрированным определением данных
на основе объединения внешних представлений данных для всей совокупности приложений, т.е.
достаточно полной моделью предметной области. Структура данных на концептуальном уровне
называется концептуальной схемой и описывает семантику данных.
Внутреннее (физическое) представление, или представление реализации, выражает пред-
ставление данных системными программистами и связано с организацией хранения данных на фи-
зических носителях информации (запоминающих устройствах) и их обработкой. Основными по-
нятиями внутреннего представления являются физические блоки, хранимые записи, указатели и
т.д. Внутреннее представление обеспечивает доступ к данным на логическом уровне и скрывает от
прикладных программистов и пользователей многие технические детали манипулирования дан-
ными и методов доступа к
ним.
Наибольший интерес для нас представляет концептуальное представление данных, связан-
ное с развитой в 70-80-е годы теорией баз и банков данных и направленное на унификацию дан-
ных и уменьшение
избыточности при интегрировании внешних представлений в концептуальное.
Концептуальное представление основано на определенной модели данных.
Этот
термин,
впервые введенный в 70-х годах основоположником теории баз данных Дж.Коддом, в современ-
512
ной трактовке отображает совокупность правил порождения структур данных в базах данных, по-
следовательности их изменения. Различают три основные типа модели данных: иерархический,
сетевой и реляционный, рассмотренные ранее в гл. 2.
Модель данных предопределяет множество выводимых допустимых типов данных и отно-
шений между ними и является основой для построения модели конкретной базы данных.
Модель базы данных является средством интерпретации содержимого базы данных и реа-
лизации операции по обработке и управлению данными.
Проектирование баз данных представляет собой длительный, трудоемкий и слабоформали-
зованный процесс, от которого зависит жизнеспособность и эффективность проектируемой базы
данных, ее способность к развитию. Важную роль при проектировании базы данных играет мето-
дология построения концептуальных моделей предметной области, включающая методы и средст-
ва, позволяющие спроектировать базу данных, удовлетворяющую заданным целям и требованиям
пользователей и прикладных программистов.
Такими средствами моделирования являются системный анализ, методы экспертных оце-
нок, с помощью которых в концептуальной модели совмещаются концептуальное представление
объективно существующей предметной области и концептуальное представление субъективных
информационных требований к данным со стороны пользователей и прикладных программистов.
В недавнем прошлом процесс проектирования баз данных был ориентирован, в основном,
на требования пользователей и прикладных программистов (ПП-информация) и учитывал текущие
или предвидимые приложения. В этом случае база данных создавалась сравнительно легко и бы-
стро. Однако такие базы данных оказывались неприспособленными к обработке неформализован-
ных, изменяющихся, не предвиденных ранее запросов и приложений, не имели стимулов к даль-
нейшему развитию. Поэтому важную роль при проектировании стала играть информация о пред-
метной области (ПО-информация), не зависящая напрямую от существующих приложений и обес-
печивающая гибкость, адаптивность и универсальность данных, пригодность всей системы к раз-
витию и использованию для незапланированных будущих приложений.
Современная методология проектирования баз данных и построения концептуальных мо-
делей основывается на одновременном учете ПО- и ПП-информаций. ПО-информация в этом слу-
чае используется для построения первоначальной информационной структуры данных, а ПП-
информация - для совершенствования последней с целью повышения эффективности обработки
данных.
Процесс построения концептуальной модели разделяется на следующие этапы:
1) сбор и содержательный анализ априорной информации о предметной области и приклад-
ных задачах пользователей;
2) концептуальный анализ данных и синтез концептуальной модели.
На этапе сбора данных проводятся наблюдения и измерения, собираются отчеты и различ-
ные документы, интервьюируются специалисты в данной предметной области, выявляется пере-
чень задач организации и ее структурных подразделений. Сбор информации начинается с опреде-
ления сферы применения базы данных. Сфера применения базы данных должна определяться не-
зависимо от прикладных задач и охватывать все функциональные подразделения организации.
Для этого проводятся собеседования с руководством организации с целью выявления отделов
данной организации и внешних организаций, связанных с информационным обеспечением теку-
щих и планируемых прикладных задач, а также возможных в будущем изменений в деятельности
организации. Далее проводятся дополнительные собеседования в подразделениях организации с
целью выявления совместно используемых данных. На этом же этапе собранные данные анализи-
руются на предмет устранения дублирования и противоречивости данных, неоднозначности их
определений и описаний, выявляются и формулируются правила обработки информации и приня-
тия решений.
Составляется список данных, требуемых для выполнения каждой из производственных или
управленческих функций, а также формулируются явные и неявные правила, определяющие, как и
когда выполняется каждая функция.
Результатом данного этапа являются
1) список всех создаваемых и используемых элементов данных;
2)
перечень прикладных задач, их характеристик и используемых в них данных;
3) список принимаемых решений в управлении организацией или процессами, а также ус-
513
ловий и правил их принятия;
4) список возможных будущих изменений в деятельности и
их влияний на принятие реше-
ний.
На этапе
концептуализации собранной информации выявляются элеме
нты
предметной об-
ласти, их свойства и взаимосвязи, затем синтезируется структура концептуальной модели базы
данных. Наиболее известными подходами концептуализации являются анализ сущностей и пред-
ставление знаний.
Так как собранная на предыдущем этапе информация является плохо структурированной,
для ее концептуального анализа необходимо использовать методы системного и классификацион-
ного анализа, являющиеся универсальными инструментами организации неформализованного
знания.
На первом шаге анализа ПО-информацин предметная область разбивается на несколько от-
носительно слабо связанных между собой подобластей. Связи между элементами внутри каждой
подобласти являются сильными и реализуют логические отношения типа «род - вид», «целое -
часть».
Следующим шагом анализа является декомпозиция каждой подобласти, вычленение ком-
понент (подсистем, частей) и видов (подклассов), связанных такими же отношениями с объектами
соседних уровней иерархии.
Декомпозиция должна
• быть направлена на выделение элементов предметной области, существенных с точки
зрения прикладных задач базы данных;
• приводить к вычленению элементов, свойства которых могут быть описаны с помощью
собранных на первом этапе элементов данных;
• прекращаться при достижении уровня иерархии, исчерпывающего собранную априорную
информацию об элементах данных.
Следующим шагом концептуального анализа ПО является анализ существенных свойств и
взаимосвязей элементов, выделенных на стадии декомпозиции, а также формулирование и напол-
нение этих свойств с помощью выявленных ранее элементов данных. При этом собственные свой-
ства элементов рассматриваются как атрибуты, а взаимосвязи между элементами - как k-арные от-
ношения.
Синтез информационной структуры концептуальной модели проводится как композиция
(сборка) структуры с учетом связей между частями.
В последние годы мощным инструментом организации плохо структурированных знаний и
построения концептуальных моделей сложных предметных областей стал, так называемый, сис-
темный анализ. В основе системного анализа лежат принципы системного подхода, являющиеся
методологией современного социально-научного познания и социальной практики, составляющие
трактовку любого рассматриваемого объекта как системы. Системой называется совокупность
элементов, находящихся в существенных отношениях и связях друг с другом. Существенность
связей означает, что совместно элементы системы приобретают новое свойство (или функцию),
которым не обладает ни один из элементов сислемы в отдельности. Этим система отличается от
сети - совокупности элементов, несущественно связанных между собой, свойства или функции
любого элемента сети не зависят от других ее элементов. Появление нового свойства системы, не
сводимого к свойствам ее элементов, выражается понятием эмерджентности (целостности).
В качестве основных принципов системного подхода при построении моделей используют-
ся
• рассмотрения объекта с различных точек зрения, выявления аспектов изучаемого объекта
с учетом их взаимосвязи;
• расчленения объекта на более простые подсистемы (основанием для введения подсистем
является то, что связи между подсистемами много слабее, чем между элементами внутри подсис-
темы, а каждая подсистема много проще, чем вся система в целом);
• выделения иерархических отношений типа «целое - часть» между компонентами системы
разных уровней и отношений эквивалентности между компонентами одного уровня.
Системный анализ - это применение системного подхода при обработке конкретной ин-
формации и принятию решений. Рассмотренные принципы системного подхода являются и прин-
ципами системного анализа.
514
Их дополняют следующие специфические принципы:
• анализ любого процесса принятия решения должен начинаться с выявления и четкой
формулировки целей (желаемых результатов деятельности), которые часто определяются на осно-
ве рассмотрения системы более высокого уровня;
• необходимо рассматривать лишь те цели, вероятность достижения которых
р>р
0
за время
l<t
0
,
где
p
0
и
t
0
-
пороги осуществимости цели.
Данные специальные принципы предполагают некую системную стратегию анализа, тре-
бующую рассмотрения не только самой системы, но и внешней по отношению к ней среды (над-
системы или метасистемы), и определение границы между ними.
Перспективой развития документальных информационно-поисковых систем и баз данных
являются банки знаний, новая концепция информационной системы, использующая результаты
исследований и разработок в области искусственного интеллекта.
2.3. ПРЕДСТАВЛЕНИЕ ОБ ЯЗЫКАХ УПРАВЛЕНИЯ
РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ ТИПА dBASE
2.3.1. Основные элементы СУБД типа dBASE
Напомним некоторые термины, используемые в теории реляционных баз данных. Будем
представлять информацию, составляющую базу данных, в виде совокупности прямоугольных таб-
лиц.
Поле -
наименьший поименованный элемент информации, хранящейся в БД и рассматри-
ваемой как единое целое (рис. 6.7).
Поле может быть представлено числом, буквами или их сочетанием (текстом). Например, в
телефонном справочнике полями являются фамилия и инициалы, адрес, номер телефона, т.е. три
поля, причем все текстовые (номер телефона также рассматривается как некоторый текст).
Рис. 6.7.
Представление информации в реляционной БД
Запись -
совокупность полей, соответствующих одному объекту. Так, абоненту телефонной
сети соответствует запись, состоящая из трех полей.
Файл - совокупность связанных по какому-либо признаку записей (т.е. отношение, табли-
ца). Таким образом, в простом случае база данных есть файл.
Все данные в БД разделены по типам. Говоря точнее, вся информация полей, принадлежа-
щих одному столбцу (домену), имеет один и тот же тип. Такой подход позволяет ЭВМ организо-
вать контроль вводимой информации.
При определении полей БД каждое поле может быть отнесено к одному из следующих ти-
пов:
•
символьный тип,
обозначение С (character);
•
числовой тип,
обозначение N (numeric);
•
логический тип,
обозначение L (logical);
•
тип даты,
обозначение Data;
•
примечаний,
обозначение Memo.
Каждый тип служит для хранения специфической информации. В поле типа С можно по-
мещать любые имеющиеся на клавиатуре символы: буквы, цифры, знаки препинания и т.д. Сим-
вольное поле хранится как текст, выровненный по левому краю. Над символьными полями нельзя
выполнять каких-либо вычислений.
В числовом поле могут быть только цифры, знаки «плюс» и «минус», десятичная точка.
Числа выровнены по правому краю. Над числовыми полями можно выполнять вычисления.
Поле логического типа содержит величины, которые могут принимать только одно из двух
значений: истинно или ложно.
515
Поле типа даты может содержать реальные даты в представлении, принятом в США (ме-
сяц/день/год) или в европейских странах.
Описание всех имен, типов и размеров полей составляют структуру базы данных, которая
хранится в памяти вместе с данными. Эту структуру всегда можно просмотреть и при необходи-
мости исправить. Следует различать структуру файла и информацию, содержащуюся в нем. Ос-
новное различие между структурой и информацией состоит в том, что структура остается
неиз-
менной, а информация
меняется
при каждом редактировании или вводе.
Семейство СУБД dBASE.
Среди СУБД для ПК наиболее распространенным в мире явля-
ется семейство dBASE фирмы «Ashton-Tate». Такая популярность объясняется отчасти историче-
ски, так как эта СУБД появилась одной из первых на рынке программных продуктов данного про-
филя; не в меньшей степени этому способствовала удачность заложенных основ конструкции
СУБД и командного языка. Одна из наиболее широко используемых (в настоящее время устарев-
ших) версий этого семейства - dBASE III+.
В новой версии dBASE IV концепция СУБД и командный язык получили значительное раз-
витие, позволившее устранить недостатки предыдущей версии, а также существенно обогатить
палитру средств обработки данных и улучшить интерфейс пользователя.
К числу СУБД реляционного типа, предназначенных для ПК, относятся семейство dBASE
(dBASE II, III, III+ и
IV),
Clipper, Foxbase, R:BASE, Paradox и др. В этих СУБД записи и, соответ-
ственно, поля имеют обычно фиксированную длину (чаще всего длина такой записи достигает
4000...5000 байт). Исключение составляют поля типа Memo, используемые, например, в СУБД се-
мейства dBASE. Число полей в перечисленных СУБД варьируется от 128 до 1024.
Длина поля зависит от типа поля и может составлять от 255 до 4000 байт для текстовых по-
лей, до 20 байт для числовых полей и имеет фиксированные значения для полей типа даты (8 байт)
и логических полей (1 байт). Поле типа Memo служит для хранения больших массивов текстовой
информации и хранится в отдельном файле БД, но воспринимается как поле в составе основного
файла БД. Это поле имеет плавающую длину, определяемую объемом введенной текстовой ин-
формации, и может достигать 32767 байт.
Большинство СУБД реляционного типа для ПК позволяют создавать файлы с числом запи-
сей до 1 млрд. и объемом до 2 Гбайт. Обычно ограничением на число и объем записей, в первую
очередь, выступает емкость внешней памяти ПК на магнитных дисках.
В состав многих СУБД, предназначенных для работы на ПК, входят три основных компо-
нента: командный язык, интерпретирующая система или компилятор для преобразования команд к
выполнимому виду и средства взаимодействия пользователя с СУБД (интерфейс пользователя).
Командный язык
служит для выполнения и обеспечения требуемых операций с данными -
позволяет создавать структуры файлов БД и манипулировать данными, создавать прикладные
программы, экранные формы ввода и вывода информации и т.д. Структура и возможности языка в
значительной степени определяют облик конкретной СУБД, ее возможности. В состав командного
языка ПК также обычно входят специальные команды по установке параметров и состояний сис-
темы (SET-команды), а также функции, предназначенные для различных видов обработки данных
и выполнения вспомогательных действии.
В СУБД команды можно выполнять по одной (после набора с клавиатуры) или группами
команд в автоматическом режиме, предварительно записанных в специальный (программный)
файл. Команды языка СУБД записываются в текстовой форме, близкой к обычному языку. Для
того чтобы ПК могла выполнять такую команду, ее надо преобразовать в вид исполнимых машин-
ных команд.
Существует два принципиально различных способа такого преобразования. В первом спо-
собе используется
интерпретирующая система,
которая
преобразует поочередно команды
в ис-
полнимый вид перед
их непосредственным выполнением. Во втором способе сначала
вся исходная
программа преобразуется
(компилируется) в программу из исполнимых машиной команд и затем
эта программа выполняется.
Первый способ выполнения команд СУБД имеет то преимущество, что исходная программа
занимает сравнительно немного места и памяти. Кроме того, этот способ позволяет выполнять ко-
манды по одной в режиме ввода с клавиатуры или в режиме, управляемом с помощью меню. Од-
нако выполнение исходной программы посредством интерпретации команд происходит достаточ-
но медленно. Второй способ в отличие от первого позволяет выполнять программу значительно