- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
3.3. Связывание таблиц
При проектировании реальных БД информацию обычно размещают в нескольких таблицах. Таблицы при этом связаны семантикой информации В реляционных СУБД для указания связей таблиц производят операцию их связывания.
Укажем выигрыш, обеспечиваемый в результате связывания таблиц. Мни гие СУБД при связывании таблиц автоматически выполняют контроль целостности вводимых в базу данных в соответствии с установленными свя зями. В конечном итоге это повышает достоверностьхранимой в БД информации.
Кроме того, установление связи между таблицами облегчает доступк данным. Связывание таблиц при выполнении таких операций, как поиск, просмотр, редактирование, выборка и подготовка отчетов, обычно обеспечивает возможность обращения к произвольным полям связанных записей. Это уменьшает количество явных обращений к таблицам данных и число манипуляций в каждой из них.
Основные виды связи таблиц
Между таблицами могут устанавливат ься бинарные (между дву мя таблицами), тернарные (между тремя таблицами) и, в общем случае, п арные связи. Рассмотрим наиболее часто встречающиеся оинарныесвязи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые в данном случае называют полями связи(ПС).
Суть связывания состоит в установлении соответ ствия полей связи основ ной и дополнительной таблиц. Поля саязи основной таблицы могут быть обычными и ключевыми В качестве нолей связи подчиненной таблицы чаще всего используют ключевые поля.
В зависимости от того, как определены поля связи основной и дополнительной таблиц (как соотносятся ключевые поля с полями ^вязи), между двумя таблицами в общем случае могут устанавливаться следующие четыре основных вида связи (табл. 3.2):
•один -один(1:1);
один — много (1 :М);
много — один (М:1);
Характеристика видов связей таблиц
много — много (М:М или M:N).
Таблица 3.2
Характеристика полей связи по видам |
1:1 |
1:М |
М:1 |
М:М |
Поля связи основной таблицы |
являются ключом |
являются ключом |
не являются ключом |
не являются ключом |
Поля связи дополнительной таблицы |
являются ключом |
не являются ключом |
являются ключом |
не являются ключом |
Дадим характеристику наьвашп im видам связи между двумя таблицами и приведем примеры их использования.
Связь вида 1:1
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополните [ьной таблиц являются ключевыми. Поско шку значения в ключевых полях обеих таблиц не повторяются, обеспечивается взаимно-однозначное соответствие записей из этих таблиц. Сами таблицы, по сути, здесь (гановятся равноправными.
Пример 1.
Пусть имеются основная О! и дополнительная Д1 таблицы. Ключевые поля обозначим символом «*», используемые для связи почя обозначим символом «+».
Таблица Ol * +
Поле11 |
Поле12 |
а |
10 |
б |
40 |
в |
3 |
Таблица Д1 * +
Поле21 |
Поле22 |
а |
стол |
в |
книга |
В приведенных таблицах установлена связь между записью (а, 10) таблицы ( )1 и записью (а, стол) таб шцы Д1. 0< нованием этого является совпадение значений в полях t вязи. А.чало1 ичняясвязь существует и между записями (в, 3) и (в, книга) этих же таблиц. В таблицах записи отсортированы по значениям в ключевых полях.
Сопоставление записей двух таблиц по существу означает образование новых «виртуа льных записей» (псевдозаписей). Так, первую пару записей логически можно считать новой псевдозаписью вида (а, 10, стол), а вторую пару — псевдозаписью вида (в, 3, кни) а).
11а практике связи вида 1:1 используются сравнительно редко, гак как хранимую в двух таблицах информацшj ли ко объединить в одну таблицу, которая занимает гораздо меньше места в памяти ЭВМ. Возможны случаи, когда удобнее иметь не одну, а две и более таблицы Причинами этого может быть необходимость ускорить обоаботку. повысить удобство работы нескольких пользователей с общей информацией, обеспечить более высокую степень защиты информации и т. д. Приведем пример, иллюстрирующий последнюю из приведенны> причин.
Пример 2.
Пусть имеются сведения о выполняемых в некоторой организации науч- но-исследователоских работах. Эти данные включают в себя следующую ин формацию по каждой из работ: тему (девиз и полное наименование работ), шифр (код), даты начала и завершения работу i, количество этапов, головного исполнителя * другую догах шителы'ую информацию. Все работы имеют гриф «Для с лужебного пользования» или «секретно»
В такой ситуации всю информацию целесообразно хранить в двух таб шцах: в одной из них — всю се кретную информацию (например, шифр, полное наименование работы и головной исполнитель), а в другой — всю оставшуюся несекретную информацию. Обе табл ицы можно сгязать по шифру работы. Первую из таблиц целесообразно защитить от несанкционированного доступа.
Связь вида 1 :М
Связь 1:М имеет место в случае, когда одной записи основной таблицы соответствует несколько записей вспомогательной таблицы.
Пример 3.
Пусть имеются две с вязанные таблицы 02 и Д2. В таблице 02 содержится информация о видах мультимедиа-устройств ПЭВМ, а в таблице Д2 — сведения о фирмах-производителях этих устройств, а также о наличии на складе хотя бы одного устройства.
Таблица 02
* +
Код |
Вид устройства |
а |
CD- ROM |
б |
CD-Recorder |
в |
Sound Blaster |
Таблица Д 2
*+ *
Код |
Фирма-производитель |
Наличие |
a |
Acer |
да |
a |
Mitsumi |
нет |
a |
NEC |
да |
a |
Panasonic |
да |
a |
Sony |
да |
6 |
Philips |
нет |
6 |
Sony |
нет |
6 |
Yamaha |
да |
в |
Creative Labs |
да |
Таблица Д2 имеет два ключевых поля, так как одна и та же фирма может производит! устройства различных видов. В примере фирма Sony производит устройства считывания и перезаписи с компакт-дисков.
Сопоставление записей обеих таблиц по полю « Код» порождает псевдозаписи еида:(a, CD- ROM. Acer, да), (a, CD-ROM, Mitsumi, нет), (a, CD-ROM, NFC, да),(a, CD-ROM, Panasonic, да), (a, CD-ROM, Sony,да), (б, CD-Recorder, Philips, нет), (б, CD-Recorder, Sony, да) и т. д.
Если свести лсевдозаписи в новую таблицу, то получимполную информацию обо всехвидах мультимедиа-устройств ПЭВМ, фирмах, их производящих, а также сведения о наличии конкретных видов устройств на складе.
Связь вида М:1
Связь М. J имеет место в с. [учае, когда одной или нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таб лицы.
Пример 4.
Рассмотрим связь таблиц ОЗ и ДЗ. В основной таблице ОЗ содержится информация о названиях деталей (Поле11), видах материалов, из которого детали можно изготовить (Поле! 2), и марках материала (Поле13). В дополнительной таблице ДЗ содержатся сведения о назван иях деталей (Поле21), планируемых сроках изготовления (Поле22) и стоимости заказов (Поле23).
Таблица ОЗ
+
Поле11 |
Поле12 |
Поле13 |
деталь1 |
чугун |
марка1 |
детаяь1 |
чугун |
марка2 |
деталь2 |
сталь |
марка 1 |
деталь2 |
сталь |
марка2 |
детаяь2 |
сталь |
маркаЗ |
детапьЗ |
алюминий |
- |
деталь4 |
чугун |
марка2 |
Таблица ДЗ * +
Поле21 |
Поле22 |
Поле23 |
деталь 1 |
4.03.98 |
90 |
деталь2 |
3.01.98 |
35 |
детальЗ |
17.02.98 |
90 |
деталь4 |
6.05.98 |
240 |
Связывание этих таблиц обеспечивает такое установление соответствия между записями, которое эквивалентно образованию следующих псевдозаписей: (деталь!, чугун, марка1, 4.03 98, 90), (деталь1, чу1ун,марка2, 4.03.98, 90), (деталь2, сталь, марка!, 3.01.98,35), (деталь2, сталь, марка2, 3.01.98,35), (летальЛ ела ль. маркаЗ, 3.01.98.35). (детальЗ, алюминий, -, 17.02.98,90), (де- таль4, чугун, марка2,6.05.98, 240).
Полученная псевдо таблица может быть полезна при п. [анировании или принятии управленческих ре тений, когда необходимо иметь все возможные кари- анты исполнения заказов по каждому изделию. Отметим, что таблица ОЗ не имеет ключей и в ней возможно повторение записей. Если таблицу ДЗ сделать основной, а таб чицу ОЗ — допо. тигельной, получим < вязь вида 1:М. Поступив ана югичпо с таблицами 02 и Д2, можно получить связь вида М: 1. С )тсюда следует, что вид связи (1. М или М: 1) зависит от того, какая таб-шца является главной, а какая дополнительной.
Связь вида М:М
Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной таблицы соответствует несколько записей дополнительной таблицы.
Пример 5.
Пусть в основной таблице 04 содержится информации о том, на каких станках могут работать рабочие некоторой бригады. Таблица Д4 содержит сведения о том, кто из брига цы ремонтников какие стгдки обслуживает.
Таблица 04
* * +
Работает |
На станке |
Иванов А. В. |
станок1 |
Иванов А. В. |
станок2 |
Петров Н.Г. |
станок1 |
Петров Н.Г. |
станокЗ |
Сидоров В. К. |
станок2 |
Таблица Д4 * * + | |
Обслуживает |
Станок |
Голубев Б.С. |
станок1 |
Голубев Б.С. |
станокЗ |
Зыков А.Ф. |
станок2 |
Зыков А.Ф. |
станокЗ |
Первой и треть» й записям таблицы 04 соответствует первая запись таблицы Д4 (у всех этих записей значение второго поля — «станок!»). Четвертой записи таблицы 04 соответствую'! вторая и четвертая записи таблицы Д4 (во втором поле этих записей содержится «станокЗ»).
Исходя из определения полей связи этих таблиц можно составить новую таблицу с именем «СЖ Д4», записями которой будут псевдозапчси. Записям полученной таблицы можно придать смысл возможных смен, составляемых при планировании работы. Для удобства, поля новой таблицы переименованы (кстати, такую операцию предлагают многие из современных СУБД).
Таблица «04+Д4»
Работа |
Станок |
Обслуживание |
Иваног А. В. |
станок1 |
Голубев Б.С. |
Иванов А. В. |
станок2 |
Зыков А.Ф. |
Петров Н.Г. |
станок1 |
Голубев Б.С. |
Петров Н.Г. |
станокЗ |
Голубев Б.С. |
Петров Н.Г. |
станокЗ |
Зыков А.Ф. |
Сидоров В. К. |
станок2 |
Зыков А.Ф. |
Т 1ривсденную таблицу можно использовать, например, для получения ответа на вопрос: «Кто обслуживает станки, на которых трудится Петров Н.Г?».
Очевидно, аналогично сьязи 1:1, связь М:М не устанавливает подчиненности таблиц. Дляпроверки этого можно основную и дополнительную таблицу поменять местами и выполнить объединение информации путем связывания. Результирующие таблицы «04+Д4» и «Д4+Э4» будут отличаться порядком следования первого и третьего полей, л также порядком расположения записей.
Зимечание.
I [а практике в связь обычно вовлекается сразу несколько таблиц. При этом одна из таблиц может иметь различного рода связи с несколькими таб тинами. Вслучаях, когда еиязанньк таблицы, в свою очередь,имеют связи с другими таблицами, образуется иерархия или дерево связен.