Серверная часть.
Разработка информационной системы "Учет прививок"
Хранимая процедура — объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут… Читать ещё >
Серверная часть. Разработка информационной системы "Учет прививок" (реферат, курсовая, диплом, контрольная)
Серверная часть данного проекта состоит из таблиц, триггеров, хранимых процедур и генераторов.
Таблица «Прием пациента» содержит информацию обо всех приемах. Она является дочерней таблицей.
Имя. | Тип. | Описание. |
NomerZapisi. | int. | Ключевое поле таблицы. |
KodPacienta. | int. | Ссылка на таблицу «Пациент». Внешний ключ. |
KodPreparata. | int. | Ссылка на таблицу «Пациент». Внешний ключ. |
KodSotrudnika. | int. | Ссылка на таблицу «Пациент». Внешний ключ. |
DataPriema. | date. | Дата. |
прививка учет документооборот информационный Таблица «Пациент» содержит информацию обо всех зарегистрированных в поликлинике людей. Она является дочерней таблицей.
Имя. | Тип. | Описание. |
KodPacienta. | int. | Ключевое поле таблицы. |
FIO. | ntext. | ФИО пациента. |
DataRozdeniya. | date. | Дата рождения. |
Propiska. | ntext. | Прописка. |
KodYchastka. | int. | Дата. |
KodGruppa. | int. | Ссылка на таблицу «Участки». Внешний ключ. |
KodFamily. | int. | Ссылка на таблицу «Семья». Внешний ключ. |
MectoRaboti. | ntext. | Место работы. |
NomerStrahovogoPolisa. | int. | Номер страхового полиса. |
KodP. | int. | Ссылка на таблицу «Группа». Внешний ключ. |
Year1. | int. | Год. |
Таблица «Препарат» содержит информацию о препаратах. Она является дочерней таблицей.
Имя. | Тип. | Описание. |
KodPreparata. | int. | Ключевое поле таблицы. |
Nazvanie. | ntext. | Название препарата. |
Dozirovka. | int. | Дозировка. |
KodFormi. | int. | Ссылка на таблицу «Форма». Внешний ключ. |
Protivopokazaniya. | ntext. | Противопоказания данного препарата. |
VremyaPrimeneniya. | ntext. | Время применения. |
SrokGodnosti. | date. | Срок годности. |
Таблица «Сотрудники» содержит информацию о сотрудниках. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodSotrudnika. | Int. | Ключевое поле таблицы. |
FIO. | Ntext. | ФИО сотрудника. |
KodDolzhnosti. | Int. | Ссылка на таблицу «Должности». Внешний ключ. |
Таблица «Форма выпуска» содержит информацию о формах выпуска препаратов. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodFormi. | Int. | Ключевое поле таблицы. |
FormaVipyska. | Ntext. | Форма выпуска препарата. |
Таблица «Состав семьи» содержит список статусов семейного положения. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodFamily. | Int. | Ключевое поле таблицы. |
SostavFamily. | Ntext. | Семейный статус. |
Таблица «Группа» содержит список групп инвалидности. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodGruppa. | Int. | Ключевое поле таблицы. |
GruppaInvalidnosti. | int. | Группа инвалидности. |
Таблица «Участки» заключает в себе список участков. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodYchastka. | Int. | Ключевое поле таблицы. |
Ychastki. | int. | Участок. |
Таблица «Тип пациента» заключает в себе список участков. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodP. | Int. | Ключевое поле таблицы. |
TipPacienta. | ntext. | Категория пациента. |
Таблица «Тип пациента» заключает в себе список участков. Она является родительской таблицей.
Имя. | Тип. | Описание. |
KodDolznosti. | Int. | Ключевое поле таблицы. |
Dolznost. | ntext. | Должность. |
Триггер — это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных: добавлением INSERT, удалением DELETE строки в заданной таблице, или изменением UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики.
Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.
Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие — не удаление записи). Некоторые СУБД накладывают ограничения на операторы, которые могут быть использованы в триггере (например, может быть запрещено вносить изменения в таблицу, на которой находится триггер, и т. п.).
Кроме того, триггеры могут быть привязаны не к таблице, а к представлению (VIEW). В этом случае с их помощью реализуется механизм «обновляемого представления». В этом случае ключевые слова BEFORE и AFTER влияют лишь на последовательность вызова триггеров, так как собственно событие (удаление, вставка или обновление) не происходит.
В некоторых серверах триггеры могут вызываться не для каждой модифицируемой записи, а один раз на изменение таблицы. Такие триггеры называются табличными.
Пример кода триггера:
USE [Курсач ИТ].
GO.
SET ANSI_NULLS ON.
GO.
SET QUOTED_IDENTIFIER ON.
GO.
ALTER TRIGGER [dbo]. DelPacient].
ON [dbo]. Пациент].
AFTER DELETE.
AS.
BEGIN.
SET NOCOUNT ON;
Declare @id bigint.
Set @id = (Select KodPacienta From deleted).
Delete [Прием пациента].
Where KodPacienta = @id.
END.
Данный триггер удаляет данные о приеме из таблицы «Прием пациента», если в таблице «Пациент» удалить данные о пациенте.
Хранимая процедура — объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам. В хранимых процедурах могут выполняться стандартные операции с базами данных (как DDL, так и DML). Кроме того, в хранимых процедурах возможны циклы и ветвления, то есть в них могут использоваться инструкции управления процессом исполнения.
Хранимые процедуры похожи на определяемые пользователем функции (UDF). Основное различие заключается в том, что пользовательские функции можно использовать, как и любое другое выражение в SQL запросе, в то время как хранимые процедуры должны быть вызваны с помощью функции CALL.
Хранимые процедуры могут возвращать множества результатов, то есть результаты запроса SELECT. Такие множества результатов могут обрабатываться, используя курсоры, другими сохраненными процедурами, возвращая указатель результирующего множества, либо же приложениями. Хранимые процедуры могут также содержать объявленные переменные для обработки данных и курсоров, которые позволяют организовать цикл по нескольким строкам в таблице. Стандарт SQL предоставляет для работы выражения IF, LOOP, REPEAT, CASE и многие другие. Хранимые процедуры могут принимать переменные, возвращать результаты или изменять переменные и возвращать их, в зависимости от того, где переменная объявлена.
USE [Курсач ИТ].
GO.
SET ANSI_NULLS ON.
GO.
SET QUOTED_IDENTIFIER ON.
GO.
ALTER PROCEDURE [dbo]. God].
AS.
BEGIN.
SET NOCOUNT ON;
Delete from dbo. Пациент where Year1>125.
END.
Генератор — это специальный объект базы данных, который генерирует уникальные последовательные числа. Эти числа могут быть использованы в качестве идентификаторов.
Сами по себе генераторы не обеспечивают сохранение последовательности номеров в случае удаления записей — генератор всего лишь выдает числа по очереди увеличивая их на некоторую величину и обеспечивая уникальность выданных значений.
То есть, генератор выглядит как переменная типа integer, которая находится в памяти, и над которой можно выполнять операции Inc и Dec.
Если требуется обеспечить непрерывные последовательности идентификаторов записей даже в случае их удаления или модификации, то необходимо обратиться к статье Auditable series of numbers (непрерывные последовательности чисел).