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

BD / bd_lab_kn(2008)

.pdf
Скачиваний:
59
Добавлен:
03.03.2016
Размер:
787.27 Кб
Скачать

 

 

Тип

 

 

 

Описание

 

 

 

 

 

 

 

 

значения:

Да/Нет

(Истина/Ложь).

Значению

Да

 

 

 

 

 

соответствует –1, значению Нет – 0.

 

 

 

 

 

Дата/Время

 

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

 

 

 

 

 

времени, относящихся к годам с 100 по 9999. Размер поля – 8

 

 

 

 

 

байт. Данные хранятся в специальном фиксированном

 

 

 

 

 

числовом формате: дата является целой частью значения,

 

 

 

 

 

время его дробной частью. Позволяет выполнять

 

 

 

 

 

вычисления в единицах измерения времени: секундах,

 

 

 

 

 

минутах, часах, днях, месяцах и годах. Для дат допустима

 

 

 

 

 

операция вычитания (при вычитании дат результатом является

 

 

 

 

 

количество дней, при вычитании (сложении) из даты целого

 

 

 

 

 

числа получается новая дата) и специальные системные

 

 

 

 

 

функции.

 

 

 

 

 

 

 

МЕМО

 

текст объемом от 256 до 65 535 байт. Поле МЕМО занимает 8

 

 

 

 

 

байт для хранения не самих данных, а ссылок на них.

 

 

 

 

 

Операции сортировки и поиска для полей типа МЕМО

 

 

 

 

 

выполнены быть не могут.

 

 

 

 

 

Поле

объекта

позволяет

использовать в БД данные других приложений

 

 

OLE

 

 

Windows (такие приложения называютсяДонНТУOLE-серверами),

 

 

 

 

 

например, текстовые документы (MS Word ), электронные

 

 

 

 

 

таблицы (MS Excel ), рисунки, звуковые и видеофайлы. В поле

 

 

 

 

 

хранится ссылка на OLE -объект; объем объекта

 

 

 

 

 

ограничивается имеющимся в наличии дисковым

 

 

 

 

 

пространством.

 

 

 

 

 

Кафедра

Свойства полей

 

 

 

 

 

 

Для определения порядкаПМИиспользования поля нужно указать его

 

 

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

 

 

Значения этих свойств либо устанавливаются по умолчанию, либо задаются

 

 

программистом. Рассмотрим перечень свойств, находящихся на вкладке Общие.

 

 

 

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

 

 

предназначено поле. Размеры, задаваемые по умолчанию для полей каждого

 

 

типа,

можно изменить в окне Параметры на вкладке Таблицы и запросы

 

 

(команда меню Сервис Параметры). Возможные размеры текстовых и

 

 

числовых полей приведены в следующей таблице:

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип поля

 

 

Возможный размер

 

Размер по

 

 

 

 

 

 

 

 

 

умолчанию

 

 

Текстовый

От 1 до 255 символов

 

 

50 символов

 

 

Числовой

Байт (применяется для целых чисел от 0 до 255)

 

Длинное

 

 

 

 

 

Целое (для целых |x|≤32767; занимает 2 байта)

 

целое

 

 

30

Длинное целое (для целых чисел, примерно, |x|≤2*(10^9); занимает 4 байта)

Одинарное с плавающей точкой (4 байта) –

числа с точностью до 7 знаков

Двойное с плавающей точкой (8 байт) – числа с точностью до 15 знаков

Действительное целые числа до 18 цифр (занимает 12 байт)

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

Для данных типа Текстовый и Поле МЕМО применяются пользовательские форматы, в которых могут быть использованы следующие символы форматирования:

@ для вывода в позиции любого символа или пробела; & для вывода в позиции любого символа; если позиция пуста, то ничего не

 

выводится;

< –

преобразует все символы к нижнему региструДонНТУ;

>

преобразует все символы к верхнему регистру

(смотри также Замечание, приведенное ниже).

 

 

Для данных типа Числовой и Денежный можно выбрать любой из шести

стандартных форматов или создать собственный формат.

Кафедра

 

 

При создании пользовательскогоПМИформата употребляются такие символы

форматирования:

0

для вывода в позиции цифры; если на этой позиции в числе нет цифры,

 

 

выводится 0;

#

для вывода в позиции цифры (или пробела);

%

значение умножается на 100 и дополняется знаком %

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

##0,00[Синий]; ##0,00[Красный]; “ноль”; “не введено”.

Стандартные форматы для числовых полей:

Формат

Описание

Пример

Примечание

Основной

дробные числа с

2,234

устанавливается по

31

Формат

Описание

 

Пример

Примечание

 

 

точностью

до

7

-11,89

умолчанию

 

 

цифр

 

 

 

 

 

 

Денежный

числа

 

с

4 256, 45

символ

денежной

 

разделителем

 

 

грн.

единицы зависит от

 

разрядов

и

с

 

установки

 

в

 

символом денежной

 

Windows

(Язык

и

 

единицы

 

 

 

стандарты

на

 

 

 

 

 

панели управления)

Евро

символ денежной

 

4 256, 45

 

 

 

 

единицы "евро"

 

 

 

 

 

Фиксированный

числа выводятся без

4256,45

 

 

 

 

разделителей групп

 

 

 

 

 

разрядов

 

 

 

 

 

 

С разделителями

разделяет пробелом

4 256,45

 

 

 

разрядов

группы разрядов

 

 

 

 

 

Процентный

умножает значение

 

Значение

 

 

 

 

на 100 и добавляет в

0,56 будет

 

 

 

 

конце символ

 

выводиться

 

 

 

 

процента

 

 

как 56%ДонНТУ

Экспоненциальный

указывает при

 

4,3Е+03

 

 

 

 

выводе мантиссу и

 

 

 

 

 

 

порядок

 

 

 

 

 

 

Для создания пользовательского формата типа Дата/Время система

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

mmm

название месяца из трех букв (янв-дек),

mmmm

полноеПМИназвание месяца,

уу

последние две цифры значения года,

уууу

полный год,

ddd

сокращенное название дня недели (Пн-Вс),

dddd

полное название дня недели.

 

Также используются стандартные форматы:

 

 

 

 

 

 

 

 

 

Формат

 

Пример

 

Примечание

 

Полный формат

31.12.01

10:30:15

 

может выводить только дату

 

даты

 

 

 

или только время, если

 

Кафедра

 

 

 

другая часть отсутствует; год

 

 

 

 

может выводиться четырьмя

 

 

 

 

цифрами, если это указано в

 

 

 

 

Windows

(Панель

 

 

 

 

управления

Язык и

 

 

 

 

 

 

 

 

 

 

стандарты)

 

32

Длинный формат

31 декабря 2001 г.

 

даты

 

 

Длинный формат

10:30:15

 

времени

 

 

Средний формат

10:30 АМ

АМ/РМ до полудня/после

времени

 

полудня

Краткий формат

18:30

 

времени

 

 

Замечание:

Для рассмотренных типов данных можно также использовать в пользовательских форматах следующие символы:

!

для выравнивания текста по левому краю;

текст

любой текст, который нужно отобразить, заключается в

- + $ 0 пробел

кавычки;

эти символы можно использовать в любом месте

 

 

формата;

\символ

 

ПМИ

то же, что и один символ в кавычках;

*

следующий за «звездочкойДонНТУ» символ используется в

[цвет]

 

качестве заполнителя (вместо пробела, например);

указывает цвет символов (Черный, Синий, Зеленый,

 

 

Голубой, Красный, Розовый, Желтый, Белый); название

 

 

цвета должно использоваться совместно с другими

 

 

символами форматирования.

Кафедра

 

Для вывода данных типа Логический можно выбрать один из трех стандартных форматов:

Да/Нет (по умолчанию), Истина/Ложь, Вкл/Выкл.

Можно также определить собственные слово или фразу, выводимые в качестве логических значений Да и Нет. Например,

проживает в общежитии”[синий]; “не проживает в общежитии” [красный]

3. Свойство Число десятичных знаков задает для данных числового и денежного типов количество десятичных знаков, выводимых после запятой. По умолчанию устанавливается значение Авто, при котором для Основного формата число десятичных знаков определяется текущей точностью числовых значений, а для остальных форматов два знака.

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

33

постоянных символов, например, точки (.) при указании даты или дефиса (-) при вводе номера телефона.

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

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

 

 

 

 

 

 

 

 

;

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

0/1

 

 

 

 

 

Собственно маска ввода

 

 

 

 

 

 

символ

 

(символы маски и постоянные символы)

заполнитель

Основные символы, используемые для задания маски:

 

 

0 –

 

 

 

 

 

 

 

 

ДонНТУ

в данную позицию должна быть введена только цифра;

9 –

цифра или пробел;

 

 

 

 

 

 

 

 

 

 

# –

цифра, пробел, знаки + и -;

 

 

 

 

 

 

L –

только буква;

 

 

 

 

 

 

 

 

 

 

 

A –

буква или цифра;

 

 

 

 

 

 

 

 

 

 

< –

преобразует все символы к нижнему регистру;

 

 

> –

к верхнему регистру;

 

 

 

 

 

 

 

 

! –

указывает, что маска ввода заполняется справа налево; следует

 

 

 

 

 

ПМИ

 

 

 

 

 

 

 

 

использовать, если в левой части маски находятся позиции,

 

 

заполнять которые необязательно;

 

 

 

 

 

 

\ –

указывает, что следующий символ является постоянным;

литерал”–

указывает, что приведенные символы являются постоянными;

. , : ; - / –

используются

 

для

указания

 

десятичного

разделителя,

 

 

разделителей групп разрядов, даты и времени (согласуются с

 

 

символами разделителей, определенных в окне Язык и

 

 

стандарты панели управления Windows)

 

 

Кафедра

 

 

 

 

 

 

 

 

 

 

 

Маску ввода можно ввести с клавиатуры или создать с помощью Мастера. Мастер масок ввода предназначен только для полей типа Текстовый или Дата/Время. Вызывается мастер щелчком по кнопке

построителя(

), находящейся справа от поля свойства Маска ввода.

