- •Основы систем управления базами данных
- •2.1. Традиционный подход к организации данных
- •2 .2. Система баз данных
- •2.2.1. Данные
- •2.2.2. Аппаратное обеспечение
- •2.2.2. Программное обеспечение
- •2.2.4. Пользователи
- •2.2. Преимущества и недостатки современного подхода к организации данных
- •2.4. Классификация систем баз данных
- •2.5. Архитектура клиент/сервер
- •2.5.1. Компоненты приложений клиент/сервер
- •2.5.2. Разделение клиента и сервера
- •2.5.2. Преимущества и перспективы системы клиент/сервер
- •2.6. Общие понятия реляционного подхода к организации данных
- •2.6.1. Базовые понятия реляционных баз данных
- •Тип данных
- •Отношение
- •2.6.2. Общая характеристика реляционной модели данных
- •2.6.2. Манипулирование данными с помощью языка запросов sql
- •2.7. Основы проектирования реляционных баз данных
- •2.7.1. Основные требования при проектировании бд
- •2.7.2. Основы классической методологии проектирования бд
- •2.7.2. Основные этапы проектирования базы данных
- •2.7.4. Обеспечение свойств бд в процессе проектирования
- •2.8. Проектирование реляционных баз данных с использованием принципов нормализации
- •2.8.1. Первая нормальная форма
- •2.8.2. Вторая нормальная форма
- •2.8.2. Третья нормальная форма
- •2.9. Семантическое моделирование данных. Диаграммы «сущность–связь»
- •2.9.1. Основные понятия
- •2.9.2. Методология idef1
- •2.10. Информационное моделирование с помощью case-средства eRwin
- •2.10.1. Общая характеристика программы eRwin
- •2.10.2. Этапы построения информационной модели в eRwin
- •2.11. Проектирование базы данных доменного производства
- •2.11.1. Концептуальное и логическое проектирование
- •Характеристика вспомогательных сущностей
- •Данные по доменному переделу, приведенные
- •2.11.2. Физическая реализация информационной модели
- •2.12. Контрольные вопросы
Отношение
Отношение – это множество кортежей (строк таблицы), соответствующих одной схеме отношения. Иногда схему отношения называют заголовком отношения, а отношение как набор кортежей – телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Было бы вполне логично разрешать отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой. Однако в реляционных базах данных это не принято. Имя схемы отношения в таких базах данных всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных базах данных после определения схемы базы данных изменяются только отношения-экземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы базы данных: определение новых и изменение существующих схем отношения. Это принято называть эволюцией схемы базы данных.
Обычное житейское представление отношения – таблица, заголовком которой является схема отношения, столбцами – атрибуты отношения, а строками – кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду «атрибут отношения». Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД. В табл. 2.1 представлен обзор некоторых реляционных терминов и даны неформальные эквиваленты (соответствия) этим терминам.
Как видно из табл. 2.1, основные структурные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.
Таблица 2.1
Неформальные определения реляционных объектов данных
Формальный реляционный термин |
Неформальный эквивалент |
Отношение |
Таблица |
Кортеж |
Строка или запись таблицы |
Кардинальное число |
Количество строк |
Атрибут |
Столбец или поле |
Степень (арность) |
Количество столбцов |
Первичный ключ |
Уникальный идентификатор |
Домен |
Общая совокупность допустимых значений данных в столбце |
У читывая вышесказанное, можно определить реляционную базу данных как набор отношений, связанных между собой. Связь в данном случае – это ассоциирование двух или более отношений. База данных, не имеющая связей между отношениями, имеет очень простую структуру и в полной мере реляционной называться не может. Одно из основных требований к организации реляционной базы данных – это обеспечение возможности поиска одних кортежей по значениям других, для чего необходимо установить между ними связи. Существуют следующие основные виды связей:
один к одному;
один ко многим;
многие ко многим.
Связь «один к одному» предполагает, что в каждый момент времени каждому элементу (кортежу) отношения А соответствует 0 или 1 элементов (кортежей) отношения В. Например, за каждым работником предприятия закреплен один и только один табельный номер (рис. 2.14, а).
Связь «один ко многим» состоит в том, что в каждый момент времени каждому элементу (кортежу) отношения А соответствует несколько элементов (кортежей) отношения В (рис. 2.14, б). В качестве примера можно привести связь между отношениями «Цех» и «Технологический агрегат»: в одном цехе расположено несколько технологических агрегатов, каждый агрегат установлен только в одном цехе.
Связь «многие ко многим» предполагает, что в каждый момент времени множеству элементов отношения А соответствует множество элементов отношения В. К сожалению, этот тип связи в реляционных СУБД непосредственно не поддерживается. На рис. 2.14, в приведен пример такого типа связи для отношений «Изделие» и «Технологическая операция»: каждое изделие проходит множество технологических операций, в то же время одна технологическая операция выполняется для множества изделий.