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

Автор: Пользователь скрыл имя, 02 Апреля 2014 в 01:05, курсовая работа

Краткое описание

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

Файлы: 1 файл

Целостность БД.docx

— 3.20 Мб (Скачать)

 

 

    1. ЦЕЛОСТНОСТЬ БАЗЫ ДАННЫХ

 

 

    1. Обеспечение целостности данных

 

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

Целостность БД не гарантирует достоверности содержащейся в ней информации, но обеспечивает, по крайней мере, правдоподобность этой информации, отвергая заведомо невероятные, невозможные значения. Таким образом, не следует путать целостность БД с достоверностью БД. Достоверность (или истинность) есть соответствие фактов, хранящихся в базе данных, реальному миру. Очевидно, что для определения достоверности БД требуется обладание полными знаниями как о содержимом БД, так и о реальном мире. Для определения целостности БД требуется лишь обладание знаниями о содержимом БД и о заданных для неё правилах. Поэтому СУБД может (и должна) контролировать целостность БД, но принципиально не в состоянии контролировать достоверность БД. Контроль достоверности БД может быть возложен только на человека, да и то в ограниченных масштабах, поскольку в ряде случаев люди тоже не обладают полнотой знаний о реальном мире. [3]

Одной из важнейших задач, решаемой СУБД, является поддержание в любой момент времени взаимной непротиворечивости, правильности и точности данных, хранящихся в БД. Этот процесс называется обеспечением целостности базы данных.

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

  Целостность базы данных может быть нарушена в результате сбоя оборудования; программной ошибки в СУБД, операционной системе или прикладной программе; неправильных действий пользователей. Эти ситуации могут возникать даже в хорошо проверенных и отлаженных системах, несмотря на применяемые системы контроля. Поэтому СУБД должна иметь средства обнаружения таких ситуаций и восстановления правильного состояния базы данных.

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

Обеспечение целостности данных гарантирует качество данных в таблице.

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

  1. Сущностная целостность — определяет строку как уникальную сущность в конкретной таблице. Она обеспечивает целостность столбцов идентификаторов или первичного ключа таблицы с помощью индексов и ограничений UNIQUE или PRIMARY KEY.
  2. Доменная целостность  — это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил.
  3. Ссылочная целостность — сохраняет определенные связи между таблицами при добавлении или удалении строк.[4]

В SQL Server ссылочная целостность основана на связи первичных и внешних ключей (либо внешних и уникальных ключей) и обеспечивается с помощью ограничений FOREIGN KEY и CHECK. Ссылочная целостность гарантирует согласованность значений ключей во всех таблицах. Этот вид целостности требует отсутствия ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа.

При обеспечении ссылочной целостности SQL Server не допускает следующих действий пользователей:

  • Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки;
  • Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице;
  • Удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.
  1. Пользовательская целостность — позволяет определять бизнес-правила, не входящие ни в одну из категорий целостности. Поддержку пользовательской целостности обеспечивают все остальные категории целостности: любые типы ограничений уровня столбца и уровня таблицы в инструкции CREATE TABLE, хранимых процедурах и триггерах.[2]

 

 

    1. Ограничения целостности

 

  Ограничения целостности могут определяться: спецификой предметной области (возраст сотрудников организации может находиться в диапазоне от 16 до 80 лет) и непосредственно информационными характеристиками (артикул товара должен быть целым числом).

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

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

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

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

  1. Для поля устанавливается конкретный тип данных: текстовый, числовой, дата/время, логический и т. д.  Это не позволяет вводить, например, в числовое поле текст или даты, в поле с типом данных дата/время – числа.
  2. Домен указывается непосредственно – перечислением входящих в него значений или с помощью указания диапазона допустимых значений.

  Проиллюстрируем процесс создания рассмотренных ограничений целостности для полей на примере СУБД MS Access. Все они легко задаются при формировании структуры таблицы в режиме Конструктора.

  Тип данных создаваемого поля выбирается из предложенного списка доступных типов. При необходимости с помощью свойства поля Размер поля можно уточнить область определения размещаемых в нем данных. Указывается максимальный размер данных, сохраняемых в поле: количество символов для тестовых полей; размеры поля для числовых полей: байт (целое число от 0 до 255), целое (число в диапазоне от минус 32768 до 32768), одинарное с плавающей точкой и т. д.

Частным случаем определения домена можно считать автоматическое (по умолчанию) задание конкретного значения данных в некотором поле (в MS Access свойство поля Значение по умолчанию).

  Некоторые нарушения целостности полей таблиц базы данных СУБД контролирует автоматически. Например, в поле, для которого определен тип данных дата/время, невозможно ввести значения 10.15.05 или 35.01.05.

 В ситуациях, когда  вводимое в некоторое поле  значение данных не соответствует  установленным для этого поля  ограничениям целостности, СУБД  Access выводит на экран сообщение «Введенное значение не подходит для данного поля». Пользователь может самостоятельно создать нестандартный текст этого сообщения с помощью свойства поля Сообщение об ошибке.

  Для полей таблиц могут поддерживаться и другие ограничения целостности.

  1. Контролируется, введены ли данные в поле. Например, в таблице со сведениями о сотрудниках предприятия для каждого сотрудника обязательно должны быть данные о его фамилии и инициалах. В MS Access это ограничение целостности создается для конкретного поля с помощью выбора значения Да свойства Обязательное поле.
  2. Контролируется уникальность значений данных в поле. Если поле является простым первичным ключом таблицы, проверка уникальности значений данных в этом поле выполняется СУБД автоматически. При наличии в таблице вероятных простых ключей, можно исключить ввод в соответствующие поля повторяющихся значений данных. Для этого в MS Access для этих полей в свойстве Индексированное поле устанавливается значение Да (Совпадения не допускаются).[5]

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

               2 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ «КОМПЬЮТЕРНЫЕ ИГРЫ»

 

    1. Анализ предметной области

 

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

 

 

2.2 Построение концептуальной и  логической модели данных

 

На основании условия задачи построим концептуальную схему процесса функционирования данной системы.

Для более детального изучения предметной области можно выделить два информационных объекта ИГРА и ИГРОК, которые будут находиться в отношении многие-ко-многим, то есть игрок может сыграть в несколько игр, а одна и та же игра может быть выбрана игроками неоднократно.  Таким образом, между этими объектами можно определить связь ИГРАЕТ, составленную и  множества пар, в каждой из которых имеется игрок и выбранная им игра. Полученная структура также является информационным объектом, позволяющим вести учет  сыгранных игр. При этом игрок выбирает конкретную игру, имеющую свой уникальный номер, поэтому нет необходимости вносить полную информацию об игре каждый раз, когда ее выбрали, будет достаточно указать ее номер. Из объекта ИГРА можно выделить еще один объект – ВИД_ИГРЫ. Окончательный вариант ER-диаграммы представлен на рисунке 2.1.


                                        1    М                 М      1                     М  1              

 

 

Рисунок 2.1 – ER-диаграмма

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

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

Укрупненная (обобщенная) схема модели задает общий порядок действий без каких-либо уточняющих деталей. Детальная схема модели содержит уточнения, отсутствующие в обобщенной схеме, и показывает, что следует выполнить на каждом шаге и как это выполнить. При ее построении учитывается, что моделирующий механизм имеет блочную структуру. Фактически обобщенная схема — это обобщенный вид блок-схемы, показывающий основные этапы.

Информация о работе Целостность базы данных