
- •Предисловие
- •Анализ предметной области
- •Анализ требований. Диаграмма вариантов использования
- •Диаграмма вариантов использования
- •Концептуальное моделирование предметной области
- •Проектирование базы данных
- •Логическая модель базы данных
- •Физическая модель базы данных
- •Создание базы данных
- •Подключение к серверуMssqlServer2008r2
- •Создание новой базы данных на сервере
- •Создание новой таблицы на сервере
- •Создание связей
- •Создание диаграммы базы данных
- •Ограничения целостности базы данных
- •Сценарий создания базы данных
- •Заполнение базы данных
- •Загрузка информации в базу данных средствамиManagementStudio
- •Ведение базы данных средствамиSql
- •Sql-запросы на вставку, модификацию и удаление данных
- •Добавление новых записей в таблицу (insert)
- •Модификация существующих записей (update)
- •Удаление записей из таблицы (delete)
- •Запросы на выборку данных
- •Общий синтаксис запроса select
- •Примеры реализации запросов
- •Организация бизнес-логики
- •Хранимые процедуры
- •Триггеры
- •Прикладной программный интерфейс субд
- •Знакомство с основными объектами ado.Net
- •Разработка клиентского приложения
- •Пример разработки: иас «Оптовый заводской склад»
- •Реализация основных функций Системы
- •Ведение основных справочников и оформление поставок деталей
- •Организация поиска поставок деталей
- •Администрирование сервера бд
- •Инсталляция сервера
- •Резервное копирование и восстановление бд
- •Санкционирование доступа
- •Приложение а. Варианты заданий
- •1. Биржа труда
- •2. Проектная организация
- •3. Библиотечный фонд города
- •4. Турагентство
- •5. Регистратура городской поликлиники
- •6. Гибдд
- •7. Оператор сотовой связи
- •8. Аптека
- •9. Аудиторный фонд университета
- •10. Агентство недвижимости
- •11. Студенческий городок
- •12. Санаторий
- •13. Продуктовый магазин
- •14. Научные публикации вуза
- •15. Служба такси
- •16. Страховое агентство
- •17. Сайт купонов на скидки
- •18. Учебный план
- •19. Преподаватели университета
- •20. Расчет стипендии
- •21. Расписание занятий
- •Приложение б. Состав отчета
- •Список литературы
- •153003, Г. Иваново, ул. Рабфаковская, 34.
Проектирование базы данных
Логическая модель базы данных
Концептуальная модель базы данных (Логическая модель базы данных) описывает объекты предметной области, их атрибуты и взаимосвязи между ними в том объеме, в котором они подлежат непосредственному хранению в базе данных системы (рис. 2.1).
Рис.
2.1. Концептуальная модель базы данных
Методология IDEF1х– один из подходов к семантическому моделированию данных, основанный на концепции "сущность – связь" (Entity – Relationship). Информационная модель, построенная с помощью IDEF1х‑методологии, отображает логическую структуру информации об объектах системы, т.е. является логической схемой базы данных.
Независимая сущностьпредставляет независимые данные, которые всегда присутствуют в системе. Отношения с другими сущностями у нее могут отсутствовать. Изображается в виде прямоугольника с прямыми краями.
Зависимая сущностьпредставляет данные, которые зависят от других сущностей в системе. Например, строка документа не может существовать без самого документа. Зависимая сущность всегда имеет отношения с другими сущностями. Изображается в виде прямоугольника с закругленными краями.
Таблица 2.1. Концептуальная модель базы данных | |
Сущность |
Нотация |
Сущность (Entity) |
Наименование Уникальный
идентификатор Атрибуты |
Зависимая сущность |
Наименование Ссылка
на идентификатор (FK) Атрибуты
|
Связь (Relationship) |
|
Идентифицирующая связь |
Независ.
|
Связь «Многие ко многим» |
|
Наследование (обобщение)
П
Н |
Родит.
-й
|
Задание:постройте логическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого удобно воспользоваться уже имеющейся диаграммой классов.
Физическая модель базы данных
Физическая модельбазы данных содержит все детали, необходимые конкретной СУБД для создания базы (наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т.п.).
Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в нашем случае - MSSQLServer2008R2):
Имена
Имена сущностей и полей (таблиц и столбцов) должны быть записаны латинскими буквами, без пробелов, начиная с буквы.
Типы данных
Для каждого поля необходимо определить тип данных, которые в нем содержатся. В таблице
Связи
Реляционная модель данных требует разрешения связей «многие ко многим» и иерархии наследования и допускает их только на концептуальной модели.
На физическом уровне эти связи должны быть преобразованы.
Приведенные три варианта физической модели различаются способами реализации наследования:
миграция первичного ключа и неключевых атрибутов в иерархии от потомков к предку (рис. 2.2);
миграция первичного ключа и неключевых атрибутов в иерархии от предка к потомкам (рис. 2.3).
замена иерархии наследования идентифицирующими связями (рис. 2.4);
Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы развязки и двух новых связей «один ко многим» от старых таблиц к новой.
Таблица 2.2. Основные типы данных в СУБД MSSQLServer | |
Тип данных |
Описание |
bigint |
Целочисленные данные от -263до 263-1 |
int |
Целые числа от -214748364 до 2147483647 |
smallint |
Целые числа от -32768 до 32767 |
tinyint |
Целые числа от 0 до 255 |
decimal или numeric |
Являются синонимами. Заданная точность и масштаб от -1038-1 до 1038-1 |
money |
Количество денежных единиц от -263 до 263 с точностью до четырех десятичных позиций |
smallmoney |
Денежные единицы от -214748,3648 до 214748,3647 |
float |
Приближенные числовые данные от -1,79Е+308 до 1,79Е+308 |
datet me |
Данные о да е и (или) времени, которые относятся к периоду с 1 января 1753 года по 31 декабря 9999 года,определяемые с точностью до трех сотых секунды |
smalldatetime |
Данные о дате и (или) времени, которые относятся к периоду с 1 января 1900 года по 6 июня 2079 года, опр деляемые с точностью до одной минуты |
cursor |
Указатель на курсор |
Timestamp / rowversion |
Специальное значение, которое является уникальным в пределах данной базы данных. Устанавливается автоматически |
uniqueidentifier |
Специальный глобально уникальный идентификатор (GUID). Уникальность любого идентификатораGUIDв пространстве и времени является гарантирован ой. |
char(n) |
Символьные данные фиксированной длины. Значения данных с длиной короче заданной заполняются пробелами до указанной длины. Максимальное за анное значение длины может составлять 8000 символов. |
varchar(n) |
Символьные данные переменной длины. Значения данных с длиной короче заданной не дополняются пробелами. Максимальное заданное значение длины может составлять 8000 символов, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы с символьными данными объемом до 231байтов. |
text |
Устаревший тип данных, вместо него следует использовать тип varchar(max). |
nchar (n) |
Символьные данные в кодировке Unicode фиксированной длины. Максимальное заданное значение длины может составлять 4000 символов |
nvarchar (n) |
Символьные данные в кодировке Unicodeпеременной длины.Максимальное заданное значение длины может составлять 4000 символов, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы с символьными данными объемов до 231 байт. |
ntext |
Устаревший тип данных, вместо него следует использовать тип данных nvarchar(max). |
binary |
Двоичные данные фиксированной длины с максималь ой длиной 8 00 байт. |
varbinary |
Двоичные данные переменной длины с максимальной указанной длиной 8000 байт, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы типаLOB, имеющие объем до 231байт
|
image |
Устаревший тип данных, вместо него следует использовать тип данных varbinary(max). |
table |
Данные типа таблицы, предназначены для использования в работе с результирующими наборами. Как правило, они передаются из пользовательских функций. Применение данных типа table в определениях таблиц не допускается. |
sql_variant |
Данные различных типов. |
xml |
Определяет символьное поле как содержащее данные XML. |
Рис. 2.2. Физическая модель базы данных: реализация наследования через миграцию потомков в предка
Рис. 2.3. Физическая модель базы данных: реализация наследования через миграцию предка в потомков
Рис. 2.4. Физическая модель базы данных: реализация наследования через замену иерархии идентифицирующими связями
Задание:постройте физическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого удобно воспользоваться уже имеющейся логической моделью базы данных.