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

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

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

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

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

Например, может быть предусмотрено, чтобы в базе данных К отсчет идентификационных значений начинался с 1, в базе данных  — с 10001, а в базе данных С— с 20001. Таким образом, появляется возможность без опасений публиковать данные всех этих трех баз данных в какой-то четвертой базе данных. Но это не может продолжаться до бесконечности. Как только, допустим, база данных А вырастет в объеме и станет включать больше 9999 строк, начнутся большие неприятности. На это можно было бы возразить, указав, что решением может служить разделение начальных значений не на 10000, а на 100000 или даже на 500000.

Но если обмен данными с таблицей происходит достаточно активно, то указанное решение лишь отдаляет неизбежный конец. Именно в связи с этим применяется решение, основанное на ключевом слове КОХОО1РООЬ. Столбцы с атрибутом КОХ601РОО1. во многом напоминают столбцы с атрибутом 10ЕХ11Т1 в том, что обычно используются для однозначной идентификации каждой строки в таблице. А их отличительной особенностью является гораздо большая длина последовательности значений в столбце КОХ6010ОО1., в пределах которой система гарантирует полную уникальность вырабатываемых значений.

В СУБД з(~1. Зегтег при формировании значений КОХ601РООЬ применяется не наращивание числовых значений, а выработка так называемых глобально уникальных идентификаторов, или СШР (С!оЬа!!у 1)п!с!пе !сепг!Вег). Можно условно считать, что значения столбцов идентификации обычно являются уникальными во времени (если параметры, применяемые при выработке этих значений, остаются неизменными), но они не уникальны в пространстве. Поэтому, если эксплуатируются две копии таблиц в разных базах данных, строкам обеих этих таблиц присваиваются повторяющиеся значения в столбцах идентификации.

На первых порах в процессе эксплуатации таких баз данных связанные с этим потенциальные проблемы часто не обнаруживаются, а когда настает время объединить строки обеих таблиц в виде одной реплицируемой таблицы, возникают значительные сложности. С другой стороны, значения 6010 являются уникальными и в пространстве, и во времени. Создание и модификация таблиц 181 Значения УУ1У в наши дни находят в вычислительной технике все боаее шифохое Роспфостфанение. Например, офомное количество таких значений обнаруживается при проверке рееспфа опфаиионной сиспммы )Агзп)злое.

Любое значение УУ10 является 128-битовым, поэтому если оно рассматривается как двоичное значения вьфаженное с паиоисью одного из числовых типов, то требует дзя своего представления в десятичной фсфме не меньше 38 знаков. Согласно теофетичесним Расчтнам, если бы новое значение УУ10 вьфабатыволось чфез каждую секунду то до появления дубзиката числа с такай значностью прошли бы миллионы лет Значенья УУ1У вьфабатываются на основе использования некотсфого сочетания инфофмаиионньсх компонентов, причем эти компоненты вьбраны таким образом, чтобы каждый из них бьш уникальным либо в пространстве, либо во времени.

