Целостность данных

 

Теперь система должна знать, что она работает с двумя информационно связанными файлами (это шаг в сторону схемы базы данных), должна знать структуру и смысл каждого поля. Например, системе должно быть известно, что у полей СЛУ_ОТД_НОМЕР в файле СЛУЖАЩИЕ и ОТД_НОМЕР в файле ОТДЕЛЫ один и тот же смысл – номер отдела.

 

Кроме того, система должна понимать, что в ряде случаев изменение данных в одном файле должно автоматически вызывать модификацию второго файла, чтобы общее содержимое файлов было согласованным. Например, если на работу принимается новый сотрудник, то нужно добавить запись в файл СЛУЖАЩИЕ, а также соответствующим образом изменить поля ОТД_СОТР_ЗАРП и ОТД_РАЗМЕР в записи файла ОТДЕЛЫ, соответствующей отделу этого сотрудника. Более точно, система должна руководствоваться следующими правилами:

 

(1) если в файле СЛУЖАЩИЕсодержится запись со значением поля СЛУ_ОТД_НОМЕР,равным n, то и в файле ОТДЕЛЫдолжна содержаться запись со значением поля ОТД_НОМЕР, также равным n;

 

(2) если в файле ОТДЕЛЫ содержится запись со значением поля ОТД_РУК, равным m, то и в файле СЛУЖАЩИЕ должна содержаться запись со значением поля СЛУ_НОМЕР, также равным m; в следующих лекциях мы увидим, что правила (1) и (2) являются частными случаями общего правила ссылочной целостности: поле СЛУ_ОТД_НОМЕРсодержит “ссылки” на записи таблицы ОТДЕЛЫ, и поле ОТД_РУК содержит “ссылки” на записи таблицы СЛУЖАЩИЕ;

 

(3) при любом корректном состоянии информационной системы значение поля ОТД_СОТР_ЗАРПлюбой записи отд_k файла ОТДЕЛЫдолжно быть равно сумме значений поля СЛУ_ЗАРПвсех тех записей файла СЛУЖАЩИЕ, в которых значение поля СЛУ_ОТД_НОМЕРсовпадает со значением поля ОТД_НОМЕРзаписи отд_k;

(4) при любом корректном состоянии информационной системы значение поля ОТД_РАЗМЕР любой записи отд_k файла ОТДЕЛЫдолжно быть равно числу всех тех записей файла СЛУЖАЩИЕ, в которых значение поля СЛУ_ОТД_НОМЕРсовпадает со значением поля ОТД_НОМЕРзаписи отд_k ; в следующих лекциях мы увидим, что правила (2) и (3) представляют собой примеры общих ограничений целостности базы данных.

 

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

 

Уже только требование поддержания согласованности данных в нескольких файлах не позволяет при построении информационной системы обойтись библиотекой функций: такая система должна обладать некоторыми собственными данными (их принято называть метаданными), определяющими целостность данных. В нашем примере информационная система должна отдельно сохранять метаданные о структуре файлов СЛУЖАЩИЕи ОТДЕЛЫ, а также правила, определяющие условия целостности данных в этих файлах (принято считать, что правила также составляют часть метаданных).