Основы работы в erwin. Построение логической модели
Скачать 469.96 Kb.
|
Практическая работа «Основы работы в ERWin. Построение логической модели» Цель работы ознакомиться с технологией построения логической модели в ERWin; изучить методы определения ключевых атрибутов сущностей; изучить типы связей между сущностями. Задание: Необходимо создать информационную модель предметной области «Отдел кадров». Основные таблицы модели: Работники (Код сотрудника, Фамилия, Имя, Отчество, Дата рождения); Должности (Код должности, Наименование, Оклад); Отделы (Код отдела, Название, Подразделение); Основные правила: отдел может входить в другой отдел; в разных отделах могут быть одинаковые должности; для одной должности в разных отделах может быть разный оклад. Ход работы Первым шагом при создании логической модели БД является построение диаграммы ERD (Entity Relationship Diagram). ERD-диаграммы состоят из трех частей: сущностей, атрибутов и взаимосвязей. Сущностями являются существительные, атрибуты - прилагательными или модификаторами, взаимосвязи - глаголами. Откройте программу В открывшемся окне выберите Greate a new model (создать новую модель). В открывшемся окне выберите Logical (логическая модель) Выберите элемент Таблица на Панели инструментов . Щелкните по рабочей области и введите название таблицы «Работники». Определим атрибуты таблицы. Для этого щелкните два раза по созданному элементу. Откроется окно (Рисунок 1). Для ввода полей нажмите кнопку New. Рисунок 1 - Ввод полей таблицы В открывшемся окне New Attribute в поле Attribute name введите Код сотрудника и выберите тип данных в окне Domain - Number и нажмите ОК. Аналогичным образом создайте остальные поля таблицы Работники - Фамилия, Имя, Отчество, Дата рождения. Для задания ключевых полей выберите переключатель Primary key (рисунок 1), для задания полей обязательных для ввода выберите переключатель Required (рисунок 2). Рисунок 2 – Указание поля, обязательного для ввода Самостоятельно создайте таблицы Отделы и Должности. Определите ключевые атрибуты (рисунок 3). Рисунок 3 – Созданные таблицы 2.2. Создание связей между сущностями Связь является логическим соотношением между сущностями. Связь имеет имя, мощность, тип. Имя связи (Verb Phrase) – фраза, характеризующая отношение между главной и подчиненной сущностями. Мощность связи (Cardinality) – служит для обозначения отношения числа экземпляров главной сущности к числу экземпляров подчиненной. Различают четыре типа мощности: общий случай, когда одному экземпляру главной сущности соответствуют 0, 1 или много экземпляров подчиненной сущности (не помечается каким-либо символом); P символом P помечается случай, когда одному экземпляру главной сущности соответствуют 1 или много экземпляров подчиненной сущности (исключено нулевое значение); Z символом Z помечается случай, когда одному экземпляру главной сущности соответствуют 0 или 1 экземпляр подчиненной сущности (исключены множественные значения); N цифрой помечается случай, когда одному экземпляру главной сущности соответствует заранее заданное число экземпляров подчиненной сущности. В Erwin различают два типа связей: идентифицирующая и неидентифицирующая. Идентифицирующая связь устанавливается между главной (начало связи) и подчиненной (конец связи) сущностями. Когда рисуется идентифицирующая связь, ERwin автоматически преобразует подчиненную сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами. При установлении неидентифицирующей связи подчиненная сущность остается независимой, а атрибуты первичного ключа главной сущности переходят в состав неключевых компонентов подчиненной. Неидентифицирующая связь служит для связи независимых сущностей. Согласно правилам модели отдел может входить в другой отдел, Создадим соответствующую неидентифицирующую связь с помощью кнопки на панели инструментов Non-identifying relationship , щелкнув дважды на таблице «Отдел». Дважды щелкнув на появившейся связи, перейдем в редактор ее свойств (рисунок 4). Дадим имя связи – «включает в себя». Поскольку уровень вложенности строго не задан, установим параметры – «zero, one or more» (неидентифицирующая связь, один ко многим). Рисунок 4 – Параметры связи Созданная связь показана на рисунке 5. Рисунок 5 – Правило «Отдел может входить в другой отдел» Для отображения параметров связи выберите в меню Format – и поставьте галочку на вкладке Logical – verb Phrase. Создадим связь между таблицами «Отдел» и «Работники» (рисунок 6). В отделе есть хотя бы один сотрудник, поэтому укажем размерность «one or more» (идентифицирующая связь, один ко многим) (рисунок 7). Рисунок 6 – Связь между таблицами «Работники» и «Отдел» Рисунок 7 – Настройка связи Учитывая правило «В разных отделах может быть одинаковая должность», необходимо создать связь «многие ко многим» между Отделом и Должностями. Но данная связь не поддерживается СУБД поэтому, создаем таблицу-связку между отделами и должностями (один ко многим). Поскольку существует еще одно правило – «для одной должности в разных отделах может быть разный оклад», то добавим в таблицу-связку поле «Оклад» (рисунок 8). Рисунок 8– Реализация связи «многие ко многим» Логическая модель базы данных построена. Задание для самостоятельной работы. Задача 1. Каждый аэропорт обслуживает рейсы разных авиакомпаний и имеет международный код и название. Авиакомпания характеризуется названием. У каждой авиакомпании есть несколько рейсов, проходящих через этот аэропорт. Каждому рейсу соответствует один самолёт, каждому самолёту — несколько рейсов. Самолёт характеризуется номером, маркой, моделью, вместимостью. Каждому рейсу соответствует несколько экипажей, выполняющих их в разное время согласно расписанию. Рейсы могут быть терминальные — завершающиеся или начинающиеся в аэропорту и транзитные, которые используют аэропорт только для временной посадки для заправки и отдыха. Рейс характеризуется номером, типом (терминальные/транзитные), аэропортом отправления, аэропортом назначения, временем отправления, временем прибытия, временем в пути, дальностью, периодичностью (по нечётным дням, по чётными т.д.). Экипаж состоит из нескольких сотрудников авиакомпании. Каждый член экипажа имеет ФИО, должность (командир, пилот, стюардесса) и лётный стаж, исчисляющийся в количестве вылетов. Задача 2. За поликлиникой закреплены несколько участков (по адресам больных). На каждом участке прием ведет один врач. Кроме участковых терапевтов есть врачи-специалисты (ЛОР, окулист, хирург…). БД должна содержать сведения о врачах (специальность, ФИО, дату рождения адрес, телефон), о пациентах, их адресах, месте работы, возрасте, о заболеваниях; кто, в каких числах и с каким диагнозом находился на больничном, о типах заболеваний (простудные, травмы…), о расписании приема для каждого врача (дни недели, часы). |