
- •Содержание
- •1.1. Основные понятия
- •1.2. Компоненты БнД
- •1.3. Классификация БнД и бд
- •1.4. Этапы проектирования бд
- •1.5. Взаимосвязь этапов проектирования бд
- •Вопросы для самоконтроля
- •Раздел 2. Проектирование баз данных. Тема 2. Инфологическое моделирование (начало)
- •2.1. Необходимость инфологического моделирования
- •2.1.1. Виды ограничений целостности
- •2.1.2. Причины, приводящие к нарушению ограничений целостности
- •2.2. Описание объектов и их свойств
- •Тема 3. Инфологическое моделирование (окончание)
- •3.1. Описание связей между объектами.
- •3. 2. Описание сложных объектов
- •Вопросы для самоконтроля
- •Тема 4. Даталогическое проектирование
- •4.1. Общие сведения
- •4.2. Подход к даталогическому проектированию
- •4.3. Определение состава бд
- •4.4. Разновидности даталогических моделей
- •Вопросы для самоконтроля
- •Тема 5. Реляционная даталогическая модель базы данных
- •5.1. Основные понятия
- •5.2. Цели проектирования рбд
- •5.2.1. Возможность хранения всех необходимых данных в бд
- •5.2.2. Исключение избыточности данных
- •5.2.3. Сведение числа хранимых в бд отношений к минимуму
- •5.2.4. Нормализация отношений
- •Вопросы для самоконтроля
- •Тема 6. Метод проектирования реляционной базы данных на основе илм
- •Вопросы для самоконтроля
- •Тема 7. Пример проектирования реляционной базы данных на основе илм
- •7.6. Определение состава бд
- •7.7. Определение отношений, включаемых в бд
- •7.8. Описание логической структуры бд на языке субд (схема бд)
- •7.9. Сравнение спроектированной рбд с однотабличной бд
- •Вопросы для самоконтроля
- •Раздел 3. Описание информационных потребностей пользователей базы данных. Тема 8. Информационные потребности пользователей базы данных.
- •8.1. Типы и языки запросов
- •8.2. Реляционная алгебра (алгебра отношений)
- •8.2.1. Проекция
- •8.2.2. Выборка
- •8.2.3. Соединение
- •8.2.4. Объединение
- •8.2.5. Пересечение
- •8.2.6. Вычитание
- •8.2.7. Умножение
- •8.2.8. Деление
- •8.3. Примеры запросов на реляционном языке
- •Вопросы для самоконтроля
- •Раздел 4. Использование языкаSql для работы с базами данных. Тема9. Структурированный язык запросов sql
- •9.1. Стандарт и разновидности языка sql
- •9.2. Краткое введение в sql
- •Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных
- •10.1. Оператор select
- •Тема 11. Отбор строк из таблиц. Условия поиска строк
- •Вопросы для самоконтроля
- •Тема 12. Сортировка таблиц
- •Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
- •Вопросы для самоконтроля
- •Тема 14. Запросы с группировкой
- •Тема 15. Вложенные запросы
- •Вопросы для самоконтроля
- •Тема 16. Изменение данных в базе данных
- •16.1. Корректировка таблиц бд
- •16.2. Создание объектов бд
- •16.3. Создание представлений
- •Вопросы для самоконтроля
- •Рекомендуемая литература
Тема 7. Пример проектирования реляционной базы данных на основе илм
Возьмем в качестве предметной области жителей Зеленограда и спроектируем простейшую РБД, в которой будут храниться сведения, представляющие интерес для налоговой инспекции.
описание объектов ПО и связей между ними;
лингвистические отношения;
алгоритмические связи показателей;
описание информационных потребностей пользователей;
ограничения целостности.
7.1. Описание объектов и связей между ними
Объектами, представляющими интерес, будут ЖИТЕЛЬ, КВАРТИРА, ТЕЛЕФОН, ДОХОД. Опишем каждый из них:
Связи между объектами отражаются на диаграмме ER-типа:
7.2. Лингвистические отношения
В лингвистических отношениях должно быть дано толкование используемых в ИЛМ терминов и понятий, например:
Nom - уникальный номер жителя Зеленограда (в качестве которого можно использовать номер страхового полиса);
Adr - адрес жителя; задается указанием улицы, номеров дома (корпуса) и квартиры;
Source - обозначение источника дохода: Пенсия - ...; Пособие1 - ...; Стипендия - ...; Работа1 - работа на телефоне; и т.д.
Money - размер дохода в рублях.
7.3. Алгоритмические связи показателей
Из всех показателей, отраженных в ИЛМ, алгоритмически связанным является Общий доход (SumD). Его вычисление описывается следующим графом взаимосвязи показателей:
7.4. Описание информационных потребностей пользователей
Здесь должны быть определены все запросы, которые будут поступать от пользователей БД, например:
вывести список всех жителей с указанием общего дохода;
вывести список жителей, у которых общий доход не меньше налогооблагаемого минимума;
подсчитать налоги отдельных жителей и общую сумму налогов; и т.д.
Описание информационных потребностей служит основой для разработки прикладной системы, с помощью которой пользователь будет получать ответы на свои запросы.
7.5. Ограничения целостности
Здесь формируются условия, которым должны удовлетворять отдельные показатели и группы показателей, чтобы информация, хранимая в БД, имела смысл. Например, размер дохода не должен быть отрицательным, источник дохода должен выбираться из известного списка и т.п.
Ограничения целостности используются при разработке прикладной системы, чтобы контролировать правильность данных, вводимых в БД, и корректность вычислений.
После создания ИЛМ переходим к разработке ДЛМ; при этом определим состав БД и воспользуемся ранее сформулированными правилами, учитывающими особенности ИЛМ.
7.6. Определение состава бд
Будем хранить в БД все показатели, в том числе и SumD.
7.7. Определение отношений, включаемых в бд
Для определения отношений, из которых будет состоять БД, применим соответствующие правила к каждой паре связанных объектов(сущностей), изображенных на диаграмме ER-типа, а затем проанализируем полученные отношения, чтобы сократить их общее количество.
Согласно правилу 6,а) связанные объекты ЖИТЕЛЬ-КВАРТИРА представляются двумя отношениями:
PERSON’(Nom, ..., Adr)
FLAT’(Adr, ...)
Согласно правилу 7 связанные объекты ЖИТЕЛЬ-ДОХОД представляются тремя отношениями:
PERSON’’(Nom, ...)
PROFIT’’(Id, …)
HAVE_D’’(Nom, Id)
Согласно правилу 5,в) связанные объекты КВАРИТИРА-ТЕЛЕФОН представляются двумя отношениями:
FLAT’’’( Adr, ...)
TPHONE’’’(Ntel, ..., Adr)
Анализ этих семи отношений позволяет установить, что для отображения ИЛМ ПО в ДЛМ достаточно пяти отношений:
1) PERSON(Nom, FIO, Rdate, Pol, SumD, Adr)
2) FLAT(Adr, Skv, Nrooms, KCategory)
3) HAVE_D(Nom, Id)
4) TPHONE(Ntel, TCategory, Adr)
5) PROFIT(Id, Source, Money)