Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек Информатика профиль ФиК.doc
Скачиваний:
72
Добавлен:
24.11.2019
Размер:
3.65 Mб
Скачать
      1. Реляционные бд.

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

Таблицы

Таблицы. Как мы уже говорили, это основные объекты любой базы данных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).

Каждая таблица реляционной базы данных также имеет имя.

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

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

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

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

Обычно строки называют записями.

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

Первичный ключ служит для доступа к строкам таблицы. Первичный ключ может быть составным. Если кандидата на ключ в таблице нет, то вводится искусственно специальный числовой ключ — счётчик.

Ключ позволяет поддерживать связи между таблицами.

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

Установление связи между таблицами возможно только при следующих условиях:

  • связываемые поля должны иметь один и тот же тип, причём имена полей могут быть различны;

  • обе таблицы принадлежат одной и той же базе данных;

  • связь между таблицами устанавливается по ключевому полю.

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

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

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

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

  • ключа;

  • в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в таблице связи;

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

Естественные и суррогатные ключи

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

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

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

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

  • Повторяемость — При использовании естественного ключа, содержание может повторяться (так, как могут повторятся поля, из которых состоит ключ), что недопустимо в первичном ключе

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

Вне́шний ключ (англ. foreign key) — понятие теории реляционных баз данных. Внешним ключом называется поле таблицы, предназначенное для хранения значения первичного ключа другой таблицы с целью организации связи между этими таблицами.

Пусть имеются таблицы A и B. Таблица A содержит поля a, b, c, d, из которых поле a — первичный ключ. Таблица B содержит поля x, y, z. В поле y содержатся значение поля a одной из записей таблицы A. В таком случае поле y и называется внешним ключом таблицы A в таблице B.

Вот такой SQL-запрос вернёт все связанные пары записей из таблиц A и B:

select * from A, B where A.a = B.y;

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

Развитые СУБД поддерживают автоматический контроль ссылочной целостности на внешних ключах.

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

.