
- •1.1. Архитектура бд
- •2. Тема 2. Системы управления бд (субд). Выбор систем управления бд. Функции субд.
- •3.1. Жизненный цикл бд. Этапы жц бд.
- •3.1.1. Оценка работы и поддержка б.Д. Производится оценка с точки зрения выполнения требований пользователей. В случае необходимости в систему вносятся изменения.
- •3.1.1.1. Документальные системы
- •3.1.1.2.Обобщенная функциональная структура дипс.
- •3.1.1.3. Коммерческие б.Д.
- •3.1.1.4. Коммерческие базы данных.
- •3.1.1.5. Распределенная обработка данных. Распределенные базы данных
- •3.2. Литература
- •4.1. Уровни.
- •4.2. Этапы проектирования.
- •4.3.Трехуровневая архитектура организации бд
- •4.4. Этапы проектирования: исследование проблемы, этап анализа, проектирование, реализация, внедрение, сопровождение.
- •4.5. Проектирование бд.
- •4.5.1. Этапы проектирования.
- •Тема 5. Средства и методы проектирования бд. Методика диаграмм взаимосвязей между объектами erd-диаграммы. Использование case-технологий при проектировании бд.
- •5.1. Базовые понятия.
- •5.2. Case - приложение eRwin
- •5.2.1. Объекты в eRwin
- •5.2.2. Связь в Erwin
- •6.1. Правила отношений между сущностями. Определение ключей
- •6.2. Нормализация бд. Денормализация бд.
- •Тема 7. Реляционная модель бд. Таблицы. Ограничения целостности данных. Реляционная алгебра. Реляционное исчисление.
- •Тема 8. Организация процессов обработки данных в бд. Обработка транзакций
- •Понятие транзакции.
- •9.1.1. Операторы определения данных ddl
- •9.1.2. Операторы манипулирования данными Data Manipulation Language dml
- •9.1.3. Язык запросов Data Query language (dql)
- •9.1.4. Средства администрирования данных
- •9.1.5. Программный sql
- •9.2. Оператор выборки данных select, использование условий поиска, сортировка результатов запроса. Синтаксис оператора select.
- •C.10. Тема 10. Простые запросы и правила их выполнения. Особенности многотабличных запросов. Объединение таблиц. Использование вложенных запросов
- •10.1. Простые запросы и правила их выполнения
- •10.2. Особенности многотабличных запросов
- •10.3. Объединение таблиц
- •10.4. Использование вложенных запросов
- •Тема 11. Внесение изменений в бд. Добавление информации в бд, удаление данных, изменение существующих данных.
- •C.11.1.Внесение изменений в базу данных
- •Удаление данных
- •11.2. Изменение существующих данных
- •12.1. Специальные аспекты работы с бд. Процедура индексирования.
- •12.2. Триггеры
- •12.2.1. Ключевые слова и параметры
- •12.2.2. Компоненты триггера
- •12.2.3.Типы триггеров.
- •12.2.4.Включение и выключение триггеров.
- •C.12.2.5. Удаление триггера
- •C.12.2.6. Корреляционные имена
- •12.3. Процедуры и функции
- •12.4. Функция
- •12.5.Курсоры.
- •Тема 13. Физическая организация бд на примере Oracle9i. Организация табличных пространств, журналов транзакций. Серверные процессы. Структуры памяти и взаимодействие между процессами.
- •13.1. Архитектура бд.
- •14.1. Системы обработки транзакций oltp и olap - технологий
- •14.2. Хранилища данных. Многомерные хранилища данных
- •14.3. Методы аналитической обработки (olap)
- •14.3.1. Хранилища данных
- •14.3.2. Причины внедрения информационных систем на основе хранилищ данных
- •Литература
- •14.5. Olap в России
- •Тема 15. Основы фракталов. Фрактальная математика. Фрактальные методы в архивации. Управления складами данных
- •15.1. Понятие "фрактал"
- •15.2. Классификация фракталов
- •15.2.1. Геометрические фракталы
- •15.2.2. Алгебраические фракталы
- •C.15.2.3. Стохастические фракталы
- •C.15.3. Системы итерируемых функций
- •15.4. Фрактальное сжатие
- •15.5. История фрактального сжатия
- •15.6. Идея фрактальной архивации
- •15.7. Сравнение с jpeg
- •15.8. Литература
- •Темы рефератов
Тема 11. Внесение изменений в бд. Добавление информации в бд, удаление данных, изменение существующих данных.
Лекции: 2 часа
C.11.1.Внесение изменений в базу данных
При работе с SQL исключительно важно не только уметь выбирать данные, но и пользоваться средствами, которые управляют значениями в таблице. Значения могут быть помещены и удалены из полей тремя командами языка DML (Язык Манипулирования Данными), а именно:
∙ insert - вставить;
∙ update - модифицировать;
∙ delete - удалить.
Добавление информации в базу данных
Все записи в SQL вводятся с использованием команды модификации INSERT. В самой простой форме эта команда имеет -следующий синтаксис:
INSERT INTO <table name>
VALUES ( <value>, <value> . . .) ;
Так, например, для добавления записи в таблицу преподавателей TEACHERS, можно воспользоваться следующим выражением:
INSERT INTO TEACHERS
VALUE S (4006, 'Федченко', 'Светлана', 'Геннадиевна', 01/09/1999);
Команда INSERT не производит никакого вывода, но желательно, чтобы СУБД давала некоторое подтверждение того, что данные были успешно внесены. Кроме того, следует помнить, что имя таблицы, в которую производится вставка, должно быть предварительно определено, а каждое значение в списке вставляемых данных должно совпадать с типом данных столбца, в который оно вставляется. Значения в этом списке вводятся в таблицу в том порядке, в котором они записаны в команде, поэтому первое значение автоматически попадает в первый столбец, второе - во второй столбец и т. д.
Если требуется ввести в таблицу NULL значение, то оно вводится точно так же, как и обычное. Например, следующая команда, вставляющая запись с неизвестным значением кода преподавателя, вполне допустима:
INSERT INTO TEACHERS
VALUES (NULL, 'Федченко', 'Светлана', 'Геннадиевна', 01/09/1999);
Так как значение NULL - специальное служебное слово, то заключать его в одиночные кавычки не требуется.
Также допускается указывать столбцы, куда необходимо осуществить вставку значения, что позволяет делать это в любом порядке. Например, команда:
INSERT INTO TEACHERS (TDATE, TFAM, TIMA) VALUES (01/09/1999, 'Федченко', 'Светлана') ;
позволяет вставить значения в поля таблицы в порядке TDATE, TFAM, TIMA, причем столбцы TNUM и ТОТСН отсутствуют. Это означает, что для этих полей автоматически устанавливается значение по умолчанию. Значение по умолчанию может быть введено заранее или. в противном случае, это будет NULL значение. Если ограничение запрещает использование значения NULL в данном поле, то обязательно надо позаботиться об обеспечении столбца содержательным значением для любой команды INSERT.
Можно использовать команду INSERT для того, чтобы получать или выбирать значения из одной таблицы и помещать их в другую вместе с запросом. Для этого предложение VALUES заменяется на соответствующий запрос:
INSERT INTO EXCELLENT SELECT * FROM USP WHERE OCENKA = 5;
Следовательно, будет сделано следующее: все значения, выданные запросом (информация о студентах, имеющих только отличные оценки), помещаются в таблицу, названную EXCELLENT. Для того чтобы не произошло ошибки, таблица EXCELLENT должна уже быть создана командой CREATE TABLE (о ней речь ниже) и иметь пять столбцов, которые совпадают с таблицей USP по типу данных.
Таким образом, будет получена независимая таблица с некоторыми данными из таблицы успеваемости USP. При изменении значений в таблице USP это ни в коем случае не отразится на таблице EXCELLENT.
В принципе, имеется возможность указывать столбцы по имени, как это уже было продемонстрировано выше, а значит - переупорядочивать добавляемую информацию.
Например, при помощи нижеприведенной команды можно вставить информацию о среднем балле каждого студента:
INSERT INTO AVGRAITING (SNUM, AVGOCENKA) SELECT SNUM, AVG (OCENKA.) FROM USP GROUP BY SNUM;
Обратите внимание на то, что указаны имена столбцов таблицы AVGRAITING, а значит, последовательность данных во вставляемом списке (т.е. порядок следования полей в предложении SELECT) должна с этим порядком совпадать.
В INSERT можно использовать подзапросы внутри любого запроса, который генерирует значения для этой команды аналогично тому, как это уже делалось при рассмотрении соответствующего материала.
Оба запроса в этой команде функционируют так же, как если бы они не являлись частью выражения INSERT. Подзапрос находит все строки для студентов, имеющих отличные оценки, и формирует набор значений SNUM. Внешний запрос выбирает строки из таблицы STUDENTS, где эти значения SNUM найдены. a INSERT вставляет найденные данные в таблицу' STO.
В команде INSERT допускается использовать соотнесенные подзапросы. Предположим, что имеется таблица МАХОCENKA, в которой хранится информация о студенте, имеющем максимальную оценку за определенную дату (скажем, для начисления именной стипендии). Тогда, для отслеживания изменения данных в таблице успеваемости и модификации соответствующей информации о претенденте на именную стипендию, необходимо воспользоваться следующей командой с соотнесенным подзапросом:
INSERT INTO MAXOCENKA (SNUM, OCENKA) SELECT SNUM, OCENKA FROM USP FIRST WHERE OCENKA = (SELECT MAX (OCENKA) FROM USP SECOND
WHERE FIRST.UDATE = SECOND.UDATE);
При этом рассматриваемая команда имеет подзапрос, который базируется на той же самой таблице, что и внешний запрос, но не ссылается на таблицу MAXOCENKA, на которую воздействует команда, поэтому такая конструкция является допустимой.