Структурное программирование




Программирование

Программирование - теоретическая и практическая деятельность, связанная с созданием программ для компьютеров.
Программирование включает в себя следующие этапы:


1. постановка задачи,

2. структуризация системы,

3. организация данных,

4. алгоритмизация,

5. кодирование,

6. отладка,

7. внедрение.


Постановка задачи.

Нулевым этапом постановки задачи должно быть задание окружения программы. Окружение программы состоит из: Среды пользователей, Среды заказчиков, Вычислительной среды,

Пользователями программной системы могут быть служащие административных учреждений, инженеры, выполняющие на машинах научно-технические расчеты, экономисты, ведущие учет хозяйственной и финансовой деятельности.

Необходимо активно вовлекайте пользователей в процесс проектирования системы. Если пользователи принимают участие в проекте на стадии разработки, они лучше осведомлены о характеристиках системы и могут внести свою лепту в формирование окончательного облика. Если же пользователи привлекаются на этапе испытаний, они получают возможность оценить качества системы еще до начала эксплуатации.

Программа неотделима от вычислительной среды, с которой взаимодействует. Она использует системные программные средства, а те в свою очередь могут пользоваться ее информацией. Программа либо сама создает файлы, либо обрабатывает файлы, сформированные другими программами. Она должна быть построена таким образом, чтобы могла применяться в различных приложениях и обходиться только имеющимися аппаратными ресурсами и средствами программирования.

Необходимо МАКСИМАЛЬНО ИСПОЛЬЗУЙТЕ СЕРВИСНЫЕ СРЕДСТВА АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ. Обычно работа по составлению программ начинается в связи с тем, что некоторая организация (заказчик) предлагает создать для нее программную прикладную систему. Официальному заключению договора обычно предшествует выяснение реальной необходимости в такой системе, оценка возможности ее разработки и примерного объема затрат, а также ожидаемого эффекта от ее внедрения.

ЭВМ лучше, чем человек, справляется с трудоемкими задачами, требующими многократного повторения однотипных операций. ЭВМ более эффективно осуществляет поиск и обработку больших массивов информации, состоящих из однородных элементов. Всякое использование ЭВМ предполагает стандартизацию данных и способов обработки. Эффективная реализация преимуществ ЭВМ возможна лишь в тех случаях, когда необходимо выполнять либо трудоемкие вычисления, либо обработку больших объемов инфор­мации. В то же время человек лучше, чем машина, может разобраться в том, что и как следует делать, и способен работать с неоднородной информацией.

Первый шаг в проектировании прикладной программной системы заключается в точном формулировании целей внедрения. Требования к системе еще не создают полной картины. В постановке задачи, разумеется, должны принять участие как представители организации-заказчика, так и те, кто будет заниматься проектированием системы. Необходимо, чтобы этот процесс был гибко организован и продолжался в течение достаточно длительного времени, поскольку на любом этапе разработки или внедрения могут вскрываться ранее не предусмотренные трудности. В то же время в договор следует включить пункт, который запрещал бы радикальный пересмотр требований на стадии реализации си­стемы. В этом же пункте могут быть оговорены условия внесения несущественных изменений.

ВСЕ ДОГОВОРЕННОСТИ ДОЛЖНЫОФОРМЛЯТЬСЯ В ОФИЦИАЛЬНОМ ПОРЯДКЕ

Организация-заказчик и группа разработчиков совместно составляют официальный перечень спецификаций, а также договор о порядке проведения проектных работ и приемке системы. Функциональные требования к системе содержат четкое описание всего того, что она должна делать. Ограничениями в процессе проектирования являются директивные сроки завершения отдельных этапов, имеющиеся в наличии ресурсы, организационные процедуры и мероприятия, обеспечивающие сохранность информации.

НЕОБХОДИМО ВСЕСТОРОННЕ АНАЛИЗИРОВАТЬ ЭФФЕКТЫ, СВЯЗАННЫЕ С ВНЕДРЕНИЕМ СИСТЕМЫ

Подобный подход к проектированию можно проиллюстрировать на примере разработки языка Ада. В начале 70-х годов министерство обороны США объявило о создании нового языка, которым предполагалось заменить другие языки программирования во всех приложениях, связанных с решением задач военного характера. Еще до составления окончательного перечня функциональных требований и спецификаций было разработано несколько версий языка, которые анализировались и оценивались группой сторонних экспертов. Был объявлен конкурс на создание языка. Его победителем стала французская фирма Honeywell-Bull. После того как работа над языком была за­вершена, для его оценки вновь были приглашены сторонние эксперты. Много различных групп приняло участие в экспериментах по практической реализации некоторых наиболее нетрадиционных особенностей языка. Наконец, когда стало ясно, что Ада в целом отвечает предъявляемым требованиям, различные военные ведомства начали заключать контракты на приобрете­ние компиляторов языка.

Структуризация системы

Структурным анализом называется метод исследования, который начинается с общего обзора системы и продолжается детализацией, при которой система приобретает иерархическую структуру с большим числом уровней. Требования к системе и ее предполагаемые характеристики не могут слу­жить отправной точкой, поскольку помимо общего описания они содержат много ненужных деталей. Их можно рассматривать •скорее как цели и стандарты, к которым следует стремиться на всех стадиях проектирования. Верхний уровень структурного •анализа представляет собой функциональное описание системы. •Составление функционального описания системы — это обобще­ние всей информации, касающейся целей проекта.

СЛЕДУЕТ СТРЕМИТЬСЯ К СОЗДАНИЮ ПОЛНОЙ КАРТИНЫ. Деление системы на функциональные элементы подчиняется вполне определенным правилам. Самое общее правило состоит в следующем: необходимо отделять то, что требуется сделать, от того, каким образом это можно сделать.

ПРОЦЕСС ПРОЕКТИРОВАНИЯ ДОЛЖЕН БЫТЬ СТРУКТУРИРОВАН. Графическая схема проекта строится по иерархическому принципу и охватывает все вопросы по разработке проекта. Она должна умещаться на одной странице. На рис 13.1 представлен устоявшийся вариант схемы. Именно таким представляется процесс проектирования автоматизированной системы извне. От системы к системе графическая схема задания меняется незначительно.

1. Введение. Дается общая характеристика системы, чтобы будущий пользователь мог принять решение о том, отвечает ли система его требованиям.

1.1. Функции системы. Поясняется назначение системы, приводится перечень основных процедур и обрабатываемых данных,

1.2. Сфера применения. Характеризуется круг пользователей, на которых ориентирована система.

1.3. Сбор и корректировка данных. Описываются источники исходных данных, поступающих в систему, а также источники данных, используемых для корректировки. В этот пункт следует включить планы и графики корректирования данных.

1.4. Отчеты. Описываются формы, определяются периодичность и общее содержание отчетов, выдаваемых системой.

2. Вычислительная среда. Определяется минимальный состав оборудования, необходимого для нормального функционирования системы.

2.1. Технические средства. Описывается конфигурация технических средств, указывается требуемый объем оперативной памяти, требования к внешним устройствам и т. д.

2.2. Программные средства. Указываются типы операционных систем, используемые библиотеки стандартных программ, системы управления базами данных и т. д.

2.3. Режимы работы. Определяется возможность функционирования системы в условиях пакетного режима, интерактивного режима, режима реального времени или их комбинаций.

3. Связь с внешней средой. Описывается взаимодействие пользователей с системой.

3.1. Вход системы. Определяются форматы данных всех типов, вводимых пользователями, а также внутренняя структура данных. Эта информация служит руководством при разработке бланков входных форм и подготовке данных.

3.2. Выход системы. Описываются форматы отчетов, сообщений и других выходных форм. Эта информация используется при составлении планов и подготовке результатов.

3.3. Управляющие параметры. Перечисляются параметры, задаваемые при настройке системы на конкретную конфигурацию технических и программных средств.

3.4. Рабочие инструкции. Дается общий обзор содержания инструкций, касающихся обращения с лентами, хранения бумаги и т. д. Данная информация используется при составлении инструкций для обслуживающего персонала.

4. Качество системы.

4.1. Соблюдение стандартов и общепринятых обозначений. Указывается, в какой мере система соответствует стандартному варианту языка программирования. Кроме того, определяется степень использования общеупотребительных сокращений и математических обозначений. Это позволяет оценить трудоемкость сопровождения системы.

4.2. Универсальность системы. Обсуждается уровень независимости системы от конкретных внешних условий, с учетом которых она разрабатывается. Это характеризует сложность перевода системы на другие вычислительные установки.

4.3. Надежность функционирования. Рассматриваются такие вопросы, как ожидаемое время наработки на отказ, способы корректировки ошибок, проверка достоверности информации, точность результатов, статистические характеристики всех модулей, осуществляющих вероятностные расчеты, например генераторов псевдослучайных чисел.

4.4. Защита информации. Описываются средства, обеспечивающие сохранность данных и авторизацию доступа, используемые способы кодирования.

5. Документация по системе.

5.1. Пособия и руководства. Приводится перечень документации, прилагаемой к системе, пособий, форм отчетности, рабочих описаний, системной и программной документации.

5.2. Спецификации программ. Дается общее функциональное описание отдельных программ, входящих в состав системы. Эта информация служит руководством при разработке программ.

5.3. Организация данных. Приводится общее описание взаимодействия отдельных информационных потоков в системе. Эти сведения используются при разработке принципов организации данных.

Поскольку многие из перечисленных задач связаны друг с другом, возникает необходимость в планировании последовательности их решения. Для анализа распределения работ часто применяются так называемые ПЕРТ - диаграммы.

ПЕРТ является прямой транскрипцией английского сокращения PERT, составленного из первых букв названия «program evaluation review technique» (методика анализа и корректирования планов). ПЕРТ-диаграмма представляет собой граф, содержащий описания работ и событий и характеризующий процесс взаимодействия работ во времени. Ребра графа обозначают работы, его вершины — события. Обычно под событием понимается завершение одной работы и начало другой, причем вторая не может быть начата, прежде чем завершится первая. На рис. 13.2 приведен сокращенный вариант ПЕРТ-диаграммы_ описывающей процесс проектирования прикладной системы. Поставив в соответствие каждой работе ожидаемое время ее выполнения, можно определить максимальный по продолжительности путь от начальной до конечной вершины графа, который называют критическим путем проектирования системы.

рис 13.2

Организация данных

На уровне аппаратуры компьютера и операционной системы данные представляются в форме, которая не воспринимается пользователем легко.

Данные разделяются на две группы: простые и структурированные. Простое данное в каждый момент обладает одним значением. Структурированное данное формируется группой данных, каждое из которых может быть простым или структурированным. К простым данным относятся флаги, коды, даты, числа, символы. К структурированным данным относятся строки, массивы, таблицы, списки, стеки, очереди, множества, записи, файлы. Файлы и базы данных должны обязательно состоять из структурированных элементов. Внешние для программной системы данные также формируются из структурированных элементов.

Н-р В языке Паскаль, например, имеются как средства для задания правил формирования структур, так и средства для непосредственного описания данных:

Часто невозможно заранее, до начала работы программы установить размер структуры данных. Такие данные называются динамическими, их размер устанавливается в процессе работы программы. В большинстве языков программирования нельзя задавать динамически изменяемые структуры данных. Программисту необходимо указывать наибольшее число экземпляров - максимальный размер каждой структуры.

Программист, проектировщик и пользователь имеют разные взгляды на организацию данных. В соответствии с этим могут быть выделены три уровня организации данных:
-Логическая организация данных: проектный уровень.
-Представление данных: уровень языка реализации.
-Физическая организация данных: машинный уровень.

Логическая организация данных отражает взгляд пользователя на данные. В ее основе лежат требования пользователя и внутренне присущие данным связи. Это наиболее важный уровень абстракции, используемый при представлении данных, поскольку именно требования пользователей определяют облик проектируемой системы. Если на этапе проектирования системы удачно выбрана логическая организация данных, изменения системных требований, не приводящие к модификации логической структуры данных, не повлекут за собой реорганизации на более низких уровнях представления данных.

Только на логическом уровне могут применяться формальные методы описания динамически изменяющихся структур. Никакая дополнительная информация о членах семьи не изменит общую логическую структуру семьи:

 


семья =отец, мать, ребенок...
отец= имя, возраст, профессия
мать= имя, возраст, девичья фамилия,
ребенок= имя, возраст, пол


Новые данные о членах семьи не нарушают ее общей организации, но могут привести к изменениям в представлении информации.

Описание данных на языке программирования относится к уровню представления данных. Отношения между данными задаются в виде, характерном для конкретного языка.

Уровень физической организации связан с системным программным обеспечением. На этом уровне приходится оперировать с границами слов, размерами полей, двоичными кодами и физическими записями. Отметим, что системное программное обеспечение управляет потоком данных между программами и внешними устройствами, а языки программирования управляют обменом данными между программами.

Алгоритмизация

Алгоритмы содержат определение пошагового процесса обработки данных с описанием преобразований данных и описанием функций управления. Они могут быть записаны на естественном языке, на языке программирования, с помощью математической или другой символической нотации. Алгоритм не содержит описания структуры обрабатываемых данных. Название алгоритма может указывать на его назначение (например, алгоритм сортировки, обращения матриц, игры в «крестики и нолики» и т. д.) или определять используемый в нем метод решения.

Известны три основных вида средств проектирования структуры управления программой

1. структурное программирование,

2. схемы передач управления и

3. управляющие таблицы.

Все они предназначены для организации нормального функционирования программы, т. е. с их помощью определяются следующие свойства программы: порядок следования отдельных шагов обработки, ситуации и типы данных, вызывающие изменения процесса обработки, а также повторно используемые функции программы.

Структурное программирование

Структурное программирование основано на использовании трех стандартных структур: следования, выбора, повторения. Для изображения алгоритма используются псевдокод, блок-схемы.

Псевдокод отличается от обычных детализированных устных алгоритмов стандартизацией конструкций, форматированием описания, использованием ключевых слов и удобным для понимания, строгим оформлением. Ключевые слова выбираются так, чтобы сделать алгоритм ясным, строгим и однозначным.

Конструкция следования имеет следующий вид:Р; Q. Здесь Р и Q — простые предложения, обозначающие операции преобразования данных или информационного обмена, например такие, как ЧИТАТЬ, ПИСАТЬ или ВЫЧИСЛИТЬ

Конструкции следования представляют собой наборы опера­торов, выполняемых в порядке их записи. Если запись ведется на псевдокоде, операторы должны быть расположены последо-иательно на отдельных строках и выровнены по левому краю.

Конструкции выбора представляют собой операторы, выпол­няемые только один раз и при определенных условиях. Сущест-иуют различные способы реализации этих конструкций в разных и шках программирования.

Конструкции повторений представляют собой последователь­ность операторов, выполняемых несколько раз. К их числу от­носятся циклические структуры различных видов, в том числе и циклы, использующие счетчики и индексные переменные. Управление функционированием большей части циклических структур осуществляется с помощью проверки условия оконча­ния или условия продолжения выполнения цикла. В псевдокоде, описывающем цикл, следует указывать, что тело цикла выпол­няется по крайней мере один раз, если проверка производится в Конце цикла, или что возможен случай, когда тело цикла ни pa­ly не выполняется, если проверка осуществляется в его начале.

12. Система управления базами данных

База данных (БД) – поименованная совокупность данных вместе со способом их организации (структурирования).

Система управления базой данных (СУБД) – программное средство, предназначенное для создания, хранения и обработки БД.

К числу СУБД относятся такие программные средства как: Oracle, Access, FoxPro, Clarion, SQL Server, Sybase, Informix, Paradox, Interbase, Pervasive и другие.

Банк данных = БД+СУБД.

Предметная область – часть окружающего мира, информация о которой хранится в БД.

В разных БД хранится данные о разных предметных областях и наоборот.

12.1. Отличительные признаки СУБД

Все СУБД, в той или иной степени, обладают следующими пятью свойствами:

1. Сепаратность доступа.

Сепаратность (раздельность) понимается в двух аспектах:

а) сепаратность по пользователям, с БД могут работать несколько пользователей одновременно и независимо;

б) сепаратность по данным, каждый пользователь работает не со всей, а только с частью БД.

2. Целостность данных.

Данные в БД не должны противоречить друг другу. Целостность еще называют непротиворечивостью данных. Например, в БД не должно быть информации о продвижении по службе сотрудника, данных о котором в БД не представлено. Итог, записанный в приходном ордере, должен быть равен сумме по строкам соответствующей ведомости.

3. Секретность.

С помощью шифров и паролей ограничен доступ к модулям СУБД и частям БД.

4. Синхронизация.

Запросы к данным должны быть упорядочены во времени. Например, запросы на изменение подразделения сотрудника при его переводе должны происходить в определенном порядке.

5. Защита от отказов.

С помощью избыточности данных и их дублирования после сбоев аппаратуры, программ и пользователя данные не теряются и восстанавливаются.

12.2. Требования к организации базы данных

Существуют следующие требования к организации баз данных.

1. Установление многосторонних связей

Метод организации данных должен обеспечивать получение требуемого варианта данных из существующей структуры данных и их связей.

2. Производительность

БД должна обеспечивать требуемую пропускную способность запросов и требуемое время отклика.

3. Минимальные затраты

Выбираются методы организации, которые минимизируют требования к внешней

памяти.

4. Минимальная избыточность

Целью организации БД должно быть уменьшение избыточных данных и контроль за теми противоречиями, которые вызываются их наличием.

5. Возможности поиска

Пользователь БД может обращаться к ней со множеством запросов некоторого типа.

6. Целостность

Хранение данных, их обновление, процедуры изменения должны быть такими, чтобы при сбоях и ошибках данные восстанавливались без потерь.

7. Безопасность и секретность

Под безопасностью данных понимают защиту данных от случайного или преднамеренного доступа к ним лиц, не имеющих на это право, от неавторизованной модификации данных или их уничтожения.

Секретность определяют как право отдельных лиц или организаций определять, когда, как и какое количество информации может быть передано другим лицам или организациям.

8. Связь с прошлым

Новое программное обеспечение должно быть совместимо с существующими программами. Проблема связи с прошлым, однако, не должна сдерживать развития БД.

9. Связь с будущим

БД должна быть запланирована таким образом, чтобы ее изменения не требовали изменения прикладных программ.

10. Простота использования

Интерфейс СУБД должен предполагать, что конечный пользователь не имеет необходимых знаний по теории баз данных.

12.3. Классификация БД

По технологии обработки БД делятся на централизованные и распределенные.

Централизованная БД хранится в одной ЭВМ.

Распределенная БД хранится на нескольких ЭВМ.

По способу доступа к данным БД разделяется на БД с локальным и удаленным доступом.

При локальном доступе запрос к данным поступает с того же компьютера, где данные хранятся. При удаленном доступе запрос к данным производится с другого компьютера. Удаленный доступ еще называют сетевым.
Компьютер, на котором данные хранятся, называется сервером. Компьютер, с которого данные запрашиваются, называется рабочей станцией.

Чаще всего применяются централизованные базы данных с удаленным доступом.
Для таких систем разработаны две технологии:

1. файл сервер

2. клиент сервер.

При технологии «файл сервер» данные в основном обрабатываются на рабочих станциях, для чего станции запрашивают у сервера необходимые файлы данных. Сервер только хранит данные и может быть не мощным. Недостатком технологии файл-сервер является большой объем переносимой информации по сети (трафик). Например, для получения списка сотрудников отдела станция запрашивает и получает по сети список сотрудников всей организации.

При технологии «клиент-сервер» рабочая станция посылает на сервер текст запроса к данным. Обработку запроса производит сервер, после обработки данные посылаются на рабочую станцию. В большинстве операций обработки (фильтр, обобщение) объем данных сокращается. Поэтому сокращается объем переносимой по сети информации (трафик) сокращается.

При технологии «клиент-сервер» нужен мощный сервер. Однако нагрузка на сеть гораздо меньше, чем при технологии файл-сервер.

Развитием технологии «клиент-сервер» является технология «тонкий клиент». В этой технологии на сервере проводятся не только стандартные операции обработки данных (сортировка, фильтр, обобщение, поддержка целостности), но и все другие операции обработки. Рабочая станция служит только для приема команд пользователя и для отображения результатов и совершенно не обрабатывает данных. Станции даже могут не иметь жестких дисков.

Объектами хранения в текстовых БД являются тексты. Под текстом понимаются неструктурированные данные, состоящие из слов. Основной целью текстовой БД является хранение, поиск и выдача документов, соответствующих запросу пользователя. Такие документы называются релевантными.

По степени универсальности различают:

- Специализированные СУБД,

- СУБД общего назначения.

Специализированные СУБД ориентированы на какую-либо предметную область и для другой области неприменимы. К таким СУБД, например, можно отнести программы бухгалтерии, банковские системы, расчет смет.

СУБД общего назначения охватывают широкий класс задач. Они обладают языковыми средствами настройки на конкретную область и являются, по сути, инструментальным средством для создания специализированных СУБД.

Из СУБД общего назначения выделяются хранилища данных. Они предназначены только для хранения данных, обеспечения сепаратности, целостности, секретности, синхронизации и защиты от отказов. Они не содержат средств для создания интерфейса пользователя.

12.4. Понятие объекта данных

Под сущностью понимается предмет, явление, процесс, событие окружающего мира, например склад, выдача зарплаты, приходная накладная. Сущность описывается

