Что такое целостность данных. Ограничения целостности данных. Определения из стандартов

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

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

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

Третье ограничение целостности базы данных — целостность данных. Таблицы в базе данных редко бывают одни - другие таблицы часто ссылаются на них, и они ссылаются на другие таблицы. Если администратор ввёл команды для одной таблицы ссылаясь на другую, но во второй таблице данные указаны неправильно или не существуют, то это приводит к ошибкам обработки. Ссылочная целостность проверяет все ссылки действительны они или нет.

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

2.4. Понятие «целостность данных»

Выполнение операторов модификации данных в таблицах базы данных INSERT , DELETi и UPDATE может привести к нарушению целостности данных и их корректности, т.е. к потере чх достоверности и непротиворечивости.

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

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

- обязательные данные;

- ограничения для доменов полей;

- корпоративные ограничения;

- целостность сущностей;

- ссылочная целостность.

Обязательные данные

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

Ограничения для доменов полей

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

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

Целостность сущностей

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

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

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

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

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

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

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

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

2. Удаление строки из дочерней таблицы. Никаких нарушений ссылочной целостности не происходит.

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

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

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

NO ACTION . Удаление строки из родительской таблицы запрещается, если в дочерней таблице существует хотя бы одна ссылающаяся на нее строка.

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

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

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

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

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

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

Уровень поддержания целостности данных в разных системах существенно варьируется.

Идеология архитектуры Klient – сервер требует переноса максимально возможного числа правил целостности данных на сервер. К преимуществам такого подхода относятся:

- гарантия целостности базы данных, поскольку все правила сосредоточены в одном месте (в базе данных);

- автоматическое применение определенных на сервере ограничений целостности для любых приложений;

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

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

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

К недостаткам хранения ограничений целостности на сервере можно отнести:

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

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

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

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

Некоторые даже слышали три таинственных слова «конфиденциальность, целостность и доступность», но не многие понимают, что все это означает и зачем все это нужно. Сюда относятся и многие ИТ - специалисты не говоря уже про людей далеких от ИТ.

Хотя в мире, где все основано на информационных технологиях, должны понимать что такое «информационная безопасность». Информационная безопасность – это не только антивирус и файрвол, информационная безопасность это целый комплекс мер.

На Хабре начинается серия публикаций по информационной безопасности, в этих публикациях будут рассмотрены многие важные аспекты ИБ, такие как: конфиденциальность, целостность и доступность; уязвимости в программных продуктах (также обсудим черный рынок 0-day уязвимостей и эксплоитов); технические меры защиты; организационные меры (политики, процедуры, инструкции); модели доступа; стандарты и законы в области ИБ. А также обсудим другие очень интересные вещи. Как и любой другой предмет начнем с самых основ, то есть теории.

Недавно в Твитере развернулись нешуточные страсти по «бумажной» и «практической» безопасности. Здесь будут рассмотрены как «бумажная» так и «практическая» безопасность, хотя, по моему мнению, эти две составляющие нельзя делить. Если речь идет о серьезном подходе «практика» не может существовать без «бумаги», так как для начальства, аудиторов в первую очередь важны бумажные отчеты Вашей работы. Не говоря уже про такие стандарты ISO и PCI DSS, которые требуют утвержденные руководством «бумажной безопасности».

Конфиденциальность, целостность и доступность.
Именно эти три слова служат прочным фундаментом информационной безопасности. Хотя многие считают что эта «триада» уже устарела, но об этом позже. Чтобы лучше понять значение этих слов необходимо представить следующую картину: три человека обхватили друг друга руками, и каждый сильно откинулся назад, если один из них отпустит руку другого то все упадут. Информационная безопасность достигается соотношением именно этих трех свойств, если у информации нету, хотя бы одной из этих свойств о безопасности говорить не приходиться. Каждая из этих свойств «триады» обеспечивается рядом мер, причем для обеспечения одного свойства необходимо использовать не одно, а несколько мер. Любая информация обладает, так или иначе, всеми тремя свойствами, давайте разберем каждое значение их этой триады.

Конфиденциальность – свойство информации, гарантирующее, что доступ к информации имеет доступ только определенные лица.

Например. В фирме «Рога и копыта» есть информация, а именно отчет о продажах. Доступ имеют только сотрудники отдела продаж и бухгалтерии. Причем сотрудники отдела продаж имеют ко всей информации (более подробно будет описано ниже), а бухгалтерия только к окончательным расчетам (чтобы рассчитать налоги с продаж.).

Таким образом, конфиденциальность означает не только доступ к информации, но и разграничение доступа к информации, то Петров имеет доступ к одной части информации, Сидоров ко второй, а Иванов ко всей информации.

Целостность – свойство информации, гарантирующее, что только определенные лица могут менять информацию.

Например. Продолжим пример с фирмой «Рога и Копыта» и с их отчетом по продажам. Как было ранее сказано Отдел продаж имеет доступ ко всей информации, а бухгалтерия только к определенной части. Но для безопасности это еще мало. Необходимо еще и разграничить доступ среди Отдела продаж.

Внимание!

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

Фирма «Рога и Копыта» создала и отправила платеж по ДБО в свой банка, однако хакер Вася перехватил платеж и в поле получателя вставил номер своего счета. Это прямое нарушение целостности. Чтобы такого не произошло необходимо предпринимать ряд мер, к примеру, ЭЦП.

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

Например. Генеральный директор фирмы «Рога и Копыта» в понедельник утром пришел на работу, включил компьютер и с удивлением обнаружил, что не может открыть базу отдела продаж по продажам.

Так что же произошло? Элементарно, Ватсон! В воскресенье ночью в потолке прорвало трубу, вода попала в компьютер, где хранилась база, и жесткий диск благополучно сгорел.

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

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

Продолжение следует.

Источник: https://habrahabr.ru/sandbox/57903/

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

Классификация и способы нарушения целостности информации (данных)

По характеру нарушение целостности информации (данных) рассматривают:

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

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

Об объекте воздействия

Отдельная группа риска – сведения, представляющие финансовый интерес.

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

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

Откуда исходит угроза?

  1. Противоправная деятельность киберпреступников.
  2. Саботаж сотрудниками компании.
  3. Некорректная работа программного обеспечения или оборудования.

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

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

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

Анализ рисков

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

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

Помимо этого, существуют дополнительные способы сохранить информацию.

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

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

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

Что не в последнюю очередь связано с громкими скандалами и судебными исками от покупателей к известным компаниям (Microsoft), выпустившим ПО, которое привело к потере ценных сведений. Поэтому заметна тенденция дополнительных страховок.

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

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

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

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

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

Таким образом, анализ угроз сводится к ряду моментов:

  • наличию системы резервирования;
  • состоянию ПО;
  • проверке антивирусной защиты;
  • техническому состоянию машины;
  • компетентности пользователя.

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

Источник: https://www.anti-malware.ru/threats/information-integrity-violation

Информация и её свойства

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

Информация как одна из базовых понятийных категорий современного мира имеет многоаспектное представление в достаточно обширной литературе на эту тему.

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

Понятие информации

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

Понятие информации тесно связано с процессом познания. Информация является отражением материального мира, его объектов – материальных носителей информации.

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

Образ объекта фиксируется на языке, понятном принимаемой стороной.

Информация не существует без своих материальных носителей (объектов). В то же время она обладает свойством инвариантности по отношению к объекту – носителю информации.

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

В современных информационных технологиях используется понятие «данные».

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

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

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

Основные характеристические свойства информации

Основными свойствами информации, характеризующими её состояние и качество (характеристические свойства), являются:

достоверность;

актуальность;

целостность;

полнота;

ценность;

защищённость;

безопасность.

Достоверность

Свойство достоверности может быть интерпретировано в различных приложениях.

Достоверность – свойство информации быть правильно воспринятой; или вероятность отсутствия ошибок (в документе, массиве данных, сообщении).

Достоверность данных – степень соответствия данных, хранимых в памяти компьютера или в документах, реальному состоянию отображаемых ими объектов предметной области.

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

Достоверность передачи информации – степень соответствия принятого сообщения переданному сообщению.

Актуальность

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

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

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

Целостность

Внимание!

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

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

Целостность данных считается сохранённой, если данные не искажены и не разрушены.

В криптографии при шифрованной передаче данных иногда понятия целостности и имитостойкости сообщений являются синонимами.

Полнота

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

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

Ценность

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

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

Этот показатель качества необходимо отличать от показателя «цена», когда информация становиться информационным продуктом и участвует как товар в рыночных отношениях.

Специальные свойства информации

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

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

Безопасность – свойство информации, которое исключает деструктивное влияние её на решение задач, в которых она используется непосредственно как расчётная субстанция или в качестве информационно-аналитической поддержки. Это означает, что данная информация должна обладать свойствами достоверности , актуальности , целостности , полноты , ценности или, по крайней мере, необходимым и достаточным набором этих свойств.

Источник: https://megalektsii.ru/s47355t1.html

Тонкая грань между целостностью и доступностью

Сижу, читаю драфт государственного стандарта «Информационные системы и объекты информатизации. Угрозы безопасности информации. Общие положения». И вот такой пассаж бросился в глаза:

Угрозы нарушения целостности защищаемой информации направлены на ее уничтожение и/ или модификацию.

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

На мой взгляд здесь классическая ошибка, связанная с наличием тонкой грани между понятиями свойств «целостности» и «доступности» информации.

Разве уничтожение информации (угрозы нарушения целостности согласно первому определению) не приводит к исключению возможности использования этой информации ее обладателем (из второго определения для угроз доступности) ? Приводит!

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

Может быть я конечно говорю банальные вещи, но есть специалисты, которые в этом вопросе по-прежнему путаются.

В качестве подтверждения давайте посмотрим на определения свойств «целостности» и «доступности» в различных документах:

— ISO 27001

доступность: свойство, заключающееся в доступности и применимости для авторизованных субъектов, когда потребуется;

целостность: свойство, заключающееся в обеспечении точности и полноты ресурсов.

— ГОСТ Р 50922 2006. Защита информации. Основные термины и определения

целостность: Состояние информации, при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право

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

— Базовая модель угроз безопасности ПДн от ФСТЭК (документ от 2008 г.)

целостность информации: состояние информации, при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.

определения доступности нет.

— СТО БР ИББС

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

целостность информационных активов: Свойство ИБ организации банковской системы Российской Федерации сохранять неизменность или исправлять обнаруженные изменения в своих информационных активах.

Можно увидеть, что все определения очень схожи. И это только подтверждает то, что когда мы говорим о целостности, то речь идет именно о внесении несанкционированых изменений. Если же изменения приводят к тому, что исходная информация становится абсолютно неинформативной (уж простите за тафталогию), то тут мы уже имеем дело с нарушением доступности.

Надеюсь что разработчики ГОСТа в ТК-362 учтут этот момент и внесут соответствующие поправки в документ.

Источник: http://secinsight.blogspot.ru/2013/07/blog-post.html

целостность информации | Сайт защиты информации

Кто в наше время не слышал об информационной безопасности?

Слышали наверное все от домохозяек до топ-менеджеров ведущих компаний. Если кто-то поспорит о «домохозяйках», спросите Вашу жену или дочку, когда у них последний раз угоняли аккаунт от «Контактов» или «Одноклассников».

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

Так вот, хочется сказать, что немало топ-менеджеров не ушли в своем восприятии вопросов информационной безопасности дальше домохозяек. Возьмем простой пример: у кого в компании на рабочем компьютере есть административные права? Правильный ответ – у IT и топ-менеджмента. И если есть надежда, что у IT хвати ума не работать под административными правами, то про топов этого не скажешь.

Почему возникла такая ситуация?

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

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

А это, в отличии от финансов и больших цифр прибыли, понимает далеко не каждый руководитель.

Что вкладывает среднестатистический человек в понятие информационная безопасность?

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

— это противодействие вирусам;

— это охрана от разглашения коммерческих и других секретов;

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

И очень мало кто представляет, что значит информационная безопасность в самом деле.

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

