Что такое целостность данных

Что такое целостность данных

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

Обычно свойство целостности требуется наряду с конфиденциальностью (confidentiality) и доступностью (availability). Иногда к списку необходимых свойств информационной безопасности объекта добавляют неотказуемость (non-repudiation), подотчётность (accountability), аутентичность или подлинность (authenticity), достоверность (reliability).

Определения понятия

В Рекомендациях по стандартизации Р 50.1.053-2005 [1] дается следующее определение:

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

В Рекомендациях по стандартизации Р 50.1.056-2005 [2] определения уточнены и разнесены по объектам приложения:

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

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

В некоторых специализированных стандартах используются собственные определения данного понятия:

Целостность (integrity) [3] — свойство сохранения правильности и полноты активов.

Целостность информации [4] — обеспечение достоверности и полноты информации и методов ее обработки.

Целостность документа [5] — cвойство документа, состоящее в том, что при любой демонстрации документа заданные значения параметров демонстрируемого представления документа соответствуют специфицированным требованиям.

Использование термина

Реализация содержания

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

Основными методами обеспечения целостности информации (данных) при хранении в автоматизированных системах являются:

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

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

При комплексном подходе к защите бизнеса, направление обеспечения целостности и доступности информации (ресурсов бизнес-процессов) перерастает в план мероприятий, направляемых на обеспечение непрерывности бизнеса [6] .

Целостность данных в криптографии

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

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

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

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

Имитовставки

Число двоичных разрядов в имитовставке в общем случае определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных данных равна 1/2 p , где p — число двоичных разрядов в имитовставке.

Имитовставка, является функцией сообщения x, =f(x). Она может служить для целей аутентификации сообщения и проверки его целостности. Поэтому имитовставки можно разделить на два класса:

  • код проверки целостности сообщения (MDC, англ. modification detection code ), для проверки целостности данных (но не аутентификации), вычисляется путем хэширования сообщения;
  • код аутентификации сообщения (MAC, англ. message authentication code ), для защиты данных от фальсификации, вычисляется с помощью хэширования сообщения с использованием секретного ключа.

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

  • необратимость (англ. preimage resistance );
  • стойкость к коллизиям первого рода (англ. weak collision resistance );
  • стойкость к коллизиям второго рода (англ. strong collision resistance ).

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

  • однонаправленные хэш-функции (OWHF, от англ. one-way hash function ), которые удовлетворяют свойству необратимости и устойчивы к коллизиям первого рода;
  • устойчивые к коллизиям хэш-функции (CRHF, от англ. collision resistant hash function ), которые устойчивы к коллизиям первого и второго рода (вообще говоря, на практике CRHF хэш-функции удовлетворяют и свойству необратимости).

Существует три основных типа MDC алгоритмов хэш-функций, по способу их построения:

  • на блочных шифрах — например: алгоритм Matyas-Meyer-Oseas, алгоритм Davies-Meyer, алгоритм Miyaguchi-Preneel, MDC-2, MDC-4;
  • кастомизированные — специально созданные для хеширования алгоритмы, в которых делается упор на скорость, и которые независимы от других компонент системы (в том числе блочных шифров или компонент модульного умножения, которые могут быть уже использованы для других целей). Например: MD4, MD5, SHA-1, SHA-2, RIPEMD-128, RIPEMD-160;
  • на модульной арифметике — например: MASH-1, MASH-2.

К MAC хэш-функциям для вычислений кодов аутентификации сообщений, подсемейству ключевых хэш-функций, относят семейство функций удовлетворяющих следующим свойствам:

  • простота вычисления дайджеста от сообщения;
  • сжатие данных — входное сообщение произвольной битовой длины преобразуется в дайджест фиксированной длины;
  • стойкость ко взлому — имея одну и более пар сообщение-дайджест, (x[i], h(x[i])), вычислительно невозможно получить новую пару сообщение-дайджест (x, h(x)), для какого-либо нового сообщения x.

Если не выполняется последнее свойство, то MAC может быть подделан. Также последнее свойство подразумевает, что ключ невозможно вычислить, то есть, имея одну или более пар (x[i], h(x[i])) с ключом k, вычислительно невозможно получить этот ключ.

