Шпаргалка по "Программированию и компьютерам"

Автор работы: Пользователь скрыл имя, 27 Января 2012 в 00:57, шпаргалка

Краткое описание

Работа содержит ответы на вопросы по дисциплине "Программирование и компьютеры"

Содержимое работы - 12 файлов

1 алгоритмич языки и программирование.doc

— 79.00 Кб (Открыть файл, Скачать файл)

2 Технология программирования.doc

— 81.00 Кб (Открыть файл, Скачать файл)

3 базы данных. управл бд ..doc

— 227.00 Кб (Скачать файл)

 1. Классификация ограничений  целостности. Стратегия  поддержания ссылочной  целостности. Реакция  СУБД на попытку  нарушения целостности.

 Ограничение целостности - это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных. (Примеры: 1) Возраст сотрудника не может быть меньше 18 и больше 65 лет

 Классификация ограничений целостности:

 1)  По способам реализации. Различают два  способа реализации: декларативная поддержка ограничений целостности и процедурная поддержка ограничений целостности.

 Декларативная поддержка ограничений  целостности - заключается в определении ограничений средствами языка определения данных. Например, следующий оператор создает таблицу PERSON и определяет для нее некоторые ограничения целостности:

 CREATE TABLE PERSON (Pers_Id INTEGER PRIMARY KEY, Pers_Name CHAR(30) NOT NULL, Dept_Id REFERENCES DEPART(Dept_Id) ON UPDATE CASCADE ON DELETE CASCADE);

 После выполнения оператора для таблицы PERSON будут  объявлены следующие ограничения  целостности:

 Поле Pers_Id образует потенциальный ключ отношения; Поле Pers_Name не может содержать null-значений; Поле Dept_Id является внешней ссылкой на родительскую таблицу DEPART, причем, при изменении или удалении строки в родительской таблице каскадно должны быть внесены соответствующие изменения в дочернюю таблицу.

 Процедурная поддержка ограничений  целостности - заключается в использовании триггеров и хранимых процедур.

 Триггеры - являются одной из разновидностей хранимых процедур. Их исполнение происходит при выполнении для таблицы какого-либо оператора языка манипулирования данными (запускается после или до Insert, Delete, Update). Хранимые процедуры – откомпилированная внутреннем представлении (InterBase) подпрограмма написанная на специальном языке компилятор которого встроен в ядро сервера IterBase. Бывают «процедуры выбора» (название процедуры пишется прямо в select после оператора from) и «процедуры действия» используются соответственно для реализации действий.

 2) По времени проверки. Ограничения делятся  на:

 - Немедленно проверяемые ограничения.

 - Ограничения  с отложенной проверкой.

 Немедленно  проверяемые ограничения - проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение. Например, проверка уникальности потенциального ключа проверяется в момент вставки записи в таблицу.

 Ограничения с отложенной проверкой - проверяется в момент фиксации транзакции оператором COMMIT WORK.

 3) По области действия. Ограничения делятся  на: Ограничения домена,

Ограничения атрибута, Ограничения кортежа, Ограничения отношения, Ограничения базы данных.

 Ограничения целостности домена - представляют собой ограничения, накладываемые только на допустимые значения домена. Например, ограничением домена "Возраст сотрудника" может быть условие "Возраст сотрудника не менее 18 и не более 65".

 Домен –  общая совокупность допустимых значений.

 Ограничение целостности атрибута - представляют собой ограничения, накладываемые на допустимые значения атрибута вследствие того, что атрибут основан на каком-либо домене. Ограничение атрибута в точности совпадают с ограничениями соответствующего домена. Отличие ограничений атрибута от ограничений домена в том, что ограничения атрибута проверяются.

 Атрибут – столбец иди поле.

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

 Кортеж  – строка или запись.

 Пример: Для  отношения "Сотрудники" можно  сформулировать следующее ограничение: если атрибут "Должность" принимает значение "Директор", то атрибут "Зарплата" содержит значение не менее 1000$.

 Это ограничение  связывает два атрибута одного кортежа.

 Ограничения целостности отношения - представляют ограничения, накладываемые только на допустимые значения отдельного отношения, и не являющиеся ограничением целостности кортежа.

 Пример: Ограничение  целостности, определяемое требованием, что некоторая таблица должна быть не пуста, являются ограничениями  отношения.

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

 Пример: Ограничение  целостности ссылок, задаваемое внешним  ключом отношения, является ограничением базы данных.

 Стратегии поддержания ссылочной  целостности

 Существуют  две основные стратегии поддержания  ссылочной целостности :

 RESTRICT (ОГРАНИЧИТЬ) - не разрешать выполнение операции, приводящей к нарушению ссылочной  целостности. Это самая простая  стратегия, требующая только проверки, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении.

 CASCADE (КАСКАДИРОВАТЬ) - разрешить выполнение требуемой  операции, но внести при этом  необходимые поправки в других  отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении.

 Реакция СУБД на попытку нарушения  целостности.

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

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

 - Отказ  выполнить "незаконную" операцию.

 - Выполнение компенсирующих действий. 

 2. Транзакции. Проблемы  параллельной работы  транзакций. Конфликты  между транзакциями, способы из разрешения.

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

 Свойства  транзакций:

 Атомарность (Atomicity). Транзакция либо фиксирует результат своей операции, либо возвращает всё на место.

 Согласованность (Consistency). Транзакция вызывает корректную трансформацию системы, при этом сохраняя её состояние.

 Изолированность (Isolation). Выполняющиеся одновременно транзакции изолированы от воздействия незавершившихся транзакций.

 Долговечность или устойчивость (Durability). Если транзакция завершилась успешно, её результат будет зафиксирован и сохранён

 Каким образом  транзакции различных пользователей  могут мешать друг другу? Различают три основные проблемы параллелизма:

 Рассмотрим  две транзакции, A и B, запускающиеся  в соответствии с некоторыми графиками. Пусть транзакции работают с некоторыми объектами базы данных, например со строками таблицы. Операцию чтение строки P будем обозначать P=P0 , где P0  - прочитанное значение. Операцию записи значения P1  в строку P  будем обозначать P1 -> P.

 1)Проблема  потери результатов  обновления

 Две транзакции по очереди записывают некоторые  данные в одну и ту же строку и  фиксируют изменения.

 Транзакция  А Время Транзакция В

 Чтение  Р = Р0 t1 …

 …  t2 Чтение Р = Р0

 Запись  Р1 -> Р t3 …

 …  t4 Запись Р2 -> Р

 Фиксация  транзакции t5 …

 …  t6 Фиксация транзакции

 Потеря  результатов обновления

 Результат. После окончания обеих транзакций, строка p содержит значение P2 , занесенное более поздней транзакцией B. Транзакция A ничего не знает о существовании транзакции B, и естественно ожидает, что в строке p  содержится значение P1 . Таким образом, транзакция A потеряла результаты своей работы.

 2) Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание)

 Транзакция  B изменяет данные в строке. После этого транзакция A читает измененные данные и работает с ними. Транзакция B откатывается и восстанавливает старые данные.

 Транзакция А Время Транзакция В

 …  t1 Чтение Р = Р0

 …  t2 Запись Р1 -> Р

 Чтение  Р = Р1 t3 …

 Работа  с проч. данным. t4 …

 …  t5 Откат транзакции Р0 -> Р

 Фиксация  транзакции t6 …

 Работа  с грязными данными

 С чем  же работала транзакция A?

 Результат. Транзакция A в своей работе использовала данные, которых нет в базе данных. Более того, транзакция A использовала данные, которых нет, и не было в базе данных!

 3) Проблема несовместимого  анализа

 Неповторяемое считывание:

 Транзакция  A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке.

 

 Транзакция A ничего не знает о существовании  транзакции B, и, т.к. сама она не меняет значение в строке, то ожидает, что  после повторного чтения значение будет  тем же самым.

 Результат. Транзакция A работает с данными, которые, с точки зрения транзакции A, самопроизвольно изменяются.

 Фиктивные элементы (фантомы)

 Транзакция A дважды выполняет выборку строк  с одним и тем же условием. Между  выборками вклинивается транзакция B, которая добавляет новую строку, удовлетворяющую условию отбора.

 

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

 Результат. Транзакция A в двух одинаковых выборках строк получила разные результаты.

 Собственно  несовместимый анализ

 Эффект  собственно несовместимого анализа  также отличается от предыдущих примеров тем, что в смеси присутствуют две транзакции - одна длинная, другая короткая.

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

 

 Результат. Хотя транзакция B все сделала правильно - деньги переведены без потери, но в результате транзакция A подсчитала неверную общую сумму.

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

 Конфликты между транзакциями, способы их разрешения

 Транзакции  называются конкурирующими, если они пересекаются по времени и обращаются к одним и тем же данным.

4 информационные технологии.doc

— 131.50 Кб (Открыть файл, Скачать файл)

5 проектирование АСОИУ.doc

— 861.00 Кб (Открыть файл, Скачать файл)

6 Дискретная математика.doc

— 91.50 Кб (Открыть файл, Скачать файл)

6 Математическая логика и теория алгоритмов.doc

— 92.50 Кб (Открыть файл, Скачать файл)

7 МО+ТПР.doc

— 177.50 Кб (Открыть файл, Скачать файл)

8 системное программное обеспечение. операц системы.doc

— 140.00 Кб (Открыть файл, Скачать файл)

9 методы и средства защиты информации.doc

— 216.00 Кб (Скачать файл)

Практика МО+ТПР.doc

— 307.50 Кб (Открыть файл, Скачать файл)

Практика МС+СИИ.doc

— 205.00 Кб (Открыть файл, Скачать файл)

Информация о работе Шпаргалка по "Программированию и компьютерам"