Целостность информации – это такое ее свойство, которое состоит в том, что информация не может быть изменена (сюда входит и удалена) неуполномоченным на то субъектом (это может быть и человек, и компьютерная программа, и аппаратная часть компьютера, и любое другое воздействие типа сильного магнитного излучения, наводнения или пожара) . Для многих будет открытие, что под вопросы информационной безопасности попадает случай, когда жена стерла Вашу любимую игрушку. Или если Вы ее случайно стерли сами. А если Вы потеряли флешку со скачанными с интернета фотографиями? Или неправильно поставили дату в важном деловом письме? Все это – целостность информации.

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

Так вот, это случаи, когда Вы пришли в железнодорожную кассу или в магазин, или в банк, а вам говорят, что в ближайшие пол-часа Вас обслужить не могут, потому что висит «Экспресс», «1С», клиент-банк… Список можно продолжать.

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

Так вот – все эти товарищи экономят на информационной безопасности и не обеспечивают должного уровня доступности информации. Это же можно сказать и про Microsoft, когда вспоминаешь песню про «зависшую винду».

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

Как Вы думаете, должен ли специалист по информационной безопасности разбираться в юриспруденции? «Зачем попу гармонь»,- скажете Вы и опять не угадаете. Изучение и составление нормативных документов – одна из важных аспектов работы информационной безопасности.

А кто, по вашему будет собирать доказательства в компании, где произошло преступление, связанное с информацией.

Внимание!

Милиция? Вы большой оптимист, если думаете, что там надеться хотя бы один специалист, который сможет посмотреть журнал аудита Windows и найти там что-то для себя понятное.

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

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

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

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

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

Обеспечение целостности данных и хранимые процедуры

Под термином «целостность данных» мы будем понимать такое состояние базы данных, когда все хранящиеся в ней данные верны. Если происходит сохранение в базе неверных данных, то говорят, что целостность данных потеряна. В этом разделе мы опишем различные методы поддержания целостности данных и типы целостности, определенные в базах данных SQL Server, а также различные типы ограничений, которые служат для реализации целостности данных и способах реализации этих ограничений в базе данных.

В таблицах SQL Server может быть определен ряд свойств различного типа, обеспечивающих целостность данных. К ним относятся типы данных, определения NOT NULL и DEFAULT , свойства IDENTITY , ограничения, правила, триггеры и индексы.

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

Обеспечение целостности данных гарантирует их качество. Предположим, что мы создали в базе данных таблицу Persons . Значение столбца PersonId должно уникально идентифицировать каждую персону, сведения о которой занесены в таблицу. Таким образом, если значение PersonId некоей персоны равно 834, то ни для какой другой персоны это значение не может быть таким же. Далее предположим, что имеется столбец PersonRating , в котором определяется рейтинг персон - в диапазоне от 1 до 10. В этом случае столбец PersonRating не должен допускать ввода ни числа 11, ни каких-либо иных значений, кроме чисел из интервала от 1 до 10. В обоих случаях для обеспечения целостности данных следует применять один из методов, поддерживаемых SQL Server.

Среди методов SQL Server, предназначенных для обеспечения целостности данных, - определения NOT NULL и DEFAULT , свойства IDENTITY , ограничения, правила, триггеры и индексы. Некоторые из них уже упоминались, здесь же приводится их краткое описание. Некоторые свойства таблицы, например определения NOT NULL и DEFAULT , иногда считают ограничениями особого типа. Однако в соответствии с задачами нашего курса, они рассматриваются отдельно от ограничений.

Тип данных - это атрибут, который определяет тип (символьный, целочисленный, двоичный и т. д.) данных, которые могут храниться в поле, параметре или переменной. SQL Server поддерживает несколько системных типов данных, на основе которых можно создавать пользовательские типы данных. Системные типы данных определяют все типы данных, которые можно применять в SQL Server. Типы обеспечивают целостность данных, поскольку вводимые данные должны соответствовать типу, заданному для объекта.



Например, нельзя хранить фамилию в столбце, для которого определен тип данных datetime , поскольку столбец с таким типом данных допускает лишь ввод дат.

