FULL ACCESS Пятница, 22.11.2024, 13:31
Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Структура [3]
Статьи о работе со структурой данных как на низком уровне, так и на уровне схемы данных
Интерфейс [2]
Статьи описывающие приёмы работы с интерфейсом
Разное [1]
Разные статьи на темы о базах данных
Автоматизация [1]
Статьи про автоматизированные системы, автоматизацию проектирования.

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Сертификаты. Рейтинги

Партнёры

Главная » Статьи » Структура

Основы создания базы данных

Что нам стоит…

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

С чего начинается…

Базу данных можно строить и с одной большой таблицы. Как один из методов, такой встречается в литературе для начинающих. К примеру, возьмём базу данных «Телефонная книга». Просто перечислим, что будет храниться в этой базе данных. Тут, позвольте, небольшое лирическое отступление.
Основная задача баз данных – это хранение информации в структурированном виде. Такой вид хранения позволяет минимизировать объём хранимых данных. А также упростить поиск и произвольный доступ к данным.
Итак, в телефонной книге будем хранить: фамилию, имя, номер домашнего телефона и (или) номер сотового телефона, и (или) номер рабочего телефона, и (или) номер факса (домашнего или рабочего). Можно всё это записать в виде одной таблицы (некоторые поля):

Фамилия
Имя
Домашний телефон
Рабочий телефон
Факс






Ничего не забыли? А как же поздравить друга с днём рождения?! Конечно, добавляем столбец для даты рождения в эту таблицу:

Имя
Дата рождения
Домашний телефон
Рабочий телефон
Факс
Андрей
12.04.1990
1798273


Макс
05.10.1988
7398211
1892798
1782277
Алекс
27.05.1985
7312112
1822311


Как-то не рационально заполняется таблица, остаются пустые поля. И ещё появляется Виктор и хвастается новым сотовым телефоном, а домашнего телефона у него нет. Телефоны бывают разные (домашние, сотовые, рабочие). И у каждого друга их по разному количеству (один, два, три, четыре). Можно завести отдельную таблицу для телефонов:

Имя
Телефон
Номер
Андрей
Домашний
1798273
Макс
Домашний
7398211
Макс
Рабочий
1892798
Макс
Факс
1782277
Алекс
Домашний
7312112
Алекс
Рабочий
1822311

Тогда первая таблица сократится до трёх-четырёх столбцов (или по-другому, полей) с личной информацией: Фамилия, Имя, Дата рождения.
Кажется, получается громоздко, а не компактно, т.к. данные повторяются. Повторяются имена в таблице со списком друзей и в таблице с номерами телефонов. А также повторяются типы телефонов. Так Домашний телефон есть почти у каждого!

Ключ

Ключ – это важное понятие в реляционных базах данных. Ещё он называется «первичный ключ» или «ключевое поле». Это такой специальный столбец (поле) таблицы, значение которого не повторяется, а, значит, позволяет однозначно отличать одну запись в таблице от другой. Например, для того чтобы отличать тёзок среди наших друзей мы можем придумать для них (необидные) прозвища. Также и в базе данных: в таблице надо создать первичный ключ. Если в качестве первичного ключа будем использовать какое-либо уникальное свойство записи, то такой ключ называется «естественным». Например, таким ключом может быть серия и номер паспорта. Но в нашем примере мы не будем спрашивать у всех паспортные данные, а просто будем использовать счётчик: кого первого записали, у того номер один, у следующего – два и так далее. В Access (как и в других СУБД) для этого есть специальный тип данных поля, который так и называется «Счётчик».
Ключ не всегда состоит из одного поля. Бывают случаи, что для однозначного определения записи необходимо сочетание значений нескольких атрибутов. Такие ключи называются «составными».

Связь

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

Ключ
Имя
Дата рождения
1
Андрей
12.04.1990
2
Макс
05.10.1988
3
Алекс
27.05.1985
4
Макс
17.12.1991

Теперь заменим поле связи ключом из первой таблицы.

Ключ списка
Телефон
Номер
1
Домашний
1798273
2
Домашний
7398211
3
Домашний
7312112
3
Рабочий
1822311
4
Рабочий
1892798
4
Факс
1782277

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

Справочник

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

Целостность данных

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

Ключ
Имя
Дата рождения

Андрей
12.04.1990

Макс
05.10.1988

Алекс
27.05.1985

Убрали из друзей второго Макса. Действительно, зачем нам два? А в таблице с телефонами записи остались.

Ключ списка
Телефон
Номер
1
Домашний
1798273
2
Домашний
7398211
3
Домашний
7312112
3
Рабочий
1822311
4
Рабочий
1892798
4
Факс
1782277

Есть в Access инструмент для поддержания целостности данных с помощью внешних связей. Для этого надо открыть схему данных, добавить таблицы, нарисовать связь, т.е. с помощью мыши перетащить ключ одной таблицы на внешний ключ другой, а в свойствах связи указать, что требуется обеспечение целостности данных и как это поддерживается системой. Если указать, что требуется каскадное удаление записей, то, удалив запись про второго Макса, система уже сама бы удалила все связанные записи. Таким образом поддерживается целостность данных.

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



Категория: Структура | Добавил: DenisV (11.09.2009) | Автор: Denis V.
Просмотров: 2318 | Комментарии: 1 | Теги: структура, ключ, создать базу данных, база данных, Access, целостность, связь | Рейтинг: 5.0/1
Всего комментариев: 1
1 Гость  
0
классная статья!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • content by Denis V. 2024 Бесплатный хостинг uCoz