Приложение сервер и пары клиентов. Клиент-серверное приложение. Преимущества архитектуры клиент-сервер

Вайбер на компьютер 22.03.2019
Вайбер на компьютер

P rimary Key (Первичный ключ) является полем в таблице, которое однозначно идентифицирует каждую строку/запись в таблице базы данных. Первичные ключи должны содержать уникальные значения. Первичный ключ столбец не может иметь значения .

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

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

Примечание – Вы могли бы использовать эти понятия при создании таблиц базы данных.

Создание первичного ключа

Вот синтаксис для определения атрибута ID в качестве первичного ключа в таблице Customers.

CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID));

Для того, чтобы создать ограничение первичного ключа на столбце «ID», когда таблица CUSTOMERS уже существует, используйте следующий синтаксис SQL:

ALTER TABLE CUSTOMERS ADD PRIMARY KEY (ID);

Примечание

Если вы используете оператор ALTER TABLE, чтобы добавить первичный ключ, столбец первичного ключа (ей) должен был уже объявлен как не содержащий NULL значения (если таблица была создана первым).

Для определения первичного ключа на нескольких столбцах, используйте синтаксис SQL приведенный ниже:

CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID, NAME));

Чтобы создать ограничение первичного ключа на колонки «ID» и «NAME», когда таблица CUSTOMERS уже существует, используйте следующий синтаксис SQL.

ALTER TABLE CUSTOMERS ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);

Удаление первичного ключа

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

ALTER TABLE CUSTOMERS DROP PRIMARY KEY;

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

Первичный ключ

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

Уникальный ключ

Уникальный ключ - это столбец или группа столбцов, значения (комбинация значений для группы столбцов) которых не могут повторяться. Отличия уникального ключа от первичного - в том, что:

  • уникальных ключей для одной таблицы может быть несколько (вопросик на засыпку для тех, кто прочитал статью про нормализацию: правила какой нормальной формы при этом будут нарушены? ;)
  • уникальные ключи могут иметь значения NULL, при этом если имеется несколько строк со значениями уникального ключа NULL, такие строки согласно стандарту SQL 92 считаются различными (уникальными).

Внешний ключ

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

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

И самое главное. Все значения внешнего ключа должны совпадать с каким-либо из значений родительского ключа. (Заметим в скобках насчет совпадения / несовпадения: нюансы возникают, когда в значениях столбцов вторичного ключа встречается NULL. Давайте пока в эти нюансы вдаваться не будем). Появление значений внешнего ключа, для которых нет соответствующих значений родительского ключа, недопустимо. Вот тут-то мы плавно переходим к понятию ссылочной целостности.

Ссылочная целостность

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

Более интересные моменты возникают, когда мы удаляем или изменяем строки родительской таблицы. Как при этом не допустить появления \"болтающихся в воздухе\" строк дочерней таблицы? Для этого существуют правила ссылочной целостности ON UPDATE и ON DELETE, которые, по стандарту SQL 92, могут содержать следующие инструкции:

  • CASCADE - обеспечивает автоматическое выполнение в дочерней таблице тех же изменений, которые были сделаны в родительском ключе. Если родительский ключ был изменен - ON UPDATE CASCADE обеспечит точно такие же изменения внешнего ключа в дочерней таблице. Если строка родительской таблицы была удалена, ON DELETE CASCADE обеспечит удаление всех соответствующих строк дочерней таблицы.
  • SET NULL - при удалении строки родительской таблицы ON DELETE SET NULL установит значение NULL во всех столбцах вторичного ключа в соответствующих строках дочерней таблицы. При изменении родительского ключа ON UPDATE SET NULL установит значение NULL в соответствующих столбцах соответствующих строк (о как:) дочерней таблицы.
  • SET DEFAULT - работает аналогично SET NULL, только записывает в соответствующие ячейки не NULL, а значения, установленные по умолчанию.
  • NO ACTION (установлено по умолчанию) - при изменении родительского ключа никаких действий с внешним ключом в дочерней таблице не производится. Но если изменение значений родительского ключа приводит к нарушению ссылочной целосности (т.е. к появлению "висящих в воздухе" строк дочерней таблицы), то СУБД не даст произвести такие изменения родительской таблицы.

Ну а сейчас - от общего к частному.

Ключи и ссылочная целостность в MySQL и Oracle

Oracle поддерживает первичные, уникальные, внешние ключи в полном объеме. Oracle поддерживает следующие правила ссылочной целостности:

  • NO ACTION (устанавливается по умолчанию) в более жестком, чем по стандарту SQL 92, варианте: запрещается изменение и удаление строк родительской таблицы, для которых имеются связанные строки в дочерних таблицах.
  • ON DELETE CASCADE.

Более сложные правила ссылочной целостности в Oracle можно реализовать через механизм триггеров.

MySQL версии 4.1 (последняя на момент написания статьи стабильная версия) позволяет в командах CREATE / ALTER TABLE задавать фразы REFERENCES / FOREIGN KEY, но в работе никак их не учитывает и реально внешние ключи не создает. Соответственно правила ссылочной целостности, реализуемые через внешние ключи, в MySQL не поддерживаются. И все заботы по обеспечению целостности и непротиворечивости информации в базе MySQL ложатся на плечи разработчиков клиентских приложений.

Разработчики MySQL обещают реализовать работу с внешними ключами и поддержание ссылочной целостности в версии 5.0. Что ж, когда версия MySQL 5.0 станет стабильной - посмотрим, что там в итоге получится. Очень, очень хотелось бы, чтобы MySQL поддерживала ссылочную целостность (без ущерба для производительности:).

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

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

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

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

Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным , его значения не могут обновляться. Все остальные ключи отношения называются возможными ключами .

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

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

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



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

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

Например, связь между отношениями ОТДЕЛ и СОТРУДНИК создается путем копирования первичного ключа "Номер_отдела" из первого отношения во второе. Таким образом, для того, чтобы получить список работников данного подразделения, необходимо: 1) Из таблицы ОТДЕЛ установить значение атрибута "Номер_отдела" , соответствующее данному "Наименованию_отдела". 2) выбрать из таблицы СОТРУДНИК все записи, значение атрибута "Номер_отдела" которых равно полученному на предыдушем шаге. Для того, чтобы узнать в каком отделе работает сотрудник, нужно выполнить обратную операцию: 1) Определяем "Номер_отдела" из таблицы СОТРУДНИК. 2) По полученному значению находим запись в таблице ОТДЕЛ.


18. Нормализация в реляционных БД, понятие нормальной формы при проектировании баз данных.

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

Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией . Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.



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

Функциональные зависимости.

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

19. 1НФ: Основные определения и правила преобразования.

Для обсуждения первой нормальной формы необходимо дать два определения:

Простой атрибут - атрибут, значения которого атомарны (неделимы).

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

Определение первой нормальной формы:

отношение находится в 1NF если значения всех его атрибутов атомарны. . В противном случае это вообще не таблица и такие атрибуты необходимо декомпозировать.

Рассмотрим пример:

В базе данных отдела кадров предприятия необходимо хранить сведения о служащих, которые можно попытаться представить в отношении

СЛУЖАЩИЙ(НОМЕР_СЛУЖАЩЕГО, ИМЯ, ДАТА_РОЖДЕНИЯ, ИСТОРИЯ_РАБОТЫ, ДЕТИ).

Из внимательного рассмотрения этого отношения следует, что атрибуты "история_работы" и "дети" являются сложными, более того, атрибут "история_работы" включает еще один сложный атрибут "история_зарплаты".
Данные агрегаты выглядят следующим образом:

 ИСТОРИЯ_РАБОТЫ (ДАТА_ПРИЕМА, НАЗВАНИЕ, ИСТОРИЯ_ЗАРПЛАТЫ),

 ИСТОРИЯ_ЗАРПЛАТЫ (ДАТА_НАЗНАЧЕНИЯ, ЗАРПЛАТА),

 ДЕТИ (ИМЯ_РЕБЕНКА, ГОД_РОЖДЕНИЯ).

Их связь представлена на рис. 3.3.

Рис.3.3. Исходное отношение.

Для приведения исходного отношения СЛУЖАЩИЙ к первой нормальной форме необходимо декомпозировать его на четыре отношения, так как это показано на следующем рисунке:

Рис.3.4. Нормализованное множество отношений.

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

Алгоритм нормализации описан Е.Ф.Коддом следующим образом:

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

20. 2НФ: Основные определения и правила преобразования.

Очень часто первичный ключ отношения включает несколько атрибутов (в таком случае его называют составным ) - см., например, отношение ДЕТИ, показанное на рис. 3.4 вопрос 19. При этом вводится понятие полной функциональной зависимости .

Определение:

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

Пример:

Пусть имеется отношение ПОСТАВКИ (N_ПОСТАВЩИКА, ТОВАР, ЦЕНА).
Поставщик может поставлять различные товары, а один и тот же товар может поставляться разными поставщиками. Тогда ключ отношения - "N_поставщика + товар" . Пусть все поставщики поставляют товар по одной и той же цене. Тогда имеем следующие функциональные зависимости:

  • N_поставщика, товар -> цена
  • товар -> цена

Неполная функциональная зависимость атрибута "цена" от ключа приводит к следующей аномалии: при изменении цены товара необходим полный просмотр отношения для того, чтобы изменить все записи о его поставщиках. Данная аномалия является следствием того факта, что в одной структуре данных объединены два семантических факта. Следующее разложение дает отношения во 2НФ:

  • ПОСТАВКИ (N_ПОСТАВЩИКА, ТОВАР)
  • ЦЕНА_ТОВАРА (ТОВАР, ЦЕНА)

Таким образом, можно дать

Определение второй нормальной формы: Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.

21. 3НФ: Основные определения и правила преобразования.

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

Определение:

Пусть X, Y, Z - три атрибута некоторого отношения. При этом X --> Y и Y --> Z, но обратное соответствие отсутствует, т.е. Z -/-> Y и Y -/-> X. Тогда Z транзитивно зависит от X.
Пусть имеется отношение ХРАНЕНИЕ (ФИРМА , СКЛАД, ОБЪЕМ), которое содержит информацию о фирмах, получающих товары со складов, и объемах этих складов. Ключевой атрибут - "фирма" . Если каждая фирма может получать товар только с одного склада, то в данном отношении имеются следующие функциональные зависимости:

  • фирма -> склад
  • склад -> объем

