- •Система управления базами данных access
- •2002 Содержание
- •Общие сведения Основные Термины
- •Понятие реляционной базы данных
- •Примеры выделения ключевых полей
- •Типы связей между таблицами.
- •Порядок работы при создании базы данных
- •Создание новой бд
- •Создание таблиц
- •Загрузка таблицы данными
- •Работа с макетом таблицы
- •Фильтрация данных
- •Запросы
- •Создание форм на основе одной таблицы или запроса
- •Выделение элементов формы
- •Создание многотабличных форм
- •Элементы управления и их свойства
- •Свойства формы
- •Расположение элементов управления на форме
- •Сортировка и группировка даннных
- •Создание отчета при помощи мастера
- •Создание отчета накладная
- •Синхронизация данных в форме и отчете
- •Макросы
- •Ссылки на объекты бд
- •Создание макросов
- •Краткая характеристика макрокоманд
- •Создание простого макроса , позволяющего выбирать из списка клиента для последующего создания отчета
- •Пример создания макроса архивации старых данных.
- •Пример макроса, позволяющего изменять кол-во компьютеров на складе, при заполнении формы заказ.
- •Групповые макросы
- •Создание группового макроса , позволяющего изменять количество товара на складе при заполнении формы и изменять свойство видимости кнопок (visible)
- •Организация поиска при помощи макроса
- •Условные макросы
- •Создание формы ввода пароля
- •Условный макрос Скидка
- •Реализация циклов в макросах
- •Создание Приложения Пользователя
- •Создание кнопочной формы при помощи мастера
- •Создание кнопочной формы при помощи конструктора форм
- •Создание панели Инструментов пользователя.
- •Создание строки меню пользователя.
- •Параметры запуска приложения
- •. Сжатие бд
- •Восстановление Повреждений.
- •Список литературы
Понятие реляционной базы данных
MS Access– этосистема управления базами данных. Под системой понимается программа , которая не только позволяет хранить большие массивы данных , но и обрабатывать их, представляя в удобном для пользователя виде.
Используя MSAccessможно создавать удобные формы для ввода и просмотра данных, выполнять необходимые вычисления, составлять различной сложности отчеты. В СУБДMSAccessобладает мощным набором сервисных средств, облегчающих работу пользователя. Мастера помогают создавать таблицы, запросы, формы, отчеты из имеющихся заготовок, выполнив всю черновую работу. Макросы позволяют автоматизировать многие процессы без использования традиционных средств программирования. Более опытные пользователи могут воспользоваться встроенным языком программированияVBA(VisualBasicforApplication) , позволяющим создавать сложные приложения.
Мощность и простота использования делают MSAccessодной из лучших программ для управления базами данных.
MSAccessявляется реляционной базой данных .Реляционнаябаза данных представляет собой множество взаимосвязанных двумерных таблиц – реляционных таблиц, в каждой из которых содержатся сведения об одном объекте.(relation– связь, отношение)
На примере работы фирмы по продаже компьютеров рассмотрим недостатки хранения данных в одной таблице. Использую таблицу MSExcelсоздадим базу данных, данные о заказах будем размещать в отдельной строке.
Дата заказа |
Компьютер |
Цена |
Кол |
Стоимость |
Название |
Контактная персона |
Телефон |
Город |
20.01.99 |
Pentium i166 |
333,00 |
1 |
3330,00 |
ОАО Лад |
Серый Денис |
293-55-74 |
Спб |
27.12.98 |
Pentium i133 |
322,00 |
3 |
2576,00 |
АО Плата |
Сидоров Петр |
343-77-88 |
Москва |
25.12.98 |
Pentium i133 |
322,00 |
5 |
1610,00 |
АО Прогресс |
Ломтин Василий |
234-78-87 |
СПб |
24.12.98 |
AMD K5-P100 |
296,00 |
4 |
1184,00 |
АО Рубин |
Барышев Семен |
989-88-99 |
Москва |
25.12.98 |
Pentium i133 |
322,00 |
4 |
3220,00 |
ОАО Лад |
Серый Денис |
293-55-74 |
Спб |
05.01.99 |
Pentium i166 MMX |
386,00 |
5 |
1930,00 |
ООО Память |
Холодная Вера |
345-67-77 |
Минск |
26.12.98 |
Pentium i166 |
333,00 |
3 |
999,00 |
АО Прогресс |
Ломтин Василий |
234-78-87 |
СПб |
25.12.98 |
Pentium i200 |
351,00 |
1 |
351,00 |
АО Рубин |
Барышев Семен |
989-88-99 |
Москва |
24.12.98 |
Pentium i200 MMX |
425,00 |
10 |
4250,00 |
НПО Алмаз |
Иванова Светлана |
454-33-33 |
Москва |
26.12.98 |
Pentium i200 |
351,00 |
6 |
2106,00 |
ОАО Лад |
Серый Денис |
293-55-74 |
Спб |
04.01.99 |
Pentium i200 MMX |
425,00 |
4 |
1700,00 |
ОАО Плата |
Умная Анна |
389-84-33 |
Москва |
20.01.99 |
Pentium i133 |
322,00 |
1 |
1610,00 |
НПО Алмаз |
Веткин Андрей |
989-88-99 |
Спб |
20.01.99 |
Pentium i200 MMX |
425,00 |
2 |
850,00 |
ОАО Лад |
Серый Денис |
293-55-74 |
Спб |
После непродолжительной работы пользователь столкнется с рядом проблем.
В Московском районе, в котором находится фирма постоянного клиента Дениса Серого поменялись номера телефонов и теперь для замены одного номера телефона требуется просмотреть всю таблицу и внести изменения в несколько записей.
Запись о заказе Ивановой Светланы оказалась ошибочной и после удаления соответствующей строки мы потеряли данные об этом клиенте или о товаре заказанным клиентом.
При создании новой записи мы должны просмотреть таблицу в поисках данных о стоимости товара.
Случайно допустив ошибку в названии модели компьютера мы не сможем впоследствии правильно подвести итоги о популярности товара.
Этот список можно дополнить. Таким образом мы столкнулись с аномалиями базы данных.
Аномалиямибудем называть такую ситуацию в базе данных, которая приводит к противоречиям в базе данных или усложняет обработку информации. Различаются следующие аномалии
Аномалии модификации– изменение значения одного данного может повлечь за собой просмотр всей таблицы и соответствующего изменения других записей
Аномалии удаления– при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемыми данными
Аномалии добавления– информацию в таблицу нельзя поместить до тех пор пока она не полная, либо вставка новой записи потребует просмотр всей таблицы (новый сотрудник)
Обратите внимание на выделенные серым цветом строки таблицы. Здесь мы столкнулись с дублированием информации. Различается простое (не избыточное) и избыточное дублирование данных.
Пример простого дублирования
Сотрудник |
Телефон |
Иванов |
456 |
Петров |
508 |
Сидоров |
456 |
Чистяков |
508 |
Пример избыточного дублирования
Сотрудник |
№ комнаты |
Телефон |
Иванов |
401 |
456 |
Петров |
105 |
508 |
Сидоров |
401 |
456 |
Чистяков |
105 |
508 |
Для ликвидации дублирования разобьем таблицу на две
№ комнаты |
Телефон |
401 |
456 |
105 |
508 |
401 |
456 |
105 |
508 |
Сотрудник |
№ комнаты |
Иванов |
401 |
Петров |
105 |
Сидоров |
401 |
Чистяков |
105 |
Вернемся к нашему первому примеру и попытаемся избавиться от избыточности (дублирования) информации, разбив данные одной таблицы на несколько таблиц.
Таблица Товары
Компьютер |
Цена |
Pentium i166 |
333,00 |
Pentium i133 |
322,00 |
AMD K5-P100 |
296,00 |
Pentium i200 MMX |
425,00 |
Pentium i133 |
322,00 |
Pentium i166 MMX |
386,00 |
Pentium i166 |
333,00 |
Pentium i200 |
351,00 |
Pentium i200 MMX |
425,00 |
AMD K5-P133 |
307,00 |
Таблица Клиенты
Название |
Контактная персона |
Телефон |
Город |
ОАО Лад |
Серый Денис |
293-55-74 |
Спб |
АО Плата |
Сидоров Петр |
343-77-88 |
Москва |
АО Прогресс |
Ломтин Василий |
234-78-87 |
СПб |
АО Рубин |
Барышев Семен |
989-88-99 |
Москва |
ООО Память |
Холодная Вера |
345-67-77 |
Минск |
АО Рубин |
Барышев Семен |
989-88-99 |
Москва |
НПО Алмаз |
Иванова Светлана |
454-33-33 |
Москва |
НПО Алмаз |
Веткин Андрей |
989-88-99 |
Спб |
Таблица Заказы
Дата заказа |
Компьютер |
Кол |
Стоимость |
Название |
20.01.99 |
Pentium i166 |
1 |
3330,00 |
ОАО Лад |
27.12.98 |
Pentium i133 |
3 |
2576,00 |
АО Плата |
25.12.98 |
Pentium i133 |
5 |
1610,00 |
АО Прогресс |
24.12.98 |
AMD K5-P100 |
4 |
1184,00 |
АО Рубин |
25.12.98 |
Pentium i133 |
4 |
3220,00 |
ОАО Лад |
05.01.99 |
Pentium i166 MMX |
5 |
1930,00 |
ООО Память |
26.12.98 |
Pentium i166 |
3 |
999,00 |
АО Прогресс |
25.12.98 |
Pentium i200 |
1 |
351,00 |
АО Рубин |
24.12.98 |
Pentium i200 MMX |
10 |
4250,00 |
НПО Алмаз |
26.12.98 |
Pentium i200 |
6 |
2106,00 |
ОАО Лад |
04.01.99 |
Pentium i200 MMX |
4 |
1700,00 |
ОАО Плата |
20.01.99 |
Pentium i133 |
1 |
1610,00 |
НПО Алмаз |
20.01.99 |
Pentium i200 MMX |
2 |
850,00 |
ОАО Лад |
Если при работе с таблицами Клиенты и Товары мы можем спокойно добавлять или удалять записи, то при добавлении новой записи в таблицу Заказы нам необходимо предварительно просмотреть содержимое таблиц Товары и Клиенты. Следовательно в данном случае простое разбиение данных по таблицам не снимает всех проблем.
Итак каждая таблица включает информацию об объектах определенного типа ,например о товарах, поставщиках , клиентах и т.д.
Структура реляционной таблице определяется составом и последовательностью полей , (столбцов). Каждое поле отражает определенный атрибут объекта и соответственно содержит данные одного типа. Обращение к полю возможно по его уникальному имени.
Содержание таблицы заключено в ее строках. Каждая строка таблицы содержит данные о конкретном экземпляре объекта и называется записью. Для однозначного определения каждой записи таблица должна иметь уникальный ключ, который может состоять из одного или нескольких полей. По значению ключа отыскивается запись.
Ключевые поля используются для создания связей между таблицами. А связи между таблицами дают возможность совместно использовать данные из нескольких таблиц.
Размещение сведений о каждом объекте в отдельной таблице и связывание таблиц позволяет избежать дублирования данных и упрощает процесс обновления и поиска в базе.
Рекомендации по определению полей
Функциональная зависимость.Каждое поле таблицы содержит информацию относящуюся к общей теме таблицы. Поле, которое содержит информацию не относящуюся к общей теме таблицы лучше поместить в другую таблицу
Уникальность полей. Наличие одинаковых полей в разных таблицах является признаком того, что некоторые таблицы содержат лишние поля.
Независимость полей.Должна иметься возможность изменять значение любого поля без воздействия на данные другого поля.
Каждая таблица должна иметь уникальный идентификаторилипервичный ключ. По возможности в качестве ключа необходимо использовать самые простые данные. Если в таблице нет поля, которое содержит уникальное значение для каждой записи, то в нее можно добавлять поле счетчик (каждой новой записи автоматически присваивается новое число)
В большинстве случаев невозникает необходимостихранить в таблице результаты вычислений.
Хранить данные лучше в виде минимально возможных элементов. Наличие в одном поле нескольких элементов затрудняет их извлечение из этого поля.(Например поле ФИО следует разбить на три отдельных поля : Имя, Отчество, Фамилия)