- •2008.654600.Бд.Кр.Пз асои-331.Максютова
- •Направление 654600 (230100) – Информатика и вт
- •2008.654600.Бд.Кр.Пз асои-331.Максютова
- •Оценка ________________ Исполнитель
- •Содержание
- •Раздел 7 посвящен разработке sql-моделей базы данных. Здесь создается sql-код для таблиц, триггеров и виртуальных представлений базы данных.
- •1 Описание проблемной области
- •1.2 Описание автоматизируемых функций (бизнес-процессов)
- •1.2.1 Перечень автоматизируемых функций
- •1.2.2 Функция 1 «Поступление»
- •1.2.3 Функция 2 «Реставрация»
- •1.2.4 Функция 3 «Экспозиция»
- •1.3 Первичное описание информационного обеспечения
- •1.4 Вывод
- •2 Проектирование внешних иерархических моделей
- •2.1 Составление внешних иерархических моделей
- •2.1.1 Функция 1 «Поступление»
- •2.1.2 Функция 2 «Реставрация»
- •2.1.3 Функция 3 «Экспозиция»
- •2.2 Спецификации локальных ограничений и правил
- •2.3 Вывод
- •3.1 Нормализация локальных er-моделей
- •3.1.1 Функция 1 «Поступление»
- •3.1.2 Функция 2 «Реставрация»
- •3.1.3 Функция 3 «Экспозиция»
- •3.2 Спецификации локальных ограничений и правил
- •3.3 Вывод
- •4 Проектирование глобальной er-модели
- •4.1 Анализ дублирования в локальных моделях
- •4.1.1 Выявление эквивалентных сущностей
- •4.1.2 Выявление подсущностей и категорий сущностей
- •4.1.3 Выявление дублирования атрибутов и связей
- •4.2 Синтез глобальной er-модели
- •4.3 Спецификации ограничений и правил
- •4.3 Вывод
- •5 Проектирование внутренней реляционной модели
- •5.1 Устранение подсущностей, категорий и явных связей
- •5.1.1 Устранение подсущностей и категорий
- •5.1.2 Устранение явных связей типа «один ко многим»
- •5.2 Спецификации ограничений и правил
- •5.4 Вывод
- •6 Проектирование моделей отображения
- •6.1 Разработка иерархий представлений
- •6.1.1 Функция 1 «Поступление»
- •6.1.2 Функция 2 «Реставрация»
- •6.1.3 Функция 3 «Экспозиция»
- •6.2 Разработка внутренних моделей представлений
- •6.2.1 Функция 1 «Поступление»
- •6.2.2 Функция 2 «Реставрация»
- •6.2.3 Функция 3 «Экспозиция»
- •6.3 Вывод
- •7 Разработка sql-кода базы данных
- •7.1.1 Создание столбцов таблиц
- •7.1.2 Создание ограничений уникальности
- •7.1.3 Создание ограничений атрибутов и кортежей
- •7.1.4 Создание ограничений ссылочной целостности
- •7.1.5 Создание триггеров базы данных
- •7.2.1 Представления отображения для функции 1
- •7.2.2 Представления отображения для функции 2
- •7.2.3 Представления отображения для функции 3
- •7.4 Вывод
- •8.1 Выбор ориентации внешних xml-представлений
- •8.2 Разработка xsd-схем внешних xml-документов
- •8.3 Разработка аннотированных схем отображения
- •8.3.1 Схема отображения для функции 1
- •8.3.2 Схема отображения для функции 2
- •8.3.3 Схема отображения для функции 3
- •8.4 Вывод
- •Заключение
- •Список литературы
7 Разработка sql-кода базы данных
Данный раздел посвящен программированию базы данных на основе концептуальной реляционной модели. Разрабатывается программный SQL-код, обеспечивающий создание структуры таблиц базы данных и представлений отображения внутренней модели во внешние модели базы данных.
7.1 SQL-код создания таблиц
В данном подразделе в соответствии с реляционной моделью записываются SQL-операторы CREATE TABLE, обеспечивающие создание таблиц базы данных. Стандартные ограничения целостности, специфицированные на предыдущем этапе в таблицах 5.1–5.3 и 5.6, реализуются с помощью табличных средств, нестандартные ограничения целостности и операционные правила, специфицированные в таблицах 5.4 и 5.5, — с помощью триггеров базы данных. Для удобства контроля создание ограничений отделено от создания столбцов выполняется операторами ALTER TABLE. Триггеры базы данных создаются операторами CREATE TRIGGER. При программировании ориентировались на диалект Transact-SQL для Microsoft SQL Server 2005.
7.1.1 Создание столбцов таблиц
Для создания столбцов применяются SQL-операторы CREATE TABLE. При этом задаются имена, типы и размеры полей, а также стандартные ограничения обязательности и значения по умолчанию.
CREATE TABLE [dbo].[сотрудник] (
[таб номер] CHAR (6) NOT NULL,
[фио] VARCHAR (50) NOT NULL,
)
CREATE TABLE [dbo].[ответственный за поступление сотрудник] (
[таб номер] CHAR (6) NOT NULL,
[код должности] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[реставратор] (
[таб номер] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[ответственный сотрудник за экспозицию] (
[таб номер] CHAR (6) NOT NULL,
[код должности] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[персонал] (
[таб номер] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[поступление] (
[рег номер поступления] CHAR (6) NOT NULL,
[дата] DATETIME NOT NULL,
[таб номер] CHAR (6) NOT NULL,
[код клиента] CHAR (6) NOT NULL,
[код объекта] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[владелец пост объекта] (
[код клиента] CHAR (6) NOT NULL,
[фио клиента] VARCHAR (50) NOT NULL,
)
CREATE TABLE [dbo].[автор] (
[код автора] CHAR (6) NOT NULL,
[фио автора] VARCHAR (50) NOT NULL,
)
CREATE TABLE [dbo].[зал] (
[код зала] CHAR (6) NOT NULL,
[назв зала] VARCHAR (50) NOT NULL,
[номер зала] CHAR (3) NOT NULL,
)
CREATE TABLE [dbo].[вид] (
[код вида] CHAR (6) NOT NULL,
[назв вида] VARCHAR (50) NOT NULL,
[селектор] CHAR (1) NOT NULL,
)
CREATE TABLE [dbo].[хар-ка] (
[код хар-ки] CHAR (6) NOT NULL,
[назв хар-ки] VARCHAR (50) NOT NULL,
[селектор] CHAR (1) DEFAULT('Х'),
[код вида] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[должность] (
[код должности] CHAR (6) NOT NULL,
[назв должности] VARCHAR (50) NOT NULL,
[селектор] CHAR (1) DEFAULT('Д'),
[код вида] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[категория рест-ра] (
[код категории] CHAR (6) NOT NULL,
[назв категории] VARCHAR (50) NOT NULL,
[селектор] CHAR (1) DEFAULT('К'),
[код вида] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[объект поступления] (
[код объекта] CHAR (6) NOT NULL,
[назв объекта] VARCHAR (50) NOT NULL,
[селектор] CHAR (1) DEFAULT('О'),
[код вида] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[хар-ка объекта] (
[код объекта] CHAR (6) NOT NULL,
[значение] VARCHAR (50),
[код хар-ки] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[реставрация] (
[рег номер рест] CHAR (6) NOT NULL,
[дата начала] DATETIME NOT NULL,
[дата окончания] DATETIME NOT NULL,
[продолжительность] VARCHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[реставратор реставрации] (
[таб номер] CHAR (6) NOT NULL,
[нпп рест] INT NOT NULL,
[рег номер рест] CHAR (6) NOT NULL,
[код категории] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[экспозиция] (
[рег номер экспозиции] CHAR (6) NOT NULL,
[дата начала] DATETIME NOT NULL,
[дата окончания] DATETIME NOT NULL,
[назв экспозиции] VARCHAR (50) NOT NULL,
[таб номер] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[персонал экспозиции] (
[рег номер экспозиции] CHAR (6) NOT NULL,
[таб номер] CHAR (6) NOT NULL,
[роль] VARCHAR (50),
)
CREATE TABLE [dbo].[экспонат экспозиции] (
[рег номер экспозиции] CHAR (6) NOT NULL,
[код объекта] CHAR (6) NOT NULL,
[код зала] CHAR (6) NOT NULL,
[нпп объекта] INT NOT NULL,
)
CREATE TABLE [dbo].[объект реставрации] (
[нпп объекта] INT NOT NULL,
[рег номер рест] CHAR (6) NOT NULL,
[код объекта] CHAR (6) NOT NULL,
[таб номер] CHAR (6) NOT NULL,
[нпп рест] INT NOT NULL,
)
CREATE TABLE [dbo].[вып работа на объекте] (
[нпп работы] INT NOT NULL,
[содержание] VARCHAR (100),
[нпп объекта] INT NOT NULL,
[рег номер рест] CHAR (6) NOT NULL,
[селектор] CHAR (1) DEFAULT('Р'),
[код вида] CHAR (6) NOT NULL,
)
CREATE TABLE [dbo].[автор объекта] (
[код автора] CHAR (6) NOT NULL,
[код объекта] CHAR (6) NOT NULL,
)