Задавая возможность ввода в поле пустых значений, мы определяем, могут ли в этом столбце таблицы храниться пустые значения. Пустое значение отличается от нуля, пробела или символьной строки нулевой длины, например «». Пустое значение означает, что информация не введена, то есть значение не известно или не определено. Возможность ввода в столбец пустых значений задается при определении этого столбца во время создания таблицы или ее модификации. Из-за сложностей, связанных с обработкой пустых значений в SQL Server, в определении столбцов как допускающих, так и не допускающих ввода пустых значений всегда следует использовать ключевые слова NULL или NOT NULL . Если столбец допускает пустые значения, используется ключевое слово NULL , если нет - NOT NULL .

Значения по умолчанию задают значения, которые будет использованы, если при добавлении строки значение поля не задано. Определения DEFAULT создают при определении таблицы (как часть этого определения) или добавляют к уже существующей таблице. В любом столбце разрешено только одно определение DEFAULT.

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

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

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

Сначала следует создать правило с помощью оператора CREATE RULE . После этого при помощи системной хранимой процедуры sp_bindrule его привязывают к столбцу или пользовательскому типу данных. Подробнее об использовании CREATE RULE или sp_bindrule - в справочнике по Transact-SQL в SQL Server Books Online.

Триггеры - это особый класс хранимых процедур, автоматически запускаемых при выполнении операторов UPDATE , INSERT или DELETE для таблицы или представления. Триггеры представляют собой мощный инструмент, применяемый для автоматической реализации бизнес-логики при модификации данных. Триггеры способны расширить логику проверки целостности, реализуемую ограничениями, умолчаниями и правилами SQL Server (хотя во всех случаях, когда ограничения способны обеспечить необходимую функциональность, следует использовать их вместо триггеров).

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

Типы целостности данных

SQL Server поддерживает четыре типа целостности данных: сущностную, доменную и ссылочную целостность, а также целостность, определяемую пользователем.

В некоторых источниках определяется больше (или меньше) четырех типов целостности данных. Однако четыре указанных типа обычно считаются главными типами целостности данных.

Сущностная целостность

Этот тип целостности определяет строку таблицы как уникальный экземпляр некоторой сущности. Сущностная целостность обеспечивает целостность столбца с идентификатором или первичного ключа таблицы (посредством индексов, ограничений UNIQUE , PRIMARY KEY или свойств IDENTITY ).

Доменная целостность

Этот тип целостности гарантирует наличие в некотором столбце только допустимых значений. Можно обеспечивать доменную целостность, ограничивая тип (посредством типов данных), формат (с помощью ограничений CHECK и правил) или диапазон допустимых значений (с помощью ограничений FOREIGN KEY и CHECK, определений DEFAULT, определений NOT NULL и правил).

Ссылочная целостность

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

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

Добавление записей в связанную таблицу, если нет необходимой записи в главной таблице;

Изменение значений в главной таблице, в результате которого в связанной таблице останутся «зависшие» записи;

Удаление записей из главной таблицы при наличии связанных записей во внешней таблице.

Конструкция FROM

Конструкцию FROM необходимо помещать в каждом операторе SELECT , который извлекает данные из таблиц или представлений. Эта конструкция позволяет задать список таблиц и представлений, на столбцы которых ссылаются список выбора и конструкция WHERE . Этим таблицам и представлениям могут быть присвоены псевдонимы в конструкции AS . Конструкция FROM , кроме того, позволяет соединять таблицы, задавая условия соединения в конструкции JOIN .

Конструкция FROM представляет собой список имен таблиц, представлений и конструкций JOIN , разделенных запятыми. В следующем примере в операторе SELECT конструкция FROM задает таблицу Persons :

SELECT * FROM Persons

Конструкцию FROM также используют и для определения соединений между двумя таблицами или представлениями. О соединениях более подробно рассказано в следующем разделе.

Конструкции WHERE, GROUP BY и HAVING

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

SELECT PersonId, LastName, FirstName

WHERE BirthPlace = "Krasnoyarsk"

Конструкция HAVING , как правило (но не обязательно), используется вместе с конструкцией GROUP BY . Конструкция HAVING задает дополнительные фильтры, которые применяются после завершения фильтрации, определяемой конструкцией WHERE . В следующем сценарии в операторе SELECT использованы конструкции WHERE , GROUP BY и HAVING :

SELECT OrdD1OrderId AS OrderId,

SUM(OrdD1.Quantity) AS "Units Sold",

SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue

FROM AS OrdD1

WHERE OrdD1OrderId IN (SELECT DISTINCT OrdD2.OrderId

FROM AS OrdD2

WHERE OrdD2.UnitPrice > $1000)

GROUP BY OrdD1.OrderId

HAVING SUM(OrdD1.Quantity) > 50

Здесь конструкция WHERE возвращает заказы, стоимость которых больше $1000, а далее конструкция HAVING ограничивает результат, отбирая заказы на более чем 50 единиц товара. Конструкция GROUP BY ограничивает строки для каждого конкретного значения поля OrderId .

Конструкция GROUP BY

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

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

Если в операторе SELECT имеется конструкция GROUP BY , SQL Server налагает ограничения на элементы списка выбора. В списке выбора могут быть лишь те группирующие столбцы и выражения, которые возвращают только одно значение для каждого значения группирующих столбцов, например агрегатные функции (векторные агрегаты), одним из параметров которых является имя столбца.

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

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

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

Понимание верной последовательности, в которой применяются конструкции WHERE , GROUP BY и HAVING , помогает создавать достаточно эффективные запросы:

Конструкция WHERE фильтрует строки, которые являются результатом операций, заданных в конструкции FROM;

Выходная информация конструкции WHERE группируется с помощью конструкции GROUP BY;

Строки сгруппированного результата фильтруются средствами конструкции HAVING .

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

Конструкция ORDER BY

Конструкция ORDER BY сортирует результат запроса по одному или нескольким полям. Сортировка может быть как по возрастанию (ASC ), так и по убыванию (DESC ). Если не задан ни один из видов сортировки, по умолчанию предполагается ASC . Если в конструкции ORDER BY названо несколько столбцов, выполняется вложенная сортировка.

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

SELECT PersonId, LastName, FirstName, Age

ORDER BY LastName DESC, FirstName, Age

Пакеты, хранимые процедуры и триггеры

Пакет - это группа из одного или нескольких операторов Transact-SQL, которые приложение одновременно посылает на SQL Server для исполнения. SQL Server компилирует операторы пакета в единую исполнимую единицу (план исполнения Execution Plan ). После этого по очереди выполняются операторы этого плана.

Ошибка при компиляции, например синтаксическая, останавливает процесс компиляции плана исполнения. В этом случае ни один из операторов пакета исполнен не будет.

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

Большинство ошибок периода выполнения останавливают исполнение текущего и последующих операторов пакета;

Некоторые ошибки периода выполнения, например нарушения ограничений, останавливают исполнение лишь текущего оператора. При этом все остальные операторы пакета будут исполнены.

Операторы, исполненные до оператора, вызвавшего ошибку периода выполнения, не испытывают на себе влияния этой ошибки. Единственное исключение: если пакет является транзакцией, то при возникновении ошибки транзакция откатывается. В этом случае происходит отмена всех незафиксированных модификаций, сделанных до возникновения ошибки периода выполнения.

Например, пакет состоит из 3 операторов. Если во втором операторе допущена синтаксическая ошибка, ни один из операторов пакета не будет выполнен. Если пакет уже скомпилирован и при исполнении второго оператора происходит сбой, то результат первого оператора остается без изменений (поскольку он уже получен).

При обработке пакетов действуют следующие правила:

Операторы CREATE DEFAULT , CREATE PROCEDURE , CREATE RULE , CREATE TRIGGER и CREATE VIEW не могут соседствовать в пакетах с другими операторами. Пакет должен начинаться с оператора CREATE . Все следующие за ним операторы будут интерпретированы как часть определения, созданного первым оператором CREATE ;

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

Если оператор EXECUTE - первый оператор пакета, ключевое слово EXECUTE не требуется. Но оно необходимо, когда оператор EXECUTE не является первым оператором пакета.

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

Для того чтобы задать пакет, имеется несколько способов.

Все операторы SQL, которые приложение отправляет на сервер как единицу исполнения, составляют единый пакет и генерируют один план исполнения.

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

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

Строка, исполняемая системной хранимой процедурой sp_executesql , - это пакет, при компиляции которого получается один план исполнения.

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