При этом возникают аномалии:

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

Для устранения этих аномалий необходимо декомпозировать исходное отношение на два:

  • ХРАНЕНИЕ (ФИРМА , СКЛАД)
  • ОБЪЕМ_СКЛАДА (СКЛАД , ОБЪЕМ)

Определение третьей нормальной формы:

Отношение находится в 3НФ, если оно находится во 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.

Определены три основных класса сущностей:

1) Стержневые – независимая сущность. Названия помещены в прямоугольник.

2) Ассоциативные – связь вида многие ко многим между двумя или более сущностями. Ассоциации рассматриваются как полноправная сущность. Могут участвовать в других ассоциациях и обладать набором атрибутов.

a. Обозначения (обозначающая сущность) – связи вида многие к одной или одна к одной между двумя сущностями. Отличается от характеристики тем, что не зависит от обозначающей сущности.

3) Характеристические (характеристика) – связь вида многие к одной или одна к одной между двумя сущностями. Является частным случаем ассоциации. Единственная цель характеристики – описание или уточнение некоторой другой сущности. Существование характеристики полностью зависит о характеризуемой сущности.

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

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

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

Если сущность С связывает сущности А и В, то она должна включать внешние ключи, соответствующие первичным ключам сущностей А и В.

Для каждого внешнего ключа необходимо решить три вопроса:

1) Может ли дополнительный внешний ключ принимать неопределенные значения (null-значения), короче говоря, может ли существовать некоторый экземпляр сущности, для которого известна целевая сущность, указанная внешним ключом.

2) Что должно происходить при попытке удаления целевой сущности, на которую ссылается внешний ключ.

Существуют три возможности решения данного вопроса:

· Каскадирование

· Ограничение

· Установление в определенное значение

3) Что должно происходить при попытке обновления первичного ключа целевой сущности, на который ссылается некоторый внешний ключ.

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

Типы данных и домены.

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

Реляционная модель рассчитана на организацию данных в виде двумерных таблиц. Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

1) Каждый элемент таблицы – один элемент данных

2) Все столбцы в таблице однородны – все элементы в столбце имеют одинаковый тип и длину данных

3) Каждый столбец имеет уникальное имя

4) Одинаковые строки в таблице отсутствуют

5) Порядок следования строки столбцов может быть произвольным

Типы данных

Любые данные, используемые в программировании, имеют свои типы данных. Реляционная модель требует, чтобы типы используемых данных были простыми.

Как правило, типы данных делятся на три группы:

1) Простые типы данных

2) Структурированные типы данных

3) ссылочные типы данных

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

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

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

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

Домен porno.ru

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

Домен – семантическое понятие. Его можно рассматривать как подмножество значений некоторого типа данных.

Свойства домена:

1) домен имеет уникальное имя в пределах базы данных

2) домен определен на некотором простом типе данных или на другом домене

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

4) домен несет некоторую смысловую нагрузку

Например, некоторый домен D, имеющий смысл «возраст сотрудника» можно описать как некоторое подмножество множества натуральных чисел

D={nϵN: n ≥ 18 and n ≤ 60}

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

5. Отношения и их свойства, атрибуты и кортежи.
Понятие отношения является фундаментальным понятием реляционной модели данных. Атрибут отношения: <Имя_атрибута: Имя_домена>. Имена атрибутов должны быть уникальными в пределах отношения. Часто имена атрибутов совпадают с именами соответствующих доменов. Некоторое отношение R, определенное на множестве доменов D 1 ,D 2 ,…D n содержит две части: заголовок и тело. Заголовок отношения содержит фиксированное количество атрибутов отношения.

(,,…)

Тело отношения содержит множество картежей отношений. Каждый картеж отношений представляет собой множество пар вида

<Имя_атрибута: Значение_атрибута>

(,,… ).

При этом значение Val i принадлежит атрибуту A i D i . значение записывается:

R (,,…).

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

Реляционной базой данных называется набор отношений. Схемой реляционных баз данных называется набор заголовков отношений, входящий в базу данных.

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

Свойства отношений

В свойствах отношений в основном состоят различия между отношениями

1) В отношении не одинаковых картежей.

Тело отношения – это множество картежей и как всякое множество не может содержать неразличимые элементы. Таблицы в отличие от отношений могут содержать одинаковые строки.

2) Картежи не упорядочены (сверху вниз) так как тело отношения – множество.

Одно и то же отношение не может быть изображено разными таблицами, в которых строки идут в различном порядке

3) Атрибуты не упорядочены слева направо. Так как каждый атрибут имеет уникальное имя в пределах отношения, то порядок атрибутов не имеет значения. Одно и то же отношение может быть изображено разными таблицами, в которых столбцы идут в различном порядке.

4) Все значения атрибутов атомарны.

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

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

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

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

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



Рекомендуем почитать

Наверх