Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие базы и банка данных.docx
Скачиваний:
22
Добавлен:
22.09.2019
Размер:
83.52 Кб
Скачать

Ограничение целостности данных в sql.

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

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

SQL-сервер поддерживает следующие ограничения:

  1. Проверка на непустое значение (NOT NULL). NULL — специальное понятие СУБД, которое означает ПУСТО. ПУСТО не равно 0, как числовому значению.

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

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

  4. Внешний ключ таблицы таблицы (FOREIGN KEY) предназначен для организации ссылочной целостности данных с помощью первичного ключа другой таблицы. Таблица в которой определён внешний ключ называется зависимой, а таблица с первичным ключом называется главной. В зависимую таблицу нельзя вставить строку, если внешний ключ не имеет соответствующее значение в главной таблице. И наоборот, из главной таблицы нельзя удалить строку, если значение первичного ключа используется в зависимой таблице.

  5. Проверка фиксированного условия (CHECK). В данном ограничении явно указывается условие, которое должно выполняться для вставляемого или модифицируемого столбца. Пример: check (kol between 1000 and 1500 (количество между 1000 и 1500)) — означает, что столбец kol может применять целочисленные значения в диапазоне от 1000 до 1500.

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

Управление таблицами в SQL (создание, изменение, удаление).

Создание таблицы CREATE TABLE . Эта команда создаёт пустую таблицу без строк. Она определяет имя таблицы и набор имён столбцов с типами и размерами, указанных в определённом порядке.

CREATE TABLE

([],

[],

…)

Изменение структуры таблицы ALTER TABLE . Эта команды предназначена для модификации структуры таблицы, то есть:

  1. Добавить в таблицу новый столбец.

  2. Удалить столбец из таблицы.

  3. Изменить значение по умолчанию для какого-то столбца (например, цена строго больше 0).

  4. Добавить и удалить условие уникальности.

ALTER TABLE ADD - команда для добавление нового столбца (ADD). Добавится столбец со значением NULL для всех строк таблицы, причём столбец встанет по порядку в конце.

ALTER TABLE

DROP COLUMN - команда удаления столбца (DROP COLUMN). Нельзя удалять столбцы с ограничением целостности.

Удаление всей таблицы DROP TABLE (DROP TABLE

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

Управление данными в SQL.

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

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

Список разделов:

    1. Select

    2. FROM (откуда, из). С его помощью определяются источники данных, с которыми будет работать запрос. Пример: SELECT * FROM Zakazi;

    3. WHERE (где). С помощью этой команды ограничивают выбор строк из таблицы. Далее указывается логическое условие, от которого зависит, будет включена ли строка в выборку или нет. Строка включается в выборку, если логическое выражение принимает значение TRUE.

Пример: SELECT * FROM Zakazi WHERE kol>100.

    1. Order by (сортировка по) — предназначена для упорядочения набора данных.

Пример: SELECT * FROM Zakazi Oreder by Data_Zak;

    1. DISTINCT (отрицание) — устраняет дублирование данных. Пример: SELECT DISTINCT Data_Zak FROM Zakazi;

    2. GROUP BY — позволяет выполнять группировку строк таблицы по определённым критериям.

    3. HAVING — используется вместе с GROUP для того, чтобы выполнять определённые группы строк данных, которые удовлетворяют заданным критериям.

Пример:

SELECT id_f

FROM Zakazi

GROUP BY id_f;

HAVING Count(*)>1 (фирмы, которые заказали больше одного изделия)

    1. UNION — служит для объединения результатов выборки, возвращаемых двумя или более запросами.

SELECT id_f

FROM Zakazi

WHERE Data_Zak='10.04.12'

UNION

SELECT id_f

FROM id_f

WHERE Data_Zak='10.04.12';

    1. Select... Into — сохранение результата запроса в новой таблице. Автоматически создаётся новая таблица с нужной структурой и в неё заносится полученный набор строк.

Select name as Firma, s as Summa

Into Itog

From Firma_zak;

Будет создана таблица Itog с двумя столбцами Firma и Summa.

Распределённая обработка данных.

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

Идеальная система управления распределёнными БД должна обладать следующими свойствами:

  1. Прозрачность, относительно расположения данных (СУБД должна представлять все данные так, как если бы они были локальными).

  2. Гетерогенность системы (СУБД должна работать с данными, расположенными на различных системах с различными архитектурами и производительность).

  3. Прозрачность, относительно сети (СУБД должна одинаково работать в условиях разнородных сетей).

  4. Поддержка распределённых запросов (пользователь должен иметь возможность объединить данные из любых БД, даже если они размещены в разных системах).

  5. Поддержка распределённых изменений.

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

  7. Универсальность доступа — СУБД должна обеспечивать единую методику доступа ко всем данным.

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