Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример разработки базы данных общежитие.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.49 Mб
Скачать

3.2 Программная реализация поставленной задачи Средства поддержания целостности данных

Установленные отношения между таблицами могут быть использованы для задания целостности данных. Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Целостность (от англ. integrity – нетронутость, неприкосновенность, сохранность, целостность) – понимается как правильность данных в любой момент времени [10, 14].

Существует 3 группы целостности:

  • целостность по сущностям

  • целостность по ссылкам

  • целостность, определяемая пользователем

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

2. Для определения условий целостности данных по ссылкам в окне конструктора базы данных выбирается команда Edit Referential Integrity. В открывшемся окне конструктора условий целостности данных указываются все установленные отношения между таблицами. Таблица описания условий содержит наименование родительской и дочерней таблиц, наименования индексов, используемых для связи, а также типы действий, выполняемых при модификации данных, добавлении и удалении записей. По отношению к данному проекту были выставлены следующие условия целостности:

Рисунок 3.1. Построитель ссылочной целостности

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

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

Таблица «Документ_на_вселение»:

- поле «дата_вселения=>дата_подписания», иначе выводится сообщение "Некорректная дата!"

- поле «дата_выселения=>дата_вселения», иначе выводится сообщение "Некорректная дата!"

Таблица «Студенты»:

- поле «курс <4 AND курс>0», иначе выводится сообщение «Недопустимый курс проживания в общежитии!»

Описание запросов к базе данных

Запросы предназначены для выборки нужных данных из одной или нескольких связанных таблиц [13]. Запрос может быть сформирован по образцу (QBE) или с помощью языка структурированных запросов SQL. Запросы должны быть сформулированы на естественном языке и выражены в терминах реляционной алгебры.

В данной работе используются следующее типы запросов:

  1. Простая выборка (с упорядочиванием данных);

-Показать список всех комнат.

σ (комната.номер_комната, комната.номер_корпус,комната.кол_своб_мест,комната.кол_мест)

thisform.pageframe1.page1.grid1.recordsource = 0

SELECT комната.номер_комната, комната.номер_корпус,комната.кол_своб_мест,комната.кол_мест ;

FROM "общежитие!комната";

into cursor temp;

ORDER BY комната.номер_комната

thisform.pageframe1.page1.grid1.recordsource = "temp"

  1. Выборка с условием;

-Вывести список комнат со свободными местами.

σ кол_своб_мест > 0(комната)

thisform.pageframe1.page1.grid1.recordsource = 0

SELECT* FROM "общежитие!комната";

into cursor temp;

WHERE комната.кол_своб_мест > 0

thisform.pageframe1.page1.grid1.recordsource = "temp"

- Показать список студентов без регистрации.

σ наличие_регистрации= "нет" (студенты)

thisform.pageframe1.page1.grid1.recordsource = 0

SELECT* FROM "общежитие!студенты";

into cursor temp;

WHERE студенты.наличие_регистрации= "нет"

thisform.pageframe1.page1.grid1.recordsource = "temp"

- Найти студентов по фамилии.

σ фамилия = ThisForm.pageframe1.page1.Combo1.value (студенты)

thisform.pageframe1.page1.grid1.recordsource = 0

SELECT студенты.фамилия, студенты.имя,студенты.отчество,;

студенты.факультет,студенты.курс;

FROM "общежитие!студенты";

into cursor temp;

WHERE студенты.фамилия = ThisForm.pageframe1.page1.Combo1.value

thisform.pageframe1.page1.grid1.recordsource = "temp"