Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3479

.pdf
Скачиваний:
1
Добавлен:
13.11.2022
Размер:
331.2 Кб
Скачать

1 / 12

Лекция #2 Разработка баз данных и таблиц MS Access.

(4 часа)

Вопросы:

1.Создание базы данных.

2.Таблицы базы данных.

3.Ключи и индексы.

4.Определение связей между таблицами базы данных.

5.Ограничения и поддержание целостности данных

Литература:

1.Экономическая информатика /под ред. П.В. Конюховского, Д.Н. Колесова. СПб.: Питер,

2000

2.Бекаревич Ю.Б. Пушкина Н.В., Смирнова Е.Ю. Управление базами данных. СПб.: Изд. СПбГУ, 1999

3.Робинсон С. Microsoft Access 2000: учебный курс. СПб: Питер, 2000 г

4.Андерсен В. Базы данных Microsoft Access. М: Эком, 2001

5.Каратыгин С. Access 2000 на примерах. М: Лаборатория базовых знаний, 2000

6.Боровиков В.В. MS Acceess 2002 – Программирование и разработка БД. М. Салон-Р, 2002

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

Система Access – это набор инструментов конечного пользователя для управления базами данных. В ее состав входят конструкторы таблиц, форм, запросов, отчетов и страниц доступа к данным. Эту систему можно рассматривать и как среду разработки приложений. Используя макросы или модули можно создавать ориентированные на пользователя приложения.

1. Создание базы данных Аccess.

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

запросы. Это один файл *.mdb, содержащий в себе различные объекты.

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

Создание пустой базы данных. При запуске MS Access открывается окно диалога, в котором предлагается создать новую базу данных или открыть существующую. Выберите Новая база данных и нажмите кнопку ОК. Если вы решили создать базу после закрытия этого окна диалога (например, при работе с уже существующей базой данных), выполните следующие действия:

1. Выберите команду Файл | Создать или нажмите кнопку Создать на панели инструментов. На экране откроется окно диалога «Создание», содержащее две вкладки:

1. «Общие» — позволяет создать новую пустую базу данных.

2 «Базы данных» — позволяет выбрать образец базы данных, содержащий большинство требуемых объектов, и создать базу данных с помощью мастера.

2. Для создания новой пустой базы данных перейдите на вкладку «Общие», выберите элемент «База данных» и нажмите кнопку ОК в нижней части окна диалога. На экране откроется окно диалога «Файл новой базы данных». 3. Выберите из раскрывающегося списка Папка папку, в которой предполагаете сохранить создаваемую базу данных, а в поле Имя файла введите имя базы данных. 4. После ввода имени создаваемой базы данных нажмите кнопку Создать данного окна диалога. На экране

2 / 12

откроется окно базы данных. В данном окне вам предстоит создать все объекты, входящие в базу данных. Их перечень соответствует элементам раздела «Объекты» на левой панели. В этом окне

вы можете создавать таблицы, хранящие информацию, отчеты, формы, запросы, Web-страницы. Доступ к определенной категории объектов осуществляется выбором соответствующего элемента. В результате в окне базы будет отображаться список уже существующих объектов выбранной категории, а в верхней части окна — средства создания объектов этой категории.

Создание базы данных с помощью мастера Для создания новой базы данных с помощью мастера выполните следующие действия: 1. Выполните команду Файл | Создать. 2. В открывшемся окне диалога «Создание» выберите ярлык «Базы данных». На экране появится список баз данных, предлагаемых мастером. Выберите из списка наиболее подходящий вам образец базы данных и запустите на выполнение мастер создания базы данных, нажав кнопку ОК. В окне диалога «Файл новой базы данных» из раскрывающегося списка Папка выберите папку, в которую предполагаете поместить создаваемую базу данных, а в поле Имя файла введите ее имя. Затем нажмите кнопку Создать. В следующем окне диалога мастер сообщает, какую информацию будет содержать создаваемая им база данных. В нижней части этого окна диалога находятся следующие кнопки:

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

6.Для продолжения работы нажмите кнопку Далее. 7. Открывшееся окно диалога содержит два списка. Первый из них — список таблиц базы данных, а второй — список полей выбранной таблицы.

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

8.В следующем окне диалога выберите из предлагаемых образцов вид оформления экрана и нажмите кнопку Далее. 9. На следующем шаге работы мастера можно определить вид создаваемых для базы данных отчетов. После выбора подходящего вам вида нажмите кнопку Далее. 10. Открывшееся затем окно диалога мастера создания базы данных позволяет задать ее заголовок и рисунок (например, торговый знак фирмы), который будет появляться во всех отчетах. Если вы решили использовать рисунок, установите флажок Да. В этом случае становится доступна кнопка Рисунок, нажатие на которую открывает окно диалога «Выбор рисунка» для указания заранее созданного файла с рисунком. Нажмите кнопку Далее для выполнения дальнейших установок. Нажав кнопку Готово в последнем окне диалога (рис. 3.11), вы запускаете мастер на построение базы данных с установленными параметрами. Используя кнопку Назад, вы можете вернуться на любой из предыдущих шагов и изменить параметры базы данных.

2. Таблицы базы данных.

Таблицы — фундаментальные объекты реляционной базы данных, в которых хранится основная часть данных приложения. Отдельная таблица чаще всего хранит информацию по конкретной теме (например, служащие компании или адреса заказчиков). Информация в таблице организуется в строки (записи) и столбцы (поля).

Таблице базы данных присущи два компонента: структура таблицы и данные таблицы.

Структура таблицы (также называется определением таблицы) специфицируется при создании таблицы. Структура таблицы должна быть спроектирована и создана перед вводом в таблицу каких-либо данных. Она определяет, какие данные таблица будет хранить, а также правила, ассоциированные с вводом, изменением или удалением данных (бизнес-правила, или ограничения). Структура таблицы доступна через окно конструктора таблиц (см. рис. 6.1). Чтобы открыть это окно для существующей таблицы, нужно нажать кнопку Таблицы (Tables) в области объектов окна базы данных, выбрать таблицу и нажать кнопку Конструктор (Design). Структура таблицы включает следующую информацию:

Имя таблицы

Имя, по которому к таблице можно обратиться в свойствах, методах и операто-

 

рах SQL.

 

 

Столбцы таблицы

Категории информации, сохраненной в таблице. Для каждого столбца определя-

 

ется имя и тип данного.

 

 

 

3 / 12

Табличные и столбцовые

Правила целостности данных, определенные на уровне таблицы или на уровне

 

ограничения

столбца.

 

 

 

 

Окно конструктора таблиц используется как для определения структуры таблицы при ее создании, так и для последующего изменения структуры таблицы. Эти операции обсуждаются ниже. Данные таблицы — информация, которая сохранена в таблице. Все данные таблицы хранятся в строках, каждая из которых содержит порции информации в столбцах или полях, определенных в структуре таблицы.

Создание таблицы

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

Создание новой пустой таблицы

ВMicrosoft Access существует несколько способов создания новой таблицы: • Мастер .таблиц позволяет выбрать поля для новой таблицы из стандартных таблиц, предоставляемых Access.

• Ввод данных непосредственно в пустую таблицу в режиме таблицы. При сохранении новой таблицы в Microsoft Access данные анализируются и каждому полю присваивается необходимый тип данных и формат.

• Определение всех параметров структуры таблицы в режиме конструктора.

• Импорт в текущую базу данных структур таблиц и данных из внешнего источника.

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

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

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

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

1. Перейти в окно базы данных. Переключиться из другого окна в окно базы данных можно, нажав клавишу <F11>.

2. Нажав кнопку Таблицы (Tables), нажать далее кнопку Создать (New).

3. В окне Новая таблица (New Table) выбрать элемент Конструктор (Design View).

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

ВMicrosoft Access свойства полей используются при просмотре или изменении данных пользователем. Например, заданные пользователем значения свойств Формат поля (Format), Маска ввода (InputMask) и Подпись (Caption) определяют вид данных таблицы и запроса. Элементы управления в новых формах и отчетах, присоединенные к полям таблицы, наследуют эти свойства полей базовой таблицы по умолчанию. Другие свойства позволяют определить условия на значения полей или задать обязательный ввод данных в поле. Microsoft Access будет проверять выполнение этих условий при каждом добавлении или изменении данных в таблице. Для добавления поля в конец структуры таблицы нужно выбрать первую пустую строку структуры. Для вставки поля в середину структуры следует выбрать строку, над которой требуется добавить новое поле, и нажать кнопку Добавить строки (Insert Rows) на панели инструментов. В столбец Имя столбца (Field Name) ввести имя поля; в столбце Тип данных (Data Type) выбрать требуемый типа данных в раскрывающемся списке либо оставить настройку по умолчанию (Текстовый).

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

