Автор работы: Пользователь скрыл имя, 21 Декабря 2015 в 03:18, курсовая работа
Актуальність обраної теми полягає у тому, що автоматизація нарахування дивідендів дозволяє зменшити ризик помилки та час на розрахування дивідендів для кожного акціонера, а також вирішує проблему звітності, оскільки потрібну інформацію для звіту можна отримати в потрібному вигляді, у формі таблиці, в самих СКБД. Зберігання усіх даних у базі спрощує пошук потрібної інформації для співробітників підприємства, оскільки кожен співробітник, за потреби, може отримати потрібні йому дані, не виходячи зі свого кабінету, що економить час та прискорює роботу підприємства.
ON UPDATE NO ACTION
go
ALTER TABLE Region_2
ADD CONSTRAINT R_10 FOREIGN KEY (id_country) REFERENCES Country_3(id_country)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Shar_8
ADD CONSTRAINT R_15 FOREIGN KEY (id_act) REFERENCES Shares_7(id_act)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE Shar_8
ADD CONSTRAINT R_16 FOREIGN KEY (Id_sharer) REFERENCES sharer_1(Id_sharer)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
ALTER TABLE sharer_1
ADD CONSTRAINT R_11 FOREIGN KEY (id_city) REFERENCES City_5(id_city)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
Додаток Г
Додаток Д
Виконання запитів в СКБД Microsoft Access
Інформація про акціонерів:
Лістинг Д.1. Код запиту для надання інформацію про акціонерів.
SELECT [sharer/1].Surname, [sharer/1].Name, [sharer/1].Midlename, [sharer/1].Telephone, [Shar/8].numb_shar, [Shares/7].Type_of_sharer, [City/5].city, [Region/2].Region, [Country/3].Country
FROM [Country/3] INNER JOIN ([Region/2] INNER JOIN ([City/5] INNER JOIN ([Shares/7] INNER JOIN ([sharer/1] INNER JOIN [Shar/8] ON [sharer/1].Id_sharer = [Shar/8].Id_sharer) ON [Shares/7].id_act = [Shar/8].id_act) ON [City/5].id_city = [sharer/1].id_city) ON [Region/2].id_region = [City/5].id_region) ON [Country/3].id_country = [Region/2].id_country
WHERE [shar/8].date= (SELECT Max([Shar/8].Date)
FROM [Shar/8]
WHERE [Shar/8].id_sharer=[sharer/1].
Результат виконання:
Рис. Д.1. Виконання запиту для надання інформацію про акціонерів
Обчислення нарахування дивідендів за привілейованими акціями.
Лістинг Д.2. Виконання запиту на обчислення нарахувань для акціонерів за привілейованими акціями.
SELECT [sharer/1].Surname, [sharer/1].Name, [sharer/1].Midlename, [Shar/8].numb_shar AS Numb, [Shares/7].Type_of_sharer, [Company/4].Date, ([Company/4].Count_div * [Numb]/
(SELECT Sum( [Emission/10].[Sharers])/(
FROM [Emission/10],[Company/4]
Where [Company/4].id_use=1 and [Emission/10].Date<=[Company/
FROM [sharer/1], [shar/8], [Shares/7], [Company/4], [Currency/6]
WHERE [sharer/1].id_sharer=[shar/8].
FROM [Shar/8]
WHERE [Shar/8].id_act=1 and [Shar/8].id_sharer=[sharer/1].
ORDER BY [Company/4].Date;
Результат виконання:
Рис. Д.2. Результат запиту на обчислення нарахувань для акціонерів за привілейованими акціями.
Обчислення та нарахування дивідендів за звичайними акціями.
Лістинг Д.3. Виконання запиту на обчислення нарахувань для акціонерів за звичайними акціями.
SELECT [sharer/1].Surname, [sharer/1].Name, [sharer/1].Midlename,
[shar/8].numb_shar AS Numb, [Shares/7].Type_of_sharer, [Company/4].Date,
(([Остаток].Ost)*(1-[Shares/7]
FROM [sharer/1], [shar/8], [Shares/7], [Company/4], [Currency/6], Остаток
WHERE [sharer/1].id_sharer=[shar/8].
Результат виконання:
Рис. Д.3. Результат запиту на обчислення нарахувань для акціонерів за звичайними акціями.
Виконання запитів в MySQL
Інформація про акціонерів:
Лістинг Д.4. Код запиту для надання інформації про акціонерів.
select
`sharer/1`.`Surname` AS `Surname`, `sharer/1`.`Name` AS `Name`,
`sharer/1`.`Midlename` AS `Midlename`,
`sharer/1`.`Telephone` AS `Telephone`,
`shar/8`.`numb_shar` AS `numb_shar`,
`shares/7`.`Type_of_sharer` AS `Type_of_sharer`,
`city/5`.`city` AS `city`,
`region/2`.`Region` AS `Region`,
`country/3`.`Country` AS `Country`
from (`country/3` join (`region/2` join (`city/5` join (`shares/7`
join (`sharer/1` join `shar/8` on ((`sharer/1`.`Id_sharer` = `shar/8`.`Id_sharer`))) on ( (`shares/7`.`id_act` = `shar/8`.`id_act`))) on ((`city/5`.`id_city` = `sharer/1`.`id_city`))) on ( (`region/2`.`id_region` = `city/5`.`id_region`))) on ( (`country/3`.`id_country` = `region/2`.`id_country`)))
where(`shar/8`.`Date` = (select max(`shar/8`.`Date`) from `shar/8` )
where ((`shar/8`.`Id_sharer` = `sharer/1`.`Id_sharer`) and(`shar/8`.`id_act` = `shares/7`.`id_act`) )) )
Результат виконання:
Рис. Д.4. Виконання запиту для надання інформацію про акціонерів
Обчислення нарахування дивідендів за привілейованими акціями.
Лістинг Д.5. Виконання запиту на обчислення нарахувань для акціонерів за привілейованими акціями
select
`sharer/1`.`Surname` AS `Surname`,
`sharer/1`.`Name` AS `Name`,
`sharer/1`.`Midlename` AS `Midlename`,
`shar/8`.`numb_shar` AS `numb_shar`,
`shares/7`.`Type_of_sharer` AS `Type_of_sharer`,
`company/4`.`Date` AS `Date`,
( (`company/4`.`Count_div` * `shar/8`.`numb_shar`) / (select
(
sum(`emission/10`.`Sharers`) / (select distinct
count(`company/4`.`Date`)
from `company/4`
where
(`company/4`.`id_use` = 1)) )
from (`emission/10`
join `company/4`)
where
(
(`company/4`.`id_use` = 1) and
(`emission/10`.`Date` <= `company/4`.`Date`)
))
) AS `Divided`,
`currency/6`.`Currency` AS `Currency`
from ((((`sharer/1` join `shar/8`) join `shares/7`)
join `company/4`)
join `currency/6`)
where
( (`sharer/1`.`Id_sharer` = `shar/8`.`Id_sharer`) and
(`shar/8`.`id_act` = `shares/7`.`id_act`) and
(`company/4`.`id_cur` = `currency/6`.`id_cur`) and
(`company/4`.`Date` >= `shar/8`.`Date`) and
(`shar/8`.`id_act` = 1) and
(`company/4`.`id_use` = 1) and
( `shar/8`.`Date` = (select max(`shar/8`.`Date`)
from `shar/8`
where( (`shar/8`.`id_act` = 1) and (`shar/8`.`Id_sharer` = `sharer/1`.`Id_sharer`) and(`shar/8`.`Date` <= `company/4`.`Date`) )) ) )
order by `company/4`.`Date`
Результат виконання:
Рис. Д.5. Результат запиту на обчислення нарахувань для акціонерів за привілейованими акціями
Обчислення та нарахування дивідендів за звичайними акціями.
Лістинг Д.6. Виконання запиту на обчислення нарахувань для акціонерів за звичайними акціями
select
`sharer/1`.`Surname` AS `Surname`, `sharer/1`.`Name` AS `Name`, `sharer/1`.`Midlename` AS `Midlename`,
`shar/8`.`numb_shar` AS `numb_shar`, `shares/7`.`Type_of_sharer` AS `Type_of_sharer`,
`company/4`.`Date` AS `Date`,
( ( (
`ost`.`Ostat` * (
1 - (`shares/7`.`Procent` / 100)
)) * `shar/8`.`numb_shar`
) / (select
( sum(`emission/10`.`Sharers`) / (select distinct
count(`company/4`.`Date`)
from `company/4`
where
(`company/4`.`id_use` = 1)) )
from (`emission/10`
join `company/4`)
where ((`company/4`.`id_use` = 1) and (`emission/10`.`Date` <= `company/4`.`Date`) and (`emission/10`.`id_act` = 2) )) ) AS `Dividid`,
`currency/6`.`Currency` AS `Currency`
from (((((`sharer/1` join `shar/8`) join `shares/7`)
join `company/4`) join `currency/6`) join `ost`)
where((`sharer/1`.`Id_sharer` = `shar/8`.`Id_sharer`) and (`shar/8`.`id_act` = `shares/7`.`id_act`) and
(`company/4`.`id_cur` = `currency/6`.`id_cur`) and
(`company/4`.`Date` >= `shar/8`.`Date`) and
(`shar/8`.`id_act` = 2) and
(`company/4`.`id_use` = 1) and
(`ost`.`date` = `company/4`.`Date`) and
( `shar/8`.`Date` = (select
max(`shar/8`.`Date`)
from `shar/8`
where((`shar/8`.`id_act` = 2) and (`shar/8`.`Id_sharer` = `sharer/1`.`Id_sharer`) and (`shar/8`.`Date` <= `company/4`.`Date`)))))
Результат виконання:
Рис. Д.6. Результат запиту на обчислення нарахувань для акціонерів за звичайними акціями.
Виконання запитів в SQL Server
Інформація про акціонерів
Лістинг Д.7. Код запиту для надання інформацію про акціонерів
SELECT dbo.[sharer/1].Surname, dbo.[sharer/1].Name,
dbo.[sharer/1].Midlename, dbo.[sharer/1].Telephone,dbo.[
FROM dbo.[Country/3] INNER JOIN dbo.[Region/2] INNER JOIN dbo.[City/5] INNER JOIN dbo.[Shares/7] INNER JOIN dbo.[sharer/1] INNER JOIN dbo.[Shar/8] ON dbo.[sharer/1].Id_sharer = dbo.[Shar/8].Id_sharer ON dbo.[Shares/7].id_act = dbo.[Shar/8].id_act ON dbo.[City/5].id_city = dbo.[sharer/1].id_city ON dbo.[Region/2].id_region = dbo.[City/5].id_region ON dbo.[Country/3].id_country = dbo.[Region/2].id_country
WHERE (dbo.[Shar/8].Date =(SELECT MAX(Date) AS Expr1
FROM dbo.[Shar/8] AS [Shar/8_1]
WHERE (Id_sharer = dbo.[sharer/1].Id_sharer) AND (id_act = dbo.[Shares/7].id_act)))
Результат виконання:
Рис. Д.7. Виконання запиту для надання інформацію про акціонерів
Обчислення нарахування дивідендів за привілейованими акціями.
Лістинг Д.8. Виконання запиту на обчислення нарахувань для акціонерів за привілейованими акціями
SELECT dbo.[sharer/1].Surname AS Фамилия, dbo.[sharer/1].Name AS Имя, dbo.[sharer/1].Midlename AS Отчество, dbo.[Shar/8].numb_shar AS Количество, dbo.[Shares/7].Type_of_sharer AS Тип, [Company/4_1].Date AS Дата, [Company/4_1].Count_div * dbo.[Shar/8].numb_shar /(SELECT SUM(dbo.[Emission/10].Sharers) /
(SELECT DISTINCT COUNT(Date)
FROM dbo.[Company/4]
WHERE (id_use = 1))
FROM dbo.[Emission/10] INNER JOIN dbo.[Company/4] AS [Company/4_2] ON dbo.[Emission/10].Date <= [Company/4_2].Date
WHERE ([Company/4_2].id_use = 1)) AS Дивиденды, dbo.[Currency/6].Currency AS Валюта
FROM dbo.[Currency/6] INNER JOIN dbo.[Company/4] AS [Company/4_1] ON dbo.[Currency/6].id_cur = [Company/4_1].id_cur INNER JOIN dbo.[sharer/1] INNER JOIN dbo.[Shar/8] ON dbo.[sharer/1].Id_sharer = dbo.[Shar/8].Id_sharer INNER JOIN dbo.[Shares/7] ON dbo.[Shar/8].id_act = dbo.[Shares/7].id_act ON [Company/4_1].Date >= dbo.[Shar/8].Date
WHERE (dbo.[Shar/8].id_act = 1) AND ([Company/4_1].id_use = 1) AND (dbo.[Shar/8].Date =(SELECT MAX(Date)
FROM dbo.[Shar/8] AS [Shar/8_1]
WHERE (id_act = 1) AND (Id_sharer = dbo.[sharer/1].Id_sharer) AND (Date <= [Company/4_1].Date)))
ORDER BY Дата
Результат виконання:
Рис. Д.8. Обчислення нарахувань для акціонерів за привілейованими акціями.
Обчислення та нарахування дивідендів за звичайними акціями.
Лістинг Д.9. Запиту на обчислення нарахувань для акціонерів за звичайними акціями.
SELECT dbo.[sharer/1].Surname, dbo.[sharer/1].Name, dbo.[sharer/1].Midlename, dbo.[Shar/8].numb_shar AS Numb, dbo.[Shares/7].Type_of_sharer, [Company/4_1].Date, dbo.Остаток.Ost * (1 - (0. + dbo.[Shares/7].Procent) / 100) * dbo.[Shar/8].numb_shar /(SELECT SUM(dbo.[Emission/10].Sharers) /(SELECT DISTINCT COUNT(Date) FROM dbo.[Company/4] WHERE (id_use = 1))
FROM dbo.[Emission/10] INNER JOIN dbo.[Company/4] AS [Company/4_2] ON dbo.[Emission/10].Date <= [Company/4_2].Date
WHERE ([Company/4_2].id_use = 1) AND (dbo.[Emission/10].id_act = 2)) AS Дивиденды, dbo.[Currency/6].Currency
FROM dbo.[Currency/6] INNER JOIN dbo.[Company/4] AS [Company/4_1] ON dbo.[Currency/6].id_cur = [Company/4_1].id_cur INNER JOIN dbo.[sharer/1] INNER JOIN dbo.[Shar/8] ON dbo.[sharer/1].Id_sharer = dbo.[Shar/8].Id_sharer INNER JOIN dbo.[Shares/7] ON dbo.[Shar/8].id_act = dbo.[Shares/7].id_act ON [Company/4_1].Date >= dbo.[Shar/8].Date INNER JOIN dbo.Остаток ON [Company/4_1].Date = dbo.Остаток.Дата
WHERE (dbo.[Shar/8].id_act = 2) AND ([Company/4_1].id_use = 1) AND (dbo.[Shar/8].Date =(SELECT MAX(Date) FROM dbo.[Shar/8] AS [Shar/8_1]
WHERE (id_act = 2) AND (Id_sharer = dbo.[sharer/1].Id_sharer) AND (Date <= [Company/4_1].Date)))
Результат виконання:
Рис. Д.9. Результат запиту на обчислення нарахувань для акціонерів за звичайними акціями.
Информация о работе Опис організаційно-економічної сутності задачі