Примеры масок:

99.99.00

для ввода дат в кратком формате;

34

!99#\-##\-##;1;_

для ввода пяти-семизначных номеров телефонов;

(или !99#\-##\-##)

 

 

0000

для ввода значения года.

значение 3350021, а не 335-00-21).

ДонНТУ

Замечания:

 

 

1) Если для поля указана маска

ввода, но не указан формат, то

система при выводе данных форматирует их, используя маску ввода. Если же одновременно установлены значения свойств Маска ввода и Формат, то маска ввода используется только в случае, когда полю передан фокус (то есть поле становится активным). В остальных случаях используется установка свойства Формат.

При определении значений этих свойств следует помнить, что установка формата не должна вступать в противоречие с маской ввода.

2) Если постоянные символы маски не сохраняются вместе с данными поля, то при выполнении поиска или указании условия отбора в

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

3) Маску ввода нельзя задать для полей типов MEMO, Счетчик,

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

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

выступать как заголовок поля Например для поля с именем ДатаРождения Кафедраили Дата рождения в качестве. подписи,удобно взять Дата рождения.

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

Значением по умолчанию может быть системная функция или константа. Например, для поля ДатаПоступленияТовара значением по умолчанию может служить функция Date() – текущая дата или Now() – текущие дата и время.

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

35

1) для поля Дата_рождения (у детей детского сада) можно указать такое условие на значение:

>=(Date()-7*365) And <=(Date()-2*365)

то есть возраст этих детей должен быть в интервале [2,7];

1900 года до текущего, можно указать следующее условие на значение:

Between 1900 And Year(Date())

3) для поля, содержащего некоторые суммы, нужно указать в условии, что сумма, по крайней мере, >0.

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

символы "#", например, #31.12.02#).

2) для поля ГодСоздания, значения которого находятся в интервале от ДонНТУ

Правила построения условий на значение смотрите в лабораторной

работе 3 в пункте Условие отбора.

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

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

10. Для текстовых полей и полей MEMO допускается ввод пустых

Это означает что пустая строка является значением поля то есть

Кафедрастрок. , (

значение поля известно, а не Null ). Чтобы разрешить пустые строки, нужно установить для свойства Пустые строки значение Да.

11. Для упорядочения значений полей типов Текстовый, Числовой, Денежный, Дата/Время, Счетчик можно построить индексы, с помощью которых ускоряется доступ к данным.

Создание первичного ключа

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

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

36

Замечания :

-

если в таблице-отце первичный ключ Счетчик, то в связанной с

ней

таблице-сыне тип внешнего ключа может быть только Числовой

размера Длинное целое;

-

если между таблицами связь "1:1", то эти таблицы должны иметь

 

ДонНТУ

один и тот же первичный ключ; в случае, когда в первой таблице ключ

Счетчик, во второй таблице он должен быть Числовым ( Длинное целое

).

Вкладка Подстановка

Ввод данных в поле- внешний ключ подчиненной таблицы удобно выполнять путем выбора из раскрывающегося списка (рис.6):

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

Кафедраявляющегося внешним ключом. Запуск Мастера осуществляется выбором пункта Мастер подстановок из раскрывающегося списка столбца Тип данных.

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

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

37

Сохранение таблицы

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

Условие на значение для таблицы

задавать не только для поля, но и для таблицы. Чаще всего в условии на значение для таблицы сравниваются значения двух полей. Например, [Дата смерти]>[Дата рождения], [Дата продажи]>=[Дата поступления], [остаток]<=[количество]. Условие на значение для таблицы проверяется при

сохранении или добавлении записи.

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

Для поддержания целостности данных условиеДонНТУна значение можно

После определения таблиц нужно установить связи между ними. В

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

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

щелкнуть по кнопке Отобразить таблицу;

в диалоговом окне Добавление таблицы по очереди выбрать

Кафедранеобходимые таблицы, дважды щелкнув на имени каждой таблицы; закрыть окно Добавление таблицы, щелкнув по кнопке Закрыть.

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

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

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

Каскадное обновление связанных полей и Каскадное удаление связанных записей.

38

Рисунок 7

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

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

изменить значение первичного ключа в отце невозможно.

 

 

 

 

 

 

ДонНТУ

 

Каскадное обновление связанных полей имеет смысл только для

 

 

естественных первичных ключей, так как изменение значения

 

 

ключа-счетчика невозможно.

 

 

Каскадное удаление связанных записей: при удалении записи в «отце» все связанные с ней записи в «сыне» удаляются (эта опция должна быть включена для всех связей «отца»). Если данная опция не включена, то удалить запись из «отца» невозможно: необходимо сначала удалить связанные записи из «сыновей».

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

таблицы. На этой линии возле отца будет стоять 1, а возле сына символ бесконечности.

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

линии связи - снова откроется окно Изменение связей.

Если связь нужно удалить, то необходимо щелкнуть на линии связи, нажать клавишу Delete и утвердительно ответить на вопрос системы об удалении. Затем, возможно, нужно будет удалить некоторую таблицу.

39

Соседние файлы в папке BD