5. Назначить ключевые поля таблицы.

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

6. Для сохранения таблицы нажать кнопку Сохранить (Save) Ш на панели инс' ментов, введя допустимое имя таблицы.

4 / 12

Выбор для поля таблицы типа данного

Тип данного поля таблицы можно выбрать в раскрывающемся списке в столбце Тип данных (Data Type).

При выборе типа данных, используемых в поле, необходимо учитывать следующее;

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

Сколько места необходимо для хранения значений в поле.

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

Нужна ли сортировка или индексирование поля. Сортировать и индексировать поля MEMO, гиперссылки и объекты OLE невозможно.

Будут ли поля использоваться в группировке записей в запросах или отчетах. Поля MEMO, гиперссылки и объекты OLE использовать для группировки записей нельзя.

Каким образом должны быть отсортированы значения в поле. Числа в текстовых полях сортируются как строковые значения (1, 10, 100, 2, 20, 200 и т.д.), а не как числовые значения. Для сортировки чисел как числовых значений необходимо использовать числовые поля или поля, имеющие денежный формат. Также многие форматы дат невозможно надлежащим образом отсортировать, если они введены в текстовое поле. Для обеспечения сортировки дат и времен следует использовать поле типа «Дата/время».

В следующей таблице сведены все типы данных Microsoft Access и их применение:

Тип данных

Применение

Размер

 

 

 

 

Текстовый

Текст или комбинация текста и чисел, например, адрес, а

До 255 символов. Хранятся

(Text)

также числа, не требующие вычислений, например, номера

только

введенные в поле

 

телефонов, номенклатурные номера или почтовый индекс.

символы, позиции, не ис-

 

 

пользованные в текстовом по-

 

 

ле, не

хранятся. Для управ-

 

 

ления

максимальным числом

 

 

вводимых символов следует

 

 

определить свойство Размер по-

 

 

ля (FieldSize).

Поле MEMO

Длинный текст или числа, например, комментарии или опи-

До 65535 символов.

 

сание. Поля MEMO не могут быть индексированы или от-

 

 

 

сортированы. Для хранения форматированного текста или

 

 

 

длинных документов, вместо поля MEMO, следует создать

 

 

 

поле объекта OLE.

 

 

 

 

 

Числовой

Числовые данные, используемые для математических вы-

1, 2, 4 или 8 байт. 16 байт только

(Number)

числений, за исключением вычислений, включающих де-

для кодов репликации.

 

нежные операции (для которых используется денежный

 

 

 

тип). Тип и размер значений, которые могут находиться в

 

 

 

числовом поле, можно изменить в свойстве Размер поля

 

 

 

(FieldSize). Например, в поле, занимающее на диске 1 байт,

 

 

 

допускается ввод только целых чисел (без десятичных зна-

 

 

 

ков) от 0 до 255.

 

 

 

 

 

 

Дата /время

Даты и время. Хранение значений дат и времени в поле типа

8 байт.

 

(Date/Time)

Дата/Время обеспечивает правильную сортировку. Все из-

 

 

 

менения, внесенные в форматы дат и времени в окне Язык и

 

 

 

стандарты Панели управления Windows, будут автоматиче-

 

 

 

ски отражены в полях типа Дата/Время.

 

 

 

 

 

 

Денежный

Значения валют. Денежный тип используется для предот-

8 байт.

 

(Currency)

вращения округлений во время вычислений. Предполагает

 

 

 

до 15 символов в целой части числа и 4 — в дробной.

 

 

 

 

 

 

 

 

 

5 / 12

Счетчик

Автоматическая вставка последовательных (отличающих-

4 байта. Для кодов репликации

 

(Au-

ся на 1) или случайных чисел при добавлении записи. Для

— 16 байт.

 

toNumber)

создания возрастающего счетчика следует оставить все

 

 

 

