- •Базы данных Вопросы и ответы к экзамену Дисциплина «Базы данных».
- •Вопрос №1
- •Отличия концептуальной, логической и физической моделей данных.
- •Вопрос №2 Определение, назначение субд.
- •Требования, предъявляемые к субд.
- •Типы субд Сравнительная характеристика различных субд.
- •Вопрос №3
- •Типы связей.
- •Вопрос №4
- •Вопрос №5
- •Вопрос №6
- •Вопрос №7
- •I этап. Постановка задачи.
- •II этап. Анализ объекта.
- •III этап. Синтез модели.
- •IV этап. Выбор способов представления информации и программного инструментария.
- •V этап. Синтез компьютерной модели объекта.
- •VI этап. Работа с созданной базой данных.
- •Вопрос №8
- •Нормализация отношений
- •Вопрос №9
- •Нормализация баз данных. Нормальные формы: 1нф,2нф,3нф
- •Вопрос №10
- •Вопрос №11
- •Методы создания и составные части программного файла. Назначение операторов и команд для написания программ
- •Вопрос №12
- •Вопрос №13
- •Вопрос №14 Понятие, виды и назначение триггеров.
- •Вопрос №15 Создание триггера типа update.
- •Вопрос №16 Понятие запроса. Команда выбор
- •Описание select
- •Вопрос №17
- •Дополнительно: Способы обеспечения непротиворечивости и целостности данных.
Вопрос №15 Создание триггера типа update.
Триггер - это специальный тип хранимой процедуры, которая запускается автоматически системой SQL Server при модифицировании какой-либо таблицы одним из трех операторов: update, insert или delete. В отличие от других типов хранимых процедур триггеры запускаются автоматически при указанных модификациях данных; их нельзя запустить вручную по имени. Когда происходит запуск триггера, говорят, что он активизируется (fire) . Триггер создается по одной таблице базы данных, но он может осуществлять доступ и к другим таблицам и объектам других баз данных. Триггеры нельзя создать по временным таблицам или системным таблицам, а только по определенным пользователем таблицам или представлениям. Таблица, по которой определяется триггер, называется таблицей триггера.
Существует пять типов триггеров: update, insert, delete. Как следует из названий, триггер update активизируется, когда выполняются изменения (обновления) в какой-либо таблице, триггер INSERT активизируется, когда происходит вставка данных в таблицу и триггер delete активизируется, когда из таблицы удаляются данные.
Операции обновления, вставки и удаления называются событиями модификации данных. Вы можете создать триггер, который активизируется при возникновении более чем одного события модификации данных. Например, вы можете создать триггер, который будет активизироваться, когда происходит выполнение оператора update или insert, и такой триггер мы будем называть триггером update/insert. Вы можете даже создать триггер, который будет активизироваться при возникновении любого из трех событий модификации данных (триггер update/insert/delete).
Вам следует знать некоторые из других общих правил, относящихся к триггерам. Это следующие правила:
• Триггеры запускаются только после завершения оператора, который вызвал их активизацию. Например, uPDATE-триггер не будет активизироваться, пока не будет выполнен оператор update.
• Если какой-либо оператор пытается выполнить операцию, которая нарушает какое-либо ограничение по таблице или является причиной какой-то другой ошибки, то связанный с ним триггер не будет активизирован.
Чтобы увидеть, как работает триггер, создадим простую таблицу с определенным по ней триггером, который печатает определенный текст при каждой модификации.
USE Clients
GO
IF EXISTS (SELECT name FROM sysobjects
WHERE name=”Print_Update” AND type = “TR”)
DROP TRIGGER Print_Update
GO
Create trigger Print_Update
ON Clients
FOR UPDATE
AS
PRINT “The Clients table was updated”
GO
Чтобы проверить триггер, модифицируем таблицу Clients.
Вопрос №16 Понятие запроса. Команда выбор
Запрос — это операция над отношениям, результатом которой также является отношение. Язык запросов должен иметь набор выразительных средств, чтобы отвечать на широкий круг запросов и формулировать их кратко. (ЧТО надо получить, а не КАК получить).
Запрос — команда, которую вы даете вашей программе базы данных, и которая сообщает ей, чтобы она вывела определенную информацию из таблиц в память. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя, в большинстве случаев, ее можно также послать принтеру, сохранить в файле (как объект в памяти компьютера), или представить как вводную информацию для другой команды или процесса.
Запрос не меняет информацию в таблицах, а просто показывает ее пользователю.
Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так, чтобы выполнить высоко сложные оценки и обработки данных. Эта команда называется — SELECT (ВЫБОР).
SELECT * | { [ DISTINCT | ALL] <value expression>.,..} FROM { <table name> [ <alias> ] }.,.. [ WHERE <predicate>] [ GROUP BY { <column name> | <integer> }.,..] [ HAVING <predicate>] [ ORDERBY { <column name> | <integer> }.,..] Элементы, используемые в команде SELECT
ЭЛЕМЕНТ ОПРЕДЕЛЕНИЕ
<value expression> Выражение, которое производит значение. Оно может включать в себя или содержать <column name>.
<table name> Имя или синоним таблицы или представления
<alias> Временный синоним для <table name>, определеный в этой таблице и используемый только в этой команде
<predicate> Условие, которое может быть верным или неверным для каждой строки или комбинации строк таблицы в предложении FROM.
<column name> Имя столбца в таблице.
<integer> Число с десятичной точкой. В этом случае, оно показывает <value expression> в предложении SELECT с помощью идентификации его местоположения в этом предложении.