Проектирование базы данных. Создание связей между таблицами

Проектирование базы данных. Создание связей между таблицами


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


Современные базы данных обычно состоят из многих таблиц, связанных между собой. В реляционной теории баз данных выделяют несколько типов связей между таблицами, однако чаще всего используется тип связи «один-ко-многим». Например, в базе данных Борей каждая таблица связана с одной или несколькими другими с использованием отношения «один-ко-многим».


Схема данных учебной базы данных Борей


Рассмотрим связь между таблицами Заказы и Клиенты. В таблице Клиенты для каждого клиента имеется только одна запись, а один и тот же клиент может быть включен в таблицу Заказы много раз, поэтому линия связи на схеме данных обозначена единицей со стороны таблицы Клиенты и знаком бесконечности со стороны таблицы Заказы.

Таблица, участвующая в связи на стороне «один», далее будет называться главной, а таблица на стороне «много» – подчиненной, или подробной.

Для создания связи обычно выбирается пара полей – по одному из каждой таблицы. Поле, используемое для связи в главной таблице, должно быть ключевым и называется первичным ключом. В таблице Клиенты ключевым полем выбрано специальное поле ИД (сокращение от слова «идентификатор») с типом данных Счетчик.

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

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


Этапы проектирования базы данных


Процесс создания базы данных следует тщательно продумать, поскольку допущенные ошибки исправлять намного сложнее, когда база данных наполнена информацией. Разработку базы данных лучше выполнять в несколько этапов.

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

? для чего создается база данных;

? какие данные будут храниться;

? как нужно обрабатывать данные и какие результаты при этом нужно получить.

Если база данных небольшая, то заказчик и разработчик может быть одним и тем же лицом. Однако и в этом случае перед началом создания базы данных следует дать подробные ответы на приведенные выше вопросы.

Разработка структуры базы данных. На этом этапе следует определить, какие таблицы будут использоваться в базе данных и как они будут связаны между собой. Результат разработки структуры можно представить в виде схемы данных, которую можно начертить на листе бумаги. Это самый важный этап при создании базы данных, поскольку ошибки в структуре могут стать источником серьезных проблем при последующем выполнении обработки данных, а изменение структуры уже готовой базы данных – относительно сложная задача. Считается, что правильная структура базы данных – это половина ее успеха, поэтому созданную структуру нужно тщательно проанализировать и при необходимости внести в нее изменения.

Для разработки структуры небольшой базы данных из нескольких таблиц самыми подходящими инструментами могут оказаться лист бумаги и карандаш. Для проектирования объемных баз данных существуют специальные программные средства, для работы с которыми необходим соответствующий уровень подготовки.

Создание таблиц и связей между ними. После разработки структуры базы данных можно приступать к созданию самой базы данных, таблиц и связей между ними. Для создания таблицы нужно иметь следующую информацию:

? как будут называться все поля таблицы и какой тип данных будет использоваться для каждого поля;

? какие поля в таблице будут являться ключевыми (уникальными);

? какие дополнительные свойства полей будут применяться.

Создание форм, запросов и отчетов. Эти объекты создаются для обработки данных, вывода результатов и удобства работы пользователя.

ПРИМЕЧАНИЕ

В Access имеются шаблоны нескольких баз данных, с помощью которых можно быстро создать новую базу данных с готовыми таблицами, формами и отчетами, не углубляясь в параметры создаваемых объектов. Этот способ доступен пользователям с минимальным уровнем знаний, однако имеет существенный недостаток: такая база данных часто не удовлетворяет всем поставленным требованиям и ее приходится доделывать вручную. Чтобы лучше разобраться с принципами построения баз данных, далее будет рассмотрено создание базы данных «с нуля». Полученные знания позволят редактировать любые базы данных, в том числе и созданные на основе встроенных шаблонов.


Техническое задание на разработку учебной базы данных


Необходимо создать базу данных для диспетчера такси, которая должна отвечать следующим требованиям.

? В эту базу диспетчер должен заносить поступающие вызовы клиентов и регистрировать их исполнение.

? На связи с диспетчером находятся несколько автомобилей, каждый из них закреплен за определенным водителем и имеет бортовой номер. При поступлении вызова диспетчер назначает автомобиль для выполнения заказа и фиксирует информацию о заказе в базе данных.

? В базе данных нужно вести учет заказов постоянных клиентов, каждый из которых имеет карточку с персональным номером. Кроме номера карточки база данных должна позволять заносить фамилии, адреса и телефоны клиентов.

? Кроме учета оперативной информации база данных должна обеспечивать получение различных итоговых данных, например количество и сумма заказов постоянных клиентов, интенсивность использования автомобилей и др.

Поставив задачу, можно приступать к разработке структуры базы данных.


Разработка структуры базы данных


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


Предварительный проект таблицы учебной базы данных


Хранение всех данных в подобной таблице будет неудобным, поскольку в ней смешаны три разных понятия – Заказы, Клиенты и Автомобили, что приведет к повторению информации. Например, для регистрации вызова постоянного клиента придется каждый раз вводить его номер карточки, фамилию и другие данные. Если создать отдельную таблицу Клиенты, то сведения о клиентах будут заноситься только при первом вызове, а при последующих фамилия клиента будет выбираться из раскрывающегося списка. Исходя из аналогичных соображений, можно также создать отдельную таблицу Автомобили, и окончательная структура базы данных может быть такой.

Несколько замечаний по созданному проекту.

? В каждой таблице нужно определить ключевое поле. В таблице Клиенты это будет поле НомерКарточки, а в таблице Автомобили – НомерАвтомобиля. В таблице Заказы нет подходящего поля для ключевого, поэтому было введено дополнительное поле КодЗаказа с типом данных Счетчик.


Проект структуры базы данных диспетчерской службы такси


? Для регистрации исполнения заказов введено дополнительное поле СостояниеЗаказа, в которое оператор сможет вводить следующие значения – Активный, Выполнен, Отменен.

? Для упрощения задачи пусть каждый водитель работает только на своем автомобиле в одну смену. В случае посменной работы водителей нужно будет разделить таблицу Автомобили на несколько отдельных.

ПРИМЕЧАНИЕ

Кроме связей типа «один-ко-многим» существуют связи «один-к-одному» и «многие-ко-многим». Так, если нужно хранить расширенные сведения об автомобилях и водителях, то целесообразно создать отдельную таблицу Водители, которая была бы связана с таблицей Автомобили способом «один-к-одному».

Связь «многие-ко-многим» реализуется в Access с помощью дополнительной таблицы. В данном примере таблицы Автомобили и Клиенты связаны между собой отношением «многие-ко-многим» с помощью дополнительной таблицы Заказы.

После того как структура базы данных создана и проверена, нужно проработать более детально структуру каждой таблицы. Таблица Клиенты была создана, поэтому рассмотрим проекты таблиц Заказы и Автомобили.

Полезные статьи

Комментарии и пинги к записи запрещены.

Комментарии закрыты.

data-title= src=