Главная » Просмотр файлов » Программирование баз данных MS SQL Server

Программирование баз данных MS SQL Server (1084479), страница 98

Файл №1084479 Программирование баз данных MS SQL Server (Программирование баз данных MS SQL Server) 98 страницаПрограммирование баз данных MS SQL Server (1084479) страница 982018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Одним из решений могло бы стать сопровождение отдельной таблицы, которая включает только необходимые столбцы, как показано в табл. 10.2. Таблица 10.2. Общедоступные столбцы таблицы езвр1оуееа Общедоступные столбцы таблицы Еир1оуееа Етр1оуее1О Гссвпнаее Мтбб1етп111а1 ьавснаее т111е Нгсеоапе теппгпаС1опвапе Мапаоесктр1О Оерагоеепп Представления 383 Безусловно, на первый взгляд создается впечатление, что такое решение соответствует нашим потребностям, однако при его осуществлении возникают описанные ниже серьезные проблемы.

0 Объем используемого дискового пространства увеличивается вдвое. Н Возникает проблема синхронизации, обусловленная тем, что изменения, внесенные в одну таблицу, должны быть отражены в другой. 0 Количество выполняемых операций ввода-вывода также увеличивается вдвое (операции чтения и записи данных применяются к двум таблицам, а не к одной) при каждой вставке, обновлении или удалении строк. Простым и довольно изящным решением указанной задачи может стать представление. Если используется представление, то не требуется создавать копии данных, т.е. в базе данных хранится только один экземпляр данных (в таблице или таблицах, лежащих в основе представления), поэтому устраняются все недостатки, которые были описаны выше.

Вместо создания и сопровождения полностью отдельной таблицы можно просто создать представление, которое по своим функциональным возможностям почти ничем не отличается от отдельной копии таблицы. В настоящее время созданная нами таблица Евр1оуееэ пуста. Чтобы ввести в нее некоторые строки, загрузите файл С(зарсег10. зс(1 (предоставляемый в составе исходного кода) в программу Мапакешепг Ягпсйо и вызовите его на выполнение.

Затем введите следующее определение представления в базу данных Ассоппг1прр пяЕ Асссапптпя 60 СКЕАТЕ уТЕН Евр1оуеез ке АЯ ЗЕЬЕСТ Евр1оуеето, Гьгзпнаве, М1ЕЕ1етп1С1а1, Ьазгкаве, ттг1е, Нтгеваге, Тегвтпап1спсаге, МапаеегЕвр10, перагсвепе ГКОМ Евр1суеез После этого появляется возможность предоставить доступ к соответствующим данным таблицы Евр1оуееэ любым пользователям (прямо или косвенно). Это означает, что обеспечивается возмонсеость предоставлять полный доступ к таблице Евр1оуеее только тем пользователям, которым действительно требуется эта информация, но запретить непосредственный доступ к этой таблице всем прочим пользователям.

Вместо этого пользователям, в служебные обязанности которых не входит ознакомление со всей информацией таблицы Евр1оуееэ, может быть предоставлен доступ к представлению Евр1оуееэ че. Все желающие воспользоваться этой информацией смогут обратиться к ней так же, как и при использовании обычной таблицы: ЗЕЬЕСТ * ГЕОМ Евр1оуеез чн 384 Глава 10 РаССМатрмааакымй-:Приор,ФаКтИЧаСКИ:-Ещэа раЗ;-ПОдЧархйаагат'ИасбкьатдИМОСтЬ' Прнивтил Н. СОбЛЮВВНИВ'.ОлрЕдЕЛЕННЫХ:СлсзГЛа) мЕНИй;Об ИсМаиснаНИИ':ОьЧаМ.ужа'НаОдНОКргатНО бмгЛО СКаааНО В Наотт)ящай; КНИГа:В-даННрМ',СЛуЧаЕ.-'аВтОр.илоасгЛЬЗуат)дпяч ОбОЗНаЧВНснся''Прьадставлани)яь сурика,'. -'«~н;-и ото поаволчисаглагко опредалить.,'."чгоданйоа.'имя;относнтсяк йрадставдвгнию) а на к:таблица;,'но,,иногда,от,.

п)ользодаталя: псриходиуся":скрывать".нвкотарыа дотяпав"ОрГаНИЗацИИ,СрадетВ 'дьОСтуГ)а К бааз.даННйх„'Г)рэтОМьу СлацнаЛЬНО'убйратЬ ОбОЗНаЧаНИа,:,„,:ун.-а)ИМгаиакирКОтс))ЫХ' ПрадотаапайИй,,'.ЕСС))И,бм:таКОа'-'-,рЕШаНИа:,бйЛО Прн'- йято'в::брайном:,случая,стопригвлоСь) бы',назвать''прадставлайиа' по-'другому'(пгоскольку'имя емрзсоусеаз,'ужа икраилано'за,:баэрвой'табйицай):,"но)впзрактйчвско)й ра5оте.'нзеоднокрастно йртнксднтоя'.уб~ха)астЬТСя ВТОМ))НВСКОВЬКО радКО аат)ЙЧащтоя:ПОЛЬЗВВйт)ВЛИ,;СВОСОбййа-уЛОВИТЬграЗЛИЧИа)МаЛГ)ту;ПрацотьааЛаНИац,н".тайлнцай -аСЛИНаКЛЬГЗЛ ОлрадапнтЬ"ПО:ИМВНИ; ЧтО ото'-",,",'првдгстайланив,;"а.'на:тйбв)тца'.