некоторыми характеристиками.

Атрибут – логически неделимый параметр, характеристика, свойство сущности, способный принимать значение (быть чему то равным).

Объект данных – описание представителя некоторой сущности реального мира, в виде логически связанных атрибутов. Объект данных хранится в БД.

Следующие два положения принимаются в теории БД как аксиома отличия: «Значениями атрибутов один объект данных отличается от другого. Не может быть двух объектов данных, у которых попарно равны значения всех атрибутов.» Объекты данных могут объединяться в наборы объектов по некоторому общему признаку. Этот общий признак обычно выносится в название набора объектов, например, Начисления, Платежи.

12.5. Структурные элементы БД

В описании объекта данных нужно выделить 2 составляющие: структуру и экземпляр.

Структура – перечень атрибутов объекта и характеристики атрибутов.

Экземпляр – совокупность значений атрибутов.

Структура изменяется крайне редко. Экземпляр подвержен изменениям.

При хранении в ЭВМ базе данных соответствует группа файлов и папок, набору объектов соответствует файл. Каждому объекту соответствует запись в файле. Каждому атрибуту соответствует поле записи.

Для описания атрибута используются следующие характеристики:


1. имя;

2. тип;

3. длина;

4. точность, для числовых данных.

5. описание;

6. формат изображения на экране и бумаге;

7. подсказка;

8. формат ввода;

9. начальное значение;

10. диапазон значений.


Ключ – это средство упорядочивания объектов в наборе. Ключ содержит ключевое выражение, составляемое из атрибутов объектов. По возрастанию значения ключевого выражения объекты предъявляются для просмотра и обработки.

Для одного набора можно задать несколько ключей. Например, для набора

Работники можно задать ключ по алфавиту фамилий, работники будут предъявляться по

алфавиту.

Ключ называется первичным, если по одному значению его выражения из набора выделяется 0 или 1 объект. Например, для набора работников ключ «По табельному номеру» первичный, так как по одному значению табельного номера выделяется или ни одного, или только один работник.

Ключ называется вторичным, если по одному значению его выражения из набора выделяются 0 и более объектов. Например, ключ для набора работников ключ «По алфавиту фамилий» вторичен, так как среди работников могут быть однофамильцы. По аксиоме отличия у каждого набора существует первичный ключ. В крайнем случае, в его выражение включает все атрибуты объекта в наборе.

Хорошей практикой служит введение для объекта данных искусственного атрибута

«Порядковый № в наборе», который автоматически присваивается и уникален. Ключ по такому атрибуту называется суррогатным. Заметим, что понятия первичного и вторичного ключа не зависят от количества и значений объектов в наборе. Первичные и вторичные ключи бывают для пустых наборов.

12.6. Связи между наборами объектов и их типы

Пусть имеется n наборов объектов Е1, Е2, …, Еn.

Связью называется множество последовательностей объектов (еi

1, еi 2,…, еi n), где еi 1 Е1, еi 2 Е2, …, еi n Еn.

С помощью связей наборы объектов объединяются в единую информационную структуру.

Между двумя наборами объектов (n=2) различают три типа связей:

1. один к одному (1:1);

2. один ко многим (1:М);

3. много ко многим (М:N).

Связь между двумя наборами Е1 и Е2 относится к типу «один к одному», если для каждого объекта из первого набора можно указать 0 или 1 объект из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.

Примерами связей типа 1:1 служат связи между:

студентами и зачетными книжками,

между государствами и валютами,

между офицерами и табельным оружием,

между гражданами и заграничными паспортами. У каждого студента или нет зачетной книжки, или есть только одна.

Для каждой зачетки или студент не указан, или имеется только один.

Связь между двумя наборами Е1 и Е2 относится к типу «один ко многим», если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.

Примерами связей 1:М служат связи между


банками и вкладами,

вкладами и взносами,

между группами и студентами,

между отделами и сотрудниками,

между ведомостями и строками ведомостей,

между клиентами и заявками.


В каждом банке или нет вкладов (банк еще не открылся) или может быть много вкладов. Для каждого вклада или банк не указан, или есть только один.

Связь между двумя наборами Е1 и Е2 относится к типу «многие ко многим», если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или более объектов из первого набора.

Примерами связей M:N служат связи между


продуктами и странами,

между студентами и дисциплинами,

между сотрудниками и проектами,

между заявками и товарами,

между магазинами и покупателями.


