1626434812-e667f6b6e7e69d3a0798830a58e9075b (844135), страница 23
Текст из файла (страница 23)
в ЕЮчп существуют библиотеки готовых шаблонов триггеров и хранимых процедур. Но при желании разработчик может вносить в них свои изменения. Базы данньис. Интеллензнуальнан оораоопжа информации Етр1оуее Эерагппеп( Рис. 5.6.1б. Пример физическоймодеяи донных С11еп1 С11еп( Егпр1оуее Рис. 5.6.11. Пример автоматической развязки связи "многие-ко-многим" Ейячп реализует собственный макроязык для подготовки прототипов триггеров и процедур. Схема использования прототипов заключается в подготовке шаблона для различных типов триггеров (например, триггер, реализующий логику каскадного удаления — ОМ РЕДЕЕТЕ САКСАУЛЕ).
Макроязык шаблонов реализует большое количество макросимволов, ссылающихся на различные объекты базы данных, например: Ъйст. ~оп — расширяется в ~3РОАТЕ/ИЧБЕВТ10Е(.ЕТЕ; ЪГогЕаойй~т.(<таблица>, <разделитель>)(<макрокоманда>1— циклическое выполнение группы операторов над каждым атрибутом таблицы; ЪГогЕасЬЕпг.з.~у (1 ( 1 — циклическое выполнение функций над всеми таблицами; %11, Ъе1ве — операторы условного управления. Глава 5.
Семантическое моделирование в базах данных Так, шаблон триггера для реализации поддержки ОИ ПЕ1 ЕТЕ САЯСАЭЕ: ~" Ейи1п Ви11с1п Юасесппе */ /* ЪРатепс ЪЧетЬРЬхаяе %СЬ11с( О)1 РАВЕЫТ ЭЕ1ЕТЕ СМСЛОЕ */ с1е1е~е Етое ЪСЬ11с( l* $%3о1пРКРК(ЪСЫ.1с1,:%$01с1," = "," апс1") *~ Ъ Уо1пРКРК (ЪСЬ11с),: ЪО1с1," = "," апс1"); в модели„приведенной на рис. 5.6.10, для связи "состоит из" будет сгенерирован следующий прототип триггера. /* ЕРх1п Вц11с1п ТЬц Мах 16 19:35:28 2ООО /+ Эера~~гаепт. состоит из Евр1оуее ОК РАВЕН)Т БЕ1.ЕТЕ САЯСИ)Е /" ~~о1пРКРК(Еар1оуее,: "5О1с1," = "," апс1") "/ Евр1оуее.
Берах~вепс1О = :о1с(.Оераг~вепс10; Все макрофункции, которые могут использоваться в триггерах„могут использоваться также и в процедурах. Существенно, что процедуры, как и триггеры, связываются с таблицей. Такой подход позволяет полностью исключить хаотичное внесение изменений в базу данных, так как модель в ЕВлип описывает все аспекты базы, в том числе обеспечиваемые триггерами. И, наконец, на этапе генерации схемы БД Е)Ьип автоматически создает следующие элементы: ° таблицы; ° уникальные индексы для каждого первичного и альтернативного ключа и неупикальные — для инверсных входов; ° хранимые процсдуры; ° триггеры для обеспечения ссылочной целостности; ° другие обьекты, необходимые для управления данными.
5.6.6. Интерфейс Е$Ьлп Рассмотрим основные элементы интерфейса Ейлчп 3.5,2 На рис. изображено рабочее окно, Основные инструменты создания модели доступны как из меню, так и через верхнюю линейку панели инструментов. Назначение ее элементов приведено в таблице 5.б.1. Базы данных. Интюлектуатьная обработка информации Рис. 5.6.!2. Рабочее окно Ейьч.т 3,5,2 Таблица 5.б.1. Верхняя линейка панели инструментов Элемент линейки Назначение элемента Создание, открытие, сохранение и псчать модели.
Вызов диалога Керог~ Вгоъзег для генерации отчетов. Выбор уровня отображения модели: уровень сущностей, уровень атрибутов и уровень описаний. Изменение масштаба. Генерация схемы БД, синхронизация схемы БД с моделью и выбор сервера СУБД ~доступны только на физическом уровне). Вызов дополнительной панели для работы с репозитарием Мос1е! Маг1. Переключение между областями модели.
Глава 5. Семантическое моделирование в базах данных Переключение между физической и логической моделью. Нижняя линейка предназначена для настройки параметров отображения диаграммы и играет вспомогательную роль. При помощи элементов данной линейки пользователь имеет возможность устанавливать различные шрифты, менять размер, стиль и цвета символов„вьюирать цвета заливки и основных линий.
Кроме основной панели инструментов, в Ейв1п предусмотрена дополнительная перемещаемая панель инструментов (рис 5.б,13). Рнс. 5.б.13. Дополнительная панель ннструиентов С ее помощью создаются нсзависимыс и зависимые сущности, идснтифицируюшие и нсидснтифицируюшие связи, полные и неполные категории, связи многие-ко-многим и текстовые элементы. Например, для того чтобы создать новую сущность, пользователь нажимает кнопку ЩЩ, устанавливает указатель мыши в то место на диаграмме, где он хотел бы р1асположить новую сушность, и один раз нажимает левую клавишу мыши.
Или для задания связи идентифицирующей связи между сущностями Базы данных. Интел>гект>вуальная обработка информации пользователь нажимает кнопку Щ, устанавливает указатель мыши сначала на родительскую сущность и одйй раз нажимает левую клавишу мыши, а затем — на дочернюю сущность и вновь нажимает клавишу мыши, Заметим. что при переключении на уровень физической модели облик данной панели меняется ~рис. 5.б.14): вместо кнопки создания категорийной связи появляется кнопка создания представления (чге~ч) таблицы, а вместо кнопки создания связи многие-ко-многим — кнопка задания связи между таблицсй и представлением. Кнопка создания сущности на физическом уровне носит название кнопки создания независимой таблицы.
Рг<с. 5.6.!4. До»ол><и»гель>«<н»а><вишь инс»груме><»>ов на уров><е фг<зг«<еског< э<одел<< Как логическая, так и физическая модель содержат несколько уровней отображения (названия для физической модели заключены в круглые скобки): Х. Уровень "суг«><ос»гг<" ("»габлг<<1ы") — внутри прямоугольников отображается имя сущности (для логической модели) или имя таблицы (для физического представления модсли); служит для удобства обзора большой диаграммы или размещения прямоугольников сущностей на диаграмме.
2. Уровень "а»грг<бу»гы*'< "колонн<<"), При переходе от предметной области к модели требуется вводить информацию о том, что составляет сущность. Эта информация вводится путем задания атрибутов г',на физическом уровне — колонок таблиц). В этом режиме прямоугольник-сущность делится линией на две части: в верхней части отображаются атрибуты (колонки), составляющие первичный ключ, а в нижней — остальные атрибуты. 3. Уровень "описание ау<<1><оо>гг<" ("коммен»г<грг<г<') служггг для презентации диаграммы другим людям. 4. Уровень ">гервг<ч><ые к>г>очг<" — внутри прямоугольников-сущностей пока- зываются только атрибуты/колонки, составлягощие первичный ключ.
5. Уровень ">><<к»гограл<х<ы". Для презентационных целей каждой таблице может быть поставлена в соответствие пиктограмма. На уровне физичсской модели заменяется уровнем упорядочения. Переключение между уровнями отображения производится при помощи кнопок панели инструментов или при помощи всплывающего меню, возникающего при нажатии правой клавиши мыши на пустом месте диаграммы г',рис 5.б.15). Глава 5. Семантическое моделирование в базах даииых Рис.
5.6.!5. Пример переключения между цювнями отображения Все объекты, представленные на диаграмме, могут редактироваться средствами, принятыми в Мпг1оч я, — группировка, копирование„удаление, перемещение, использование системного буфера. Нажатие клавиши мыши над сущностью приводит к появлению окна одного из многочисленных редакторов ЕКячп, среди которых: ° редакгор сущностей в целом (определение сущности, дополнительная информация, триггеры, индексы, характеристики таблицы, хранимые процедуры, связанные с таблицей); ° редактор атрибутов (определение атрибутов, колонки таблицы в физическом представлении модели, репозитарий средства 401, например, расширенные атрибуты в РотчегВшЫег) Подробнее редакторы, а также некоторые другие элементы интерфейса будут рассмотрены по ходу изложения в следующем пункте.
5.6.7. Пример разработки модели БД с помощью ЕИЖп 5.6.7.1. Постановка задачи В гипотетическом пункте обмена валют создается локальная информационная система (ИС), призванная автоматизировать процесс учета сделок купли-продажи валюты. Создаваемая система должна обеспечить ввод, хранение и поиск информации о сделках, совершенных в данном пункте обмена. Каждой сделке присваивается уникальный цифровой код.
Информация о сделке должна содержать сведения о дате и времени сделки, суммах покупаемой и продаваемой валют, фамилии, имени, отчестве и номере паспорта клиента, а также о фамилии, инициалах и учетном номере личного дела кассира в отделе кадров. Система должна позволять вычислить денежный оборот за один или несколько дней, а также осуществлять поиск информации о сделках по номеру Базы данних.
Интеллектуальная обраоотка инфориации 11б паспорта клиента. Задача состоит в проектировании структуры базы данных разрабатываемой автоматизированной ИС. 5.672. Создание логической модели БД Проведем анализ предметной обласги с целью выделить основныс сущности. Поскольку речь идет об учете сделок купли-продажи валюты, ясно, что в модели должна присутствовать сущность СДЕЛКА.
Согласно правилам, па ЕК-диаграмме названия сущностей записываются большими буквами. Напомним, что название сущности — это название типа, а не множества обьектов. Поэтому оно чаще всего выражается существительным в единственном числе (ср. СДЕЛКИ). Понятие сделка подразумевает участие по крайней мере двух совершающих ее сторон, а также наличие предмета сделки. Т,к. участниками сделки являются клиент и кассир. а предметом сделки является валюта, необходимо ввести еше три сущности.
ВАЛЮТА, КЛИЕНТ и КАССИР. Внесем псречисленныс сущности в диаграмму. Названия сущностей можно редактировать непосредственно на диаграмме, как это показано на рис. 5.6.16. Рнс. 5.б. 1б. Внесение новых сущностей в днагриччу 1лава 5. Семантическое моделирование в базах даииых 117 Рис. 5.6.17.
Меню вызова редакзноров, относнщнксн к сццносньим Вид диалогового окна редактора сущностей представлен на рис. 5.б.18. Рнс. 5.6. 18.,циалогояое окно редактора сущпооней Для внесения дополнительных сведений необходимо воспользоваться редактором сущностей. Перейти в него можно при помощи всплывающего меню ~рис 5.б.17), возникающего при нажатии правой клавиши мыши над любой из сущностей. пв Базы данных. Инжеияектуальна» обработка информации Следующим шагом в процессе создания логической модели должно стать определение связей между сущностями.
Напомним, что для задания связи между двумя сущностями необходимо указать тип связи, паправленис связи (роди- тельская и дочерняя сущности), мощность связи„допустимость пустых (пц!1) значений, требования по обеспечению ссылочной цслостности, а в некоторых случаях и роль. Для задания связей между указанными сущностями сначала составим опи- сание дашюй предметной области при помощи ряда истинных высказываний на естественном языке.
Любой КЛИЕНТ должен совершить одну или несколько СДЕЛОК. Каждую СДЕЛКУ должен совершать только один КЛИЕНТ. Любой КАССИР может обслуживать одну или несколько СДЕЛОК, но мо- жет не обслуживать и ни одной (например, только принят на работу). Каждую СДЕЛКУ должен обслуживать только один КАССИР. Любая ВАЛЮТА может покупаться и продаваться при разных СДЕЛКАХ. При совершении СДЕЛКИ должна покупаться одна ВАЛЮТА и продавать- ся другая ВАЛЮТА. Анализ приведенных высказываний позволяет выделить четыре связи (на- звания связей — глаголы): КЛИЕНТ совершает СДЕЛКУ.
КАССИР обслуживает СДЕЛКУ. ВАЛЮТА покупаться при СДЕЛКЕ, ВАЛЮТА продается при СДЕЛКЕ. Все четыре связи являются связями "один-ко-многим". Во всех четырех случаях сущность СДЕЛКА является дочерней, Все связи нсидентифицирующие, т.к. любой экземпляр сущности СДЕЛКА может быть однозначно идснтифицирован по коду сделки, т.е. вне зависимости от экземпляров других сущностей. Все связи, кроме первой, могут иметь мощность О, 1 или более. Первая связь не может иметь мощность О, т.к. в данном случае любой человек стано- вится КЛИЕНТОМ только тогда, когда он совершает хотя бы одну сделку. Во всех четырех связях родительские сущности не могут принимать пус- тые значения, т.к.