Расчет заработной платы в поликлинике
Курсовая работа, 12 Декабря 2013, автор: пользователь скрыл имя
Краткое описание
Процесс разработки базы данных является одним из ключевых направлений в области автоматизация бизнес-процессов с использованием информационных технологий. Он позволяет решить проблему хранения и систематизации информации согласно потребностям организации.
Содержание
Введение 3
Постановка задачи 4
1. Проектирование структуры базы данных 5
1.1. Техническое задание 6
1.2. Концептуальное проектирование 8
1.3. Логическое проектирование 13
2. Выбор серверной платформы (СУБД) 18
3. Физическое проектирование. Реализация базы данных на платформе Microsoft SQL Server 21
4. Типовые процедуры администрирования базы данных 26
5. Типовые запросы к базе данных 27
6. Оценка качества базы данных 28
Заключение 30
Список использованной литературы 31
Вложенные файлы: 1 файл
расчет_ЗБ_поликлиника.doc
— 292.50 Кб (Скачать файл)Сущность |
Описание |
Chargeit |
Вид начисления у конкретного работника |
Holdit |
Вид удержания у конкретного работника |
Таблица 5. Новые связи для декомпозиции связей «многие ко многим»
Связь |
Описание |
PhaseChargeit |
Работник имеет конкретный вид начисления |
PhaseHoldit |
Работник имеет конкретный вид удержания |
ChargeChargeit |
Начисление назначено конкретному работнику |
HoldHoldit |
Удержание назначено конкретному работнику |
2. Формирование отношений на основе логической модели данных.
На этом этапе на основе логических моделей данных определяются наборы отношений, необходимые для представления сущностей, связей и атрибутов, входящих в представление отдельных пользователей о предметной области приложения.
Связь между сущностями отображается с помощью механизма «первичный ключ/внешний ключ». Поэтому для каждой подчиненной по связи сущности необходимо перенести в нее атрибуты первичного ключа родительской сущности.
Таблица 6. Внешние ключи
Сущность |
Атрибут |
Описание |
Phase |
WorkerId |
Идентификатор работника |
DivId |
Идентификатор подразделения | |
JobId |
Идентификатор должности | |
RatioId |
Номер разряда | |
Work |
PhaseId |
Идентификатор работника |
Tariff |
RatioId |
Номер разряда |
Chargeit |
PhaseId |
Идентификатор работника |
ChrargeId |
Идентификатор вида начисления | |
WorkId |
Идентификатор работы | |
Holdit |
PhaseId |
Идентификатор работника |
HoldId |
Идентификатор вида удержания | |
Calc |
PhaseId |
Идентификатор работника |
Charging |
ChargeId |
Идентификатор вида начисления |
CalcId |
Идентификатор расчета | |
Holding |
HoldId |
Идентификатор вида удержания |
CalcId |
Идентификатор расчета |
3. Проверка отношений с использованием средств нормализации.
Процесс нормализации включает следующие основные этапы:
1) приведение к 1-й нормальной форме, позволяющее удалить из отношений повторяющиеся группы атрибутов
2) приведение ко 2-й нормальной форме, позволяющее устранить частичную зависимость атрибутов от первичного ключа
3) приведение к 3-й нормальной форме, позволяющее устранить транзитивную зависимость атрибутов от первичного ключа.
4) приведение к нормальной
форме Бойса-Кодда,
4. Проверка применимости
отношений для выполнения
Целью выполнения данного этапа является проверка логической модели данных на предмет того, обеспечивает ли она поддержку всех транзакций, предусмотренных пользовательским представлением.
5. Определение ограничений целостности.
Ограничения целостности данных вводятся с целью предотвратить появление в базе противоречивых данных.
Типы ограничений целостности:
- Обязательные данные
- Ограничения для доменов атрибутов
- Целостность сущностей
- Ссылочная целостность
- Ограничения предметной области
Созданная в результате процесса разработки логическая структура базы данных обсуждается в пользователями и, в случае необходимости выполняется итерационный процесс доработки модели.
2. Выбор серверной платформы (СУБД)
Выбор целевой системы управления баз данных (СУБД) представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала.
Можно выделить несколько групп критериев выбора СУБД:
1. Моделирование данных
- Используемая модель данных..
- Триггеры и хранимые процедуры.
- Средства поиска.
- Предусмотренные типы данных..
- Реализация языка запросов. Все современные системы совместимы со стандартным языком доступа к данным SQL-92, однако многие из них реализуют те или иные расширения данного стандарта.
2. Особенности архитектуры и функциональные возможности:
- Мобильность. Независимость системы от среды, в которой она работает.
- Масштабируемость. При выборе СУБД необходимо учитывать, сможет ли данная система соответствовать росту информационной системы.
- Распределенность.
- Сетевые возможности.
3. Контроль работы системы
- Контроль использования памяти компьютера.
- Автонастройка.
4. Особенности разработки приложений
- Средства проектирования.
- Многоязыковая поддержка..
- Возможности разработки Web-приложений.
- Поддерживаемые языки программирования.
5. Производительность
- Рейтинг TPC (Transactions per Cent). Отношение количества запросов обрабатываемых за некий промежуток времени к стоимости всей системы.
- Возможности параллельной архитектуры.
- Возможности оптимизирования запросов..
6. Надежность
- Восстановление после сбоев.
- Резервное копирование.
- Откат изменений.
- Многоуровневая система защиты.
7. Требования к рабочей среде
- Поддерживаемые аппаратные платформы.
- Минимальные требования к оборудованию.
- Максимальный размер адресуемой памяти.
- Операционные системы, под управлением которых способна работать СУБД.
8. Смешанные критерии
- Качество и полнота документации.
- Локализованность.
- Модель формирования стоимости.
- Стабильность производителя.
- Распространенность СУБД.
Расчет интегрального показателя выбора СУБД по требованиям задачи:
Таблица 7. Интегральные показатели по различным СУБД
Показатель |
Весовой коэффициент |
СУБД | ||
SQL Server 2005 |
MySQL |
Oracle | ||
Моделирование данных |
1 |
7 |
3 |
6 |
Функциональные возможности |
2 |
8 |
6 |
9 |
Контроль |
1,8 |
8 |
5 |
9 |
Разработка приложений |
2,5 |
9 |
5 |
7 |
Производительность |
2 |
8 |
7 |
9 |
Надежность |
2,5 |
8 |
4 |
8 |
Требования к рабочей среде |
2 |
9 |
7 |
7 |
Прочие критерии |
0,5 |
6 |
9 |
5 |
Итого: |
116,9 |
79 |
112,2 | |
Для программной реализации базы данных учета зарплаты в поликлинике выбирается система управления базами данных Microsoft SQL Server 2005 в редакции Standard Edition.
Microsoft SQL Server использует в качестве языка запросов Transact-SQL (T-SQL) - процедурное расширение языка SQL.
3. Физическое проектирование. Реализация базы данных на платформе Microsoft SQL Server
Физическая реализация базы данных выполняется в виде сценария на языке Transact-SQL:
USE [clinic]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Charge](
[ChargeId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_Charge] PRIMARY KEY CLUSTERED
(
[ChargeId] 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].[Division](
[DivId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_Division] PRIMARY KEY CLUSTERED
(
[DivId] 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].[Hold](
[HoldId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[Percent] [float] NOT NULL CONSTRAINT [DF_Hold_Percent] DEFAULT ((0)),
[LimitUp] [money] NULL,
[LimitDown] [money] NULL,
CONSTRAINT [PK_Hold] PRIMARY KEY CLUSTERED
(
[HoldId] 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].[Job](
[JobId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_Job] PRIMARY KEY CLUSTERED
(
[JobId] 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].[Ratio](
[RatioId] [int] NOT NULL,
CONSTRAINT [PK_Ratio] PRIMARY KEY CLUSTERED
(
[RatioId] 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].[Worker](
[WorkerId] [int] IDENTITY(1,1) NOT NULL,
[DOB] [smalldatetime] NOT NULL,
[Sex] [nvarchar](1) NOT NULL CONSTRAINT [DF_Worker_Sex] DEFAULT (N'M'),
CONSTRAINT [PK_Worker] PRIMARY KEY CLUSTERED
(
[WorkerId] 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].[Charging](
[ChargingId] [int] IDENTITY(1,1) NOT NULL,
[Summa] [money] NULL,
[ChargeId] [int] NULL,
[WorkId] [int] NULL,
[CalcId] [int] NULL,
CONSTRAINT [PK_Charging] PRIMARY KEY CLUSTERED
(
[ChargingId] 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].[Holding](
[HoldingId] [int] IDENTITY(1,1) NOT NULL,
[Summa] [money] NULL,
[HoldId] [int] NULL,
[CalcId] [int] NULL,
CONSTRAINT [PK_Holding] PRIMARY KEY CLUSTERED
(
[HoldingId] 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].[ChargeIt](
[ChargeId] [int] NOT NULL,
[PhaseId] [int] NOT NULL,
CONSTRAINT [PK_ChargeIt] PRIMARY KEY CLUSTERED
(
[ChargeId] ASC,
[PhaseId] 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].[Phase](
[PhaseId] [int] IDENTITY(1,1) NOT NULL,
[WorkerId] [int] NULL,
[Surname] [nvarchar](50) NULL,
[Name] [nvarchar](50) NULL,
[Patronymic] [nvarchar](50) NULL,
[Tabel] [nvarchar](12) NULL,
[Child] [tinyint] NULL,
[DivId] [int] NULL,
[JobId] [int] NULL,
[RatioId] [int] NULL,
CONSTRAINT [PK_Phase] PRIMARY KEY CLUSTERED
(
[PhaseId] 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].[Holdit](
[HoldId] [int] NOT NULL,
[PhaseId] [int] NOT NULL,
CONSTRAINT [PK_Holdit] PRIMARY KEY CLUSTERED
(
[HoldId] ASC,
[PhaseId] 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].[Calc](
[CalcId] [int] IDENTITY(1,1) NOT NULL,
[CalcMonth] [smallint] NULL,
[CalcYear] [smallint] NULL,
[PhaseId] [int] NULL,
CONSTRAINT [PK_Calc] PRIMARY KEY CLUSTERED
(
[CalcId] 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].[Work](
[WorkId] [int] IDENTITY(1,1) NOT NULL,
[Start] [datetime] NOT NULL,
[Duration] [smallint] NOT NULL,
[Rate] [int] NOT NULL CONSTRAINT [DF_Work_Rate] DEFAULT ((1)),
[PhaseId] [int] NOT NULL,
CONSTRAINT [PK_Work] PRIMARY KEY CLUSTERED
(
[WorkId] 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].[Tariff](
[TariffId] [int] IDENTITY(1,1) NOT NULL,
[Rate] [float] NOT NULL CONSTRAINT [DF_Tariff_Rate] DEFAULT ((1)),
[TariffYear] [smallint] NOT NULL,
[RatioId] [int] NOT NULL,
CONSTRAINT [PK_Tariff] PRIMARY KEY CLUSTERED
(
[TariffId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]