русс | укр

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

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

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

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


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

Таблицы реляционной БД


Дата добавления: 2015-07-09; просмотров: 1630; Нарушение авторских прав


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

1. Имена полей (названия столбцов) должны быть различны.

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

3. В таблице нет одинаковых строк.

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

5. Для эффективной работы СУБД таблицы обычно преобразуют в таблицы, находящиеся в третьей нормальной форме (раздел «2.4. Проектирование БД»).

В отношении таблиц БД принята следующая терминология:

Ø Множество допустимых значений поля называется доменом поля(пример: домен поля «телефонный номер» в случае Красноярска состоит из всех возможных наборов шести цифр).

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

Ø Первичный ключ таблицы – поле (или несколько полей), значение которого однозначно определяет значения остальных полей в каждой отдельной записи. То есть значение ключа однозначно соответствует конкретному объекту. Например, пусть имеется телефонный справочник, в котором каждая запись – это номер телефона, ФИО владельца и адрес. Первичным ключом будет номер телефона. Его значение определяет конкретный телефон, и поэтому определяет стоящие в той же записи ФИО владельца и адрес. Для краткости вместо термина «первичный ключ» будем использовать термины «ключ» и «ключевое поле».



Ключ, состоящий из одного поля, называется простым ключом. В таблице «Машины» (рисунок 3) поле «номер» является простым ключом. Составной ключ включает в себя более одного поля. В таблице «Жители» ключом надежнее считать поля «ФИО» и «адрес», так как в большом городе могут встречаться жители с одинаковыми значениями «ФИО».

номер ФИО марка пробег дата регистр.
…… ………… …… ……. …………
КЯ 45-42 Кулев Иван Иванович ауди 21.08.99
……. …………… …... …….. ………..

Рис. 3. Таблица «Машины»

Связи между таблицами

Реляционные БД создаются с помощью той или иной системы управления базой данных (СУБД). Реляционная БД это обычно система связанных таблиц. Создание связей и последующее их использование – одно из назначений СУБД.

Пусть требуется создать БД из двух таблиц (например, из таблиц «Жители» и «Машины»). Пусть у этих двух таблиц есть одинаковое поле (совпадают имена полей и домены). В случае таблиц на рисунках 1 и 3 это поле «ФИО». В одной из таблиц совпадающее поле должно являться ключом – это обязательно при задании связей (в примере это требование выполняется: «ФИО» – ключ в таблице «Жители»). Эта таблица называется главной (материнской), потому что при удалении в ней любой записи нужно удалить записи с тем же ФИО в «Машины». (Таблица с ключевым полем связи всегда является главной. Поле «ФИО» в таблице «Жители» является ключом, так как его конкретные значения однозначно связаны с определенными объектами (людьми). Поэтому записи в «Жители» однозначно соответствуют жителям города. Удаление записи означает, что человек перестал быть жителем города. Следовательно, должны быть удалены записи о нем из остальных таблиц.)

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

Задание связикак операция, выполняемая при работе с СУБД, состоит в том, что пользователь объявляет поля двух таблиц полями связи. При этом:

1. У полей связи должны совпадать домены (совпадение имен не обязательно).

2. Хотя бы в одной из таблиц поле связи должно быть ключом.

При задании связи одну из связанных таблиц СУБД будет считать главной. Хотя СУБД смысла таблиц «не понимает», главной «автоматически» будет считаться таблица, для которой поле связи является ключом. Если поле связи ключевое в обеих таблицах, то главная будет выбрана по правилу: домен поля связи главной таблицы включает в себя домен внешнего ключа.

Реляционная БД – это БД, которая имеет структуру в виде связанных между собой таблиц. При этом таблицы удовлетворяют требованиям, приведенным в разделе «Таблицы реляционной БД».

Отдельная запись в каждой таблице содержит сведения относительно конкретного «объекта». В таблице «Жители» – относительно конкретного гражданина, в таблице «Машины» – относительно конкретной автомашины. Основное назначение связей между таблицами – упрощение (ускорение) отбора данных, касающегося «объекта», определяемого ключевым полем главной таблицы. Так, если в рассматриваемом примере задана связь по полю «ФИО», то СУБД легко ответит на запрос относительно данных, касающихся такого «объекта», как гражданин Кулев Иван Иванович. Например, ответит на запрос: «Вывести следующие данные о Кулеве Иване Ивановиче: адрес, место работы, номера автомашин, которыми он владеет, марки этих машин». Благодаря заданию связи по полю «ФИО» СУБД будет искать номера машин и их марки в таблице «Машины» в записи с тем же значением «ФИО», которому в таблице «Жители» соответствуют адрес и место работы (рисунок 4). Другими словами, СУБД объединит данные, находящиеся в соответствующих записях. Содержание (смысл) основного термина «связь между таблицами»:

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

Помимо задания связи для отбора данных необходимо задать и другие условия отбора записей (раздел «2.3. Работа с СУБД. Запросы»).

 

номер ФИО марка
КЯ 45-42 Кулев… ауди
…… ……. ….. ….
КЯ 12-67 Кулев… жигули ….
КЯ 56-98 Жаров.. вольво ….

Рис. 4



<== предыдущая лекция | следующая лекция ==>
Реляционные базы данных. Основы работы с СУБД | Обеспечение (поддержка) целостности данных


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


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

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

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


 


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

 
 

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

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