- •Содержание
- •Введение
- •1Лабораторная работа № 1 Создание концептуальной модели предметной области
- •1.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •2Лабораторная работа № 2 Создание и заполнение реляционной базы данных с помощью языка sql
- •2.1Цель лабораторной работы
- •2.2Задачи лабораторной работы
- •2.3Задание
- •2.4Методика выполнения задания
- •Этап 1. Создание структуры реляционной базы данных и ее модификация
- •Этап 2. Выполнение операций вставки, обновления и удаления данных
- •Этап 3. Выполнение операций выборки данных из одной таблицы
- •2.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •3.4Методика выполнения задания
- •Этап 1. Сортировка и встроенные функции
- •Этап 2. Вложенные запросы и операция соединения
- •Этап 3. Создание и обновление представлений
- •3.5Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •4Лабораторная работа № 4 Разработка триггеров и хранимых процедур
- •4.5Курсоры
- •4.6Хранимые процедуры
- •4.7Триггеры
- •4.8Методика выполнения задания
- •4.9Требования к оформлению и содержанию отчета
- •4.10 Критерии результативности выполнения лабораторной работы
- •Контрольные вопросы
- •Список литературы
- •Приложение 1 Варианты заданий для лабораторной работы № 1
- •1. Страховая компания
- •2. Гостиница
- •3. Ломбард
- •4. Реализация готовой продукции
- •5. Ведение заказов
- •6. Бюро по трудоустройству
- •7. Нотариальная контора
- •8. Химчистка
- •9. Курсы повышения квалификации
- •10. Сдача в аренду торговых площадей
- •11. Распределение учебной нагрузки
- •12. Распределение дополнительных обязанностей
- •13. Техническое обслуживание станков
- •14. Туристическая фирма
- •15. Грузовые перевозки
- •Приложение 2 Построение концептуальной модели предметной области в пакете AllFusion eRwin Data Modeler Введение
- •5Описание интерфейса
- •6Создание логической модели данных
- •6.1Сущности и атрибуты
- •6.2Связи
- •6.3Ключи
- •1. Табельный номер,
- •7Создание физической модели данных
- •7.1Выбор сервера
- •7.2Таблицы и колонки
- •Приложение 3. Примеры кода на языке sql
- •Операторы ddl (Data Definition Language)
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Выборка данных – select
- •Внешние соединения
- •Представления
7Создание физической модели данных
7.1Выбор сервера
Физический уровень представления модели зависит от выбранного сервера. Для выбора СУБД служит редактор Target Server (меню Database/Choose Database... доступно только на физическом уровне) (рис. 27).
Рис. 27. Диалог Target Server
ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных БД. Диалог Target Server позволяет задать тип данных и опцию NULL для новых колонок, а также правила ссылочной целостности, принимаемые по умолчанию. Тип данных можно выбрать в раскрывающемся списке Default Datatype, который автоматически заполняется типами данных, поддерживаемых выбранным сервером.
Группа кнопок Default Non-Key Null Option позволяет разрешить или запретить значения NULL для неключевых колонок.
Окно выбора Allow special chars in names позволяет разрешить или запретить использование специальных символов и пробелов в именах таблиц. Эта опция действует только для тех СУБД, которые поддерживают использование специальных символов.
При смене СУБД ERwin предлагает автоматически преобразовать тип данных, связанный с каждым атрибутом, на ближайший, доступный для новой СУБД. Для автоматического преобразования следует в ответ на запрос нажать Yes.
7.2Таблицы и колонки
Для внесения
новой таблицы в модель на физическом
уровне служит кнопка
на
палитре инструментов. Связи между
таблицами создаются так же, как на
логическом уровне. Щелкнув правой
клавишей мыши по таблице и выбрав во
всплывающем меню пункты Table Properties
или Columns, можно вызвать
редакторы для задания свойств таблиц
и колонок.
ERwin автоматически создает имена таблиц и колонок на основе имен соответствующих сущностей и атрибутов, учитывая максимальную длину имени и другие синтаксические ограничения, накладываемые СУБД. При генерации имени таблицы или колонки по умолчанию все пробелы автоматически преобразуются в символы подчеркивания, а длина имени обрезается до максимальной длины, допустимой для выбранной СУБД. Все изменения, сделанные в окне Tables или Columns, не отражаются на именах сущностей и атрибутов, поскольку информация на логическом и физическом уровнях в ERwin хранится отдельно.
Редактор Tables позволяет задать свойства любой таблицы модели, отличные от значения по умолчанию, в том числе имя таблицы, синонимы, правила валидации, процедуры и т. д. (рис. 28).
Рис. 28. Диалог Table Editor
Приложение 3. Примеры кода на языке sql
На рис. 1 изображена модель данных для базы данных управления проектами на предприятии.
Здесь с каждым проектом должно быть связано, по крайней мере, одно назначение, а сотрудник может иметь любое количество назначений, в том числе ноль.
Внешний ключ связи СОТРУДНИК–НАЗНАЧЕНИЕ носит имя НомерСотрудника, а не ИдСотрудника, хотя указывает он по-прежнему на ИдСотрудника.
Имеется два ограничения ссылочной целостности.
Значение атрибута НАЗНАЧЕНИЕ.ИдПроекта должно существовать среди значений атрибута ПРОЕКТ.ИдПроекта.
Значение атрибута НАЗНАЧЕНИЕ.ИдСотрудника должно существовать среди значений атрибута ПРОЕКТ.ИдСотрудника.
Процедуры обеспечения ссылочной целостности обозначены на рис. 1. В связи ПРОЕКТ–НАЗНАЧЕНИЕ разрешены каскадное обновление и удаление, а в связи СОТРУДНИК–НАЗНАЧЕНИЕ – только каскадное обновление.
Удаление строк из таблицы СОТРУДНИК ограничено: запись о сотруднике можно удалить только в том случае, если у него нет ни одного назначения. В противном случае необходимо будет удалить имеющиеся назначения или передать их другому сотруднику, и только потом можно будет удалить строку данного сотрудника.
Поскольку каждый проект должен иметь минимум одно назначение, вставка строк в таблицу ПРОЕКТ ограничена: всякий раз, когда в таблицу ПРОЕКТ добавляется строка, необходимо создавать для нее новую строку в таблице НАЗНАЧЕНИЕ. Для этого будет использоваться триггер.
Рассмотрим теперь действия с таблицей НАЗНАЧЕНИЕ. Обновление столбца ИдПроекта ограничено: назначение, сделанное в рамках определенного проекта, нельзя переместить в другой проект. Кроме того, последнее назначение проекта не может быть удалено. В связи СОТРУДНИК–НАЗНАЧЕНИЕ таких ограничений нет.
а |
б |
Рис. 1. База данных управления проектами на предприятии:
а — модель данных; б — реляционная схема