Использование представлений как средств выборки по условию По-видимому, данный раздел — один из самых коротких в книге, поскольку трудно найти более простую тему по сравнению с изложенной в нем. Выше в данной главе уже было сказано, как создать простое представление, — для этого достаточно включить в оператор создания представления констр)тсцию БЕЗВЕСТ. А для обеспечения выборки данных в представлении по условию, как и в случае запроса, достаточно включить конструкцию ГНЕВЕ. Еще раз вернемся к примеру представления Еп1р1оуеез чн, который рассматривался в предыдущем разделе, и внесем в него небольшое дополнение для того, чтобы с его помощью формировался только список служащих, которые в настоящее время входят в кадровый состав.

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

А в данном случае нет никакого смысла включать информацию о дате увольнения в результирующий набор, поскольку нас интересуют только данные о служащих, которые в настоящее время продолжают работать в компании. Использование представлений для выборки данных по условию С учетом двух описанных выше особенностей представлений создадим новое представление на основе старого, внеся в него небольшие изменения: Представления 385 СнкатК ЧТЕМ С гесСКвр1оуеея АЯ В этом примере заслуживает внимания то,что изменилось имя представления и дополнительно введена конструкция ИНЕНЕ) кроме того,из списка выборки удален столбец Тегвгпа01опОаСе.

Проверим работу этого представления путем вызова на выполнение несложного оператора ЯЕЬЕСТ применительно к таблице Евр1оуеея и указания в списке выборки только тех данных, которые нас интересуют: ЯЕЬЕСТ Евр1суее10, Гггяснаве, Ьаягнаве, Тегвгсагуспсасе ГРОМ Евр1суеея В результате из всего объема данных таблицы будет получено лишь несколько столбцов: Гггягнаве Ьаягнаве Тегвгсас1споаге Евр1оуее10 (б гся(я) атбесгеС) Теперь вызовем на выполнение рассматриваемое представление; ЯЕЬЕСТ Евр1суее10, Гггяснавс, Ьаяснаве ГНОМ СсггессЕвр1суеея че Полученный при этом результирующий набор становится немного меньше: Гггягнаве Квр1суее10 Ьаяснаве Осхеу Рггссур1е Кг1гоу ВОЬ Осе Регег нсеаго Вг11у (4 гся(я) аббес еС) ЯЕЬЕСТ Евр1суее10, Гкгягнаве, МТСС1е1п1С1а1, Ьаягнаве, т1Г1е, Н1геогге, МасасегЕвр10, Оераггвесс ГНОМ Евр1оуеея ННЕНЕ Тегв1сасгспсасе 18 НОЬЬ Осе Регег Ягече Нсеаге Магу В Ьуу Оскеу Рггссгр1е Явугн Кг1гоу Сспсгагу всЬ НОЬЬ НОЬЬ 1997-01-31 00:00:00 НОЬЬ 1998-06-15 00:00:00 НОЬЬ 386 Глава 10 В этих данных отсутствуют сведения о некоторых служащих, а этого и требовалось добиться при создании представления.

Описание полученных результатов Как уже было сказано выше, рассматриваемое представление фактически является не чем иным, как оператором БЕЗВЕСТ, который скрыт от пользователей. Таким образом, пользователи получают возможность отвлечься от того, что содержится в самом операторе БЕЗВЕСТ, и учитывать лишь результаты, сформированные с его помощью, на таком же основании, как если бы эти результаты представляли сцбой отдельную таблицу.

Такую ситуацию можно сравнить с ситуацией применения производных таблиц, которые были описаны в главе 7. Кроме того, после вызова представления путем указания его имени осуществляется выборка данных по условию, поэтому в запросе, в котором указано имя этого представления, даже не приходится регламентировать условия выборки данных (поскольку это уже сделано с помощью представления). Более сложные представления Представления, рассматриваемые в этом разделе, действительно являются более сложными по сравнению с описанными выше, но вполне доступны для освоения.

Чаще всего наиболее сложные понятия, с которыми приходится сталкиваться при изучении представлений, все равно гораздо проще, чем многие другие концепции языка Я~1.. В действительности сложные представления отличаются от простых лишь тем, что в них дополнительно используются соединения, операции агрегирования, а также, возможно, некоторые варианты переименования столбцов. По-видимому, представления используются чаще всего для упрощения структуры данных, иными словами, для устранения тех сложностей доступа к данным, которые были вкратце описаны в начале данной главы.

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

В качестве примера снова рассмотрим базу данных Иоггпи1пб. Предположим, что руководители компании хотели бы иметь возможность вводить простые запросы, позволяющие узнавать, какие заказы были размещены в компании, какие товары упоминаются в заказах и кто разместил эти заказы. Таким образом, необходимо создать представление, применительно к которому руководители смогут выполнять очень простые запросы (напомним, что это представление создается в базе данных Иоггпк1пб): ц5Е Коггьк1пб 60 СВЕАТЕ Ч1ЕИ Сззгопегсгоегз чк АЯ зеьест сз.еоаравукапе о.огоегто, о.огоегпасе, Представления 387 об.ргобпст10, р.ргобистваве, об.Опапгтту, об.цпттРгтсе, об.ОпаптЕту * об.цпттРгьсе АБ ЕхтепбебРгЕсе РВОМ Спятовегя АЯ сп 1ННЕВ 001Н Огбегя АЯ о ОН си.сиятовег10 = о.спятовег10 1ННЕВ 001Н [Отбег Петатуя] АБ об ОН о.отбег10 = об.огбег10 1ЮНЕВ 001Н Ргобпстя АЯ р ОН об.Ргобяст1П = Р.Ргобпст10 Теперь выполним следующий простой оператор БЕЗВЕСТ: БЕЬЕСТ * РВОМ Спятовегогбегя чх В результате этого можно обнаружить, что осуществляется вывод большого количества строк (свыше 2000), но вместе с тем оказывается, что полученная информация стала гораздо проще и доступнее для понимания и анализа со стороны среднего пользователя.

Более того, даже без особой подготовки руководители компании (или любые заинтересованные пользователи) получают возможность непосредственно обращаться именно к тем данным, которые их интересуют, вводя, например, такие запросы: БЕЬЕСТ Соврапуняве, ЕхтепбебРттсе ЕВОН Спятовеготбегя гя ХНЕВЕ Огбегвате = '9!3/1996' Пользователи не обязаны знать, что данные, к которым они обращаются, получены в результате соединения четырех таблиц; все эти нюансы скрыты в представлении. Вместо этого пользователю достаточно применить лишь самые простейшие навыки (и в связи с этим не прилагать слишком значительных умственных усилий), чтобы получить все необходимые данные. ЕхтепдебРгбсе Совряпуняве 201.6000 417.0000 432.0000 ЫЬА-Бпрегвегсябо ЫЬА-Бпрегвегсябо ЫЬА-Бпрегвегсабо ]3 гох(я) яггестеб) ПЯЕ Ногтьябпб 00 СВЕАТЕ Ч1ЕХ УеятетбяуяОгбегя гх АБ ЯЕЬЕСТ сп.Совряпуняве, о.огбег1П, Мало того, запрос, лежащий в основе представления, может стать еще более целенаправленным.

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

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

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

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