Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование БД посетителей фитнес клуба

Содержание:

Введение

Компьютерные системы, особенно в области коммуникаций и хранения данных, развиваются несколько быстрее, чем остальные, потому что им приходится идти в ногу с технологическими и социальными изменениями в мире. В связи с тем, что объемы информации, подлежащей хранению, растут высокими темпами, производители программного обеспечения вынуждены разрабатывать новые гибкие подходы к управлению большими объемами данных. Поскольку базы данных, вне всяких сомнений, занимают лидирующее положение в области информационных технологий, они становятся неотъемлемой частью жизни современного человека.[3]

В настоящий момент на рынке программных продуктов очень широко представлены самые разнообразные программы, предназначенные в основном для автоматизации бухгалтерского учета и управления предприятиями. Но, к сожалению, их применение в учреждениях более узкого профиля практически не развито. В наши дни быстрыми темпами развивается популярность здорового образа жизни, занятий всевозможными видами спорта. Фитнес клубы быстрыми темпами завоевывают популярность среди нашего населения. Люди всех возрастов стараются вести активный образ жизни. Каждый человек ищет занятие подходящее ему, интересующее его. Это бывает достаточно сложной, долго решаемой задачей.

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

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

В настоящее время Erwin является наиболее популярным пакетом моделирования данных благодаря поддержке широкого спектра систем управления базами данных самых различных классов- SQL-серверов.

Вся база данных построена в архитектуре Клиент-Сервер. В качестве сервера используется надежный, масштабируемый и очень простой в эксплуатации сервер баз данных InterBase.

1. Проектирование базы данных

1.1. Описание предметной области

В курсовой работе рассматривается предметная область – фитнес клуб. Данный фитнес клуб имеет много филиалов, каждый из которых профилирован в определенном направлении фитнеса, которые в своей совокупности представляют огромный комплекс занятий фитнесом. Каждый филиал функционирует как самостоятельный клуб, имеет своим название, в каждом филиале есть свой директор. В связи с этим все филиалы данного фитнес-комплекса мы будем именовать как фитнес клуб. Клиент, обратившийся в данный фитнес-комплекс сможет выбрать себе подходящий фитнес-клуб, исходя из его специфики. В каждом фитнес клубе есть залы определенного назначения. Например, в клубе с восточным направлением находятся залы восточных танцев; в клубе, профилирующем в области восстановления здоровья посетителей есть зал с минимальной физической нагрузкой, расположен зал медитации, зал для занятий йогой. Клиент выбирает определенный зал для занятий. В соответствии с физической подготовкой, возрастом и состоянием здоровья клиента, его определяют в группу. К клиенту, относящемуся к определенной группе, составляется определенная программа и структура занятий. В соответствии с выбранным залом, назначается сумма, которую клиент должен вносить за занятия ежемесячно. Также назначаются льготы и скидки, на которые посетитель имеет право, обладая определенным социальным положением или статусом в данном клубе (например, чем дольше вы посещаете клуб, тем большей скидкой вы обладаете). В каждом зале работают тренера, которые занимаются с посетителями, инструктируют их, контролируют их действия, проводят занятия. Каждый тренер работает по определенному расписанию. Клуб рассчитан на людей с ограниченным свободным временем и с неустойчивым графиком работы, поэтому каждый клиент имеет право на свободное посещение клуба, без определенного расписания, ориентируясь на график работы тренеров.

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

1.2. Проектирование с помощью нормальных форм.

Нормализация – процесс разбиения (декомпозиции) отношений с неудовлетворительными свойствами на новые отношения.

Первая нормальная форма.

Сущность находится в первой нормальной форме тогда и только тогда, когда все атрибуты содержат атомарные значения, т.е. если в нем соблюдены все свойства отношений.[1]

Фитнес клуб (Название фитнес клуба*, директор, телефон, адрес, название зала*, номер зала, внутренний телефон, номер группы*, уровень группы, помесячная оплата, код посетителя*, ФИО посетителя, домашний адрес, год рождения, оплата (оплатил клиент занятия или нет (да/нет)), домашний телефон, код социального положения*, наименование социального положения, льгота, ФИО тренера*, домашний адрес тренера, телефон, № паспорта, разряд, номер дня недели*, название*, начало работы, конец работы).

Вторая нормальная форма.

Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждый неключевой атрибут полностью зависит от первичного ключа.[3]

Фитнес клуб (Название фитнес клуба*, директор, телефон, адрес);

Залы (название зала*, номер зала, внутренний телефон, номер группы*, уровень группы, помесячная оплата, код посетителя*, ФИО посетителя, домашний адрес, год рождения, оплата, телефон, код социального положения*, наименование социального положения, льгота, ФИО тренера*, домашний адрес тренера, телефон, № паспорта, разряд, номер дня недели*, название*, начало работы, конец работы).

Третья нормальная форма.

Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и не имеет транзитивных зависимостей.[2]

Выделим новую сущность Залы(название зала*, номер зала, внутренний телефон)

Выявим транзитивные зависимости:

1)

Название зала ФИО тренера Адрес

Название зала Адрес

Название зала ФИО тренера Телефон

Название зала Телефон

Название зала ФИО тренера № паспорта

Название зала № паспорта

Название зала ФИО тренера Разряд

Название зала Разряд

Название зала ФИО тренера Название дня неделиНачало работы

Название зала Название дня недели

Название зала ФИО тренера Название дня неделиКонец работы

Название зала Название дня недели

Так как все атрибуты транзитивно зависят от названия зала, выделяем новую сущность.

Тренер (ФИО тренера*, домашний адрес тренера, телефон, № паспорта, разряд, название рабочего дня недели, начало работы, конец работы).

2) Название зала Номер группыУровень группы

Название зала Уровень группы

Название зала Номер группыпомесячная оплата

Название зала Помесячная оплата

Так как все атрибуты транзитивно зависят от названия зала, выделяем новую сущность.

Группы (номер группы*, уровень группы, помесячная оплата).

3) Название зала ФИО посетителя Адрес

Название зала Адрес

Название зала ФИО посетителя Год рождения

Название зала Год рождения

Название зала ФИО посетителя Оплата

Название зала Оплата

Название зала ФИО посетителя Телефон

Название зала Телефон

Название залаФИО посетителяНаименование социального положенияЛьгота

Название зала Наименование социального положения

Так как все атрибуты транзитивно зависят от названия зала, выделяем новую сущность.

Посетитель (ФИО посетителя*, домашний адрес, год рождения, оплата, домашний телефон, наименование социального положения, льгота).

Четвертая нормальная форма

Отношение находится в четвертой нормальной форме в том и только в том случае, если оно находится в третьей нормальной форме и не существует многозначной зависимости между атрибутами.

1)

ФИО посетителя>Наименование социального положения

ФИО посетителя>Льгота

Выделяем сущности:

Посетитель (ФИО посетителя*, домашний адрес, год рождения, оплата, домашний телефон).

Социальное положение(наименование социального положения*, льгота)

2)

ФИО тренера>название дня недели

ФИО тренера>начало работы

ФИО тренера>конец работы

Выделяем сущности:

Тренер (ФИО тренера*, домашний адрес тренера, телефон, № паспорта, разряд)

День недели (название рабочего дня недели*, начало работы, конец работы).

2. Описание сущностей

Сущность – это набор объектов реального мира.[2]

Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации или числовой характеристики сущности.[3]

Все подробное описание сущностей и их атрибутов представлено в таблице 1.

Таблица 1.

Название сущности

Описание сущности

Наименование атрибутов

Описание атрибутов

Фитнес клуб

Каждый филиал фитнес клуба (фитнес комплекса) существует как отдельный клуб, в который и приходят посетители, где он выбирает вид занятия для себя, после чего посетителя определяют в группу, соответствующую его уровню подготовки

Название

Название данного филиала(фитнес клуба)

Директор

Фамилия Имя Отчество директора, который заведует данным филиалом.

Телефон

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

Адрес

Адрес по которому расположен данный филиал(фитнес клуб)

Залы

В каждом фитнес клубе находятся залы, в которых проводятся занятия, тренеровки, лекции по фитнесу и пр.

Название

Наименование зала, соответствующее его назначению

Номер

Номер зала, по которому можно найти его в фитнес клубе

Внутренний телефон

Телефон, по которому можно связаться с данным залом находясь в стенах данного клуба

Группы

В соответствие с физической подготовкой, и состоянием здоровья посетителя, его определяют в группу, которая занимается по определенной, индивидуально составленной программе

Номер группы

Номер группы, к которой относится данный посетитель

Уровень группы

Посетителя определяют в ту или иную группу в соответствие с его физической подготовкой состоянием здоровья, которые подразделяются на уровни

Помесячная оплата

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

Посетитель

Каждый посетитель, определенный в подходящую для него группу, в соответствии со своим социальным положением (студент, пенсионер и т.д.) и статусом в клубе (статус определяется длительностью посещения клуба) может иметь права на некоторые льготы по оплате за занятия, предоставляемые фитнес клубом

ФИО

Фамилия Имя Отчество посетителя

Адрес

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

Год рождения

