Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кол. методы и информ. технологии.doc
Скачиваний:
1
Добавлен:
27.02.2020
Размер:
629.25 Кб
Скачать

Тема 2. Базы данных: ms access

Создание базы данных: Откройте программу Microsoft Access и создайте новую базу данных (Создание – Новая база данных). Затем сохраните ее, на жестком диске, присвоив ей имя «База-1». Для примера предлагается создать базу данных преподавателей и студентов некоего факультета. Сначала необходимо сконструировать базу данных, определив необходимое количество атрибутов (признаков) изучаемых объектов и задав имена столбцов будущей таблицы. Для этого, выберете создание таблицы в режиме конструктора. В открывшейся в режиме конструктора таблице в столбце «Имя поля» в первой ячейке введите «№ преподавателя», во второй ячейке «Фамилия преподавателя». В столбце «Тип данных» напротив «№ преподавателя» выберите счетчик, напротив «Фамилии преподавателя» выберите тип данный текстовый. Для связи между отдельными таблицами базы данных необходимо задать ключевое поле, которое будет являться идентификатором объектов при запросах. В нашем примере ключевым будет поле «№ преподавателя». Для этого, на панели инструментов найдите стилизованное изображение ключа и нажмите его установив курсор в ячейку «№ преподавателя». Сохраните созданную таблицу под именем «Преподаватели». Перейдите в режим таблицы (Вид – Режим таблицы). В первой ячейке столбца «Фамилия» введите «Иванов», во второй «Петров». После чего, таблицу можно закрыть.

Рис. 7. Построение таблицы в программе Access

Таблица Преподаватели

преподавателя

Фамилия преподавателя

1

Иванов

2

Петров

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

Рис. 8. Построение таблицы в программе Access

Таблица Студенты

студента

Фамилия студента

1

Кузнецов

2

Сидорова

3

Ульянов

4

Васильев

5

Попов

Создайте третью таблицу и сохраните ее под именем «Экзамены». Данная таблица будет содержать пять атрибутов: «№ экзамена», «Предмет», «№ преподавателя», «№ студента», «Оценка». Для удобства заполнения в строке «№ экзамена» выберите тип данных счетчик. Строка «Предмет» получает тип данных текстовый, а остальные – числовой. В данной таблице задавать ключевое поле не обязательно. Перейдите в режим таблицы и заполните ее следующим образом:

Рис.9. Построение таблицы в программе Access

Таблица 3

экзамена

Предмет

преподавателя

студента

Оценка

1

История России

1

1

2

2

История России

1

2

3

3

История России

1

3

2

4

История России

1

4

4

5

История России

1

5

4

6

История России

2

1

3

7

История России

2

2

4

8

История России

2

3

5

9

История России

2

4

4

10

История России

2

5

5

Создание запросов. На панели управления базой данных в столбце «Объекты» выберите закладку «Запросы» и создайте запрос в режиме конструктора. В окне «Добавление таблицы» добавьте все три созданные таблицы (Преподаватели, Студенты, Экзамен). Если все сделано правильно, между тремя таблицами должны автоматически установиться взаимосвязи. Если этого не произошло это можно сделать вручную, соединив ключевые поля в двух первых таблицах с аналогичными полями в таблице «Экзамен».

В окне режима конструктора запроса имеется насколько строк. 1) Поле – указывает по какому из атрибутов таблицы будет происходить запрос; 2) Имя таблицы – необходимо в том случае, если база данных состоит из нескольких таблиц; 3) Сортировка –упорядочивает данные по возрастанию или убыванию; 4) Вывод на экран (если поставить галочку в данной строке, то выбранный атрибут будет выводиться на экран в результатах запроса, если галочку убрать, то он будет скрыт, однако, все равно будет учитываться в условиях отбора) 5) Условия отбора – позволяет задавать условия выборки.

Типы запросов. Запрос на выборку. В качестве первого запроса выясните, какие студенты получили на экзаменах оценки 4 и 5. Для этого выберите в первом поле атрибут «фамилия студента», а во втором «Оценка». В графе условия отбора по атрибуту «Оценка» введите >3 (математические знаки «больше» и «меньше» используются для оптимизации заданий запроса). После чего запустите запрос (нажмите на панели управления иконку с восклицательным знаком (!) или просто перейдите в режим таблицы). Если все сделано правильно, то программа выдаст следующий результат:

Рис. 10. Построение запроса в программе Access

Фамилия студента

Оценка

Васильев

4

Попов

4

Сидорова

4

Ульянов

5

Васильев

4

Попов

5

Вернувшись в режим конструктора, измените имена полей и условия отбора и выясните, каким студентам, и какой преподаватель поставил двойку. Для этого, очистите поля запроса и, в первом столбце выберите атрибут «Фамилия преподавателя», во втором – «Фамилия студента», а в третьем – «Оценка». В третьем столбце поставьте в качестве условие отбора оценку 2 и запустите запрос.

Рис. 11. Построение запроса в программе Access

Фамилия преподавателя

Фамилия студента

оценка

Иванов

Кузнецов

2

Иванов

Ульянов

2

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

Рис. 12. Построение запроса в программе Access

Фамилия преподавателя

Оценка

Петров

3

Петров

4

Петров

5

Петров

4

Петров

5

Откройте базу данных «Четвертая Дума», в появившемся меню выберите Создание запроса в режиме конструктора, и добавьте Таблица – 1. В качестве примера, сделайте выборку депутатов четвертого созыва Государственной Думы РФ, которым на момент избрания (2003 г.) было менее 30 лет, т.е. они родились после 1973 г. Для этого в первом поле выберите графу «ФИО», а во втором «Год рождения». В колонке под годом рождения в строке Условие отбора пишете >1973. Запустите запрос. Если все сделано правильно, то программа выдает тот же перечень депутатов, что и в таблице с результатами запроса №4.

Рис. 13. Построение запроса на выборку в программе Access

ФИО

Год рождения

Агеев Александр Александрович

1976

Афанасьева Елена Владимировна

1975

Буренин Андрей Викторович

1974

Габдрахманов Ильдар Нуруллович

1974

Капков Сергей Александрович

1975

Мусатов Иван Михайлович

1976

Островский Алексей Владимирович

1976

Семенов Павел Владимирович

1976

Хинштейн Александр Евсеевич

1974

Запрос на групповые операции: является разновидностью запроса на выборку, однако он позволяет совершать с данными простейшие арифметические подсчеты и анализировать не только единичные значения объектов, но и их группы. Групповые операции добавляются в качестве дополнительной строки в режим конструктора запроса путем активации графической кнопки Σ на панели управления. Разновидностями групповых операций являются:

Группировка – группирует данные по заданному атрибуту.

Sum – суммирует данные в графе, работает только с числами,

Avg – вычисляет среднее значение. Если выбрать эту операцию применительно к данным по годам рождения, то получим 1952,8886364, это будет средний год рождение депутатов Думы. Таким образом, можно определить средний возраст депутатов.

Min – минимальное значение. Получаем 1928, это самый маленький год рождения, то есть возраст самого старого депутата.

Max – максимальное значение. 1976, то есть возраст самого молодого депутата.

Count – подсчет количества объектов, участвующих в анализе. Получив число 440, мы можем сказать, что по 440 депутатам есть данные о годе рождения.

StDev – стандартное квадратичное отклонение. Получаем 22,130156667, этот показатель указывает, что разброс от среднего по году рождения составляет около 22 лет.

First – первый введенный в базу объект.

Last – последний введенный в базу объект.

В качестве примера рассмотрите средний возраст депутатов по отдельным фракциям Государственной Думы четвертого созыва. Для этого в режиме конструктора запроса задайте следующие параметры: Поле 1 – Фракция (групповая операция – группировка), Поле 2 – Год рождения (Avg), Поле 3 – Год рождения (StDev).

Рис. 14. Построение запроса с использованием групповых операций в программе Access

Фракция

Avg-Год рождения

StDev-Год рождения

Единая Россия

1953,51839464883

18,9908710698425

КПРФ

1939,40425531915

43,2815150695537

ЛДПР

1964

8,75332449159589

Народно-патриотический союз -Родина

1950,72727272727

12,6892939842287

Независимый депутат

1955,7619047619

8,41370763637983

Справедливая Россия

1955,25

10,367442836483

Из полученных результатов видно, что самой «молодой» фракцией, да еще и с наименьшим разбросом значений, является фракция ЛДПР, а самой «пожилой» и с максимальным разбросом – КПРФ.

Чтобы узнать количество членов каждой фракции, измените условия запроса. Поле 1 – Фракция (групповая операция – группировка), Поле 2 – Пол (Count).

Рис. 15. Построение запроса с использованием групповых операций в программе Access

Фракция

Count-Пол

Единая Россия

299

КПРФ

47

ЛДПР

30

Народно-патриотический союз -Родина

11

Независимый депутат

21

Справедливая Россия

32

Перекрестный запрос. Данный тип запроса позволяет рассматривать распределение одного атрибута в зависимости от другого. Результат перекрестного запроса реализуется в виде перекрестной таблицы, построенной по двум атрибутам. Для создания перекрестного запроса в меню Запрос на панели управления выберите Перекрестный. При этом в окне режима конструктора запроса добавляются две строки – Групповая операция и Перекрестная таблица (в которой задается структура будущей перекрестной таблицы). В качестве примера рассмотрите состав фракций по полу. Для этого в режиме конструктора задайте следующие параметры: Поле 1 – Фракция (Групповая операция – группировка, перекрестная таблица – заголовки строк), Поле 2 – Пол (группировка, заголовки столбцов), Поле 3 – Год рождения (Count, Значение). В данном примере атрибут год рождения используется для подсчета значений по двум изучаемым атрибутам.

Рис. 16. Построение перекрестного запроса в программе Access

Фракция

Ж

М

Единая Россия

34

265

КПРФ

6

41

ЛДПР

1

29

Народно-патриотический союз -Родина

1

10

Независимый депутат

4

17

Справедливая Россия

3

29

Если в режиме конструктора запроса групповую операцию Count по полю Год рождения заменить на Avg, то можно получить в качестве результата средний возраст (средний год рождения) мужчин и женщин депутатов каждой фракции.

Рис. 17. Построение перекрестного запроса в программе Access

Фракция

Ж

М

Единая Россия

1955,61764705882

1953,24905660377

КПРФ

1947,83333333333

1938,17073170732

ЛДПР

1947

1964,58620689655

Народно-патриотический союз -Родина

1960

1949,8

Не входит

1951,5

1956,76470588235

Справедливая Россия

1948

1956

Выясните, как соотносится принцип избрания депутатов (по партийным спискам или по одномандатным округам) с количеством созывов Государственной Думы в которых данный депутат участвовал. В режиме конструктора запроса задайте следующие параметры: Поле 1 – Количество созывов (группировка, заголовки строк), Поле 2 – Принцип избрания (группировка, заголовки столбцов), Поле 3 – Фракция (Count, значение).

Рис. 18. Построение перекрестного запроса в программе Access

Количество созывов

Округ

Партийный список

1

107

122

2

70

71

3

21

22

4

15

12

Из этого запроса видно, что и по партийным спискам и по одномандатным округам количество старожил и новичков примерно одинаково. При этом если суммировать всех кто имеет более одного срока, то их получиться столько же, сколько и новых. Таким образом, можно сделать вывод, о том, что по сравнению с предыдущим созывом ГД 4 созыва обновилась примерно на половину.

Задания для самоконтроля:

По базе данных DUMA 1 (депутаты 1-ой Государственной Думы, созыва 1906 г.) сформируйте следующие запросы:

1. Количественный состав фракций;

2. Поименный состав фракции кадетов;

3. Национальный состав фракции социал-демократов;

4. Поименный состав с указанием фракции всех депутатов в возрасте до 40 лет;

5. Средний год рождения депутатов по фракциям;

6. Распределение депутатов по сословному происхождению и уровню образования;

7. Распределение депутатов по роду занятий и профилю образования;

8. Сословный состав Государственной Думы;

9. Национальный состав Государственной Думы;

10. Уровень образования депутатов Государственной думы.

По базе данных COMANDARM (командармы Красной армии) сформируйте следующие запросы:

11. Определите, сколько представителей каждой национальности было среди командармов.

12. Найдите фамилию самого старого командарма.

13. Сколько из командармов в Первую мировую войну были штабс-капитанами.

14. Какое количество командармов погибло в 1941 г.

15. Выясните, какими иностранными языками владели участники войны с Японией.

16. Сколько человек вступило в партию после начала службы в Красной Армии.

17. Найдите командармов, которые вступили в партию до 1917 года.

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

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

20. Сколько человек принимали участие в событиях вокруг озера Хасан или в конфликте на КВЖД.