Статья по теме: Фундаментальные концепции создания БД Выполнил: Галныкин Евгений Руководитель: Костина К.С.
Фундаментальные концепции БД
При создании собственной базы данных (БД) разработчик неизбежно сталкивается с некими основополагающими вещами. Среди них – фундаментальные концепции БД. В связи с этим обстоятельством обсудим ряд весьма важных понятий и терминов.
Определение. База данных – собрание данных, организованных для их легкого и быстрого поиска и восстановления.
Определение. Таблица – упорядоченное расположение данных, в котором данные размещены в столбцах и строках в существенно прямоугольной форме.
Таблица – физическое представление некоторого объекта (реального или мнимого). Заметим, что таблица – не есть изобретение современной компьютерной эпохи: наши предки задолго до появления ЭВМ представляли различные сведения в табличной форме.
Одно из ошибочных представлений относительно реляционной модели – отнесение термина «реляционный» к отношениям между таблицами. Фактически же он происходит от «relation», что означает математическое название таблицы.
Таблица и отношение – не одно и то же.
Определение. Отношение – структура, составленная из атрибутов (индивидуальные характеристики) и кортежей (наборов значений атрибутов, описывающих индивидуальные характеристики отдельных экземпляров). В пределах отношения экземпляры не могут повторяться – каждый экземпляр должен быть уникален. Экземпляры в пределах отношения считаются неупорядоченными. Если два экземпляра в отношении поменять местами, то отношение не изменится.
Отношение – строгая математическая концепция, основанная на теории множеств. Таблица – физическая реализация отношения со специальными свойствами. Можно сказать, что отношение может использоваться для определения всех таблиц, но не все отношения могут быть представлены как таблицы. Разумно предположить, что различия между этими понятиями столь тонки, что могут показаться бессмысленными.
Для обозначения таблиц используют также термин «сущность» (entity). Этот термин используют на стадии логического проектирования БД для обозначения концептуальной версии таблицы.
Реляционная модель существенно отличается названиями строк и столбцов: строки – кортежи, столбцы – атрибуты.
Согласно реляционной модели атрибуты не имеют какого-либо упорядочения. Столбцы в таблице имеют известное упорядочение. При проектировании таблиц существуют некие правила упорядочения их столбцов, например,
а) столбцы, образующие первичный ключ, размещаются в таблице слева;
б) далее следуют другие «более важные» столбцы;
в) реже читаемые столбцы размещаются справа.
Каждая строка в таблице должна содержать один и тот же набор столбцов. Каждый столбец таблицы должен иметь название, которое является уникальным среди названий столбцов этой таблицы.
Число столбцов таблицы определяет степень отношения.
Как ни странно, но каждый атрибут (столбец) таблицы характеризуется атрибутами. Наиболее важные из них:
а) допустимые значения столбца;
б) участвует ли столбец в идентификации строки;
в) обязательны ли столбцы для заполнения данными.
Сегодня достаточно традиционны следующие средства для ограничения значений в столбцах:
а) типы данных (базовые);
б) типы данных пользователя;
в) ограничения;
г) триггеры и хранимые процедуры.
В реляционной модели все они (средства) рассматриваются под заголовком «домены». Домен определяется как множество допустимых значений для некоторого атрибута.
механизм, не позволяющий вводить в столбец недопустимые значения. Сюда можно включить:
а) NULL-ограничения (определение обязательности ввода значения в столбец);
б) проверки-ограничения – механизмы, которые позволяют задать допустимый диапазон значений для столбца;
в) ограничение внешнего ключа – механизм поддержки отношений между таблицами.
Триггеры и хранимые процедуры также можно использовать для реализации домена столбца, однако у этих механизмов гораздо более мощное назначение. Триггер – механизм, который запускает некий программный код, когда в таблицу вводятся новые данные или изменяются существующие. Он (триггер) позволяет закодировать достаточно сложные правила домена, которые нельзя вписать в ограничения.
Хранимая процедура – также часть кода, размещенная в БД. Она может реализовать некие бизнес-правила при работе с таблицами в различных ситуациях, определять разграничение доступа разных пользователей к разным данным и т. п.
Особое значение имеет понятие идентификаторов строк таблицы. В реляционной теории отношение не может иметь повторяющиеся кортежи. Однако в таблице такая ситуация может наблюдаться. Это плохо хотя бы по следующим причинам:
а) невозможно отличить одну строку от другой; нет логического метода изменения или удаления отдельной строки;
б) если больше чем один объект имеет точно такие же атрибуты, это, видимо, опишет один и тот же объект так, что если произвести попытку изменения одной строки, то это должно привести к автоматическому изменению другой (такой же) строки; это означало бы, что имеют место зависимые строки.
Для преодоления этих недоразумений в рассмотрение вводится понятие потенциального ключа. Он используется для обеспечения уникальности некоторого атрибута или их совокупности. Сущность может иметь сколько угодно потенциальных ключей. Выбор потенциальных ключей – очень важный вопрос. Немалый процент ошибок проектирования БД возникает из-за того, что вовремя не определены все возможные потенциальные ключи.
По определению ключи могут быть составлены из любого числа столбцов, но по возможности это число лучше ограничить, насколько это возможно. Если ключ состоит из нескольких столбцов (или выражений из столбцов), то такой ключ называют составным.
Особое положение занимает ключ, который называется первичным. Это ключ, который позволяет идентифицировать отдельную строку таблицы. Такой ключ в отдельной таблице может быть только один.
Искусственные ключи - это изобретение, единственной причиной которого является возможность идентификации отдельной строки. Особенность использования такого ключа в том, что конечный пользователь никогда не должен его видеть и никогда не должен с ним взаимодействовать. Он является указателем и ничем больше. При этом возникает любопытный вопрос: является ли искусственный ключ атрибутом записи?
Любой потенциальный ключ, не ставший первичным, является вторичным. Вторичные ключи очень важны для успешной работы с БД. Заметим, что большинство таблиц имеют больше чем один способ идентификации. Внешний ключ – столбец (комбинация столбцов), чьи значения соответствуют первичному ключу или уникальному ключу в той же самой или другой таблице. Существование внешнего ключа в таблице представляет реализацию отношений между таблицами. Внешний ключ не обязательно должен иметь уникальные значения.
15