- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах.
- •2 Перечень тем ипр их наименование и объем в часах
- •3 Перечень тем контрольных работ их наименование и объем в часах
- •4. Курсовая работа, ее характеристика
- •Перечень тем курсовых работ
- •5. Литература
- •5.1 Основная
- •5.2 Дополнительная
- •6. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •7. Учебно-методическая карта дисциплины
- •1.1.3. Способы организации знаний в базах знаний
- •1.1.4. Применение баз знаний
- •1.1.5. Виды моделей баз данных
- •2. Теория баз данных
- •2.1. История развития представлений о базах данных
- •2.1.1. Области применения вычислительной техники
- •2.1.2. Базы данных и информационные системы
- •2.1.3. История развития баз данных
- •2.1.4. Этапы развития баз данных
- •2.2. Основные термины и определения теории бд, виды бд и их отличия
- •2.2.1. Классификация бд
- •2.3. Реляционные бд, понятие сущности и связи
- •2.3.1. Общие определения
- •2.3.2. Факты о реляционной модели данных
- •2.3.3. Достоинства реляционной модели данных
- •2.3.4. Недостатки реляционной модели данных
- •2.3.5. Целостность бд
- •2.3.6. Отношения
- •2.3.7. Кортежи и отношения
- •2.3.8. Связи
- •2.3.9. Ключи отношений
- •2.3.10. Ссылочная целостность
- •2.3.11. Консистентность данных
- •2.4. Многоуровневая архитектура баз данных, понятие физического и логического уровней баз данных
- •2.4.1. Определения
- •2.4.2. Многоуровневая структура баз данных
- •Indexed р#
- •2.4.3. Постоянная и переменная длина записи
- •2.4.4. Способы представления данных
- •2.4.5. Простейший вариант – плоский файл
- •2.4.6. Факторизация по значениям поля
- •2.4.7. Индексирование по полям
- •2.4.8. Комбинация простых представлений
- •2.4.9. Использование цепочек указателей
- •2.4.10. Многосписочные структуры
- •2.4.11. Инвертированная организация
- •2.4.12. Иерархическая организация
- •2.4.14. Промежуточный итог
- •2.4.15. Методы индексирования
- •2.4.16. Индексирование по комбинации полей
- •2.4.17. Селективный индекс
- •2.4.18. Индексация по методу сжатия
- •2.4.19. Фронтальное сжатие
- •2.4.20. Сжатие окончания
- •2.4.21. Символьные указатели
- •2.4.23. Индексно-последовательная организация
- •2.4.24. Сбалансированные деревья
- •2.4.25. Ведение файла
- •2.4.26. Хэширование
- •2.5.2. Факторы эффективности хэширования
- •2.5.3. Размер участка памяти
- •2.5.4. Плотность заполнения
- •2.5.5. Алгоритмы хэширования
- •2.5.6. Размещение записей в области переполнения
- •2.5.7. Итог
- •2.6. Механизмы обработки и хранения данных в бд
- •2.6.1. Введение
- •2.6.2. Механизмы обработки и хранения данных в ms-sql 6.0-6.5
- •2.6.3. Механизмы обработки и хранения данных в ms-sql 7.0 и более поздних версиях
- •2.6.4. Метод доступа isam
- •2.6.5. Метод доспута MyIsam
- •2.6.6. Метод доступа vsam
- •2.6.7. Включение записей в *sam-файлы
- •2.6.8. Размещение индексов для *sam-файлов
- •2.6.9. Метод доступа InnoDb
- •InnoDb в MySql 5.1
- •2.7.3. Сетевые структуры
- •3.1.4. Стандарты разработки бд/субд
- •3.1.5. Sql и его стандарты
- •3.1.6. Использование методологии idef1x
- •3.1.7. Пример логической и физической схемы в ErWin
- •3.1.8. Минимальный набор стандартных таблиц
- •3.1.8. Итог
- •3.2. Средства автоматизированного проектирования бд
- •3.2.1. Введение
- •3.2.2. Case-технологии
- •3.2.3. Достоинства case-технологий
- •3.2.4. Промежуточные выводы и определения
- •3.2.5. Методологии структурного моделирования
- •3.2.6. Методология sadt (idef0)
- •3.2.7. Методологии информационного моделирования
- •3.2.8. Нотация Чена
- •3.2.9. Нотация Мартина
- •3.2.10. Нотация ide1x
- •3.2.11. Нотация Баркера
- •3.2.12. Язык информационного моделирования
- •3.2.13. Case-средства
- •3.2.14. Процесс создания модели бд в ErWin
- •3.2.15. Процесс создания модели бд в Sparx ea
- •3.2.16. Итог
- •3.3. Особенности проектирования бд на логическом и физическом уровнях
- •3.3.1. Введение
- •3.3.2. Модель бд
- •3.3.4. Банки данных
- •3.3.5. Модели данных
- •3.3.6. Этапы проектирования бд
- •3.3.7. Проектирование бд: внешний уровень
- •Изучение процессов преобразования входных данных в выходные.
- •3.3.8. Проектирование бд: инфологический уровень
- •3.3.9. Проектирование бд: даталогический уровень
- •3.3.10. Уровни sql
- •3.3.11. Проектирование бд: физический уровень
- •3.4.3. Требования нормализации
- •3.4.4. Примеры аномалий
- •3.4.5. Нормальные формы
- •3.4.6. Зависимости
- •3.4.6. Первая нормальная форма
- •3.4.7. Вторая нормальная форма
- •3.4.8. Третья нормальная форма
- •3.4.9. Нормальная форма Бойса-Кодда
- •3.4.10. Четвёртая нормальная форма
- •3.4.11. Пятая нормальная форма
- •3.4.12. Доменно-ключевая нормальная форма
- •3.4.13. Ещё раз, кратко, все нормальные формы
- •3.4.14. Ещё раз, кратко, в ErWin
- •3.4.15. Обратное проектирование бд
- •3.4.16. Итог
- •3.5. Повышение качества бд на стадии проектирования
- •3.5.1. Памятки разработчикам бд
- •3.5.2. Показатели качества бд
- •Практическая часть
- •Указания по выбору варианта
- •Индивидуальные практические работы Индивидуальная практическая работа № 1 Общие сведения
- •Практическая часть
- •Указания по выбору варианта
- •Индивидуальная практическая работа № 2 Общие сведения
- •Указания по выбору варианта
- •Практическая часть
3.2.12. Язык информационного моделирования
Иногда применяется менее наглядный, но более содержательный язык концептуального моделирования (ЯКМ), в котором сущности и связи представляются предложениями вида: СУЩНОСТЬ (атрибут 1, атрибут 2 , ..., атрибут n) СВЯЗЬ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...] (атрибут 1, атрибут 2, ..., атрибут n), где S - степень связи, а атрибуты, входящие в ключ, должны быть отмечены с помощью подчёркивания.
Рассмотрим пример (фрагмент концептуальной схемы в нотации Чена):
Рисунок 3.2.11.1 – Фрагмент концептуальной схемы в нотации Чена
Рассмотренный пример множества связей между сущностями может быть описан на языке инфологического моделирования следующим образом:
Врач (Номер_врача, Фамилия, Имя, Отчество, Специальность)
Пациент (Регистрационный_номер, Номер койки, Фамилия, Имя, Отчество, Адрес, Дата рождения, Пол)
Лечащий_врач [Врач (1,1), Пациент (1,M)] (Номер_врача, Регистрационный_номер)
Консультант [Врач (1,M),Пациент (1,N)] (Номер_врача, Регистрационный_номер).
3.2.13. Case-средства
Наиболее распространёнными CASE-средствами моделирования данных на текущий момент являются:
All Fusion ERWin Data Modeler
Sparx Enterprise Architect
IBM Rational Data Architect
SDP S-Designer
Oracle DataBase Designer
Vantage Team Builder
Silverrun
3.2.14. Процесс создания модели бд в ErWin
Начинаем создание модели с указания, какие уровни и для какой СУБД создавать. Уровни – выбираем сразу «Логический/физический», а в качестве СУБД или ту, с которой и будем работать, или SQL-Server (7, 2000, 2005) как «наиболее усреднённый вариант» диалекта SQL.
Рисунок 3.2.14.1 – Создание новой модели БД в ErWin
Рисунок 3.2.14.2 – Установка параметров модели БД в ErWin
Разработку начинаем с ЛОГИЧЕСКОЙ модели. Тогда ErWin САМ строит физическую (в которой, конечно, придётся делать правки, но не очень много).
Рисунок 3.2.14.3 – Выбор уровня модели БД в ErWin
Основные, инструменты, которые нам понадобятся, – инструменты создания сущностей (таблиц) (1) и связей: идентифицирующий 1-M (2), M-M (3), неидентифицирующих 1-M (4).
Рисунок 3.2.14.4 – Основные инструменты создания модели БД в ErWin
Создаём сущность (таблицу)…
Рисунок 3.2.14.5 – Создание сущности в ErWin
Именуем её…
Рисунок 3.2.14.6 – Именование сущности в ErWin
Переходим к созданию атрибутов…
Рисунок 3.2.14.7 – Переход к формированию списка атрибутов сущности в ErWin
Создаём новый атрибут…
Рисунок 3.2.14.8 – Создание атрибута сущности в ErWin
Указываем его домен («обобщённый» тип данных) и имя…
Рисунок 3.2.14.9 – Указание типа атрибута сущности в ErWin
На закладке «General» можно указать, входит ли этот атрибут в состав первичного ключа.
Рисунок 3.2.14.10 – Указание свойств атрибута сущности в ErWin
На закладке «Datatype» можно указать конкретный тип данных атрибута.
Рисунок 3.2.14.11 – Указание явного типа атрибута сущности в ErWin
Повторяем операции создания сущностей и атрибутов до тех пор, пока не получим полную логическую модель БД (пока без связей).
Рисунок 3.2.14.12 – Логическая модель БД в ErWin без связей
Теперь проводим связи ОТ РОДИТЕЛЬСКОЙ СУЩНОСТИ К ДОЧЕРНЕЙ!
Рисунок 3.2.14.13 – Установка связей между сущностями в ErWin
Обратите внимание, что связи M-M оставлять в таком виде НЕЛЬЗЯ! Их нужно преобразовывать в две связи 1-M с промежуточной таблицей.
Рисунок 3.2.14.14 – Установка связей М-М между сущностями в ErWin
Для этого в ErWin есть специальный пункт в контекстном меню связи.
Рисунок 3.2.14.15 – Преобразование связей М-М между сущностями в ErWin
В промежуточную таблицу можно добавлять свои дополнительные поля, уточняющие некоторые свойства связи.
Рисунок 3.2.14.16 – Дополнительные поля в связи М-М между сущностями
После завершения работы с логической моделью нужно переключиться на физическую.
Рисунок 3.2.14.17 – Переключение на физический уровень моделирования БД в ErWin
Здесь уже многое готово, но есть недочёты…
Рисунок 3.2.14.18 – Исходный вид физической модели БД в ErWin
Подправляем типы данных – и всё, модель БД готова!
Рисунок 3.2.14.19 – Конечный вид физической модели БД в ErWin
Инструменты экспорта, импорта и синхронизации модели БД с реальной БД на сервере рекомендуется рассмотреть самостоятельно.
Рисунок 3.2.14.20 – Инструменты прямого и обратного проектирования модели БД в ErWin
Если вы хотите экспортировать модель в MySQL (который не поддерживается ErWin’ом), это можно сделать «обходным путём»: создать SQL-скрипт для генерации БД в MS-SQL, немного подправить его и выполнить в MySQL.
Рисунок 3.2.14.21 – Инструменты прямого и обратного проектирования модели БД в ErWin в меню
В общем случае никаких опций менять не надо, достаточно просто нажать «Preview».
Рисунок 3.2.14.22 – Генерация кода для формирования БД
И вот – готовый набор SQL-запросов…
Рисунок 3.2.14.22 – Код для формирования БД