Модель данных

Модель данных – это совокупность трех групп логических правил:

1. описание структуры данных,

2. правила целостности и непротиворечивости данных,

3. операции манипулирования с данными.

Существует три вида моделей данных: иерархическая, сетевая, реляционная.

12.7. Иерархическая и сетевая модели данных

В иерархической модели база данных представляется в виде иерархически упорядоченных структур – деревьев (диаграммы Бахмана).

Каждая вершина дерева означает объект данных, каждая дуга означает связь между объектами. Все вершины графа – дерева распределены по уровням. Каждая вершина низшего уровня связана только с одной вершиной из верхнего уровня. Связей внутри уровня и через уровень не существует. На самом верхнем уровне существует только одна вершина - корень дерева.

Ниже перечислены преимущества иерархической модели.

Простота модели. Иерархия базы данных напоминает структуру компании или генеалогическое дерево.

Использование отношений предок/потомок. СУБД позволяет легко представлять отношения подчиненности, например: «А является частью В» или «А владеет В».

Быстродействие. В СУБД отношения предок/потомок реализованы в виде физических указателей из одной записи на другую, вследствие чего перемещение по базе данных происходило быстро.

Групповое отношение - иерархическое отношение между записями двух типов.

Родительская запись называется исходной записью, а дочерние записи – подчиненными.

Для групповых отношений в иерархической модели обеспечивается автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись. При удалении родительской записи автоматически удаляются все подчиненные.

Недостатки иерархических БД:

Каждый объект данных может участвовать только в одной иерархии объектов.

Поэтому, если объект должен присутствовать в нескольких иерархиях, то его приходится дублировать.

Например, данные о сотруднике должны участвовать в иерархии подчиненности отделам и в подчиненности контрактам в качестве исполнителей (такие записи называют парными). В иерархической модели не предусмотрена поддержка соответствия между парными записями.

Иерархическая модель реализует отношение между исходной и дочерней записью по схеме l:N, то есть одной родительской записи может соответствовать любое число дочерних. Допустим теперь, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь типа M:N). В этом случае в базу данных необходимо ввести еще одно групповое отношение, в котором

Исполнитель будет являться исходной записью, а контракт – дочерней. Таким образом, мы опять вынуждены дублировать информацию.

Изменение структуры данных требует перестройки всей системы указателей на записи.

Чтобы получить доступ к данным, содержащимся в базе данных, СУБД может:

найти конкретный объект (ИЭП) по его номеру;

перейти «вниз» к первому потомку (Группа 35164-ЭБ-1);

перейти «вверх» к предку (Университет);

перейти «в сторону» к другому потомку (ИМОМИ).

Таким образом, для чтения данных из иерархической базы данных требуется перемещаться по записям, за один раз переходя на одну запись вверх, вниз или в сторону.

Поддерживается только целостность связей между владельцами и членами. В сетевой модели БД изображается в виде графа произвольной структуры

Основные различия двух моделей состоят в том, что в сетевой модели запись может быть членом более чем одного группового отношения.

Согласно сетевой модели каждое групповое отношение именуется и проводится различие между его типом и экземпляром. Тип группового отношения задается его именем и определяет свойства, общие для всех экземпляров данного типа. Экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа (т.е. сотрудник, например, не может работать в двух отделах).
Каждый экземпляр группового отношения характеризуется следующими признаками:

1. способ упорядочения подчиненных записей:

- произвольный,

- хронологический /очередь/,

- обратный хронологический /стек/,

- сортированный.

Если запись объявлена подчиненной в нескольких групповых отношениях, то в каждом из них может быть назначен свой способ упорядочивания.

2. режим включения подчиненных записей:

- автоматический - невозможно занести в БД запись без владельца;

- ручной - позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения. Эта операция позже инициируется пользователем.

3. режим исключения

Принято выделять три класса членства подчиненных записей в групповых

отношениях:

1. Фиксированное. Подчиненная запись жестко связана с записью владельцем и ее можно исключить из группового отношения, только удалив. При удалении записи- владельца все подчиненные записи автоматически тоже удаляются.

2. Обязательное. Допускается переключение подчиненной записи на другого владельца, но невозможно ее существование без владельца. Для удаления записи- владельца необходимо, чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны записи "СОТРУДНИК" и "ОТДЕЛ". Если отдел расформировывается, все его сотрудники должны быть либо переведены в другие о<



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: