Автор работы: Пользователь скрыл имя, 19 Октября 2009 в 12:29, Не определен
информатика, базы данных, модели
Большинство современных систем БД основано на реляционной парадигме, тогда как самые первые системы баз данных строились на основе сетевой или иерархической модели. При использовании последних двух моделей от пользователя требуется знание физической организации базы данных, к которой он должен осуществлять доступ, в то время как при работе с реляционной моделью независимость от данных обеспечивается в значительно большей степени. Следовательно, если в реляционных системах для обработки информации в базе данных принят декларативный подход (т.е. они указывают, какие данные следует извлечь), то в сетевых и иерархических системах - навигационный подход (т.е. они указывают, как их следует извлечь).
Физические модели данных. Физические модели данных описывают то, как данные хранятся в компьютере, представляя информацию о структуре записей, их упорядоченности и существующих путях доступа.
Концептуальное моделирование. Как показывает изучение трехуровневой архитектуры СУБД, концептуальная схема является "сердцем" базы данных. Она поддерживает все внешние представления, а сама поддерживается средствами внутренней схемы. Однако внутренняя схема является всего лишь физическим воплощением концептуальной схемы. Именно концептуальная схема призвана быть полным и точным представлением требований к данным в рамках некоторой предметной области. В противном случае определенная часть информации о предприятии будет упущена или искажена, в результате чего могут возникнуть трудности при попытках полной реализации одного или нескольких внешних представлений.
Концептуальное
моделирование базы данных - это процесс
конструирования модели использования
информации. Этот процесс не зависит от
таких подробностей, как используемая
СУБД, прикладные программы, языки программирования
или любые другие вопросы физической организации
информации. Подобная модель называется
концептуальной моделью данных.
Первой и самой
важной функцией базы данных, является
функция хранения информации. Информация
должна хранится упорядоченно для более
быстрого и понятного пользователю
доступа к ней. Упорядоченность информации
в базе данных, помимо удобств доступа,
может привести к значительному сокращению
аппаратных ресурсов, необходимых для
ее обслуживания. Упорядоченность достигается
путем нормализации.
Здесь мы вплотную подошли ко второй функции
базы данных – ввод информации. Какую
информацию будет вводить пользователь?
Хорошая база данных построена из главного
документа, справочников, из которых пользователь
вводит информацию и нескольких полей
для ручного ввода, например, текстов назначения
платежа в платежных поручениях и суммы.
База данных должна заполняться средствами,
наиболее полно автоматизирующими этот
процесс. При этом плохим тоном являются:
ввод информации об одном объекте разными
способами или в разных местах;
ввод одной и той же информации в нескольких
местах;
ввод информации разрозненно, без поддержания
общей структуры объекта. Одной из основных
функций базы данных является автоматизация.
Под автоматизацией, как правило, понимают
автоматическое создание выходных документов
и пересчет данных, например печать накладной,
счета фактуры и протокола согласования
цен в складской программе для исходящей
накладной.
Далее, нужно вспомнить о системах принятия
решений. Информационная система должна
позволять создавать статистические отчеты
в реальном режиме времени о состоянии
описываемого в базе данных процесса.
Эта функция удобна для руководителей
подразделений, которые могут прогнозировать
поведение описываемой системы на основе
статистических данных, полученных из
базы данных.
Собственно, описанные выше функции информационной
системы являются “джентльменским набором”,
которого достаточно в большинстве случаев.
Из дополнительных функций необходимо
упомянуть возможность поиска по нескольким
взаимосвязанным характеристикам.
В единой информационной системе необходима
возможность идентификации пользователя
с целью ограничения доступа пользователя
к определенным частям базы данных и введения
информации о создателе документа и лиц,
редактировавших его. Это придаст пользователям
ощущение ответственности за выполняемые
действия.
Хорошая информационная система должна
легко расширяться при необходимости
добавления в нее новых возможностей.
Расширяемость подразумевает элементы
объектной ориентированности, встроенные
в базу данных. Настраивая эти объекты,
возможно вносить незначительные изменения
в структуру базы данных, что продляет
срок морального устаревания всей информационной
системы. Одним из факторов расширяемости
является возможность сочленять разнородные
базы данных в единый комплекс. Такая возможность
сейчас реализуется через дополнительные
модули, которые по своей сути являются
серверами приложений, или правильное
построение базы данных по классическим
реляционным законам. Последний случай
затрудняется тем, что некоторые серверы
базы данных не могут выполнить один SQL
запрос к разным базам данных, тем более
находящимся в географической удаленности
друг от друга. Еще одна удобная функция
в базе данных – это сквозное прохождение
по документам.
Описанные выше функции в разных реализациях
информационных систем имеют специфические
черты, ориентированные на конкретное
прикладное применения.
Разработка любой
информационной системы включает в
себя несколько взаимно
Следует заметить, что анализ и проектирование базы данных являются самыми ответственными частями работы, поскольку от одной БД обычно зависит создание сразу многих приложений, а требования к БД меняются медленнее, тем требования к приложениям. Чем крупнее информационная система, тем больший упор должен быть сделан на проектирование базы данных по сравнению с остальными процессами разработки.
Результатом анализа и проектирования информационной системы являются модели. Они используются для следующих целей:
Прежде всего, разработчики информационной системы создают обобщенное и не слишком формальное описание базы данных, объединяя частные представления об её содержимом, полученные из опроса пользователей (сотрудников организации, для которой предназначена система). Это описание, выполненное с использованием естественного языка, таблиц, формул, графиков и тому подобных средств, называют инфологической (или информационной, или концептуальной, или семантической) моделью данных (см. Рис. 2.1). Такая ориентированная на человека модель полностью независима от физических параметров среды хранения данных, и этой средой может быть, например, память человека, а не компьютера. Остальные модели ориентированы не на смысл (семантику) данных, а на их компьютерное представление. На базе второй модели – даталогической (или просто логической) – СУБД предоставляет доступ к хранимым данным лишь по их именам, не заботясь о физическом размещении этих данных. Даталогические модели должны быть описаны на языке описания данных этой СУБД (к счастью, разные СУБД имеют близкие языки, см. 1.3.2). Нужные данные отыскиваются СУБД на внешних запоминающих устройствах в соответствии с третьей – физической – моделью данных. Структура данных этой модели (данных конфигурации) уже слишком зависит от СУБД, поэтому в данном курсе она практически не рассматривается.
Три уровня моделей БД (семантический, логический и физический) обеспечивают независимость данных от использующих их приложений. Разработчик (или администратор) информационной системы может при необходимости переписывать данные на другие носители информации, оптимизировать их физическую структуру и даже переносить систему на другую СУБД, изменяя тем самым лишь физическую модель данных. Он также может подключить к системе любое число новых пользователей и новых приложений, дополняя, если надо, логическую модель. Указанные изменения физической и логической моделей не будут замечены существующими пользователями системы, которые работают с БД на семантическом уровне. Приложения же зависят от данных логического уровня, поэтому их код может меняться, однако при правильном проектировании БД изменения незначительны.
Данный курс
напрямую касается лишь двух из перечисленных
в начале этого раздела процессов разработки
– проектирования БД (часть пункта 3) и
реализации доступа к ней (часть пункта
4), которые в совокупности представляют
собой формирование логической (даталогической)
модели данных. Однако формулировку требований
и анализ (пункты 1 и 2), результаты которых
выражаются в семантической (инфологической)
модели, также необходимо кратко рассмотреть,
поскольку на них основывается дальнейшая
работа по проектированию БД.
Создание и внедрение в практику современных информационных систем
автоматизированных баз данных выдвигает новые задачи проектирования, которые
невозможно решать традиционными приемами и методами. Большое внимание
необходимо уделять вопросам проектирования баз данных. От того, насколько
успешно будет спроектирована база данных, зависит эффективность
функционирования системы в целом, ее жизнеспособность и возможность
расширения и дальнейшего развития. Поэтому вопрос проектирования баз данных
выделяют как отдельное, самостоятельное направление работ при разработке
информационных систем.
Проектирование баз данных — это итерационный, многоэтапный процесс
принятия обоснованных решений в процессе анализа информационной модели
предметной области, требований к данным со стороны прикладных программистов и
пользователей, синтеза логических и физических структур данных, анализа и
обоснования выбора программных и аппаратных средств. Этапы проектирования баз
данных связаны с многоуровневой организацией данных. Рассматривая вопрос
проектирования баз данных, будем придерживаться такого многоуровневого
представления данных: внешнего, инфологического, логического (даталогического)
и внутреннего.
Такое представление уровней данных не единственное. Существуют и другие
варианты многоуровневого представления данных. Так, в соответствии с
предложениями исследовательской группы по системам управления данными
Американского национального института стандартов ANSI/X3/SPARC, а также
CODASYL (Conference on Data Systems Languages), как правило, выделяется три
уровня представления данных:
внешний уровень (с точки зрения конечного пользователя и прикладного
программиста),
концептуальный уровень (с точки зрения СУБД),
внутренний уровень (с точки зрения системного программиста).
В соответствии с этой концепцией внешний уровень это часть (подмножество)
концептуальной модели, необходимая для реализации какого-либо запроса или
прикладной программы. То есть, если концептуальная модель выступает как
схема, поддерживаемая конкретной СУБД, то внешний уровень — это некоторая
совокупность подсхем, необходимых для реализации конкретной прикладной
программы или запроса пользователя.
Существует также другая точка зрения, в соответствии с которой под внешним
уровнем понимают более общие понятия, связанные с изучением и анализом
информационных потоков предметной области и их структуризацией. Некоторые
авторы вводят вспомогательный уровень (промежуточный между внешним и
даталогическим уровнями), который называется инфологическим. Он может
выступать как самостоятельный или быть составной частью внешнего уровня.
Такая концепция более целесообразна с точки зрения понимания процесса
проектирования БД.
Поэтому будем рассматривать инфологический уровень как самостоятельный
уровень представления данных. Внешний уровень в этом случае выступает как
отдельный этап проектирования,
на котором изучается все
информационное обеспечение, то есть формы документирования и представления
данных, а также внешняя среда, в которой будет функционировать банк данных с
точки зрения методов фиксации, сбора и передачи информации в базу данных.
При проектировании БД на внешнем уровне необходимо изучить
функционирование объекта управления, для которого проектируется БД, всю
первичную и выходную документацию с точки зрения определения того, какие именно
данные необходимо сохранять в базе данных. Внешний уровень это, как правило,
словесное описание входных и выходных сообщений, а также данных, которые
целесообразно сохранять в БД. Описание внешнего уровня не исключает наличия
элементов дублирования, избыточности и несогласованности данных. Поэтому для
устранения этих аномалий и противоречий внешнего описания данных выполняется
инфологическое проектирование. Инфологическая модель является средством
структуризации предметной области и понимания концепции семантики данных.
Инфологическую модель можно рассматривать в основном как средство
документирования и структурирования формы представления информационных
потребностей, которая обеспечивает непротиворечивое общение пользователей и
разработчиков системы.
Все внешние представления интегрируются на инфологическом уровне, где
формируется инфологическая (каноническая) модель данных, которая не является
простой суммой внешних представлений данных.
Инфологический уровень представляет собой информационно-логическую модель
(ИЛМ) предметной
области, из которой исключена
избыточность данных и
информационные особенности объекта управление без учета особенностей и
специфики конкретной СУБД. То есть инфологическое представление данных