А после использования всех этих компонентов в их сочетании формгфуезпся значение, дзя которого с точки зрения статистики гарантируется уникальность в пространстве и времени. Обычно в программировании для выработки значений СУ1У используется один из вызовов АР1-интерфейса %(не(озез, а в языке ЯО(.

предусмотрена возможность не только задать для столбца опцию ЕОХСУ10СОЬ, но и применить специальную функцию, возвращающую значение СУ1У; эта функция называется МЕп1У () и может быть вызвана в любое время. КЛЮг(ВВОВ слово С01ьБсчТЕ Опция ССЬЬАТЕ действует главным образом по такому же принципу, как и в команде СВЕАТЕ УАТАВАБЕ; основное различие состоит в том, что в данном случае область действия становится более узкой (поскольку она определяется на уровне столбца, а не на )ровне базы данных). Ключевое слово итъ и (или) ист Иуы Опция МУьь и (или) НОт 1чпьь имеет довольно простое назначение — с ее помощью можно указать, допускает ли столбец, к которому она относится, ввод Х(ЗЬ(:значений, или нет.

По умолчанию сразу после инсталляции СУБД ЗОЬ Бегчег для любого столбца задается значение опции НОТ 1ЧУЬЬ, если только во время инсталляции не будет предусмотрена возможность применения неопределенных значений, или 1ч()П: значений (пц!1аЬ(11су). Тем не менее имеется очень большое количество параметров настройки конфигурации сервера, которые могут повлиять на эту опцию и изменить способ ее применения. Например, значение этой опции может измениться после задания любого значения с помощью хранимой процедуры эр с1ЬсжрС1ече1 или установки опций совместимости со стандартом Аучз1. АятОр;-НгавтюятЕЛЬСНЕ:рЕКОМЕИдэуЕт-",яЕНО' ЗпдавдтЬ(ЕПцИф ИУЬЬ'; десе'.Стбвб((а',При".,..ЕОЗдйПИИ Л(вбей-'табйпйм: Эта'",рЕКОЗМЕНдояцйя,:'Обуляда)Зайеда",."Чтя яВК удСЕ'баете'Ехажет), 'В:яЗУБД Зф,':,,ВВЗЧЕГПрадуПМОтрЕНП; брЛЬПЗЕЕ' КОЛИЧЕзвтаб, раЗЛИЧНЫХ,.'Па ра Матроса'- Наетрпйк(Е'=КпснфятуейЬ)И)Е„-' КптОрЫЕ;МоууЗППОВЛИяты';Натп;::ЮКба,:аИЕЧЕНИЕ',:будит исппльеовауйряв ПиетемвзлбуМблча(зию для'.ел~вделелия врймежйости евой:еСтпУлбяц' неап(зесделепнуъ знйчен(ея'-(й~МЛ:.'-'знач)ения),-Еппл:приформирсоебяииппйрлтор таблицы(зезрабптчяск '',полагается:тплькб,'.не.'такие знач1ения'„:;.задйпныге пе умолчал(р .то-в 'дальнейшем:.может"обнаружить'.1чтппееве'-ео, ййгейеэрия'рьабетак)т;'прасаильнб='(из,"ва того нота'аНМуЛИ:Ктв'.-'те друГПй-:.ИЗМЭЕСВ((Л; О)(ИН',ИЗ:Оняэеяц(ИХСя,:К "Етпьщ".ПасрЕМЕтрЬОВжСтйОйхзнс';=:НСЕ учэитывзя:всех:аезмзоз(еь(к'Поппеддтзсзий).

182 Глава 5 Ограничения столбца В настоящей книге ограничениям будет посвящена целая глава, поэтому в этом разделе не будем терять времени на их подробное описание. Тем не менее именно сейчас целесообразно рассмотреть, что представляют собой ограничения столбца. Кратко можно отметить, что ограничения столбца представляют собой ограничения и правила, касающиеся данных, которые могут быть вставлены в тот или иной столбец, определяемые на уровне отдельных столбцов. Например, предположим, что один из столбцов предназначен для хранения числовых обозначений месяцев года. Безусловно, можно определить такой столбец, как имеющий тип с1пуспс, но подобное определение не исключает возможности вставки в него числа 54.

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

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

Рассмотрим синтаксис вычисленного столбца: <со1ото пате> АЗ <сотросео со1отп ехргеззаоо> Первый элемент этого определения, <со1итп паве>, практически остается таким же, как и в других определениях столбцов, — он задает имя столбца, в котором будут представлены вычисленные значения. Но это — просто псевдоним, который должен использоваться для ссылки на значение, вычисляемое в соответствии с выражением <сотрпгеб со1птп ехргезэ1оп>, которое следует за ключевым словом Ая. Еще одним элементом этого определения является выражение вычисленного столбца. Это выражение может представлять собой любое обычное выражение, в котором используются литералы и (или) значения столбцов из той же таблицы. Создание и модификация таблиц 183 Поэтому применительно к рассматриваемому примеру с ценой и количеством можно определить столбец итоговой цены следующим образом: ехгеппеагс1се АЯ Рс1се * Опапгуту Чтобы показать на примере использование литерала, предположим, что в магазине установлена фиксированная наценка на все товары, которая составляет 20% от стоимости.

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

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

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

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