рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Целостность данных - раздел Программирование, Среда Delphi широко известна и не вызывает дополнительных трудностей при изучении и использовании   Термин “Целостность Данных” Относится К Правильности И Полнот...

 

Термин “целостность данных” относится к правильности и полноте информации, содержащейся в БД. Вероятно, корректнее говорить о непротиворечивости данных, поскольку невозможно предотвратить появление неверных данных. При изменении содержимого БД с помощью операторов INSERT, DELETE, UPDATE может произойти нарушение целостности данных. Например, могут возникнуть следующие ситуации:

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

· данные оказались несогласованными (заказ билета на несуществующий рейс);

· внесенные изменения потеряны из-за системной ошибки или сбоя в электропитании;

· изменения внесены частично (учтена выручка от продажи товара, но количество товара на складе не уменьшено; изменена нумерация домов на улице, но остались старые адреса жильцов).

Одной из важнейших задач реляционной СУБД является поддержка целостности данных.

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

1. Обязательность данных. Некоторые столбцы должны содержать значения в каждой строке, то есть не иметь NULL-значений и не оставаться незаполненными. Например, для каждой поставки должен быть указан поставщик. Условие обязательности данных задается в операторе создания таблицы CREATE TABLE.

2. Проверка на правильность. Можно, например, указать СУБД, что значения поля должны находиться в определенном диапазоне. Это условие также задается в операторе CREATE TABLE.

3. Целостность таблицы. Первичный ключ таблицы должен в каждой строке иметь уникальное значение. Свойство уникальности может быть задано и для других полей. Условие задается в операторе CREATE TABLE.

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

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

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

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

1. Добавление новой строки-потомка. Значение внешнего ключа строки-потомка должно быть одним из значений первичного ключа в таблице- предке.

2. Обновление внешнего ключа в строке-потомке. Новое значение внешнего ключа строки-потомка должно быть одним из значений первичного ключа в таблице-предке.

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

4. Обновление первичного ключа в строке-предке - все аналогично предыдущему случаю.

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

1. RESTRICT – запрещает удаление строки из таблицы-предка или корректировку первичного ключа, если строка имеет потомков.

2. CASCADE – при удалении строки-предка все строки-потомки также удаляются из таблицы-потомка. При обновлении первичного ключа в строке-предке значение внешнего ключа обновляется во всех строках-потомках.

3. SET NULL – при удалении или корректировке первичного ключа строки-предка внешним ключам во всех строках-потомках присваивается NULL-значение.

4. SET DEFAULT - при удалении или корректировке первичного ключа строки-предка внешним ключам во всех строках-потомках присваивается значение по умолчании.

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

Каскадные удаления и обновления могут приводить к непредвиденным последствиям. Рассмотрим, например три таблицы A - животные, B – девочки и C – мальчики с одинаковыми полями Name и Likes (любит). Будем считать, что животные любят мальчиков, мальчики – девочек, а девочки – животных. Таким образом, каждая из таблиц является как родительской, так и дочерней. Таблица A является родительской для B и дочерней для C, а B – родительской для C и дочерней для A.

Пусть таблицы имеют следующее содержание.

Таблица 17

Записи таблицы A

Name Likes
Джек Леша
Мурка Петя
Хрюша Толя

 

Таблица 18

Записи таблицы B

Name Likes
Таня Джек
Галя Хрюша
Лена Мурка

 

 

Таблица 19

Записи таблицы C

Name Likes
Петя Галя
Леша Лена
Толя Таня
Стас Галя

 

Предположим, что все правила удаления CASCADE. Удалим запись с данными о Пете из таблицы C. Тогда из таблицы A каскадно удалится запись с информацией о Мурке, потом не останется Лены в таблице B и т. д. Легко проследить, что в итоге произойдет полное удаление содержимого всех таблиц.

Часть внешнего ключа может иметь значения NULL. По стандарту SQL92 в операторе CREATE TABLE можно указать один из двух режимов

· MATCH FULL (полное совпадение) – ни одна часть внешнего ключа не может иметь значение NULL;

· MATCH PARTIAL (частичное совпадение) – часть внешнего ключа может принимать значение NULL.

 

– Конец работы –

Эта тема принадлежит разделу:

Среда Delphi широко известна и не вызывает дополнительных трудностей при изучении и использовании

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Целостность данных

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

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

Двенадцать правил Кодда для реляционных СУБД
В статье, опубликованной в 1985 году [3], Э. Кодд сформулировал двенадцать правил, которым должна соответствовать настоящая реляционная БД. Они являются полуофициальным определением понятия

Нормализация таблиц БД. Первая, вторая и третья нормальные формы
  При проектировании структуры БД естественным желанием бывает минимизировать количество таблиц, а в идеальном случае сосредоточить все данные в одной таблице. Однако это оказывается

Нормальная форма Бойса-Кодда
  Пусть в определенном выше отношении SP присутствует еще и имя поставщика Sname. Будем для удобства считать, что имя однозначно определяет поставщика. Тогда в отношении SP (Sn, Sname

Четвертая нормальная форма
  Рассмотрим таблицу R (Subj, Teach, Book), где Subj – учебный предмет, Teach- преподаватель по этому предмету, Book – книга, рекомендуемая преподавателем Teach для изучения предмета

Семантическое моделирование данных.
Элементы модели "сущность-связь" Семантическое моделирование данных на основе ER-диаграмм компактно и доступно изложено в [5], и мы будем следовать этому источни

В реляционной СУБД
  Одним из главных достоинств иерархических и сетевых СУБД считают естественность представления данных иерархической и сетевой природы. А как представлять такие данные в реляционных С

Основы реляционной алгебры
  Реляционная алгебра представляет собой совокупность операций над отношениями. Операндами и результатами операций являются отношения. Рассмотрим основные операции реляционной алгебры

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

Общая характеристика и стандарты языка SQL
  Язык SQL (Structered Query Language) впервые появился в рамках проекта разработки экспериментальной реляционной СУБД System R в исследовательской лаборатории фирмы IBM в 1975-1979 г

Многотабличные запросы SQL. Соединения таблиц. Самосоединения. Псевдонимы
  Запросы могут выбирать данные изнескольких таблиц. Эти таблицы должны быть перечислены после слова FROM. Если таблицы не связаны между собой, то результатом запроса будут всевозможн

Внешнее соединение таблиц
  Рассмотренные соединения называют внутренними (INNER JOIN). В некоторых случаях требуются соединения другого вида – внешние соединения (OUTER JOIN). Рассмотрим две таблицы A (Stud,

Для реализации итоговых запросов в SQL имеются следующие стандартные функции, которые называют агрегатными
· MAX (поле) – максимальное значение поля; · MIN (поле) – минимальное значение поля; · AVG (поле) – среднее значение поля; · SUM (поле) – сумма значений поля; ·

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

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

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

Представления и работа с ними
  Представлением (VIEW) называется SQL-запрос на чтение, которому присвоили имя и сохранили в БД. Представление является виртуальной таблицей, то есть обеспечивает доступ к результата

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

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

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

Элементы языка QBE
  Язык QBE (Query By Example – запрос по образцу) был разработан в компании IBM в 1975 году. Это язык реляционного исчисления с переменными на доменах, рассчитанный на работу в интера

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

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги