Профильная школа. Экзамены

Примерные ответы на профильные билеты

Т.Н. Катанова,
г. Пермь

Продолжение. Начало см. в № 19–24/2006, 1, 4–9/2007

Билет № 24

1. Основные понятия баз данных. Системы управления базами данных. Создание, ведение и использование баз данных при решении учебных и практических задач. Примеры баз данных: юридические, библиотечные, здравоохранения, налоговые, социальные, кадровые. Организация баз данных. Использование инструментов системы управления базами данных для формирования примера базы данных учащихся в школе.

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

Понятия “данные” и “модель данных” являются центральными для баз данных. Категория “данные” означает параметры, конкретные значения, которые определяют объект. Например, 1 байт, Иванов А.П. Данные не имеют определенной структуры. Логическую структуру хранимой в БД информации называют моделью представления информации. Это некоторая абстракция, которая отражает взаимосвязь данных.

Рассмотрим основные модели данных.

Иерархическая модель

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

Основными информационными единицами иерархической модели являются сегмент и поле. Поле — это минимальная неделимая единица данных, сегмент называется записью. В модели сегменты объединяются в ориентированный древовидный граф. Ребра графа отражают иерархические связи между сегментами. “Дерево” состоит из одного корневого сегмента и упорядоченного набора подчиненных сегментов.

Возможен следующий пример организации данных типа “дерево”:

Конкретный экземпляр записей в базе данных с приведенной схемой “дерево” может, например, выглядеть следующим образом:

Сетевая модель

С помощью сетевой модели можно отобразить взаимосвязи объектов в виде произвольного графа:

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

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

Сетевая БД состоит из набора записей и соответствующих связей.

Реляционная модель

Эта модель данных основана на понятии отношения. Наглядной формой отношения является двумерная таблица. С помощью таблицы можно описать простейший вид связей между данными: деление одного объекта на множество подобъектов, которым соответствуют строки таблицы.

Строки таблицы имеют одинаковую структуру и называются записями. Записи содержат информацию об отдельном объекте — о классе в нашем примере. Записи состоят из полей. Поле — это определенное свойство, атрибут объекта: название класса, его профиль. Поле имеет определенный тип, который определяет множество значений и множество операций, выполняемых с данными. Основными типами данных, применяемыми в БД, являются числовой, символьный, логический и дата.

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

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

На основе модели данных строят базу данных. Далее рассмотрим реляционную БД как наиболее распространенную в настоящее время.

Системы управления базами данных

Системой управления базами данных (СУБД) называют комплекс языковых и программных средств создания, ведения и использования БД. Для персональных компьютеров используют реляционные БД, основанные на табличном представлении данных. СУБД позволяет пользователю выполнять следующие действия:

· формировать структуру БД, редактировать ее;

· вводить конкретную информацию, изменять ее;

· манипулировать данными, находить информацию, отвечающую некоторым критериям;

· сортировать данные.

Приведем примеры БД.

Правовые системы и базы данных предназначены для хранения и регулярного обновления сборников нормативных документов и подзаконных актов. Экономические реформы, проводимые в нашей стране, сопровождаются значительными изменениями законов и нормативных актов, инструкций. С этими документами работают не только юристы, но и руководители и специалисты должны постоянно иметь возможность просмотреть быстро меняющиеся требования, нормативы. В этом классе представлены отечественные информационно-правовые и справочные системы “Кодекс”, “Консультант Плюс”, “Гарант-Сервис”, “Кодекс”, “Консультант-Бухгалтер”.

Система “Консультант Плюс” позволяет вести поиск документов по официальным реквизитам или отдельным словам, по тематическому рубрикатору, по ключевым словам.

Компания “Гарант” имеет колоссальный информационный банк, охватывающий весь спектр российского законодательства и основные нормы международного права. Все документы представлены в действующей редакции, новая информация поступает ежедневно, еженедельно обновляется весь банк данных. Работа с БД производится в гипертекстовой среде с перекрестными ссылками и мощными поисковыми инструментами.

Рассмотрим СУБД Microsoft Access как наиболее популярное приложение, используемое для обучения. Приложение Microsoft Access работает на отдельном компьютере или в небольшой локальной сети. С помощью СУБД, ориентированной на персональный компьютер, можно создать небольшую личную БД или БД для небольшой организации. Система MS Access позволяет, не прибегая к программированию, выполнять основные действия с данными, расположенными в таблицах. Программа имеет стандартный для продуктов Microsoft интерфейс.

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

Таблица — основная единица хранения данных в базе. Это понятие соответствует реляционной модели данных. Таблица состоит из записей и полей. Данные в таблице можно просматривать и модифицировать, сортировать и фильтровать, распечатывать. В базе создается совокупность связанных между собой таблиц. MS Access позволяет создавать связи типа “один к одному” и “один ко многим” с помощью схемы данных. Таблица — главный объект БД, остальные объекты являются производными от нее.

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

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

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

Страницы публикуют БД в Web для использования ее в локальных сетях и Интернете. Пользователи работают на страницах, так же как в приложении: просматривают таблицы, выполняют запросы.

Макрос задает автоматическое выполнение некоторых операций с помощью макрокоманд, например, “Печатать”, “НайтиЗапись”.

Модуль состоит из процедур на языке VBA и автоматизирует некоторое действие, которое стандартными средствами приложения MS Access выполнить затруднительно. VBA (Visual Basic for Applications) — язык программирования высокого уровня для создания приложений Windows. Модули используют для решения более сложных задач, которые не под силу макросам.

Построим пример базы данных учащихся в школе средствами СУБД MS Access.

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

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

Разработку БД начнем с проектирования. Так как MS Access использует реляционную модель данных, информацию расположим в трех следующих таблицах — Классы, Классный руководитель, Ученики:

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

Эти три таблицы должны образовать единую систему, поэтому они взаимосвязаны:

Здесь присутствуют два типа связи: “один к одному” и “один ко многим”.

Таблицы Классы и Классный руководитель объединяет связь типа “один к одному”, она на рисунке обозначена одинарной стрелкой. При этом типе связи две таблицы можно было бы объединить в одну таблицу, так как одной записи в одной таблице соответствует одна запись в другой таблице. Информация разделена на две таблицы, так как одна таблица содержала бы слишком много полей и с ней было бы неудобно работать. Эти таблицы находятся на одном уровне иерархии.

Таблицы Классы и Ученики объединяет связь типа “один ко многим”, она обозначена двойной стрелкой. Например, в одном классе обучается несколько учеников, но каждый ученик может обучаться только в одном классе. Поэтому одной записи в таблице Классы соответствует несколько записей в таблице Ученики. Это связь между соседними уровнями иерархической структуры.

Приступим к созданию БД в приложении MS Access. После запуска программы и создания файла новой БД следует построить структуру таблиц и заполнить таблицы данными. Структуру таблиц можно задать с помощью Конструктора. На рисунке показано окно Конструктора при определении структуры таблиц Классы:

Изображение ключа указывает на ключевое поле. Аналогично определим структуры таблиц Классный руководитель и Ученик:

Обратим внимание на то, что в таблице Классный руководитель поле Наличие почетного_зван имеет логический тип.

Заполним таблицы данными:

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

Здесь отражены два типа связи. Связь “один к одному” между таблицами Классы и Классный руководитель производится через общий главный ключ “Название класса”. Связь “один ко многим” между таблицами Классы и Ученик создана с помощью главного ключа “Название класса” таблицы Классы и одноименного поля таблицы Ученик.

Программа MS Access, обеспечивая целостность данных, препятствует удалению и изменению связанных данных. Изменение ключевого поля в первичной таблице приведет к автоматическому изменению ключей в связанных записях. Удаление записей из первичной таблицы вызовет соответствующее удаление записей в связанной таблице. Для этого при создании связи следует установить флажки Каскадное обновление связанных данных и Каскадное удаление связанных данных.

Для поиска информации в БД создают запросы. Запрос позволяет манипулировать данными БД: выбирать данные по некоторому условию, сортировать, обновлять, удалять и добавлять данные в БД. Простейшим является запрос на выборку. Результатом запроса на выборку будет таблица, которая содержит поля, удовлетворяющие условиям отбора.

В нашем примере Запрос 1 позволяет получить список учеников с домашними адресами, которые обучаются в классе 1а. Создадим этот запрос в конструкторе, в качестве исходной таблицы укажем таблицу Ученик, в строке Условие отбора в поле Название класса зададим условие “1а”:

Далее получим результат выборки в таблице:

Второй запрос выводит фамилии классных руководителей, которые не имеют почетного звания. Он основан на таблице Классный руководитель. Поле Наличие почетного_зван имеет логический тип, поэтому в строку Условие отбора внесена константа Нет:

Результат выборки:

23-2.gif (3780 bytes)

Запрос может быть многотабличным. Запрос 3 выводит поля Название класса, Профиль из таблицы Классы, и поле Фамилия из таблицы Классный руководитель, при этом поставлено условие, что класс имеет математический профиль.

Ответ можно просмотреть в режиме таблицы:

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

Литература

1. Семакин И.Г. Информатика. 11-й класс / И.Г. Семакин, Е.К. Хеннер. М.: БИНОМ. Лаборатория Знаний, 2002, 144 с.

2. Microsoft Office XP. Версия 2002. Шаг за шагом: Практическое пособие / Пер. с англ. М.: Издательство “ЭКОМ”, 2003, 720 с.

2. Записать с помощью микрофона читаемый вслух текст. Скомпоновать введенный звук с заданными звуковыми файлами с применением эффектов изменения скорости и наложения звука. Сохранить получившиеся файлы в различных звуковых форматах.

Для записи звука с микрофона применяют программу Фонограф (Sound Recorder), которая позволяет записывать звуковые клипы, удалять фрагмент звукового файла, изменять скорость и громкость воспроизведения звука, смешивать несколько звуковых записей, добавлять эффект эха.

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

Создадим новый файл командой Файл/Создать. Нажав кнопку Запись, прочитаем в микрофон текст и нажмем кнопку Стоп, чтобы прекратить запись. Далее скомпонуем речь с некоторым звуковым файлом. Выполним команду Правка/Смешать с файлом и в диалоговом окне укажем путь к нужному звуковому файлу.

Применим эффект изменения скорости воспроизведения звука, подадим команду Эффекты/Увеличить скорость.

По умолчанию программа сохраняет файл в формате wav. Требуется сохранить наш файл в различных форматах. Для этого следует подать команду Файл/Свойства. Откроется диалоговое окно Свойства объекта “Звук”:

Выберем в меню Качество режим преобразования файла Форматы воспроизведения. Нажмем кнопку Преобразовать. На экран выходит диалоговое окно Выбор звука. Список Название содержит стандартные варианты оцифровки звука, выберем стандарт стереозвука CD Quality (Компакт-диск):

Этот вариант, как и другие, имеет набор свойств записи, например, количество каналов воспроизведения, частоту оцифровки звукового сигнала. Эти свойства указаны в списке Атрибуты. Список Формат содержит перечень форматов, в которые можно преобразовать нашу запись. Оставим распространенный формат pcm. Нажмем кнопку ОК, что приведет к перекодировке файла. Остается только сохранить его в новом формате.

Литература

1. Шалин П. Энциклопедия Windows XP. СПб.: Питер, 2002, 688 с.

3. Написать и отладить программу обработки символьных данных. Проанализировать полученный результат.

Пример. Написать и отладить программу шифрования символьной строки, состоящей из букв латинского алфавита, по коду Цезаря (А и а заменяется на D и d соответственно, В и b — на E и e, C и с — на F и f, …, X и x — на А и а, Y и y — на B и b, Z и z — на C и c).

Решение

QBasic

PRINT "Введите исходную строку: "

INPUT s$

s1$ = ""

FOR i = 1 TO LEN(s$)

A$ = MID$(s$, i, 1)

SELECT CASE A$

CASE "A" TO "W", "a" TO "w"

s1$ = s1$ + CHR$(ASC(A$) + 3)

CASE "X" TO "Z", "x" TO "z"

s1$ = s1$ + CHR$(ASC(A$) — 23)

CASE ELSE

s1$ = s1$ + A$

END SELECT

NEXT i

s$ = s1$: PRINT s$

Pascal

Program shifr;

Var s: string; i: byte;

Begin

Write('Введите исходную строку: ');

Readln(s);

For i := 1 to length(s) do

Case s[i] of

'A'..'W', 'a'..'w': s[i] := chr(ord(s[i]) + 3);

'X'..'Z', 'x'..'z': s[i] := chr(ord(s[i]) - 23);

End;

Writeln(s)

End.

C++

#include <iostream.h>

void main()

{ char s[255]; int i;

cout << "Введите исходную строку: ";

cin.getline(s, 255);

for (i = 0; s[i]!='\0'; i++)

{ if (s[i] >= 'A' && s[i] <= 'W' || s[i] >= 'a'

&& s[i] <= 'w') s[i] = s[i] + 3;

else if (s[i] >= 'X' && s[i] <= 'Z' ||

s[i] >= 'x' && s[i] <= 'z')

s[i] = s[i] - 23;}

cout << s;

}

Варианты заданий

Решить задачу:

1. Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с дробной частью), то вывести 2; если строку нельзя преобразовать в число, то вывести 0.

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

3. а) Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных местах, а затем, в обратном порядке, все символы, расположенные на нечетных местах (например, строка “Программа” превратится в “ргамамроП”). б) Решить обратную задачу.

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

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

Примечание. Если длина результирующей строки превышает 255, завести еще одну дополнительную строку.

Продолжение