Сетевая база данных "Трудовая биржа"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



между атрибутами таблицы Table_1

Наименование атрибутовФункциональные зависимостисode [First Name] [Last Name] INN profession Status

Таблица 2.7

Функциональные зависимости между атрибутами таблицы Table_2

Наименование атрибутовФункциональные зависимостиСode1 [length of service] [higher education]

Таблица 2.8

Функциональные зависимости между атрибутами таблицы Table_3

Наименование атрибутовФункциональные зависимостиcode2 Name profession_need Stat

Таблица 2.9

Функциональные зависимости между атрибутами таблицы Table_4

Наименование атрибутовФункциональные зависимостиSome_code [Work]база данный dbcontrolle трудоустройство

3. Организация выборки информации из базы данных

В данном приложении можно сформировать любой запрос, который позволяет использовать реляционная алгебра. Далее будут приведены несколько запросов на языке SQL, с расшифровками на естественном языке:

)выборка данных из связанных таблиц;

select [first_name], [higher education] ,[INN],[profession],[STATUS] from table_1, table_2 where table_1.code=table_2.code

Произвести выборку полей имени и высшего образования, ИНН, профессии и статуса из таблиц 1 и 2, где соответствующие поля кода совпадают

Таблица 3.1

Результат выполнения запроса 1

First Namehigher educationINNprofessionSTATUSВасилийСГУ53465476СлесарьFreeМарияМГТУ23423434Оп. станка с ЧПУFreeПетрВАУ42342342МонтажникFreeМарфаВШУ12312313ТехникFreeЕврипитNone31231245ПлотникFreeМаркСЕВ31231254Укладчик БетонаFreeМаринаМГУ34234234ШпалоукладчицаNon-free

2)выборка с использованием оператора (естественного) соединения;

SELECT * FROM table_1JOIN table_2 ON table_1.code = table_2.code

Произвести естественное соединение тех записей таблиц, где поля код совпадают

Таблица 3.2

Результат выполнения запроса 2

codeFirst NameLast NameINNprofessionSTATUSlength of servicehigher education9ВасилийТеркин53465476СлесарьFree24СГУ11МарияНиколаева23423434Оп. станка с ЧПУFree48МГТУ12ПетрПечкин42342342МонтажникFree60ВАУ13МарфаВасильева12312313ТехникFree72ВШУ14ЕврипитНикополидис31231245ПлотникFree84None15МаркАврелий31231254Укладчик БетонаFree96СЕВ16МаринаМаринова34234234ШпалоукладчицаNon-free36МГУ

3)выборка с использованием шаблона;

Select [first_name] from table_1 where [second_name] Like %Н

Вывести имена людей из таблицы 1, у которых фамилия начинается на букву Н

Таблица 3.3

Результат выполнения запроса 3

First NameМарияЕврипид

)выборка информации в заданном диапазоне;

SELECT table_1 code

BETWEEN 5 AND 10

Вывести все имена из таблицы 1, чей код находится между 5 и 10

Таблица 3.3

Результат выполнения запроса 3

First NameВасилий

)выборка с использованием механизма подзапросов.

Select *talble_2code = (select code from table_1 where code = 5)

Вывести все поля из таблицы 2, где значение кода из таблицы равно 5 из соответствующей таблицы 1

Результатом будет являться пустая таблица, потому что записей удовлетворяющих данному запросу нет.

4. Разработка представлений для отображения результатов выборки

В результате было разработано следующее представление, оно изображено на рисунке 1. Данное представление позволяет объединить таблицу 1 и 2 в единую сущность, поскольку в таблице были функциональные зависимости от неключевого параметра.

Рисунок 4.1 - представление результатов выборки

5. Проектирование хранимых процедур

В данном проекте были созданы следующие хранимые процедуры:

[DB]

/****** Object: StoredProcedure [dbo].[vasya] Script Date: 06/13/2011

:48:41 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ON

- =============================================

- Author:

- Create date:

- Description:

- =============================================PROCEDURE [dbo].[vasya]

- Add the parameters for the stored procedure hereBEGIN

- SET NOCOUNT ON added to prevent extra result sets from

- interfering with SELECT statements.NOCOUNT ON;

- Insert statements for procedure heredbo.Table_1 Set code = code+2dbo.Table_2 Set [length of service] = [length of service]*12

Данная процедура увеличивает поле code в таблице 1 и выводит количество опыта каждого работника в месяцах, а не в годах.

6. Разработка механизмов управления данными в базе при помощи триггеров

6.1 Триггер для добавления данных

Данный триггер разрешает добавлять лишь только те данные, которые удовлетворяют условию, где поле INN больше 100000000 или меньше 999999999, если поле будет заполнено неверными данными, то программа выдаст сообщение: 'Неверно введен номер'.

SET ANSI_NULLS ONQUOTED_IDENTIFIER ONTRIGGER [dbo].[INSERTION_CHECK][dbo].[Table_1]INSERT, UPDATENOCOUNT ON;@INN INT@INN = (SELECT [INN] FROM [inserted]) (@INN999999999)

BEGIN

PRINT 'Неверно введен номер ИНН' ROLLBACK TRAN

END@@ERROR != 0'Error occurred during related tables' ROLLBACK TRAN

END

.2 Триггер для удаления данных

Данный триггер запрещает удалять данные, в которых поле имени начинается на Вас.

SET ANSI_NULLS ONQUOTED_IDENTIFIER ONTRIGGER [dbo].[DELETE_CHECK][dbo].[Table_1]DELETENOCOUNT ON;((SELECT Count(*) FROM [deleted] WHERE ([First Name] LIKE

'Вас%')) >0 )'Нельзя удалить человека с именем Вася!!!' ROLLBACK TRAN@@ERROR != 0'Error occurred during related tables' ROLLBACK TRAN

END

6.3 Триггер для обновления данных

Данный триггер запрещает производить обновление поля INN, для уже существующих записей.

SET ANSI_NULLS ONQUOTED_IDENTIFIER ONTRIGGER [dbo].[UPDATE_CHECK][dbo].[Table_1]UPDATENOCOUNT ON;(NOT ( (SELECT [INN] FROM [inserted]) = (SELECT [INN] FROM [deleted]) ) )'Нельзя менять ИНН' ROLLBACK TRAN@@ERROR != 0'Error occurred during related tables' ROLLBACK TRAN

END

7. Разработка технологий доступа к базе данных

7.1 Выбор пользователей базы данных

В данном случае было выбрано 3 группы пользователей: администраторы, секретари и непосредственно работники (рис. 7.1).

Р