Физическая структура базы данных. Аппаратное и программное обеспечение системы.Реализация интерфейса пользователя, страница 4

Столбцы всех первичных ключей таблицы являются идентифицирующими, т.е. значения этих полей генерируются автоматически.

Диаграмма созданной базы данных приведена на рисунке 2.1.

Рисунок 2.1 – Диаграмма базы данных

Данные таблицы соответствуют требованиям нормализации реляционных БД. Таблицы находятся в 1НФ, т.к. все их поля являются простыми (неделимыми), нет повторяющихся полей и каждый столбец  таблиц хранит одно-единственное значение и не является ни списком, ни множеством значений. Таблицы находятся во 2НФ, т.к. они находятся в 1НФ, имеют простые первичные ключи и каждое не ключевое поле функционально зависит от первичного ключа.  Таблицы находится в 3НФ, т.к. они находятся во 2НФ и все не ключевые поля являются взаимно-независимыми.

2.2 Создание представлений, хранимых процедур, пользовательских функций, триггеров

Сведения о всех сотрудниках:

SELECT ФИО, Дата_рождения, Пол, Адрес, Телефон, Паспортные_данные, Образование

FROM         Сотрудники

Сведения о сотрудниках с определенными ФИО:

SELECT ФИО, Дата_рождения, Пол, Адрес, Телефон, Образование, Паспортные_данные

FROM Сотрудники

WHERE (ФИО = @ФИО)

Отображение сведений по сотрудниках с определенным возрастом:

SELECT Код_сотрудника, ФИО, Дата_рождения, Пол, Адрес, Телефон, Паспортные_данные, Образование

FROM Сотрудники

WHERE (DATEDIFF(year, Дата_рождения, GETDATE()) = @Возраст)

Отображение полных сведений по клиентам :

SELECT        dbo.Клиенты.ФИО, dbo.Клиенты.Пол, dbo.Клиенты.Профессия, dbo.Клиенты.Дата_рождения, dbo.Клиенты.Рост, dbo.Клиенты.Вес, dbo.Клиенты.Дети, dbo.Клиенты.Семейное_положение, dbo.Клиенты.Вредные_привычки, dbo.Клиенты.Хобби, dbo.Знак_задиака.Название AS Знак, dbo.Клиенты.Адрес, dbo.Клиенты.Телефон, dbo.Клиенты.Паспортные_данные, dbo.Клиенты.Инфа_о_партнере

FROM dbo.Клиенты INNER JOIN dbo.Знак_задиака ON dbo.Клиенты.Код_знака = dbo.Знак_задиака.Код_знака INNER JOIN dbo.Национальность ON dbo.Клиенты.Код_национальности= dbo.Национальность.Код_национальности

Отображение сведений по клиентам с определенным возрастом:

SELECT Код_клиента, ФИО, Профессия, Дата_рождения, Семейное_положение, Пол

FROM Клиенты

WHERE (DATEDIFF(year, Дата_рождения, GETDATE()) = @Возраст)

Отображение сведений по клиентам с определенным полом:

SELECT ФИО, Пол, Дата_рождения, Профессия, Хобби, Семейное_положение, Знак_зодиака, Адрес

FROM Клиенты

WHERE (Пол = @Пол)

Отображение сведений по клиентам с определенной национальностью:

SELECT      dbo.Клиенты.ФИО,  dbo.Клиенты.Пол,  dbo.Клиенты.Адрес,  dbo.Клиенты.Професия, dbo.Клиенты.Дата_рождения,dbo.Клиенты.Телефон,  dbo.Клиенты.Паспортные_данные

FROM            dbo.Клиенты INNER JOIN dbo.Знак_задиака ON dbo.Клиенты.Код_знака = dbo.Знак_задиака.Код_знака INNER JOIN dbo.Национальность ON dbo.Клиенты.Код_национальности = dbo.Национальность.Код_национальности

WHERE        (dbo.Национальность.Название = @Национальность)

Отображение сведений по клиентам с определенным знаком зодиака:

SELECT        dbo.Клиенты.ФИО, dbo.Клиенты.Пол, dbo.Клиенты.Адрес, dbo.Клиенты.Профессия,dbo.Клиенты.Дата_рождения,dbo.Клиенты.Телефон, dbo.Клиенты.Паспортные_данные

FROM            dbo.Клиенты INNER JOIN dbo.Знак_задиака ON dbo.Клиенты.Код_знака = dbo.Знак_задиака.Код_знака INNER JOIN dbo.Национальность ON dbo.Клиенты.Код_национальности = dbo.Национальность.Код_национальности

WHERE        (dbo.Знак_задиака.Название = @Знак)

Сведения по всем оказанным услугам:

SELECT        dbo.Заказы.Код_заказа, dbo.Заказы.Дата, dbo.Сотрудники.ФИО AS Сотрудник, dbo.Клиенты.ФИО AS Клиент

FROM   dbo.Заказы INNER JOIN .Сотрудники ON dbo.Заказы.Код_сотрудника = dbo.Сотрудники.Код_ сотрудника INNER JOIN

dbo.Клиенты ON dbo.Заказы.Код_клиента = dbo.Клиенты.Код_клиента

Сведения по оказанным услугам определённому клиенту:

SELECT        dbo.Заказы.Код_заказа, dbo.Заказы.Дата, dbo.Сотрудники.ФИО AS Сотрудник, dbo.Клиенты.ФИО AS Клиент