Если оператор пакета вызывает триггер, то план исполнения триггера выполняется отдельно от плана исполнения исходного пакета.

Например, пакет, который содержит следующие четыре оператора, генерирует пять планов исполнения:

Оператор EXECUTE , исполняющий хранимую процедуру;

Вызов процедуры sp_executesql для обработки строки;

Оператор EXECUTE , обрабатывающий строку;

Оператор UPDATE , ссылающийся на таблицу, у которой есть триггер на обновление.

EXEC FirstProcedure

EXEC sp_executesql N"SELECT * FROM AdventureWorks.HumanResources.Employee

WHERE ManagerID = @level",

N"@level tinyint",

SET PersonName = "kuku"

Хранимая процедура - это группа операторов Transact-SQL, которая компилируется один раз и после этого может выполняться многократно. Такая функциональность повышает производительность, поскольку отпадает необходимость в перекомпиляции операторов Transact-SQL.

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

Операторы CREATE PROCEDURE и CREATE TRIGGER не могут располагаться в нескольких пакетах. Другими словами, хранимая процедура или триггер всегда создаются в одном пакете и компилируются в план исполнения.

SQL Server хранит только исходный текст хранимых процедур и триггеров. Когда хранимая процедура или триггер исполняется первый раз, исходный текст компилируется в план исполнения. Если до того, как план исполнения устареет и будет удален из памяти, хранимая процедура или триггер исполняется снова, реляционный механизм обнаруживает существующий план и использует его повторно. Если план устарел и удален из памяти, создается новый план исполнения. Этот процесс напоминает обработку SQL Server всех операторов SQL. Увеличение производительности при применении хранимых процедур и триггеров объясняется постоянством их SQL-операторов, что позволяет SQL Server использовать для них существующие планы исполнения.

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

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

семантический ссылочный целостность ограничение

В ходе разработки фрагмента информационной системы в СУБД MySQL возникает задача обеспечения целостности данных. Рассмотрим само понятие целостности.

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

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

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

Семантическая целостность данных

Семантическая целостность данных - необходимое условие функционирования информационной системы любого типа. Приведем перечень основных ограничений семантической целостности. В качестве примера выберем базу данных «Салон», состоящую из таких таблиц, как «Клиент», «Мастер», «Услуга» в данном параграфе приводятся теоретические способы реализации того или иного ограничения целостности. В главе II будут более подробно рассмотрены практические способы реализации приведенных видов ограничения целостности данных.

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

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

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

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

1) Допустимые значения находятся в заданном интервале. Данное ограничение предполагает, что значение свойства находится в определенном диапазоне значений. Допустим, в салоне красоты существует возрастной ценз работников: мастер не может быть младше 20 и старше 50 лет. Таким образом, ограничение целостности выглядит так «Для каждого объекта класса «Мастер» значение атрибута «возраст» находится в диапазоне 20-50 лет».

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

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

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

Значения свойств «фамилия», «имя», «отчество» имеют следующий вид: первый символ - прописная буква кириллицы, последующие - строчные. Недопустим ввод цифр.

Формат даты рождения клиентов и мастеров, дат посещения салона, а также отпуска или больничного, предоставляемых мастерам - ДД/ММ/ГГ.

5) Запрет на NULL - значение атрибута. Такой вид ограничения распространяется прежде всего на идентификатор объекта, являющийся первичным ключом, а также на те свойства, пустое значение которых недопустимо.

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

6) Ограничение на значения семантически связанных полей. В данном случае на них накладываются определенные условия или функциональные зависимости. Так, в нашей базе данных значения полей «дата начала отпуска» и «дата окончания отпуска» являются семантически связанными: первая дата является меньшей, чем вторая. В этом случае следует сформулировать ограничение целостности в следующем виде: : «Для каждого объекта заданного класса между значениями свойств С1 и С2 должно всегда выполняться условие: С1<С2».

Важным аспектом реализации ограничений семантической целостности является то, что на значение свойства могут накладываться одновременно несколько видов ограничений. Например, значение свойства «возраст» в таблице «Мастер» имеет ограничение по интервалу (20-50 лет), по формату, также возможен выбор значения из списка-интервала.




Top