Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный конспект ОВГЕРМАН 1ый семестр.doc
Скачиваний:
79
Добавлен:
15.06.2014
Размер:
11.83 Mб
Скачать

1.1.4 Операции над таблицами

Наряду с приведенной выше операцией соединения таблиц рассмотрим другие основные операции над таблицами.

  • Создание таблицы

  • Удаление таблицы/ удаление записи

  • Изменение таблицы

  • Выбор записей из таблицы

  • Расщепление таблицы

Создание таблицы. В этой операции указываются имя создаваемой таблицы и имена атрибутов вместе с их типами и размерами. Кроме этого, могут быть указаны ограничения на значения, вводимые в столбцах, ключевые поля и проверочные соотношения. Тип атрибута определяет вид информации, содержащейся в столбце. Наиболее общими типами являются числовой (целое или вещественное число), строковый (строки переменной или фиксированной длины), дата, время, бинарный (двоичное число или последовательность из 0 и 1), логический, изображение (рисунок), текстовый (иногда называетсяMemo),OLE-тип (этому типу соответствуют, например, документыWord, листыExcelили презентацииPowerPoint).

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

Изменение таблицы. Изменение таблицы связывается с

  • добавлением новых записей

  • изменением содержимого записей

  • изменением числа столбцов

  • изменением названий столбцов

  • изменением типов столбцов

  • изменением размеров столбцов

  • удалением/изменением или добавлением ограничений

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

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

Операция расщепления может приводить к аномалии обратного соединения. Рассмотрим следующий пример (табл.1.4).

Таблица 1.4. Пример таблицы до расщепления

Код

Товар

Фирма

Цена

11

бумага

Ориенталь

5000

13

бумага

Папир

7000

14

краска

Норд

10000

27

кисточки

Фокус

4000

Расщепим эту таблицу по полю Товар, например, следующим образом (табл.1.5, 1.6).

Таблица 1.5

Код

Товар

11

бумага

13

бумага

14

краска

27

кисточки

Таблица 1.6

Товар

Фирма

Цена

бумага

Ориенталь

5000

бумага

Папир

7000

краска

Норд

10000

кисточки

Фокус

4000

Нетрудно сообразить, что операция расщепления (в литературе также известная как проекция) сводится к выборке указанных столбцов. Теперь соединим эти таблицы по общему полю Товар ( результат – табл.1.7)

Таблица 1.7.Результат соединения табл.1.5 и 1.6

Код

Товар

Фирма

Цена

11

бумага

Ориенталь

5000

11

бумага

Папир

7000

13

бумага

Ориенталь

5000

13

бумага

Папир

7000

14

краска

Норд

10000

27

кисточки

Фокус

4000

Как видим, полученная в результате соединения таблица не совпадает с табл.1.4. Причиной данной аномалии является то, что расщепление выполнено не по ключевому полю. Если выполнить расщепление по ключевому полю, например, по полю Код, то никакой аномалии не будет (см. табл.1.8,1.9,1.10).

Таблица 1.8

Код

Товар

11

бумага

13

бумага

14

краска

27

кисточки

Таблица 1.9

Код

Товар

Фирма

11

бумага

Ориенталь

13

бумага

Папир

14

краска

Норд

27

кисточки

Фокус

Таблица 1.10. Результат соединения таблиц 1.8, 1.9

Код

Товар

Фирма

11

бумага

Ориенталь

13

бумага

Папир

14

краска

Норд

27

кисточки

Фокус

Итак, наличие однозначной функциональной зависимости между атрибутами позволяет выполнить расщепление таблицы, так что последующее соединение не ведет к аномалиям. Заметим при этом, что таким же свойством обладают многозначные функциональные зависимости [см. Меер].