- •Лабораторная работа № 1
- •1. Общие сведения
- •2. Назначение системы
- •2.1. Моделирование в eRwin
- •2.2.1. Процесс построения информационной модели
- •2.1.2 Отображение логического и физического уровня модели данных в eRwin в
- •2.1.3. Сущности (Entity) в eRwin
- •2.3 Описание работы с пакетом
- •1 Исходные данные
- •2 Постановка задачи
- •3 Создание логической модели данных
- •Лабораторная работа № 2
- •4. Контрольные вопросы:
- •Лабораторная работа № 3
- •1. Общие сведения по работе
- •1.1 Создание файла бд в среде субд ms Access
- •2. Порядок выполнения работы
- •3. Контрольные вопросы:
- •Лабораторная работа № 4
- •1. Общие сведения
- •2. Генерация «скелета» sql-кода в пакете eRwin
- •3. Подключение к серверу бд MySql 5.1 с помощью утилиты sql
- •4. Создание таблиц бд на сервере MySql 5.1 с помощью утилиты ems sql Manager for Mysql Lite.
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •Лабораторная работа № 5
- •1. Общие сведения
- •1.1 Язык sql
- •1.2 Тестовая предметная область
- •1.3 Создание и работа с запросами к бд с помощью ems sql Manager
- •2 Запросы insert
- •3 Запросы update
- •4 Запросы delete
- •5 Запросы select
- •6 Порядок выполнения работы
- •7 Контрольные вопросы
- •Лабораторная работа № 6
- •1. Общие сведения
- •1.1 Вычисление дат
- •1.2 Работа с значениями null
- •1.3 Сравнение по шаблонам
- •1.4 Использование нескольких таблиц
- •1.5 Использование вложенных запросов
- •1.6 Использование пользовательских переменных
- •1.8 Использование атрибута auto_increment
- •1.9 Получение системной информации об объектах бд
- •2 Порядок выполнения работы
- •3 Контрольные вопросы
- •Лабораторная работа № 7 Тема: изучение программных средств разработки серверной бизнес-логики в субд mysql 5
- •1. Общие сведения
- •2. Особенности программной разработки обл в среде субд MySql 5.
- •2.1 Представления
- •2.2 Хранимые процедуры
- •2.3. Курсоры
- •2.3 Триггеры
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •5. Список литературы
- •1. Общие сведения
- •2. Особенности разработки правил контроля ссылочной целостности
- •2.1 Ссылочная целостность
- •2.2 Транзакции
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •Лабораторная работа № 2-6
- •1. Общие сведения
- •2. Оптимизация запросов.
- •2.1. Использование оператора explain
- •2.2. Пример использования оператора explain.
- •2.3.Как MySql оптимизирует left join и right join
- •3. Оптимизация структуры бд
- •3.1.Использование индексов в MySql
- •3.2.Индексы столбцов
- •3.2. Многостолбцовые индексы
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
2.1.2 Отображение логического и физического уровня модели данных в eRwin в
ERwin существуют два уровня представления и моделирования - логический и физический. Логический уровень означает прямое отображение фактов из реальной жизни. Например, люди, столы, отделы, компьютеры являются реальными объектами. Они именуются на естественном языке, с любыми разделителями слов (пробелы, запятые и т.д.). На логическом уровне не рассматривается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц.
Целевая СУБД, имена объектов и типы данных, индексы составляют второй (физический) уровень модели ERwin. ERwin предоставляет возможности создавать и управлять этими двумя различными уровнями представления одной диаграммы (модели), равно как и иметь много вариантов отображения на каждом уровне.
2.1.3. Сущности (Entity) в eRwin
На диаграмме сущность изображается прямоугольником. В зависимости от режима представления диаграммы прямоугольник может содержать имя сущности, ее описание, список ее атрибутов и другие сведения. Горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора - атрибуты, составляющие первичный ключ в верхней части, и прочие (не входящие в первичных ключ) - в нижней части, как показано на рисунок 1.1:
Рисунок 1.1 – Отображение ключевых и неключевых атрибутов сущности
Сущность представляет собой множество реальных или абстрактных объектов, например: люди, места, события, факты, которые имеют общие характеристики.
Сущность - это логическое понятие. Сущности соответствует таблица в реальной СУБД. В ERwin сущность визуально представляет три основных вида информации:
атрибуты, составляющие первичный ключ;
не ключевые атрибуты;
тип сущности (независимая/зависимая).
Первичный ключ - это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области. Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Правила определения сущностей состоят в следующем:
Сущность должна иметь уникальное имя.
Сущность обладает одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через отношения.
Сущность обладает одним или несколькими атрибутами, которые однозначно идентифицируют каждый образец сущности и называются ключом или составным ключом.
Каждая сущность может обладать любым количеством отношений с другими сущностями.
Если внешний ключ целиком используется в составе первичного ключа, то сущность является зависимой от идентификатора.
Экземпляры независимой (родительской) сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая
(дочерняя) сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами (рисунок 1.2).
Рисунок 1.2 – Пример представления родительской и дочерней сущности.
Существует несколько видов связей:
Идентифицирующая. Идентифицирующая связь указывает на то, что дочерняя сущность в связи является зависимой от родительской сущности.
Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности.
Идентифицирующая связь отображается сплошной линией, причем дочерняя сущность является зависимой и поэтому отображается прямоугольником со скругленными углами, как показано на Рисунок 2.
Не идентифицирующая. Связь называется не идентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью.
Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав не ключевых атрибутов дочерней сущности. Не идентифицирующая связь отображается штриховой линией, Рисунок 1.3:
Рисунок 1.3 – Отображение не идентифицирующей связи
Рекурсивная. Это такая связь, при которой одна и та же сущность является и родительской, и дочерней.
Такая ситуация часто встречается в “реальном мире”. Люди - родители людей. Руководители управляют руководителями. Компании приобретают компании. Существует два типа рекурсии, оба распространены и оба отражены в системе ERwin. Первый тип называется “иерархической рекурсией” (другое название - однотабличная рекурсия или “петля”), и задает иерархию связей между родительской и дочерней сущностью, при которой родитель может породить любой количество дочерних сущностей, но дочерняя сущность может иметь только одного родителя. Указывает на связь сущности саму на себя, рисунок 1.4.
Рисунок 1.4 – Представление иерархической рекурсивной связи
Рекурсивные связи должны быть неидентифицирующими. Обосновать данное утверждение можно с доказательства того, по какой причине им не имеет смысла быть идентифицирующими. В идентифицирующей связи первичный ключ родительской сущности становится подмножеством первичного ключа дочерней, и ключевые атрибуты никогда не могут принимать значение NULL. Подумав об этом и нарисовав простую таблицу экземпляров на основе примера из “реального мира”, можно убедиться, что идентифицирующая связь не имела бы смысла, потому что она бы утверждала, что некоторая сущность является своим собственным родителем. Мигрирующий ключ мигрировал бы бесконечное число раз, что собственно не имеет смысла. В процессе моделирования данных могут быть выявлены сущности, часть атрибутов и связей которых одинаковы. В этом случае используется иерархия категорий. Все общие атрибуты выделяются в сущность называемую супертипом, а отличающиеся атрибуты помещаются в сущности - подтипы, связанные с супертипом, (рисунок 1.5). При помощи дискриминанта определяется, с экземпляром какого подтипа связан экземпляр супертипа.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; не идентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности. При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную. Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности.
Рисунок 1.5 – Выделение супертипа и использование иерархии подтипов
В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность посредническая сделка имеет атрибут код предприятия-продавца и код предприятия-покупателя. В данном случае первичный ключ сущности предприятие (код предприятия) имеет две роли в дочерней сущности. На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.
