- •«Информационное обеспечение систем управления»
- •1. Общие понятия ио
- •1) Файловые системы (фс)
- •2) Системы, использующие бд
- •1) По размещению:
- •2) По виду модели данных:
- •1) По размещению:
- •2. Жизненный цикл ио, проектирование ио
- •В соответствии с гост 34.601-90 Автоматизированные системы в стадии создания определены следующие стадии создания автоматизированных систем:
- •2) Каскад с возвратом (возможно переопределение требований):
- •3) Итерационная модель:
- •4) Эволюционная модель:
- •Проектирование ис. Основное проектирование данных и по
- •3. Инфологическое проектирование
- •Нотация Чена:
- •Нотация Баркера:
- •Нотация idef1x:
- •Основными элементами er-модели являются:
- •Сущность
- •Атрибут
- •Множественность
- •Обязательность
- •Расширение нотаций
- •Проблемы er-моделирования
- •4. Логические модели данных. Сетевая и иерархическая модели
- •Сетевая модель данных
- •Операции сетевой модели
- •1) Операции с данными:
- •2) Операции со связями:
- •3) Навигация по данным:
- •Иерархическая модель данных
- •5. Реляционная модель данных
- •Операции с реляционными данными
- •1) Унарные операции (операции с одним отношением):
- •2) Операции с двумя однотипными отношениями:
- •3) Операции с разнотипными отношениями:
- •1. Внутренние соединения:
- •Реляционное исчисление
- •6. Нормализация отношений
- •1Нф требует:
- •2Нф требует:
- •7. Даталогическое проектирование
- •Рассмотрим преобразование реляционной логической модели
- •I. Преобразование исходной инфологической модели (им):
- •Преобразования сущностей
- •Преобразования свойств
- •Преобразования связей
- •II. Переход к логической модели:
- •III. Нормализация отношений
- •IV. Дополнительные действия
- •8. Ограничения целостности, виды и реализация
- •1) По области действия.
- •2) По месту реализации.
- •3) По способу реакции на нарушение.
- •4) По моменту выполнения проверки.
- •9. Средства доступа к данным и разработки приложений
- •10. Язык sql
- •1. Основные составляющие языка sql.
- •2. Методы и средства контроля целостности в основном реализованы в create table:
- •3. Операторы модификации данных:
- •4. Выборка:
- •5. Управление доступом:
- •6. Управление транзакциями:
- •11. Создание бд в sql
- •1. Оператор создания схемы бд
- •2. Оператор создания домена
- •3. Оператор создания таблицы
- •4. Оператор фиксации результатов работы с бд
- •12. Выборка данных в sql
- •1) Формирование единой таблицы:
- •2) Ограничение единой таблицы по строкам:
- •3) Отбор выходных столбцов выборки:
- •4) Группирование строк таблицы выборки:
- •5) Ограничение по групповым строкам:
- •6) Объединение выборки:
- •7) Упорядочивание записей выборки:
- •13. Восстановление данных
- •14. Организация многопользовательского доступа
- •15. Защита от несанкционированного доступа
- •2. Защита на уровне субд
- •3. Защита на уровне приложения
- •16. Физическая организация данных в бд
- •1. Последовательная организация.
- •2. Списковое хранение
- •3. Индексная организация
- •4. Хэшированная организация
- •17. Методы поиска в бд
- •1. Последовательный поиск:
- •2. Блочный поиск.
- •3. Бинарный поиск
- •4. Индексный поиск
- •5. Хешированный поиск
3. Оператор создания таблицы
База данных обычно содержит несколько таблиц, а также и индексы и некоторые другие информационные объекты.
SQL оперирует с данными, представленными в виде таблиц. Каждая таблица содержит множество строк. Различают базовые таблицы – таблицы, определенные с помощью их описания на языке описания данных, и производные таблицы, получаемые из одной (или нескольких других) таблицы путем выполнения некоторого запроса. Базовые таблицы бывают постоянные или временные. Если создается временная таблица, то используется параметр TEMPORARY. В этом случае при определении таблицы должны быть указаны дополнительные параметры GLOBAL или LOCAL.
Таблица описывается с помощью оператора CREATE TABLE. Таблица определяется путем задания содержащихся в ней столбцов. Все значения в столбце имеют один и тот же тип данных. При описании таблиц могут задаваться ограничения целостности данных.
Следующий оператор создает новую таблицу в существующей БД. Упрощенный синтаксис оператора имеет вид:
CREATE TABLE <таблица>
( <определение столбца>
[, {<определение столбца> | <ограничение таблицы>}, …]);
Здесь <таблица> - уникальное внутри БД имя, присваиваемое таблице,
<определение столбца> - описание столбца таблицы, которое может основываться на ранее определенном домене, а также содержать ограничения целостности, предъявляемые к вводимым в столбец значениям. Таблица должна содержать хотя бы один столбец.
<ограничение таблицы> - описание ограничения целостности, предъявляемого к сочетанию значений, введенных в строку таблицы в нескольких столбцах. В описании таблицы может определяться несколько ограничений таблицы.
В определениях столбцов и в ограничениях таблицы могут также задаваться ограничения ссылочной целостности для поддержки связей между данными в разных таблицах.
Упрощенный синтаксис определения столбца имеет вид:
< определение столбца > = <столбец > {< тип > | <домен >}
[DEFAULT <значение> ]
[NOT NULL]
[ <ограничение столбца>, … ]
Здесь <столбец> - уникальное внутри таблицы имя, присваиваемое столбцу,
{< тип> | <домен>} – тип данных столбца или домен, свойства которого наследует столбец,
DEFAULT, NOT NULL – аналогичны объявлениям, рассмотренным для домена,
<ограничение столбца> - требование, которое должно выполняться для вводимых в столбец значений. Набор видов ограничений столбца имеет вид:
UNIQUE – требование уникальности значений в столбце;
PRIMARY KEY – объявление столбца первичным ключом. Это автоматически накладывает требование уникальности на значения в столбце. Кроме того, для столбца должно быть явно указано требование NOT NULL;
Ограничение столбца представляется в виде ограничений ссылочной целостности и ограничений по значению:
REFERENCES <таблица> [(<столбец>)]
[ON DELETE
{NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
[ON UPDATE
{NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
- ограничение ссылочной целостности.
CASCADE - каскадное удаление или изменение внешних ключей с соответствии с удалением или изменением в главной таблице;
SET DEFAULT – установка некорректных значений внешних ключей в заданное для столбца значение по умолчанию;
SET NULL – очистка позиций некорректных значений внешних ключей путем записи в них значения NULL.
CHECK (<предикат>) – ограничивающее условие, проверяемое при вводе или изменении значения в столбце. Предикат использует значения столбцов в выражении для вычисления значения
Простыми формами задания условия являются:
<столбец> <оператор сравнения > <значение>,
<столбец > [NOT] BETWEEN <значение> AND <значение>,
<столбец > [NOT] IN (<список значений>),
<столбец > IS [NOT] NULL.
Предикат может принимать значения TRUE, FALSE или UNKNOWN. Ограничение считается нарушенным, когда предикат принимает значение FALSE.
Более сложные условия задаются с использованием кванторов и операторов выборки. Также как для домена простые условия могут соединяться в более сложные с помощью логических функций AND, OR и NOT.
Ограничения таблицы аналогичны ограничениям столбца, но предъявляются не к одному столбцу, а к набору столбцов:
PRIMARY KEY (<список столбцов>) – объявление набора столбцов первичным ключом;
UNIQUE (<список столбцов>) – требование уникальности сочетаний значений в наборе столбцов,
FOREIGN KEY (<список столбцов>) REFERENCES <таблица>
ON DELETE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
ON UPDATE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
- объявление набора столбцов внешним ключом;
CHECK ( <предикат>) – задание ограничивающего условия, включающего значения из нескольких столбцов.
Ниже приведен пример описания трех связанных таблиц: «Spr_mat» — справочник материалов, «Spr_post» — справочник поставщиков и «Post» - таблица, содержащая информацию о поставках. При включении в базу данных информации о конкретной поставке должно проверяться наличие вводимых значений кода материала (kod_mat) и кода поставщика (kod_post) в соответствующих справочниках.
CREATE TABLE spr_mat
(kod_mat CHAR(3) NOT NULL PRIMARY KEY,
naim_mat CHAR (30) NOT NULL UNIQUE);
CREATE TABLE spr_post
(kod_post CHAR(5) NOT NULL,
naim_post CHAR (30) NOT NULL,
PRIMARY KEY (kod_post),
UNIQUE (naim_post));
CREATE TABLE post
(kod_post CHAR(5) NOT NULL,
kod_mat CHAR(3) NOT NULL,
data_post DATE NOT NULL,
kolv NUMERIC NOT NULL,
PRIMARY KEY (kod_post, kod_mat, data_post),
FORIGN KEY (kod_mat) REFERENCES spr_mat (kod_mat),
FORIGN KEY (kod_post) REFERENCES spr_post (kod_post));
Структуру существующей таблицы можно изменять с помощью оператора ALTER TABLE.
ALTER TABLE <имя таблицы>
[ADD [COLUMN] <определение столбца>]
| [ALTER [COLUMN] <имя столбца> <изменяющее действие>]
| [DROP [COLUMN] <имя столбца> RESTRICT | CASCADE]
| [ADD <определение ограничения для таблицы>]
| [DROP CONSTAINT <имя ограничения> RESTRICT | CASCADE];
изменяющее действие::=
[SET DEFAULT <значение по умолчанию>] | [DROP DEFAULT]
Как видно, с помощью оператора ALTER TABLE можно добавить новый столбец в таблицу, изменить определение существующего столбца, добавив/удалив значение по умолчанию, добавить/удалить ограничения целостности, а также удалить столбец из таблицы. При удалении столбца, если будет использован параметр RESTRICT, то в случае наличия каких-либо ссылок на этот столбец (в представлениях, ограничениях, условиях) оператор будет отвергнут. Если же будет использован параметр CASCADE, то все объекты, имеющие ссылки на этот столбец, будут уничтожены.
Оператор ALTER TABLE присутствует не во всех СУБД. Часто реализация этого оператора не полностью соответствует стандарту.
Таблицы могут быть удалены с помощью оператора DROP TABLE.
