Профильная школа. ЭкзаменыПримерные ответы на профильные билетыТ.Н. Катанова,г. Пермь Продолжение. Начало см. в № 19–24/2006, 1, 4–9/2007 Билет № 241. Основные понятия баз данных. Системы управления базами данных. Создание, ведение и использование баз данных при решении учебных и практических задач. Примеры баз данных: юридические, библиотечные, здравоохранения, налоговые, социальные, кадровые. Организация баз данных. Использование инструментов системы управления базами данных для формирования примера базы данных учащихся в школе.База данных (БД) предназначена для хранения больших объемов данных во внешней памяти вычислительной системы. Эта совокупность специальным образом организованных данных, отражающая состояние объектов в некоторой предметной области. Предметной областью может быть книжный фонд библиотеки, музейный фонд, кадровый состав предприятия, учебный процесс в школе. База данных составляет часть соответствующей информационной системы. Понятия “данные” и “модель данных” являются центральными для баз данных. Категория “данные” означает параметры, конкретные значения, которые определяют объект. Например, 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а”:
Далее получим результат выборки в таблице:
Второй запрос выводит фамилии классных руководителей, которые не имеют почетного звания. Он основан на таблице Классный руководитель. Поле Наличие почетного_зван имеет логический тип, поэтому в строку Условие отбора внесена константа Нет:
Результат выборки:
Запрос может быть многотабличным. Запрос 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). Решение QBasicPRINT "Введите исходную строку: " 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$ PascalProgram 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, завести еще одну дополнительную строку. |