Термины и определения
Рассмотрим термины, применяемые в системах управления базами данных.
База данных — это совокупность сведений (о реальных объектах, процессах, событиях или явлениях), относящихся к определенной теме или задаче, организованная таким образом, чтобы обеспечить удобное представление этой совокупности как в целом, так и любой ее части.
Система управления базами данных — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Таблица — это объект базы данных, в котором хранятся сведения по определенной теме, например о сотрудниках или товарах. Таблица состоит из записей и полей. Каждая запись содержит данные об одном элементе таблицы, например о конкретном сотруднике. Запись также часто называют строкой или экземпляром. Каждое поле содержит данные об одном аспекте элемента таблицы, например имя пользователя или адрес электронной почты. Поле также часто называют столбцом или атрибутом.
Архитектура БД — организация взаимодействия аппаратных средств.
Архитектура ODBC (Open DataBase Connectivity) — открытый интерфейс доступа к базам данных, т.е. взаимодействие процессора (ядра) базы данных Jet с внешними источниками данных.
Модели данных — схемы, характеризующие базы данных с разных сторон с целью определить оптимальное построение информационной системы.
Ядро базы данных — внутренняя структура СУБД, обеспечивающая доступ ко всем компонентам базы данных.
Пользователь БД — программа или человек, обращающийся к базе данных.
Запрос — процесс обращения пользователя к БД с целью ввести, получить или изменить информацию.
Транзакция — последовательность операций модификации данных в БД, переводящая ее из одного непротиворечивого состояния в другое непротиворечивое состояние.
Логическая структура БД — определение БД на физически независимом уровне, что ближе всего соответствует концептуальной ее модели.
Топология БД или структура распределенной БД — схема распределения физической организации базы данных в сети.
Отношение - обычно имеет простую графическую интерпретацию в виде таблицы, столбцы которой соответствуют атрибутам, а строки — кортежам, а в «ячейках» находятся значения атрибутов в кортежах. Тем не менее, в строгой реляционной моделиотношение не является таблицей, кортеж — это не строка, а атрибут — это не столбец. Термины «таблица», «строка», «столбец» могут использоваться только в неформальном контексте, при условии полного понимания, что эти более «дружественные» термины являются всего лишь приближением и не дают точного представления о сути обозначаемых понятий
В соответствии с определением К. Дж. Дейта, таблица является прямым и верным представлением некоторого отношения, если она удовлетворяет следующим пяти условиям:
Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несет в себе никакой информации).
Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несет в себе никакой информации).
Нет повторяющихся строк.
Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
Все столбцы являются обычными. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток.
Сущность — это то, о чем необходимо записывать информацию. Отсюда следует, что сущности (а значит, и связи) имеют некоторые свойства (properties), соответствую- щие тем данным о них, которые мы желаем записать, эти свойства должны сохранять- ся в базе данных. В общем случае свойства могут быть как простыми, так и слож- ными, причем настолько, насколько это потребуется. Домен представляет собой множество всех возможных значений определенного атрибута отношения. В процедурных языках программирования каждое переменное должно иметь тип, т. е. принадлежать некоторому типу данных, в реляционных БД каждый элемент данных должен принадлежать некоторому домену. Понятие домена, на практике, иногда отождествляют с типом данных (даже один из идеологов РБД Кристофер Дейт практически стирает различие между доменом и типом данных). Домен определяется путем задания базового типа данных, к которому относятся элементы домена и произвольного логического выражения, применяемого к элементу этого типа данных (ограничения домена). Элемент данных является элементом домена в том и только в том случае, если вычисление этого логического выражения дает резуль- тат истина. С каждым доменом связывается имя, уникальное среди имен всех доменов соответствующей базы данных. Отношение СТУДЕНТ включает 4 домена. Домен 1 содержит номера всех личных дел студентов, домен 2 – фамилии и имена студентов, домен 3 - названия (код) группы, до- мен 4 –название специальности. Каждый домен образует значения одного типа данных, например, числовые или символьные.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы. Формально, если переставить атрибуты в отношении, то получается новое отношение. Однако в реляционных БД перестановка атрибутов не приводит к образованию нового отношения. Если все атрибуты заголовка отношения определены на разных доменах, то обычно имена соответствующих доменов используют для именования атрибутов (это не устраняет различия между понятиями домена и атрибута).
Кортежем называется последовательность упорядоченных триплетов вида , по одному такому триплету для каждого атрибута. Третий элемент – v – триплета должен являться допустимым значением типа данных или домена T. В общем случае порядок кортежей в отношении, как и в любом множестве, не определен. Однако в реляционных СУБД для удобства кортежи все же упорядочивают. Чаще всего для этого выбирают некоторый атрибут, по которому система автоматически сор- тирует кортежи по возрастанию или убыванию. Если пользователь не назначает атрибута упорядочения, система автоматически присваивает номер кортежам в порядке их ввода. Иногда в литературе встречается определение кортежа, как множества элементов, но с математической точки зрения это не верно, множества в математике не упорядочены, а кортеж это всегда упорядоченный набор элементов.
Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ состоящий из одного атрибута называют простым, а состоящий из нескольких атрибутов- составным (сложным).
Каждое отношение обязательно имеет комбинацию атрибутов, которая может служить ключом. Ее существование гарантируется тем, что отношение - это множество, которое не содержит одинаковых элементов - кортежей. Т. е. в отношении нет повторяющихся кортежей, а это значит, что, по крайней мере, вся совокупность атрибутов обладает свойством однозначной идентификации кортежей отношения. В некоторых СУБД допускается создавать отношения, не определяя ключи. Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными (потенциальными) ключами отношения.
Тип данных, значения которых хранятся в реляционной базе данных, являются типизированными, т. е. известен тип каждого хранимого значения. Понятие типа данных в реляционной модели данных полностью соответствует понятию типа данных в языках программирования. Тип данных задает множество значений данного типа, набор операций, применимых к значениям типа и способ внешнего представления значений типа (литера- лов).Обычно в современных реляционных базах данных допускается хранение сим- вольных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (да- та, время, временной интервал). Во многих реляционных системах есть возможности для определения пользователями собственных типов данных.
1.4 Основные этапы проектирования баз данных
Проектирование баз данных — процесс создания схемы базы данных и определения необходимых ограничений целостности.
1.4.1 Концептуальное (инфологическое) проектирование
Концептуальное (инфологическое) проектирование — построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции. Такая модель создаётся без ориентации на какую-либо конкретную СУБД и модель данных. Термины «семантическая модель», «концептуальная модель» и «инфологическая модель» являются синонимами. Кроме того, в этом контексте равноправно могут использоваться слова «модель базы данных» и «модель предметной области» (например, «концептуальная модель базы данных» и «концептуальная модель предметной области»), поскольку такая модель является как образом реальности, так и образом проектируемой базы данных для этой реальности.
Конкретный вид и содержание концептуальной модели базы данных определяется выбранным для этого формальным аппаратом. Обычно используются графические нотации, подобные ER-диаграммам.
Чаще всего концептуальная модель базы данных включает в себя:
описание информационных объектов или понятий предметной области и связей между ними.
описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.