Алгоритмы получения кода аутентификации сообщения могут быть разделены на следующие группы по их типу:

  • на блочных шифрах — например: CBC-MAC, RIPE-MAC1, RIPE-MAC3;
  • получение MAC из MDC;
  • кастомизированные алгоритмы — например: MAA, MD5-MAC;
  • на потоковых шифрах — например: CRC-based MAC.

Получение MAC на основе MDC

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

  1. secret prefix method : К последовательности блоков данных =x1x2x3..xn в начало приписывается секретный ключk: k||x. Для данной последовательности данных с помощью итерационной хэш-функции вычисляется MDC, например, такой, что H0=IV (от англ.initial value ), Hi=f(Hi-1,xi) h(x) = Hn. Таким образом, MAC =h(k||x). Минусом такого подхода является то, что третья сторона может дописать в конец последовательности блоков дополнительные данные y: k||x||y. Новый MAC может быть вычислен без знания ключа k: 1 = f(,y).
  2. secret suffix method : Секретный ключ приписывается в конец последовательности данных: x||k. В этом случае MAC =h(x||k). В этом случае может быть применена атака методом дней рождений. При длине дайджеста в n бит. Третьей стороне понадобится порядка 2 n/2 операций, чтобы для сообщения x найти сообщение x’ такое, что h(x)= h(x’). При этом знание ключа k будет не обязательно. Узнав значение MAC для сообщения x, третья сторона сможет сгенерировать корректную пару (x’,).
  3. envelope method with padding : Для ключа k и MDC h вычисляется MAC от сообщения hk(x)=(k||p||x||k), где p — строка, дополняющая ключ k до длины блока данных, для того, чтобы гарантировать, что будет произведено как минимум 2 итерации. Например, для MD5k — 128 бит, а p — 384 бита.
  4. HMAC : Для ключа k и MDC h вычисляется MAC от сообщения hk(x)=(k||p1||h(k||p2||x)), где p1,p2 — различные строки, дополняющие k до длины блока данных. Такая конструкция довольно эффективна, несмотря на двойное использование h.

Схемы использования

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

Обеспечение целостности данных с использованием шифрования и MDC

От исходного сообщения вычисляется MDC, =h(x). Этот дайджест добавляется к сообщению С=(x||h(x)). Затем расширенное таким образом сообщение шифруется каким-то криптоалгоритмом E с общим ключом k. После шифрования полученное сообщение Cencripted передается второй стороне, которая используя ключ, выделяет из шифрованного сообщения данные x’ вычисляет для него значение дайджеста ’. Если он совпадает с полученным , то считается, что целостность сообщения была сохранена. Целью этого шифрования является защита добавленного MDC, чтобы третья сторона не могла изменить сообщение без нарушения соответствия между расшифрованным текстом и восстановленным кодом проверки целостности данных. Если при передаче данных конфиденциальность не является существенной, кроме как для обеспечения целостности данных, то возможны схемы, в которых будут зашифрованы только либо сообщение x, либо MDC.

  • Использование схемы с шифрованием только MDC, (x, Ek(h(x))), фактически приводит к частному случаю MAC. Но в данном случае, что нетипично для MAC, коллизия для данных x, x’ может быть найдена без знания ключа k. Таким образом, хэш-функция должна удовлетворять требованию стойкости к коллизиям второго рода. Так же надо отметить, что существуют такие проблемы: если коллизия найдена для двух значений входных данных при каком-либо ключе, то она сохранится и при изменении этого ключа; если длина блока шифра меньше, чем длина дайджеста, то разбиение дайджеста может привести к уязвимости схемы.
  • Шифрование только данных, (Ek(x), h(x)), дает некоторый выигрыш в вычислениях при шифровании(за исключением коротких сообщений). Как и в предыдущем случае, хэш-функция должна быть устойчива к коллизиям второго рода.

Обеспечение целостности данных с использованием шифрации и MAC

По сравнению с предыдущим случаем в канал посылается сообщение следующего вида: Ek(x||hk1(x)). Такая схема обеспечения целостности имеет преимущество над предыдущей схемой с MDC: если шифр будет взломан, MAC все равно будет обеспечивать целостность данных. Недостатком является то, что используется два различных ключа, для криптоалгоритма и для MAC. При использовании подобной схемы, следует быть уверенным, что какие-либо зависимости между алгоритмом MAC и алгоритмом шифрации не приведут к уязвимости системы. Рекомендуется, чтобы эти два алгоритма были независимыми (например, такой недостаток системы может проявляться, когда в качестве алгоритма MAC используется CBC-MAC, и в качестве схемы шифрования CBC).

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

