- •Реляционная модель данных
- •Содержание
- •Раздел 1. Теория реляционных баз данных 9
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации 39
- •Раздел 3. Лабораторная работа 58
- •Введение
- •Раздел 1. Теория реляционных баз данных
- •1.1. Основные понятия реляционных баз данных
- •Виды связей реляционных баз данных
- •1.2. Реляционная алгебра и реляционное исчисление
- •Операции реляционной алгебры. Формулы исчисления кортежей
- •Проекция. Проекцией отношения а по атрибутам X, y,..., z, где каждый из атрибутов принадлежит отношению а.
- •Extend Группа add (2011-ГодПоступления) as Курс
- •Контрольные вопросы по разделу 1
- •Контрольное задание по разделу 1
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 1
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации
- •2.1 Целостность баз данных. Ограничения целостности.
- •3. Ограничения, связанные с коллективным доступом к бд.
- •2.2 Теория нормальных форм
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •2.3 Избыточное дублирование данных и аномалии.
- •Контрольные вопросы по разделу 2
- •Контрольное задание по разделу 2
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 2
- •Раздел 3. Лабораторная работа Основы проектирования реляционных баз данных Разработка структуры базы данных
- •Практическое руководство: создание логической и физической моделей с помощью Microsoft Visio 2007
- •Нотация idef1x
- •Контрольные вопросы по разделу 3:
- •Глоссарий
- •Список литературы
Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации 39
2.1 Целостность баз данных. Ограничения целостности. 39
2.2 Теория нормальных форм 44
2.3 Избыточное дублирование данных и аномалии. 52
Контрольные вопросы по разделу 2 56
Контрольное задание по разделу 2 56
Цирроз печени; тахикардия 56
Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 2 57
Раздел 3. Лабораторная работа 58
Основы проектирования реляционных баз данных 58
Разработка структуры базы данных 58
Контрольные вопросы по разделу 3: 75
Глоссарий 77
82
Список литературы 83
Введение
Реляционная модель данных на данном этапе развития информационного обеспечения автоматизированных систем учета и управления является наиболее часто используемой моделью. В следствии этого раздел, описывающий теорию реляционных баз данных, включается в дисциплины:
«Управление данными» для студентов специальности 230203 «Информационные технологии в дизайне» (форма обучения — очная);
«Базы данных и знаний» для студентов специальности 080116 «Математические методы в экономике» (форма обучения — очная, заочная);
«Информационное обеспечение, базы данных» для студентов специальности 220501.65 «Управление качеством» (форма обучения — очная).
А так же может использоваться как дополнительный материал при изучении дисциплины «Математика и информатика» для специальности 031301 «Теоретическая и прикладная лингвистика» (формы обучения – очная).
Данное учебно-методическое пособие является частью учебно-методического комплекса по дисциплинам «Управление данными», «Базы данных и знаний», «Информационное обеспечение, базы данных».
В учебном пособии приводятся:
теоретический материал с элементами практических заданий по изучаемой теме;
даются методические указания по выполнению лабораторной работы; рассматриваются основные технологические приемы, необходимые для выполнения лабораторной работы;
приводятся типовые вопросы из комплекта контрольно-оценочных материалов для подготовки к промежуточной аттестации в форме компьютерного тестирования в системе Moodle.
В пособии в соответствии с программами дисциплин:
дано представление о теории реляционных баз данных;
описана структурная и функциональная организация реляционных баз данных;
рассмотрено проектирование реляционных баз данных на основе принципов нормализации.
Изучение данной темы и выполнение лабораторной работы способствует формированию у студентов базовых профессиональных компетенций в области баз данных и информационных технологий.
Раздел 1. Теория реляционных баз данных
1.1. Основные понятия реляционных баз данных
Реляционная модель данных (РМД) – это модель, данные в которой представлены в виде двухмерных таблиц, которые именуются отношениями. Данная модель была предложена сотрудником фирмы IBM Эдгаром Коддом в 1970 году.
Реляционные системы базируются на формальных основах, или теории, которая называется реляционной моделью данных. Минимальным требованием к такой системе является выполнение следующих трех условий:
структурный аспект. Данные в базе воспринимаются пользователем, как таблицы (и никак иначе);
аспект целостности. Эти таблицы отвечают определенным условиям целостности (которые будут рассматриваться в пункте 2.1);
аспект обработки. В распоряжении пользователя имеются операторы манипулирования таблицами (например, предназначенные для поиска данных), которые генерируют новые таблицы на основании уже имеющихся [2].
РМД некоторой предметной области представляет собой набор отношений, изменяющихся во времени.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц (рисунок 1.1).
Рисунок 1.1. – Реляционная модель баз данных.
Реляционная модель (relational model) – модель базы данных (БД), основными элементами которой являются таблицы, представляющие сущности, в которых столбцы представляют атрибуты сущностей, а строки описывают экземпляры сущностей.
Реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
каждый элемент таблицы — один элемент данных;
все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
Базовыми понятиями реляционных баз данных являются:
сущность;
атрибут;
отношение;
кортеж;
домен.
Сущность - объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении. Экземпляры сущности отличаются друг от друга и однозначно идентифицируются. Названиями сущностей являются, как правило, существительные [12].
Сущность, с помощью которой моделируется класс однотипных объектов, определяется как «предмет, который может быть четко идентифицирован». Также как каждый объект уникально характеризуется набором значений свойств, сущность должна определяться таким набором атрибутов, который позволял бы различать отдельные экземпляры сущностей. Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности. Например, для однозначной идентификации каждого экземпляра сущности «Студент» вводится атрибут «Номер зачетной книжки», который вследствие своей природы будет всегда иметь уникальное значение в рамках учебного заведения. То есть, уникальным идентификатором сущности может являться атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, однозначно отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
Сущность имеет имя, уникальное в пределах модели. При этом имя сущности – это имя типа, а не некоторого конкретного экземпляра.
Атрибут (в базах данных) - представляет собой свойство сущности. Атрибут характеризует размер или тип информации, содержащейся в поле.
Атрибуты представляют собой факты, которые служат для идентификации, характеристики отнесения к категории, числового представления или другого вида описания состояния экземпляра сущности [3].
Отношение - таблица, состоящая из строк, столбцов (атрибутов) и выступающая операндом в реляционной алгебре. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Таким образом, отношение - множество элементов, называемых кортежами, а список имен атрибутов является схемой отношения.
Кортеж - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. Попросту говоря, кортеж - это набор именованных значений заданного типа.
Домен - набор допустимых значений атрибута и операций над данными. Например, домен ФИО определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут представлять фамилию, имя и отчество. В один домен могут входить значения из нескольких колонок, объединённых помимо одинакового типа данных, но ещё и логически. Если два значения берутся из одного и того же домена, то можно выполнить сравнение этих двух значений.
Домен - это семантическое понятие. Домен можно рассматривать как подмножество значений некоторого типа данных имеющих определенный смысл. Домен характеризуется следующими свойствами:
домен имеет уникальное имя (в пределах базы данных);
домен определен на некотором простом типе данных или на другом домене;
домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена;
домен несет определенную смысловую нагрузку.
На рисунке 1.2 представлено отношение «СТУДЕНТ», на примере которого будут рассматриваться основные элементы РМД. В левой стороне рисунка отношение представлено в виде сущности из модели «сущность-связь» с помощью средств MS Visio, в правой части – в виде двухмерной таблицы с записями. В таблице 1.1 отображены элементы РМД и формы их представления на примере отношения «СТУДЕНТ».
Рисунок 1.2 – Отношение «СТУДЕНТ»
Таблица 1.1 – Элементы РМД и их определения
Элемент РМД |
Форма представления |
Пример по рисунку 1.2 |
сущность |
описание свойств объекта |
студент, как объект реального мира |
атрибут |
заголовок столбца таблицы |
Номер_зач_книжки, ФИО, Год_рождения, Пол, Первое_образование |
отношение |
таблица |
таблица СТУДЕНТ |
домен |
тип данных атрибута и возможность операций над ними |
отношение СТУДЕНТ включает в себя 5 доменов, которым соответствуют поля таблицы СТУДЕНТ |
кортеж |
строка таблицы |
{1, Иванов Иван Иванович, 1985, м, ПТУ№2} |
первичный ключ |
один или несколько атрибутов |
Номер_зач_книжки |
Каждое отношение обязательно имеет комбинацию атрибутов, которая может служить ключом. Ее существование гарантируется тем, что отношение – это множество, которое не содержит одинаковых элементов – кортежей, т.е. в отношении нет повторяющихся кортежей, а это значит, что, по крайней мере, вся совокупность атрибутов обладает свойством однозначной идентификации кортежей отношения. Во многих системах управления базами данных (СУБД) допускается создавать отношения, не определяя ключи.
Ключ (в базе данных) - это поле (совокупность полей) значение которого не повторяется у разных записей, содержимое которого однозначно определяет запись в таблице и отличает ее от других.
Ключ сущности - атрибут или набор атрибутов, используемый для идентификации экземпляра сущности. Как видно из определения, понятие ключа сущности аналогично понятию ключа отношения [12].
Целостность данных в реляционной базе данных основывается на концепции ключей. В реляционной базе данных существует три типа ключей:
потенциальный (candidate);
первичный (primary);
внешний (foreign).
Потенциальный (возможный) ключ — это атрибут или набор атрибутов, который можно использовать для уникальной идентификации кортежей отношения. Иногда для идентификации кортежей можно использовать комбинацию атрибутов.
Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными ключами отношения. Любой из возможных ключей может быть выбран как первичный.
Первичный ключ — это особая форма потенциального ключа. В отношении может быть несколько потенциальных ключей. В случае, когда потенциальных ключей несколько, нужно выбрать один из них и объявить его первичным ключом. Объявление атрибута (или набора атрибутов) первичным ключом налагает на него ряд ограничений. Таблица может иметь произвольное количество потенциальных ключей, но должна иметь один и только один первичный ключ. Первичный ключ - это атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, говорят, что он является не избыточным.
Внешний ключ — это атрибут (или набор атрибутов), который существует в нескольких таблицах и является первичным ключом одной из этих таблиц. Внешние ключи очень важны в реляционных базах данных. Именно с их помощью данные одной таблицы связываются с данными другой таблицы. Этот процесс называется заданием связи между двумя таблицами. Чтобы связь была корректной, при использовании внешних ключей необходимо придерживаться правила ссылочной целостности, которое требует, чтобы каждое значение внешнего ключа ссылалось на реально существующее значение первичного ключа, в противном случае для него должно быть указано значение NULL. Отметим, что правило ссылочной целостности действует только в одном направлении [10].
Ключи обычно используют для достижения следующих целей:
исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются);
упорядочения кортежей. Возможно упорядочение по, возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним - возрастание, а по другим - убывание);
ускорения работы с кортежами отношения;
организации связей между таблицами.
После рассмотрения всех основных понятий РМД можно обозначить ее характерные особенности:
каждое отношение (таблица) состоит из однотипных кортежей и имеет уникальное имя;
кортежи имеют фиксированное число атрибутов (столбцов) и значений. Иначе говоря, в каждой позиции таблицы на пересечении строки и столбца всегда имеется в точности одно значение или ничего;
строки таблицы (кортежи) обязательно отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку такой таблицы;
атрибутам (столбцам таблицы) однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы);
при выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию. Этому способствует наличие имен таблиц и их столбцов, а также возможность выделения любой их строки или любого набора строк с указанными признаками.
