Математический аппарат, используемый для моделирования табличного представления данных, получил название реляционной алгебры. В ней используются следующие основные понятия.
Сущность – это объект предметной области, которая исследуется и моделируется. Другими словами сущность – это любой различимый объект, о котором необходимо хранить информацию в базе данных.
Кортеж – это экземпляр сущности. Например для сущности «Студент» кортеж – это конкретный студент, например,: студент Иванов, студент Петрови т.д. Для сущности «Предмет» кортеж – это конкретный предмет: высшая математика, физика, история и т.д.
Атрибут отражает определенное свойство, качество, признак сущности. Например для сущности студент атрибутами могут быть: № зачетной книжки, № группы, фамилия, имя, отчество, год рождения, адрес, телефон, рост, вес, цвет волос и т.д.
Домен задает множество допустимых значений атрибута. Например для атрибута «Экзаменационная оценка» это будет интервал [0, 10]; для атрибута «Предмет» – перечень все учебных дисциплин, изучаемых в ВУЗе и т.д.
Смысл доменов состоит в том, что они ограничивают сравнения и позволяют правильно моделировать предметную область. Действительно, если атрибуты связаны с одним и тем же доменом, то сравнение значений этих атрибутов имеет смысл (например, минимальные, средние и максимальные температуры можно сравнивать между собой; аналогично, можно сравнивать даты и т д.). Если же атрибуты связаны с различными доменами, то сравнение значений таких атрибутов чаще всего лишено смысла, даже если эти значения выбираются из одного и того же множества значений (стоит ли сравнивать, например, № группы с № телефона?).
11. Определение сущности в реляционной алгебре. Свойства сущности.(сложный, если честно)
Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д.
Сущность (entity) – абстрактный объект определенного вида. Набор однородных объектов представляет собой множество сущностей (entity set). Понятие сущности обладает сходством с понятием объект (object), а множества с классом объекта. Отличие в том, что отсутствуют описания методов.
Сущность это объект, который может быть идентифицирован неким способом, отличающим его от других объектов множества, т.е. можно выделить признак или ряд признаков уникальных в пределах множества. Отсюда определяется ключ сущности - группа атрибутов. Другими словами: ключ сущности - это один, или несколько атрибутов, уникально определяющих данную сущность.
Иногда сущность – конкретный экземпляр объекта, иногда – абстрактный экземпляр в зависимости от контекста.
Графически сущность изображается в виде прямоугольника.
Пример. БД кинофильмов (актеров, студий т.п.).
Кинофильм – сущность. Коллекция фильмов – множество сущностей.
По аналогии – актеры сущности, но другого вида.
Киностудия – сущность третьего вида, перечень киностудий образует множество сущностей.
В процессе проектирования определяется структура реляционной БД (состав таблиц, их структура и логические связи). Структура таблицы определяется составом столбцов, типом данных и размерами столбцов, ключами таблицы.
К базовым понятиями модели БД «сущность – связь» относятся: сущности, связи между ними и их атрибуты (свойства).
Сущность – любой конкретный или абстрактный объект в рассматриваемой предметной области. Сущности – это базовые типы информации, которые хранятся в БД (в реляционной БД каждой сущности назначается таблица). К сущностям могут относиться: студенты, клиенты, подразделения и т.д. Экземпляр сущности и тип сущности - это разные понятия. Понятие тип сущности относится к набору однородных личностей, предметов или событий, выступающих как целое (например, студент, клиент и т.д.). Экземпляр сущности относится, например, к конкретной личности в наборе. Типом сущности может быть студент, а экземпляром – Петров, Сидоров и т. д.
Атрибут – это свойство сущности в предметной области. Его наименование должно быть уникальным для конкретного типа сущности. Например, для сущности студент могут быть использованы следующие атрибуты: фамилия, имя, отчество, дата и место рождения, паспортные данные и т.д. В реляционной БД атрибуты хранятся в полях таблиц.
Связь – взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД – это соединение между записями таблиц).
Сущности – это данные, которые классифицируются по типу, а связи показывают, как эти типы данных соотносятся один с другим. Если описать некоторую предметную область в терминах сущности – связь, то получим модель сущность - связь для этой БД.
12. Понятия возможного, первичного и альтернативного ключей.
Возможный ключ — в теории реляционных баз данных — атрибут(поле) или несколько атрибутов (полей)отношения (таблицы), совокупность значений которых отвечает требованиям, предъявляемым кпервичному ключу, то есть является уникальной для каждой записи в таблице.
Каждый возможный ключ, кроме выбранного первичным, называется также Альтернативный ключ.
Таблица может иметь несколько возможных ключей. Так, например, в таблице сотрудников фирмы однимвозможным ключом может являться табельный номер, другим — группа полей, хранящая данные личногодокумента сотрудника. Возможны и другие комбинации полей, также дающие уникальные значения длякаждой записи. Один из возможных ключей таблицы выбирается в качестве её первичного ключа.Теоретически, все возможные ключи равно пригодны в качестве первичного ключа, на практике в качествепервичного обычно выбирается тот из возможных ключей, который имеет меньший размер и включаетменьшее количество полей. Нередко при наличии в таблице нескольких естественных возможных ключей вкачестве первичного всё равно используется суррогатный ключ, в силу его известных преимуществ.
В реальных СУБД обычно имеется возможность специально описывать возможные ключи таблицы, неявляющиеся её первичным ключом. Для объявленных возможных ключей в БД создаются индексы,обеспечивающие быстрый поиск записей по набору значений полей ключа, и включаются механизмы, непозволяющие добавлять или редактировать записи таблицы таким образом, чтобы значение возможногоключа дублировалось в нескольких записях. Таким образом, помимо использования в качестве первичногоключа, возможные ключи могут применяться в качестве дополнительного средства поиска и контролякорректности данных в таблицах.
Перви́чный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».
С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. Однако в качестве первичного обычно выбирается тот из потенциальных ключей, который наиболее удобен для тех или иных практических целей, например для создания внешних ключей в других отношениях либо для создания кластерногоиндекса. Поэтому в качестве первичного ключа, как правило, выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.
Другой критерий выбора первичного ключа — сохранение уникальности со временем. Всегда существует вероятность того, что некоторый потенциальный ключ перестанет быть таковым в долговременной перспективе или при изменении требований к системе. Например, если номер студенческой группы включает последнюю цифру года поступления, то номера групп для идентификации групп уникальны только в течение 10 лет. Поэтому в качестве первичного ключа стараются выбирать такой потенциальный ключ, который с наибольшей вероятностью не утратит уникальность.
Исторически термин «первичный ключ» появился и стал использоваться существенно ранее термина «потенциальный ключ». Вследствие этого множество определений в реляционной теории были изначально сформулированы с упоминанием первичного (а не потенциального) ключа, например, определения нормальных форм. Также термин «первичный ключ» вошёл в формулировку 12 правил Кодда как основной способ адресации любого значения отношения (таблицы) наряду с именем отношения (таблицы) и именем атрибута (столбца).
Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные - альтернативными ключами.
Альтернативный ключ - это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр сущности. Атрибуты, составляющие альтернативный ключ, однозначно (уникально) идентифицируют экземпляры сущности. Например, для сущности служащий (идентификатор служащего, фамилия, имя, отчество) группа атрибутов «фамилия» , «имя» , «отчество» может являться альтернативным ключом (в предположении, что на предприятии не работают полные тезки). С помощью альтернативных ключей часто отображают различные индексы доступа к данным в конечной реализации реляционной базы. Одни и те же атрибуты сущности могут входить в несколько различных групп ключей.
Синтаксис первичных и альтернативных ключей
Определяющие первичный ключ атрибуты размещаются наверху списка атрибутов в блоке сущности и отделяются от других атрибутов горизонтальной чертой (см. рис. 3-7).
Каждому альтернативному ключу присваивается уникальный целый номер. Этот ключ указывается с помощью размещения справа от каждого атрибута ключа заключенных в скобки букв АК с номером альтернативного ключа, например, (АК1) (см. рис. 3-8). Отдельный атрибут может входить в качестве компоненты в более чем один альтернативный ключ. Атрибут первичного ключа может служить также частью альтернативного ключа.
Рис. 3-8. Синтаксис альтернативных ключей
13. Операции реляционной алгебры. Базовые реляционные операции.
Рассмотрим основные операции над отношениями, которые могут представлять интерес с точки зрения извлечения данных из реляционных таблиц. Это объединение, пересечение, разность, расширенное декартово произведение отношений, а также специальные операции над отношениями: выборка, проекция и соединение.
Для иллюстрации теоретико-множественных операций над отношениями введем абстрактные отношения (таблицы) с некоторыми атрибутами (полями).
Отношение R | |
R.a1 | R.a2 |
A | 1 |
A | 2 |
B | 1 |
B | 3 |
B | 4 |
CREATE TABLE R
(a1 CHAR(1), a2 INT, PRIMARY KEY(a1,a2))
Отношение S | |
S.b1 | S.b2 |
1 | H |
2 | G |
3 | H |
CREATE TABLE S
(b1 INT PRIMARY KEY, b2 CHAR(1))
Операции выборки и проекции являются унарными, поскольку они работают с одним отношением.
Операция выборки
Операция выборки - построение горизонтального подмножества, т.е. подмножества кортежей, обладающих заданными свойствами.
Операция выборки работает с одним отношением R и определяет результирующее отношение, которое содержит только те кортежи (строки) отношения R, которые удовлетворяют заданному условию F (предикату).
или
Пример 5.1. Операция выборки в SQL.
Выборка записывается следующим образом:
SELECT a1, a2
FROM R
WHERE a2=1
5.1. Операция выборки в SQL.
Операция проекции
Операция проекции - построение вертикального подмножества отношения, т.е. подмножества кортежей, получаемого выбором одних и исключением других атрибутов.
Операция проекции работает с одним отношением R и определяет новое отношение, которое содержит вертикальное подмножествоотношения R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк-дубликатов.
Пример 5.2. Операция проекции в SQL.
Проекция записывается следующим образом:
SELECT DISTINCT b2
FROM S
5.2. Операция проекции в SQL.
К основным операциям над отношениями относится декартово произведение.