Программирование баз данных MS SQL Server (1084479), страница 53
Текст из файла (страница 53)
Например, если требуется сформировать сценарии для других объектов базы данных, то достаточно перейти к этим объектам и щелкнуть правой кнопкой мыши на их обозначении, во многом аналогично тому, как был выполнен щелчок правой кнопкой мыши на обозначении базы данных Ассоппебпд. После этого создается необходимый сценарий ЗОЬ. Вполне очевидно, что благодаря использованию рассматриваемых средств задача составления сценариев упрощается до предела.
Разумеется, после того как база данных станет достаточно сложной, немного усложнится и сам способ формирования относящихся к ней сценариев по сравнению с данным конкретным примером, но все равно этот процесс остается гораздо менее сложным по сравнению с написанием всех необходимых сценариев вручную. В действительности читателю станет гораздо проще работать только после того, как он изучит все возможности формирования сценариев, а также освоит намного больше информации по данной теме, изучив материал остальных глав настоящей книги. Резюме В настоящей главе приведены основные сведения об использовании операторов СКЕАТЕ, АЕТЕК и РКОК для создания, модификации и удаления баз данных и таблиц. Безусловно, на этом описание указанных операторов далеко не исчерпывается, поэтому им будет посвящена значительная часть излолсения в остальных главах.
Кроме того, рассмотрен целый ряд опций, применяемых в определениях баз данных и таблицах, которые позволяют получить полный контроль над данными. Наконец, в 210 Глава 5 атой главе приведены вводные сведения об использовании программы Мапа5ешеш Яспй1о для упрощения задач администрирования данных, а также для более простого проектирования структуры объектов и создания сценариев. На данный момент читатель уже имеет достаточную подготовку для того, чтобы приступить к изучению таких сложных тем, как компоновка таблиц, к освоению понятий нормализации и переходу к созданию более общего проекта базы данных. Теы не менее, прелСде чем перейти к рассмотрению указанных вопросов проектирования, необходимо ознакомиться с информацией об ограничениях и ключах.
Упражнения 5.1. Создайте сценарии 591. для таблиц Спзсопегз и Евр1оуеез, используя средства формирования сценариев программы Мапайетеп~ бгпй1о 5.2. Подготовьте сценарий создания базы данных иуВВ без использования программы Мапаяетепг ЬгпЖо. Установите начальный размер базы данных 17мВ и журнала 5МВ; увеличение размеров базы данных и журнала должно происходить с шагом 5МВ. 5.3.
Создайте таблицу Воо с единственным символьным полем переменной длины Со11; установите ограниченный размер столбца Со11, равный 50 символам. Ограничения В предыдущих главах речь уже шла об ограничениях, а данная глава полностью посвящена этой теме. В последних нескольких версиях ЬЯ1. Яегтег были внесены значительные изменения, касающиеся поддержки ограничений, и эта тенденция продолжилась с выпуском ЯЯ1. 5егтег 2005.
До сих пор в настоящей книге тема ограничений неоднократно затрагивалась в различных контекстах, но мы обязаны снова вернуться к изложенному материалу, чтобы читателю было легче приступить к изучению данной темы, если он решил сразу же перейти к текущей главе. 'Огра1ничеэниее,'-,',"'этэо,' 'прежде-'врегп",':формусрировк~:требований,-к,'))енным" Ограсиичении,"устайаэврневаатся=.на'-угровец:супец~:;ивэи:,таблицы': и'гарантиьруат сеуотвсетствие."дланям рпрвйьет ленным':правилам",обеСйеЧенив,целостности.данных; В связи с этим следует еще раз подчеркнуть мысль о том, что за обеспечение целостности данных отвечают не программы, в которых используется база данных, а непосредственно база данных, о чем уже было гказано в главах 1 и 2.
И даже краткие размышления на эту тему позволяют прийти к выводу, что такие свойства базы данных действительно являются очень удобными. Дело в том, что команды на вставку, обновление и удаление данных поступают в базу данных из многих источников. Причем даже в автономных приложениях (в этом контексте таковыми считаются приложения, в которых доступ к базе данных осуществляет только одна программа) обращения к одной и той же таблице могут поступать из различных мест программы.
Но в действительности чаще всего возникают еще более сложные ситуации. Например, одновременно с доступом со стороны приложения иногда изменения в данные вносит администратор базы данных (или сам программист, если он совмещает функции администратора базы данных) в целях устранения обнаруженных проблем. А на практике нередко возникают настолько сложные ситуации, что к одному-един- 212 Глава б ственному фрагменту данных, не говоря уже обо всей базе данных, прокладываются буквально сотни различных путей доступа для обеспечения работы сложного многопользовательского приложения.
Возможность возложить ответственность за поддержание целостности данных на саму базу данных появилась не сразу, но благодаря внедрению связанных с этим средств произошли буквально революционные изменения в методах управления базой данных. Это отнюдь не означает, что любая попгятка вставки данных в базу данных должна теперь осуществляться успешно, но в ответ на возможные нарушения в работе, которгяе могут при этом возникнуть, современная база данных действует превентивно, а не пытается лишь исправить возникающие ошибки. В настоящее время существует возможность заблаговременно, еще на этапе разработки базы данных, исключать значительную часть причин появления ошибочных данных в базе данных, связанных с неправильной работой приложения, поскольку для обеспечения целостности данных может применяться сама база данных.
Для этого в основном служат ограничения (кроме них, к числу наиболее широко применяемых средств обеспечения целостности данных относятся типы данных и триггеры). В настоящей главе приведен общий обзор следующих трех типов ограничений. С3 Ограничения сущностей. О Ограничения домена. О Ограничения ссылочной целостности. Кроме того, более подробно будут рассматриваться конкретные методы реализации каждого из ограничений этих типов, включая перечисленные ниже. 13 Ограничения первичного ключа (РЕ1МАКУ КЕУ).
О Ограничения внешнего ключа (РОНЕ16И КЕУ). О Ограничения уникальности (ОН1СГЗЕ, именуемые также ограничениями альтернативного ключа). О Ограничения проверки (СНЕСК). 13 Ограничения заданных по умолчанию значений (РЕРА33ЬТ). О Правила. О Заданные по умолчанию значения (подобные ограничениям 33ЕРА33ЕТ, но все же отличные от них).
-ДВа:ИЗ:НанбОЛЕЕ;-ШИРОКО',ИСПОЛЬВУЕМЫХ ВИДОВ Двййтанй йс)3бйСПЕЧЕНИ)О:, СОЫЛОЧНсОй.ЦЕЛботисстКИ вЂ”.,'",.КВС3адНЫЕ 33би)ОВЛЕНИя;И„'КаркедюивудазЛЕНИН-',. ВйврлйЕ ПрпуЧИЛИ СВЕОЛОд: 'дйрло3)),'в вврбии.бй)(.'бе3те(,2ООО;:до)тек 'обр'-'пользователи';вире)кепи:свйв'недовбльствое ЕутоутсйВНЕЫ йрддЕ(ЛККИ:Втйх', Срвдотл; НО НОМПаНИЛ;.МШГОВОФ ОотВВИЛа-НврзвзВЛИВОВВНГНИМИ НЕКВтерЫв.друтИВ, О6ЛВСтИ ОбЕСПЕЧгаййй)ССЬЗЛОЧНОй цЕЛмьетНОЛТИ(ПЕ: Стсймдлрту: ййб)„: ЭтИ:, ":,Срйдотев '66 ЛИ Веэдеиумт В:Веронн ЙК:ЗЕЛЗЕГДООб; МрввхдоНЫЕ двйотбкл'И:друтнв,орбдотл»: ,.:: ббВСПЕЧйийи ССЫЛОЧГНОй ЦЕЛОЪОтйаотм,':СзсстаатотВУЩЗНИЕ:СтВНДйРт)(АЭ)$3;:6УДУт ПВДРОбНО;.
( опйсвнь$ при,рассмотрении Ограничений:внв3цнуего'кпя3чв; ебйе1бн) кет. Кроме того, в настоящей главе будут очень кратко описаны триггеры и хранимые процедуры как методы реализации правил обеспечения целостности данных (гораздо больший объем сведений по этим темам будет приведен в следующих главах).
Ограничения 213 Типы ограничений Предусмотрен целый ряд различных способов реализации ограничений, но все эти способы относятся к одной из трех категорий — ограничения сущностей, ограничения домена и ограничения ссылочной целостности (рнс. 6.1). ЕЪс. 6.1.
Основные ншны о~аничений Ограничения домена Ограничения домена распространяются на один или несколько столбцов. Под этими ограничениями подразумеваются способы обеспечения того, чтобы какой-то конкретный столбец или ряд столбцов соответствовал определенным критериям. Эти ограничения применяются при вставке илн обновлении строки без учета того, что в таблице имеются какие-либо иные другие строки; интерес представляют только данные рассматриваемого столбца. Например, как ограничение домена рассматривается такое ограничение, с помощью которого требуется обеспечить наличие в столбце ппйсггйсе только значений, больших или равных нулю.
С учетом этого ограничения будет отвергнута любая строка, в которой значение БпйСРгйсе не отвечает указанному условию, но тем самым фактически принудительно поддерживается правило обеспечения целостности, позволяющее гарантировать соответствие указанному ограничению всего 214 Глава б столбца (независимо от того, сколько строк имеется в рассматриваемой таблице).
В качестве домена служит столбец, а ограничение представляет собой ограничение домена. Ограничения укаэанного типа будут рассматриваться при описании ограничений СНЕСК, правил, заданных по умолчанию значений и ограничений РЕРАРЬТ. Ограничения сущности Ограничения сущности полностью относятся к отдельным строкам. В действительности в ограничении этого типа не рассматривается весь столбец как таковой; интерес представляет только какая-то конкретная строка.
Самым наглядным ограничением этого типа является такое ограничение, согласно которому в каждой строке таблицы должно присутствовать уникальное значение одного столбца или комбинации столбцов. На первый взгляд может показаться, что такое определение ограничения сущности, согласно которому, допустим, какой-то столбец должен содержать уникальные значения, полностью совпадает с определением ограничения домена. Но фактически дело обстоит иначе. В формулировке ограничения сущности ничего не сказано о том, что данные столбца должны соответствовать какому-то определенному формату или что значения в столбце должны быть больше или меньше какой-то величины. Единственное, что сказано, относится только к определенной строке и предъявляемое к ней требование состоит лишь в том, чтобы содержащееся в ней значение больше не встречалось в какой-либо другой строке в той же таблице.