Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Атрибуты, схема отношения, схема базы данных




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

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

Схема нашего отношения СТУДЕНТ запишется так:

СТУДЕНТ (№ студенческого билета. Номера студенческих билетов

Имя. Имена. Дата рождения. Даты рождения.

Курс. Номера_курсов. Специальность Специальности).

Степень отношения – это число его атрибутов. Отношение степени один называ­ют унарным, степени два – бинарным, степени три – тернарным, …, а степени п – n -арным.

Степень отношения СТУДЕНТЫ равна пяти, то есть оно является 5-арным.

Схемой базы данных называется множество именованных схем отношений.

Кортеж

Кортеж, соответствующий данной схеме отношения, представляет собой множе­ство пар {имя атрибута, значение}, которое содержит одно вхождение каждого име­ни атрибута, принадлежащего схеме отношения. «3начение» является допусти­мым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Тем самым степень кортежа, то есть число элементов в нем, совпадает со степенью соответствующей схемы отношения. Иными словами, кор­теж – это набор именованных значений заданного типа.

Схему отношения иногда называют также заголовком отношения, а отношение как набор кортежей – телом отношения.

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

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

Кардинальным числом или мощностью отношения называется число его кортежей. Мощность отношения СТУДЕНТЫ равна 6. В отличие от степени отношения кар­динальное число отношения изменяется во времени.

Пустые значения

В некоторых случаях какой-либо атрибут отношения может быть непри­меним. На­пример, в рассматриваемом в качестве примера отношении СТУДЕНТЫ может также храниться информация о потенциальных абитуриен­тах, посещающих под­готовительные курсы вуза или студентах, взявших академический отпуск по болезни. В этом случае неприменимыми оказываются атрибуты «№ студенческого билета» и «Курс» (так как абитуриенты еще не поступили в вуз и студенты, взявшие академический отпуск, либо не имеют студенческого билета и не могут быть отнесены к како­му-либо курсу). Кроме того, иногда при вводе информации в строку реляционной таблицы некоторые данные могут быть неизвестны и выясняться позже. (Для наше­го примера – при поступлении на подготовительные курсы абитуриент еще не оп­ределился окончательно, на какую специальность он будет поступать.)

В обоих указанных случаях в поля, соответствующие неприменимым или неизве­стным атрибутам, ничего не заносится, и строка записывается в базу данных с пу­стыми значениями этих атрибутов.

Следует понимать, что пустое значение – это не ноль и не пустая строка, а неизве­стное значение атрибута, которое не определено в данный момент времени и в прин­ципе может быть определено позднее.

Для обозначения пустых значений полей используется слово NULL.

Ключи отношения

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

Более строго определить понятие первичного ключа можно следующим образом: если R – отношение с атрибутами A 1, A 2,...., Аn, то множество атрибутов К = (Ai, Aj,...., Ak) отношения R является первичным ключом этого отношения тогда и толь­ко тогда, когда удовлетворяются два независимых от времени условия:

уникальность: произвольный момент времени никакие два различных корте­жа отношения R не имеют одного и того же значения для Ai, Aj,...., Ak;

минимальность: ни один из атрибутов Ai, Aj,...., Ak не может быть исключен из К без нарушения уникальности. Для каждого отношения свойством уникальности обладает по крайней мере пол­ный набор его атрибутов. Однако требуется обеспечить и условие минимальности. Поэтому, как правило, в отношении всегда имеется один атрибут, обладающий свойством уникальности и являющийся первичным ключом.

В зависимости от количества атрибутов, входящих в ключ, различают простые и сложные (или составные) ключи.

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

Сложный или составной ключ ключ, состоящий из нескольких атрибутов.

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

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

Искусственный или суррогатный ключ ключ, созданный самой СУБД или поль­зователем с помощью некоторой процедуры, который сам по себе не содержит ин­формации. Искусственный ключ используется для создания уникальных иден­тификаторов строк, когда сущность должна быть описана полностью, чтобы од­нозначно идентифицировать конкретный элемент. Искусственный ключ часто используют вместо значимого сложного ключа, который является слишком гро­моздким, чтобы использоваться в реальной базе данных. Система поддерживает искусственный ключ, но он никогда не показывается пользователю.

Естественный ключ ключ, в который включены значимые атрибуты и который, таким образом, содержит информацию.

В рассматриваемом нами примере в качестве первичного ключа отношения СТУДЕН­ТЫ можно рассматривать атрибут № студенческого билета. Причем данный ключ будет естественным, так как он несет вполне определенную информацию.

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

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

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

В некоторых реляционных СУБД допускается изменение первичного ключа. Иногда это бывает действительно полезно. Однако прибегать к этому следует лишь в случае крайней необходимости.

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

Второй, довольно существенный недостаток естественных ключей состоит в том, что, как правило, уникальные естественные ключи являются составными и содер­жат строковые атрибуты. Как уже отмечалось выше, максимальная скорость вы­полнения операций над данными обеспечивается при использовании простых це­лочисленных ключей. Таким образом, с точки зрения быстродействия системы естественные ключи часто оказываются неоптимальными.

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

Следует заметить, что во многих практических реализациях реляционных СУБД до­пускается нарушение свойства уникальности кортежей для промежуточных отноше­ний, порождаемых неявно при выполнении запросов. Такие отношения являются не множествами, а мультимножествами, что в ряде случаев позволяет добиться опреде­ленных преимуществ, но иногда приводит к серьезным проблемам.

В любой из таблиц может оказаться несколько наборов атрибутов, которые можно выбрать в качестве ключа. Такие наборы называются потенциальными или аль­тернативными ключами.

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

– UNIQUE – ограничение уникальности, значения вторичных ключей при дан­ном ограничении не могут дублироваться;

– NOT NULL – при данном ограничении ни один из атрибутов, входящих в со­став вторичного ключа, не может принимать значение NULL

Перекрывающиеся ключи сложные ключи, которые имеют один или несколько общих столбцов.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных