Главная » Просмотр файлов » Мартин Грубер - Понимание SQL

Мартин Грубер - Понимание SQL (991940), страница 41

Файл №991940 Мартин Грубер - Понимание SQL (Мартин Грубер. Понимание SQL) 41 страницаМартин Грубер - Понимание SQL (991940) страница 412015-08-23СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 41)

Привилегия создавать таблицы, хотя и может быть передана по всей базе данных, часто передается в конкретной DBS. Мы можем создать DBS с именемSampletables, следующей командой:CREATE DBSPACE Sampletables(pctindex 10,pctfree 25);Параметр pctindex определяет, какой процент DBS должен быть оставлен, чтобысохранять в нем индексы таблиц. Pctfree — это процент DBS, который оставлен, чтобы позволить таблицам расширять размеры их строк (ALTER TABLE может добавлятьстолбцы или увеличивать размер столбцов, делая каждую строку длиннее.

Это —расширение памяти, отводимой для этого). Имеются также другие параметры, которые вы также можете определять, и которые меняются от программы к программе.Большинство программ автоматически будут обеспечивать значения по умолчанию,поэтому вы можете создавать DBS, не определяя эти параметры. DBS может иметьили определенное ограничение размера, или ей может быть позволено растинеограниченно вместе с таблицами.Если DBS создалась, пользователям предоставляются права создавать в нейобъекты. Вы можете например предоставить Diane право создать таблицуSampletables с помощью следующей команды:GRANT RESOURCE ON Sampletables TO Diane;Это даст вам возможность более конкретно определять место хранения данных.Первый DBS, назначаемый данному пользователю — обычно тот, где все объектыэтого пользователя создаются по умолчанию.Пользователи, имеющие доступ к многочисленым DBS, могут определить, гдеони хотят разместить определенный объект.При разделении вашей базы данных на DBSы, вы должны иметь в виду типыопераций, которые вы будете часто выполнять.

Таблицы, которые, как вам уже известно, будут часто объединяться, или которые имеют одну таблицу, ссылающуюсяна другую во внешнем ключе, должны находиться вместе в одной DBS.Например, вы могли бы сообщить при назначении типовых таблиц, что таблицаПорядков будет часто объединяться с одной или обеими из двух других таблиц, таккак таблица Порядков использует значения из обеих этих таблиц. При прочих равныхусловиях, эти три таблицы должны входить в ту же самую область DBS, независимоот того, кто их владелец.

Возможное присутствие ограничения внешнего ключа в таблице Порядков, просто приведет к более строгому совместному использованию области DBS.КОГДА СДЕЛАННЫЕ ИЗМЕНЕНИЯ СТАНОВЯТСЯПОСТОЯННЫМИ?Визуально, среда базы данных — это картина, которая постоянно отображаетдля существующих пользователей постоянно вводимые и изменяемые данные, допуская, что если система правильно разработана, она будет функционировать без сбоев.Однако реально, благодаря человеческим или компьютерным сбоям, ошибки время отвремени случаются, и поэтому хорошие компьютерные программы стали применятьспособы отмены действий, вызвавших такие ошибки.Команда SQL, которая воздействует на содержание или структуру базы данных— например команда модификации DML или команда DROP TABLE, — не обязательно будет необратимой.

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

COMMIT можетсделать все изменения постоянными с помощью транзакции, а ROLLBACK может откатить их братно или отменить. Новая транзакция начинается после каждой командыCOMMIT или ROLLBACK. Этот процесс известен как диалоговая обработка запросовили транзакция. Синтаксис, чтобы оставить все ваши изменения постоянными вовремя регистрации, или во время последнего COMMIT или ROLLBACKCOMMIT WORK;Синтаксис отмены изменения ROLLBACK WORK;В большинстве реализаций, вы можете установить параметр, называемыйAUTOCOMMIT.

Он будет автоматически запоминать все действия, которые будут выполняться. Действия, которые приведут к ошибке, всегда будут автоматически "прокручены" обратно. Если это предусмотрено в вашей системе, для фиксации всехваших действий, вы можете использовать эту возможность с помощью команды типа:SET AUTOCOMMIT ON;Вы можете вернуться к обычной диалоговой обработке запросов с помощью такой команды:SET AUTOCOMMIT OFF;Имеется возможность установки AUTOCOMMIT, которую система выполнит автоматически при регистрации.Если сеанс пользователя завершается аварийно — например, произошел сбойсистемы или выполнена перезагрузка пользователя, — то текущая транзакция выполнит автоматический откат изменений. Это — одна из причин, по которой вы можетеуправлять выпонением вашей диалоговой обработки запросов, разделив ваши команды на большое количество различных транзакций.

Одиночная транзакция не должнасодержать много несвязанных команд; фактически, она может состоять из единственной команды.Транзакции, которые включают всю группу несвязанных изменений, не оставляют вам фактически никакого выбора, сохранить или отклонить целую группу, если выхотите отменить только одно определенное изменение. Хорошее правило, которомунадо следовать, это делать ваши транзакции, состоящими из одной команды или нескольких близко связанных команд. Например, предположим, вы хотите удалить продавца Motika из базы данных. Прежде, чем вы удалите его из таблицы Продавцов, высначала должны сделать что-нибудь с его порядками и его заказчиками.

(Если используются ограничения внешнего ключа, и ваша система, следуя ANSI, ограничиваетизменение родительского ключа, у вас не будет выбора, делать или не делать этого.Это будет сделано обязательно.)Одно из логических решений будет состоять в том, чтобы установить поле snumв его порядках в NULL, в следствии чего ни один продавец не получит комиссионные вэтих порядках, пока комиссионые не будут предоставлены заказчикам для Peel. Затемвы можете удалить их из таблицы Продавцов:UPDATE OrdersSET snum = NULLWHERE snum = 1004;UPDATE CudomersSET snum = 1001WHERE snum = 1004;DELETE FROM SalespeopleWHERE snum = 1004;Если у вас проблема с удалением Motika (возможно, имеется другой внешнийключ, ссылающийся на него, о котором вы не знали и не учитывали), вы могли бы отменить все изменения, которые вы сделали, до тех пор, пока проблема не будет определена и решена.Более того, это должна быть группа команд, чтобы обрабатывать ее как одиночную транзакцию.

Вы можете предусмотреть это с помощью команды COMMIT, и завершить ее с помощью команды COMMIT или ROLLBACK.КАК SQL ОБЩАЕТСЯ СРАЗУ СО МНОГИМИПОЛЬЗОВАТЕЛЯМИSQL часто используется в многопользовательских средах — в средах, где сразумного пользователей могут выполнять действия в базе данных одновременно.

Этосоздает потенциальную возможность конфликта между различными выполняемымидействиями. Например, предположим что вы выполняете команду в таблице Продавцов:UPDATE SalespeopleSET comm = comm * 2WHERE sname LIKE 'R%';и в это же время, Diane вводит такой запрос:SELECT city, AVG (comm)FROM SalespeopleGROUP BY city;Может ли усредненное значение (AVG) Diane отразить изменения, которые выделаете в таблице? Не важно, будет это сделано или нет, а важно, что бы были отражены или все, или ни одно из значений комиссионных (comm), для которых выполнялись изменения.

Любой промежуточный результат является случайным илинепредсказуемым, для порядка в котором значения были изменены физически. Выводзапроса не должен быть случайным и непредсказуемым.Посмотрим на это с другой стороны. Предположим, что вы находите ошибку ипрокручиваете обратно все ваши модификации уже после того, как Diane получила ихрезультаты в виде вывода. В этом случае Diane получит ряд усредненых значений,основанных на тех изменениях, которые были позже отменены, не зная, что ее информации неточна.Обработка одновременных транзакций называется параллелизмом или совпадением и имеет ряд возможных проблем, которые могут при этом возникать.

Имеютсяследующие примеры:* Модификация может быть сделана без учета другой модификации. Например, продавец должен сделать запрос к таблице инвентаризации, чтобы найти десятьфрагментов пунктов торговцев акциями, и упорядочить шесть из них для заказчика.Прежде, чем это изменение было сделано, другой продавец делает запрос к таблицеи упорядочивает семь из тех же фрагментов для своего заказчика.ПРИМЕЧАНИЕ: Термин "упорядочить", аналогичен общепринятому — "заказать",что в принципе более соответствует логике запроса, потому что с точки зрения пользователя, он именно "заказывает" информацию в базе данных, которая упорядочиваетэту информацию в соответствии с "заказом".* Изменения в базе данных могут быть прокручены обратно уже после того,как их действия уже были закончены. Например если Вы отменили вашу ошибкууже после того, как Diane получила свой вывод.* Одно действие может воздействовать частично на результат другого действия.

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

Это будет невозможно сделать, если модификация была выполнена во время вычисления функции.* Тупик. Два пользователя могут попытаться выполнить действия, которыеконфликтуют друг с другом. Например, если два пользователя попробуют изменитьи значение внешнего ключа и значение родительского ключа одновременно.Имеется много сложнейших сценариев которые нужно было бы последовательнопросматривать, если бы одновременные транзакции были неуправляемыми. К счастью, SQL обеспечивает вас средством управления параллелизмом для точного указания места получения результата. Что ANSI указывает для управленияпараллелизмом — это что все одновременные команды будут выполняться по принципу — ни одна команда не должна быть выдана, пока предыдущая не будет завершена (включая команды COMMIT или ROLLBACK).Более точно, нужно просто не позволить таблице быть доступной более чем дляодной транзакции в данный момент времени.

Характеристики

Тип файла
PDF-файл
Размер
1,41 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее