- •Предисловие
- •1. Анализ предметной области
- •1.1Анализ требований. Диаграмма вариантов использования
- •1.1.1Диаграмма вариантов использования
- •1.2Концептуальное моделирование предметной области
- •2. Проектирование базы данных
- •2.1Логическая модель базы данных
- •2.2Физическая модель базы данных
- •3.1Подключение к серверу ms sql Server 2008 r2
- •3.2Создание новой базы данных на сервере
- •3.3Создание новой таблицы на сервере
- •3. Создание базы данных
- •3.4Создание связей
- •3.5Создание диаграммы базы данных
- •3.6Ограничения целостности базы данных
- •3.7Сценарий создания базы данных
- •4. Заполнение базы данных
- •4.1Загрузка информации в базу данных средствами Management Studio
- •4.2Ведение базы данных средствами sql
- •4.3Sql-запросы на вставку, модификацию и удаление данных
- •4.3.1Добавление новых записей в таблицу (insert)
- •4.3.2Модификация существующих записей (update)
- •4.3.3Удаление записей из таблицы (delete)
- •5. Запросы на выборку данных
- •5.1Общий синтаксис запроса select
- •5.2Примеры реализации запросов
- •6. Организация бизнес-логики
- •6.1Хранимые процедуры
- •6.2Триггеры
- •7. Прикладной программный интерфейс субд
- •7.1Знакомство с основными объектами ado.Net
- •7.2Разработка клиентского приложения
- •7.3Пример разработки: иас «Оптовый заводской склад»
- •7.4Реализация основных функций Системы
- •7.4.1Ведение основных справочников и оформление поставок деталей
- •7.4.2Организация поиска поставок деталей
- •8. Администрирование сервера бд
- •8.1Инсталляция сервера
- •8.2Резервное копирование и восстановление бд
- •8.3Санкционирование доступа
- •Приложение а. Варианты заданий
- •1. Биржа труда
- •2. Проектная организация
- •3. Библиотечный фонд города
- •4. Турагентство
- •5. Регистратура городской поликлиники
- •6. Гибдд
- •7. Оператор сотовой связи
- •8. Аптека
- •9. Аудиторный фонд университета
- •10. Агентство недвижимости
- •11. Студенческий городок
- •12. Санаторий
- •13. Продуктовый магазин
- •14. Научные публикации вуза
- •15. Служба такси
- •16. Страховое агентство
- •17. Сайт купонов на скидки
- •18. Учебный план
- •19. Преподаватели университета
- •20. Расчет стипендии
- •21. Расписание занятий
- •Приложение б. Состав отчета
- •Список литературы
- •153003, Г. Иваново, ул. Рабфаковская, 34.
2. Проектирование базы данных
2.1Логическая модель базы данных
Концептуальная модель базы данных (Логическая модель базы данных) описывает объекты предметной области, их атрибуты и взаимосвязи между ними в том объеме, в котором они подлежат непосредственному хранению в базе данных системы (рис. 2.1).
Рис.
2.1. Концептуальная модель базы данных
Методология IDEF1х – один из подходов к семантическому моделированию данных, основанный на концепции "сущность – связь" (Entity – Relationship). Информационная модель, построенная с помощью IDEF1х‑методологии, отображает логическую структуру информации об объектах системы, т.е. является логической схемой базы данных.
Независимая сущность представляет независимые данные, которые всегда присутствуют в системе. Отношения с другими сущностями у нее могут отсутствовать. Изображается в виде прямоугольника с прямыми краями.
Зависимая сущность представляет данные, которые зависят от других сущностей в системе. Например, строка документа не может существовать без самого документа. Зависимая сущность всегда имеет отношения с другими сущностями. Изображается в виде прямоугольника с закругленными краями.
Таблица 2.1. Концептуальная модель базы данных |
|
Сущность |
Нотация |
Сущность (Entity) |
Наименование Уникальный
идентификатор Атрибуты
|
Зависимая сущность |
Наименование Ссылка
на идентификатор (FK) Атрибуты
|
Связь (Relationship) |
|
Идентифицирующая связь |
Независ.
|
Связь «Многие ко многим» |
|
Наследование (обобщение)
П
Н еполное |
Родит.
-й
|
Задание: постройте логическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого удобно воспользоваться уже имеющейся диаграммой классов.
2.2Физическая модель базы данных
Физическая модель базы данных содержит все детали, необходимые конкретной СУБД для создания базы (наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т.п.).
Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в нашем случае - MS SQL Server 2008 R2):
Имена
Имена сущностей и полей (таблиц и столбцов) должны быть записаны латинскими буквами, без пробелов, начиная с буквы.
Типы данных
Для каждого поля необходимо определить тип данных, которые в нем содержатся. В таблице
Связи
Реляционная модель данных требует разрешения связей «многие ко многим» и иерархии наследования и допускает их только на концептуальной модели.
На физическом уровне эти связи должны быть преобразованы.
Приведенные три варианта физической модели различаются способами реализации наследования:
миграция первичного ключа и неключевых атрибутов в иерархии от потомков к предку (рис. 2.2);
миграция первичного ключа и неключевых атрибутов в иерархии от предка к потомкам (рис. 2.3).
замена иерархии наследования идентифицирующими связями (рис. 2.4);
Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы развязки и двух новых связей «один ко многим» от старых таблиц к новой.
Таблица 2.2. Основные типы данных в СУБД MS SQL Server |
|
Тип данных |
Описание |
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. Физическая модель базы данных: реализация наследования через замену иерархии идентифицирующими связями
Задание: постройте физическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого удобно воспользоваться уже имеющейся логической моделью базы данных.

олное