Описание физической модели базы данных
В таблицах реализованы ограничения уникальности полей по полю «Name», указаны ключевые поля и соединения таблиц между собой при помощи связей 1: N и N: M. Также в некоторых таблицах имеются поля в которых описаны значения по умолчанию и реализованы ограничения целостности Cascade. Перейдем от логической модели базы данных к физической модели (рисунок 2). По физической модели сгенерируем схему… Читать ещё >
Описание физической модели базы данных (реферат, курсовая, диплом, контрольная)
Перейдем от логической модели базы данных к физической модели (рисунок 2). По физической модели сгенерируем схему базы данных в СУБД MSSQL Server. Схема БД показана на рисунке 3.
Рисунок 2 — Физическая модель данных.
На основании полученной схемы отношений с учетом особенностей реализации и типа полей была получена структура таблиц базы данных:
Таблица «Собственность учреждения» :
CREATE TABLE [dbo]. [tblAgency](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblAgency]PRIMARY KEY NONCLUSTERED.
(.
[Id]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],.
CONSTRAINT [U_tblAgency_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].
Таблица «Собственность здания» :
CREATE TABLE [dbo]. [tblBuilding](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblBuilding]PRIMARY KEY NONCLUSTERED.
(.
[Id]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],.
CONSTRAINT [U_tblBuilding_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].
Таблица «Предпринимательские структуры» :
CREATE TABLE [dbo]. [tblEnterpriseStructure](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
[Career] [varchar](50) NOT NULL,.
[DirectorFIO] [varchar](50) NOT NULL,.
[Phone] [int]NOT NULL,.
CONSTRAINT [PK_tblEnterpriseStructure]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 [U_tblEnterpriseStructure_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].
Таблица «Рентабельность» :
CREATE TABLE [dbo]. [tblProfitability](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblProfitability]PRIMARY KEY NONCLUSTERED.
(.
[Id]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],.
CONSTRAINT [U_Profitability_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].
Рисунок 3 — Схема описания базы данных в MS SQL Server.
Таблица «Специализация» :
CREATE TABLE [dbo]. [tblSpecialization](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblSpecialization]PRIMARY KEY NONCLUSTERED.
(.
[Id]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],.
CONSTRAINT [U_tblSpecialization_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].
Таблица «Площадь территории» :
CREATE TABLE [dbo]. [tblSquare](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
[Type] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblSquare]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 [U_tblSquare_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].
Таблица «Транспорт» :
CREATE TABLE [dbo]. [tblTransport](.
[Id] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
[Type] [varchar](50) NOT NULL,.
CONSTRAINT [PK_tblTransport]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 [U_tblTransport_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].
Таблица «Учебное заведение» :
CREATE TABLE [dbo]. [tblPtu](.
[RegNumber] [bigint]IDENTITY (1,1) NOT NULL,.
[Name] [varchar](50) NOT NULL,.
[Address] [varchar](150) NULL,.
[Telephone] [int]NOT NULL,.
[Agency_Id] [bigint]NOT NULL,.
[Building_Id] [bigint]NOT NULL,.
[Square] [decimal](8, 2) NOT NULL,.
[Profitability_Id] [bigint]NOT NULL,.
CONSTRAINT [PK_tblPTU]PRIMARY KEY CLUSTERED.
(.
[RegNumber]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],.
CONSTRAINT [U_tblPtu_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].
Связь с табицей «Собственность учреждения» :
ALTER TABLE [dbo]. [tblPtu]WITH CHECK ADD CONSTRAINT [FK_tblPtu_tblAgency]FOREIGN KEY ([Agency_Id]).
REFERENCES [dbo]. [tblAgency]([Id]).
Связь с табицей «Собственность здания» :
ALTER TABLE [dbo]. [tblPtu]WITH CHECK ADD CONSTRAINT [FK_tblPtu_tblBuilding]FOREIGN KEY ([Building_Id]).
REFERENCES [dbo]. [tblBuilding]([Id]).
Связь с табицей «Рентабельность» :
ALTER TABLE [dbo]. [tblPtu]WITH CHECK ADD CONSTRAINT [FK_tblPtu_tblProfitability]FOREIGN KEY ([Profitability_Id]).
REFERENCES [dbo]. [tblProfitability]([Id]).
Таблица для связи таблиц «Предпринимательские структуры» и «Учебное заведение» :
CREATE TABLE [dbo]. [tblPtuEnterpriseStructure](.
[Ptu_RegNumber] [bigint]NOT NULL,.
[EnterpriseStructure_Id] [bigint]NOT NULL,.
CONSTRAINT [PK_tblPtuEnterpriseStructure]PRIMARY KEY CLUSTERED.
(.
[Ptu_RegNumber]ASC,.
[EnterpriseStructure_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].
Связь с таблицей «Предпринимательские структуры» :
ALTER TABLE [dbo]. [tblPtuEnterpriseStructure]WITH CHECK ADD CONSTRAINT [FK_tblPtuEnterpriseStructure_tblEnterpriseStructure]FOREIGN KEY ([EnterpriseStructure_Id]).
REFERENCES [dbo]. [tblEnterpriseStructure]([Id]).
Связь с таблицей «Учебное заведение» :
ALTER TABLE [dbo]. [tblPtuEnterpriseStructure]WITH CHECK ADD CONSTRAINT [FK_tblPtuEnterpriseStructure_tblPtu]FOREIGN KEY ([Ptu_RegNumber]).
REFERENCES [dbo]. [tblPtu]([RegNumber]).
Таблица для связи таблиц «Специализация» и «Учебное заведение» :
CREATE TABLE [dbo]. [tblPtuSpec](.
[Spec_Id] [bigint]NOT NULL,.
[Ptu_RegNumber] [bigint]NOT NULL,.
[Groups_Count] [int]NOT NULL,.
[Students_Count] [int]NOT NULL,.
CONSTRAINT [PK_tblPtuSpec]PRIMARY KEY NONCLUSTERED.
(.
[Spec_Id]ASC,.
[Ptu_RegNumber]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY].
) ON [PRIMARY].
Связь с таблицей «Учебное заведение» :
ALTER TABLE [dbo]. [tblPtuSpec]WITH CHECK ADD CONSTRAINT [FK_tblPtuSpec_tblPtu]FOREIGN KEY ([Ptu_RegNumber]).
REFERENCES [dbo]. [tblPtu]([RegNumber]).
ON UPDATE CASCADE.
ON DELETE CASCADE.
Связь с таблицей «Специализация» :
ALTER TABLE [dbo]. [tblPtuSpec]WITH CHECK ADD CONSTRAINT [FK_tblPtuSpec_tblSpecialization]FOREIGN KEY ([Spec_Id]).
REFERENCES [dbo]. [tblSpecialization]([Id]).
Реализация значения по умолчанию для поля «Количество групп» :
ALTER TABLE [dbo]. [tblPtuSpec]ADD DEFAULT ((0)) FOR [Groups_Count].
Реализация значения по умолчанию для поля «Количество учащихся» :
ALTER TABLE [dbo]. [tblPtuSpec]ADD DEFAULT ((0)) FOR [Students_Count].
Таблица для связи таблиц «Занимаемые площади» и «Учебное заведение» :
CREATE TABLE [dbo]. [tblPtuSquare](.
[Ptu_RegName] [bigint]NOT NULL,.
[Square_Id] [bigint]NOT NULL,.
[Square] [decimal](6, 2) NOT NULL,.
CONSTRAINT [PK_tblPtuSquare]PRIMARY KEY CLUSTERED.
(.
[Ptu_RegName]ASC,.
[Square_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].
Связь с таблицей «Учебное заведение» :
ALTER TABLE [dbo]. [tblPtuSquare]WITH CHECK ADD CONSTRAINT [FK_tblPtuSquare_tblPtu]FOREIGN KEY ([Ptu_RegName]).
REFERENCES [dbo]. [tblPtu]([RegNumber]).
Связь с таблицей «Занимаемые площади» :
ALTER TABLE [dbo]. [tblPtuSquare]WITH CHECK ADD CONSTRAINT [FK_tblPtuSquare_tblSquare]FOREIGN KEY ([Square_Id]).
REFERENCES [dbo]. [tblSquare]([Id]).
Таблица для связи таблиц «Транспорт» и «Учебное заведение» :
CREATE TABLE [dbo]. [tblPtuTransport](.
[Transport_Id] [bigint]NOT NULL,.
[Ptu_RegNumber] [bigint]NOT NULL,.
[Amount] [int]NOT NULL,.
CONSTRAINT [PK_tblPtuTransport2]PRIMARY KEY CLUSTERED.
(.
[Transport_Id]ASC,.
[Ptu_RegNumber]ASC.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY].
) ON [PRIMARY].
Связь с таблицей «Учебное заведение» :
ALTER TABLE [dbo]. [tblPtuTransport]WITH CHECK ADD CONSTRAINT [FK_tblPtuTransport_tblPtu]FOREIGN KEY ([Ptu_RegNumber]).
REFERENCES [dbo]. [tblPtu]([RegNumber]).
Связь с таблицей «Транспорт» :
ALTER TABLE [dbo]. [tblPtuTransport]WITH CHECK ADD CONSTRAINT [FK_tblPtuTransport_tblTransport]FOREIGN KEY ([Transport_Id]).
REFERENCES [dbo]. [tblTransport]([Id]).
В таблицах реализованы ограничения уникальности полей по полю «Name», указаны ключевые поля и соединения таблиц между собой при помощи связей 1: N и N: M. Также в некоторых таблицах имеются поля в которых описаны значения по умолчанию и реализованы ограничения целостности Cascade.