Элементы базы данных

1. Таблицы. В базе данных информация хранится в виде двумерных таблиц. Можно так же импортировать и связывать таблицы из других СУБД или систем управления электронными таблицами. Одновременно могут быть открыты 1024 таблицы.

2. Запросы. При помощи запросов можно произвести выборку данных по какому-нибудь критерию из разных таблиц. В запрос можно включать до 255 полей.

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

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

5. Макросы (см. выше)

6. Модули. Модули содержат VBA-код, используемый для написания процедур обработки событий таких, как, например, нажатия кнопки в форме или отчёте, для создания функций настройки, для автоматического выполнения операций над объектами базы данных и программного управления операциями, т.е. добавление VBA-кода позволяет создать полную базу данных с настраиваемыми меню, панелями инструментов и другими возможностями. Модули снимают с пользователя приложения необходимость помнить последовательность выбора объектов базы данных для выполнения того или иного действия и повышают эффективность работы.

База данных может содержать до 32768 объектов.

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

Таблицы

1. Создание таблицы в режиме Мастера таблиц

Процесс создания объекта базы данных при помощи мастера делится на несколько шагов, на каждом из которых можно установить требуемые ха­рактеристики создаваемого объекта. Мастер таблиц позволяет создать но­вую таблицу на основе 33 образцов таблиц делового применения и 20 об­разцов таблиц личного применения (для английской версии Access со­ответственно 77 и 44). Многие таблицы базы данных Борей созданы на основе образцов Мастера таблиц.

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

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

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

3. Создание таблицы непосредственно в режиме таблицы

Access дает возможность создания таблиц непосредственно в режиме таблицы. При этом Access создает пустую таблицу на основе таблицы, используемой по умолчанию, со структурой, имеющей 20 полей и 30 пустых записей. После этого можно вводить данные прямо в таблицу. При ее сохранении Ac­cess анализирует данные и выбирает тот тип для каждого поля, который больше всего соответствует введенным данным. Создание таблиц в режиме таблицы имеет ограниченное применение. Поля таблицы не имеют содержательных имен, так что почти всегда нужно будет редактировать структуру, чтобы переименовать поля.

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

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

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

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

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

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

· Многие к одному. При использовании отношения "многие к одному" одной записи в таблице "А" может соответствовать одна запись в таблице “B”, а запись в таблице "В" может иметь более одной соответствующей ей записи в таблице "А". В таб­лице "А" ключевое поле должно быть уникальным. Связь с отноше­нием "один ко многим" таблиц "А" и "В" можно рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".

· Многие ко многим. При использовании отношения "многие ко мно­гим" одной записи в таблице "А" могут соответствовать несколько записей в таблице "В", а одной записи в таблице "В" несколько запи­сей в таблице "А". В этом случае не требуется уникальности ключе­вых полей таблиц "А" и "В". Этот вид отношения используется для связывания таблиц, имеющих только внешние ключи.

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

Автоматическое обеспечение ссылочной целостности данных является важной особенностью Access. Если на связь между таблицами наложены условия ссылочной целостно­сти, то Access не позволяет добавлять в связанную таблицу записи, для которых нет соответствующих записей в главной таблице, и изменять за­писи в главной таблице таким образом, что после этого в связанной таб­лице появятся записи, не имеющие главных записей; а также удалять за­писи в главной таблице, для которых имеются подчиненные записи в свя­занной таблице. Условия целостности данных определяют систему правил, используемых в Access для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение свя­занных данных. После наложения условий целостности данных на опера­ции со связанными таблицами накладываются ограничения. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержа­щееся в ключевом поле главной таблицы.

Необходимо так же определить первичный ключ. Если таблица никогда не будет использоваться в качестве главной, то ключ для нее определять не нужно. В главных таблицах обычно содержится ин­формация о реальных объектах, причем с каждым объектом ассоциируется только одна запись. Определение ключа таблицы является простейшим способом предотвра­щения появления в таблице одинаковых записей. В главной таблице связи должен быть определен первичный ключ. Ac­cess считает таблицы, у которых такой ключ не определен, подозри­тельными. При открытии таких таблиц в режиме конструктора появляется диалоговое окно, сообщающее о том, что ключ таблицы не определен. Ключ можно определить и в связанных таблицах, что поможет избежать появления повторяющихся данных. Ключ таблицы можно задать по значению нескольких полей. Access автоматически индексирует таблицу по значению ключа, но может потребоваться создать дополнительные индексы по значениям других полей. Индексы позволяют ускорить поиск данных в тех полях таб­лицы, по которым она проиндексирована. Каждая таблица Access может иметь до 32 индексов, 5 из которых могут быть составными (в составной индекс может входить не более 10 полей). Тем не менее, не стоит увлекаться созданием индексов для каждого поля таблицы и всех их комбинаций, поскольку это может существенно замедлить процесс заполнения таблицы (при изменении или добавлении записи автоматически обновляются все индексы).

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

Основные типы данных:

1. Текстовый. Текст или числа, не требующие проведения расчётов. имеет фиксированную длину (размер) до 255 символов, которая задается свойством Размер поля

2. МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 65000 символов). Поле этого типа не может быть ключевым или проиндексированным, имеет переменную длину, которая не указывается пользователем.

3. Числовой. Этот тип данных содержит множество подтипов. От выбора подтипа (размера) зависит точность вычислений.

4. Счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу (способ задания значений определяется свойством Новые значения). Размер поля устанавливается автоматически как длинное целое. Часто используется для определения первичного ключа. Основным недостатком этого поля является невозможность восстановления удаленного значения.

· !!! В таблице может быть только одно поле счетчик.

5. Логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений. Может иметь следующие значения: Да/Нет, Истина/Ложь, Вкл./Выкл

6. Денежный. Денежные значения и числовые данные, используемые в математических вычислениях. Расчеты производятся с точностью до 15 знаков в целой части и до 4-х знаков в дробной части числа. Длина поля 8 байт.


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

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

8. Дата/Время. Дата и время хранятся в специальном фиксированном формате.

9. Поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных. Поле этого типа не может быть ключевым или проиндексированным.

10. Гиперсвязь. Содержит адреса Web-страниц.

 

Общие свойства полей

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

· Для текстового поля до 255 байт (по умолчанию 50 байт). Размер поля по умолчанию устанавливается настройкой параметров:
Þ Сервис/Параметры/вкладка Таблицы/Запросы

· Для числовых полей:

¨ байт для целых чисел от 0 до 255

¨ целое для целых чисел от -32 768 до +32 767 (2 байта)

¨ длинное целое для целых чисел от -147 483 648 до 2 147 483 647 (4 байта)

¨ с плавающей точкой для чисел от -3.4*10Е38 до +3.4*10Е38 с точностью до 7 знаков (4 байта)

¨ с плавающей точкой для чисел от -1.797*10Е308 до +1.797*10Е308 (8 байт).
Размер числового поля по умолчанию устанавливается настройкой параметров, как и текстового поля.

 

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

2.Формат поля является форматом отображения данных при выводе их на экран или печать. Для некоторых типов данных определены встроенные форматы, например для даты и др. Для отдельных типов данных можно задавать собственные (пользовательские) форматы, например

· Для денежного типа: ### ## руб. Здесь символ # может быть заменен цифрой, знаком или пробелом (необязательный символ). Пробел будет выведен буквально.
Или # ## 0,00руб; -# ## 0,00руб[Красный]. Здесь отрицательные числа будут выведены красным цветом.

· Для числового процентного типа: ###.##%. Точка и знак процента будут выведены буквально.

· Для текстового типа: (@@@)@@@-@@-@@. Здесь символ @ будет заменен текстовым символом или пробелом (обязательный символ). Этот формат часто используется для вывода номера телефона.

· Для логического типа: ;’’Выделен’’[Синий];’’Не выделен’’. Это означает, если значение логического поля истина, то выведется слово Выделен синим цветом. Иначе выведется Не выделен цветом, принятым по умолчанию.

3. Маска ввода удобна для ввода данных. Например, для ввода номера телефона можно задать маску : (000)000-00-00. ACCESS автоматически ее преобразует к виду: \(000\)000\-00\-00 . Здесь символ \ означает, что следующий символ будет восприниматься буквально. Примеры других масок ввода можно найти, вызвав помощь клавишей F1.

4. Число десятичных знаков (после точки) Можно задать от 0 до 15.

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

6. Условие на значение позволяет осуществить контроль вводимых значений.

7. Сообщение об ошибке задает текст сообщения, выводимый на экран при нарушении условия, заданного предыдущим свойством.

8. Обязательное поле определяет обязательный ввод данных в поле (Да) или разрешает не вводить данные (Нет). В последнем случае полю присваивается значение Null.

9. Индексированное поле позволяет индексировать поле (Да) или нет (Нет). Если поле индексируется, то надо указать, допускаются ли в поле повторяющиеся значения (Совпадения допускаются) или нет (Совпадения не допускаются).

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

Характеристика Пустые строки позволяет указывать, что в данное поле может быть введена пустая строка (“”).

Мастер подстановок позволяет создать поле, значение в которое будет вводится из списка.

 

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

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

· выделить поля, входящие в состав первичного ключа;

· кн. Ключевое поле на ПИ или Þ Правка/Ключевое поле

 

Для ключевого поля автоматически строится индекс, которому всегда дается имя PrimaryKey. Индекс ключевого поля всегда уникален (Совпадения не допускаются) и не допускает пустых (не введенных) значений , т.е. Null - значений в записях. Настройкой параметров (Þ Сервис/Параметры/вкладка Таблицы/Запросы) можно задать автоматический способ индексации для полей, входящих в заданный список.

Открытие окна индексов: Þ Вид/Индексы .

 

Схема данных

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

Создание схемы данных:

· Открыть окно схемы данных: Þ Сервис/Схема данных или кн. Схема данных на ПИ

· В окне Добавление таблицы (открывается только тогда, когда схема данных еще не создана) надо выбрать и добавить в окно схемы данных нужные таблицы. Окно Добавление таблицы можно открыть принудительно кн. Добавить таблицу на ПИ. После добавления таблиц закрыть окно Добавление таблицы.

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

· В открывшемся окне, если необходимо, можно включить флажок Обеспечение целостности данных, а также обеспечить каскадное обновление связанных полей и/или каскадное удаление связанных записей.
Если установлен только флажок Обеспечение целостности данных, то из родительской таблицы нельзя удалить запись, если в дочерней таблице есть связанная с ней запись. Кроме того, в дочернюю таблицу нельзя добавлять “детей-сирот”. Если установлен еще флажок каскадное обновление связанных полей, то при изменении значения поля связи в родительской таблице соответствующим образом изменится значение поля связи и в дочерней таблице. Если установлен флажок каскадное удаление связанных записей, то при удалении записи из родительской таблицы будут удалены все связанные с ней записи из всех дочерних таблиц.

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

Левое объединение (LEFT JOIN) устанавливает объединение всех записей из таблицы - источника и только тех записей из таблицы - приемника, в которых связанные поля совпадают.

Правое объединение (RIGHT JOIN) устанавливает объединение всех записей из таблицы - приемника и только тех записей из таблицы - источника, в которых связанные поля совпадают.

Удалить связь: выделить связь ( на линии связи) и нажать клавишу DEL.

Открыть окно Связи: 2с на линии связи.

 

Запросы

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