настройки свойства в нижней части окна прежними (по

 

 

 

умолчанию, в свойстве Размер поля (FieldSize) задано зна-

 

 

 

чение Длинное целое, а .в свойстве Новые значения

 

 

 

(New Values) — Последовательные (Increment). Для созда-

 

 

 

ния счетчика случайных чисел для свойства Новые значения

 

 

 

нужно установить значение Случайные (Random).

 

 

 

 

 

 

 

Логический

Поля, содержащие только одно или два значения,

таких

1 бит.

 

(Yes/No)

как Да/Нет, Истина/Ложь, Вкл/Выкл.

 

 

 

 

 

 

 

 

Объекты

Объекты (например, документы Microsoft Word,

электрон-

До 1 гигабайта

 

OLE (OLE

ные таблицы Microsoft Excel, рисунки, звуки и другие дан-

 

 

Object)

ные), созданные в других программах, использующих про-

 

 

 

токол OLE. Объекты могут быть связанными или внед-

 

 

 

ренными в таблицу Microsoft Access. Для отображения объ-

 

 

 

екта OLE в форме или отчете необходимо использовать

 

 

 

элемент управления Присоединенная рамка объекта.

 

 

 

 

 

 

Гиперссылка

Поле, в котором хранятся гиперссылки. Гиперссылка мо-

Длина каждой из частей ги-

 

(Hyperlink)

жет быть либо типа UNC (Universal Naming Convention —

перссылки не более 2048

 

 

стандартный формат пути файла с включением сетевого

символов.

 

 

сервера), либо URL (Uniform Resource Locator — ад-

 

 

 

рес объекта в Internet или внутренней сети с включением

 

 

 

типа протокола доступа).

 

 

 

 

Гиперссылка может состоять из четырех частей:

 

 

 

 

• текст, выводимый в поле или в элементе управления; •

 

 

 

путь к файлу (в формате пути UNC) или странице (URL); •

 

 

 

дополнительный адрес — расположение внутри файла или

 

 

 

страницы; • подсказка — текст, отображаемый в виде

 

 

 

всплывающей подсказки.

 

 

 

 

 

 

 

Мастер под-

Создается поле, позволяющее выбрать значение из другой

Размер такой же, как и размер

 

становок

таблицы, или из списка значений, используя поле со спис-

ключевого поля, которое также

 

(Lookup

ком. При выборе данного параметра в списке типов данных

является Мастером подстановок,

 

Wizard)

для их определения загружается Мастер.

 

обычно 4 байта.

 

 

 

 

 

 

Свойство Размер поля

Свойство Размер поля (FieldSize) определяет максимальный размер данных, которые могут сохраняться в полях с типом данных Текстовый, Числовой или Счетчик.

Если свойство Тип данных (DataType) имеет значение "Текстовый", значением данного свойства должно быть целое число в диапазоне от 0 до 255. Если свойство Тип данных имеет значение "Счетчик", то допустимыми значениями свойства Размер поля будут "Длинное целое" или "Код репликации". Если поле имеет тип данных "Числовой", то допустимыми являются следующие значения свойства Размер поля:

Значение

Описание

Дробная часть

Размер

 

 

 

 

 

Байт

Числа от 0 до 255

Отсутствует

1

байт

 

 

 

 

 

Целое

Числа от -32 768 до 32 767

Отсутствует

2

банта

 

 

 

 

 

Длинное целое

Значение по умолчанию. Числа от -2 147 483

Отсутствует

4

байта

 

 

648 до 2 147 483 647

 

 

 

 

 

 

 

 

 

С

плавающей

Числа от -3.402823Е38 до -1.401298Е-45 для от-

7 знаков

4

байта

точкой (Одинар-

рицательных значений и от 1.401298Е-45 до

 

 

 

ное; 4 байта)

3.402823Е38 для положительных.

 

 

 

 

 

 

 

 

 

С

плавающей

Числа от -1.79769313486232Е308 до -4.

15 знаков

8

байт

точкой (Двой-

9406564584 1247Е для отрицательных значений и

 

 

 

ное; 8 байт)

от 1.7976931 348623 1Е308 до 4.94065645841247Е-

 

 

 

 

 

324 для положительных.

 

 

 

 

 

 

 

 

 

6 / 12

Действительное

Числа от -1038-1 до 1038-1 (adp). Числа от -1028-1 до

28 знаков

12 байт

 

1028-1 (.mdb).

 

 

Код репликации

Глобальный уникальный идентификатор (GUID)

Не определено

16 байт

 

при репликации объектов данных.

 

 

 

 

 

 

Поле типа Счетчик

Для создания полей, в которые при добавлении записи автоматически вводится число, в Microsoft Access существует тип данных Счетчик. При этом созданный для записи номер уже не может быть удален или изменен. В поле счетчика могут быть использованы три типа чисел: последовательно возрастающие на один, случайные числа, а также коды репликации (также называются QUID — уникальные глобальные идентификаторы). Наиболее часто используется счетчик последовательно возрастающих чисел. Такой тип счетчика удобно использовать как ключевое поле таблицы. Счетчик случайных чисел создает уникальный номер для каждой записи в таблице.

Поле счетчика и репликация

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

Если между операциями синхронизации реплик добавляется, как правило, менее 100 записей, то с целью экономии дискового пространства для свойства Размер поля (FieldSize) следует использовать значение Длинное целое

Если между операциями синхронизациями добавляется более 100 записей, с целью предотвращения повторения значений в ключевых полях в разных репликах следует использовать значение Код репликации. Однако следует иметь в виду, что в поле типа Счетчик с размером Код репликации генерируются 128-битовые значения, требующие больше места на диске.

Свойство Формат поля

Свойство Формат поля (Format) позволяет указать форматы вывода текста, чисел, дат и значений

времени на экран и на печать. Например, для поля Цена разумно указать в свойстве Формат поля формат Денежный и установить для его свойства Число десятичных знаков (DecimalPlaces) значение 2 или Авто. В этом случае введенное в поле значение 4321,678 будет отображаться как 4 321,68р.. Допустимо использование как встроенных, так и специальных форматов, созданных , при помощи символов форматирования.

Для элементов управления значение свойства Формат поля задается в окне свойств. Для поля в таблице или запросе значение данного свойства задается в режиме конструктора таблицы (в разделе свойств поля) или в окне запроса (в окне свойств поля). Форматы можно выбирать из списка встроенных форматов для полей, имеющих числовой, денежный, логический типы данных, а также типы данных счетчика и даты/времени. Также для любых типов данных полей, отличных от объектов OLE, есть возможность создания собственных специальных форматов. Кроме того, значение данного свойства можно задать в макросе или в программе Visual Basic.

Свойство Формат поля определяет только способ отображения данных, не оказывая воздействия на способ их сохранения. В Microsoft Access определены стандартные форматы для полей с типами данных Числовой, Дата/время, Логический Текстовый и Поле MEMO. В качестве стандартных используются национальные форматы, выбираемые в окне Язык и стандарты Панели управления Windows Набор форматов определяется настройками для конкретной страны. Например если на вкладке Язык и стандарты указать Английский (США), то число 1234.56 в денежном формате будет выглядеть как $1,234.56. Но если указать на этой вкладке Русский, то это число будет выглядеть так: 1 234,56р. Маска ввода обеспечивает соответствие текстовых данных и дат определенному формату, а также заданному типу значений, вводимых в каждую позицию.

3. Ключи и индексы

Мощь реляционных баз данных заключается в том, что с-их помощью быстро найти и связать данные из разных таблиц при помощи запросов, форм и отчетов. Для этого каждая таблица должна содержать одно или несколько полей, однозначно идентифицирующих каждую запись в таблице. Эти поля называются ключевыми полями таблицы. Если для таблицы обозначены ключевые поля, то ядро базы данных (в Access — Microsoft Jet) предотвращает дублирование или ввод пустых значений в ключевое поле.

7 / 12

Типы ключевых полей

В Microsoft Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ.

Ключевые поля счетчика

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

Простой ключ

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

Составной ключ

В случаях, когда невозможно гарантировать уникальность значений каждого отдельного поля, можно создать ключ, состоящий из нескольких полей. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении "многие к многим". Примером такой таблицы может служить таблица Книги базы данных Картотека (см. рис. 3.4), связывающая таблицы Авторы и Издатели. В этой таблице можно назначить ключ, состоящий из двух полей: МоАвтора и ЫоИздателя. В таблице Книги может быть представлено много авторов и много издателей, но каждая книга присутствует в картотеке только один раз, поэтому комбинация значений полей ЫоАвтора и МоИздателя достаточна для образования ключа. Другим примером может служить складская база данных, в инвентарной книге которой используются один основной и один или несколько вспомогательных инвентарных номеров.

Примечание: Если определить подходящий набор полей для составного ключа сложно, можно просто добавить поле счетчика и сделать его ключевым. Например, не рекомендуется определять ключ по полям Имена и Фамилии, поскольку нельзя исключить повторения этой пары значений для разных людей.

Индексы

Индексы — объекты базы данных, которые обеспечивают быстрый доступ к отдельным строкам в таблице. Индекс создается с целью повышения производительности операций запросов и сортировки данных таблицы. Индексы также используются для поддержания в таблицах некоторых типов ключевых ограничений (например, ограничений Unique и Primary Key); эти индексы часто создаются автоматически при определении ограничения. Индекс — независимый объект, логически отдельный от индексированной таблицы; создание или удаление индекса никак не воздействует на определение или данные индексированной таблицы. Индекс хранит специальным образом обработанные версии всех значений одного или больше столбцов таблицы. Когда значение запрашивается из индексированного столбца, ядро базы данных использует индекс для быстрого нахождения требуемого значения. Индексы должны постоянно поддерживаться, чтобы отражать последние изменения индексированных столбцов таблицы. Процедуры обновления индекса при вставке, модификации или удалении значения в индексированный столбец автоматически выполняются ядром базы данных. Хотя эти операции не требуют никаких действий со стороны пользователя, они, однако, снижают эффективность некоторых операций манипулирования данными (кроме запросов на выборку). Однако уменьшение производительности, ассоциированное с поддержанием индекса, в большинстве случаев с лихвой компенсируется преимуществами повышения быстродействия доступа к данным, которое обеспечивает индекс. Индексы обеспечивают наибольшие выгоды для относительно статичных таблиц, по которым, в то же время, часто выполняются запросы.

Содание и изменение ключевых полей

Для создания ключевых полей таблицы:

1.В режиме конструктора выделить одно или несколько полей, которые необходимо определить как ключевые. Для выделения одного поля нужно щелкнуть область выделения строки нужного поля (кнопка слева строки). Выделить нескольких полей можно, удерживая при выборе каждого поля кла-

вишу <Ctrl>.

2.Нажать кнопку Ключевое поле (Primary Key) на панели инструментов. На рис. 3.4 в качестве ключевого назначено поле МоИздателя.

8 / 12

Допускается назначение ключевым поля, содержащего данные, однако, если в этом поле имеются повторяющиеся или пустые значения, будет выведено сообщение об ошибке, так как для клю-

чевого поля устанавливается ограничение Unique и Not Null. В этом случае можно либо найти записи, содержащие повторяющиеся или пустые значения в поле, и изменить эти значения, либо выбрать другое поле, либо добавить поле счетчика и определить его как ключевое.

Создание индекса

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

Ключевые поля таблицы индексируются автоматически. Нельзя индексировать поля с типом данных поле MEMO, гиперссылка или объект OLE. Для остальных полей индексирование используется, если поле имеет текстовый, числовой, денежный тип или тип даты/времени и требуется осуществлять поиск и сортировку значений.

Если предполагается, что будет часто выполняться сортировка или поиск одновременно по двум и более полям, можно создать составной индекс. Например, если для одного и того же запроса часто устанавливается критерий для полей "Имя" и "Фамилия", то для этих двух полей имеет смысл создать составной индекс. При сортировке таблицы по составному индексу сначала осуществляется сортировка по первому полю, определенному для данного индекса. Если в первом поле содержатся записи с повторяющимися значениями, то сортировка осуществляется по второму полю и так далее. Чтобы создать индекс для одного поля следует:

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

2.В панели свойств (нижняя часть окна) для свойства Индексированное поле (Indexed) установить значение "Да (Допускаются совпадения)" или Да (Совпадения не допускаются).

Убедиться, что в данном поле совпадающих записей нет, можно, выбрав значение "Да (Совпадения не допускаются)". Чтобы создать составной индекс, необходимо:

1.В режиме конструктора на панели инструментов нажать кнопку индексы.

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

3.В поле Имя поля (Field Name) нажать стрелку и выбрать в списке первое поле, для которого требуется создать индекс.

4.В следующей строке поля Имя поля (Field Name) указать второе индексируемое поле (для данной строки поле Индекс (Index Name) следует оставить пустым). Повторить эти действия для всех полей, которые необходимо включить в индекс. В составном индексе может быть до 10 полей.

Ограничение Unique

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

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

2.В панели свойств для свойства Индексированное поле (Indexed) установит! значение Да (Совпадения не допускаются).

4. Определение связей между таблицами базы данных

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

9 / 12

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

Отношение "один к многим"

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

Отношение "многие к многим"

При отношении "многие к многим" одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В несколько записей в таблице А. Такая схема реализуется толъко с помощью третьей (связующей) таблицы, ключ которой состоит, по крайней мере, из двух полей, которые являются полями внешнего ключа в таблицах А и В. Например, между таблицами Авторы и Издатели имеется отношение "многие к многим", которое определяется путем создания двух связей с отношением "один к многим" через таблицу Книги (см. рис. 3.4).

Отношение "один к одному"

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

Определение связей

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

1.Закрыть все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.

2.Переключиться в окно базы данных. Для переключения в окно базы данных из других окон можно нажатием клавиши F11.

3. Нажать кнопку Схема данных (Relationships) l°° I на панели инструментов.

4.Если в базе данных не определено никаких связей, то на экран автоматически будет выведено окно Добавление таблицы (Show Table). Если до определения связей необходимо добавить таблицы, а диалогового окна Добавление таблицы (Show Table) на экране нет, нужно нажать кнопку Отобразить таблицу (Show Table) LEJ на панели инструментов. Если же таблицы, которые необходимо связать, уже отображены на экране, перейти к шагу 6.

5.В окне диалога Добавление таблицы (Show Table) дважды щелкнуть имена таблиц, для которых требуется определить связи. Закрыть окно.

6.Для связывания полей выбрать поле в одной таблице и перенести его на соответствующее поле во второй таблице. Для связывания сразу нескольких полей выбрать и перенести их при нажатой клави-

ше <Ctrl>.

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

• Поле счетчика можно связывать с числовым полем, если в последнем в свойстве Размер поля задано значение "Длинное целое".

• Поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля задано значение "Код репликации".

7.В открывшемся диалоговом окне Изменение связей (Relationships) проверить имена полей, представленные в двух списках. В случае необходимости, здесь можно внести изменения.

Если необходимо, установить параметры связи.

8.Для создания связи нажать кнопку Создать (Create).

9.Шаги с 5 по 8 проделать для каждой связываемой пары таблиц.

Примечание: Иногда требуется связать поле таблицы с другим полем той же таблицы,I Этот случай называется самоссылкой или ограничением самоссылочной! целостности. Такая ситуация возникает при определении поля с подста-| новкой значений из той же таблицы. Этот тип внешнего ключа ссылается! на родительский ключ

10 / 12

той же самой таблицы. В примере на рис. 6.8 праТ вило ссылочной целостности определено так, чтобы каждому значению!! столбце Руководитель таблицы Служащие соответствовало значение, ко! торое в настоящее время содержится в столбце МоСотрудника той же! таблицы. Это ограничение устраняет возможность ошибочных номеров! служащих в столбце Руководитель (руководитель — тоже служащий). Дл«| связывания полей одной таблицы эту таблицу следует добавить в от Схема данных (Relationships) дважды.

Тип создаваемой связи зависит от полей, для которых определяется связь.

Отношение "один к многим создается в том случае, когда только одно из поле!| является ключевым или имеет уникальный индекс.

Отношение "один к одному" создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

Связь с отношением "многие к многим", фактически, представляет собой две связи с отношением

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

Ограничения и поддержание целостности данных

Ограничение — некоторое ограничивающее условие, или правило. В базе данных — общее понятие, охватывающее широкий круг аспектов управления базой данных: ключи, значения, типы и форматы данных и т.д.. Ограничения устанавли'

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

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

Ограничения можно определять на двух уровнях:

Вбазе данных. Ограничения в базе данных ассоциируются с определениями объектов-таблиц. Например, для таблицы может быть установлено ограничение, которое требует, чтобы каждое значение в столбце было уникальным.

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

Ограничения в базе данных

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

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

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

IUPHT

мент.

Простота. Ограничения базы данных просты в определении и не требуют никакого программного кппя кого программного кода

Типы ограничений в базе данных

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]