страница 1 ... страница 2 | страница 3 страница 4 страница 5 ... страница 7 | страница 8
Лабораторная работа №5
MS Access. Создание межтабличных связей. Сортировка и фильтрация данных.
Цель работы: привить у студентов навыки создания базы данных, слздания межтабличных связей. Научить сортировать и фильтровать данные.
Краткие теоретические сведения
Сразу после запуска Access на экране появляется окно, в котором можно установить флажок Новая база данных и затем нажать кнопку OK. После этого на экране появится окно Файл новой базы данных, в котором надо ввести название новой базы данных, выбрать папку, где она будет храниться и затем нажать кнопку Создать. После этого на экране появится окно базы данных, в котором перечислены объекты базы данных: Таблицы, Запросы, Формы, Отчеты, Макросы, Модули.
Планирование баз данных.
Перед созданием новой базы данных обязательно необходимо хорошо продумать следующие вопросы:
-
Какие данные будут храниться в БД и как их организовать наилучшим образом? - Это позволит определить, какие потребуются таблицы и какие связи необходимо организовать между ними.
-
Какие действия с данными необходимо будет производить в процессе эксплуатации БД? - это позволит определить, какие потребуются формы.
-
Какие документы необходимо будет выводить на печать? - Это позволит определить, какие потребуются отчеты.
Таблицы и связи между ними представляют собой так называемую модель данных, которая является основой любой БД. В теории БД существуют так называемые правила нормализации данных, которые позволяют устранить избыточность, противоречивость и непоследовательность модели данных.
При проектировании таблиц базы данных рекомендуется:
-
Избегать повторения информации
Если информация повторяется то логичнее разбить информацию в две таблицы, задать ключевые поля и связать таблицы по ключевым полям.
-
Избегать повторяющихся групп
Повторяющаяся группа - это столбцы, которые повторяются в пределах одной и той же строки для хранения нескольких значений данных одного вида.
Например, мы храним таблицу со списком зарегистрированных фирм, и в ней 10 столбцов с наименованиями фирм-учредителей. Но количество учредителей чаще всего меньше 10-ти и поэтому многие поля в этой таблице будут пустыми.
С другой стороны, если когда-нибудь придется зарегистрировать фирму с количеством учредителей больше 10-ти, то придется заводить новый столбец. Если наша таблица связана с другими, и мы уже разработали много форм и отчетов, то такая ситуация повлечет за собой переделку всей базы данных.
-
Каждая таблица должна описывать одну сущность реального мира
Не следует смешивать, например, в одной таблице сведения о сотрудниках фирмы и заключенных ими договорах.
-
Там, где это возможно, следует использовать коды (первичные ключи)
Первичные ключи помогают связывать таблицы.
-
Справочную информацию следует помещать в отдельные таблицы.
Создание таблиц в Access.
Для создания новой таблицы в базе данных необходимо в окне базы данных выбрать объект Таблица, а затем нажать кнопку Создать. В появившемся окне будет предложено выбрать один из следующих способов создания:
-
Режим таблицы
-
Конструктор
-
Мастер таблиц
-
Импорт таблиц
-
Связь с таблицами
Конструктор таблиц.
Чтобы добавить поле, в верхней части окна таблицы в режиме конструктора следует ввести имя поля и определить его тип.
Имя поля должно содержать не более 64 символов и может включать любые комбинации букв, цифр и пробелов, а также специальных символов, за исключением точки, восклицательного знака, надстрочного символа и прямых скобок. Имя не должно начинаться с пробела и содержать управляющие символы.
Тип данных определяет, какого вида данные допускается вводить в поле.
Уникальная метка, называемая ключом, используется для определения каждой записи таблицы. Подобно тому, как номерной знак однозначно определяет автомобиль, ключ определяет запись.
Ключевые поля в таблицах используются для создания межтабличных связей. Чтобы определить ключ, необходимо выделить строку с описанием нужного поля и нажать пиктограмму Ключ.
Для задания свойства поля надо выбрать его в верхней части окна конструктора таблиц и в нижней части окна ввести значения этого свойства или выбрать его из списка.
По окончании описания полей таблицы, необходимо закрыть окно конструктора.
Для наполнения таблицы данными откройте ее в режиме таблицы (двойной щелчок по значку таблицы в окне база данных) и внесите информацию, соответственно типам данных каждого поля.
От того, как новая таблица связана с остальными, зависит, какое из ее полей следует назначить первичным ключом. В теории баз данных известны 4 варианта связей между двумя таблицами, называемых обычно отношениями.
Связь Один-к-одному. Каждой записи первой таблицы соответствует не больше одной записи второй таблицы и наоборот. Соответствие записей устанавливается в результате поиска в поле, являющегося первичным ключом одной из таблиц, значения поля, называемого внешним ключом второй таблицы.
Связь Многие-к-одному. Любой записи второй таблицы может соответствовать любое количество записей первой таблицы, но не наоборот. В этом случае ключевое поле первой таблицы будет внешним ключом, и повторяющиеся значения в нем допускаются.
Связь Один-ко-многим. Первичный ключ первой таблицы (поле, содержащее уникальные значения), связывается с внешним ключом второй таблицы (значения поля могут повторяться). При этом каждой записи первой таблицы может соответствовать несколько записей второй. Можно сказать, что «один-ко-многим» - это «многие-к-одному» наоборот.
Связь Многие-ко-многим. Каждой записи одной таблицы может соответствовать любое количество записей другой таблицы и наоборот. Соответственно, поля обеих таблиц, по которым осуществляется связь, являются внешними ключами и могут содержать повторяющиеся значения.
Создание межтабличных связей.
Для создания межтабличных связей в СУБД MS Access существует команда Сервис – Схема данных, а также на панели инструментов расположена одноименная пиктограмма Схема данных.
В окне схемы данных связи можно создавать путем перетаскивания полей из одной таблицы в другую.
При создании межтабличной связи очень важно, из какой таблицы в какую перетаскивается поле. Поля надо перетаскивать из таблицы со стороны «один» в таблицу со стороны «многие». При этом в окне Изменение связей главная таблица (со стороны «один») окажется слева под заголовком Таблица/запрос, а таблица со стороны «многие» - справа под заголовком Связанная таблица/запрос. При попытке сделать наоборот мы получим сообщение об ошибке.
На созданной в схеме связи следует щелкнуть правой кнопкой мыши, чтобы установить дополнительные параметры:
в окне Изменение связей щелкнуть на кнопке Объединение. Появится окно Параметры объединения. Если необходимо, например, чтобы в дальнейшем при объединении данных таблиц отображались все записи таблицы «Пациенты», независимо от того, имеется ли соответствующая запись в таблице «Посещения», надо выбрать 2-й тип объединения.
В диалоговом окне Изменение связей есть очень полезный флажок – Обеспечение целостности данных. Следует установить его, чтобы Access отказывалась сохранять в подчиненной таблице записи, относящиеся к несуществующей записи в главной таблице.
Щелкните на кнопке Создать, чтобы новая связь появилась в окне Схема данных.
Связи между таблицами в Access можно создавать разными способами. На первых порах удобнее всего использовать команду Вставка - Поле подстановки в режиме конструктора для вызова мастера создания связей.
ЗАДАНИЕ
-
Создайте новую базу данных Microsoft Access. Назовите ее «Продажа товаров»
-
В режиме конструктора создайте таблицу ОПЕРАЦИИ следующей структуры
Название поля
|
Тип поля
|
Описание
|
КодОперации
|
Счетчик
|
Уникальное поле БД
|
Дата
|
Дата/Время
|
Дата продажи
|
КодТовара
|
Числовой
|
Шифр товара
|
КодПокупателя
|
Числовой
|
Шифр фирмы покупателя
|
Цена
|
Числовой
|
|
Кол_во
|
Числовой
|
|
Сумма
|
Числовой
|
|
Ф_опл
|
Текстовый
|
Форма оплаты
| -
Для поля Дата установите свойство Значение по умолчанию. Удобно, если при заполнении таблицы в это поле автоматически будет проставляться текущая дата (а если необходимо, то ее можно будет изменить). Для этого щелкните кнопкой мыши в поле ввода для свойства Значение по умолчанию и введите туда следующий текст: =Date(). Для свойства Формат поля установите значение Краткий формат даты.
-
Для поля Сумма удалите в свойстве Значение по умолчанию число 0, оставив это свойство пустым, а формат данного поля установите как Денежный.
-
Задайте для поля Дата Условие на значение ( дата должны быть не позже сегодняшней); заполните поле Сообщение об ошибке.
-
Задайте для полей Количество, Цена и Сумма Условие на значение (Значения этих полей должны быть обязательно больше нуля); заполните поле Сообщение об ошибке.
-
Задайте в качестве ключевого поля - поле КодОперации. Воспользуйтесь пиктограммой Ключевое поле или командой Правка – Ключевое поле.
-
Закройте окно конструктора и сохраните таблицу под именем Операции.
-
По аналогии создайте вторую таблицу базы данных ТОВАР в режиме конструктора.
Название поля
|
Тип поля
|
Описание
|
КодТовара
|
Счетчик
|
Уникальное поле БД
|
Наименование
|
Текстовый
|
|
Ед_изм
|
Текстовый
|
Единица измерения
| -
Для удобства заполнения данных в поле Ед_Изм создадим поле с раскрывающимся списком значений. Для этого в свойстве этого поля Тип элемента управления выберите значение Поле со списком. Свойство Тип источника строк - Список значений. Число строк списка задайте равное пяти.(так как в таблице используется всего пять единиц измерения товара). Свойство Источник строк заполните следующим образом – кг.;бул.;пач.;шт.;лит. Задайте в качестве ключевого поля - поле КодТовара.
-
Закройте окно конструктора и сохраните таблицу под именем Товары.
-
Откройте таблицу ОПЕРАЦИИ в режиме Конструктора. Аналогично создайте поле с раскрывающимся списком значений Ф_опл (см. таблицу ОПЕРАЦИИ)- б/р (безналичный расчет), н/р (наличный расчет),бар (бартер).
-
Создайте третью таблицу базы данных ПОКУПАТЕЛИ следующей структуры:
Имя поля
|
Тип данных
|
Описание
|
КодПокупателя
|
Счетчик
|
Уникальный код в БД
|
Покупатель
|
Текстовый
|
Наименование покупателя
|
РНН
|
Числовой
|
|
р/с
|
Числовой
|
Расчетный счет
|
Адрес
|
Текстовый
|
|
Телефон
|
Текстовый
|
|
-
Для поля Телефон в свойстве Маска ввода задайте ###\-##\-##.
-
Задайте маску для заполнения полей РНН и р/с, с учетом того, что РНН состоит из 12 цифр, а расчетный счет из 6 цифр.
-
Задайте в качестве ключевого поля - поле КодПокупателя.
-
Закройте окно конструктора и сохраните таблицу под именем Покупатели.
-
В окне базы данных появится только что созданные таблица. Открывайте таблицы двойным щелчком мыши и заполняйте их данными:
Таблица ОПЕРАЦИИ
КодОперации
|
Дата
|
КодТовара
|
КодПокупателя
|
Цена
|
Кол_во
|
Сумма
|
Ф_опл
|
1
|
01.01.04
|
1
|
1
|
20
|
550
|
11000
|
б/р
|
2
|
01.01.04
|
2
|
1
|
68
|
200
|
13600
|
б/р
|
3
|
03.01.04
|
1
|
2
|
20
|
900
|
18000
|
б/р
|
4
|
03.06.04
|
3
|
3
|
25
|
300
|
7500
|
н/р
|
5
|
04.01.04
|
6
|
5
|
150
|
26000
|
3900000
|
бар
|
6
|
04.01.04
|
4
|
4
|
150000
|
250
|
37500000
|
б/р
|
7
|
13.01.04
|
3
|
3
|
25
|
520
|
13000
|
н/р
|
8
|
03.02.04
|
2
|
2
|
68
|
4580
|
311440
|
б/р
|
9
|
12.02.04
|
3
|
2
|
26
|
300
|
7800
|
н/р
|
10
|
12.02.04
|
7
|
2
|
59
|
12000
|
708000
|
б/р
|
11
|
02.03.04
|
4
|
1
|
120000
|
15
|
1800000
|
б/р
|
12
|
02.03.04
|
4
|
4
|
120520
|
520
|
62670400
|
бар
|
13
|
05.03.04
|
6
|
5
|
250
|
5
|
1250
|
б/р
|
14
|
05.03.04
|
5
|
2
|
25
|
150
|
3750
|
б/р
|
15
|
04.04.04
|
7
|
3
|
53
|
200
|
10600
|
н/р
|
16
|
13.04.04
|
5
|
2
|
20
|
200
|
4000
|
бар
|
17
|
13.03.04
|
1
|
1
|
25
|
500
|
12500
|
н/р
|
Таблица ТОВАРЫ
КодТовара
|
Наименование
|
Ед. изм.
|
1
|
соль
|
кг.
|
2
|
сахар
|
кг.
|
3
|
хлеб
|
бул.
|
4
|
Шоколад
|
шт.
|
5
|
Сода
|
пач.
|
6
|
Лимон
|
кг.
|
7
|
Молоко
|
лит.
|
Таблица ПОКУПАТЕЛИ
Код Покупателя
|
Покупатель
|
РНН
|
р/с
|
Адрес
|
Телефон
|
1
|
ЧП «Седьмой континент»
|
456987568940
|
321654
|
г.Москва, Смирновская, 18, к.198
|
111-56-09
|
2
|
АО «Сервис»
|
458962108945
|
215456
|
г.Омск, Победы, 13, к.1
|
550-67-90
|
3
|
АО «Закусочная»
|
546542123547
|
546211
|
г.Павлодар, ул. 8 марта, 33, к.11
|
123-45-67
|
4
|
Д/с №120
|
789320145214
|
457021
|
г.Павлодар, ул.Кутузова 279
|
234-32-22
|
5
|
СОШ №17
|
781258045785
|
645213
|
г.Омск, ул. Майская 15
|
453-67-20
| -
Откройте базу данных Продажа товаров.
-
Откройте схему данных и отобразите все таблицы базы данных.
-
Свяжите таблицы базы данных. Продумайте какие таблицы и по каким полям следует соединить.
-
Откройте таблицу ОПЕРАЦИИ, проверьте, появилась ли вложенность таблиц.
-
Произведите сортировку таблицы по полю Дата – с помощью Расширенного Фильтра (Записи – Фильтр – Расширенный фильтр) отберите все данные об операциях за январь.
-
Отключите фильтр. Проведите фильтрацию по полю Цена – оставьте только те товары, в которых цена больше 100. (используйте расширенный фильтр).
-
Отключите фильтр. Проведите фильтрацию по полю Форма оплаты – отберите операции по безналичному расчету.
Контрольные вопросы
-
Назовите основные элементы окна Access.
-
Перечислите основные объекты окна базы данных.
-
Какие режимы работы используются для работы с таблицей?
-
Что такое Конструктор в СУБД Access?
-
Для чего служит ключевое поле?
-
Что такое счетчик?
-
Какой тип данных следует использовать для создания поля, содержащего рисунки?
-
Что такое маска ввода? Какие знаки используются для работы с маской?
9. Объясните для чего необходимо связывать таблицы при работе с базами данных?
10. Перечислите виды связей между таблицами базы данных.
11.Назовите обязательные условия при создании связей между главной и подчиненной таблицами?
12. Как вы понимаете связь «Один к одному»?
13. Что означает связь «Один ко многим»?
14. Что такое связь «Многие ко многим»?
15.Что такое целостность данных?
страница 1 ... страница 2 | страница 3 страница 4 страница 5 ... страница 7 | страница 8
|