Неумышленные нарушения целостности

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

Аутентификация и целостность

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

Использование ГОСТ 28147-89

ГОСТ 28147-89 может использоваться в качестве одного из методов по вычислению кодов аутентификации сообщений. Для ГОСТ 28147-89 режим выработки имитовставки выглядит следующим образом:

  1. Исходный текст делится на блоки Ti длиной в 64 бита.
  2. Блоки Ti последовательно подвергаются преобразованию, соответствующему первым 16 раундам работы ГОСТ в режиме простой замены.
  3. После 16 раундов полученное 64-разрядное число прибавляется по модулю 2 к следующему блоку Ti+1 и процедура повторяется.
  4. Последний блок, при необходимости дополняется до 64-бит нулями, к нему прибавляется 64-разрядное число, полученное на предыдущем цикле, и после этого последний блок подвергается преобразованию.
  5. Из получившегося в конце работы конечного 64-битного числа выбирается отрезок в p бит, где p — выбранная длина имитовставки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Целостность на уровне сущности означает обеспечение уникальности экземпляра сущности, т.е., строки в конкретной таблице. Она обеспечивается указанием ограничений целостности PRIMARY KEY или UNIQUE в SQL, или указанием первичного ключа таблицы.

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

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

При обеспечении ссылочной целостности СУБД не допускает следующих действий пользователей.

· Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки.

· Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице.

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

Пример таблиц с нарушением ссылочной целостности:

Студент Дисциплина
Студ_ИД Студ_Фио Студ_рейтинг СтудентДисциплина Дсц_ИД Наим
Иванов Студ_ИД Дсц_ИД Оценка ТАУ
Иванов ОБЖ
Иванова

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

Триггером является хранимая процедура, выполняемая автоматически при возникновении события на сервере. Различают триггеры DML (срабатывающие при попытке изменения данных) и триггеры DDL (срабатывающие при попытке изменить описание данных).

DML-триггеры выполняются по событиям, вызванным попыткой пользователя изменить данные с помощью языка обработки данных. Событиями DML являются процедуры INSERT, UPDATE или DELETE, применяемые к таблице или представлению (View). Триггеры DML используют внутренние логические таблицы, именуемые deleted и inserted. По своей структуре они подобны таблице, на которой определен триггер, то есть таблице, к которой применяется действие пользователя. В таблицах deleted и inserted содержатся старые или новые значения строк, которые могут быть изменены действиями пользователя.

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

· для каскадных изменений в связанных таблицах базы данных;

· для предотвращения случайных или неправильных операций INSERT, UPDATE и DELETE.

При редактировании связанных таблиц в зависимости от заданных ограничений поддержки целостности СУБД может:

· выполнить каскадное (CASCADE) удаление/обновление строк в связанных таблицах;

· не выполнять действий (NO ACTION) по редактированию связанных таблиц.

Учебник / Учебное пособие Раздел Страницы
1. Карпова Т.С. Базы данных: модели, разработка, реализация. — СПб.: Питер, 2001.- 304 с.; ил. Глава 7. 121-134
2. Хомоненко А.Д, Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / под ред. проф. Хомоненко А.Д., 6-ое изд. – М.:Бином-Пресс; СПб.:Корона-Век, 2007.-736с. Гл.5 175 -194
Учебник / Учебное пособие Раздел Страницы
1. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. — М.: Издательский дом “Вильямс”,. 2001. – 1120 с.: ил. 4.3 – 4.5, 6.1 — 6.8 159 – 168, 223 — 240
2. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.;М.; СПб.: Издательский дом “Вильямс”,. 1999. – 848 с.: ил. (7-е и 8-е издание). 9.1 – 9.3, 10.1 – 10.3 271 – 274, 288 – 301

Тема 4. Работа с данными. Язык баз данных

Лекция №4. Основные понятия языка баз данных на примере SQL

В рамках данной лекции рассматриваются нижеследующие вопросы:

· Понятие языка программирования баз данных.

· DML: процедурные и декларативные языки; операции низкого и высокого уровней

· Хранимые и формируемые объекты базы данных

· DML: операторы создания хранимой и виртуальной таблицы, вставки, выборки обновления

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

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

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

Язык SQL, или язык структурированных запросов (Structured Query Language), ориентирован на использование в реляционных СУБД. Он прошел несколько этапов своего развития и первоначально создавался с целью получения языка запросов, приближенного к естественному (английскому). Операторы, или предложения (statements), языка имеют сложную структуру, напоминающую конструкцию сложно-подчиненного предложения, в котором имеются главное и подчиненное (clause) предложения.

Язык SQL является машинно-независимым и декларативным, т.е., описывающим свойства искомого объекта, а не алгоритм его поиска, причем описывающим в машинно-независимом текстовом формате. В настоящее время SQL стандартизован, чтобы его понимали серверы различных производителей.

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

· Data Definition Language (DDL). Язык описания данных. Содержит операторы, позволяющие определять структуру и свойства базы данных, объектов в БД и задавать связи между объектами (например, CREATE TABLE, CREATE VIEW).

· Data Manipulation Language (DML). Язык манипулирования данными. Содержит операторы, предназначенные для обработки данных, т.е. для того, чтобы выбирать, добавлять, удалять и модифицировать данные (SELECT, INSERT, DELETE, UPDATE).

· Transaction Control Language (TCL). Язык управления транзакциями. Операторы этого языка применяются для управления транзакциями, или логическими единицами работы, выполняемыми как атомарная операция.

· Data Control Language (DCL). Операторы языка применяются для осуществления административных функций назначения или отмены разрешений на использование базы данных, таблицы в базе данных, а также выполнения операторов SQL.

· Cursor Control Language (CCL). Операторы используются для определения объекта «курсор», подготовки SQL-предложений для выполнения, а также для некоторых других операторов.

Работа по реализации БД начинают с описания ее схемы на языке DDL.

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

Схема представляет структуру БД: состав, структуру, свойства и связи объектов базы данных.

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

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

· Число столбцов в таблице и тип данных и формат (если это необходимо) каждого столбца.

· Имеются ли столбцы, которые могут принимать значения NULL.

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

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

Сокращенный синтаксис оператора CREATE TABLE показывает структуру описания таблицы, задание ограничений на таблицу и столбцы, а также виды ограничений.

CREATE TABLE имя_таблицы ( < | >[ ] [ . n ] )

::=имя столбца [ ]

::=[ CONSTRAINT имя ограничения ]

[ CLUSTERED | NONCLUSTERED ] | [ FOREIGN KEY ]

REFERENCES [ имя связанной таблицы [ ( связанный столбец ) ]

Рассмотрим примеры применения операторов языка SQL.

1) Таблицы должны находиться в базе данных. Поэтому сначала необходимо создать БД:

CREATE DATABASE TestData;

2) Создание таблицы с данными о студентах:

CREATE TABLE dbo.Students (StudentID int PRIMARY KEY NOT NULL,

StudentName varchar(25) NOT NULL, Stipend money NULL,

StudentDescription text NULL)

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

CREATE VIEW [ имя представления [ (столбец [ . n ] ) ]

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 9285 — | 7461 — или читать все.

Ссылка на основную публикацию
Что такое asus vibe
Файл asusvibe2.0.exe из ASUSTeK Computer Inc является частью AsusVibe2 0. asusvibe2.0.exe, расположенный в c:program files (x86)asusasusvibeasusvibe2.0.exe с размером файла 924336...
Что делать если виснет браузер
Автор Юрий Белоусов · 18.03.2019 Пользователи могут столкнуться с неприятной ситуацией, когда браузер Опера зависает, виснет, подвисает, тормозит, лагает, глючит....
Что делать если винда 10 не запускается
В нашей сегодняшней статье будет рассмотрен ряд случаев, связанных с отказом запуска операционной системы Windows 10 на компьютере или ноутбуке....
Что такое elm agent на андроид
Практически каждый пользователь мобильных устройств, рано или поздно, пытается разобраться в настройках, просматривать установленные приложения и сервисы. При просмотре списка...
Adblock detector