Понятие автоматизированной системы (АС). Обзор литературы, введение в базы данных. Назначение разработки, составные части программы. Программная и эксплуатационная документация, технико-экономическое обоснование проекта, характеристика программы.
Аннотация к работе
Общая теория. Архитектура информационных систем. Классификация и функции СУБД. Требования, предъявляемые к базам данных.Назначение разработки.Техническое задание (ГОСТ 19.201-78)Требования к программе 00004-01_12_01 (ГОСТ 19.401-78) 00004-01_13_01 (ГОСТ 19.402-78) Входные и выходные данные Программа и методика испытаний А.В.Основные положения Основные положения Требования к освещению помещений и рабочих мест с ПЭВМ Требования к организации режима труда и отдыха при работе с ПЭВМА так как потребности человека, как известно, вещь постоянно растущая, то вскоре людям потребовались новые инструменты накопления и обработки информации, способные удовлетворить эти самые потребности в автоматизации различных видов деятельности человека, так или иначе связанных с накоплением, обработкой и распространением информации. Применение компьютеров значительно упростило накопление и обработку информации, появилось новое свойство информации - динамичность, т.е. максимально быстрая перестройка информации для решения различных, постоянно меняющихся задач. Применение ранее использовавшихся инструментов обработки информации не идет ни в какое сравнение с использованием в этой сфере ЭВМ. При выполнении таких работ ЭВМ берет на себя большую часть работы по хранению, поиску и обработке информации, что обеспечивает более высокую производительность при повышении качества и достоверности такой информации. Существует множество различного рода автоматизированных систем, от сравнительно небольших, позволяющих автоматизировать какой-либо отдельный этап производства, до сложных корпоративных систем управления, позволяющих автоматизировать управление всеми этапами производства товаров.В данной части этой главы рассмотрим литературу, которая была использована при написании данной дипломной работы и разработке программы «D-Art Aurora v.1.0» (табл.Программа САЗПД «АВРОРА версия 1.0» предназначена для автоматизации заполнения различного рода финансовой (первичной) документации, хранения информации об этой документации в базе данных, формирования бумажной формы документов, различного рода отчетов, автоматизации обработки хранимой информации. Первый файл (Nuclls.mdb) предназначен непосредственно для хранения информации электронных форм первичных документов (накладных), второй файл (Lists.mdb) предназначен для хранения информации для списков подстановки, третий файл (Querys.mdb) предназначен для хранения временной информации во время работы с запросами (см. ниже). В файле Nuclls.mdb хранятся две таблицы (N_General и N_MIO), эти таблицы связаны связью «Один ко многим» - одной записи в таблице N_General соответствует одна или несколько записей в таблице N_MIO. Первая таблица предназначена для хранения общей информации по накладным, а вторая предназначена для хранения информации по товарам на конкретную накладную, если она предусматривает содержание нескольких товаров. В файле Lists.mdb хранятся следующее таблицы: Tab_Clients (Список клиентов), Tab_Opt_FIO (Список Ф.И.О. отпускающих), Tab_Opt_STAT (Список должностей отпускающих), Tab_Pol (Список должностей получателей), Tab_Work (Список наименований товаров и услуг).Техническое задание (ГОСТ 19.201-78)Программа САЗПД «АВРОРА версия 1.0» предназначена для автоматизации заполнения различного рода финансовой (первичной) документации, хранения информации об этой документации в базе данных, формирования бумажной формы документов, различного рода отчетов, автоматизации обработки хранимой информации. В общем смысле программа предназначена для облегчения рутинной работы по заполнению финансовой документации и обработке информации, относящейся к этим документам, и не является автоматизированной системой ведения компьютерной бухгалтерии. Требование к функциональным характеристикам: Программа должна обеспечивать следующие функции: Обеспечить заполнения электронной формы документов. Требования к надежности: Программа должна обеспечить высокую надежность функционирования и низкую возможность отказа «зависаний», возможность исправления различного рода ошибок, возникающих при работе программы (ошибка доступа к файлам на диске и файлам базы данных, доступа к COM-серверам). Н данном этапе была поставлена задача - составить программу, позволяющую автоматизировать процессы заполнения финансовой (первичной) документации, хранить и обрабатывать информацию, связанную с данной документацией, а так же позволяющую формировать печатные формы данных документов.На основании данных Таблицы 6 получаем значение Тн = 920 чел/час Затраты, связанные с созданием данного программного продукта, включают в себя расходы на оплату труда исполнителей по договору, отчисления на социальные нужды, некоторые другие, и могут быть определены следующим образом: Ао = Тн *З/плср * (1 КЕСН Кнр) Смч *Тмо (Ф2) , где Стоимость одного машинного часа может быть рассчитана следующим образом: Стоимость одного машинного часа рассчитывается по формуле: (Ф3), где При этом изменяются условия труда работников, изменяется структура производственного персонала
План
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Обзор литературы.
Введение
Общая теория.
Архитектура информационных систем.
Классификация и функции СУБД.
Требования, предъявляемые к базам данных.
Модели представления данных.
Иерархическая модель данных.
Сетевая модель данных.
Реляционная модель данных.
Системы программирования Borland Delphi, как средства разработки приложений баз данных.
Механизмы Delphi для организации доступа к данным.
ADO-компоненты Delphi для организации доступа к данным.
Компоненты Delphi для визуализации данных
Список литературы
СОДЕРЖАНИЕАвтор, название книги Содержание
1. Робинсон С. - Microsoft Access 2000: учебный курс - СПБ.: Питер, 2004. Книга посвящена изучению системы управления базы данных Microsoft Access 2000. В ней собраны все сведенья, необходимые для быстрого и наиболее полного изучения этого приложения: создание, сопровождение и администрирование базы данных, разработка пользовательских запросов и многое другое.
2. Валерий Фаронов - Delphi 6: учебный курс - СПБ.: Питер, 2004. Книга посвящена изучению среды объектно-ориентированного программирования Borland Delphi 6. В книге рассмотрены азы программирования на языке Object Pascal, а так же основные принципы объектно-ориентированного программирования, основные компоненты и методы работы с ними
3. Валерий Фаронов - Программирование баз данных в Delphi 6: учебный курс - СПБ.: Питер, 2006. В книге описываются многочисленные визуальные и невизуальные компоненты, а так же технологии, имеющиеся для создания приложений баз данных. Последовательно рассматриваются три наиболее распространенных архитектуры баз данных - файл-серверная, клиент серверная и трехзвенная.
4. Валерий Фаронов - Профессиональная работа в Delphi 6. Библиотека программиста. - СПБ.: Питер, 2004 В данной книге описываются нетривиальные возможности системы визуального программирования Delphi 6. Описываются компоненты и возможности системы, относящиеся к профессиональным возможностям Delphi 6, такие как - использование технологии COM (Component Object Model), программирование web-приложений, создание компонентов и встроенной справочной системы.
5. Елманова Н. - Delphi 6 и технология COM. - СПБ.: Питер, 2008 Книга посвящена использованию технологии Component Object Model (COM) в приложениях, созданных с помощью Delphi 6. Освещаются вопросы, связанные с принципами модели COM, разработкой элементов управления ACTIVEX, серверов и контроллеров автоматизации, применение OLE-документов в приложениях, применение технологии COM и COM для организации распределенных вычислений. Кроме того, в книге описаны способы и методы применения в приложениях COM-серверов, входящих в состав пакета программ Microsoft Office.
6. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. - СПБ.: КОРОНА принт, 2007 В книге рассматриваются понятия баз данных, информационных систем, систем управления базами данных , архитектуры персональных и распределенных баз данных. Дается характеристика моделей представления данных, рассматриваются реляционная модель данных и построение реляционных бах данных.
Агальцов В.П. - Базы данных.- М.: Мир, 2006 В данном учебном пособии изложены основные понятия теории баз данных. В частности, теория информационных моделей, типов логических моделей, взаимосвязей в базе данных, подробно рассмотрена реляционная модель данных и приемы работы и создания приложений баз данных в среде Microsoft Visual Fox Pro 6.0 и старших версиях.
Введение в базы данных
Общая теория
В основе решения многих современных задач лежит обработка огромного количества информации, которое человек просто не в состоянии обработать за необходимый промежуток времени. Для облегчения и ускорения обработки информации создаются так называемые информационные системы (ИС) и, в частности, автоматизированные информационные системы, то есть те, в которых используются технические средства, в том числе и компьютеры. Большинство существующих на сегодняшний день ИС являются автоматизированными, поэтому далее речь пойдет именно о таких ИС.
В широком смысле по определение ИС подпадает любая система обработки информации, однако существует и более узкая трактовка понятия ИС.
ИС - это совокупность аппаратно-программных средств, задействованных для решения какой-либо прикладной задачи.
Существует множество разновидностей ИС, одной из которых является банк данных (БНД). Банк данных - разновидность ИС, в которой реализованы функции централизованного хранения и накопления обрабатываемой информации, организованной в одну или несколько баз данных. В общем случае банк данных состоит из следующих компонентов: база данных (или несколько баз), система управления базами данных (СУБД), словаря данных, администратора, вычислительной системы и обслуживающего персонала.
Рассмотрим все эти компоненты.
Базами данных называют электронные хранилища информации, доступ к которым осуществляется с помощью одного или нескольких компьютеров. Обычно БД создается для хранения и доступа к данным, содержащим сведенья о некоторой предметной области, то есть некоторой области человеческой деятельности или области реального мира.
Любая база данных может быть разделена на три составляющих уровня: · Первый уровень (внутренний) - определяет способы хранение данных на физических носителях. Этот уровень для конечного пользователя не доступен для непосредственной модификации и определяется типом базы данных.
· Второй уровень (внешний) - это уровень, который определяет представление хранимых данных для конечного пользователя. Этот уровень определяет интерфейс СУБД (система управления базами данных). Именно на этом уровне пользователю предоставляется доступ к функциям СУБД для непосредственного изменения хранимых данных.
· Третий уровень (концептуальный) - этот уровень является переходным между двумя выше описанными. Этот уровень представляет собой обобщенное представление хранимых данных для множества пользователей.
Существует множество баз данных, построенных на основе различных моделей представления данных.
Моделью представления данных называют логическую структуру, хранимых в базе данных. К наиболее распространенным моделям представления данных относятся: иерархическая, сетевая, реляционная, постреляционная, многомерная и объектно-ориентированная (см. далее).
Как отмечалось выше, для конечного пользователя интерес представляет лишь второй уровень любой интересующей его базы данных, то есть СУБД, позволяющая изменять, обрабатывать и добавлять и удалять необходимую информацию.
Система управления базами данных (СУБД) - это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования базы данных несколькими пользователями. Обычно СУБД различают по используемой модели данных, например, СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД.
Обычно для обеспечения автоматизации обработки, хранимой в базе данных информации, создаются, так называемые приложения баз данных, представляющие собой программу или комплекс программ, которые позволяют обрабатывать информацию для конкретной прикладной задачи. Такие приложения могут быть созданы как в среде самой СУБД, так и вне ее с помощью систем программирования, использующих средства доступа к базам данных, например Delphi, C Builder, Visual C , Visual Basic и др. Приложения, созданные в среде самой СУБД называют приложениями СУБД, а приложения созданные вне этой среды - внешними приложениями.
Для работы с базами данных часто хватает и приложений СУБД, однако, в большинстве случаев требуется создать приложение баз данных для неквалифицированных пользователей или обеспечить такую функциональность, которую в состоянии обеспечить лишь мощные системы программирования, подобные тем, которые были указаны выше.
Словарь данных (СД) - представляет собой подсистему БНД, предназначенную для централизованного хранения информации о структурах данных, взаимосвязях файлов БД друг с другом, типах данных и форматах их представления, принадлежности данных пользователям, кодах защиты, разграничения доступа и т.д.
Функционально СД присутствует во всех БНД, но не всегда компонент выполняющий перечисленные функции имеет именно такое название, чаще всего функции СД исполняет СУБД .
Администратор БД (АБД) - это лицо или группа лиц, отвечающих за выработку требований к БД, ее проектирование, создание, эффективное использование эффективное использование и сопровождение. Для однопользовательских систем функции АБД возлагаются, как правило, на лица, которые непосредственно работают с приложениями базы данных. В вычислительной сети АБД взаимодействует с администратором сети, который контролирует функционирование аппаратных и программных средств, а так же обеспечивает разграничение доступа.
Вычислительная система (ВС) представляет собой совокупность взаимосвязанных и согласовано действующих ЭВМ или процессоров и других устройств, обеспечивающих автоматизацию процессов приема, обработки и передачи информации потребителям.
Обслуживающий персонал выполняет функции поддержания технических и программных средств в работоспособном состоянии.
Архитектура информационных систем
Эффективность функционирования информационной системы (ИС) во многом зависит от ее архитектуры. В настоящее время в большинстве случаев используются распределенные ИС. Распределенные ИС - это такие ИС, которые позволяют обрабатывать, добавлять и удалять информацию из базы данных сразу нескольким пользователям. Такие ИС делятся на две части серверную и клиентскую. При чем общая база данных разделяется на корпоративную базу данных (КБД) и персональные базы данных (ПБД), и КБД размещается на компьютере сервере, а ПБД размещаются на персональных компьютерах сотрудников подразделений.
Сервером определенного ресурса в компьютерной сети называют компьютер (программу), управляющий этим ресурсом, клиентом - компьютер (программу), использующий этот ресурс. Тип сервера определяется ресурсом, которым он управляет, например, если таковым ресурсом является база данных, то соответствующий сервер называется сервером баз данных.
Исторически первой появилась архитектура распределенной ИС, названная файл-сервером (Рис. 1). В таких ИС по запросам пользователей файлы БД передаются на персональные компьютеры, где и производится их обработка. Недостатками такого вида архитектуры является высокий трафик, то есть загруженность сети при передаче данных для обработки, а так же частая передача избыточных данных: вне зависимости от того, сколько записей из базы данных требуется пользователю, файлы базы данных передаются пользователю полностью.
В настоящее время перспективной является архитектура клиент-сервер (Рис. 2). Достоинством организации информационной системы по такой архитектуре является удачное сочетание централизованного хранения, обслуживания и коллективного доступа к общей корпоративной информации с индивидуальной работой пользователей над персональной информацией. При использовании архитектуры клиент-сервер сервер баз данных берет на себя основную часть работы по обработке данных, а так же обеспечению их надежного хранения, непротиворечивости и корректности. Кроме того, при использовании данной архитектуры значительно снижается нагрузка на сеть. Это происходит изза того, что клиент формирует запросы, поступающие к серверу в виде инструкций языка SQL (Structured Query Language - структурированный язык запросов).
В ответ на получение таких инструкций, сервер выполняет поиск необходимых записей и передает их пользователю, то есть по сети вместо длинных процедур от клиента предается короткий запрос, а в ответ от сервера передаются не все данные, а только необходимые пользователю. В результате скорость работы с БД значительно возрастает.
Корпоративная БД создается, поддерживается и функционирует под управлением сервера БД, например, Microsoft SQL Server, Borland INTERBASE, Oracle Server. При использовании архитектуры клиент-сервер общая база данных разделяется на корпоративную БД и персональные БД, это дает возможность уменьшить сложность проектирования БД, а значит снизить вероятность ошибок при проектировании и стоимость проектирования. Кроме того, использование такой архитектуры позволяет постепенно наращивать информационную систему предприятия, во-первых, по мере развития предприятия; во-вторых, по мере развития самой ИС.
Классификация и функции СУБД
Все существующие СУБД можно разделить по нескольким параметрам. Рассмотрим некоторые из них.
По сфере применения различают три основных вида СУБД: · Промышленные универсального назначения - эти СУБД не имеют четко очерченных рамок применения, они рассчитаны на все случаи жизни, вследствие чего достаточно сложны и требуют о пользователя специфических знаний.
· Промышленные специального назначения - это СУБД, разрабатываемые для применения в конкретной сфере деятельности - бухгалтерские, складские, банковские СУБД и т.д.
· Заказные СУБД. Как специализированные, так и универсальные промышленные СУБД относительно дешевы, достаточно надежны (отлажены) и готовы к немедленной работе, в то время как заказные СУБД требуют существенных затрат, а их подготовка к работе и отладка занимают значительный период времени (от нескольких месяцев до нескольких лет). Однако, в отличие от промышленных заказные СУБД в максимальной степени учитывают специфику работы заказчика (того или иного предприятия), их интерфейс интуитивно понятен пользователю и не требует от него специальных знаний.
Кроме разделения по специализации СУБД можно разделить так же и по их архитектуре (Рис. 3). Все СУБД по этому критерию делятся на следующие: · Однозвенная архитектура. В однозвенной архитектуре используется единственное звено (клиент), обеспечивающее необходимую логику управления данными и их визуализацию
· Двухзвенная архитектура. В данном виде архитектуры значительную часть логики управления берет на себя сервер баз данных, в том время как клиент в основном занят отображением данных в удобном для пользователя виде.
· Трехзвенная архитектура. В трехзвенных СУБД используется промежуточное звено - сервер приложений, который является посредником между клиентом и сервером баз данных. Сервер приложений призван избавить клиента, от каких бы то ни было забот по управлению данными и обеспечению связи с сервером баз данных.
Кроме того, в зависимости от расположения отдельных частей СУБД различают локальные и сетевые СУБД.
Все части локальной СУБД размещаются на компьютере пользователя базы данных. Чтобы с одной и той же базой данных одновременно могло работать несколько пользователей, каждый пользовательский компьютер должен иметь свою копию локальной базы данных. Существенной проблемой СУБД такого типа является соответствие разных копий базы данных друг другу - синхронизация копий. Именно поэтому для решения задач, требующих совместной работы нескольких пользователей такой вид СУБД фактически не используется.
К сетевым относятся файл-серверные, клиент-серверные и распределенные СУБД. Непременным атрибутом таких СУБД является сеть, обеспечивающая аппаратную связь компьютеров и делающая возможной корпоративную работу множества пользователей с одними и теми же данными. Работа первых двух видов СУБД основана на работе соответствующих ИС и описана выше. Распределенные СУБД могут содержать несколько десятков и сотен серверов БД. Количество клиентских мест в них может достигать нескольких сотен тысяч. Обычно такие СУБД работают на предприятиях государственного масштаба, подразделения которых разнесены на значительные расстояния (Министерство обороны, Центризбирком, МВД и др.). В распределенных СУБД некоторые серверы могут дублировать друг друга, с целью достижения предельно малой вероятности отказов и сбоев, которые могут исказить жизненно важную информацию. Они используют собственные региональные средства связи. Интерес к распределенным СУБД возрос в связи со стремительным развитием Интернета. Опираясь на возможности Интернета подобные СУБД строят не только предприятия государственного масштаба, но и небольшие коммерческие предприятия.
По используемой модели данных СУБД (как и БД) разделяют на иерархические, реляционные, объектно-ориентированные и другие типы (об этих моделях данных будет рассказано ниже). Некоторые СУБД могут одновременно поддерживать несколько моделей данных.
Рассмотрим некоторые функции, которые реализует СУБД.
С точки зрения пользователя, СУБД реализует функции хранения, изменения (пополнения, редактирования, удаления) и обработки информации, хранящейся в базе данных, а так же разработки и получения различных выходных документов.
Перечисленные выше функции СУБД, в свою очередь, используют следующие основные функции более низкого уровня, которые называются низкоуровневыми: · Управление данными во внешней памяти;
· Управление буферами во внешней памяти;
· Управление транзакциями;
· Ведение журнала изменений базы данных;
· Обеспечение целостности, непротиворечивости и безопасности БД.
Рассмотрим эти функции более подробно.
Реализация функции управления данными во внешней памяти в разных системах может различаться и на уровне управления ресурсами (используя файловые системы ОС или непосредственное управление устройствами компьютера), и по логике самих алгоритмов управления данными. Качество реализации этой функции наиболее сильно влияет на эффективность работы специфических ИС с огромными БД, сложными запросами, большим объемом обработки данных.
Буферы - это области оперативной памяти компьютера, в которых временно хранятся фрагменты БД, данные из которых предполагается использовать при обращении к СУБД или планируется записать в базу данных после обработки. Необходимость использования буферов и как следствие реализация функции управления буферами, обусловлено тем, что объем оперативной памяти меньше объема внешней, а так же тем, что скорость работы оперативной памяти на несколько порядков выше работы внешней памяти.
Механизм транзакций используется в СУБД для поддержания целостности данных в базе. Транзакцией называется некоторая неделимая последовательность действий над данными БД, которая отслеживается СУБД от начала до завершения.
Контроль транзакций важен как для однопользовательских, так и для многопользовательских СУБД, где транзакции могут быть запущены параллельно. В последнем случае так же должна поддерживаться так называемая сериализация. Под сериализацией, параллельно выполняемых транзакций понимается такое выполнение этих самых транзакций, при котором суммарных эффект от их параллельного выполнения будет равен эффекту их последовательного выполнения. При этом могут возникнуть так называемые конфликты или блокировки транзакций, решение этих конфликтов так же является функцией СУБД. При обнаружении таких конфликтов обычно производится откат путем отмены изменений, сделанных одной или несколькими транзакциями.
Ведение журнала изменений в БД выполняется СУБД для обеспечения надежности хранения данных в базе при наличии аппаратных сбоев и отказов, а так же ошибок в программном обеспечении.
Журнал СУБД - это особая БД или часть основной БД, непосредственно не доступная пользователю и используемая для записи информации обо всех изменениях базы данных. Иногда для обеспечения большей надежности в системе хранится несколько копий журнала.
Обеспечение целостности БД составляет необходимо условие успешного функционирования БД, особенно для использования БД в сетях. Целостность БД - это свойство БД, которое означает, что в ней хранятся полные, непротиворечивые и адекватно отражающие предметную область данные. Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий в базе данных. Целостное состояние БД описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять, хранимые в базе данные. Наиболее полно это свойство БД видно на примере реляционной модели данных, где обеспечивается отсутствие повторяющихся записей (см. ниже).
Обеспечение безопасности достигается в СУБД шифрованием прикладных программ, данных, защиты паролем, поддержкой уровней доступа пользователей к базе данных и отдельным ее элементам (таблицам, формам, отчетам и т.д.).
Требования, предъявляемые к базам данных
Проектирование баз данных начинается со сбора концептуальных требований. Концептуальное требование - это одно данное (одно свойство объекта), которое будет храниться в базе данных. Концептуальное требование получают как от руководства фирмы, так и от конечных пользователей, непосредственно работающих с базой данных. Кроме того на этом этапе решается вопрос - какие действия по обработке данных должны выполняться в базе данных.
База данных должна: · Удовлетворять требованиям заказчика и содержать лишь те объекты и сведенья о них, которые интересуют заказчика;
· Обладать приемлемым быстродействием, то есть пользователь должен получать интересующие его сведенья за максимально короткое время;
· Иметь возможность последующего расширения без существенной переделки, как самой базы данных, так и средств ею управляющих;
· Не зависеть (или мало зависеть) от количества помещаемых в нее данных;
· Легко перестраиваться при изменении аппаратной;
· Содержать только достоверные данные. Достоверность должна обеспечиваться как при вводе новых данных, так и при редактировании уже имеющихся4
· Доступ к данным должны иметь определенные лица;
Модели представления данных
Хранимые в базе данные имеют определенную логическую структуру, то есть описываются некоторой моделью представления данных (моделью данных), поддерживаемой СУБД. К числу традиционных моделей относятся следующие: · Иерархическая, · Сетевая, · Реляционная.
Кроме того, в последние годы появились и стали более активно внедряться на практике следующие модели: · Постреляционная, · Многомерная, · Объектно-ориентированная.
Рассмотрим традиционные модели подробнее.
Иерархическая модель
В иерархической модели связи между данными можно описать с помощью упорядоченного графа (или дерева) (Рис. 4).
Вообще, иерархическая модель строго структурирована, то есть взаимосвязь между объектами подчинена строгому ранжиру. Подчинение объектов разделено на уровни. На первом уровне представлен один главный объект, которому подчиняются объекты второго уровня. Причем объект первого уровня не может напрямую управлять объектом третьего уровня, управление объектом третьего уровня производится только через объект второго уровня.
Для описания структуры (схемы) иерархической базы данных на некотором языке программирования используется тип данных «дерево» («Tree»), который схож с типом «запись» («Record») языка Object Pascal или «структура» («Structure») языка C, в них допускается вложенность типов, каждый из которых находится на некотором уровне.
Тип «дерево» является составным. Он включает в себя подтипы («поддеревья»), каждый из которых, в свою очередь, является типом «дерево». Каждый из этих типов «дерево» состоит из одного «корневого типа» и упорядоченного набора (возможно пустого). Каждый из элементарных типов,
Рис. 4. Представление связей в иерархической модели связей в иерархической модели включенных в тип «дерево», является простым или составным типом «запись». Простая запись состоит из одного типа, например числового, а составная из совокупности типов, например, целое, строка символов, указатель и т.д.
Корневым называется тип, который имеет подчиненные типы, и сам не является подтипом. Подтип (подчиненный тип) является потомком по отношению к типу, который выступает для него в роли предка (родителя), потомки одного и того же типа являются близнецами по отношению друг к другу.
В целом тип дерево представляет собой упорядоченную совокупность экземпляров типа «запись». Иерархическая БД представляет собой упорядоченную совокупность экземпляров типа «дерево», содержащих экземпляры типа «запись». Именно поля записей и хранят собственно информацию, содержащуюся в БД (числовые, строковые и другие значения). Обход всех элементов иерархической БД обычно производится сверху вниз и слева направо.
Для организации физического размещения иерархических данных в памяти компьютера могут использоваться следующие группы методов: · Представление линейным списком с последовательным распределение памяти;
· Представление связными линейными списками (методы, использующие указатели и справочники).
К основным операциям манипулирования, иерархически организованными данными, относятся следующие: · Поиск указанного экземпляра БД (например, дерева со значение 10 в поле «Номер»);
· Переход от одного дерева к другому;
· Переход от одной записи к другой внутри дерева;
· Вставка новой записи в указанную позицию;
· Удаление текущей записи и др.
К достоинствам иерархической модели данных относятся эффективное использование памяти компьютера и неплохие показатели времени выполнения основных операций над данными. Иерархическая модель удобна при работе с иерархически упорядоченной информацией.
Недостатками иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями, а так же сложность понимания для обычного пользователя.
Сетевая модель данных
Сетевая модель данных позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных (Рис. 5).
Рис. 5. Представление связей в сетевой модели
Сетевая модель более демократична, чем иерархическая и не так структурирована. В сетевой модели отсутствует понятие главного и подчиненного объекта. Один и тот же объект может выступать как главный, так и подчиненный. Для описания схемы сетевой БД используются две группы типов: «запись» и «связь». Тип «связь» определятся для двух типов «запись» - предка и потомка. Переменные типа связь являются экземплярами связей.
Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается - в сетевой модели связь-потомок может иметь произвольное количество записей-предков (сводных родителей) .
Физическое размещение данных в базах сетевого типа может быть организованно практически теми же методами, сто и в иерархических базах данных.
К числу важнейших операций манипулирования данными баз сетевого типа можно отнести следующие: · Поиск записи в БД;
· Переход от предка к первому потомку;
· Переход от потомка к предку;
· Создание новой записи;
· Удаление текущей записи;
· Обновление текущей записи;
· Включение записи в связь;
· Исключение записи из связи;
· Изменение связей и т.д.
Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности в смысле допустимости образования произвольных связей.
Недостатками сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе, а так же сложность для понимания и выполнения обработки информации обычным пользователем. Кроме того, в сетевой модели ослаблен контроль целостности связей вследствие допустимости произвольного установления связей между записями.
Реляционная модель данных
Как уже отмечалось выше, приведенные модели данных достаточно сложны для понимания обычного пользователя. Реляционная модель, описываемая ниже, в этом смысле имеет большое преимущество перед приведенными моделями. Именно по этому, а так же по ряду других причин, эта модель в настоящее время является самой распространенной для построения баз данных. А так же по этим причинам именно эта модель будет использована для решения задачи поставленной темой дипломного проектирования. Рассмотрим основы реляционной модели данных более подробно.
Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Элементы РМД и формы их представления приведены в таблице 2.
Таблица 2.
Элементы реляционной модели
Элемент реляционной модели Форма представления
Отношение Таблица
Схема отношения Строка заголовков таблицы (заголовок таблицы)
Кортеж Строка таблицы
Сущность Описание свойств объекта
Атрибут Заголовок столбца таблицы
Домен Множество допустимых значений атрибута
Значение атрибута Значение поля в записи
Первичный ключ Один или несколько атрибутов
Тип данных Тип значений элементов таблицы
Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.
Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
В общем случае порядок картежей в отношении, как и в любом множестве, не определен. Однако, в реляционных СУБД для удобства кортежи все же упорядочивают. Для этого выбирают некоторый атрибут, по которому система автоматически сортирует кортежи (записи) по убыванию или возрастанию. Если пользователь не назначает атрибута упорядочивания, то система автоматически присваивает номера кортежам в порядке их добавления. Формально, если переставить атрибуты в отношении, то получится новое отношение. Однако в реляционных БД простановка атрибутов к этому результату не приводит.
Домен представляет собой множество всех возможных значений определенного атрибута отношения. Например, отношение «Сотрудник» включает 4 домена. Домен 1- содержит фамилии всех сотрудников, домен 2 - номера всех отделов фирмы, домен 3 - названия всех должностей, домен 4 - даты рождения всех сотрудников. Каждый домен образует значения одного типа, например, символьные или числовые, из всех записей отношения.
Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Множество собственно кортежей отношения часто называют содержимым (телом) отношения.
Первичным ключом (ключом отношения, ключевым атрибутом) называют атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ может быть простым, состоящим из одного атрибута, и сложным (составным), то есть состоять из нескольких атрибутов.
Каждое отношение обязательное имеет комбинацию атрибутов, которая может служит ключом. Ее существование гарантируется тем, что отношение - это множество, которое не содержит одинаковых элементов (кортежей), а это означает, что вся совокупность атрибутов обладает свойством однозначной идентификации кортежей отношения.
Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых может являться первичным ключом. Такие комбинации атрибутов являются возможными ключами.
Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, то такой ключ является не избыточным.
Ключи обычно используются для следующих целей: · Исключение дублирования значений в ключевых атрибутах;
· Упорядочивание кортежей. Возможно упорядочение по возрастанию или убыванию, а так же одних атрибутов по убыванию, других по возрастанию одновременно;
· Ускорение работы с кортежами отношения;
· Организации связывания таблиц;
Кроме первичного ключа в реляционной модели имеется внешнего ключа. Пусть в отношении R1 имеется не ключевой атрибут A, значения которого являются значениями ключевого атрибута B отношения R2, тогда атрибут A отношения R1 является внешним ключом. С помощью внешних ключей устанавливаются связи между отношениями. Реляционная модель накладывает на внешние ключи ограничение для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа обязательно должно быть поставлено в соответствие хотя бы одно значение в связываемом отношении.
Для ускорения функций поиска и автоматической сортировки записей в реляционных СУБД часто применяются индексы.
Под индексом понимают средство ускорения операции поиска записей в таблице, а следовательно, и других операций, использующих поиск: извлечение, модификация, сортировка и т.д.
Индекс играет роль оглавления таблицы, просмотр которого предшествует обращению к записям таблицы. Ключевые поля во многих СУБД индексируются автоматически. Индексы, создаваемые пользователями для не ключевых полей, часто называют вторичными (пользовательскими) индексами.
Главная причина повышения скорости выполнения различных операций с индексированными таблицами заключается в том, что основная часть работы происходит не с самими таблицами, а с небольшими индексными файлами. Наибольший эффект производительности от использования индексов, возникает при работе с большими по объему данных таблицами. Индексирование требует незначительных затрат системных ресурсов, что в сочетании с эффектом который оно дает, делает его очень удобным механизмом по повышению производительности работы с базой данных.
Как отмечалось выше, в реляционных базах данных широко используется связывание таблиц. При связывании двух таблиц выделяют основную и подчиненную таблицы. Логическое Связывание производится при помощи ключа связи. Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые называют полями связи (ПС).
Вообще, суть связывания состоит в установлении соответствия полей связи основной и подчиненной таблицы.
В зависимости от того, как определены поля связи основной и подчиненной таблицы (как соотносятся поля связи к ключевым полям), между двумя таблицами могут устанавливаться следующие четыре основных вида связи (характеристика видов связей приведена в таблице 3): · Связь «ОДИН К ОДНОМУ» (1:1). Связь вида 1:1 образуется в случае, когда все поля связи основной и подчиненной таблицы являются ключевыми. Поскольку значения в ключевых полях не повторяются, обеспечивается взаимо-однозначное соответствие записей из этих таблиц. Сами таблицы при использовании такого вида связи становятся равноправными. На практике связь вида 1:1 используется сравнительно редко, так как хранимую в двух таблицах информацию, в этом случае, легко объединить в одну, что позволяет сэкономить ресурсы компьютера.
· Связь «ОДИМ КО МНОГИМ» (1:М). Связь вида 1:М имеет место в случае, если когда одной записи основной таблицы ставится в соответствие несколько записей подчиненной таблицы.
· Связь «МНОГИЕ К ОДНОМУ» (М:1). Этот вид связи образуется, если одной или нескольким записям основной таблицы ставится в соответствие одна запись подчиненной таблицы. Вид связи (1:М или М:1) зависит от того, какая таблица является основной, а какая подчиненной
· Связь «МНОГИЕ КО МНОГИМ» (М:М). Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной таблицы ставится в соответствие несколько записей подсиненной таблицы. Очевидно, аналогично связи 1:1, связь М:М, делает связываемые таблицы по сути равноправными.
Таблица 3
Характеристика видов связей таблиц в РМД
Характеристика полей связи по видам 1:1 1:М М:1 М:М
Поля связи основной таблицы Являются ключом Являются ключом Не являются ключом Не являются ключом
Поля связи подчиненной таблицы Являются ключом Не являются ключом Являются ключом Не являются ключом
Необходимо заметить, что на практике в связь обычно включается сразу несколько таблиц. При этом одна таблица может иметь различного рода связи с другими таблицами.
При образовании различного рода связей возникает необходимость соблюдения ссылочной целостности или целостности связей, и, соответственно, организация контроля этой самой целостности. Так как наиболее распространенным видом связи является связь вида 1:М, то далее речь пойдет именно о таких связях. Контроль целостности связей обычно означает анализ связанных таблиц на соблюдение следующих правил: · Каждой записи связанной таблицы соответствует нуль или более записей подчиненной таблицы;
· В подчиненной таблице не должно быть записей, ссылающихся на несуществующие записи в основной таблице;
Существует три основные операции над данными двух связанных таблиц.
· Ввод новых записей;
· Модификация записей;
· Удаление записей;
Рассмотрим некоторые методы организации контроля ссылочной целостности, с учетом этих операций.
1) При вводе новых записей возникает вопрос определения последовательности ввода