Научная статья на тему 'Современные информационные технологии: СУБД Access 8. 0. Разработка реляционной базы данных'

Современные информационные технологии: СУБД Access 8. 0. Разработка реляционной базы данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
348
39
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дмитриева Марина Валерьевна, Дмитриев Юрий Игоревич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Современные информационные технологии: СУБД Access 8. 0. Разработка реляционной базы данных»

Дмитриева Марина Валерьевна Дмитриев Юрий Игоревич

СОВРЕМЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ:

СУБД ACCESS 8.0

РАЗРАБОТКА РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ

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

Теория реляционных баз данных -математическая дисциплина, основу которой составляет реляционная алгебра [36]. Все обрабатываемые данные в реляционной базе данных организованы в таблицы. Результатом выполнения действий над таблицами является также таблица. Разработка большой базы данных является сложной задачей. На первом этапе должна быть спроектирована логическая модель данных, то есть требуется определить, из каких таблиц будет состоять база данных и как таблицы связаны между собой. В теории реляционных баз данных рассматриваются таблицы определенного вида, находящиеся в так называемой нормальной форме.

Находящиеся & (Яак На^и^аемой

Постановка задачи

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

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

¿л «о^иЯ-ка-м^лгим.» — Наиболее распрл-а&раЛеЯЯий Лип мефдц Таблицами,,,

нем Таблица языков первичным ключом является поле Код языка. В таблице же с именем Новая таблица учета времени работы первичным ключом будет поле Номер записи. Две таблицы содержат столбцы (атрибуты) с одинаковым именем Код языка.

Рассмотрим, каким образом эти таблицы связаны между собой. Каждой записи в таблице Код языка соответствует ноль, одна или более записей таблицы с именем Новая таблица учета времени. Такая связь между таблицами называется «один-ко-многим» (обозначается 1:М). Связь «один-ко-

многим» - наиболее распространенный тип связи между таблицами.

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

Тема 8. Формирование связей между таблицами

Построим базу данных, содержащую две таблицы, и установим связь между этими таблицами.

Практическая работа 10 Формирование связей между таблицами

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

Рисунок 1.

2.

В диалоговом окне Новая таблица выберите строку Конструктор и нажмите на кнопку Ок.

Полю Код языка сопоставьте тип счетчик, полю Название языка - тип Текстовый, Размер 20.

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

Заполните Таблицу языков, как по-

казано в таблице 1.

Код языка Название языка

1 Немецкий

2 Английский

3 Французский

4 Греческий

5 Испанский

6 Итальянский

7 Китайский

8 Польский

Таблица 1.

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

4. Измените структуру таблицы, добавив поле с именем Код языка, тип этого поля - Числовой.

5. На панели инструментов выберите кнопку Схема данных и щелкните по ней. Появится окно Схема данных и окно Добавление таблицы.

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

7. Закройте окно Добавление таблицы (кнопка Закрыть).

8. Установите связь между полем Код языка таблицы Новая таблица учета времени и Кодом языка таблицы с именем Таблица языков. Для этого выделите поле Код языка таблицы Новая таблица учета времени и, не отпуская левую кнопку мыши, со-

указала с&ремсоА.

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

Рисукок 2.

10. Закройте окно Схема данных. Связь данных из различных таблиц установлена.

11. В таблице с именем Новая таблица учета времени не заполнен столбец с кодом языка. Создайте форму для ввода информации в новую таблицу и заполните ее.

12. Выполненную работу покажите преподавателю.

Тема 9. Формирование запросов на основании нескольких таблиц

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

Рисунок 3.

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

Практическая работа 11

Формирование запросов на основании нескольких таблиц

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

о сотрудниках: фамилия, название языка и число часов (Вкладка Запросы Создать Конструктор - Ок). Добавьте две таблицы и сформируйте запрос. Окно запроса будет иметь вид, как на рисунке 3.

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

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

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

5. Выполненную работу покажите преподавателю.

Тема 10. Редактирование форм

При построении базы данных Учет времени работы для каждого сотрудника требуется вводить дату работы, что является довольно утомительным занятием. Это можно облегчить. При выполнении предыдущих практических заданий строились различные формы для ввода и редактирования данных. При построении форм использовался Мастер форм. Как и другие Мастера Access, Мастер форм строит форму в зависимости от ответов пользователя на вопросы. Можно создавать формы вручную, но это требует определенных навыков и дополнительного времени. Еще один путь: использовать Мастер форм для создания чернового варианта, а затем отредактировать построенную форму вручную. Так мы и поступим при построении формы с календарем.

Практическая работа 12 Редактирование форм Построение формы с календарем

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

1. Создайте форму для ввода данных в таблицу с именем Новая таблица учета времени, внешний вид которой - В один столбец, стиль Глобус.

2. Сохраните форму под именем Форма для таблицы учет времени. Закройте окно формы.

3. Выделите только что созданную форму и нажмите на кнопку Конструктор. Мы перешли в режим конструктора для выбранной формы.

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

фа^Ьаёо&ай&е Лакуа

даЯЯих,,,, гЛоёи и-Ярофмацма о ^аЛе раёоЛи... мо^Яа ёи б-^яЛы калеЯ

ОЛкройЛе Лолыка гЛо соуфЛЯЯул форму.

Рисунок 4.

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

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

6. Закройте окно формы, на вопрос о сохранении макета ответьте ДА.

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

самому.

8. Введите в таблицу базы данных с помощью созданной формы данные о работе десяти сотрудников.

9. Созданную форму с календарем и измененную таблицу покажите преподавателю.

Тема 11. Создание многотабличной пользовательской формы

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

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

Рисунок 5.

тельность действии для достижения цели может быть такоИ, как и в предыдущем случае: черновоИ вариант формы создается с помощью Мастера форм, затем форма редактируется вручную.

СУБД Access предоставляет средства визуального проектирования. В режиме конструктора доступна панель элементов, которая предоставляет средства изменения макета существующего объекта.

Практическая работа 13 Создание многотабличной пользовательской формы

1. СоздаИте форму под именем Форма для новой таблицы для ввода данных в таблицу Новая таблица учета времени, внешний вид формы В один столбец, стиль Облака. После работы Мастера форм будет построена форма, которую можно отредактировать вручную. 2. Откройте эту форму в режиме Конструктор. Слева от окна формы расположена Панель элементов. Если этой панели на экране нет, надо нажать кнопку Панель элементов на стандартноИ панели инструментов. После этих деИствиИ вид экрана будет таким, как на рисунке 5. 3. Расширьте область данных в окне ввода формы. В панели элементов нажмите на кнопку Поле со списком. Указатель мыши изменил свой вид на крест. На свободном месте в области данных щелкните левоИ кнопкой мыши. Загружается мастер Создание полей со списком. 4. В окне Создание полей со списком выберите переключатель поле со списком использует значения из таблицы или запроса (он отмечен по умолчанию), нажмите на кнопку Далее. На следующем шаге выберите из таблиц Таблица языков, нажмите на кнопку Далее. Перенесите все поля таблицы из окна

^Ыфемийе аооле "^л^&лНие....

Доступные поля в окно Выбранные поля.

Ключевое поле рекомендуется скрывать. Нажмите на кнопку Готово.

5. Удалите старые поля Код языка (выделите и нажмите на кнопку Del). Выделите поле Название и измените его на Иностранный язык. Левой кнопкой мыши двигайте новые поля на нужное место. Закройте форму, сохраните ее.

6. Введите информацию о работе шести сотрудников, используя только что построенную форму.

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

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

построенную форму с календарем.

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

10. Построенные формы и измененную таблицу базы данных покажите преподавателю.

Контрольное задание

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

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

• фамилии сотрудников с их деятельностью в фирме;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• фамилии сотрудников, занимавшихся переводом с французского языка;

• фамилии сотрудников, деятельность которых была связана с консультациями;

• фамилии сотрудников, выполнявших отчеты на английском языке.

3 . Составьте отчеты по имеющимся таблицам и построенным запросам. 4. Построенную таблицу, новую форму

Рисунок 6.

...сфамимии с их è фирме,,,

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

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

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

Дмитриева Марина Валерьевна, доцент кафедры информатики СПб Государственного Университета.

Дмитриев Юрий Игоревич, преподаватель кафедрыь математического моделирования СПб Государственного Университета кино и телевидения.

НАШИ АВТОРЫ

i Надоели баннеры? Вы всегда можете отключить рекламу.