Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ ПРИМЕР.doc
Скачиваний:
6
Добавлен:
20.08.2019
Размер:
875.01 Кб
Скачать

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,

)