мет_указ_СР_ФОРМ
.pdfс предусловием
31
Сумма S = 0
Счетчик К =1
Да |
К ≤ 5 |
|
Нет |
||
|
||
Ввод угла α |
|
|
|
Вывод суммы S |
|
α |
|
Сумма S = S + α
К = К + 1
32
с постусловием
Сумма S = 0
Счетчик К =1
Нет |
К ≥ 5 |
|
Да |
||
|
||
Ввод угла α |
|
|
|
Вывод суммы S |
|
α |
|
Сумма S = S + α
К = К + 1
Р-граф
Одной из интересных графических форм является Р-граф. Это блоксхема «наизнанку»: вместо графов с нагруженными вершинами используются графы с нагруженными рёбрами. Все основные конструкции просто и изящно представляются наглядными компактными графами (как и в вышеприведенных случаях, конструкции можно вкладывать друг в друга).
Название алгоритма |
Р-граф |
Линейная структура |
|
Действие 1 |
Действие 2 |
33
Ветвящаяся структура
Условие
Действие 1
Действие 2
Циклическая структура
с предусловием
Условие
Действия (тело цикла)
с постусловием
Действия (тело цикла)
Условие
Решение.
Название
алгоритма
Линейная
структура
Ветвящаяся
структура
Циклическая
структура
|
Фраза в виде Р-графа |
|
|
||
|
Ввод угла |
α |
|
Углы α и |
|
Ввод угла α |
вертикальные |
||||
|
|||||
|
|
|
|||
|
|
Если углы равны |
|
||
Ввод угла α |
Ввод угла |
Печать «Углы |
|
|
|
вертикальные» |
|
||||
|
|
|
|||
|
|
Печать «Углы не являются |
|||
|
|
вертикальными» |
|
|
|
|
34 |
|
|
|
|
|
|
Пока К ≤ 5 |
|
с |
предусло- |
Сумма S = 0 |
Счетчик К = 1 |
Ввод угла α |
Вывод суммы S |
вием |
|
||||
|
|
α |
|
||
|
|
|
|
|
|
|
|
|
|
Сумма S = S + α |
|
|
|
|
|
К = К + 1 |
|
|
|
|
|
К = К + 1 |
|
|
|
|
|
Сумма S = S + α |
|
с |
постусло- |
|
|
α |
|
вием |
|
|
Ввод угла α |
|
|
|
|
|
|
До К ≥ 5 |
Вывод суммы S |
|
|
Сумма S = 0 |
Счетчик К = 1 |
|
|
|
Раздел 3 «Проектирование реляционных баз данных (построение кон- |
||||
|
цептуальной, инфологической и датологической моделей)» |
Реляционная база данных – это тело связанной информации, со-
храняемой в двухмерных таблицах. Другими словами, реляционная база данных – это совокупность взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Основные характеристики таблиц:
Наименьшая единица данных реляционной модели – это отдельное атомарное (неразложимое) для данной модели значение данных. Так, в одной предметной области фамилия, имя и отчество могут рассматриваться как единое значение, а в другой – как три различных значения.
35
Доменом называется множество атомарных значений одного и того же
типа.
Атрибут – поименованная характеристика сущности. Например, у машины есть атрибуты: мотор, кузов, шасси и т.д. Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Лю-
бой атрибут может быть сущностью, в зависимости от точки зрения на него.
Прежде, чем приступить к непосредственному проектированию базы данных, необходимо вспомнить этапы проектирования данных и понятие «предметная область».
Предметная область – часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. Предметная область представляется множеством фрагментов, например, вуз – факультетами, перечнем дисциплин, лабораторным оборудованием и т.д. Каж-
дый |
фрагмент |
предметной |
области |
характеризуется |
множе- |
ством объектов и процессов, использующих |
объекты, а также |
множе- |
ством пользователей, характеризуемых различными взглядами на предметную область.
В теории проектирования баз данных и информационных систем предметную область принято рассматривать в виде трех представлений:
1.Представление предметной области в том виде, как она реально существует.
2.Восприятие с точки зрения проектировщика базы данных.
3.Описание с помощью символов.
Обычно говорят, что мы имеем дело с реальностью, описанием (представлением) реальности и с данными, которые отражают это представление.
Данные, используемые для описания предметной области, представляются в виде трехуровневой схемы (модель ANSI/SPARC):
Внешнее представление (внешняя схема) данных является совокупностью требований к данным со стороны некоторой конкретной функции, вы-
полняемой пользователем. Концептуальная схема является полной сово-
купностью всех требований к данным, полученной из пользовательских представлений о реальном мире. Внутренняя схема – это сама база данных.
Отсюда вытекают основные этапы, на которые разбивается процесс проектирования базы данных или информационной системы:
1. Концептуальное проектирование (системный анализ предметной области) – сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:
36
обследование предметной области, изучение ее информационной структуры;
выявление всех фрагментов, каждый из которых характеризуется пользовательским представлением, информационными объектами и связями между ними, процессами над информационными объектами;
моделирование и интеграция всех представлений;
По окончании данного этапа получается концептуальная модель, инвариантная (инвариантный – в общем смысле означает неизменяемый) к струк-
туре базы данных. Часто она представляется в виде модели «сущность-
связь». Концептуальный уровень (представление аналитика):
сущности;
атрибуты связи.
2.Логическое (инфологическое и датологическое) проектирова-
ние – преобразование требований к данным в структуры данных. На выходе получаем СУБД-ориентированную структуру базы данных и спецификации прикладных программ. На этом этапе часто моделируют базы данных применительно к различным СУБД и проводят сравнительный анализ моделей. Логический уровень (представление программиста):
записи;
элементы данных;
связи между записями.
3.Физическое проектирование – определение особенностей хранения данных, методов доступа и т.д. Физический уровень (представление администратора):
группирование данных;
индексы;
методы доступа.
37
Реляционная модель – Отношения
Между таблицами могут существовать отношения трех типов: «один ко многим», «один к одному» и «многие ко многим». Только первый из них действительно необходим для реляционной модели. Для реализации двух других типов требуются определенные табличные преобразования.
Отношение «один ко многим» (1:N) является естественным типом отношений в реляционной базе данных. Оно реализуется с помощью внешних ключей. При отношении 1:N любой строке первой таблицы может соответствовать несколько записей второй таблицы. Если проанализировать связь в
38
противоположном отношении, то окажется, что строке второй таблицы соответствует всего одна запись первой таблицы.
Отношение 1:N, соединяющее столбцы одной и той же таблицы, называется само-объединением. Оно используется для отображения иерархических структур. Подразумевается, что внешний ключ ссылается на родительскую строку собственной таблицы.
Связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи. Левая сущность (со стороны «один») называется родительской, правая (со стороны «много») – дочерней.
Видеально спроектированной реляционной базе данных отношение «один к одному» (1:1) не нужно. Если каждой строке одной таблицы соответствует одна строка другой таблицы, то это обычно свидетельствует о том, что обе таблицы нужно объединить в единое целое. Исключение из правила – необычный случай, когда число столбцов таблицы превышает предел, установленный в СУБД. Обычно в СУБД этот предел равен 3000, так что маловероятно, чтобы кому-то пришло в голову его превысить. Есть СУБД, где предельное число столбцов гораздо меньше, например 250, но даже этого числа вполне достаточно для большинства приложений.
Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
Вреляционной базе данных нельзя напрямую создать отношение «многие ко многим» (M:N). Его необходимо преобразовать в два отношения 1:N, устанавливаемых с промежуточной таблицей. Выход из положения заключается в декомпозиции, т.е. разбивке отношения M:N на два отношения 1:N. Это означает, что ссылки между двумя таблицами будут вынесены в третью таблицу, содержащую всего два столбца. В них будут сопоставляться первичные ключи основных таблиц.
Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан
снесколькими экземплярами первой сущности. Тип связи много-ко- многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности.
Связь – это некоторая ассоциация между двумя сущностями. Одна сущность может быть связана с другой сущностью или сама с собою. Связи позволяют по одной сущности находить другие сущности, связанные с нею. Графически связь изображается линией, соединяющей две сущности. Каждая связь может иметь одну из двух модальностей связи:
39
Модальность в языке – это понятийная категория, которая характеризует отношение говорящего к содержанию высказывания или соотнесенность высказывания с действительностью. Термин модальность используется для обозначения широкого круга разнородных явлений. Начиная с Аристотеля, модальными принято считать значения возможности и необходимости.
Нотации и описание концептуальных схем баз данных
Нотация ER-моделирования (П. Чена)
Нотация (от лат. notatio – записывание, обозначение) – это система условных обозначений, принятая в какой-либо области знаний или деятельности. Нотация включает множество символов, используемых для представления понятий и их взаимоотношений, составляющее алфавит нотации, а также правила их применения.
Модель сущность-связь (ER-модель) (от англ. entity-relationship model)
– модель данных, позволяющая описывать концептуальные схемы предметной области. Выше говорилось, что предметная область – часть реального мира, рассматриваемая в пределах данного контекста. Под контекстом здесь может пониматься, например, область исследования или область, которая является объектом некоторой деятельности.
ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
ER-модель представляет собой формальную конструкцию, которая сама по себе не предписывает никаких графических средств её визуализации. В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма сущность-связь
(ER-диаграмма) (от англ. entity-relationship diagram).
После построения ER-модели во время проектирования базы данных происходит преобразование модели в конкретную схему базы данных на основе выбранной модели данных (логическое проектирование).
Вышеописанная ER-модель «сущность-связь» была предложена в 1976 году Питером Ченом, американским профессором компьютерных наук университета штата Луизиана.
Множества сущностей изображаются в виде прямоугольников, множества отношений изображаются в виде ромбов. Если сущность участвует в отношении, они связаны линией. Если отношение является необязательным (факультативным), то линия пунктирная. Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью.
40
Пример ER-моделирования:
Номер |
Курс |
Специальность |
Группа
Кураторы
Контролировать
Участвовать
Деканат |
Обязанности |
|
|
|
Участие |
Парусная регата |
ФИО |
в УВК |
|
Должность |
|
|
|
Яхта |
Гонки |
Нотация Crow's Foot
Данная нотация была предложена Гордоном Эверестом под названием Inverted Arrow («перевёрнутая стрелка»), сейчас чаще называемая Crow's Foot («воронья лапка») или Fork («вилка»).
Согласно данной нотации, сущность изображается в виде прямо-
угольника, содержащем её имя, выражаемое существительным. Имя сущности должно быть уникальным в рамках одной модели. При этом имя сущности – это имя типа, а не конкретного экземпляра данного типа. Экземпляром сущности называется конкретный представитель данной сущности.
Связь изображается линией, которая связывает две сущности, участвующие в отношении. Степень конца связи указывается графически, множественность связи изображается в виде «вилки» на конце связи.
Модальность связи так же изображается графически – необязательность связи помечается кружком на конце связи.