Год рождения посетителя

Телефон

Контактный телефон посетителя, который может понадобится при необходимости связи с посетителем

Оплата

оплатил клиент занятия или нет (да/нет)

Социальное положение

Социальное положение посетителя

Наименование

Наименование социального положения, его вид, в соответствие с которым определяется льгота

Льгота

Размер льготы (в процентах)

Тренер

В каждом зале работают тренера по определенному расписанию.

ФИО

Фамилия Имя Отчество тренера.

Адрес

В базе клуба занесен домашний адрес работающих у них тренеров, т. к. дирекции клуба необходимо знать местожительство своих сотрудников.

Телефон

Контактный телефон тренера, который может понадобиться в случае необходимой связи с ними

№ паспорта

Номер паспорта тренера

Разряд

Каждый тренер должен обладать определенным разрядом, говорящем о его квалификации

День недели

Расписание работы тренера на неделю

название

Название дня недели

Начало работы

Время, в которое тренер начинает работать в данный день недели

Конец работы

Время, в которое тренер заканчивает свою работу в данный день недели

2.1. Выявление связи между сущностями

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

1: 1 – каждый экземпляр одного объекта связан не более чем с одним экземпляром другого.

1: М – каждый экземпляр одного объекта связан с несколькими экземплярами другого, но каждый экземпляр второго объекта связан более чем с одним экземпляром первого.

M: N – каждый экземпляр первого объекта связан с несколькими экземплярами второго и наоборот.

В модели данных выявлены связи, описанные в таблице 2.

Таблица 2.

Сущность

Сущность

Тип связи

1

Фитнес клуб

Залы

1:М

2

Залы

Группы

1:М

3

Группы

Посетитель

1:М

4

Социальное положение

Группы

1:М

5

Лечение

Врачебный персонал

1:М

6

Залы

Тренер

1:М

7

Тренер

День недели

1:М

2.2 Построение диаграммы в нотации Чена

Описание предметной области можно представить в модели данных, используя нотацию Чена.

На рисунке 1 изображено представление модели в нотации Чена.

Где:

обозначение сущностей

обозначение связей

обозначение атрибутов

Модель в нотация Чена

*

Фитнес клуб

1

включает

*

*

Тренер

М

включает

Залы

1

Работает

1

*

включает

*

М

М

Группы

День недели

1

Продолжение

Состоят

*

*

М

обладает

1

М

Cоциальное положение

посетитель

2.3. Разбиение связей М:М

Таких связей нет.

3. Описание возможных запросов.

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

7.1 Узнать расписание работы тренеров в залах.

7.2 Узнать должников по оплате.

7.3 Узнать классификационные категории тренеров.

7.4 Просмотреть сумму, которую должен оплачивать посетитель и обладает ли он какими-нибудь льготами.

7.5 Просмотреть в каких клубах работают каждый из тренеров.

7.6 Узнать кто из посетителей не обладает льготами.

7.7 Узнать кто из посетителей старше среднего возраста

3.1. Построение модели данных с помощью Erwin (логический уровень)

Erwin имеет два уровня представления модели – логический и физический.

Логический уровень – это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД.[1]

Диаграмма Erwin строится из трех основных блоков: сущностей, атрибутов и связей.

Основная информация, описывающая сущность, включает:

  • Атрибуты, составляющие первичный ключ;
  • Неключевые атрибуты;
  • Тип сущности (независимая/зависимая).

Первичный ключ – атрибут, который однозначно характеризует объект.

Рассмотрим сущности

Посетитель(ФИО посетителя*, домашний адрес, год рождения, оплата, телефон)

Социальное положение(наименование социального положения*, льгота)

Тренер (ФИО тренера*, домашний адрес тренера, телефон, № паспорта, разряд)

В качестве альтернативного ключа сущности Посетитель выбрана ФИО посетителя, но так как могут встречаться однофамильцы можно взять в качестве первичного ключа – код посетителя. Аналогичная ситуация и с сущностями Тренер и Социальное положение, в качестве первичного ключа тоже возьмем коды тренера и соц. Положения соответственно.

Типы связи

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

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

- Неидентифицирующая связь;

- Идентифицирующая связь;

Модель данных на логическом уровне представлена на рисунке 2.

Логическая модель с атрибутами и связями

3.2. Описание модели данных с помощью Erwin (физический уровень)

Физическая модель данных зависит от конкретной СУБД (в данном случае InterBase), фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. Поскольку стандартов на объекты БД не существует, физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значение, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах – таблицах, колонках, индексах, процедурах и т.д. Разделение модели данных на логический и физический уровни позволяет решить множество важных задач.[1]

На рисунке 3 представлена схема физической модели, а в таблице 3 приведено соответствие между объектами и атрибутами логического и физического уровней.

Таблица 3

Название сущности на логическом уровне.

Название таблиц на физическом уровне

Название атрибутов на логич. уровне

Название полей на физическом уровне

Тип данных

Фитнес клуб

Fitnes_club

Название

club_s_number

CHAR(18)

Директор

Director

VARCHAR(20)

Телефон

Telephone

VARCHAR(20)

Адрес

Adress

VARCHAR(20)

Залы

Halls

Название

Hall_s_name

CHAR(18)

Номер

Namber

VARCHAR(20)

Внутренний телефон

Inner_telephone namber

VARCHAR(20)

Группы

Groups

Номер группы

Group_s_namber

INTEGER

Уровень группы

Group_s_level

VARCHAR(20)

Помесячная оплата

Monthly_pay

INTEGER

Посетитель

Visitor

ФИО

sername_and_name

CHAR(18)

Адрес

Adress

VARCHAR(20)

Год рождения

Year_of_berthday

VARCHAR(20)

Оплата

Pay

VARCHAR(20)

Социальное положение

Social_Condition

Наименование

Denomination

VARCHAR(20)

Льгота

Lgotes

INTEGER

Тренер

Trainer

ФИО

sername_and_name

VARCHAR(20)

Адрес

Adress

VARCHAR(20)

Телефон

Telephone

INTEGER

№ паспорта

Npasport

INTEGER

Разряд

Category

VARCHAR(20)

День недели

Day_s_of_week

название

Name

VARCHAR(20)

Начало работы

Beginning_of_work

VARCHAR(20)

Конец работы

End_of_work

VARCHAR(20)

Запросы

1 Узнать расписание работы тренеров в залах.

Запрос MILA2 таблиц trainer (SURNAME_AND_NAME, HALL_S_NAME),

day_of_week( NAME, BEGINNING_OF_WORK, END_OF_WORK)

2 Узнать должников по оплате.

Запрос MILA3 таблицы visitor( SURNAME_AND_NAME, PAY)

3 Узнать классификационные категории тренеров.

Запрос MILA5таблицы trainer(SURNAME_AND_NAME, CATEGORY)

4 Просмотреть сумму, которую должен оплачивать посетитель и обладает ли он какими-нибудь льготами.

Запрос MILA6 таблиц visitor (SURNAME_AND_NAME), groups (HALL_S_NAME, MOHTHLY_PAY ), social_condition (LGOTES)

5 Просмотреть в каких клубах работают каждый из тренеров.

Запрос MILA9 таблиц halls ( CLUB_S_NUMBER), trainer (SURNAME_AND_NAME)

6 Узнать кто из посетителей не обладает льготами.

Запрос MILA7 запроса mila6 ( SURNAME_AND_NAME, MOHTHLY_PAY, LGOTES)

7 Узнать кто из посетителей старше среднего возраста

Запрос MILA8 таблицы visitor(SURNAME_AND_NAME, YEAR_OF_BERTHDAY)

Рисунок 3

Физическая модель.

Возможные триггеры.

1. Триггер на изменение данных о льготах, размер которых не может превышать 100. При этом, введение большей цифры, чем 100, не будет разрешено и появится окно сообщения, с информацией о том, что льготы, большей чем 100 не бывает

2. . Триггер на изменение данных о категории тренеров, которые могут быть только высшей первой либо второй. Тренера с другими категориями не могут работать в клубе. При вводе иной категории выдается окно сообщения о неправильности ввода категории и ввод информации не происходит

Процедуры.

1.Процедура, в которой по названию клуба выводятся все относящиеся к нему залы.

2.Процедура, в которой по фамилии посетителя можно узнать сумму, которую он должен заплатить за занятия с учетом льгот.

4.Реализация.

4.1. Примеры таблиц

Фитнес клуб

Залы

Группа

Посетитель

Социальное положение

Тренер

День недели

4.2.Примеры запросов, текст SQL запросов

1 Узнать расписание работы тренеров в залах.

CREATE VIEW MILA2(

SURNAME_AND_NAME,

HALL_S_NAME,

NAME,

BEGINNING_OF_WORK,

END_OF_WORK)

AS

select trainer.sername_and_name,trainer.hall_s_name,

day_of_week.name,day_of_week.beginning_of_work,day_of_week.end_of_work

from trainer,day_of_week

where trainer.code_trainer=day_of_week.code_trainer;

2 Узнать должников по оплате.

CREATE VIEW MILA3(

SURNAME_AND_NAME,

PAY)

AS

select visitor.surname_and_name,visitor.pay from visitor

where pay='нет';

;

3 Узнать классификационные категории тренеров.

CREATE VIEW MILA5(

SURNAME_AND_NAME,

CATEGORY)

AS

select trainer.sername_and_name,trainer.category from trainer

4 Просмотреть сумму, которую должен оплачивать посетитель и обладает ли он какими-нибудь льготами.

CREATE VIEW MILA6(

SURNAME_AND_NAME,

HALLS_NAME,

MOHTHLY_PAY,

LGOTES)

AS

select visitor.surname_and_name, groups.hall_s_name,groups.monthly_pay,social_condition.lgotes

from visitor,groups,social_condition

where visitor.group_s_number=groups.group_s_number and visitor.code_social_condition=social_condition.code_social_condition;

5 Просмотреть в каких клубах работают каждый из тренеров.

CREATE VIEW MILA9(

CLUB_S_NUMBER,

SURNAME_AND_NAME)

AS

select halls.club_s_number,trainer.sername_and_name

from halls, trainer

where halls.hall_s_name=trainer.hall_s_name;

6 Узнать кто из посетителей не обладает льготами.

CREATE VIEW MILA7(

SURNAME_AND_NAME,

MOHTHLY_PAY,

LGOTES)

AS

select mila6.surname_and_name, mila6.mohthly_pay,mila6.lgotes

from mila6

where mila6.lgotes='0' ;

7 Узнать кто из посетителей старше среднего возраста

CREATE VIEW MILA8(

SURNAME_AND_NAME,

YEAR_OF_BERTHDAY)

AS

select visitor.surname_and_name,visitor.year_of_berthday from visitor

where year_of_berthday<1960;

4.3. Триггеры, SQL тексты триггеров

1.Триггер на запрещение изменение данных о льготах.

CREATE TRIGGER SOCIAL_CONDITION_BU0 FOR SOCIAL_CONDITION

ACTIVE AFTER UPDATE POSITION 0

as

begin

if (social_condition.lgotes>100) then

exception new_exception1;

end

2. Тригер на запрещение изменения данных о категории тренеров

CREATE TRIGGER TRAINER_BU0 FOR TRAINER

ACTIVE AFTER UPDATE POSITION 0

as

begin

if ( (trainer.category<>'Высшая')and(trainer.category<>'Первая')and(trainer.category<>'Вторая')) then

/* Trigger Text */ exception new_exception;

end

4.4. Примеры процедур, SQL текст процедур

1. По названию клуба вывести все относящиеся к нему залы.

CREATE PROCEDURE CLUB_NAME (

CLUB_NAME CHAR(18))

RETURNS (

CLUB_S_NUMBER CHAR(18),

HALL_S_NAME CHAR(18))

AS

begin

For select club_s_number,hall_s_name

from halls where (halls.club_s_number=:club_name)

Into :club_s_number, hall_s_name

do

suspend;

end

2. По фамилии посетителя узнать сумму, которую он должен заплатить за занятия с учетом льгот

CREATE PROCEDURE FINISH_PAY (

SURNAME CHAR(18))

RETURNS (

SURNAME_AND_NAME CHAR(18),

FINISH_PAY FLOAT)

AS

begin

select mila6.surname_and_name, mila6.mohthly_pay-mila6.mohthly_pay*mila6.lgotes/100

from mila6

where (SURNAME_AND_NAME=:SURNAME)

Into :SURNAME_AND_NAME, :FINISH_PAY;

suspend;

end

Заключение

Результатом выполнения курсовой работы стала спроектированная база данных фитнес клуба. При проектировании базы данных было выполнено полное описание предметной области и её анализ; были выявлены основные объекты и их атрибуты, связи между ними; построение модели в нотации Чена; составление запросов; построение модели в нотации IDEF1x с помощью Erwin на двух уровнях (физическом и логическом); была выполнена генерация в СУБД InterBase; реализовано 2 триггера, 2 процедуры и 7 запросов.

Список использованных источников

  1. Маклаков С.В. BPwin и Erwin. CASE-средства разработки информационных систем. – М.: ДИАЛОГ-МИФИ, 2000 – 256с.
  2. Крёнке Д. Теория и практика построения баз данных. 8-е изд. СПб.:ПИТЕР, 2003 – 800с.
  3. Глушаков С.В., Ломотько Д.В. Базы данных: Учебный курс – Харьков: Фолио; М.: ООО «Издательство АСТ», 2000. – 504с.
  4. http://www.sql.ru/docs/interbase/ibfaq.shtml
  5. http://www.ibase.ru/devinfo/customex.htm