Створення структури розподіленої бази даних
ХАІ.503.535.14В.050102, 1105079 ПЗ
Виконав студент гр. 535 Б Сабельніков І.В.Фамилия И.О.
10.02.2014
(підпис, дата)
Перевірив к.т.н. доцент кафедри 503
(науковий ступінь, вчене звання, посада)
Шостак А.В.
(підпис, дата) (П.І.Б.)
Харків 2014
Постановка задачи
Постановка задачи: на основании таблиц физической модели данных и бизнес-правил предметной области создать:
1. Скрипт создания таблиц БД.
2. Скрипт модификации таблиц БД.
3. Диаграмму БД.
4. Скрипт удаления таблиц БД.
5. Скрипт занесения информации в таблицы БД.
6. Скрипт изменения информации в таблицах БД.
7. Скрипт удаления информации из таблиц БД.
Для создания указанных скриптов использовать следующие команды языка определения данных DDL:
Создать объект | Удалить объект | Модифицировать объект |
CREATE TABLE | DROP TABLE | ALTER TABLE |
А также команды языка манипулирования данными DML.
Изменяют данные таблиц | INSERT | DELETE, TRUNCATE | UPDATE |
Введение ограничений на столбцы и таблицы осуществлять с использованием следующих предложений - NOT NULL, UNIQUE, PRIMARY KEY, CHECK, DEFAULT, CONSTRAINT, FOREING KEY.
Письменный отчет по лабораторной работе должен содержать:
1. Титульный лист, содержащий – название лабораторной работы, фамилию, имя, отчество, номер группы исполнителя, дату сдачи.
2. Скрипт создания таблиц БД.
3. Скрипт изменения таблиц БД.
4. Диаграмму БД.
5. Скрипт удаления таблиц БД.
6. Скрипт занесения информации в таблицы БД.
7. Скрипт обновления информации в таблицы БД.
8. Скрипт удаления информации из таблиц БД.
9. Примеры таблиц с данными, таблиц после изменения данных и т.п.
10. Выводы по лабораторной работе (в выводах отразить особенности построения модели, скриптов, и пути дальнейшей модернизации БД).
Создание таблиц базы данных
Рис 1. Физическая модель данных
Листинг 1. Скрипт создания таблицы Account
USE [Tester]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Account](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Nick_Name] [nvarchar](10) NOT NULL,
[Full_Name] [nvarchar](25) NOT NULL,
[Account_Type] [tinyint] NOT NULL,
[Notes] [nvarchar](100) NULL,
CONSTRAINT [PK_Account] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UN_Account_Nick] UNIQUE NONCLUSTERED
(
[Nick_Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Листинг 2. Скрипт создания таблицы Question
USE [Tester]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Question](
[Id] [tinyint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](60) NOT NULL,
[Answers] [nvarchar](1000) NOT NULL,
[Right_Answers] [nvarchar](20) NOT NULL,
[Id_Test] [int] NOT NULL,
CONSTRAINT [PK_Question] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Листинг 3. Скрипт создания таблицы Session
USE [Tester]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Session](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Id_Account] [int] NOT NULL,
[Id_Test] [int] NOT NULL,
[Passed_Questions] [nvarchar](1000) NULL,
[Answers] [nvarchar](1000) NULL,
[Start_Time] [datetime] NOT NULL,
CONSTRAINT [PK_Session] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UN_Session_Account] UNIQUE NONCLUSTERED
(
[Id_Account] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Листинг 4. Скрипт создания таблицы TestCase
USE [Tester]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[TestCase](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](20) NOT NULL,
[Description] [nvarchar](50) NULL,
[Id_Creator] [int] NOT NULL,
[Creation_Date] [datetime] NULL,
[Time_To_Answer] [time](0) NOT NULL,
[Questions_Amount] [tinyint] NOT NULL,
CONSTRAINT [PK_TestCase] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UN_TestCase_Name] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Листинг 5. Скрипт создания таблицы Type
USE [Tester]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Type](
[Id] [tinyint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](20) NOT NULL,
[Description] [nvarchar](100) NULL,
[Rights] [tinyint] NOT NULL,
CONSTRAINT [PK_Type] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UN_Type_Name] UNIQUE NONCLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]