русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Связи между отношениями


Дата добавления: 2013-12-23; просмотров: 2002; Нарушение авторских прав


Ключи отношения

Данные, хранящаяся в БД не должна дублироваться. Все строки (кортежи) отношения должны быть уникальными. Ключом отношения, или первичным ключом, называется атрибут отношения, одно­значно определяющийкаждый из его кортежей. В отношении Студент ключом отношения может быть №_студенческого_билета. (Фамилия не может быть использована, т. к. существуют однофамильцы).

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

Реляционная база данных представляет собой совокупность взаимосвязанных таблиц. Рассмотрим еще одну таблицу, которая содержит сведения об успеваемости студентов по разным предметам. В такой таблице не нужны данные о курсе, специальности и дате рождения студента, т. к. эти данные уже хранятся в таблице Студенты. Нам достаточно будет поместить в эту таблицу атрибут, который будет определять каждого студента (№_студенческого_билета), данные о предмете и полученной оценке. При этом таблицы Студенты и Успеваемость окажутся связанными при помощи атрибута №_ студенческого_билета.

Таблица 4. Фрагмент отношения Успеваемость

№_студенческого билета Предмет Оценка
Высшая математика
Философия
Высшая математика
Философия NULL
Общая физика
Общая физика NULL

 

Атрибут №_студенческого_билета таблицы Успеваемость содержит данные, которые идентифицируют студентов. Если нужно узнать фамилию студента, соответствующее стро­ке в таблицеУспеваемость, то ее следует искать в таблице Студенты по значению домена №_студенческого_билета.



В таблице Успеваемость атрибут №_студенческого_билета является внешним ключом (в таблице Студенты он является первичным ключом, в таблице Успеваемость первичный ключ – составной: №_студенческого_билета+ Предмет).

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

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

 

№_студенческого_билета Фамилия Дата_рождения Курс Специальность
23980282 Алексеев Д. А. 12.03.1982 Биология
Яковлев Н. В. 25.12.1979 Физика
Михайлов В. В. 28.02.1979 Математика
Афанасьев А. В. 19.08.1983 Иностранный язык
Кузнецов T. И. 03.10.1982 Физика
2312568Т Смирнов А. Д. 26.03.1981 История

№_студенческого_билета Предмет Оценка
23980282 Высшая математика
23980282 Философия

 

Рисунок 7. Связи между главной и подчиненной таблицами

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

- один к одномукаждой записи одной таблицы соответствует только одна запись другой таблицы;

- один ко многимодной записи главной таблицы могут соответствовать несколько записей в подчиненной таблицы;

- многие к одному— нескольким записям главной таблицы может соответствовать одна и та же запись подчиненной таблицы;

- многие ко многим— одна запись главной таблицы связана с несколькими запи­сями подчиненной таблицы, а одна запись подчиненной таблицы связана с не­сколькими записями главной таблицы.

Различие между связями типа «один ко многим» и «многие к одному» зависит от того, какая из таблиц выбирается в качестве главной, а какая — в качестве подчиненной. Например, если из связанных таблиц Студенты и Успеваемость в качестве главной выбрать таблицуСтуденты, то получим связь типа «один ко многим». Если же выбрать в качестве главной таблицу Успеваемость, получится связь типа «многие к одному».



<== предыдущая лекция | следующая лекция ==>
Базовые понятия реляционной модели данных | Условия целостности данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.