Учебник Информатика 9 класс Горячев Островский часть 1

На сайте Учебник-скачать-бесплатно.ком ученик найдет электронные учебники ФГОС и рабочие тетради в формате pdf (пдф). Данные книги можно бесплатно скачать для ознакомления, а также читать онлайн с компьютера или планшета (смартфона, телефона).
Учебник Информатика 9 класс Горячев Островский часть 1 - 2014-2015-2016-2017 год:


Читать онлайн (cкачать в формате PDF) - Щелкни!
<Вернуться> | <Пояснение: Как скачать?>

Текст из книги:
Федеральный государственный образовательный стандарт Образовательная система «Школа 2100» А.В. Горячев, С.Л. Островский, А.В. Паволоцкий, Т.Л. Чернышёва, Д.В. Широков ИНФОРМАТИКА 9 класс • Часть 1 Москва Б/тх 2015 УДК 373.167.1:004+004(075.3) ББК 32.81я721 Г67 Федеральный государственный образовательный стандарт Образовательная система «Школа 2100» Совет координаторов предметных линий Образовательной системы «Школа 2100» — лауреат премии Правительства РФ в области образования за теоретическую разработку основ образовательной системы нового поколения и её практическую реализацию в учебниках На учебник получены положительные заключения по результатам научной экспертизы (заключение РАН от 14.10.2011 № 10106-5215/449), педагогической экспертизы (заключение РАН от 24.01.2014 № 000384) и общественной экспертизы (заключение НП «Лига образования» от 30.01.2014 № 177) Руководитель издательской программы -чл.-корр. РАО, доктор пед. наук, проф. Р.Н. Бунеев Авторский коллектив: А.В. Гиглавый - научный редактор, А.В. Горячев - автор концепции курса, научный руководитель, С.Л. Островский (часть 1: модуль «Хранение и обработка больших объёмов данных»), А.В. Паволоцкий (часть 2: модуль «Алгоритмизация и программирование»), А.А. Семёнов (часть 1: модуль «Моделирование»), Т.Л. Чернышёва (часть 2: модуль «Знакомство с математической логикой»), Д.В. Широков (часть 1: модуль «Создание электронных изданий»; часть 2: модуль «Web-конструирование. Основы мастерства») Данный учебник в целом и никакая его часть не могут быть скопированы без разрешения владельца авторских прав ISBN 978-5-85939-997-0 ISBN 978-5-85939-941-3 (ч. 1) © Горячев А.В., Островский С.Л., Паволоцкий А.В., Чернышёва Т.Л., Широков Д.В., 2012 © ООО «Баласс», 2012 Дорогие читатели! Перед вами учебник по информатике для 9-го класса, созданный в Образовательной системе «Школа 2100». Надеемся, вы помните, что особое внимание мы уделяем применению компьютеров в наиболее общих, универсальных действиях, которые выполняют люди самых разных профессий в самых разных ситуациях. Принято выделять три основные группы таких универсальных действий: • познавательные - связанные с поиском информации и работой со знаниями (например, это такие темы, как поиск информации, моделирование, применение интеллект-карт, работа с большим объёмом данных), • коммуникативные - связанные с общением и сотрудничеством (например, это такие темы, как общение через промежуточное звено в виде печатных, мультимедийных и электронных изданий и общение напрямую: общение в Сети, публичные выступления), • организационные (или регулятивные) - связанные с постановкой цели, созданием и реализацией плана действий, оцениванием полученного результата (например, это такие темы, как управление личными проектами, организация времени, принятие решений). Овладение такими видами универсальных действий - важная задача обучения в школе. Об этом прямо записано в Федеральном государственном образовательном стандарте - документе, имеющем силу закона. В 7-м и 8-м классах вы уже научились применять компьютер как инструмент при выполнении некоторых универсальных действий и имеете полную возможность применять свои умения на уроках по другим учебным дисциплинам. Мы надеемся, что именно так вы и поступаете. С помощью этого учебника вы продолжите осваивать новые умения, которые также сможете применять на других уроках. В модуле «Создание электронных публикаций» вы сможете научиться создавать свои первые сайты для публикации в сети Интернет. С помощью модуля «Хранение и обработка больших объёмов данных» вы сможете научиться создавать базы данных для хранения большого объёма табличной информации и искать нужную информацию в этих базах данных, составляя запросы на поиск. Изучая очень интересный модуль «Управление личными проектами», вы задумаетесь над тем, в какой последовательности надо браться за накопившиеся дела и почему очерёдность выполнения дел должна быть такой. Вы сможете научиться планировать текущую деятельность, включая учебную, для того чтобы ставить цели и добиваться их достижения. Как работать с учебником Просмотрите «Содержание», перелистайте учебник. Вы заметите, что он разделён на модули. Вы будете изучать модули в том порядке, который предложит учитель. Практически в каждом модуле мы предусмотрели пять основных параграфов. Изучив эти параграфы, вы напишете проверочную работу, по итогам которой узнаете, как вы освоили новый материал: ниже необходимого уровня, на необходимом или повышенном уровне. Далее вы будете работать самостоятельно, выполняя по указанию учителя задания того уровня, которого вы пока не достигли. Если проверочная работа покажет, что вы освоили и повышенный уровень, то вы будете выполнять задания самого высокого - максимального уровня. Учитель в любой момент может предложить вам перейти на выполнение заданий более высокого уровня. По окончании выполнения заданий учебника учитель проведёт итоговую проверочную работу. Далее в модуле расположены дополнительные параграфы, задания к ним и проверочные работы. Основные параграфы выделены в учебнике зелёной полосой вверху страницы, дополнительные - розовой полосой. Дополнительный материал, который вы не изучите на уроках, вы сможете использовать на факультативах и кружках. На уроках информатики вы сможете освоить умения, которые помогут вам более эффективно использовать компьютеры и компьютерные сети для решения возникающих в вашей жизни задач. Кроме того, учитель может решить, что вам надо освоить умения, которые помогут вам заниматься разработкой новых компьютерных программ или заложат основы профессиональной деятельности, тесно связанной с применением компьютерной техники. Кроме того, наш учебник, как и все учебники Образовательной системы «Школа 2100», поможет вам в развитии универсальных учебных действий. В учебнике вам могут встретиться задания, обозначенные кружками и фоном разного цвета - это условные знаки. Каждый цвет соответствует определённой группе умений: • - организовывать свои действия: ставить цель, планировать работу, действовать по плану, оценивать результат; • - работать с информацией: самостоятельно находить, осмысливать и использовать её; 4 ' 1^ - общаться и взаимодействовать с другими людьми, владеть устной и письменной речью, понимать других, договариваться, сотрудничать; ' I - развивать качества своей личности, оценивать свои и чужие слова и поступки; 0, так обозначены задания, где нужно применить разные группы умений, мы называем их жизненными задачами и проектами. Для успешного изучения информатики и овладения универсальными учебными действиями на уроках используется проблемно-диалогическая образовательная технология. Поэтому структура параграфа, где вводится новый материал, имеет в учебнике следующий вид. ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Это подведение к теме (вопросу, цели) урока: вы обсуждаете проблему в предложенном материале и формулируете главный вопрос урока (всем классом, в группе или в паре). Сравните свой вариант вопроса с авторским. Авторские вопросы к параграфам расположены в «Содержании» под названиями параграфов и выделены курсивом. НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Так обозначены вопросы и задания по изученному материалу, который вам необходим для открытия нового знания. РЕШЕНИЕ ПРОБЛЕМЫ Вы в группе, в паре или совместно с учителем, ведя диалог, осуществляете поиск решения проблемы. Для решения проблемы вы работаете с текстом. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ На этом этапе вы формулируете вывод и проверяете свои предположения, сравнивая их с авторским решением проблемы - научными формулировками правил или определений. ПРИМЕНЕНИЕ ЗНАНИЙ Так обозначены задания на применение новых знаний. ОПЕРАЦИИ Раздел «Операции» позволит вам научиться выполнять действия с компьютерными программами, необходимые для решения учебных задач. В конце модуля вы найдёте раздел «Решаем жизненные задачи и работаем над проектами». Задачи и проекты могут выполняться как на уроках, так и на факультативах и кружках. Там же находится очень важный раздел «О профессиях». Прочитайте его и подумайте, какие профессии вам больше по душе. Что такое жизненные задачи? Это проблемы, с которыми вы можете столкнуться в жизни и для решения которых вам понадобятся разные знания и умения. Они оформлены следующим образом: Название задачи Ваша роль: человек, в роли которого вы должны себя представить, решая проблему. Описание. Условия, в которых возникла проблема. Задание. То, что нужно сделать и получить в итоге. Что такое проект? Это любое самостоятельное дело, которое предполагает: 1) оригинальный замысел (цель); 2) выполнение работы за определённый отрезок времени; 3) конкретный результат, представленный в итоге. Что можно считать результатом проекта? • Предметы, сделанные своими руками: макеты, модели или вещи для практического использования. • Мероприятия: спектакли, фотовыставки, викторины, конференции, праздники и тому подобное - при условии, что они подготовлены самими учениками. • Информационные продукты: газеты, книжки, плакаты, карты, стихотворения, рассказы, доклады, отчёты об исследованиях и т.д. • Решение конкретных проблем: изменение, улучшение конкретной ситуации, например уборка мусора на школьном дворе. 6 Правила проектной деятельности 1. Каждый может начать собственный проект. 2. Каждый может объединиться с другими в ходе работы над проектом. 3. Каждый может выйти из проекта при условии, что он не подводит других. 4. Каждый может не участвовать ни в одном проекте. Как оценить свои учебные достижения? Для этого надо освоить алгоритм самооценки: 1. Какова была цель задания (что нужно было получить в результате)? 2. Вы выполнили задание (получен ли результат)? 3. Вы выполнили задание верно или с ошибкой? 4. Вы выполнили задание самостоятельно или с чьей-то помощью? 5. Вспомните, как вы ставите отметки. Определите свою отметку. 8 Модуль 1. Создание электронных изданий Этот модуль поможет вам: • познакомиться со структурой и возможностями гипертекста; • понять, какими бывают web-страницы и для чего они предназначены; • ориентироваться в многообразии стилей оформления web-страниц; • создавать собственные web-страницы и редактировать существующие; • познакомиться с возможностями оформления web-страниц с помощью каскадных таблиц стилей (CSS); • превращать эскиз будущей web-страницы в html-документ. Для этого вам надо научиться: • иллюстрировать web-страницы различными изображениями; • создавать навигацию между несколькими страницами; • описывать стили внутри html-файлов и привязывать к web-страницам внешние css-файлы; • создавать css-файлы с помощью редакторов «Блокнот» и Simple CSS; • применять css-стили к любым элементам web-страниц. 9 10 Модуль 1. Создание электронных изданий Введение Интернет, или Всемирная паутина (по-английски WWW - World Wide Web), был придуман не так давно - в 1991 году, однако сегодня не так-то просто даже представить себе какую-либо сферу человеческой деятельности, которую он не затронул. Мы читаем с его помощью последние новости, заказываем в интернет-магазине книги и технику, публикуем свои фотографии, выбираем маршрут путешествия, покупаем билет на поезд и... Список можно продолжать бесконечно! Интернет состоит из огромного количества web-сайтов; обычно их называют просто сайтами. По подсчётам аналитиков, на начало 2011 года в Интернете насчитывалось свыше 270 миллионов сайтов. Каждый сайт представляет собой совокупность web-страниц. Не секрет, что очень многое зависит от внешнего вида web-страниц того или иного сайта. Например, как много времени посетители потратят на его изучение: погрузятся «с головой», забыв обо всём на свете, или уже через минуту будут делать то же самое, но уже на другом сайте. Сколько посетителей станут впоследствии постоянными покупателями, клиентами, пациентами, деловыми партнёрами. Именно поэтому web-дизайн, то есть деятельность, направленная на разработку оптимальной структуры web-страниц и их художественное оформление, представляет собой огромную индустрию всевозможных web-студий, количество которых только в России измеряется сотнями, а то и тысячами. Вы тоже можете стать мастерами Интернета, создателями web-сайтов, web-дизайнерами! В этом модуле вы научитесь создавать собственные web-страницы и сайты, грамотно и привлекательно их оформлять. § 1. Создаём первую web-страницу 11 § 1. Создаём первую web-страницу ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Прочитайте утверждение: «В отличие от страниц печатных изданий, web-страницы не имеют физических границ: можно сделать сколь угодно широкую и длинную web-страницу. Зачем же разбивать сайт на несколько web-страниц, когда всю информацию можно разместить на одной? Тогда и гиперссылки не понадобятся!» • Как вы считаете, это утверждение справедливо? Встречались ли вам сайты, состоящие из одной большой web-страницы? А задумывались ли вы, как создаются web-страницы? Какие вопросы, по-вашему мнению, будут решены в этом параграфе? Сформулируйте их. Сравните свою формулировку с авторской (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Какими способами можно оформлять текст? Вспомните, как вы работали в текстовом редакторе Блокнот. РЕШЕНИЕ ПРОБЛЕМЫ Количество web-страниц, составляющих сайт, определяется его назначением. Наверняка многим знакомо название Википедия. Это самая большая в мире энциклопедия, размещённая в Интернете. Её материалы переведены на сотни языков. Создать новую статью для Википедии или отредактировать уже существующую может любой из нас: именно поэтому количество статей исчисляется сотнями тысяч и даже миллионами. Главная web-страница русскоязычной версии Википедии выглядит так (рис. 1.1). Всё, что выделено здесь синим цветом, - это гиперссылки. Гиперссылки ведут нас на другие web-страницы. Очевидно, что невероятное количество данных (текста, картинок, аудио- и видеоматериалов) необходимо размещать маленькими порциями на отдельных web-страницах (одна страница - одна статья), поскольку найти что-либо на одной огромной странице будет крайне сложно. Страницы, связанные гиперссылками, образуют гипертекст. Иногда гипертекст определяют как «текст, выполняющий действия по запросу». Тем не менее иногда действительно встречаются сайты, состоящие из одной страницы. Как правило, это временные web-страницы, на которых размещена информация о том, что полноценный сайт находится в разработке и появится по данному адресу спустя некоторое время. Вместе с тем существует немало сайтов, которые содержат небольшое количество web-страниц (пять-десять) в силу того, что выполняют представительскую функцию: кратко рассказывают о той или иной компании, продукте или услуге. Посмотрите на рис. 1.2: на странице, посвящённой выставке 12 Модуль 1. Создание электронных изданий у Iw http://ru.wikipedia.org •J 1 ♦* 1 ri J Избранное ^ . *7 • . Страница Безо пасност^ Сер ис- •' Википедия Добро пожаловать в Википедию, Избранная статья Аристид (ок. 530-467 до н. э.) - афинский государственный деятель, полководец греко-персидских войн (500-449 гг. до н. э.). Свою политическую деятельность Аристид начал будучи сторонником реформатора Клисфена из рода Алкмеонидов. Позже он отошёл от группировки Алкмеонидов и занял позицию политика вне группировок -позицию уникальную, отличавшую его от всех остальных. (далее...) -» ■ i «т i55°). Хорошая статья Знаете ли вы? Мария дель Кармен Поло-и-Мартинес Вальднес - супруга испанского диктатора Франсиско Франко, первая леди Испании (1939-1975). В период диктатуры Франко в Испании Кармен Поло играла важную роль в общественной и политической жизни государства. По словам генерала-лейтенанта Франко Слагадо-Арухо, она “была единственным лицом, обладавшим подлинным влиянием" на каудильо. ш •Книги не всегда писались черным по белому (на илл.). •За пять лет, пока жених из Белоруссии дожидался на берегах Невы взросления своей невесты, он стал фаворитом императрицы, а она - невестой императора. •Попав в Альмерию, выходец из Восточной Европы 5 раз пытался стать “делателем халифов'' •За четыре года немцы пережили два футбольных позора. •В одном из городов Коммунистическая улица ведет прямо к кладбищу, а улицы Карла Маркса и Энгельса заканчиваются тупиком. •Гильотина, созданная усилиями философа еще в XVIII веке, ни на секунду не не прекращает работать и по сей день, несмотря на возражения критиков. Рис. 1.1. Главная страница русскоязычной Википедии в окне браузера Microsoft Internet Explorer j Избрэнмо^ t, Яндекс ^Почт^ Карт^§|Мврке^ У Но ^ ^Виде^ ^ М|узык^ Ц^Диск Рекомендуемые узлы • |f; fk • О • • стра НОВАЯ ЭЛЕКТРОНИКА 2013 26_28 МОСКВА ЭКСПОЦЕНТР НА КРАСНОЙ ПРЕСНЕ Ведущие российские поставщики электронных компонентов и модулей соберутся на международной выставке - главная российская выставка электронных компонентов и модулей й -о-Учите обновления О следите за новостями 13.04.2012 _ ПрииТла’с.тельныхбилегто’?''" Рис. 1.2. Страница сайта, посвящённого выставке российской электроники в 2013 году ободную энциклопедию, которую может редактировать каждый Сейчас в Википедии 881 805 статей на русском языке. • \ 100% § 1. Создаём первую web-страницу 13 российской электроники, совсем немного гиперссылок, однако она изобилует большими красочными иллюстрациями, разнообразием шрифтов и пр. Часто маленькие сайты, рассказывающие о деятельности компании Г^\ (например, типографии или фотостудии], называют сайтами-визитками, а _ J сайты, рекламирующие товар, услугу или событие, - промо-сайтами. Сайт, посвящённый выставке российской электроники, - это как раз промо-сайт. Большой класс сайтов - это интернет-магазины. К их дизайну предъявляются повышенные требования, так как от того, насколько удобно просматривать товары, формировать заказы и следить за их выполнением, напрямую зависит количество покупателей. Здесь необходимо находить золотую середину между большим объёмом информации и красочным оформлением страниц (рис. 1.3). оо- h.ru - Windows Internet Explorer |ек^ Почт^ ^ Карт^ ^ Но , Слоеар^ Виде^ Ди ^ • О • т • Отложить ' ! Контакты ! Посчитать ммгазЕ] Товарные категории ▼ Телевизоры и видео ► Аудиотехника ► Ноутбуки, планшеты и компьютеры ► Телефоны ► Фото- и видеокамеры ► Бытовая техника ► Акции ▼ Текущие ► Завершенные ► Скоро в продаже ▼ Товары со скидками ▼ Москва Магазины ▼ Вход на сай^ Регистраций Помощь (495) 123-45-67 Распродажи Товар дня Акции Сервис I Поиск товаров Л1 Только в ИЮЛЕ НА ВСЕ ноутеукй^ cKHAicftpgr □ 139 см / 55", Full HD 3D с технологией динамической подсветки Dynamic Edge LED, X-Reality, встроенный Wi-Fi и интернет-телевидение (читать далее... <*» Рис. 1.3. Главная страница интернет-магазина электроники и бытовой техники «Стартех» Своеобразный набор правил, который позволяет превращать обычный текст в гипертекст, называется языком гипертекстовой разметки, по-английски - hypertext markup language, или сокращённо HTML. Его придумал в 1989 году знаменитый британский учёный Тим Бернерс-Ли, после чего до создания глобальной сети оставались считаные месяцы. Тим Бернерс-Ли [род. в 1955) 14 Модуль 1. Создание электронных изданий Однако просто языка HTML было недостаточно: сразу после его изобретения возникла необходимость в программах, которые смогли бы «читать» web-страницы, то есть понимать гипертекст. Такие программы получили название брсаузеров. Первым браузером был Mosaic, разработанный тогда же, когда и гипертекст, в начале 90-х годов XX века; в наши дни наибольшее распространение получили такие браузеры, как Microsoft Internet Explorer, Mozilla Firefox, Opera, Google Chrome и другие (рис. 1.4). О Microsoft Internet Explorer Mozilla Firefox Opera Google Chrome Рис. 1.4. Эмблемы популярных браузеров Браузер Microsoft Internet Explorer входит в состав операционной системы Windows, остальные можно скачать и установить на компьютер бесплатно. а Одно из важных требований, предъявляемых к современным сайтам: они должны отображаться одинаково во всех распространённых браузерах. В противном случае, например, одни посетители увидят подпись к рисунку, а другие - нет, что может вызвать некоторые недоразумения. Это требование называется кроссбраузерностью. Попробуем создать свою собственную web-страницу, пусть не сразу такую же большую, сложную и красочную, как у интернет-магазина. Логика языка HTML достаточно проста. Сначала указывается, какой фрагмент web-страницы мы описываем, например абзац текста, заголовок, иллюстрацию, таблицу. Затем приводится собственно сам этот фрагмент -текст, рисунок, ссылка и пр. А в конце необходимо отметить, что описание фрагмента завершено и можно переходить к следующему фрагменту. Таким образом, элемент html-документа может выглядеть так: <р>Александр Сергеевич Пушкин Здесь буква «р», заключённая в угловые скобки, показывает, что далее последует текст обычного абзаца, а буква «р» со слэшем - что текст абзаца закончен. Web-страница с таким элементом будет отображаться в окне браузера так (рис. 1.5). § 1. Создаём первую web-страницу 15 ® Untitled Document - Windows Internet Explorer I d C:\Samples\page.html «Избранное I Файл Правка Вид _збранное С_рвис Справка Рис. 1.5. Простейшая web-страница Буквы или слова, заключённые в угловые скобки, в том числе

и

, - это своеобразные команды языка HTML; они называются т(эгами. Тег, предшествующий описанию фрагмента web-страницы, называется открывающим, а тег, завершающий это описание, - закрывающим: его сопровождает слэш. В большинстве своём теги являются парными, то есть открывающими и закрывающими, однако встречаются и одиночные теги, например
, отвечающий за вставку пустой строки. Вернёмся к нашей web-странице. Она, как и любой html-документ, помимо тегов, описывающих фрагменты гипертекста, содержит также некоторый объём служебной информации. Во-первых, чтобы браузер мог отличить web-страницу от обычного текстового документа, в самом начале её кода открывается, а в самом конце закрывается тег . Далее всё, что находится внутри этого тега, делится на два больших раздела: head («заголовок») и body («тело») (рис. 1.6). Рис. 1.6. Структура html-документа 16 Модуль 1. Создание электронных изданий В разделе head указывается всё, что не будет отображаться непосредственно в окне браузера: название страницы, ключевые слова, по которым её сможет найти поисковая система (например, Яндекс или Google], кодировка (набор символов], а также некоторые другие данные. Раздел body, напротив, содержит то, что пользователь увидит в браузере, - текст, графику, ссылки. Итак, ниже приведён html-код web-страницы о Пушкине. Единственный непарный тег здесь - ; в нём как раз и устанавливается кириллическая кодировка (windows-1 251): Untitled Document

Александр Сергеевич ПYшкин

Тег отвечает за название web-страницы, которое отображается в заголовке окна браузера. На рис. 1.5 мы видим именно эту фразу -«Untitled Document». Поменяем её, например, так: <title>Страница о Пушкине и заголовок окна браузера станет другим (рис. 1.7). ■g Страница о Пушкине - Windows Internet Explorer ОО А® C:\Samples\page.html 'Избранном Файл _равка Вид Избранное С_рвис Сп_авка Страница о Пушкине Александр Сергеевич Пушкин Рис. 1.7. Web-страница с новым названием § 1. Создаём первую web-страницу 17 На теге раздел head заканчивается; за ним следует раздел body. Пока в нём только один элемент - абзац <р>Александр Сергеевич Пушкин</р> Чтобы продолжить оформление страницы, рассмотрим ещё четыре часто употребляемых тега, как парных, так и одиночных: <h1></h1> - заголовок; <br> - пустая строка; <img src = " ..."> - изображение; внутри кавычек указывается название соответствующего файла; <a href = "..."></a> - ссылка; внутри кавычек указывается адрес, по которому нужно перейти при нажатии на ссылку. • Как вы считаете, почему тег заголовка обозначается именно h1? Для чего нужна в обозначении единица? Бывают ли теги h2, h3 и т.д.? Стоит обратить внимание на то, что даже если в тексте абзаца использовать более одного пробела между словами или намеренно поместить два идущих подряд слова на разных строках кода, это никак не отразится на отображении страницы в браузере. Для переноса текста на новую строку в пределах одного абзаца необходимо использовать упомянутый выше тег <br>, а для добавления второго и последующих пробелов между словами - комбинацию   (от англ. non-breakable space - неразрывный пробел). Так, следующий фрагмент html-кода приведёт к появлению в окне браузера текста, показанного на рис. 1.8. it Александр Сергеевич Пушкин - Windows Internet Explor ) • ' 5# C:\Samples\Пушкин\page.html Избранное Файл Правка Вид Избранное Сервис Справка Александр Сергеевич Пушкин родился в 1799 году, Александр Сергеевич Пушкин родился в 1799 году ^ Ничего не изменилось Александр Сергеевич Пушкин родился в 1799 году Александр Сергеевич Пушкин родился в 1799 году \ Добавились пробелы Часть абзаца перенесена на новую строку Рис. 1.8. Форматирование абзацев • ^100% 18 Модуль 1. Создание электронных изданий <р>Александр Сергеевич Пушкин родился в 1799 году</р> <р>Александр Сергеевич Пушкин родился в 1799 году</p> <p>Александр Сергеевич Пушкин родился         в 1799 году</p> <p>Александр Сергеевич Пушкин <Ьг>родился в 1799 году</p> ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Существует множество разновидностей сайтов. Некоторые из них состоят из нескольких web-страниц (например, сайты-визитки или промосайты), а некоторые - из сотен, тысяч и даже сотен тысяч. В основе любых web-страниц лежит гипертекст, закодированный на языке HTML. Структурными единицами этого языка являются теги. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Создайте новую папку в том месте, где укажет учитель; имя для неё придумайте по своему усмотрению (например, «Моя первая страница»). 2. Откройте папку paragraph_1, скопируйте оба находящихся там файла (robot-small.jpg и robot-big.jpg) в созданную вами папку. 3. Откройте стандартное приложение Блокнот. 4. Создайте заготовку будущего html-документа: Безымянный - Блокнот Файл Правка Формат Вид Справка <html> <head> <meta http-equiv=”Content-Type” content=”text/html; char-set=windows-1251” /> <title> § 1. Создаём первую web-страницу 19 5. Дайте документу название «Роботы» (тег ). С помощью тега <h1> создайте заголовок «Какими бывают роботы»: Безымянный - Блокнот Файл Правка Формат Вид Справка <html> <head> <meta http-equiv=”Content-Type” content=”text/html; char-set=windows-1251” /> <title>роботы<title> </head> <body> <h1>Какими бывают роботы</h1> </body> </html> 6. Далее создайте обычный абзац с текстом. Напишите в нём: «Роботы бывают такими:». Затем вставьте пустую строку, а за ней - картинку с первым роботом (файл robot-small.jpg) с помощью тега <img>: <img src="robot-small.jpg"> После этого завершите абзац (тег </p>). 7. Наконец, создайте новый абзац, а в нём - фразу «Или такими», которая станет гиперссылкой на вторую картинку (файл robot-big.jpg): <а href="robot-big.jpg">Или такими</а> Не забудьте завершить абзац. Должно получиться так: 1 Безымянный - Блокнот Файл Правка Формат Вид Справка <html> <head> <meta http-equiv=”Content-Type” content=”text/html; char-set=windows-1251” /> <title>роботы<title> </head> <body> <h1>Какими бывают роботы</h1> <p>Роботы бывают такими: <br> <img src=”robot-smaN.jpg”> </p> <p><a href=”robot-big.jpg”>или такими</a></p> </body> </html>___________________________________________________________________ 8. Сохраните этот html-документ в созданной вами папке, где уже лежат обе картинки. При этом в поле Тип файла вместо Текстовые документы [*.txt] необходимо выбрать Все файлы, а после имени (оно может быть любым, но обязательно набранным латинскими буквами или цифрами; выберем, например, имя robots) - написать расширение html: 20 Модуль 1. Создание электронных изданий " Сохранить как » Моя первая страница *1^1 Пеии: u4(0iim Упорядочите Новая папка Избранное А Загрузки ..Недавние мест ■ Рабочий стол ; ^ Библиотеки Щ Видео • Документы to Изображения J* Музыка ЦДомашняя группа ;• Компьютер Имя файла: robots.html Тип файла: [Все файлы i robot-small.jpg ^ robot-big.jpg • Скрыть папки Кодировка^ ANSI j Сохранит^ I Отмена""! 9. Посмотрите: в созданной вами папке появился новый html-файл. Откройте его и проверьте, всё ли отображается правильно. Работает ли гиперссылка? После сохранения документа его можно закрыть. При необходимости вы всегда можете продолжить его редактирование. Для этого необходимо выделить файл: с помощью правой кнопки мыши вызвать контекстное меню, выбрать пункт Открыть с помощью и далее - Блокнот. § 2. Создание web-страниц в редакторе Nvu 21 § 2. Создание web-страниц в редакторе Nvu ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Специалист в области web-разработок: Количество тегов языка HTML измеряется сотнями. Некоторые из них определяют тип фрагмента web-страницы (абзац, ссылка, изображение), другие позволяют изменять цвет, размер, начертание и другие параметры текста и т.д. Я знаю почти все теги! Начинающий разработчик: Неужели, чтобы оформлять web-страницы, нужно помнить все эти теги и каждый раз набирать их вручную в Блокноте? Как вы считаете, какие трудности могут возникнуть у разработчика web-страниц, если он будет пользоваться только программой Блокнот? Сформулируйте проблему урока. Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Что такое теги? Какие теги вы уже знаете? (§ 1) Из каких двух блоков состоит html-документ? (§ 1) РЕШЕНИЕ ПРОБЛЕМЫ Конечно же, создавать web-страницы с помощью Блокнота, набирая html-код вручную, не очень эффективно. Существуют программы, которые помогают генерировать теги автоматически, а разработчику остаётся только выбирать, что разместить в той или иной области страницы: заголовок, абзац, картинку, таблицу и пр. Такие программы называются визуальными HTML-редакторами, и к их числу относится бесплатный редактор Nvu. Иногда визуальные редакторы называют также WYSIWYG-редакторами, рЛ от первых букв английской фразы What You See Is What You Get - «Что ты [v J видишь, TO ТЫ и получишь». Произносится эта аббревиатура так: визивиг. WYSIWYG-редакторы позволяют уже на стадии разработки web-страницы видеть, как она будет отображаться в браузере. Создавая страницу в Блокноте, мы этой возможности не имели. Запустив редактор Nvu, мы увидим большую белую область - это наша web-страница, пока пустая. Под этой областью, в самом низу окна имеется панель режимов редактирования, содержащая четыре вкладки (рис. 1.9): 22 Модуль 1. Создание электронных изданий ^ без_имени - Nvu , Файл _равка _ид Вставка Формат ^Таблица _нструменты Справка ' ^ И Ч O' ‘sii — “ Г Создать Открыть Сохранить Опубликовать Просмотр Якорь Ссылка Изображение 1абЯица Формы I (без_имени) 1 с Заголовок 1 v:^J' ® ‘^)а'А*1В/ | Е Ш 3 Д jAi| (нет класса^] Пропорциональный!^ Панель компоновки Панель форматирования Пока пустая web-страница Режимы редактирования web-страницы / ^ ^ ^ Обычны^!§НТМЬ-тег^ЗКо^ Предварительный просмотр Рис. 1.9. Окно редактора Nvu Обычный: отображаются фрагменты web-страницы с подсказками редактора Nvu. HTML-теги: то же, что и Обычный, но рядом с каждым элементом страницы появляется флажок соответствующего тега. Код: отображается непосредственно html-код, как в Блокноте, только с удобным цветовым оформлением тегов. Предварительный просмотр: web-страница отображается так, как она будет выглядеть в браузере. имени - Nvu Файл Правка Вид Вставка Формат Таблица Инструменты Справка ■ , ^ Н И ч -6- 1й - . Создать Открыть Сохранить Опубликовать Просмотр Якорь Ссылка Изображение Таблица Формы Заголовок 1 311 -^|д’А*1в / iiji=iE|5iaB|3is (нет класса^] [Пропорциональный![■=-= С Рис. 1.10. Режим html-тегов § 2. Создание web-страниц в редакторе Nvu 23 Например, если открыть созданную нами ранее страницу о роботах в Nvu и перейти в режим html-тегов, мы увидим то, что изображено на рис. 1.10. • Как вы думаете, в каких случаях удобен каждый из четырёх режимов редактирования? Представьте, что вам попалась уже готовая web-страница, содержащая ошибку в html-коде. Каким режимом редактирования вы бы воспользовались, чтобы обнаружить эту ошибку? Над областью web-страницы расположено ещё несколько панелей, одна из которых - панель компоновки. Именно она позволяет web-разработчику добавлять рисунки, таблицы и гиперссылки, даже если он вообще не знаком с языком HTML и его тегами. Панель форматирования позволяет работать с оформлением текста: менять его цвет, начертание, размер, добавлять отступы и т.п. Язык HTML обладает встроенными средствами оформления текста, однако их ассортимент очень невелик и не совсем удобен. Поэтому уже с конца 90-х годов XX века для этой цели используется преимущественно язык CSS (от англ. Cascading Style Sheets - каскадные таблицы стилей). «Привязать» стиль оформления к тому или иному тегу можно несколькими способами. Один из них - перечислить необходимые характеристики в атрибуте style непосредственно в открывающем теге. Например, если в редакторе Nvu создать абзац <р>Александр Сергеевич Пушкин</р> а затем выделить его и на панели форматирования выбрать полужирное начертание и изменить цвет текста на зелёный, то в режиме Обычный мы увидим непосредственно видоизменённый абзац (рис. 1.11) Поменяли цвет Поменяли начертание д| без_имени - Nvu Файл Правка Вид В_тавка (Формат Таблица _нструменты Справ1 Создать Открыть Сохранить Опубликовать Просмотр ^|Якорь Ссылка Изображение Заголовок 1 A'A^IB / U'|E:E Е111 (нет класса) Пропорциональный (без_имени) I Александр Сергеевич Пушкин Рис. 1.11. Форматирование абзаца в редакторе Nvu 24 Модуль 1. Создание электронных изданий а в html-коде появятся следующие изменения: <р style="color: rgb(0, 153, 0); font-weight: Ьо!Ь;">Александр Сергеевич Пушкин</p> Таким образом, придать нужное оформление любому тегу можно с помощью атрибута style. Схематично это выглядит так: <тег style="характеристика1: значение; характеристи-ка2: значение; характеристика3: значение; ... ">Содер-жимое тега</тег> Со многими характеристиками, которые используются при создании стилей для web-страниц, а также с другими способами привязки стилей к тегам можно познакомиться в § 6-10. Пока же мы не будем углубляться в эти вопросы, довольствуясь тем, что автоматически генерирует панель форматирования Nvu. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для создания web-страниц можно использовать визуальные HTML-редакторы, такие, как Nvu. Они позволяют просматривать как html-код, так и непосредственно внешний вид редактируемой web-страницы. Для оформления элементов web-страниц используются стили, описываемые языком CSS. Стиль можно привязать к конкретному тегу с помощью атрибута style. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Создайте новую папку в том месте, где укажет учитель; название для неё придумайте по своему усмотрению. 2. Откройте папку paragraph_2_3, скопируйте все находящиеся там файлы в созданную вами папку. 3. Откройте файл pushkin.html в редакторе Nvu. 4. Сделайте первую строку («Александр Сергеевич Пушкин») заголовком вместо абзаца. 5. Поменяйте цвет этого заголовка с чёрного на любой другой. 6. Вместо строки «[рисунок юного Пушкина]» вставьте рисунок pushkin-young.jpg. Для этого удалите строку, затем воспользуйтесь кнопкой Изображение на панели компоновки. В появившемся окне в поле Альтернативный текст напишите «Юный Пушкин». Альтернативный текст позволяет пользова- § 2. Создание web-страниц в редакторе Nvu 25 телям получить представление о том, что изображено на рисунке, даже если тот по каким-то причинам не загрузился (например, в случае очень медленного или дорогого соединения с Интернетом, когда в браузере намеренно отключают загрузку изображений). В принципе, вполне можно обойтись и без альтернативного текста. 7. Подпись к этому рисунку («Саша Пушкин в детские годы») оформите или другим цветом, или шрифтом меньшего размера (кнопка на панели форматирования). 8. Проделайте то же самое с гравюрой с изображением Царскосельского лицея: удалите текст в квадратных скобках, вставьте рисунок lyceum-1 .jpg, оформите подрисуночную подпись по своему усмотрению. 9. Последнюю строку («Рисунок Царскосельского лицея, сделанный Пушкиным-лицеистом») сделайте ссылкой на файл lyceum-2.jpg. Для этого выделите её (полностью или частично - например, только слова «Рисунок Царскосельского лицея»), затем воспользуйтесь кнопкой Ссылка на панели компоновки. 10. Сохраните web-страницу. Посмотрите, как она выглядит в различных вкладках панели режимов редактирования. Как изменился код? Появились ли css-стили в качестве атрибутов некоторых тегов? Перейдите из редактора Nvu в созданную вами папку и откройте web-страницу с помощью браузера. Всё ли отображается корректно? ОПЕРАЦИИ Смена формата абзаца 1. Поместить курсор в любую часть абзаца. 2. В самом низу окна Nvu найти строку состояния. Она отображает «путь» к тому тегу, который соответствует местонахождению курсора, начиная с тега <body>. Нажать на тег <p>, абзац выделится. 3. Поменять на панели форматирования пункт Абзац на пункт Заголовок 1. /iMD pQfiN^HN^jHTML-Ter^gKo^ Предварительный просмотр <body> <p> Строка состояния 26 Модуль 1. Создание электронных изданий Александр Сергеевич Пушкин[А!е:/.../ри$Ьк1п.Ь1т!] - Nvu Файл Правка Вид Вставка (Формат Таблица Инструменты Справка ^ И Открыть Сохранить Опубликовать Просмотр Абзац_________ I Обычный текст _J Абзац в|вавдлаздв1 Заголовок 2 Заголовок 3 Заголовок 4 Заголовок 5 Заголовок 6 Адрес Заданный формат Генерируемое содержимое (div) Смиренная, одетая убого, Но видом величавая жена Над школою надзор хранила строго Изменение цвета 1. Выделить нужный фрагмент текста. 2. Выбрать указатель цвета на панели форматирования. ^ Александр Сергеевич Пушкин[fi!e:/.../pushkiп.htm!] - Nvu файл Правка Вид Вставка (формат [Таблица Инструменты Справка ь ♦ » с Ь "f « Создать Открыть Сохранить Опубликовать Просмотр Якорь Ссылка Изображение I Заголовок 1 Гу| j И" I д" Д'’I В / U ||;Е:Е 11 5 3 В [ (нет класса) [▼[| 1 Пропорциональный В1 «йгг! I!! I в Александр Сергеевич Пушкин / I р» I rv го 1 Александр Сергеевич Пушкин | Добавление изображения 1. Нажать кнопку Изображение №об“е„„е на панели компоновки. 2. В появившемся окне нажать кнопку Выбрать файл, указать нужный рисунок, затем добавить альтернативный текст или отказаться от него. § 2. Создание web-страниц в редакторе Nvu 27 Свойства изображения [ддре^ Размер^ Внешний вид | Ссылка ! Адрес изображения: [pushkin-young.jpg Г~1 Относительный URL Всплывающая подсказка: в Альтернативный текст: С) Не использовать альтернативный текст Вы_рать файл... Предварительный просмотр изображения Исходный размер: Ширина: 238 Высота: 300 I Дополнительно.."! [ ОК I [ Отмена j I Справка ] Добавление ссылки р 1. Нажать кнопку Ссылка Ссылка на панели компоновки. 2. В появившемся окне нажать кнопку Выбрать файл, а затем в поле Тип файлов указать Изображения или Все файлы. Далее выбрать требуемый рисунок. 28 Модуль 1. Создание электронных изданий § 3. Оформление web-страницы с помощью таблиц ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Откройте web-страницу об А.С. Пушкине, созданную при изучении § 2. Посмотрите на расположение текста и картинок, оцените количество «пустого места» на странице. • Как вы считаете, можно ли считать подобное размещение данных рациональным? Сформулируйте тему урока в виде вопроса. Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Как создавать новые web-страницы и редактировать существующие в программе Nvu? (§ 2) РЕШЕНИЕ ПРОБЛЕМЫ На нашей web-странице со стихами и картинками действительно очень много свободного места: она неоправданно «вытянута» по вертикали, а справа образуется широкая «белая полоса». Для того чтобы оптимизировать страницу, необходимо научиться располагать элементы не только друг за другом, но и рядом, параллельно: в две-три колонки. Например, страница могла бы выглядеть так, как показано на рис. 1.1 2. На помощь приходят таблицы - очень удобные и простые средства языка HTML. Идея заключается в следующем: необходимо представить web-страницу в виде нескольких таблиц с невидимыми границами так, чтобы каждый блок, будь то фрагмент текста, изображение, пиктограмма и т.д., располагался в какой-либо из ячеек таблицы. Таблица имеет следующий формат: сначала открывается тег <table>, затем тег <tr>, отвечающий за строку таблицы, а затем - тег <td>, отвечающий за ячейку в данной строке. Как только ячейка описана, тег <td> закрывается и открывается заново для описания второй ячейки. После того как все ячейки на текущей строке описаны, закрывается тег <tr>, затем он же открывается вновь для описания следующей строки. Когда описаны все строки, закрывается тег <table> (рис. 1.13). § 3. Оформление web-страницы с помощью таблиц 29 Л Александр Сергеевич Пушкин - Windows Internet Explorer C:\Samples\Пушкин\pushkm.html ^Александр Серге Стихотворение о лицейских годах Александр Сергеевич Пушкин В начале жизни школу помню я, Та^ нас, детей беспечн^гх, было много; Неровная и резвая семья. Смиренная, одетая у^ого, Но видом величавая жена Над ш:колою надзор хранила строго. Тол:пою нашею окружена, Прнятн^гм, сладким голосом, бывало, С младенцами беседует она. Ее чела я помню покрывало И очи светл^1е, как небеса. Но я вникав в ее бесед^1 ма^о. Саша Пуш:кнн в детские годы В 1811 году Пушкин становится одним из первы:х тридцати воспитанников знаменитого Царскосельского Императорского лицея. Спустя годы поэт написав в своем стихотворении “19 октября” следующие строки: Друзья мои,прекрасеннаш соки! Он как душа неразделим и вечен -Неколебим, свободен и беспечен Срастался он под сенью дружн^гх муз. Куда бы нас ни бросила судьбина, И счастие куда б ни повело, Все те же м^1: на^ цел^гй мир чубина; Отечество на^ Царское село. РисунокЦарскосельскоголицея, сделанн^гй Пуш:кин^1м - лицеистом Царскосельский лицей. Гравюра Ж. Мойера Рис. 1.12. Web-страница с более продуманным расположением элементов Рис. 1.13. Структура таблицы в языке HTML Избранное С Стихотворен о школе • ^100% 30 Модуль 1. Создание электронных изданий Напишите html-код следующей таблицы: А Б В Г Д Е Несколько идущих подряд строк можно объединять в блоки; им соответствует тег <tbody>. Это целесообразно делать, если, например, первая половина таблицы имеет одно оформление, а вторая - другое (рис. 1.14). ; разные блоки со строками Рис. 1.14. Структура таблицы с разбиением на блоки Если же оформление всех строк одинаково, то блоки можно и не создавать, однако редактор Nvu по умолчанию всегда создаёт один блок при генерировании новых таблиц. Ширину таблицы можно указывать или в пикселях, или в процентах от размера той области web-страницы, где она расположена. В первом случае ширина таблицы будет фиксированной, во втором - будет зависеть от ширины окна браузера (рис. 1.1 5). 700 пикселей 100% окно браузера окно браузера Рис. 1.15. Способы задания ширины таблицы § 3. Оформление web-страницы с помощью таблиц 31 Ширину столбцов таблицы можно также указывать или в пикселях, или в процентах от ширины всей таблицы. Причём, если ширину не указать вообще, браузер сам назначит её, в зависимости от содержимого ячеек: те ячейки, где много текста или большие изображения, будут широкими, другие -узкими. Можно указать ширину всех столбцов, кроме одного (любого), тогда браузер также самостоятельно вычислит её. Например, если три столбца из четырёх имеют ширину 20%, то четвёртый получит значение 100% - 3 • 20% = = 40% (рис. 1.16). Рис. 1.16. Браузер автоматически рассчитывает недостающую ширину Высоту таблицы обычно не указывают: она складывается из высот отдельных строк. Высота строки, в свою очередь, определяется содержимым (объёмом текста, размером картинок и пр.) или же может быть задана в пикселях. Ячейки таблицы можно объединять, но иногда это приводит к тому, что таблица, особенно большая, начинает «разъезжаться», то есть выверенные значения ширины некоторых ячеек самопроизвольно нарушаются. По возможности лучше избегать объединения ячеек. Итак, представим оптимизированную структуру нашей web-страницы (см. рис. 1.12) в форме таблиц. Сделать это можно разными способами, один из них показан на рис. 1.17. Ширину всей таблицы целесообразно назначить равной 100%. Первый столбец, в котором содержатся только пояснения к стихотворениям, должен быть небольшим - около 15%. Ширина второго столбца определится браузером автоматически (85%), её можно не задавать. В правых ячейках второй и четвёртой строк нужно создать ещё по одной таблице (шириной также 100%), чтобы разместить на одном уровне стихотворения и иллюстрации (рис. 1.18). В этих таблицах для первого столбца можно отвести примерно 35-40% ширины. Стоит также отметить, что задание ширины таблиц с помощью процентов позволяет web-страницам как бы «подстраиваться» под ширину окна браузера: такие страницы часто называют «резиновыми». Их немного сложнее разрабатывать, поскольку внешний вид «резинового» сайта должен быть привлекательным как на маленьких экранах нетбуков, так и на больших ши- 32 Модуль 1. Создание электронных изданий в Александр Сергеевич Пушкин - Windows Internet Explorer , I Э C:\Samples\Пушкин\pushkln.html ^ Александр Сергеевич Пушкин I • Страница Безопасности Сервис* AieKcaH4p Сергеевич Пушкин ПерВаЯ СТрОКа В начале жизни школу помню я, Там нас, детей беспечн^гх, было много; Неровная и резвая семья. Смиренная, одетая у^ого, Но видом величавая жена Над школою надзор хранила строго. Толпою нашею окружена, Приятн^1м, сладким голосом, бы:ва^о, С младенцами беседует она. Ее чела я помню покры:вало И очи светл^1е, как небеса. Но я вникал в ее бесед^1 мало. Вторая строка Саша Пушкин в детские год^1 В 1811 году Пушкин становится одним из первы:х тридцати воспитанников знаменитого Царскосельского Императорского лицея. Спустя годы поэт написал в своем стихотворении “19 октября” следующие строки: Друзья мои, прекрасен наш союз! Он как душа неразделим и вечен -Неколебим, свободен и беспечен Срастайся он под сенью дру^и^гх муз. Куда бы нас ни бросила судьбина, И счастие куда б ни повело, Все те же мы: на^ цел^гй мир чубина; Отечество нам Царское село. РисунокЦарскосельскоголицея, сделанн^гй Пушкин:^1м - лицеистом Царскосельский лицей. Гравюра Ж. Мойер: Первый столбец Второй столбец Рис. 1.17. Разбиение web-страницы на ячейки таблицы [начало] 9 Александр Сергеевич Пушкин - Windows Internet Explor _ 'V C:\Samples\Пушкин\pushkln.html , Избранное Файл Правка Вид Избранное Сервис Справка ^Александр Сергеевич Пушкин • Страница Безопасности Сер Стихотворение о лицейских годах Александр Сергеевич Пушкин В начале жизни школу помню я, Та^ нас, детей беспечн^гх, было много; Неровная и резвая семья. Смиренная, одетая у^ого, Но видом величавая жена Над школою надзор хранила строго. Толпою нашею окружена, Приятн^гм, сладким голосом, бы:вало, С младенцами беседует она. Ее чела я помню покрывало И очи светлые, как небеса. Но я вникав в ее беседы ма^о. Первый столбец В 1811 году Пушкин становится одним из первы:х тридцати воспитанииков знаменитого Царскосельского Императорского лицея. Спустя год^1 поэт написав в своем стихотворении “19 октября” следующие строки: Друзья мои, прекрасен наш союз! Он как душа неразделим и вечен -Неколебим, свободен и беспечен Срастайся он под сенью дру^н^гх муз. Куда бы нас ни бросила судьбина, И счастие куда б ни повело, Все те же мы: нам цел^1й мир чубина; Отечество нам Царское село. РисунокЦарскосельскоголицея. сдeлани^lй Пушкин^гм - лицеистом Первый столбец Царскосельский лицей. Гравюра Ж. Мойера Второй столбец Рис. 1.18. Разбиение web-страницы на ячейки таблицы [продолжение] Стихотворен о школе § 3. Оформление web-страницы с помощью таблиц 33 рокоэкранных мониторах. Но зато всё свободное место используется максимально эффективно. Страницы с фиксированной шириной таблиц разрабатывать легче: они не меняются в зависимости от разрешения экрана, но, как правило, содержат много пустого места. В последнее время всё чаще предпочтение отдаётся «резиновым» страницам. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для более рационального размещения элементов на web-страницах можно использовать таблицы. В зависимости от того, как задаётся ширина таблиц, страницы делятся на два вида: «резиновые» (ширина в процентах) и фиксированные (ширина в пикселях). В «резиновых» страницах свободное место используется эффективнее. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Откройте в редакторе Nvu файл pushkin.html, с которым вы работали на прошлом занятии. 2. Создайте новую web-страницу. Сразу сохраните эту страницу в той же папке, где расположен файл pushkin.html, под новым именем, например pushkin-new.html (в названии допустимы только латинские буквы, цифры и некоторые знаки - дефис, подчёркивание, скобки и др.). При сохранении Nvu предложит ввести заголовок, то есть содержимое тега <title>: Придумайте заголовок и введите его. 3. Создайте на новой web-странице таблицу шириной 100% с четырьмя строками и двумя столбцами в соответствии с рис. 1.17. 4. Двойной щелчок мышью в верхней левой ячейке вызовет окно со свойствами таблицы. Укажите в нём ширину ячейки (15%). Ширина этой верхней ячейки распространится на весь столбец. Теперь перейдите ко второй ячейке первого столбца, последовательно нажимая кнопку Следующая. Установите в ней вертикальное выравнивание содержимого 34 Модуль 1. Создание электронных изданий по верхнему краю. То же самое проделайте с нижней (четвёртой) ячейкой первого столбца. 5. Создайте две пояснительные надписи в левом столбце, оформите их с помощью панели форматирования. Перейдите к странице pushkin.html (вкладка чуть ниже панели форматирования), выделите заголовок «Александр Сергеевич Пушкин», скопируйте его (комбинация клавиш Ctrl+C), вернитесь к новой странице, вставьте заголовок в первую ячейку второго столбца (Ctrl+V). Проделайте то же самое с абзацем «В 1811 году Пушкин становится одним из первых...» - вставьте его в третью ячейку второго столбца. Должно получиться примерно так: айл Правка Вид Вставка сД.,.- о,:::,.с.£Ни,.О I Абзац 6^ П ' С*' и " Тб Н " ' а’а* в| U 11= яаш «•! 31»«м fii лексаН1:1С1:111111||1В11а |(без_име и) 1 Ю55рх 1 Александр Сергеевич Пушкин Стихотворение о школе В 1811 году Пушкин становится одним из первых тридцати воспитанников знаменитого ' ' Царскосельского Императорского лицея. Спустя годы поэт написал в своем стихотворении “19 октября” следующие строки: Стихотворение о лицейских друзьях 6. Создайте две новые таблицы в соответствии с рис. 1.1 8. 7. Установите в каждой из ячеек новых таблиц вертикальное выравнивание по верхнему краю. Перенесите со страницы pushkin.html все оставшиеся данные. 8. Сохраните web-страницу и откройте её в браузере. Оцените результат. 9. Может оказаться полезным изменить расстояние между ячейками таблицы, если фрагменты текста из соседних ячеек будут прилегать друг к другу слишком близко. Орф § 3. Оформление web-страницы с помощью таблиц 35 ОПЕРАЦИИ Создание новой страницы . ▼ Нажать кнопку Создать Создать на панели компоновки. Создание таблицы “ 1. Нажать кнопку Таблица Таблица на панели компоновки. 2. В появившемся окне выбрать вкладку Точная и указать необходимые параметры таблицы. В поле Рамка должно стоять значение 0, иначе у таблицы появятся видимые границы. Вставка таблицы Iwawl |Проста^^Ъчн^^Ячейка|^ 4 Размер— _трок: С;голбцов: 2 Ширина: JQQ |1% от размера окна ополнительно... Создание новой таблицы внутри ячейки существующей таблицы 1. Если курсор уже стоит в ячейке существующей таблицы, то кнопка Таблица на панели компоновки будет вызывать окно свойств непосредственно данной таблицы. Поэтому для создания новой таблицы сначала надо вызвать щелчком правой кнопкой мыши контекстное меню. 2. В контекстном меню выбрать пункт Вставить таблицу, затем - пункт Таблица. Ш’амка: 0 OK Отмена 36 Модуль 1. Создание электронных изданий Изменение ширины столбца 1. Выполнить двойной щелчок мышью внутри любой ячейки. 2. Указать значение ширины. 3. Нажать кнопку Применить. 4. Чтобы перейти к следующей ячейке, нажать кнопку Следующая. Свойства таблицы Цаблиц^^ .• Выделение Ячейки Будут применены текущие изменения Предыдущая ' ^Следующая перед преобразованием выделения Высота: J [пикселов О Ширина: 1^ 1% от размера таблицы Выравнивание содержимого------- С Вертикальное: Посередине Горизонтальное: Влево Q Стиль ячейки: Обычный L-Разбивка текста на строки: Разбить на строки ^ 0 0 (Будет виден фон таблицы) Установите флажки, чтобы определить, какие свойства будут применены ко всем выбранным ячейкам [ Дополнительно^ OK I |^Применит^^ Отмена I Справка j Изменение вертикального выравнивания 1. Выполнить двойной щелчок мышью внутри любой ячейки. 2. Указать значение выравнивания. 3. Нажать кнопку Применить. Свойства таблицы |ТаблицИ Ячейки] Выделение 1~Ячейки ^ It.I Будут применены текущие изменения I «Предыдуща^_»ССледующая] перед преобразованием выделения I Высота: Ширина: пикселов Выравнивание содержимого ij[; Вертикальное: *3 Горизонтальное: Влево С Стиль ячейки: Обычный ^Разбивка текста на строки^Разбить на строки t Цвет фона: □ (Будет виден фон таблицы) Установите флажки, чтобы определить, какие свойства будут применены ко всем выбранным ячейкам Дополнительно OK I ^Применит^^ Отмена j Справка j Размер Цвет фона: Размер пикселов § 3. Оформление web-страницы с помощью таблиц 37 Изменение полей ячеек 1. Вызвать окно со свойствами таблицы - выполнить двойной щелчок мышью внутри любой ячейки. 2. Выбрать вкладку Таблица. 3. Установить нужные значения полей. Свойства таблицы I Таблиц^ ЯчейкИ Строки: 4 С;голбцы: 2 Высота: Ширна: 100 ' % от размера окна |^] % от размера окна Обрамления и поля----- _Рамка^ . 0 Поля: 2 Пол^Я внутри ячейки: 2 пикселов пикселов между ячейками пикселов между рамкой ячейки и ее содержимым Выравнивание таблицы: Влево____Шаголовок: ^ Нет лз Цвет фона: □ (будет виден фон страницы) Дополнительно OK I ["применит^ Отмена J ^Ыправк^ Размер 38 Модуль 1. Создание электронных изданий § 4. Иллюстрирование web-страниц ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Миша: В отличие от печатных изданий, web-страницы не требуют полиграфических затрат: дорогих красок, бумаги и пр. Поэтому чем больше на странице цветных иллюстраций, тем лучше. Ася: Все картинки на сайтах должны быть большими — ведь размеры web-страниц не ограничены; зачем же экономить место? Данила: В принципе, даже текст можно помещать на web-страницы в форме картинок, например! • Согласны ли вы с утверждениями ребят? Что в них вам показалось разумным, а что - не очень? Как бы вы сформулировали основной вопрос урока? Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Что такое разрешение экрана? Какие разрешения имеют современные экраны (у стационарных компьютеров, ноутбуков, нетбуков)? (Учебник для 7-го класса, книга 1, модуль «Создание мультимедийной продукции»; книга 2, модуль «Основы дизайна и печати изображений».) Какие программы позволяют редактировать растровые изображения (в частности, изменять их размер)? (Учебник для 7-го класса, книга 1, модуль «Создание мультимедийной продукции»; книга 2, модуль «Основы дизайна и печати изображений».) Что такое текстура? (Учебник для 7-го класса, книга 1, модуль «Создание мультимедийной продукции».) § 4. Иллюстрирование web-страниц 39 РЕШЕНИЕ ПРОБЛЕМЫ В том, что правильно подобранные цветные иллюстрации украшают web-страницу, сомневаться не приходится. Действительно, посмотрим на любой современный сайт: его дизайн прежде всего запоминается по ярким графическим элементам. Так выглядит главная страница сайта Стенфордского университета (рис. 1.1 9). I^Stanfod University - Windows Internet Explorer . 0,_J. ht,p//www/s,aT7ord/edy/ • V-'' "" ~ ^ Stanfod University ^ • Стозниц^ Безопасности Сеовис. ф. S ГЛ N I OR I) UNIViRStTY GATEWAYS FOR. . . TOP DESTINATIONS UNIVERSITY NEWS EVENT CALENDAR SLIDESHOW Рис. 1.19. Главная страница сайта Стенфордского университета Мы видим множество изображений - больших и маленьких, которые вместе создают целостный графический образ. • Как бы вы описали этот образ? С чем у вас ассоциируется цветовая гамма и оформление сайта в целом? Нравится ли вам его дизайн? Если же в браузере отключить отображение рисунков, страница будет выглядеть по-другому (рис. 1.20). MOER STORIES Medicine Departments (A -Z) 8 15 MORE NEWS AT STANFORD SLIDESHOW 40 Модуль 1. Создание электронных изданий ■ Stanfod University - Windows Internet Exp Tout Contemporary S'- Voices of Calirornia In a mr Stanford experts say. Vistors Neighbors receive S40 million stem cell grant Engineering Humanties & S^en^s Medicine Departments (A -Z) Lu^le Packard Children's AT STANFORD [Read store: At stanford] NCAA championships. Рис. 1.20. Главная страница сайта Стенфордского университета, если отключить отображение рисунков Как видим, она стала абсолютно безликой и неконтрастной. Тем не менее злоупотреблять иллюстрациями тоже не стоит. К иллюстрациям для web-страниц предъявляются определённые требования, среди которых: • не очень большой размер (1 Мб - уже много!); • ограничение по ширине: чтобы картинка и окружающие её элементы web-страницы умещались в окне браузера при разрешении экрана 1024x768 (как у большинства нетбуков). Большие изображения могут долго загружаться, и web-страница будет из-за них «тормозить», особенно если у пользователя не очень быстрое соединение с Интернетом. Согласитесь, ждать загрузки страницы только для того, чтобы увидеть красивый, но не очень информативный рисунок - не лучшее времяпрепровождение; многие посетители такого сайта могут просто не дождаться и уйти с него. Если не выполняется второе требование, в браузере возникает горизонтальная полоса прокрутки и пользователю приходится постоянно перемещаться по странице то вправо, то влево, что очень неудобно (рис. 1.21). populous state. prefer Assessing nuclear activity North Korea appers capable of studyfinds ndependents Labs Research Centers 9 Город - Windows Internet Explorer Л C:\Samples\Город\oity.html - Избранное Файл Правка Вид Избранное Сервис Справка ^ Город Какой чудесный городской пейзаж! § 4. Иллюстрирование web-страниц 41 •Н ||‘ • О • ‘Страниц^ Безопасность Се сверхагломерация или глобальная агломерация, образующая сплошную « сеть расселения •' на поверхности Земли. Часть картинки не уместилась История городов во многом зависит от того, какие характеристики закладываются в понятие «город»: площадь одновременного заселения (обычно от нескольких гектаров), количество жителей (от нескольких сотен), функции территориального центра поселений (властн^1е, культовые, экономические, культурно-технологические), наличие укреплений (но было немало признаваем^гх городов и без укреплений) и т.д. Полоса прокрутки Рис. 1.21. Неудачная web-страница: имеется горизонтальная полоса прокрутки Помещать на иллюстрацию текст стоит в том случае, если он играет декоративный характер - например, является рекламным слоганом, частью логотипа и т.п. Это особенно актуально, когда в тексте необходимо сохранить шрифт (рис. 1.22), поскольку web-страницы поддерживают, как правило, очень небольшое количество стандартных шрифтов. Яндекс Найдётся всё Рис. 1.22. Логотип и слоган поисковой системы «Яндекс», набранные фирменным шрифтом Изображения также можно использовать в качестве фона для web-страниц, таблиц, отдельных ячеек и т.п. Особенно, если эти изображения являются «бесшовными» (англ. seamless). В этом случае между расположенными друг за другом и друг над другом одинаковыми картинками не будет границ: мы увидим один сплошной повторяющийся рисунок-текстуру (рис. 1.23). 42 Модуль 1. Создание электронных изданий Рис. 1.23. «Бесшовное» изображение и текстура на его основе Если элемент web-страницы содержит текст, необходимо подбирать такие текстуры, чтобы его читаемость не ухудшалась. Кроме того, не стоит забывать о такой стороне использования изображений, как авторские права. Если кто-то опубликовал картинку в Интернете, это вовсе не означает, что теперь она стала общественным достоянием. Использовать её для своих целей (например, для оформления web-страниц) можно только с разрешения автора. Тем не менее существует множество крупных интернет-коллекций изображений - как платных, так и бесплатных. Бесплатные изображения распространяются свободно, но при соблюдении некоторых условий (запрет перепродажи, запрет использования в изданиях, нарушающих законодательство, и т.д.). Вот несколько фотобанков бесплатных изображений (фотографий, рисунков, коллажей и пр.): • www.sxc.hu • www.freepixels.com • www.everystockphoto.com С каждым днём все больше авторов (художников, музыкантов, создателей видеороликов и др.) дают согласие на свободное распространение и использование своих произведений. Чтобы это согласие имело законные основания, были разработаны специальные лицензии, получившие название Creative Commons (англ. creative - творческий, commons - дословно «простые люди»). Такие лицензии разрешают частичное копирование, распространение, демонстрирование и исполнение творческих работ при условии обязательного упоминания автора, однако могут накладывать ограничения (только некоммерческое использование, запрет какого-либо видоизменения и т.п.). § 4. Иллюстрирование web-страниц 43 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Изображения - важный элемент оформления web-страниц, однако использовать их нужно в меру. Слишком большие изображения будут долго загружаться, слишком широкие - давать горизонтальную полосу прокрутки. Иногда изображения используются в качестве фона web-страниц и их элементов. Следует обращать внимание на соблюдение авторских прав при использовании изображений для оформления сайта. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Откройте папку paragraph_4_5. Скопируйте находящиеся в ней файлы texture.jpg и logo.jpg в папку со страницами об А.С. Пушкине, созданную ранее. 2. Ещё один файл - Царскосельский_лицей.jpg - это фотография парадной залы Царскосельского лицея. Её необходимо подготовить для публикации на web-странице. Откройте файл в каком-либо графическом редакторе, уменьшите до приемлемых размеров (примерно 500-600 пикселей по ширине) и сохраните в папке со страницами об А.С. Пушкине. Имя файла выберите на своё усмотрение, но не забывайте, что можно использовать только латинские буквы, цифры и некоторые знаки. 3. Откройте в редакторе Nvu созданную на прошлом занятии web-страницу об А.С. Пушкине. Сохраните её в той же папке, но под новым именем. Поменяйте заголовок на «Царскосельский лицей в наши дни». 4. На самой странице поменяйте заголовок «Александр Сергеевич Пушкин» опять же на «Царскосельский лицей в наши дни». Удалите содержимое всех остальных ячеек большой таблицы, в том числе две маленькие таблицы. Удалите четвёртую строку большой таблицы. Должно получиться следующее: ^скиилицеивнашиЯ ‘ - л Правка Вид Вставка О Н 1 Bl#---- В/ j __________________ )(нет класса^ Д ’’Пропорциональный • ! 1' ^ * 1- 1 I ' гг ^ Царскосельский лицей в наши дни . Nvu 44 Модуль 1. Создание электронных изданий 5. В ячейку под заголовком вставьте обработанную ранее фотографию залы, в нижней правой ячейке напишите небольшой текст (2-3 предложения), описывающий то, что находится на фотографии. 6. Поменяйте фон страницы с однородного белого на текстурный. В качестве фонового изображения используйте файл texture.jpg. 7. • Сохраните web-страницу и откройте её в браузере. Появился ли фоновый рисунок? Нет ли горизонтальной полосы прокрутки? Что бы вы предприняли, если бы она всё-таки появилась? ОПЕРАЦИИ Изменение заголовка страницы 1. В главном меню Nvu выбрать пункт Формат, далее - пункт Заголовок и свойства страницы. 2. В появившемся окне изменить заголовок. Удаление строки таблицы 1. Поместить курсор в любую из ячеек данной строки. Слева и сверху появится комбинация из двух стрелок и кружка с крестиком между ними. |®>= § 4. Иллюстрирование web-страниц 45 2. Нажать на кружок с крестиком. Изменение фона web-страницы 1. В главном меню Nvu выбрать пункт Формат, далее - пункт Цвета и фон страницы. 2. В открывшемся окне в разделе Фоновое изображение нажать кнопку Выбрать файл. Цвета и фон страницы Цвета страницы------------------------------------- • Цвета пользователя по умолчанию (не указывать цвета) . Использовать цвета: Обычный текст: Ссылка: Активная ссылка: Просмотренная ссылка: Фон: Фо.новое изображение: Обычный текст Ссылка Активная ссылка Просмотренная ссылка I I Относительный URL Выбрать файл... Дополнительно... DC OK Отмена 46 Модуль 1. Создание электронных изданий § 5. Создание навигации ПОСТАНОВКА ПРОБЛЕМЫ УРОКА У нас есть две полноценные web-страницы: об А.С. Пушкине и с фотографией Царскосельского лицея. Мы можем открыть и просмотреть каждую из них по отдельности, а также можем создать ещё несколько аналогичных страниц. Можно ли считать, что мы создали сайт? • Как вы думаете, чего не хватает этим страницам? Что могло бы связать их в единое целое, помимо тематики и стиля оформления? Сформулируйте проблему урока. Сравните свою формулировку с авторской (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Что такое гиперссылка? Какой тег ей соответствует? (§ 1) РЕШЕНИЕ ПРОБЛЕМЫ Слово «навигация» происходит от латинского navigo - плыву на судне. Это понятие успешно перекочевало в область разработки сайтов буквально с первых дней существования Интернета. Действительно, пользователю необходимо как-то «переплывать» с одной страницы сайта на другую. Таким образом, навигация - это система ссылок, которые позволяют переходить с любой страницы сайта на любую другую. Она и поможет нам окончательно объединить несколько разрозненных web-страниц в целостный сайт. Нередко навигацию также называют меню; к этому элементу сайта предъявляются повышенные требования и с точки зрения дизайна, и с точки зрения удобства использования. Если навигация неудобная, многие посетители просто не найдут некоторых страниц, а значит, и не получат необходимой им информации. Большие сайты имеют достаточно сложную навигацию, состоящую из меню двух-трёх уровней (рис. 1.24). В нашем простом сайте об А.С. Пушкине пока всего две страницы, поэтому ограничимся одним меню, состоящим из двух пунктов. К меню добавим рисунок с эмблемой сайта, которая также будет подчёркивать единство обеих страниц (рис. 1.25). § 5. Создание навигации 47 меню первого уровня еще одно меню ^ Другие возможности Prague Airport - Windows Interner Explor О©- ^ Избранное ^ Яндекс ^Почт^ Q Карт^ ^Мэрке^ I уН Другие возгиожности / "Pr Prague информация о ✓Я Airport РЕйСАХ Homepaqe> Регистрацияпассажиров > Регистрацияпассажиров > Другие возможности регистрации Другие возможности регистрации Аэропорт Прага - это современный воздушный порт, в котором используется ряд самых современных технологий, и вместе с этим здесь создана приятная атмосфера для пассажиров. Здесь предоставляются услуги на высоком уровне. В области реги^рации пассажиров и оформления багажа Аэропорт Прага предоставляет несколько возможностей. Стандартная регистрация Классические стойки регистрации расположены в залах Терминала 1 и Терминала 2. Для регистрации необходимо принеси с собой: авиабилет (бумажный или электронный), ваучер или код бронирования, документ, удостоверяющий лично^ь и визу, если вы направляетесь в страну, где это требуется. Стойки регистрации, как правило, открываются за 2 часа до отправления рейса и закрываются за 30 минут перед отлетом. Аэропорт Прага рекомендует обязательно выяснить точное время открытия ^оек регистрации у конкретной авиакомпании. У ^ойки регистрации вы сдайте свой багаж, предназначенный для оформления к отправке в пункт назначения, после этого вы получите посадочный талон с указанием вашего места в самолете, а также талон для багажа. После этого пройдите на контроль безопасности, при необходимости - паспортный контроль. пногабаритный багаж Об оформлении нестандартного или крупногабаритного багажа, например, солнечных зонтов, колясок, инвалидных кресел, велосипедов, лыж, досок для серфинга, но также и коробок необходимо договориться с работником, который занимается вами уЛтойки реги^рации. Этот багаж будет отправляться от специальной стойки, которая обозначена надписью «NADROZmER'A.ZAVAZADLA» (крупногабаритный багаж). меню третьего уровня меню второго уровня Рис. 1.24. Одна из страниц сайта пражского аэропорта: перед посетителем несколько разных меню Александр Сергеевич Пушкин Царскосельский Лицей в наши дни /а.спушкин V I и Царскосельский f I лицей / Рис. 1.25. Меню сайта об А.С. Пушкине ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Система ссылок, позволяющих перемещаться между web-страницами одного сайта, называется навигацией. В сложных сайтах имеется несколько уровней навигации. • 100% • 48 Модуль 1. Создание электронных изданий ПРИМЕНЕНИЕ ЗНАНИИ 1. Откройте в редакторе Nvu страницу с фотографией Царскосельского лицея. Вставьте над тремя существующими строками таблицы ещё одну новую. 2. В правой ячейке только что добавленной строки создайте новую таблицу шириной от 80 до 100% (на ваше усмотрение), состоящую из трёх столбцов и одной строки. В первой ячейке этой таблицы напишите «Александр Сергеевич Пушкин» и сделайте эту надпись ссылкой на нашу страницу об А.С. Пушкине со стихами и иллюстрациями. Во второй ячейке напишите «Царскосельский лицей в наши дни» - название текущей страницы. Эту надпись ссылкой делать не надо (страница не должна ссылаться сама на себя), но её можно выделить другим цветом или начертанием. В третью ячейку вставьте рисунок logo.jpg (его вы скопировали в папку на прошлом занятии). ^Царскосельский лицей в наши дни[А1е:/-/рй~5Ик1п4.ИГт1] Nvu '_айл Правка Вид Вставка '_ормат Хаблица Инст,рументы Спр^ Опубликовать Просмотр Щщ ^ д'А‘ В / g>=iibHF,aa ^неткласса^ Пропорциональный [*| ^____I *Т »-Д Y ^ Создать Открыть Сохра! ] Заголовок 1 Таблица Формы Орфография Александр Сергеевич Пушкин Г Александр Сергеевич Пушкин Царскосельский лицей в наши дни ji А. С. ПУШКИН и Царскосельский 1 ... 1 Царскосельский лиц( ^й в наши дни 3. Сохраните страницу «Царскосельский лицей в наши дни». Затем скопируйте целиком только что созданную верхнюю строку большой таблицы. 4. Откройте страницу «Александр Сергеевич Пушкин», опять добавьте в самый верх большой таблицы пустую строку, выделите её и вставьте (Ctrl+V) только что скопированную строку с готовым меню. В нём необходимо надпись «Царскосельский лицей в наши дни» сделать ссылкой на соответствующую страницу, а с надписи «Александр Сергеевич Пушкин» ссылку убрать (с помощью кнопки Ссылка на панели компоновки) и придать надписи необходимое оформление. В завершение сохраните страницу. 5. Теперь у нас есть две взаимосвязанные страницы, то есть небольшой двухстраничный сайт. Откройте любую из страниц в браузере и проверьте, работает ли навигация. § 5. Создание навигации 49 ОПЕРАЦИИ Вставка строки таблицы 1. Поместить курсор в любую из ячеек верхней строки таблицы. 2. Щелчком правой кнопки мыши вызвать контекстное меню. 3. Выбрать пункт Вставить таблицу, далее - пункт Строка сверху. Копирование строки таблицы 1. Щёлкнуть в крайнем левом поле строки, где указана высота строки. 2. Воспользоваться комбинацией клавиш Ctrl+C. ^Царскосельский лицей в наши дни[А1е:/-/ри_5Ик1п4.ИГт1] Nvu 'Файл _равка _ид В_тавка 'Формат _аб^ица Инструменты _правк • И в Создать Открыть Сохранить Опубликов > Просмотр Якорь Ссылка Изображение Таблица Формы Орфография Печат Заголовок 1 иД=:='Е*аШ|-50 ^^^(нет^к^эооа^^^^^*|^^^^Пропорциональ „ый Ell» I :: =1||*»|и|ч||тг1 ^ (нет класса) ;андр Сергеевич Пушки У Царскосельский лицей в н^ Нажать сюда Александр Сергеевич Пушкин Царскосельский лицей в наши дни А. С. ПУШКИН и Царскосельский лицей Царскосельский лицей в наши дни 50 Проверь себя Задание 1 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку test_1. Скопируйте из неё все файлы в созданную вами папку. 3. Откройте файл test.html с помощью браузера. Перед вами пустое окно, хотя внутри файла есть html-код. Вероятно, этот код содержит ошибки. Откройте файл с помощью программы Блокнот и исправьте ошибки. Закройте файл. 4. Снова откройте файл в браузере и убедитесь, что страница отображается верно. 5. Покажите учителю и исправленный код, и то, как страница отображается в браузере. Задание 2 1. С помощью редактора Nvu приведите исправленную вами в задании 1 web-страницу к виду, который показан на рисунке: ■ Молекулы - Windows Internet Explorer ■■ Irf C:\Documents\Модуль1\page.html ■l-rl-lk- ■ Молекулы • • • Стр. Что такое молекула? Молекула - мельчайшая частица какого-либо вещества (например, воды), сохраняющая все его свойства. Молекулы очень маленькие: в о^ой капле во^ содержится примерно столько же молекул, сколько песчинок во всех пустынях на Земле! А вот так выглядит молекула воды 2. По завершении работы покажите учителю страницу в редакторе Nvu и то, как она отображается в браузере. бранное С Готово % 100% 51 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 1. Напишите фрагменты html-кода, которые отвечают за: • описание абзаца «Тихий океан является самым большим в мире!» • добавление изображения ocean.jpg • придание словам «Тихий океан» функции ссылки на файл pacific.doc. 2. Покажите ваши записи учителю. Задание 2 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку task_1. Скопируйте из неё файлы ocean.jpg и pacific.doc в созданную вами папку. 3. Создайте в Блокноте или в редакторе Nvu (на ваш выбор) html-документ, в котором будут присутствовать фрагменты html-кода из задания 1. Сохраните web-страницу в той же папке, что и файлы к ней. 4. Покажите учителю код и то, как web-страница отображается в браузере. Задание 3 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку task_2. В ней вы найдёте файл Агрегатные состояния. doc с текстом и несколько изображений. Ваша задача - разработать на основе этого текста и картинок иллюстрированную web-страницу. Скопируйте все картинки и doc-файл в созданную вами папку. В этой же папке должна размещаться будущая web-страница. 3. Некоторые картинки используйте непосредственно между абзацами текста, на некоторые давайте из текста гиперссылки. Не забудьте, что картинки для web-страниц необходимо уменьшить до приемлемого размера. 4. Пользуйтесь разными типами заголовков. Например, для общего названия страницы («Агрегатные состояния вещества») используйте Заголовок 1 (можно выбрать на панели форматирования), а для разделов, посвящённых каждому из агрегатных состояний, - Заголовок 2. 5. Попробуйте разместить какие-нибудь две картинки не друг под другом, а рядом, например так: картинка 1 картинка 2 Описание Описание Это можно сделать с помощью таблицы из двух столбцов и двух строк. 52 ПРИМЕНЕНИЕ ЗНАНИЙ [повышенный уровень) 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку task_2. В ней вы найдёте файл Агрегатные состояния. doc с текстом и несколько изображений. Ваша задача - разработать на основе этого текста и картинок иллюстрированный сайт, состоящий из трёх web-страниц: по одной на каждое агрегатное состояние. Скопируйте все картинки и doc-файл в созданную вами папку. В этой же папке должны размещаться будущие web-страницы. 3. Некоторые картинки используйте непосредственно между абзацами текста, на некоторые давайте из текста гиперссылки. Не забудьте, что картинки для web-страниц необходимо уменьшить до приемлемого размера. 4. Попробуйте разместить какие-нибудь две картинки не друг под другом, а рядом, например так: картинка 1 картинка 2 Описание Описание Это можно сделать с помощью таблицы из двух столбцов и двух строк. 5. Будет отлично, если вы нарисуете в каком-либо графическом редакторе эмблему для вашего сайта и разместите её на каждой из трёх страниц. ПРИМЕНЕНИЕ ЗНАНИЙ [максимальный уровень) 1. Ваша задача - создать небольшой (3-5 страниц) сайт на любую интересную вам тему. Это может быть сайт о вас самих (увлечения, любимые фильмы и ваше мнение о них, ваши фотографии и т.д.), вашей семье, вашем питомце; о технике, животных или растениях, о любимой музыкальной группе и т.п. Продумайте его содержание. 2. Создайте новую папку в том месте, где укажет учитель. В ней должны размещаться все web-страницы и изображения для вашего сайта. 3. Обязательно проиллюстрируйте сайт. Если вы используете изображение, созданное не вами лично, не забывайте о вопросах авторского права. 4. Для оформления web-страниц пользуйтесь разными типами заголовков. Например, для общего названия страницы используйте Заголовок 1 (можно выбрать на панели форматирования), а для более мелких разделов - Заголовок 2. Экспериментируйте с цветами и шрифтами. 53 Итоговая проверочная работа Задание 1 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку test_2, скопируйте из неё все файлы в созданную вами папку. 3. Откройте файл oil.html с помощью браузера. Перед вами пустое окно, хотя внутри файла есть html-код. Вероятно, этот код содержит ошибки. Откройте файл с помощью Блокнота и исправьте ошибки. Закройте файл. 4. Снова откройте файл в браузере и убедитесь, что страница отображается верно. 5. Покажите учителю и исправленный код, и то, как страница отображается в браузере. Задание 2 1. С помощью редактора Nvu приведите исправленную вами в задании 1 web-страницу к виду, который показан на рисунке: Нефть - Windows Internet Explor ,1 \lest_2\oil.html 'id Нефть •1*» а • С • - -Стр, * Безопасности Сер Несколько слов о нефти В настоящее время в России насчитывается двадцать семь нефтеперерабатывающих заводов. Каждый из них - как огромный, сложный механизм: стоит нарушить какой-то параметр, и вся система начнет работать неисправно. Нефть и нефтепродукты - основные загрязнители почвы и гидросферы. При аварии танкеров они тонким слоем покрывают акваторию водоема, вызывая крупную экологическую катастрофу. 2. По завершении работы покажите учителю страницу в редакторе Nvu и то, как она отображается в браузере. Бранное С Готово 00% Задание 3 1. Создайте web-страницу, которая будет отображаться бы в браузере приблизительно так: Windows Internet Explor Избранное Файл Правка Вид Избранное Сервис Справг • Страниц^ Безопасности Сервис • •* положить подарки надеть шпиль повесить шарики Необходимые изображения найдите в папке test_3. & 100% § 6. Структура CSS. Встроенные и внешние стили 55 § 6. Структура CSS. Встроенные и внешние стили ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Оформление элементов web-страниц с помощью всевозможных стилей - вещь, безусловно, полезная. Но, допустим, на одной web-странице огромное множество элементов (пять таблиц по 10 ячеек в каждой, двенадцать абзацев, три разных заголовка, два меню и пр.), а всего таких web-страниц на сайте — около шестидесяти. Вероятно, придётся создавать тысячи разных стилей! Ведь, создавая и оформляя ранее web-страницы с помощью редактора Nvu, мы так и поступали — за счёт атрибутов style html-код значительно увеличивался. • Как вы считаете, можно ли избежать загромождения html-кода однотипными стилями? Какое решение этой проблемы кажется очевидным? Встречались ли вам подобные вопросы, когда речь шла о работе с печатными изданиями? Сформулируйте проблему урока. Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Что такое тег? (§ 1) Какие теги встречаются в любом html-документе? (§ 1) РЕШЕНИЕ ПРОБЛЕМЫ Оформить тот или иной элемент web-страницы с помощью css-стилей можно несколькими способами. Основных способов - три. Первый нам уже знаком: мы перечисляли необходимые характеристики стиля (цвет шрифта, начертание, отступы и пр.) в атрибуте style внутри конкретного тега. Это выглядело так: <тег style="характеристика1: значение; характеристика?: значение; характеристика?: значение; ... ">Содержимое тега</тег> Данный способ привязки стилей к тегам уместен в том случае, если стиль встречается крайне редко и на единичных web-страницах. Например, если посреди какой-то страницы один-единственный раз возникает необходимость создания большого красочного заголовка, который не встретится больше ни на одной другой странице. 56 Модуль 1. Создание электронных изданий Второй способ годится тогда, когда стиль повторяется несколько раз, но только в пределах одной страницы (рис. 1.26). 1-2 июня 2011года Уважаемые коллеги! Приглашаем принять участие в работе международной научно-практической конференции «Современные подходы к решению проблем утилизации резинотехнических изделий и шин которая состоится 1-2 июня 2011 г. в Российском государственном институте нефти и газа имени И. М. Губкина в аудитории 444. Конференция производится по инициативе: Министерства природных ресурсов и экологии Российской Федерации , Центра международного промышленного сотрудничества ЮНИДО в Российской Федерации, !)» Ф Российского государственного университета нефти и газа им. И. М. Губкина, Программа конференции предусматрива Ассоциации содействия восстановлению и переработке шин «Шиноэкология» , Автономной некоммерческой организации «Международный центр наилучших природоохранных технологий». 1я по следующим направлен • экологические и правовые аспекты управления отходами резинотехнических изделий и шин; • прблемы утилизации резинотехнических изделий и шин; • современные технологии и научные исследования в области утилизации резинотехнических изделий и ш • новые технологии изготовления изделий из продуктов переработки резинотехнических изделий и шин. Рис. 1.26. Промо-страница экологической конференции Легко заметить, что на странице имеется шесть одинаковых блоков «картинка - текст», оформленных одинаково: сверху изображение, затем маленький отступ, затем однотипный текст. Повторять одинаковое оформление в атрибуте style каждого тега шесть раз подряд было бы крайне нецелесообразно, поэтому в данном случае стили можно описать один раз в самом начале html-документа - в разделе <head>. Это делается с помощью подраздела <style>: <head> <style type="text/css"> body { характеристика!: значение; характеристика!: значение; характеристика!: значение; ... } p { характеристика!: значение; характеристика!: значение; характеристика!: значение; ... } Фонда «Национальный центр чистого производства ЮНИДО в Российской Федерации Готово § 6. Структура CSS. Встроенные и внешние стили 57 . stylel { характеристика1: значение; характеристика2: значение; характеристикаЗ: значение; ... } . style2 { характеристика!: значение; характеристика2: значение; характеристикаЗ: значение; ...} </style> </head> Обратим внимание на правила описания стилей. Во-первых, CSS позволяет описывать как стандартные теги html (<body>, <p>, <h1>, <table> и пр.), так и произвольные, придуманные нами стили. В случае стандартных тегов оформление распространяется на все соответствующие им фрагменты страницы: стиль body будет отвечать за оформление страницы в целом, стиль p - за оформление всех абзацев, h1 - всех заголовков и т.п. Придуманные нами стили мы можем применять к тем элементам страницы, к которым сочтём нужным. Разница в оформлении стандартных и произвольных стилей - в наличии точки перед названием: она есть только у произвольных. Во-вторых, конечно же, названия стилей должны содержать только латинские буквы или цифры; пробелы в таких названиях не допускаются. Если необходимо составить название из двух слов, между ними можно поставить дефис или знак подчёркивания, например . left_table. В-третьих, все характеристики стилей перечисляются в фигурных скобках. В-четвёртых, каждая характеристика отделяется от своего значения двоеточием, а между характеристиками ставится точка с запятой. Произвольные стили привязываются к любым тегам web-страницы с помощью атрибута class, например: <td class="style1">...</td> Заметим, что здесь точка перед названием стиля уже не нужна. • Представьте ситуацию: имеется web-страница, состоящая из десяти абзацев. Первые восемь, а также десятый абзац оформлены одинаково, а вот девятый необходимо выделить: оставить прежними все характеристики (отступы, интервалы, гарнитуру шрифта), но 58 Модуль 1. Создание электронных изданий поменять цвет и размер текста. Как бы вы предложили поступить с описанием стилей для этих десяти абзацев? Итак, мы перечислили два типа стилей: • указываемые в атрибуте style непосредственно внутри конкретного тега; • описываемые в подразделе <style>, а затем привязываемые к тегам с помощью атрибута class. Такие стили называются встроенными, поскольку они действительно встроены в web-страницу и применяются только к её элементам. Но обычно сайты содержат множество одинаково оформленных страниц, а тиражировать одинаковые встроенные стили, естественно, смысла не имеет. К тому же при необходимости изменить какую-либо характеристику оформления, например цвет шрифта в стиле .style5, пришлось бы открывать каждую из страниц, находить этот стиль и редактировать его. А если страниц больше сотни? На помощь приходят внешние стили, то есть стили, описываемые в отдельном css-файле, который затем ставится в соответствие тем или иным web-страницам. Файл имеет расширение css, его название может содержать латинские буквы и цифры. Его содержимое в точности повторяет содержимое подраздела style: идёт последовательное перечисление стилей - стандартных и произвольных. Чтобы поставить css-файл (например, styles.css) в соответствие html-файлу, необходимо в раздел <head> добавить следующий тег: <link rel="stylesheet" type="text/css" href="styles.css"> После этого все созданные в файле styles.css стили можно применять к любым фрагментам страницы. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Существуют встроенные и внешние css-стили. Внешние стили указываются в одном или нескольких css-файлах, которые ставятся в соответствие web-страницам, имеющим однотипное оформление. Встроенные стили имеет смысл использовать на тех страницах, оформление которых отличается от большинства однотипных страниц. Язык CSS позволяет описывать как стили стандартных html-тегов, так и произвольные стили, которые впоследствии можно привязать к любым тегам. § 6. Структура CSS. Встроенные и внешние стили 59 ПРИМЕНЕНИЕ ЗНАНИЙ 1. Создайте новую папку в том месте, где укажет учитель; название для неё придумайте по своему усмотрению. 2. Откройте папку paragraph_6, скопируйте находящиеся там файлы в созданную вами папку. 3. Откройте файл robots.html в браузере. Вы создавали такой файл в самом начале вашего знакомства с языком html. 4. Откройте файл robots.html в редакторе Nvu, перейдите в режим редактирования Код. 5. Создайте в разделе <head> подраздел <style>: <style type="text/css"> body { background-color: rgb(200, 220, 240);} h1 { color: rgb(220, 30, 30);} .robot1 { margin: 100px;} </style> 6. Привяжите стиль .robot1 к тегу <img src="robot-small. jpg"> с помощью атрибута class. 60 Модуль 1. Создание электронных изданий 7. Сохраните файл. Перейдите в браузер, в котором по-прежнему открыта web-страница; чтобы обновить её, нажмите на клавиатуре клавишу F5. Посмотрите на изменения. Мы использовали три характеристики: • для стиля body - background-color, отвечающую за цвет фона; • для стиля h1 - color, отвечающую за цвет шрифта; • для стиля . robotl - margin, отвечающую за отступы. 8. Откройте программу Блокнот, скопируйте из Nvu описание всех трёх стилей, вставьте его в окно Блокнота. Незначительно измените на ваше усмотрение значения одной или нескольких характеристик. Например, в характеристике background-color: rgb(200, 220, 240); вместо значения 200 используйте 100. 3Безымянный - Блокнот Файл Правка Формат Вид Справка body { background-color : rgb(200, 220, 240); } h1 { color : rgb(220, 30, 30); } .robot1 { margin: 100px; } 4 • § 6. Структура CSS. Встроенные и внешние стили 61 9. После внесения изменений сохраните файл под именем robots.css. ~ШЯ: Сохранить как ^ Моя первая страница - CSS ^ [ Поиск; installers ~ Р1 Упорядочите Новая папка Избранное щ Загрузки ^ Недавние мес ■ Рабочий стол д Библиотеки Ш Видео 131 Документы В Изображения ^ Музыка п ^ robots.html В robot-big.jpg 1Д robot-small.jpg Имя файла: robots.css * Тип файла: [Все файлы Н Скрыть папки Кодировкам ANSI Сохранить 10. Вернитесь в Nvu, удалите весь подраздел <style>, вместо него опять же в разделе <head> добавьте строку, ставящую файл robots.css в соответствие html-файлу: <link rel="stylesheet" type="text/css" href="robots.css"> 11. Сохраните html-файл, перейдите в браузер и вновь обновите страницу клавишей F5. Оцените результат. Отмена 62 Модуль 1. Создание электронных изданий § 7. Основные характеристики, описываемые в CSS ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Посмотрите на эскиз простой web-страницы. • Как вы считаете, что необходимо, чтобы описать средствами CSS такую композицию? Как бы вы сформулировали основной вопрос урока? Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ В чём состоят основные правила описания css-стилей? (§ 6) Как привязывать стили к html-тегам? (§ 6) РЕШЕНИЕ ПРОБЛЕМЫ Web-дизайнеры придумывают то, как на web-странице будут располагаться всевозможные элементы (логотип фирмы, главное меню, блок новостей, картинка с рекламной акцией и пр.), перебирают десятки иллюстраций, чтобы в итоге выбрать одну-две, пробуют разнообразные сочетания цветов и шрифтов и т.д. Хороший дизайн создаётся неделями, постоянно дополняется, переделывается, оптимизируется, чтобы в итоге получилось именно то, что нужно: простой, удобный и красивый сайт. Такой, по которому хочется «погулять», понажимать на разные ссылки, почитать интересные заметки, порас-сматривать качественные и тщательно подобранные фотографии. С помощью CSS можно оформить любую страницу, придав ей вид, максимально приближенный к тому, который был на эскизе, «нарисованном» web-дизайнером. Чем больше на странице элементов, тем больше будет стилей. В примере, приведённом в начале параграфа, только два элемента - над- § 7. Основные характеристики, описываемые в CSS 63 пись «Web-страница» и изображение глобуса. Глобус немного «заползает» на надпись своим правым нижним углом: это возможно благодаря тому, что изображение является фоном web-страницы, а не отдельным тегом <img>. Поэтому стиль, описывающий эту композицию, должен содержать: • характеристики надписи (цвет, гарнитуру, начертание и размер шрифта); • характеристики отступов сверху и слева от границ окна браузера; • указание на фоновый рисунок и его характеристики (отступы, позиционирование, повторяемость и пр.). Рассмотрим эти характеристики более подробно. Прежде всего, поговорим о единицах измерения. В CSS принято несколько видов единиц, среди которых наиболее употребляемы: • пиксели, px; их целесообразно использовать для задания величин отступов внутри ячеек или толщины каких-либо границ; • относительные единицы, em; с их помощью удобно задавать размер текста web-страницы. Размер шрифта, используемый браузером по умолчанию, всегда равен 1 em. Значения, указанные в em, могут быть дробными, например 1.3 5em; • проценты, %; их, наравне с em, можно использовать для задания размера текста (в том числе заголовков, пунктов меню, подрисуночных подписей и пр.), а также для установки междустрочных интервалов, ширины таблиц, ширины отдельных ячеек таблиц и т.п. Цвета в CSS можно задавать в формате шестнадцатеричного кода, перед которым стоит символ #, например: #ee1515 -#a3d007 -#ffffff -#000000 - красный; кислотно-зеленый; белый черный. Другой вариант указания цвета - по шкале RGB; наполнение каждого из каналов (R - red, красный; G - green, зеленый; B - blue, синий) может составлять от 0 до 255 единиц. В этом случае формат будет следующим: rgb(255, 110, 0) - оранжевый. Достаточно удобным представляется подбор цветов в каком-либо графическом редакторе, например Adobe Photoshop, а затем перенос соответствующих шестнадцатеричных кодов или rgb-значений в css-файл. • Перечислите по два-три преимущества и недостатка каждого из двух форматов указания цветов. 64 Модуль 1. Создание электронных изданий В следующей таблице приведены основные css-характеристики, которые могут понадобиться при создании стилей для web-проекта. Характеристики, описываемые в CSS Характеристика Примеры использования I. Оформление текста Гарнитура шрифта, font-family font-family: Georgia,Times New Roman font-family: Arial,Helvetica,sans-serif Гарнитуры указываются через запятую; если на компьютере посетителя web-страницы не установлена первая (предпочтительная) гарнитура, то браузер использует вместо неё вторую, а не какую-либо произвольную Размер шрифта, font-size font-size: 0.8em font-size: 120% Наклон шрифта, font-style font-style: italic (курсив) font-style: normal (прямое начертание) Начертание шрифта, font-weight font-weight: bold (полужирное начертание) font-weight: normal (нормальное начертание) Подчёркивание текста, text-decoration text-decoration: underline (подчёркнуто) text-decoration: none (без подчёркивания) Цвет текста, color color: #276dc5 color: rgb(0, 170, 0) Междустрочный интервал, line-height line-height: 150% Выравнивание по горизонтали, text-align text-align: left Встречаются значения left - по левому краю, center - по центру, right - по правому краю II. Размеры, отступы и границы Ширина, width width: 100% width: 200px Высота, height height: 400px § 7. Основные характеристики, описываемые в CSS 65 Характеристика Примеры использования Отступ изнутри (рис. 1.27], padding padding: 3 0px (отступ со всех сторон по 30 пикселей) padding-top: 5px (отступ сверху 5 пикселей) Отступы можно устанавливать одинаковыми для всех сторон или для каждой стороны по отдельности: top - верхняя, bottom -нижняя, left - левая, right - правая Отступ снаружи (см. рис. 1.27], margin margin: 20px margin-left: 10px Вертикальное выравнивание внутри ячеек таблиц, vertical-align vertical-align: top Встречаются значения top - по верху, middle - по центру, bottom - по низу Г раница, border border: solid 1px #ac9d7f Первый параметр - характер линии: solid -сплошная, dotted - пунктир; второй параметр -толщина линии; третий параметр - её цвет border-right: solid 4px #000000 Можно устанавливать границы с каждой из сторон по отдельности III. Заливка фона Цвет фона, background-color background-color: #969696 Фоновый рисунок, background-image background-image: url(graphics/ drops.jpg) В скобках после префикса url указывается место расположения рисунка в системе папок web-проекта Позиция фонового рисунка, background-position background-position: top left background-position: 0px 200px background-position: 10% 30% Если позиция указывается в пикселях или процентах, то сначала даётся горизонтальная координата, а затем - вертикальная Повторяемость фонового рисунка, background-repeat background-repeat: repeat-x Возможные варианты: repeat-x -повторение по горизонтали, repeat-y -повторение по вертикали, repeat -повторение в обоих направлениях, norepeat - без повторения 66 Модуль 1. Создание электронных изданий Рис. 1.27. Характеристики margin и padding ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ В CSS описывается множество характеристик, которые отвечают за три больших блока: • оформление текста; • размеры, отступы и границы; • заливка фона. В качестве геометрических единиц измерения могут использоваться пиксели, проценты или em. Цвета принято задавать либо в шестнадцатеричном коде, либо в сочетании каналов RGB. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Создайте новую папку в том месте, где укажет учитель; название для неё придумайте по своему усмотрению. 2. Откройте папку paragraph_7, скопируйте находящийся там рисунок в созданную вами папку. 3. Откройте редактор Nvu, создайте в нём таблицу из одного столбца и одной строки, в единственной ячейке введите надпись «Web-страница». Сохраните этот html-файл в той же папке, куда ранее скопировали рисунок. Заглавие для него придумайте сами. 4. Перейдите в режим редактирования Код. При добавлении таблиц Nvu автоматически формирует для них стиль (атрибут style в теге table) с указанием характеристик text-align и width. Удалите этот атрибут. В дальнейшем, чтобы не совершать это действие, можно отключить автоматическое формирование стилей в окне добавления таблиц. 5. Создайте подраздел <style> в разделе <head>, опишите три стиля: body { font-family: Arial,Helvetica,sans-serif; margin:0; § 7. Основные характеристики, описываемые в CSS 67 .stylel { } margin-top: 50px; margin-left: 60px; background-image: url(globe.jpg); background-position: left top; background-repeat: no-repeat; text-align: left; height: 200px; .style2 { color: rgb(255,0,0); font-weight: bold; font-style: italic; font-size: 1.8em; padding-top: 85px; padding-left: 115px; Стиль body автоматически распространится на всю страницу, стиль style1 привяжите к таблице, а стиль style2 - непосредственно к ячейке. Привязку можно осуществлять не только в режиме Код, но и в режиме Обычный. 6. Сохраните html-документ, просмотрите его в браузере. 7. Попробуйте поменять следующие параметры: • уменьшить высоту таблицы с 200 до 100 пикселей; • изменить повторяемость фонового рисунка на repeat-x; • изменить гарнитуру шрифта на Courier New. 8. Сохраните файл, оцените произошедшие изменения. } 68 Модуль 1. Создание электронных изданий ОПЕРАЦИИ Отключение автоматического формирования стилей при добавлении таблиц 1. Нажать кнопку Таблица Таблица на панели компоновки. 2. В появившемся окне нажать кнопку Дополнительно. 3. В окне редактора дополнительных свойств перейти на вкладку Стилевое оформление, выбрать и удалить поочерёдно обе характеристики. ----------------- Вставка таблицы Проста^ Точная Ячейка| 1х1 Дополнительно... Редактор дополнительных свойств Текущие атрибуты для: <TABlE> Свойство Значение 1 text-align left 1 width l100px 'N 1 Выделить \ Щелкните по объекту вверху, чтоб изменить его значений Удалить || Свойство: Значение: text-align left 1 OK Отмена I Справка] § 7. Основные характеристики, описываемые в CSS 69 Привязка стилей к тегам в режиме редактирования Обычный 1. Поставить курсор в нужную ячейку таблицы. 2. Найти в строке состояния нужный тег (например, <td>, если необходимо привязать стиль к ячейке). 3. Щелчком правой кнопкой мыши на выделенном теге вызвать контекстное меню. 4. В нём выбрать пункт Классы, затем необходимый стиль. Обычный Ш HTML-теги Ж <body> <table> <tbody> <tr> Выбрать .Удалить тег Изменить тег Inline итили ► Шаблоны ID > Классы ^Дополнительные свойства V style2 stylel <tc 70 Модуль 1. Создание электронных изданий § 8. Вёрстка web-страниц ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Оля: Создание эскиза будущей web-страницы, то есть картинки с приблизительным изображением того, как она будет выглядеть в браузере, — достаточно долгая и кропотливая работа. Егор: Да, согласен! Наверняка легче сразу создавать html-документ, попутно оформляя его средствами CSS! И результат виден сразу, и время сэкономим! Стас: А я не поленюсь и создам пару эскизов. Лучше потратить чуть-чуть больше времени сначала, чем потом всё переделывать. Чью точку зрения вы разделяете: Егора и Оли или Стаса? Что имеет в виду Стас, говоря, что, возможно, придётся всё переделывать? Сформулируйте проблему урока. Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Как разбивать web-страницу на блоки с помощью таблиц? (§ 3) Как поставить в соответствие html-документу файл с внешними css-стилями? (§ 6) РЕШЕНИЕ ПРОБЛЕМЫ Web-дизайнеры всегда начинают с того, что буквально «рисуют» будущую web-страницу: сначала на бумаге карандашом, затем в графическом редакторе - то, как она должна выглядеть в окне браузера. Затем этот эскиз многократно дорабатывается, и только после его утверждения начинается процесс превращения рисунка в html-документ, называемый вёрсткой. Отдельно готовятся изображения, отдельно текст; пустая web-страница разбивается на блоки (например, с помощью таблиц), которым придаётся определённое оформление. Где-то добавляется синий фон, где-то цвет текста становится красным, где-то увеличиваются или уменьшаются отступы. Создание эскиза действительно является трудоёмким процессом, однако в итоге позволяет сэкономить немало времени и сил. Недаром знаменитая пословица гласит: «Скупой платит дважды». Можно начать делать web-страницу сразу в виде html-файла, но когда в середине работы окажется, что результат не совсем оправдывает ожидания, придётся либо переделывать всё заново, либо исправлять как html-код, так и css-стили - тег за тегом, элемент за элементом. Однако и исправленный вариант может нас не устраивать по тем или иным показателям. Другое дело, когда перед нами уже готовая - пускай нарисованная, но полноценная - страница. Что-то не нравится? Поправить на рисунке - дело двух минут. Ещё какие-то дополнения - пожалуйста, § 8. Вёрстка web-страниц 71 несложно внести и их. И только когда эскиз утверждён, стоит переходить к вёрстке. Кроме того, на эскизе обязательно присутствует навигация - хотя бы один из нескольких уровней. Это позволяет при вёрстке сразу расставлять необходимые ссылки, придумав названия всем web-страницам заранее. В этом параграфе мы начнём верстать страницу, посвящённую временам года, эскиз которой приведён на рис. 1.28. На эскизе видно простое меню: четыре пункта - четыре времени года. Значит, у нас будет пять страниц: главная и ещё четыре. Главную страницу обычно называют index.html (от англ. index - указатель, то есть страница, указывающая на другие). Оформление четырёх других страниц (Зима, Весна, Лето и Осень) будет однотипным и несколько отличаться от оформления главной страницы (рис. 1.29). ВРЕМЕНА ГОДА ¥ ^ Зима Весна Лето Осень / Синее-синее небо апреля и па'^са облаков -Город раскрасили сотней мелков, карандашами и акварелью! ^Ремена года V >. Зима Весна Лето (< Рис. 1.28. Эскиз главной страницы сайта о временах года Рис. 1.29. Эскиз неглавной страницы сайта о временах года (Осень) • Видите ли вы на эскизе неглавной страницы элементы с однотипным оформлением? Перечислите их. Обе страницы содержат изображения: это логотип, осенние листья, кусочек неба на фоне, чернильница, чернильные пятна, фотографии поэтов. Когда изображений много, их обычно помещают в отдельную папку, которой дают имя images, graphics, pictures или ещё какое-нибудь. Обычно в задачу верстальщика входит извлечение отдельных изображений из эскиза, но для нашего урока эти изображения уже готовы (рис. 1.30). 72 Модуль 1. Создание электронных изданий •V ^ ВРЕМЕНА ГОДА Логотип — logo.png Небо для фона — sky.jpg М -я Листья: leaf1 .png leaf2.png leaf3.png Пятна — ink.jpg Портрет Ф.И. Т ютчева — tutchev.jpg___________Портрет И.А. Бунина — bunin.jpg ^ Рис. 1.30. Изображения для сайта § 8. Вёрстка web-страниц 73 Некоторые иллюстрации имеют расширение png - это графический формат, поддерживающий прозрачность. Таким образом, сайт будет состоять из пяти html-страниц, css-файла со стилями и папки с изображениями. Структура главной страницы будет частично отличаться от структуры четырёх других страниц: общей будет только «шапка» сайта - логотип, небо, два осенних листа и меню. Начнем вёрстку с главной страницы. Для этого представим её в виде таблиц, как мы это делали раньше (рис. 1.31). Рис. 1.31. Структура главной страницы, представленная в виде таблиц Можно ли было разбить будущую web-страницу на блоки другим способом? Предложите свой вариант. 74 Модуль 1. Создание электронных изданий ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Создание хорошего, продуманного сайта - ответственное и трудоёмкое занятие. Созданию html-документа всегда предшествует разработка эскиза будущей web-страницы. После утверждения эскиза начинается вёрстка - превращение «картинки» в html-код. Изображения, если их много, как правило, размещаются в отдельной папке. Первый этап вёрстки заключается в представлении web-страницы в виде таблиц. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Создайте новую папку в том месте, где укажет учитель; дайте ей название «Времена года». Это папка будущего сайта, называемая также корневой; всё, что будет относиться к данному сайту, должно лежать в ней. 2. Создайте в корневой папке новую папку images - в ней будут храниться изображения. 3. Откройте папку paragraph_8_9, скопируйте находящиеся там рисунки в папку images. 4. Откройте редактор Nvu, сохраните пока пустую web-страницу в папке «Времена года» под именем index.html. В качестве заголовка укажите «Времена года: главная страница». 5. Откройте Блокнот и сохраните пока пустой css-файл в той же папке «Времена года» под именем times.css. 6. Поставьте файл times.css в соответствие файлу index.html: в разделе <head> добавьте тег <link rel="stylesheet" type="text/css" href="times.css"> 7. Опишите в файле times.css стили тегов body и р: body { margin: 0; padding-left: 100px; padding-right: 100px; background-color: #ffffff; font-family: Georgia, Times New Roman, serif; color: #000000; line-height: 140%; § 8. Вёрстка web-страниц 75 p } { margin-bottom: 1em; margin-top: 0; 8. Теперь необходимо описать произвольные стили, которые придадут оформление отдельным элементам web-страницы. Для этого необходимо заранее придумать им простые названия, например: Начните с того, что опишите в стилях (где это необходимо) ширину и высоту таблиц и ячеек: .bigtable { width: 100%; max-width: 1280px; } Характеристика max-width ограничивает ширину большой (на рис. 1.31 -серой) таблицы, чтобы при больших разрешениях экрана сайт не растягивался до огромных размеров. 76 Модуль 1. Создание электронных изданий .toptable-1 { width: 100%; .toptable-2 { width: 100%; .leaftable { width: 100%; height: 115px; .leaf-1 { width: 50%; .menucell { width: 60%; .index-1 { width: 100%; .pen { width: 40%; .index-3 { width: 70%; .leaf-3 { width: 15%; По окончании работы не забудьте сохранить css-файл. 9. Когда всё это проделано, начните последовательно создавать таблицы. Сначала - состоящую из пяти строк и одного столбца (серую). Не забудьте удалить атрибут style в теге <table>. Кроме того, Nvu по умолчанию создаёт во всех тегах <td> атрибуты } } } } } } } } } § 8. Вёрстка web-страниц 77 align="undefined" valign="undefined" Их можно оставить, но код при этом будет сильно «замусорен», поэтому было бы неплохо удалить и эти атрибуты. 10. Как только таблица будет создана, привяжите стили bigtable, index-2 и bottom к соответствующим тегам. 11. Выполните описанные выше действия для остальных таблиц, поочерёдно создавая их и привязывая к ним стили. 12. Когда все таблицы будут созданы, заполните их текстом и картинками (кроме изображения неба и чернильных пятен, которые будут фоновыми). Тексты, приведённые в эскизе, находятся в файле Тексты (главная).doc (папка paragraph_8_9). В результате web-страница должна выглядеть в браузере так: in Времена года: rj |я страница - Windows Internet Explor . ^ C:\Samples\Времена года\index.html -i Избранное Файл Правка Ви_ 1_збранное С_р <9 Времена года: главная страница - □ • - • - Стр. ^ ВРЕМЕНА ГОДА Зима Весна Лето Осег О чем этот сайт? О велткколеики природ^!, воспетом в русской поэзии! О золотом наряде осеннего леса, о летних просторатх, убегающих вдаль за линию горизонта, о бескра.йней глубине неба в са^ом радаре весн^1, о долгих зимних вечерах в избушке на окраине маленькой деревни. Времена года нашли свое от^а^ение в произведениях Пушкина, Некрасова, Фета, Тютчева, Твардовского, Пастернатка и многих других за^ечательн^гх поэтов. Некоторые из их стихотворений вы найдете Синее-синее небо апреля и паруса облаков-Город раскрасили сотней мелков, каратндаша^ и акварелью! ность Сервис 78 Модуль 1. Создание электронных изданий а в окне Nvu - так: |Вр|5||агодаГглавнаЯС|р|нйЦа^^^^ IB.* ' *'А' В| U ■- Н » ' »*i________ зРе! ВРЕМЕНА ГОДА Зима |!Весн^| Лет^|Осе О чем этот сайт? О вел:кколеики природы, воспетом в русской поэзии! О золотом наряде осеннего леса, о летних просторах, убегающих вда^ за линию горизонта, о бескрайней глубине неба в самом разгаре весн^1, о долгих зимних вечерах в избушке на окраине маленькой деревни^ Времена года нашли свое отражение в произведениях Пушкина, Некрасова, Фета, Тютчева, Твардовского, Пастернака и многих других за^ечательн^гх поэтов. Некоторые из их стихотворений вы найдете здесь. Синее-синее небо апреля и паруса облаков -Город раскрасили сотней мелков, карандашам и акварелью! Пожалуйста, присылайте свои отз^1в^1 и пожелания относительно нашего сайта по электронной почте: mail@timesofyear.ru § 9. Редактор Simple CSS 79 § 9. Редактор Simple CSS ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Редактор Nvu позволяет редактировать web-страницы визуально, то есть изменять цвета и шрифты, добавлять таблицы и изображения с помощью панелей форматирования, компоновки и пр. Однако стили в css-файле приходится прописывать вручную, что требует значительных затрат времени. • Как вы считаете, каковы преимущества и недостатки создания css-стилей вручную, посредством написания и редактирования css-кода в Блокноте? Сформулируйте проблему урока. Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Как создать css-стили внутри web-страницы? (§ 6) Как поставить в соответствие html-документу файл с внешними css-стилями? (§ 6) РЕШЕНИЕ ПРОБЛЕМЫ Конечно, существуют визуальные редакторы и для CSS. К ним относится, например, бесплатный редактор Simple CSS, о котором и пойдёт речь в этом параграфе. Использование подобных редакторов удобно в тех случаях, когда необходимо создавать стиль «с нуля»: можно не помнить наизусть написание всех css-характеристик, поскольку редактор сам сформирует код css-файла. Web-разработчику останется только выбрать в окне редактора необходимые значения (рис. 1.32). CSS-характеристики здесь представлены в виде выпадающих списков, в которых можно выбрать нужное значение. Цвета шрифта, фона, границ и пр. определяются с помощью стандартной палитры Windows (рис. 1.33). Набор css-характеристик хранится в Simple CSS в виде проекта. Проект можно создать или сформировать на основе существующего css-файла. Все изменения, сделанные при редактировании проекта, сохраняются автоматически. В любой момент проект можно превратить в css-файл. Однако если впоследствии редактировать этот css-файл вручную, изменения в проекте не отразятся; нужно будет создавать новый проект на основе изменённого css-файла. 80 Модуль 1. Создание электронных изданий Simple CSS iMy New Project »i New Project Duplicate ! Rename i Delete [ Import CS^ [ i • Export CSS Media: .Default « Text Displa^ Borders ] Dimension j Source CSS Styles ' * TJ Font Family: Text Decoration: None 1: [Unchanged Underline Linethrough 2: [Unchanged OOvetllne Blink Список 3: [Unchanged ' Text Align: (Unchanged v[ стилей Generic: [Unchanged •J Text Transform: [Unchanged «[ Color: I l-l White Space: [Unchanged »| Dltectlon: [Unchanged ^ [Unchanged Font Style: [Unchanged" Font Weight: [Unchanged Font Variant: [Unchanged~ Font Stretch: [Unchanged Unicode-bidi: [Unchanged Text Indent: Letter Spacing: Word Spacing: [Unchanged “^lUnchanged ^ [Unchanged List Style Image: [Unchanged" List Style Type: [Unchanged List Style Position: [Unchanged This is an instant preview Цвет Рис. 1.32. Окно визуального редактора Simla CSS Основные цвета: ■ ГРИГ ■ Г ■ ■ Г ■■ Г ■ Г Дополнительные цвета: ГГГГГГГГ ГГГГГГГГ i Определить цвет » Оттенок: 160 Красный: 0 Контраст: 0 Зеленый: 0 ЦветЗаливка Яркость: 0 Синий: 0 I Добавить в набор Рис. 1.33. Стандартная палитра Windows Line Height OK Отмена § 9. Редактор Simple CSS 81 Тем не менее иногда редактирование css-кода вручную оказывается практичнее использования визуального редактора. Так, если два элемента web-страницы (например, две ячейки таблицы) имеют очень похожее оформление, но в одной из них текст должен иметь обычное начертание, а в другой - полужирное, намного легче скопировать описание первого стиля, вставить его следом, переименовать и просто добавить характеристику font-weight: bold. • Перечислите преимущества редактирования css-стилей вручную и в визуальном редакторе в виде таблицы. Вручную В визуальном редакторе Сразу видны все характеристики, описываемые в данном стиле Не нужно помнить наизусть css-характеристики ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Создавать и редактировать css-стили можно в визуальных редакторах, таких как Simple CSS. Использование редактора позволяет выбирать значения необходимых css-характеристик из списков, вместо того чтобы набирать фрагменты кода вручную. Однако если необходимо создать новый стиль на основе существующего, это можно сделать и в Блокноте, скопировав описание существующего стиля, переименовав его и внеся требуемые изменения. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Откройте редактор Simple CSS. Сформируйте проект на основе разработанного на прошлом занятии файла times.css. Для этого сначала создайте новый проект, а затем воспользуйтесь кнопкой Import CSS. Название новому проекту дайте на своё усмотрение. В левой части окна Simple CSS появятся все созданные вами ранее стили: 82 Модуль 1. Создание электронных изданий 6 Simple CSS fTImes of year Media: (Default p .bigtable .toptable-1 .toptable-2 .leaftable .leaf-1 .menucell .index-1 .index-3 .leaf-3 Cl New Project ^ Duplicate Renam^^ r-,t Delete ^ Import CS^ L Export CSS ШБ Text '~Displa^ Borders [ Dimension [ Source^ Font Family: [Georgia *1 [Times New Roman [Unchanged Generic: {Serif •1 Font Size: Line Height: ~[ {Unchanged ~ Unchanged Font Style: {Unchanged Font Weight: {Unchanged Font Variant: [Unchanged Font Stretch: [Unchanged Text Decoration^ _ None Lj Underline QLinethrough Overline Blink Text Align: ^Unchanged Text Transform: [Unchanged White Space: [Unchanged Direction: [Unchanged Unicode-bidi: Unchanged » Text Indent: [Unchanged Letter Spacing: [Unchanged »] Word Spacing: [Unchanged >] List Style Image: [Unchanged >] List Style Type: [Unchanged List Style Position: [Unchanged This is an instant preview 2. Начнём дополнять стили необходимыми характеристиками, чтобы привести главную web-страницу нашего сайта о временах года к тому виду, который представлен в эскизе. Добавьте фоновое изображение неба к большой таблице (стиль bigtable). Внесите изменения в css-файл, воспользовавшись кнопкой Export CSS. В качестве css-файла укажите всё тот же times. css. После этого откройте в браузере web-страницу (index.html). В верхней части должно появиться фоновое изображение неба: |я страница - Windows Internet Explorer ; 'Л C:\Samples\Времена года\index.h -IM-lt' J Избранное Файл Правка Ви_ _збранное Серв ^ Времена года: главная страница ^ * ВРЕМЕНА ГОДА V ^ гма Весна Лето Осег О чем этот сайт? О великолепии природ^!, воспетом в руг наряде осеннего леса, о летних просторах, убегающих вд бескрайней глубине неба в самом разгаре весны,о долгих на окраине маленькой деревни. Времена года нашли свое отражение в произведениях Пушкина, Некрасова, Фета, Т^чева, Твардовского, Па многих других замечательн^гх поэтов. Некоторые из их стихотворений эзии'О золотом вечерах в избушке 1дан в 2011 году CSS Styles #000000 Времена года Город ра и акваре Готово § 9. Редактор Simple CSS 83 3. Увеличьте отступ сверху для таблицы, в которой находятся логотип, осенние листья и меню (стиль toptable-1) на 40 пикселей. 4. Измените выравнивание и отступы в каждой из двух ячеек таблицы с осенними листьями (стили leaf-1 и leaf-2). В левой - выравнивание по центру и верхнему краю. Для правой ячейки стиля (leaf-2) пока нет. Создайте его. После того как стиль создан, установите отступ снизу в 20 пикселей, выравнивание по центру и нижнему краю. 5. Создайте стиль menu и опишите для него: • отступы: слева и справа по 15 пикселей, сверху и снизу - по 5 пикселей; • начертание и размер шрифта. 6. Создайте стиль bottom и опишите для него верхнюю границу. 7. Продолжите оформление всех ячеек и таблиц, в редакторе Simple CSS или вручную в Блокноте - по вашему усмотрению. По завершении работы в Simple CSS не забудьте обновить файл times.css с помощью кнопки Export CSS. Посмотрите, так ли выглядит web-страница в браузере: 'ф Времена года: главная страница - Windows Internet Explorer ' Ф C:\Samples\Времена года\city.html •l-l* j Избранное Файл Правка Вид 1Избранное Сервис Сп_равка Л Времена года: главная страница % * bj • ~ W "Страниц^ Безопасность Сервис* 4 ВРЕМЕНА ГОДА «• * Зима Весна Л^о Осень О чем этот сайт? О великолепии природы, воспетом в русской поэзии! О золотом наряде осеннего леса, о летних просторах, убегающих вдаль за линию горизонта, о бескрайней глубине неба в самом разгаре весны, о долгих зимних вечерах в избушке на окраине маленькой деревни. Времена года нашли свое отражение в произведениях Пушкина, Некрасова, Фета, Тютчева, Твардовского, Пастернака и многих других замечательных поэтов. Некоторые из их стихотворений вы найдете здесь. Синее-синее небо апреля и паруса облаков -Город раскрасили сотней ме^^ов, ка^р^^даша^'и йт созлан в 2011 году • и акварелью жапуиста, при^таите ^ои отзывы и пожелания от % 100% 84 Модуль 1. Создание электронных изданий ОПЕРАЦИИ Работа с проектами в Simple CSS сформировать проект Переход между вкладками и выделение стилей в редакторе Simple CSS переход между вкладками G Simple CSS _FI!e Edit _Help [My New Project u NjW Pioje^t ^ ' Dup|j|at^ ^ n^m^ Ч l^pelete j[^ Import CS^ ^ - Export CSS J .toptable- .toptable-2 .leaftable .leaf-1 .menucell .index-1 .index-3 .leaf-3 2A выделение стилей Right: ' Bottom: Left: l^lnchanged HQUnc j^nc ~l^.nchanged ^ ^ Unchanged Vertical Position: 1 -Ijnchanged Vertical Align: Visibil|ty^^Unchanged *] ^Unchanged » ) 1^^ Overflow: tdJnchanged 3C Ijnchanged {Unchanged 4 Fl°at: j,Unchanged Positoin: J^^^ange^^ Установка фонового изображения Необходимо помнить, что картинка с небом лежит не в корневой папке, а в папке images. Unchanged § 9. Редактор Simple CSS 85 Изменение выравнивания Изменение выравнивания по горизонтали осуществляется во вкладке Text, по вертикали - во вкладке Display. С Simple CSS Media: jDefault CSS Styles ^ New Project ^ Duplicate ' ч Rename Delete • Import CS^ [i» Export CSS ] Text 1 Display J Borders | Dimension J Source Font Family: p 1: (Unchanged .bigtable 2: (Unchanged •1 .toptable-1 .toptable-2 .leaftable 3: [Unchanged _iJ Generic: lUnchanged • .menucell .index-1 Font Size^ [Unchanged •1 .index-3 Line Height: Unchanged .leaf-3 Font Style: (Unchanged Text Decoration: None Underline Linethrough Overline Blink, Font Weight: [Unchanged Font Variant: [Unchanged Font Stretch: [Unchanged Text Transform [Unchanged * j White Space [Unchanged *J Direction [Unchanged Unicode-bid [Unchanged »J Text Indent ^^^j|Unchanged « Letter Spacing j Unchanged « Word Spacing [Unchanged w | List Style Image: [Unchanged ^ | " List Style Type: [Unchanged ^ List Style Position: [Unchanged ,j This is an instant preview Times of year Text Align 86 Модуль 1. Создание электронных изданий S* Simple CSS _Flle Edit Help ».j' ^ New Project ^ Duplicate ^ - Rename ^ ^ Delete ^ ^ Import CS^ ^ X Export CSS Media: jDefault CSS Styles p .bigtable .toptable-1 .toptable-2 .leaftable .menucell .index-1 .index-3 .leaf-3 .leaf-2 Text ■ Display • Borders e: ||Unchanged Repeat: I Unchanged Attachment: L it^^nchange^^ Horizontal Position ^ [^Unchanged ^^nchanged This is an instant preview IjJnchanged IZD jjjnchanged cJ Plac Top^ [Unchanged Right: | Bottom: I Left: j Unchanged 1_ LUnchanged "'r Unchanged Vertical Align: [ Z-index: ■|Top_ Visibility: [ Unchanged _ «>] Overflow: [Unchanged ^ Fl°at: l^^nchanged Positoin: [Unchanged Изменение начертания и размера шрифта & Simple CSS _File Edit Help Media: jDefault CSS Styles p .bigtable .toptable-1 .toptable-2 .leaftable .leaf-1 .menucell .index-1 .index-3 .leaf-3 .leaf-2 ■ j New Project _ Duplicate | Rename ^ »-.Д Delete ^ Import CS^ ^ .Л. Export CSS Font Family: Text Decorations ^ None 1: [Unchanged -’.I и Underline ^ Linethrough 2: [Unchanged •1 BOverline f Blink 3: [Unchanged -) Text Align: [Unchanged • Generic: [Unchanged “3 Text Transform: [Unchanged • ^ Color: Font Size: | Line Height: ~|[Unchanged Font Weight: Unchanged Font Variant: [Unchanged" Font Stretch: [Unchanged White Space: [Unchanged Direction: [Unchanged Unicode-bidi: [Unchanged Text Indent: Letter Spacing: [Unchanged [Unchanged Word Spacing^ [Unchanged List Style Image: Unchanged List Style Type: [Unchanged List Style Position: .Unchanged This is an instant preview Unchanged Vertical Positi Font Style: ’[talic § 9. Редактор Simple CSS 87 Задание отступов Отступы задаются во вкладке Deminsion. внешние [Margins] и внутренние [Padding], 1. Выбрать вкладку Deminsion. 2. Если отступ с разных сторон - разные, снять флажок [галочку] Same for All. 3. Выбрать в качестве единиц пиксели. 4. Ввести необходимое значение. • Simple CSS _Flle Edit Help I Times of year Media: Default CSS Styles P .blgtable .toptable-2 .leaftable .leaf-1 .menucell .index-1 .index-3 .leaf-3 vLl w New Project 1ПГ Duplicate I Rename ^ W Delete Import CS^ ^ ' Export CSS Tex^ [ Display i Borders J Dimension '~Source | Margins П Same for All: ! || Unchanged * Padding V' Same for All: ( , Unchanged » '[pixels [px] »] T°p: ^.Unchanged v.j Right^ II Unchanged «[ Ri9ht^ II^Unchanged ».| Bottom^ [(Unchanged Bottom^ .(.Unchanged v,J Left^ [ Unchanged ^ | LeftM (Unchanged j^nchanged Редактирование стилей границ Sk Simple CSS _File Edit Help 'Times of year Media: |Default CSS Styles p .bigtable .toptable-1 .toptable-2 .leaftable .leaf-1 .menucell .index-1 .index-3 .leaf-3 .leaf-2 w New Project i Duplicate ^ Renam^^j '.Г,1 Delete ^ Impo^CS^^^^ExportC^^^ Text Display Borders * Dimensio^l Source Border Style: ’[Same for All^ Unchanged « id Same for All: Top: 1 Soli^* - w ( Top: Right: ^.nchanged •j Right: HI Bottom: I^Unohanged «.| Bottom: Left: ^Unchanged v| Left: Border Wdth: :□[ Unchanged Right Bottom Left This is an instant preview l|_ Border Collapse: [^Unchanged ----- « Outline: Style: [.Unchanged — -T~ IL I ' '[.Unchanged" ^ »j >1 Width 88 Модуль 1. Создание электронных изданий Создание новых стилей 1. Нажать кнопку рГ]. 2. В выпадающем меню выбрать пункт Class Style. Стили можно «перетаскивать» вверх и вниз друг относительно друга. § 10. Создание стилей ссылок 89 § 10. Создание стилей ссылок ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Посмотрите на страницу сайта Яндекс.Новости, посвящённую событиям культуры. f» Яндекс новости Поиск Почта Карты Маркет Новости Словари Блоги Видер Картинки еще Войти Помощь Главные новости Политика В мире Общество Экономика Спорт Происшествия Культура Наука Здоровье Hi-Tech ||^ Автоматически обработано 4757 источников, обновлено в 12:40 Москва Культура Кино Музыка Театры |Выставки1 Ч^^Готов^ В Русском музее открывается выставка неизвестных художников (110 сообщений) BS^ мнений Экспозиция будет организована по тематическому принципу: “Парсуна и портрет Петровского времени'; “Мундирные портреты', “Детский портрет', “Купеческий портрет, портреты духовных лиц', “Портреты и автопортреты художников', “Жанровые полотна', “Историческая живопись', “Аллегорические полотна', “Городской пейзаж', сообщает сайт Русского музея. сообщает сайт Русского музея. В Петербурге открывается выставка к 230-летию “Медного всадника" (12) Щ карта В Музее городской скульптуры в 16 часов открывается приуроченная к памятному событию выставка “В поисках Петра', посвященная многочислен м и загадкам “Медног Софья Троценко займется на “Винзаводе” образованием и выставками (2) В марте этого года Троцен В московском правительс о ушла из “Винзавода', который возглавляла с момента его создания, !е Троценко занималась музыкальными и художественными школам гтобы занять пост заместителя руководителя аппарата в1 , а также развивала детско юношеские клубы. : - мэра Ольги Голодец. Место галереи “Меглинская'' на "Винзаводе' займет Frolov Gallery (3) Собеседник агентства добавил, что собирается вести активную галерейную политику, в частности устраивать хорошие i которая стартует 13 сентября Рогге - известная немецкая художница, работающая в Дюссельдорфе. Тульский областной краеведческий музей откроется в 2013 году (25) и, первой станет EverAfter Клаудии Рогге, следующего года. Об этом на пресс конференции во вторник 21 авгу Пермская полиция сообщила миру о краже картин в Стокгольме (6) Молодежная экспедиция “Поморский путь'' стартует в Норвегию (7) В Пушкинском музее открылась выстовка гемм-миниатюр (18) “Дом Тарковского в Мясном'' появился в Рязанской области (11) В Иркутске открывается выставка “Керамика и графика Паб^о Пикассо' (8) Проект саратовского музея претендует на премию “Александр Невский'' (8) Николай Дроздов приедет в воткинск в День города (0) Настоящий подвиг решили совершить в Екатеринбургском музее ИЗО' (3) Улан-удэнцы смогут увидеть древние погребальные маски (4) ^^^^^герн^^^ащищенны^режим^ Первые пять новостей представлены большими заголовками-ссылками и короткими анонсами. • Сколько цветов используется для оформления этих заголовков? Как вы думаете, почему цвета различны, хотя все пять новостей равноправны? Как бы вы сформулировали основной вопрос урока? Сравните свой вариант с авторским (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Что такое навигация? (§ 5) Какой тег отвечает за гиперссылку? (§ 1) л Почт^ ^ Карт найти расширенн Выпуск: Россия Руководство Тульского областного краеведческого музея планирует открытие учреждения культуры в сообщила директор департамента Тульской области Татьяна Рыбкина. ^100% 90 Модуль 1. Создание электронных изданий РЕШЕНИЕ ПРОБЛЕМЫ Ссылки - важнейший элемент любой web-страницы и гипертекста в целом, поэтому их оформлению уделяют повышенное внимание. То, насколько система ссылок удобна и понятна, нередко определяет отношение посетителей ко всему сайту. На страницах сайта Яндекс.Новости, как и на большинстве других сайтов, для оформления каждого типа ссылок используется по три стиля: • непосредственно ссылка, по которой ещё не переходили (атрибут link); • ссылка, по которой уже переходили (атрибут visited); • ссылка в момент наведения на неё указателя мыши (атрибут hover). Посещённой и непосещённой ссылкам рекомендуется присваивать разные цвета, чтобы пользователю было понятно, на каких страницах он уже побывал; чаще всего непосещённая ссылка имеет синий цвет, а посещённая -фиолетовый. Кроме того, все ссылки стоит подчёркивать: это лучший способ показать, что слово является ссылкой, а не просто частью текста. Эту же цель преследует и изменение оформления ссылки при наведении указателя мыши (в случае сайта Яндекс.Новости - изменение цвета на красный). За ссылку отвечает тег <a>, поэтому его стили описываются без предварительной точки, например: a:link { color: #1e67c1; text-decoration: underline; синии подчеркнутый a:visited { color: #831dda; text-decoration: underline; фиолетовый подчёркнутый a:hover { color: #ff0000; ( text-decoration: underline; } красный подчёркнутый } } § 10. Создание стилей ссылок 91 Однако тегу <a> в html-коде можно присвоить любой произвольный стиль, например: <а href="page.html" class="new_link">...</a> В этом случае всё, что прописано в стиле new_link, будет иметь преимущество над характеристиками стиля тега <а>. • Как ещё (помимо цвета) можно выделить каждое из трёх состояний ссылки? Предложите свои варианты. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Оформление ссылок осуществляется с помощью трёх стилей, имеющих одно название, но разные атрибуты: link для непосещённой ссылки, visited для посещённой ссылки и hover для ссылки в момент наведения на неё указателя мыши. Атрибуты отделяются от названия стиля двоеточием. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Откройте файл index.html в редакторе Nvu. Сделайте адрес электронной почты mail@timesofyear.ru ссылкой, позволяющей отправить электронное письмо. Сохраните web-страницу и просмотрите её в браузере. Появилась ссылка, но при наведении мыши она пока не меняется, а её цвет - стандартный синий. 2. Откройте файл times.css с помощью Блокнота и опишите стили ссылок. Сначала - обычных, то есть тех, которые находятся не в меню, например: а:link { color: #1e67c1; text-decoration: underline; a:visited { color: #831dda; text-decoration: underline; a:hover { color: #ff0000; text-decoration: underline; } } } 92 Модуль 1. Создание электронных изданий 3. Сохраните файл и обновите web-страницу в браузере. Наведите указатель мыши на ссылку и убедитесь в том, что она меняет цвет: это работает атрибут hover. 4. Для ссылок в меню создайте четыре группы стилей, отличающихся друг от друга цветом. В этих стилях снова появится точка перед названием, так как они уже не описывают конкретный тег. Например, для пункта меню Зима описание стиля будет таким: .winter:link { color: #6295a8; text-decoration: underline; } В меню нет особого смысла делать различие между посещёнными и непосещёнными ссылками: .winter:visited { color: #6295a8; text-decoration: underline; } У ссылки при наведении мыши уберите подчёркивание, остальное оставьте без изменений: .winter:hover { color: #6295a8; text-decoration: none; } Проделайте то же самое со стилями для пунктов меню Весна (spring, цвет #55b103), Лето (summer, цвет #ff0000) и Осень (autumn, цвет #ff7200). 5. Вернитесь в редактор Nvu и сделайте ссылками пункты меню, которые пока представляют собой обычные слова. Хотя у нас пока нет ни одной из четырёх страниц (Зима, Весна, Лето, Осень), ссылки расставить можно (удобнее - в режиме редактирования Код): <a href="winter.html" class="winter">Зима</a> <a href="spring.html" class="spring">Весна</a> <a href="summer.html" class="summer">Лето</a> <a href="autumn.html" class="autumn">Осень</a> 6. Сохраните html-документ и проверьте в браузере работоспособность ссылок. § 10. Создание стилей ссылок 93 7. Теперь создайте страницу Осень. Для этого сохраните страницу index. html под именем autumn.html. Поменяйте её заголовок (содержимое тега <title>) на «Времена года: Осень». Уберите ссылку со слова «Осень» в главном меню. Ссылкой на главную страницу сделайте логотип: это общепринятое правило. Удалите более не востребованные вторую и третью строки большой таблицы (серой на рис. 1.31 § 8). Четвёртую строку удалять не нужно, так как в ней скоро появится новая информация, но таблицу с текстом и осенним листом нужно также удалить. В итоге должно получиться следующее: Времена года: Осень - Nvu 8. Эскиз (рис. 1.29 § 8) требует, чтобы активный пункт меню, то есть пункт, соответствующий той странице, на которой находится посетитель, имел заливку того же цвета, который на остальных страницах является цветом ссылки в данном пункте меню (в случае осени - оранжевого). При этом цвет текста должен быть белым. Добавьте белый цвет текста в стиль menu: .menu { font-size: 1.8em; font-style: italic; padding-bottom: 5px; padding-left: 15px; padding-right: 15px; padding-top: 5px; color: #FFFFFF; } 94 Модуль 1. Создание электронных изданий 9. Оранжевый цвет заливки примените с помощью атрибута style непосредственно внутри тега <td>, рядом с атрибутом class = "menu". Этот стиль имеет смысл сделать встроенным, поскольку больше ни на одной странице он не встретится: у весны будет зелёный цвет, у лета - красный и т.д. <td style="background-color: class="menu">OceHb</td> #ff7200;" Ю. Осталось создать блок со стихотворениями и портретами поэтов. Создайте таблицу размером 2x2 в пустой ячейке большой (серой) таблицы. Удалите из тега <table> атрибут style, автоматически расставляемый Nvu. В файле times.css создайте четыре новых стиля - для самой таблицы, отдельно для ячеек с портретами и ячеек со стихотворениями, а также для подписи к портрету: .poemtable { width: 100%; margin-top: 10px; .portrait { width: 30%; vertical-align: top; .poem { padding-left: 30px; line-height: 1.4em; padding-bottom: 100px; .author { font-family: Arial, serif; font-size: 0.9em; padding-top: 10px; } } § 10. Создание стилей ссылок 95 К таблице привяжите стиль poemtable. К обеим левым ячейкам привяжите стиль portrait, к обеим правым - стиль poem. Заполните ячейки. Тексты, приведённые в эскизе, находятся в файле Тексты (Осень).doc (папка paragraph_8_9). Стиль autor привяжите к тегам <p>, в которых даются фамилия, имя и отчество поэта. При желании сделайте эти фразы ссылками на какие-либо сайты, посвящённые жизни и творчеству поэтов. В результате web-страница должна выглядеть в браузере так: it Времена года: Осень - Windows Internet Explorer j. , ^ ^ C:\Samples\Времена года\dty.html ^ Времена года: Осень ВРЕМЕНА ГОДА * > Зима Весна Лето Проверьте, работает ли ссылка на главную страницу (при нажатии на логотип). Таким образом, мы сверстали главную и одну из второстепенных страниц небольшого сайта. В этом нам помогли таблицы (как инструмент структурирования данных) и CSS (как инструмент оформления). 96 Модуль 1. Создание электронных изданий ОПЕРАЦИИ Установка в качестве ссылки адреса электронной почты 1. Нажать кнопку Ссылка на панели компоновки. 2. В появившемся окне установить флажок Адрес электронной почты. Свойства ссылки Текст ссылки mail@timeofyear.ru Адрес объекта ссылки Введите адрес веб-страницы, локального файла или выберите якорь или заголовок с именем из списка: mail@timeofyear.ru 0 Адрес электронной почты (тносительный URL Выбрать файл... I ▼Ра_ширен ные свойства I Дополнительно.. OK Отмена _правка Придание изображению функции ссылки 1. Выделить изображение (логотип). 2. Нажать кнопку Ссылка на панели компоновки. 3. В появившемся окне указать файл страницы (index.html) и нажать кнопку OK. Свойства изображения [Адре^РазмерыВнешнийвид Ссылка j Введите адрес веб страницы, локального файла или выберите якорь или заголовок с именем из списка: index.html П Адрес электронной почты г ^ Относительный URL □ Показать рамку вокруг изображения, содержащего ссылку Предварительный просмотр изображения Исходный размер: ,ВРЕМЕНА ГОДА Ширина: 354 Высота: 99 [ _Выбрать файл... I Дополнительно... Справка OK Отмена § 10. Создание стилей ссылок 97 Удаление строки таблицы 1. Щёлкнуть левой кнопкой мыши в любой области строки таблицы. 2. Нажать возникшую слева пиктограмму с крестиком. а года: Осень - Nvu Создат^ От,:ытЬсоО!РаНиТЬОпУблико1ть * Орф^ 98 Проверь себя Задание 1 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку test_4, скопируйте из неё все файлы в созданную вами папку. 3. Откройте файл magellan.html с помощью редактора Nvu. Этот файл содержит встроенные стили, описываемые в подразделе <style> раздела <head>, но они содержат ошибки. Исправьте их, затем привяжите стиль left к ячейке таблицы, содержащей текст о Магеллане. 4. Откройте файл в браузере и убедитесь, что страница отображается верно. 5. Покажите учителю и исправленный код, и то, как страница отображается в браузере. Задание 2 1. Откройте Блокнот, перенесите в пока пустой документ все стили из файла magellan.html и сохраните его как css-файл. Закройте Блокнот. 2. В самом файле magellan.html удалите весь подраздел <style>, затем поставьте в соответствие этому html-документу только что созданный css-файл. 3. Откройте редактор Simple CSS, сформируйте новый проект на основе вашего css-файла и добавьте в стиль left цвет фона #ADDFE8. Обновите css-файл. 4. Покажите учителю, как web-страница о Магеллане отображается в браузере. 99 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 1. Откройте редактор Nvu, создайте таблицу из одного столбца и трёх строк, заполните ячейки текстом пословиц: Всё приходит вовремя для того, кто умеет ждать. Где слова привета, там улыбка для ответа. Ничего не делая, учишься делать плохо. 2. Перейдите в режим редактирования Код, создайте в разделе <head> подраздел <style>. Опишите стиль тега <body>, поставив отступы слева, справа и сверху на своё усмотрение. 3. Создайте три стиля: .first .second .third В первом стиле укажите красный цвет текста и размер шрифта 1,5 em. Во втором стиле укажите зелёный цвет фона и белый цвет текста. В третьем стиле укажите, что текст должен быть набран курсивом. 4. Привяжите первый стиль к верхней ячейке таблицы, второй - к средней, третий - к нижней. 5. Создайте новую папку в том месте, где укажет учитель. Сохраните html-файл в созданной вами папке. 6. Покажите учителю код страницы и то, как она отображается в браузере. Задание 2 1. Создайте с помощью Блокнота css-файл, сохраните его в папке, созданной в предыдущем задании. 2. Создайте в редакторе Nvu html-документ, который также сохраните в этой папке. 3. Поставьте в соответствие html-документу css-файл. 4. Создайте в html-документе таблицу размером 3x3 и посредством использования стилей добейтесь того, чтобы web-страница имела следующий вид: 100 Модуль 1. Создание электронных изданий 5. Покажите учителю код web-страницы, css-файл и то, как web-страница отображается в браузере. ПРИМЕНЕНИЕ ЗНАНИЙ (повышенный уровень] Задание 1 1. Создайте новую папку в том месте, где укажет учитель. 2. Создайте в редакторе Nvu html-документ и сохраните его в этой папке. 3. Придумайте название css-файла, в котором будут храниться стили и поставьте в соответствие html-документу этот пока ещё не существующий css-файл. 4. Создайте в html-документе таблицу размером 3x3. Ваша задача - посредством использования стилей добиться того, чтобы web-страница имела следующий вид: Стили необходимо создавать в редакторе Simple CSS. 101 5. По завершении работы покажите учителю проект в редакторе Simple CSS и то, как web-страница отображается в браузере. Задание 2 Доделайте сайт о временах года, наполнив текстами стихотворений и портретами поэтов разделы Зима, Весна и Лето. Материалы можно найти в папке task 3. ПРИМЕНЕНИЕ ЗНАНИЙ (максимальный уровень) По вашему выбору выполните одно из двух заданий. Задание 1 Создайте небольшой (3-5 страниц) сайт на любую интересную вам тему, оформив web-страницы средствами CSS. Можете взять созданные вами при выполнении заданий этого модуля материалы (текст, картинки) за основу. Стили, используемые на большинстве страниц, храните в отдельном css-файле, а те, которые используются только один раз, сделайте встроенными. При желании используйте редактор Simple CSS. Задание 2 Доделайте сайт о временах года, наполнив текстами стихотворений и портретами поэтов разделы Зима, Весна и Лето. Материалы можно найти в папке task_3. Каждую из трёх оставшихся страниц оформите несколько по-новому по сравнению со страницей Осень. Например, поменяйте шрифты, перенесите портреты поэтов с левой стороны на правую, расположите текст стихотворений в две колонки вместо одной, поменяйте фоновое изображение (вместо неба - ещё что-нибудь). При этом логотип и меню необходимо оставить неизменными. 102 Итоговая проверочная работа Задание 1 1. Создайте новую папку в том месте, где укажет учитель. 2. Откройте папку test_5, скопируйте из неё все файлы в созданную вами папку. 3. Откройте файл fuels.html в браузере. Ваша задача - привести оформление web-страницы в порядок. Откройте Блокнот, опишите в нём стиль тега <body>, поставив отступы слева и справа по 100 пикселей, а сверху - 150 пикселей. Создайте стиль для ячеек с описанием топлива: текст должен быть выровнен по верху и по левому краю, необходим небольшой отступ сверху и справа. Сохраните созданный документ как css-файл. 4. Откройте файл fuels.html с помощью редактора Nvu. Поставьте ему в соответствие css-файл. Привяжите созданный вами стиль к каждой из трёх ячеек с описанием топлива. 5. Покажите учителю, как web-страница отображается в браузере. Задание 2 1. Откройте редактор Simple CSS и сформируйте новый проект на основе css-файла, созданного в предыдущем задании. 2. Создайте стиль для тега <h1>: назначьте красный цвет, а параметры шрифта выберите по своему усмотрению. Обновите css-файл. 3. В редакторе Nvu перед таблицей создайте заголовок «Виды топлива». 4. Покажите учителю, как web-страница отображается в браузере. 103 Задание 3 Создайте web-страницу, которая будет отображаться в браузере приблизительно так: I® Времена года: Осень - Windows Internet Explor •» Избранное Файл Правка Вид _збранное Сервис Справг Q ♦ 0 • . • *Ст| 'Страниц^ Безопасности Сер Каждый охотник знать где сидит фазан Css-стили сделайте внутренними и опишите их в подразделе <style> раздела <head>. Используйте шрифты Arial и Georgia. 104 О профессиях В течение первых месяцев существования Интернета стало абсолютно понятно: за ним будущее. Пройдут годы - и пользователей Интернета станет намного больше, чем телезрителей, радиослушателей и читателей газет, вместе взятых. Мы с вами уже живём в эту эпоху! Многие компании, осознав ключевую роль интернет-технологий в современной жизни, начали обзаводиться собственными сайтами, а те, у кого уже были сайты, стали задумываться об их модернизации. Как известно, спрос рождает предложение: нужны сайты -значит, всегда найдутся те, кто будет их делать. За вознаграждение, конечно же. Так стали появляться первые web-студии - мини-фабрики по производству сайтов. В них работают дизайнеры, верстальщики, программисты, специалисты по рекламе и маркетингу, многочисленные менеджеры и др. В нашем курсе мы уже познакомились с работой двух специалистов: • дизайнера, который придумывает, как элементы будут располагаться на странице, какими будут шрифты и цвета, что будет представлять собой навигация; • верстальщика, который превращает задумку дизайнера в html-документ, используя для этого таблицы и css-стили. Однако, помимо таблиц, верстальщик может пользоваться и другими html-инструментами. Подробнее о них, а также о работе третьего специалиста -программиста - можно познакомиться в модуле «Web-конструирование» (9-й класс, книга 2). С его помощью вы научитесь верстать более сложные web-страницы, добавлять на них небольшие программы, публиковать свои сайты в Интернете и превращать множество web-страниц в один компактный файл. Таким образом, можно научиться разрабатывать и публиковать сайты самостоятельно или же заказать готовый сайт в web-студии. На разработку сайта-визитки из пяти-десяти страниц у web-студии уйдёт не более десяти дней, на сайт посложнее - около месяца. При выборе web-студии стоит обращать внимание на несколько моментов. • Количество и качество уже созданных проектов - иными словами, портфолио. Если студия сделала всего три сайта, из которых опубликован только один, - наверное, это не самый лучший выбор. Равно как и десятки сайтов, но с очень похожим дизайном. Лучше, чтобы было много и разных! 105 Стоимость; очень часто один и тот же по объёму работ сайт в разных web-студиях может стоить и 30 000 рублей, и 250 000 рублей! Как правило, чем богаче портфолио студии, тем дороже сайты. Жизнеспособность, то есть насколько долго сайт живёт в Интернете. Если он очень красивый, со множеством оригинальных дизайнерских решений, но слишком неудобен в использовании (как для посетителей, так и для тех, кто занимается его наполнением), не пройдёт и нескольких месяцев, как придётся создавать новый сайт. 106 107 Модуль 2. Моделирование Этот модуль поможет вам: • понимать, что такое моделирование, зачем оно нужно и какие бывают модели; • создавать числовые модели несложных процессов и производить расчёты по ним с помощью электронных таблиц. Представлять результаты расчётов в наглядном виде; • научиться совершенствовать модель, добиваясь большего её соответствия реальному процессу. Для этого вам надо научиться: • выполнять элементарные расчёты с помощью электронных таблиц; • вводить в ячейки, редактировать и копировать данные различных типов; • строить разнообразные графики по числовым данным; • использовать различные листы рабочей книги электронной таблицы, копировать и вставлять данные с листа на лист; • редактировать расчётные формулы, пользоваться относительными и абсолютными адресами. 108 Модуль 2. Моделирование Древнеиндийская модель мира Введение Мы любим всё — и жар холодных числ, И дар божественных видений, Нам внятно всё — и острый галльский смысл, И сумрачный германский гений... А. Блок Пытаясь понять сложное устройство окружающего мира, люди издревле пытались представить его в упрощённом виде. Так в древней Индии родился образ плоской Земли, покоящейся на трёх слонах, стоящих на гигантской черепахе, плавающей в Мировом океане. Так возникла одна из первых умозрительных (то есть созданных в человеческом воображении) моделей мира. Шли годы, совершая морские путешествия, люди поняли, что Земля имеет форму шара, окружённого неподвижными звёздами и подвижными планетами. Чтобы объяснить движение подвижных светил, астрономы Древней Греции представили, что планеты вращаются вокруг неподвижной Земли по сложным системам окружностей. И тогда появилась модель мира Птолемея, на взгляд наших современников, сложная и далёкая от действительности. Тем не менее она была способна предсказать реальное движение планет с погрешностью не более одного градуса. Через полтора тысячелетия польский астроном Коперник упростил модель мира, поменяв в ней местами Землю и Солнце. В новой модели семь планет вращались по круглым орбитам вокруг неподвижного Солнца. Модель Коперника настолько точно описывала движение светил, что, обнаружив небольшие отклонения от расчётов в движении самой далёкой седьмой планеты Солнечной системы Урана, учёные заподозрили, что их вызывает неизвестная планета. Так была «вычислена», а затем и обнаружена при помощи телескопа восьмая планета Нептун. С бурным развитием науки в XX веке модель мира непрерывно изменялась. Люди обнаружили, что далёкие звёзды имеют такие же планетные системы, как и наше Солнце. Земля, представлявшаяся древним центром мира, оказалась самой рядовой планетой, «затерянной» на окраине нашей Галактики. Зато сегодня, опираясь на современные модели мира и вычислительные возможности современных компьютеров, учёные могут не только оценить размеры Вселенной и определить её возраст, но и обнаруживать «на кончике пера» такие объекты, которые трудно даже представить: «чёрные дыры», нейтронные звёзды, квазары. Попробуем и мы с помощью такого мощного инструмента для вычислений, как электронные таблицы, разобраться в том, как моделировать на компьютере процессы окружающего нас мира. § 1. Моделирование, его роль в познании 109 § 1. Моделирование, его роль в познании. Модели материальные и информационные ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Наверное, некоторые из девушек, прочитав название параграфа, подумают: «Наконец-то в учебнике встретилось что-то интересное, ведь модельный бизнес — это так модно». Эти девушки мечтают стать фотомоделями. А мальчишки хотят научиться управлять электрической моделью вертолёта, ведь это — первый шаг к освоению профессии лётчика. Наконец, и те, и другие не прочь поиграть на компьютере в игру, моделирующую реальный мир. Например, создать новую цивилизацию или совершить полёт на Марс. Что вы видите общего в намерениях ребят? Сформулируйте основной вопрос урока. Сравните свою формулировку с авторской (с. 284 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните, что такое файл, текст, таблица. (Учебники для 7-го и 8-го классов.) Посмотрите в словаре, как объясняется слово «модель». РЕШЕНИЕ ПРОБЛЕМЫ Прочитайте отрывки из блога: «Мы приехали с родителями в аэропорт с небольшим опозданием и, к счастью, увидели на табло, что наш авиарейс задерживается на полчаса^» 110 Модуль 2. Моделирование «Долетели мы отлично, но только при заходе на посадку самолёт попал в воздушную яму. Он резко пошёл вниз, а я, наоборот, подпрыгнула над креслом, и если бы не ремни, то взлетела бы! Конечно, я страшно испугалась. Папа улыбнулся мне и сказал: «Жива? Это была невесомость. Между прочим, все космонавты тренируются в пикирующем самолёте, чтобы привыкнуть к ней». «Наконец-то моя мечта сбылась, мы в Париже!!! Точнее, мы в аэропорту, и до Парижа нам нужно ещё ехать на поезде. Мы пришли на ж.д. станцию RER, и нам пришлось выяснять по расписанию, какой именно поезд идёт до нужного нам Северного вокзала^» «Я на Северном вокзале, но как же нам добраться до Монмартра, где находится наша гостиница? Так, пробуем сориентироваться по карте. Ах, если бы я знала французский _» • Каким же образом наша героиня со своими родителями добралась до парижской гостиницы, не потерявшись в современном аэропорту, на железнодорожном вокзале и, наконец, в незнакомом мегаполисе, да ещё и не зная французского языка? В каждой из ситуаций, когда вы сталкиваетесь со сложными или непонятными объектами (аэропорт, вокзал), явлениями (невесомость) и процессами (прогулка в незнакомом городе), на помощь вам приходят модели объектов, явлений и процессов - схемы, карты, таблицы, тренажёры, описания. И сложные и непонятные вещи сразу проясняются. Люди создают модели, изучая окружающий мир. Процесс создания модели называется моделированием. Что моделируют люди? Часто это про- § 1. Моделирование, его роль в познании 111 сто окружающие их объекты, естественные или рукотворные. Объекты могут быть очень большими для непосредственного изучения, как, например, земной шар. Поэтому люди придумали его модель: уменьшенную копию - глобус. Хотя и глобус не слишком удобен для путешественника, и люди стали использовать отпечатанные на пергаменте части его поверхности, прообразы современных карт. Для того чтобы изучать поведение морских животных, люди ныряли под воду до тех пор, пока кому-то не пришла в голову идея посадить морских обитателей в большой сосуд с водой. Так появился аквариум - модель подводного мира. Иногда объекты, созданные человеком, настолько сложно устроены, как, например, самолёт или ракета, или чрезвычайно малы и не менее сложны (наночастица), что исследовать, улучшать их и разрабатывать новые подобные проще (а зачастую единственно возможно) по моделям, схемам и чертежам, чем по оригиналам. Похожая ситуация существует и с явлениями природы. Например, известно, что территория Японии подвержена землетрясениям. Надо каким-то образом научиться строить здания, устойчивые к землетрясениям и цунами. Можно, конечно, как и в старину, построить жилища из бамбука и рисовой бумаги и покрыть их камышом, тогда последствия землетрясения, возможно, сведутся, в худшем случае, к ушибам и лёгким травмам. Но современные люди хотят иметь комфортные жилища. Как построить одновременно комфортное и устойчивое здание? Здесь без моделирования не обойтись. Для этого создают специальные установки-вибростенды, способные имитировать (моделировать) землетрясение любой мощности на площадке размером ЮхЮ метров. Теперь макет здания можно построить на такой площадке и проверить на сейсмоустойчивость. Модель такого грозного явления природы, как молния, вы можете увидеть в кабинете физики. Это маломощная электрическая искра. Тем не менее она ведёт себя как настоящая молния, даже издаёт звук, похожий на треск. Процессы в окружающем нас мире - это те же явления, но рассматриваемые в развитии. Они также поддаются моделированию. Например, представьте себе автобусную поездку из Москвы в Великий Устюг на родину Деда Мороза. Как следует ехать - через Ярославль и Вологду (900 км) или Ярославль и Кострому (960 км)? На первый взгляд кажется, что надо ехать кратчайшей дорогой. Но опытный водитель прежде, чем отправиться в путь, поинтересуется, нет ли на пути сильных снегопадов или участков с плохим дорожным покрытием. Принять решение в данной ситуации вам поможет модель «Маршруты» web-сервисов Яндекса (http://maps.yandex.ru/?rt). С помощью этой модели вы сможете найти быстрейший путь за считаные секунды. Это простой пример, но если рассматриваемый процесс сложней, чем автобусная поездка, то без модели в нём просто не разобраться. 112 Модуль 2. Моделирование Как вы заметили, модель используют в тех случаях, когда трудно или невозможно иметь дело с оригиналом. По способу представления оригинала модели бывают материальные и информационные. Материальные модели воспроизводят свойства оригинала в вещественной форме. Примеры: школьный глобус - модель Земли из папье-маше; игрушечный самолётик из бумаги, способный летать, - модель настоящего самолёта. Информационные модели описывают оригиналы на каком-либо языке: естественном или специальном. Например, расписание автобусов даёт представление о работе автостанции, а уравнение закона всемирного тяготения описывает движение планет вокруг Солнца. Можно даже сказать, что, описывая увиденное, например интересного человека или новый автомобиль, вы создаёте его информационную модель. Частный случай информационных моделей - математические модели. Прежде с ними имели дело почти исключительно учёные и инженеры. Например, восьмая планета Солнечной системы Нептун была обнаружена астрономами лишь после того, как её существование было предсказано математиками по отклонениям движения седьмой планеты - Урана от расчётных данных. Математические модели пришли в нашу повседневную жизнь благодаря компьютеру. То, что было раньше уделом учёных, теперь доступно всем, включая школьников. Компьютер не только быстро вычисляет, но помогает наглядно представить поведение объекта моделирования во время расчётов. Примеры таких компьютерных математических моделей: GPS-навигатор для водителя автомобиля; компьютерный тренажёр для обучения пилотированию самолёта. В качестве инструмента для дальнейшего изучения моделей мы будем использовать электронные таблицы (ЭТ). Эти программы относятся к семейству инструментов для создания таблиц, табличных вычислений в них и построения графиков по табличным данным. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Модель - это макет, описание, изображение, схема, используемые для облегчения познания окружающего мира и упрощения процесса разработки новых конструкций. Процесс создания модели называется моделированием. Модели бывают материальные и информационные, в том числе математические. § 1. Моделирование, его роль в познании 113 ПРИМЕНЕНИЕ ЗНАНИИ 1. Запустите электронные таблицы, откройте файл мод1 .xls. Занесите в таблицы возможные модели для перечисленных объектов, явлений и процессов. 2. При помощи операций копирования и вставки занесите в столбец А таблицы под заголовком «Материальные» материальные модели, а в столбец G под заголовком «Информационные» - информационные модели. Если вы сомневаетесь или считаете, что данная модель не относится ни к материальным, ни к информационным, то скопируйте название модели в столбец D. Указание. Чтобы ничего не пропустить, заливайте скопированные вами ячейки цветом. Переименуйте рабочий лист Лист1 - назовите его «Модели». Сохраните результат в папке и под именем, которые укажет учитель. Документ пригодится вам в будущем. ОПЕРАЦИИ Запуск электронных таблиц (ЭТ) Microsoft Excel 2007 1. Нажать кнопку Пуск. 2. Вызвать меню Все программы. 3. Найти пункт Microsoft Office. 4. В выпавшем списке выбрать Microsoft Office Excel 2007. Nvu GanttProject i. CSS 1. Mozilla Sunbird Microsoft Office Microsoft Office Excel 2007 !■'. Microsoft Office Outlook 2007 f-' Microsoft Office PowerPoint 2007 f? Microsoft Office Word 2007 i. Средства Microsoft Office » Mozilla ^ Mist i OpenProj к Software t Windows i. WinRAR к XMind i. Автозагрузка Документы Изображения Музыка Игры Компьютер Панель управления Устройства и принтеры Справка и поддержка Найти программы и файлы Р\ 1 Завершение работы " Й ■ Назад 114 Модуль 2. Моделирование Открытие документа 1. Нажать кнопку Office (в окне программы вверху слева). 2. В выпавшем меню действий с документами выбрать команду Открыть. 3. В появившемся окне Открытие документа выбрать диск, папку и файл. Открытие документа .• •' »БиблиотекиДокументы» Упорядочить Новая папка а • Информатика 9 Уроки ft Microsoft Offi^ ^ Библиотека "Документы" Включает: 2 места Избранное ц Загрузки Недавние ме ■ Рабочий стол I „4 Библиотеки В Видео • Документы ^Изображения Музыка Элементов: 2 Упорядочить: Папка • Дата изменения Тип Размер 06.06.2012 19:15 Папка с файлами 07.06.2012 22:10 Папка с файлами • ^Вс^файлы^хо^^ Сервис • I Открыта ^ I Отмена Выберите файл для предварительного просмотра Имя файла § 1. Моделирование, его роль в познании 115 Окно документа • Calibti -1^ ^ ^ ^ ^ J .■iijHl-w" ' ^Щр^Общий ■ hy; iJS* LjEl 5) ^ ЙГ Л m r Ч _ «1-Й.—«iiWb»n5i^*WJ^ -i^ Itf e Ввод данных в ячейку 1. Выделить ячейку и набрать текст. 2. Нажать значок V Ввод или клавишу Enter. 1 Calibti 11 А *• ■> . *|1*. I 3-г, Л-... * * Ч _-^4‘ л1'.- лобщий_ Y:i .fit “fj 1йг a C D E F G H J K L ■ M ' N , P /> I Проба пера Проба пера 116 Модуль 2. Моделирование Правка(редактирование текста) 1. Дважды щёлкнуть в ячейке или выделить ячейку и нажать клавишу F2. 2. Отредактировать текст. 3. Нажать значок V Ввод или клавишу Enter. Форматирование введённого ранее текста 1. Выделить ячейку. 2. Щёлкнуть правой кнопкой мыши и в контекстном меню выбрать пункт Формат ячеек. 3. Чтобы текст не занимал соседние ячейки, в появившемся окне Формат ячеек установить флажок (поставить галочку) Отображение - переносить по словам. 4. Чтобы залить ячейку цветом, выделить ячейку и выбрать подходящий цвет из пункта Заливка вкладки Гпавная. , Calibri . 11 » ' Ч _ к ■ ■ 1« tr I Общий ;тЯр % м ;is а ■А Новая проба пера Calibre И - А' А* Щ ' S Вырезать Копировать Вставить Специальная вставка... Вставить... Ыдалить Очистить содержимое Фильтр Сортировка Вставить примечание Формат ячеек M ая проба пера 20 § 1. Моделирование, его роль в познании 117 Копирование и вставка данных в ячейки 1. Выделить ячейку. 2. Щёлкнуть правой кнопкой мыши и в контекстном меню выбрать пункт Копировать или нажать комбинацию клавиш Ctrl+C. 3. Выделить ячейку назначения - куда надо скопировать данные. 4. Щёлкнуть правой кнопкой мыши и в контекстном меню выбрать пункт Вставить или нажать комбинацию клавиш Ctrl+V. Копия данных будет помещена в ячейку назначения. Будет скопировано также и форматирование исходной ячейки. 118 Модуль 2. Моделирование ^Calibri - ^ ^ ^ ^ ^ ^ ^'Щщми'Лшт* ^ ЩОбщий ■ ж X Ч _^ ‘ л • к Я я (V fX *:Ai ' 1C л ыллк “ь«1у^СД^Й4^ ш^ т а 3 ~^fvf\ • . “ > i lir i' ^ it Новая проба пера C D E F ► ■■ fiTt» «Wioi «mt *^Л il Вырезать ‘~Л Копировать !S Вст_вить Специальная всттавка... Встгавить... .Удалить Очистить содер;_имое Фильтр Сортировка _ J Вставить приме_ание ^ Формат .ячеек... Вы.брать из раскрывающегося списка... Имя диапазона... Гиперссылка... Calibri - 11 - К К 9 • W J Ж JC ш ^ . ■> - д- :а « ш G H M 20 § 1. Моделирование, его роль в познании 119 Переименование рабочего листа 1. Щёлкнуть правой кнопкой мыши на ярлычке рабочего листа и выбрать пункт Переименовать. 2. Отредактировать имя рабочего листа и нажать клавишу Enter или щёлкнуть мышью на листе. [Общий • ^ д;.-4г Л о ^ ^ . _Е________ G H I ^ K _ Всхавить... .Удалить Переименовать Переместить/скопировать Исходный текст ^ .Защитить лист... Цвет ярлычка • Скрыть Отобразить... I---------------1 Выделить все листы ио|. «чд.чч -пт 20 120 Модуль 2. Моделирование § 2. Построение информационной модели. Численный эксперимент. Визуализация полученных данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Как вам известно из курса истории, предприимчивые переселенцы эпохи Великих географических открытий стремились колонизовать бескрайние просторы открытых ими территорий Нового Света и Австралии. Полагая, что ресурсы новых земель безграничны, они завозили на них домашних животных и основывали фермерские хозяйства. Одновременно на новые территории попадали и «спутники цивилизации» — крысы. Чем всё это закончилось, известно. Расплодившиеся на степных просторах кролики и козы полностью съели растительность на целых островах, а крысы уничтожили на них животный мир. Если бы не срочные меры, принятые правительствами новых территорий, последние могли бы превратиться в бесплодную пустыню. • Какая проблема описана в этой ситуации? Сформулируйте вопрос, ответом на который будет решение этой проблемы. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните из курса математики: что такое натуральные числа; что такое арифметическая прогрессия; что такое геометрическая прогрессия; чем различаются эти прогрессии. РЕШЕНИЕ ПРОБЛЕМЫ Прочитайте текст сообщения с новостной ленты BBC. «Кролики съели остров Остров Маккуори [Macquarie Island), находяидийся под юрисдикцией штата Тасмания, Австралия, терпит экологическую катастрофу. Растительность острова с невообразимой скоростью пожирают кролики, которые расплодились, после того как в 2000 году на Маккуори были истреблены все кошки. Изменения островной флоры видны даже из космоса, сообщает BBC News. [_] Власти решили спасти остров, полностью истребив кроликов, крыс и мышей. Для этого по всему Маккуори будет рассыпана отравленная приманка. Инициатива обойдётся австралийской казне в 17 млн долларов. 09:48 13.01.2009 § 2. Построение информационной модели 121 Если мы будем рассматривать несчастный остров Маккуори как материальную модель непрерывных экологических бедствий в Австралии и Новой Зеландии, то мы заметим, что невольный эксперимент Австралийского правительства длился целых 9 лет. Он обошёлся казне, если даже не принимать во внимание экологический ущерб, в сумму не менее 17 млн долларов, потраченных на исправление ошибок. Отсюда видно, что материальное моделирование не всегда приемлемо для исследования окружающего нас мира. Гораздо эффективнее в работе оказывается информационная модель. Попробуем создать её вместе. Представим, что в пространстве с неограниченным запасом ресурсов оказывается пара кроликов. Для простоты будем считать, что пара кроликов приносит пару крольчат ежеквартально, причём спустя 3 месяца после рождения крольчата могут сами приносить потомство. Примем допущение, что кролики никогда не умирают. Тогда каждый квартал (3 месяца) количество кроликов удваивается: Nt ~ Nt-1 + Nt-1, где: Nt - число животных в текущем квартале; Nt-1 - число животных в предыдущем квартале. Мы получили математическую модель. Чтобы понять, почему она такая, обратимся к таблице (рис. 2.1). Квартал Родители Поколение Всего кроликов 1-е 2-е 3-е 4-е 1 2 2 2 2 2 4 3 2 2+2 2 8 4 2 2+2+2 2+2+2 2 16 5 2 2+2+2+2 2+2+2+2+2+2 2+2+2+2 2 32 Рис. 2.1 В столбцы таблицы занесена численность различных поколений нашей кроличьей колонии. Родителей всегда двое (вы не забыли, что они бессмертны?). Численность 1-го поколения увеличивается на 2 к началу каждого следующего квартала (крольчиха приносит пару крольчат ежеквартально). Со вторым поколением дело обстоит сложнее: крольчата первого поколения сами начинают приносить потомство, достигнув трёхмесячного возраста, причём каждая пара приносит пару потомства. В заданиях к параграфу вы будете испытывать построенную модель на компьютере. Проведение расчётов по математической модели на компьютере называют численным экспериментом. 122 Модуль 2. Моделирование Из правого столбца таблицы видно, что рост численности популяции в рамках нашей модели происходит лавинообразно и ничем не ограничен. Вы также сможете в этом убедиться при проведении численного эксперимента. Насколько это соответствует действительности? Здравый смысл подсказывает, что в реальной жизни динамика роста популяции не может быть безгранична, она ограничена возможностями среды обитания. Для нас очевидно, что рано или поздно в игру вступают такие факторы, как ограниченность ресурсов среды обитания, ограниченный срок жизни обитателей популяции (возраст, болезни) и наличие хищников, оказывающих влияние на число обитателей. Исследования биологов подсказывают, что качественно кривая роста при ограниченных ресурсах (случай острова Маккуори) достигает предела и далее не возрастает (рис. 2.2). Рис. 2.2 Таким образом, наша простейшая модель неограниченного роста несовершенна и нуждается в уточнении. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Человек далеко не всегда может исследовать оригинальные процессы и явления, происходящие в окружающем мире. Чаще всего, в силу ограниченности времени и ресурсов, он вынужден создавать модели объектов исследования. Создание материальных моделей объектов исследования нередко оказывается слишком дорогим и долгим удовольствием. В последнее время широкое распространение получили информационные модели и их частный случай - математические модели. При создании математической модели исследуемое явление описывается на языке математики, а затем по полученному математическому описанию выполняются расчёты. Результаты расчётов часто представляют для наглядности в виде графиков и сравнивают с реальным явлением или процессом. § 2. Построение информационной модели 123 ПРИМЕНЕНИЕ ЗНАНИИ 1. Требуется зафиксировать найденную закономерность роста популяции кроликов в информационной модели. Для этого сначала откройте сохранённый на предыдущем занятии документ и перейдите на новый лист. Назовите его «Моделирование популяции», на нём вы будете строить конкретную модель развития популяции кроликов. Квартал Число кроликов 1 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Для начала создайте на новом, пока ещё пустом листе шапку будущей таблицы и заполните значениями левый столбец. Далее занесите в ячейку начальную численность популяции. Это может быть любое чётное натуральное число, не меньшее 2, потом вы его сможете изменить. Теперь занесите в ячейку, соответствующую второму кварталу, формулу, соответствующую математической модели расчёта численности популяции Nt = Nt1 + Nt-1. В электронных таблицах вместо Nt-1 нужно записать адрес ячейки с данными, формула примет вид, например, =B2+B2. Скопируйте её на оставшиеся ячейки с данными для кварталов 3-15. Программа электронных таблиц тут же рассчитает значения численности популяции. Почему формула, справедливая для первого квартала, оказалась пригодной для других ячеек диапазона? Проверьте несколько ячеек с формулами для кварталов 2-14 и убедитесь в том, что ссылки на ячейки (адреса ячеек) в формулах изменились. Изменяющиеся при копировании адреса называются относительными. При копировании эти адреса меняются в соответствии со смещением формулы-копии по отношению к формуле-оригиналу. В данном случае слагаемые в формуле будут являться ссылками на ячейку - «соседку сверху». Попробуйте изменить начальное значение численности в верхней строке таблицы. ЭТ немедленно пересчитает значения для других моментов времени. Установите начальную численность равной 20 и сверьте свой результат с приведённым ниже. 124 Модуль 2. Моделирование Квартал Число кроликов 1 20 2 40 3 80 4 160 5 320 6 640 7 1280 8 2560 9 5120 10 10240 11 20480 12 40960 13 81920 14 163840 15 327680 Если результаты расходятся, проверьте расчётную формулу. Если не получается найти и исправить ошибку, обратитесь к учителю. 2. Чтобы представить наглядно темпы роста колонии кроликов, постройте график роста популяции кроликов от времени. Для этого воспользуйтесь возможностями ЭТ по созданию диаграмм. Постройте точечную диаграмму по полученным результатам расчётов. Сохраните документ. § 2. Построение информационной модели 125 3. Как называется полученная последовательность численности модельной популяции? Квартал Число кроликов Отношение числа кроликов в текущем квартале к их числу в предыдущем квартале 1 20 2 40 3 80 4 160 5 320 6 640 7 1280 8 2560 9 5120 10 10240 11 20480 12 40960 13 81920 14 163840 15 327680 Указание. Рассчитайте отношение двух последовательных значений численности популяции для различных моментов времени и сравните их. Если вопрос останется непонятным, вернитесь к разделу «НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ» этого параграфа. 126 Модуль 2. Моделирование ОПЕРАЦИИ Быстрое заполнение значениями диапазона ячеек 1. Занести в первую ячейку диапазона начальное значение (для примера, разобранного в параграфе, это 1). 2. Выделить ячейку и подвести курсор к её правому нижнему углу. Курсор превратится в маленький крестик. 3. Нажать правую кнопку мыши и, удерживая её, протащить курсор до последней ячейки диапазона. В появившемся меню выбрать пункт Заполнить. Получится последовательность целых чисел от 1 до 15 с шагом 1 (арифметическая прогрессия). Синтаксис формул электронных таблиц Формулы в ЭТ всегда начинаются со знака равенства (=). Начальный знак равенства позволяет ЭТ отличить формулу от простого текста. В отличие от простого текста, в ячейке по умолчанию высвечивается не сама формула, а вычисленное по ней значение. В формулах используются числа, ссылки на ячейки (адреса ячеек) и значения функций, связанные знаками арифметических и логических операций. Основные арифметические операции выполнятся в порядке, указанном в таблице. Если порядок выполнения нескольких операций одинаков, то операции выполняются слева направо. Операции в круглых скобках ( ) выполняются в первую очередь. Обозначение Смысл Порядок выполнения () Круглые скобки 0 Л Возведение в степень 1 * Умножение 2 / Деление 2 + Сложение 3 - Вычитание 3 § 2. Построение информационной модели 127 Ввод формулы 1. Занести в ячейку знак =, он всегда стоит в начале формулы. 2. Продолжить набор формулы. Ссылку на ячейку (в нашем примере B2) можно просто ввести, как текст. Но проще во время ввода формулы щёлкнуть в ячейке, на которую нужно сослаться, и ЭТ автоматически подставит её имя в формулу. 3. По окончании ввода нажать значок V Ввод или клавишу Enter. Копирование формулы на диапазон ячеек — корень ’ X ✓ А = B2+B2 1 A B C D E F G Время Число 1 (квартал) кроликов 2 1 20 3 2 = B2+B2 4 3 5 4 6 5 7 6 8 7 9 8 10 9 11 10 12 11 13 12 14 13 15 14 16 15 Si -I 1. Выделить ячейку с формулой, подлежащей копированию. 2. Подвести курсор к её правому нижнему углу. Курсор превратится в маленький крестик. 3. Нажать левую кнопку мыши и, удерживая её, протащить курсор до последней ячейки диапазона. Диапазон ячеек заполнится формулами. В ячейках по умолчанию отображаются значения - результаты вычислений по формулам. /■— и л , B3 • . X ✓ Д = B2+B2 1 A B C D E F G Время Число 1 (квартал) кроликов 2 1 20 3 2 40 4 3 5 4 6 5 7 6 8 7 9 8 10 9 11 10 12 11 13 12 14 13 15 14 16 15 41Ij 128 Модуль 2. Моделирование « Ш •< « Г г». •J ч ^'J i B3 ЛА. A B Время Число 1 (квартал) кроликов 2 ' 1 20 3 2 40 4 1 3 80 5 4 160 6 5 320 7 , 6 640 8 : 7 1280 9 ! 8 2560 10 9 5120 11 10 10240 121 11 20480 13' 12 40960 14' 13 81920 15 14 163840 16 V 1 15 327680 Построение точечной диаграммы по результатам расчётов 1. Выделить диапазон ячеек с данными для построения диаграммы. 2. Выбрать вкладку Вставка. 3. Выбрать для вставки точечную диаграмму с гладкими кривыми и маркерами значений. 4. Перетащить диаграмму в удобное место на листе и отформатировать её. ВСТЭВКЭ стдцщщц •cCMvni Д*ммм мГсъл Й 1 См«м» гляг> ■I ^ IJ У-Ч' А2 аГТ E F G Время (квартал) Число кроликов 2 1 20 3 2 40 4 3 80 5 4 160 6 5 320 7 6 640 8 7 1280 9 8 2560 10 9 5120 11 10 10240 12 11 20480 13 12 40960 14 13 81920 15 14 163840 15 327680 Точечная ■ir,"'* Точечная % ы 4 Т- Л § 2. Построение информационной модели 129 130 Модуль 2. Моделирование § 3. Исследование модели Томас Мальтус [1766-1834] ПОСТАНОВКА ПРОБЛЕМЫ УРОКА На рубеже XVIII—XIX веков вышла книга английского учёного Томаса Мальтуса «Очерк о законе народонаселения». Книга имела в то время громкий успех и широко обсуждалась в научных кругах. Мальтус считал, что население Земли растёт в геометрической прогрессии, а продовольственные ресурсы для жизни - в арифметической (рис. 2.3). Следовательно, рост населения должен неизбежно обогнать пищевую базу, и человечество ожидает голодная смерть. Самый эффективный способ борьбы с голодом, по Мальтусу, - войны и эпидемии, способные затормозить рост народонаселения. Проблема роста народонаселения, по Мальтусу ■ Численность населения ■ Количество продуктов питания Рис. 2.3 Что и говорить, безрадостное будущее предсказывал Мальтус человечеству. С тех пор население Великобритании увеличилось с 10 млн человек до 50 млн и голодная смерть британцам, похоже, всё ещё не грозит. § 3. Исследование модели 131 Какую проблему видел Мальтус? Согласны ли вы с ним? Как бы вы сформулировали основные вопросы урока? Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните из курса математики: что такое геометрическая прогрессия; каковы её свойства. Вспомните из курса информатики для 7-го и 8-го классов, что такое цикл. Посмотрите также в словаре значение слов «цикл», «циклический». РЕШЕНИЕ ПРОБЛЕМЫ Предвосхищение основания (лат. petitio principii) - логическая ошибка в доказательстве, заключающаяся в том, что в качестве аргумента (основания), обосновывающего тезис, приводится положение, которое хотя и не является заведомо ложным, однако нуждается в доказательстве. Так, социологическое учение английского экономиста и священника Т. Мальтуса опиралось на два основных аргумента: население растёт в геометрической прогрессии, в то время как средства к существованию возрастают лишь в арифметической прогрессии. Оба эти аргумента были недоказанными, поэтому Мальтус совершил ошибку предвосхищения основания. Ошибка стала явной, когда было доказано, что население растёт гораздо медленнее, чем предполагал Мальтус, а объём средств к существованию, напротив, возрастает намного быстрее. Словарь терминов логики. - М., 2000 г. Работа по созданию модели и её исследование практически никогда не заканчиваются после создания первого варианта модели (что сделал Мальтус) и её испытания (на что у него не хватило жизни). Неоценимая заслуга Мальтуса состоит в том, что он привлёк внимание учёных к проблеме роста населения Земли, и начатое им дело продолжили его многочисленные оппоненты. Окружающий нас мир неизмеримо богаче, чем любая модель, и мы можем только приблизиться к действительности в процессе моделирования ценой упорного труда. Как правило, в работе с моделями выделяют три этапа: 1. Моделирование. Для создания модели объекта, явления или процесса нужно отбросить второстепенное и постараться выделить существенные черты и свойства объекта, который вы изучаете. Для уточнения представления проводятся дополнительные исследования и эксперименты (иногда мысленные, но если это возможно, экспериментируют с реальным объектом моделирования). Далее изготавливают материальную модель или переходят 132 Модуль 2. Моделирование к описанию объекта на некотором языке, чаще всего на языке математики, то есть строят информационную (математическую) модель. 2. Модельный эксперимент. Полученную модель испытывают. В случае математической модели эксперимент называют численным и проводят расчёты на компьютере. 3. Выдвижение гипотез. Полученные результаты сравнивают с оригинальным объектом моделирования и, если они не соответствуют поведению объекта, возвращаются к пункту 1. Чтобы усовершенствовать модель в процессе её исследования, выдвигают гипотезы о причинах несоответствия оригиналу. Гипотеза (по-гречески означает предположение) - недоказанное утверждение, предположение или догадка. Как правило, гипотезы высказывают на основе наблюдений за реальным процессом или явлением, и поэтому они должны выглядеть правдоподобно. На основе гипотез модель изменяют и повторяют модельный эксперимент. Циклический процесс исследования модели (рис. 2.4) продолжают до тех пор, пока не будет достигнуто удовлетворительное соответствие поведению оригинала. Объект, явление или процесс ИССЛЕДОВАНИЕ МОДЕЛИ Модельный эксперимент Рис. 2.4 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Чтобы получить модель, необходимо выделить самые существенные свойства исследуемого объекта, явления или процесса. Далее их переносят в модель, материальную или информационную. В случае информационной модели эти свойства описывают на каком-либо формальном языке, например математическом. Этот этап называется моделированием. Далее, на этапе модельного эксперимента, модель испытывают. В случае математической модели эксперимент называют численным и проводят на компьютере. Результаты эксперимента сравнивают с оригинальным объектом, явлением или процессом. Если удовлетворительного совпадения поведения модели и оригинала не получено, выдвигают гипотезы о причинах несоответствия и возвращаются к этапу моделирования. Этот циклический процесс и называется исследованием модели. § 3. Исследование модели 133 ПРИМЕНЕНИЕ ЗНАНИИ 1. Откройте в ЭТ документ, сохранённый на предыдущем занятии, и перейдите на лист «Моделирование популяции». Поставьте себе задачу учесть то обстоятельство, что кролик в реальных условиях (хищники, болезни) живёт примерно один год. Таким образом, будет выдвинута гипотеза о том, что причиной несоответствия модели реальности является допущение о неограниченном сроке жизни членов популяции. Следовательно, в 5-м квартале (то есть по прошествии четырёх кварталов, с 1 -го по 4-й, - одного года) вам придётся распрощаться с двумя кроликами - родоначальниками популяции. Разграфите ещё один столбец справа и озаглавьте его «Число кроликов с учётом смертности». Начальное значение и формулы для кварталов 2-4 не изменятся, их можно просто скопировать из столбца слева. Формулу для 5-го квартала отредактируйте, придав ей следующий вид: = N4 + N4 — Ni, где: N4 - число животных в 4-м квартале; N1 - число животных в 1-м квартале. Тем самым численность популяции, начиная с 5-го квартала, уменьшается за счёт животных, проживших один год. Вам остаётся только скопировать новую формулу для 5-го квартала на диапазон, соответствующий кварталам 6-15. • Сравните численность животных в левой и правой колонках. Попробуйте объяснить разницу в расчётных значениях. Если ваши расчёты не совпадают с приведённой ниже справочной таблицей, попросите учителя помочь вам найти причину ошибки. Квартал Число кроликов Число кроликов с учётом смертности 1 20 20 2 40 40 3 80 80 4 160 160 14 163840 74720 15 327680 137440 2. Теперь представьте ваши вычисления в наглядном виде. Для этого воспользуйтесь уже знакомыми вам возможностями ЭТ Microsoft Excel по созданию диаграмм. 134 Модуль 2. Моделирование Что изменилось в вашей модели? Стала ли она ближе к реальности? Из диаграммы видно, что неудержимый рост популяции не сдерживает даже ограничение срока жизни кролика до одного года. Более того, возникает подозрение, что характер роста численности популяции по-прежнему описывается геометрической прогрессией. ■ Число кроликов , Число кроликов с учётом смертности Так ли это? Проверим. 3. Разграфите ещё один столбец справа, подпишите его «Отношение числа кроликов в текущем квартале к их числу в предыдущем квартале» и рассчитайте это отношение для числа животных с учётом смертности. • Каково ваше экспертное заключение о характере зависимости? Как она называется? Будет ли число наших подопечных неограниченно расти, невзирая на потери от хищников и болезней? § 3. Исследование модели 135 Указание. Если вопросы остаются непонятными, вернитесь к заданию 3 предыдущего параграфа и разделу «НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ» этого параграфа. Квартал Число кроликов Число кроликов с учётом смертности Отношение числа кроликов в текущем квартале к их числу в предыдущем квартале 1 20 20 2 40 40 3 80 80 4 160 140 14 163 840 74 720 15 327 680 137 440 Не забудьте сохранить рабочий документ. Он ещё пригодится вам в будущем. 136 Модуль 2. Моделирование ОПЕРАЦИИ Построение точечной диаграммы по нескольким сериям данных 1. Выделить диапазон ячеек с данными для построения диаграммы. 2. Выбрать вкладку Вставка. 3. Выбрать для вставки точечную диаграмму с гладкими кривыми и маркерами значений. 4. Перетащить диаграмму в удобное место на листе и отформатировать её. ' А1 ’ ■ -■ • .. квартал A B C D E Квартал Число Число кроликов с кроликов учетом смертности 2 1 20 20 3 2 40 40 4 3 80 80 5 4 160 160 6 5 320 300 7 6 640 560 8 7 1280 1040 9 8 2560 1920 10 9 5120 3540 11 10 10240 6520 12 11 20480 12000 13 12 40960 22080 14 13 81920 40620 15 14 163840 74720 46 15 327680 137440 Д Inn Применяется, если число точек данных по i оси X невелико, а данные представляют собой функцию. Г~^А^ Л к л _ -J О А1 квартал A B C Квартал Число Число кроликов с 1 кроликов учетом смертности 2 1 20 20 3 2 40 40 4 3 80 80 5 4 160 160 6 5 320 300 7 6 640 560 8 7 1280 1040 9 8 2560 1920 10 9 5120 3540 11 10 10240 6520 12 11 20480 12000 13 12 40960 22080 14 13 81920 40620 15 14 163840 74720 15 327680 137440 D E J K 30000 20000 § 4. Совершенствование модели 137 § 4. Совершенствование модели ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Прочитайте цитату из повести А. и Б. Стругацких «Понедельник начинается в субботу»: «Этот Выбегалло заявлял, что все беды, эта, от неудовольствия проистекают, и ежели, значить, дать человеку всё — хлебца, значить, отрубей пареных, — то и будет не человек, а ангел. Нехитрую эту идею он пробивал всячески, размахивая томами классиков, из которых с неописуемым простодушием выдирал с кровью цитаты, опуская и вымарывая всё, что ему не подходило. В своё время учёный совет дрогнул под натиском этой неудержимой, какой-то даже первобытной демагогии, и тема Выбегаллы была включена в план. Действуя строго по этому плану, старательно измеряя свои достижения в процентах выполнения и никогда не забывая о режиме экономии, увеличении оборачиваемости оборотных средств, а также о связи с жизнью, Выбегалло заложил три экспериментальные модели: модель человека, неудовлетворённого полностью, модель человека, неудовлетворённого желудочно, модель человека, полностью удовлетворённого». Прочитайте в главе 4 повести Стругацких (текст повести вы можете найти в Интернете) о трагикомическом конце творения доктора наук Выбегалло - модели человека, неудовлетворённого желудочно. Как вы считаете, почему модель Выбегалло погибла? О чём также забыл, поддавшись натиску Выбегалло, учёный совет? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Уметь вводить и редактировать формулы в ячейки ЭТ и копировать их в другие ячейки. (§ 2 и учебник для 8-го класса, книга 1, модуль «Принятие решения».) Строить по результатам расчёта точечную диаграмму и форматировать её. (§ 3 и учебник для 8-го класса, книга 1, модуль «Принятие решения».) РЕШЕНИЕ ПРОБЛЕМЫ Попытка усовершенствовать нашу модель роста популяции оказалась неудачной. Мы выдвинули гипотезу, что причиной несоответствия модели реальности было допущение о неограниченном сроке жизни членов популяции. Но расчёты по усовершенствованной модели показали, что экспериментальная популяция в зависимости от заданного темпа прироста продолжает 138 Модуль 2. Моделирование неограниченный рост в геометрической прогрессии и в конечном счете погибает, как модель профессора Выбегалло. Вместе с тем реальная популяция, как правило, живёт в равновесии с окружающей её средой. Не будем унывать и попытаемся понять, в чём здесь дело. Сходство странной модели псевдоучёного Выбегалло и наших моделей роста популяции состоит в том, что все эти модели не имеют обратных связей, то есть никак не реагируют на изменения собственного состояния и состояния окружающей среды. «Кадавр, неудовлетворённый желудочно», непрерывно ест, повинуясь только программе своего модельного существования. Наши воображаемые кролики ежеквартально размножаются, «не обращая внимания» на количество пищи на своём острове. Для природных реальных процессов характерно как раз обратное - наличие отрицательных обратных связей, способствующих стабилизации состояния процессов. Рассмотрим несколько примеров. Если усиливается ветер и на море зарождается шторм, то начинает работать сила трения, переводящая энергию волн в тепло, и шторм не достигает силы цунами. То же самое характерно для экономических и социальных процессов: резкий рост спроса на товары влечёт немедленный рост цен на них и рост спроса замедляется. Одновременно рост цен стимулирует рост производства, удовлетворяющего спрос. Если отрицательные обратные связи в силу каких-то причин отсутствуют или меняют свой знак, «разгоняя» процесс, вместо того чтобы тормозить его, возникают катастрофические явления - природные и социальные катаклизмы. Выдвинем гипотезу о том, что если прирост численности популяции сделать зависимым от её численности так, что при некотором значении численности рост популяции останавливается (то есть ввести отрицательную обратную связь в нашу модель развития популяции), то поведение нашей модели будет ближе к реальности. Нам не удалось найти в Интернете прямых данных о площади земли, достаточной для питания одного кролика. Тем не менее известно, что Ю кроликов съедают столько же корма, как одна овца (проверьте самостоятельно, так ли это), а овца может прокормиться с 1,5 гектара степи (Э. Шиптон. В стране бурь. - М. : Мир, 1967). Пусть размеры нашего воображаемого острова 15x1 км, тогда его площадь - 1500 гектаров. Тогда на острове смогут прокормиться максимум 1 500/1,5'10 = 10 000 кроликов. Попытаемся теперь учесть в нашей математической модели тот факт, что при достижении популяцией численности в 10 000 особей её дальнейший рост должен остановиться, так как новым членам популяции просто не достанется пищи, и они погибнут. § 4. Совершенствование модели 139 Запишем нашу новую гипотезу на языке математики: Nt = • (1 - Nt-1/10 000), где: Nt - число животных в текущем квартале; Nt-1 - число животных в предыдущем квартале. Из формулы видно, что когда число кроликов N^ значительно меньше предельного значения 10 000, значение в скобках близко к единице и формула практически переходит в формулу роста в геометрической прогрессии: Nt = Nt-1+ Nt-1 = 2 • Nt-1. Если же число кроликов Nt приближается к 10 000, значение в скобках близко к нулю и наша формула приобретает вид: Nt Nt-1 + 0 • Nt-1 Nt-1. Таким образом, рост численности популяции по мере приближения к 10 000 должен замедлиться и совсем остановиться по достижении численностью максимального значения. Теперь вспомним кривую роста популяции в системе с ограниченными ресурсами (см. § 2, рис. 2.2) и перейдём к численному эксперименту для проверки нашей гипотезы. Численный эксперимент вы сможете провести, выполняя задания к параграфу. В результате вы получите точечные диаграммы численности популяций неограниченного роста, роста с учётом смертности и роста с учётом ограниченных ресурсов (рис. 2.5). а Кривая, отражающая рост популяции с учётом ограниченности ресурсов, называется S-образной или логистической (название кривой не имеет отношения к логистике - науке об управлении материальными ресурсами). Такое название дал ей бельгийский математик Пьер ФерхнЮльст, занимавшийся в XIX веке исследованием проблемы народонаселения вслед за Томасом Мальтусом. Интересно, что в 1830-х годах он предсказал верхнюю границу населения Бельгии, равную 9 400 000 человек. В настоящее время население Бельгии составляет немногим больше 10 млн, что говорит о хорошей точности модели Ферхюльста. Пьер Франсуа Ферхюльст [1804-1849] 140 Модуль 2. Моделирование ■ Число кроликов . Число кроликов с учётом смертности Число кроликов с учётом ограниченности ресурсов Рис. 2.5 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Далеко не всегда исследователи сразу получают при математическом моделировании хорошее совпадение поведения математической модели и оригинала. Часто приходится искать причины несоответствия, выдвигать на этот счёт разнообразные гипотезы, корректировать модель, повторять численный эксперимент и сравнивать его результаты с оригиналом. Большую часть гипотез при этом приходится отвергать, но некоторые из них после доработки ложатся в основу окончательной модели явления или процесса. При проведении численного эксперимента в работе с математической моделью широко используется компьютер и специальное программное обеспечение, в том числе электронные таблицы. § 4. Совершенствование модели 141 ПРИМЕНЕНИЕ ЗНАНИИ 1. Откройте в ЭТ документ, сохранённый на предыдущем занятии, и перейдите на лист «Моделирование популяции». Добавьте в таблицу значений численности популяции ещё один столбец. Озаглавьте его «Число кроликов с учётом ограниченности ресурсов». Занесите в ячейку, соответствующую 1-му кварталу, такое же начальное значение численности популяции, какое вы использовали на предыдущих занятиях. В ячейку для 2-го квартала занесите формулу, соответствующую математической модели: N1 + N1^(1 - N1/10 000), где N1 - начальное число животных; 10 000 - максимальное число животных, способных прокормиться на территории по нашим расчётам. Скопируйте расчётную формулу на диапазон ячеек для кварталов 3-15 и сравните ваш результат с приведённым ниже. Квартал Число кроликов Число кроликов с учётом смертности Число кроликов с учётом ограниченности ресурсов 1 20 20 20 2 40 40 40 3 80 80 80 4 160 160 159 13 81 920 40 620 9 995 14 163 840 74 720 10 000 15 327 680 137 440 10 000 Если результаты ваших расчётов в правом столбце отличаются от образца, проверьте начальное значение и расчётные формулы. Если с проблемой не удаётся справиться самостоятельно, попросите учителя вам помочь. 2. Постройте по результатам расчётов численности популяций неограниченного роста, роста с учётом смертности и роста с учётом смертности и ограниченных ресурсов точечные диаграммы для кварталов 1 -1 5. 142 Модуль 2. Моделирование § 5. Математические и статистические вычисления в процессе моделирования ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Выполняя численные эксперименты, инженеры-конструкторы и учёные сталкиваются с необходимостью автоматически подсчитывать различные математические характеристики для полученных в ходе расчётов наборов данных. Чаще всего это сумма, среднее арифметическое, максимум или минимум для набора числовых данных. Программы для подобных вычислений входят в любой курс программирования. • Как вы думаете, должен ли исследователь, вооружённый электронными таблицами, уметь программировать самостоятельно? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните из курса математики: что такое среднее арифметическое набора значений; что такое минимум (максимум) функции на отрезке или наборе значений. НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Современные электронные таблицы умеют вычислять не только математические функции, но и множество статистических, финансовых и текстовых функций. Если в библиотеке нет нужной вам функции, её можно написать самостоятельно на языке VBA и включить в стандартную библиотеку. Но, по крайней мере, пока нам программировать не придётся. Наша задача на сегодня - научиться пользоваться некоторыми из функций ЭТ (рис. 2.6), а затем и остальными по мере необходимости. Название функции Семейство функций Обозначение Сумма значений Математические СУММ() Среднее арифметическое значение Статистические СРЗНАЧ() Минимум Статистические МИН() Максимум Статистические МАКС() Рис. 2.6 Функции вставляют в формулы ЭТ, они участвуют в вычислениях наряду с числами и ссылками на ячейки. В скобках за обозначением функции указывается её аргумент, в нашем случае - диапазон ячеек, для которых надо вычислить значение функции. § 5. Математические и статистические вычисления в процессе моделирования 143 Подробные сведения о функциях доступны в справочной системе программы электронных таблиц. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Современные ЭТ имеют мощную встроенную библиотеку разнообразных функций - математических, статистических, финансовых и прочих. ПРИМЕНЕНИЕ ЗНАНИЙ Откройте в ЭТ документ, сохранённый на предыдущем занятии, и перейдите на лист «Моделирование популяции». Разграфите строку в нижней части таблицы численности популяции и подсчитайте с помощью функции ЭТ среднее арифметическое население популяции без учёта смертности и с её учётом. Квартал Число кроликов Число кроликов с учётом смертности 1 20 20 2 40 40 3 80 80 4 160 16 14 163840 119360 15 327680 230080 Среднее арифметическое значение: ОПЕРАЦИИ Вставка функции в формулу 1. Дважды щёлкнуть в ячейке с формулой для перехода в режим редактирования. 2. Выбрать вкладку Гпавная. 3. В группе Редактирование щёлкнуть на вертикальной стрелочке правее знака Z и выбрать из меню пункт Среднее. 4. ЭТ автоматически подставит функцию СРЗНАЧ() и задаст диапазон ячеек, по значениям которых будет вычисляться среднее арифметическое. 144 Модуль 2. Моделирование Если вам нужен другой диапазон, то выделите его (проведите мышью, удерживая нажатую левую кнопку, по этому диапазону). 5. Нажать клавишу Enter или значок V Ввод. ^Times New ^12 Л Ж ч . Квартал Число кроликов Чило кроликов с учетом смертности 1 20 20 2 40 40 3 80 80 4 160 160 5 320 300 6 640 560 7 1280 1040 8 2560 1920 9 5120 3540 10 10240 6520 11 20480 12000 12 40960 22080 13 81920 40620 14 163840 74720 15 327680 137440 Среднее арифметическое значение = ??? il». я sK if I Автосумма t Сумма . .. Средне I Максимум Щ I Минимум f K ^ Дру.аие функции... N ip II*- fe — * -г н _ • Д с - S сК «г а - ”в17 Т г- 1 A Квартал B Число кроликов C " “ Чило кроликов с учетом смертности 2 1 ' 20 20 3 2> 40 40 4 3 t 80 80 5 4 160 160 6 5t 320 300 7 6t 640 560 8 it 1280 1040 9 8| 2560 1920 10 9 , 5120 3540 11 I0| 10240 6520 12 11 20480 12000 13 40960 22080 14 13 . 81920 40620 15 14 ' 163840 74720 16 15 1 327680 137440 17 =срзнАЧ(ва!а^) ??? [=СРЗНАЧ(чис J K L M N , G H 14 Hi New R G H 145 Проверь себя Задание 1 1. Вычислите с помощью электронных таблиц: A = 121 - 3^(34 - 71) + 43, B = (5^53 - 15)/(233 - 83), C = A - B. 2. Оформите ответ в ЭТ в виде таблицы: A = B = C = 3. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 1. Постройте в ЭТ таблицу значений функции у = 2^х + 3 и её график (точечную диаграмму) для х [-5; 5] с шагом 1. x -5 -4 4 5 2. Сохраните файл в папке и под именем, которые укажет учитель. 146 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 1. Отформатируйте метеорологическую таблицу, используя стили ячеек ЭТ. Залейте ячейки с положительными значениями температуры светлооранжевым цветом, с отрицательными - светло-синим. Месяц Год 2000 2001 2002 2003 2004 1 -15 -16 -14 -14 -11 2 -13 -15 -13 -13 -12 3 -6 -5 -6 -3 -5 4 3 2 -1 0 -1 5 13 11 11 11 12 6 18 16 16 16 14 7 21 20 20 22 20 8 20 20 19 18 19 9 17 17 17 16 17 10 5 6 6 3 2 11 -1 -1 -2 -1 -2 12 -13 -10 -11 -11 -9 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Найдите при помощи ЭТ значения выражений: а) (34 + 12)/23; б) (342 + 2.34.12 + 122)/2. Задание 3 1. Постройте с помощью ЭТ модель треугольника Паскаля: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 147 Треугольник строится по следующим правилам: • Самый левый элемент строки всегда единица. • Любой другой элемент строки равен сумме двух элементов, расположенных в предыдущей строке над ним и левее его. • Считается, что в пустой клетке находится 0. 2. Найдите в отдельном столбце сумму элементов каждой из строк треугольника. Как называется полученная последовательность? 3. Сохраните файл в папке и под именем, которые укажет учитель. Задание 4 1. Постройте в ЭТ таблицу значений функции у = X2 на отрезке [-5; 5] с шагом 1. x У -5 -4 4 5 2. Найдите среднее арифметическое значений функции. 3. Постройте график функции (точечную диаграмму). 4. Сохраните файл в папке и под именем, которые укажет учитель. ПРИМЕНЕНИЕ ЗНАНИЙ (повышенный уровень] Задание 1 1. Создайте в ЭТ последовательность нечётных чисел от 1 до 99 в столбик. 2. Найдите сумму и среднее значение этих чисел. 3. Проверьте, верно ли, что каждое число этой последовательности, кроме первого и последнего, равно среднему арифметическому ближайших к нему сверху и снизу чисел. 4. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 1. Постройте в ЭТ таблицу значений функции у = X3 на отрезке [-5; 5] с шагом 1. x У -5 -4 4 5 148 2. Найдите среднее арифметическое значений функции. Объясните полученный результат. 3. Постройте график функции (точечную диаграмму). 4. Сохраните файл в папке и под именем, которые укажет учитель. Задание 3 Создайте с помощью ЭТ таблицу умножения натуральных чисел от 2 до 9 такую же, как на последней странице школьной тетради в клеточку. ПРИМЕНЕНИЕ ЗНАНИЙ (максимальный уровень] Задание 1 1. Создайте с помощью ЭТ таблицу Пифагора - таблицу произведений натуральных чисел от 2 до 9. Это самая компактная форма представления таблицы умножения. Можно назвать её также одной из первых в истории математики шпаргалок: 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 Указание. Для того чтобы «запретить» ссылкам изменяться по строке или столбцу, поставьте знак $ перед обозначением строки или столбца соответственно. Можно также, выделив ссылку в процессе ввода или редактирования, нажать клавишу F4 несколько раз. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Древняя легенда приписывает создание шахмат некоему брамину. За своё изобретение он попросил у раджи незначительную на первый взгляд награду: столько пшеничных зёрен, сколько окажется на шахматной доске, если на первую клетку положить одно зерно, на вторую - два зерна, на третью - четыре зерна и т.д. до последней 64-й клетки. 149 1. Создайте с помощью ЭТ модель шахматной доски с зёрнами на ней из задачи о брамине и радже. Клетки модельной доски раскрасьте в чёрный и белый цвета. 2. Подсчитайте количество зёрен в каждой из 8 горизонталей и 8 вертикалей шахматной доски. В какой из них более всего зёрен; в какой - менее всего? 1 2 4 8 16 32 64 128 3. Сохраните файл в папке и под именем, которые укажет учитель. 150 Итоговая проверочная работа Задание 1 1. В таблице приведены результаты численного эксперимента и данные, полученные по результатам наблюдения за реальным i процессом: I Время Численность популяции Численность популяции - фактическая расчёт 1 20 20 2 45 49 3 112 120 4 290 293 5 699 716 6 1700 1741 7 4135 4176 8 9698 9726 9 21100 21086 10 38950 38767 11 51405 51396 12 49412 49315 13 50564 50294 14 49895 49865 15 50160 50060 16 50120 49973 17 50212 50012 18 49294 49994 19 50052 50002 20 49299 49999 21 51001 50001 22 50700 50000 23 50300 50000 24 50200 50000 25 50170 50000 26 50030 50000 27 50070 50000 28 50120 50000 29 50130 50000 151 Постройте по табличным данным точечную диаграмму и дайте заключение о степени соответствия реальных данных модельным. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Последовательность чисел Фибоначчи строится по следующим правилам: а) первое число равно 1; б) второе число равно 1; в) каждое последующее число равно сумме двух предыдущих. 1. Постройте в ЭТ последовательность чисел Фибоначчи в столбик и определите порядковый номер первого числа, которое окажется больше миллиона. Й Последовательность Фибоначчи впервые предложил итальянский математик XIII века Леонардо Пизанский, исследовавший процесс размножения... кроликов. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 3 1. Постройте в ЭТ последовательность первых 20 чисел Фибоначчи в столбик и рассчитайте отношение каждого следующего числа в последовательности к предыдущему. Постройте график зависимости этого отношения от порядкового номера числа. 2. Верно ли, что последовательность Фибоначчи стремится с ростом номера числа к геометрической прогрессии, причём знаменатель прогрессии равен пропорции золотого сечения (Vs + 1 )? 2 ' Докажите или опровергните эту гипотезу при помощи ЭТ. 3. Сохраните файл в папке и под именем, которые укажет учитель. 152 Модуль 2. Моделирование § 6. Параметризация математической модели ПОСТАНОВКА ПРОБЛЕМЫ УРОКА В процессе моделирования часто приходится видоизменять характеристики модели, не изменяя модель по существу, то есть не выдвигая новых гипотез. Например, проектируя стальной мост, увеличивают толщину материала ферм для повышения его прочности или, прогнозируя погоду, изменяют срок прогноза. Если инженеры или учёные работают при этом с материальной моделью, они бывают вынуждены изготавливать её вновь. • Как вы считаете, как поступают учёные в этой ситуации с информационной (математической) моделью? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ С какого знака начинается формула в ЭТ? (§ 2) Как ввести формулу в ячейку ЭТ? (§ 2) Как отредактировать ранее введённую формулу? (§ 5) Как скопировать формулу на диапазон ячеек? (§ 2) РЕШЕНИЕ ПРОБЛЕМЫ Прочитайте фрагмент разговора в магазине: «Так, футболка симпатичная, только “висит на тебе мешком”. Какой это размер? Ну да, это L. Девушка, а поменьше футболки есть? S, например?» Конструкторы в процессе моделирования одежды решают массу противоречивых задач. Например, как получить модную, стильную и недорогую вещь. Если им удаётся справиться с этой задачей, то они делают чертежи-выкройки сразу целого ряда предмета одежды, различающиеся размерами (рис. 2.7). Таблица размеров женской одежды Обхват груди (см) Обхват бёдер (см) Буквенное обозначение размера 80 88 XS 84 92 S 88 96 M 92 100 L 96 104 XL 100 108 XXL 104 112 XXL 108 116 XXXL Рис. 2.7 § 6. Параметризация математической модели 153 Говоря научным языком, конструкторы параметризуют свои модели. Параметр (от древнегреческого napaMetpiew - соразмеряю) - характеристика разных элементов некоторого множества (например, платьев одной модели), позволяющая отличать их друг от друга. Например, в автосалоне выставлены автомашины одной фирмы. У всех них есть мотор, кузов, четыре колеса. Но они различаются такими параметрами, как мощность мотора, максимальная скорость, расход топлива и цена. Вернёмся к нашей модели популяции. В § 4 мы создали математическую модель, которая качественно ведёт себя, как реальная популяция в условиях ограниченных ресурсов на участке земли 15^1 км. Но мы не придумали механизм, чтобы сделать эту модель подходящей для острова любых размеров в любых условиях. На пути к цели нас ждут новые испытания, но, если мы всерьёз хотим узнать что-то новое, мы должны быть готовы к ним. Вспомним математическое описание модели популяции в условиях ограниченных ресурсов (модели Ферхюльста): = N^_1 + N^_1 • (1 - Nj-1/10 000), где: Nt _ число животных в текущем квартале; Nt1 _ число животных в предыдущем квартале. 10 000 _ максимальное число животных, способных прокормиться на территории, по нашим расчётам. Красным цветом выделена часть формулы, выражающая прирост численности популяции в текущем квартале. Теперь представьте себе, что, в силу изменения внешних условий, у родителей стало ежеквартально рождаться более двух потомков (улучшился климат и т.п.). В таком случае мы должны умножить выделенное красным цветом выражение на некоторый коэффициент _ число, отражающее прирост рождаемости населения популяции: N^ = Nt-1 + k- Nt-1 (1 _ Nt-1/10 000), где: k _ коэффициент роста популяции. Если в популяции у пары кроликов ежеквартально рождается 2 потомка, то k = 1 (случай, рассмотренный нами в § 4). Если рождается 4 кролика, то k станет равно 2. А если к= 0, то рост популяции прекратится. Теперь мы можем сказать, что у нашей модели появился первый параметр _ коэффициент роста популяции к (0 < к > да). Остаётся провести численный эксперимент и проверить, как этот параметр «работает». Выполните для этого задания к параграфу. 154 Модуль 2. Моделирование ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Пар^ метр - характеристика разных элементов некоторого множества, позволяющая отличать их друг от друга. Каждая модель характеризуется множеством параметров. Находя критически важные параметры и варьируя их значения, инженеры и учёные исследуют модель. ПРИМЕНЕНИЕ ЗНАНИЙ 1. Откройте сохранённый ранее документ и перейдите на новый лист. Назовите этот лист «Модель с параметром», на нём мы продолжим исследование модели развития популяции кроликов при ограниченных ресурсах. Выделите мышью таблицу роста популяции на листе «Моделирование популяции», скопируйте её. Перейдите на лист «Модель с параметром» и вставьте в него копию таблицы. Далее удалите из таблицы столбцы «Число кроликов» и «Число кроликов с учётом смертности», мы будем экспериментировать с моделью в столбце «Число кроликов с учётом смертности и ограниченности ресурсов». Выберите справа или выше от таблицы пустую ячейку для коэффициента роста популяции, занесите в ячейку начальное значение, равное 1. Осталось подписать ячейку, занеся в пустую ячейку слева или сверху букву к. В ячейке для 2-го квартала должна находиться формула, соответствующая математической модели: N1 + N1^(1 - N1/10 000), где N1 - начальное число животных; 10 000 - максимальное число животных, способных прокормиться на территории, по нашим расчётам. Ваша задача состоит в том, чтобы добавить в формулу параметр - коэффициент роста популяции к: N1 + k^N1 (1 - N,/10 000). В формуле ЭТ коэффициенту к будет соответствовать абсолютный адрес ячейки со значением параметра нашей модели. Абсолютный адрес означает, что он не будет изменяться при копировании формул, так как для нас важно, чтобы во все формулы модели подставилось одно и то же значение параметра. § 6. Параметризация математической модели 155 Отредактировав формулу для 2-го квартала, скопируйте её на диапазон ячеек численности популяции для кварталов 3-15. Значения численности в ячейках не должны при этом измениться, так как значение коэффициента роста к равно 1. Умножение на единицу не изменит значений в столбце численности популяции. Теперь мы можем менять параметр роста популяции сразу для всех расчётных формул ячеек нашей таблицы. Мы подошли к самому интересному моменту нашего исследования. Но прежде чем шагнуть дальше, построим уже знакомый нам график роста популяции. 2. Постройте по результатам расчётов численности популяций с учётом ограниченных ресурсов точечную диаграмму для кварталов 1 -15. 3. Попробуйте изменить значение коэффициента роста к. Сделайте его для начала равным 2. А потом 1,5. Попробуйте поэкспериментировать с моделью самостоятельно. У Пьера Ферхнэ льста не было компьютера, и он тратил на численные эксперименты со своими моделями не секунды, а дни и недели. Но зато как был удивлён учёный, когда из-под его карандаша вдруг вышли просто чудеса! Об этом вы узнаете в следующем параграфе. ОПЕРАЦИИ Вставка в формулу абсолютного адреса ячейки 1. Дважды щёлкните на ячейке с формулой или выделите её и нажмите клавишу F2. 2. Поставьте курсор в то место формулы, где должна быть ссылка (адрес). 3. Щёлкните на ячейке, на которую надо сослаться. 4. Пока ссылка выделена, нажмите клавишу F4, чтобы превратить ссылку в абсолютную или вручную введите знак $ перед обозначениями строки и столбца в ссылке. 5. Не забудьте ввести знак умножения после ссылки на ячейку с параметром к. 6. Когда формула будет готова, нажмите клавишу Enter или значок V Ввод 156 Модуль 2. Моделирование fc, Jji J,: •“ »r « ^ =В2+В2*Е3*(1-В2/10000)_ B Квартал Число кроликов с учетом ограниченности ресурсов 1 20 =B2+B2*E3*(1-B2/10000) 2 3 179 4 531 5 1536 6 4136 7 8986 8 10808 9 9061 10 10763 11 9121 12 10724 13 9171 14 10692 15 9213 NO k « ucese А * ■ ■ -1 ~~ f ■уг лдаь « Г >1 > А * * i *гч, - ^ ^ - V -г “ КОРЕНЬ • ^ £, =В2+В2*5Е53*(1-В2/10 A B Число кроликов с учетом ограниченности ресурсов 1 20 2 =B2+B2^^*(1-B2/10000) 3 179 4 531 5 1536 6 4136 7 8986 8 10808 9 9061 10 10763 11 9121 12 10724 13 9171 14 10692 15 9213 fc. № - 1.' t\ % Ж ^ S КОРЕНЬ 20 NO k 20 2 14 § 7. Исследование модели 157 § 7. Исследование модели на примере модели развития популяции с ограниченными ресурсами ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Посмотрите на приведённые на рис. 2.8 диаграммы. Они построены на основе расчётов по моделям развития популяции с различными коэффициентами роста: от 1 до 2,8. 158 Модуль 2. Моделирование А теперь представьте себе, что вам нужно дать заключение о численности популяции через 2 года после начала эксперимента с коэффициентом роста 2,8. Как вы считаете, какова проблема, с которой имеют дело учёные в подобной ситуации? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Как переименовать лист ЭТ? (§ 1) РЕШЕНИЕ ПРОБЛЕМЫ XX век разрушил множество стереотипов, укоренившихся в классической науке. Возможно, главным среди них оказался детермининизм (предопределённость) научной картины мира. В соответствии с детерминизмом, любой процесс протекает единственно возможным путём, заданным начальными условиями и внешними воздействиями. Два одинаковых снаряда, выпущенные из пушки подряд, ложатся рядом, по крайней мере в математической модели. В жизни это не совсем так, но это нетрудно объяснить случайными факторами, которые невозможно учесть при моделировании. Когда математик Пьер Ферхюльст одним из первых столкнулся с хаотическим и непредсказуемым поведением математической модели, он наверняка подумал, что ошибся в расчётах. Однако повторные вычисления приводили к тому же странному результату. При некоторых значениях параметров модель «выходила из повиновения» и выдавала странные цифры. В этой ситуации математикам оставалось лишь набраться мужества и заняться исследованием «загадочного» мира чисел. Но в процессе исследования оказалось, что умозрительные выкладки очень тесно соприкасаются с реальной жизнью. Мы получили на предыдущем занятии действующую модель популяции с единственным параметром - коэффициентом роста к. Можно было ожидать, что наша модель будет реагировать на его изменения примерно так же, как автомобиль реагирует на нажатие педали газа: будет убыстрять или замедлять свой рост. Но мы видим по графикам, что в действительности дело обстоит иначе. Убедимся в этом сами. Для этого проведём численный эксперимент со значениями коэффициента роста к, равными 0,5; 1; 1,5; 2 и 2,5. § 7. Исследование модели 159 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Модели далеко не всегда ведут себя так, как ожидают их создатели. Непредсказуемое поведение модели может быть следствием как несовершенства самой модели или погрешностей в расчётах, так и неожиданными особенностями объекта моделирования. Во время моделирования необходимо всегда сверять поведение модели с оригинальным процессом или явлением. ПРИМЕНЕНИЕ ЗНАНИЙ Откройте документ, сохранённый на предыдущем занятии, перейдите на новый лист и назовите его «Исследование модели с параметром». Разграфите на листе приведённую ниже таблицу. Перейдите на лист «Модель с параметром» и задайте первое значение коэффициента роста. Сделайте скриншот с рабочего листа. Вернитесь на лист «Исследование модели с параметром», вставьте скриншот, обрежьте его по диаграмме и опишите в таблице поведение модели. Коэффициент роста к 0,5 1 1,5 2 2,5 Описание Плавный рост популяции с замедлением поведения и выходом на значение модели 10 000 особей Скриншот Число кроликов - с учётом диаграммы ограниченных ресурсов роста 12000- 10000- 8000- 6000- 4000- 2000 0 1 1 1 0 5 10 15 20 Аналогично исследуйте поведение модели в оставшихся четырёх случаях. 160 Модуль 2. Моделирование ОПЕРАЦИИ Получение скриншота рабочего окна программы и вставка его на лист ЭТ 1. Щёлкнуть в окне, скриншот которого вы хотите получить. 2. Нажать комбинацию клавиш Alt+PrintScreen. «Снимок» окна (скриншот) будет помещён в буфер обмена операционной системы. 3. Щёлкнуть в окне правой кнопкой мыши и выбрать в контекстном меню пункт Вставить. Скриншот будет вставлен из буфера обмена в окно ЭТ. Удобно использовать также комбинацию клавиш Ctrl+V. .0 т 9 ir /i а ^ Picture2 , A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 QIC O § 7. Исследование модели 161 Форматирование скриншота 1. Выбрать вкладку Формат. 2. Обрезать скриншот по контуру при помощи инструмента Обрезка, оставив только нужную его часть. 3. Пропорционально уменьшить скриншот до разумного размера, перетаскивая его уголок в сторону центра. Формат I Jo lU»» ' Обрезка I 4« Plcture2 A J K L N _Q_______Q_ >кЛ D G Число кроликов с учет ограниченных ресурс< 162 Модуль 2. Моделирование § 8. Экологические системы с несколькими переменными. Моделирование системы «хищник - жертва» ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Мысленно перенесёмся на американский континент. Начиная с 1845 года, компания «Гудзонов залив» ежегодно публиковала данные о цене и количестве шкур, заготавливаемых ежегодно в Канаде. Эти данные попали в руки учёных, которые обратили внимание на удивительную периодичность колебания цен на шкуры зайцев и рысей, связанных с количеством шкур на рынке и, следовательно, численностью животных в природе (рис. 2.9). Рис. 2.9 В результате научный мир получил ещё одну сенсацию. Конъюнктура рынка, то, что, казалось, зависело только от стечения обстоятельств и везения, вдруг стала предметом внимания математиков, способных давать надёжные прогнозы на год-два вперёд. Так и до научных прогнозов погоды рукой подать. Действительно, через тридцать лет люди научились правильно предсказывать погоду, правда, на небольшие сроки. Исследователи XIX века стремились всего лишь предсказать конъюнктуру рынка, но совершенно неожиданно труды учёных, создавших модель явления и исследовавших его, заложили новую науку. Это была математическая экология. Что позволило учёным сделать открытие? Сформулируйте главный вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). § 8. Экологические системы с несколькими переменными 163 НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните, как редактируют формулы в ЭТ с использованием абсолютных и относительных ссылок. (§ 2, 6) Вспомните, как нужно строить точечную диаграмму по нескольким сериям табличных данных. (§ 3) РЕШЕНИЕ ПРОБЛЕМЫ Занятие наукой, и в частности моделирование естественных процессов, часто заставляет задуматься об устройстве мира. В XX веке была открыта тесная взаимосвязь численности обитающих на одной территории видов животных и того факта, что жертвы и хищники (например, зайцы и рыси) извлекают обоюдную эволюционную выгоду из сосуществования. Вам будет интересно узнать, что, наблюдая за приключениями хищников и жертв, вы нечаянно приобретаете представление, например, о... кинетике химических и ядерных реакций. (Кинетика описывает развитие реакции во времени.) В химии частицы-реагенты за счёт диффузии движутся, встречаясь друг с другом, вступают в реакции, в которых они гибнут, производят новые частицы и т.д. Соответственно в физике размножению зайцев соответствует, например, рождение нейтронов в цепной ядерной реакции, их умирание - поглощению нейтронов в ядрах графита активной зоны реактора. Тот факт, что поведение химических молекул и животных в экосистеме похоже, говорит о единстве окружающего нас мира. А мы пока займёмся исследованием задачи о зайцах (будем считать, что это те же кролики, только более «подготовленные в спортивном плане») и рысях, то есть задачи о развитии популяций хищников и жертв. Реальные процессы в природе и обществе гораздо сложнее, чем те элементарные примеры, что мы рассмотрели в предыдущих параграфах, и сложность их моделирования возрастает не только из-за сложности составления модели, но и из-за колоссальных объёмов вычислений на этапе численного эксперимента. Так, при расчёте прогнозов погоды приходится вычислять значения температуры, атмосферного давления, силы и направления ветра в узлах сетки, «натянутой» на карту континента или всего земного шара. Такие модели рассчитывают на суперкомпьютерах. Попробуем и мы решить задачу посложнее - моделирование системы «хищник - жертва». За решение проблемы межвидовой конкуренции взялись сразу двое учёных, причём независимо друг от друга. Американец Альфред Лотка опубликовал свои результаты в 1 925 году, а итальянец Вито Вольтер-ра сделал это годом позже. Получившаяся модель была названа по имени учёных моделью Лотки - Вольтерра. 164 Модуль 2. Моделирование Альфред Джеймс Лотка - американский математик, статистик. Руководил математическими исследованиями в крупнейшей американской страховой компании Metropolitan Life Insurance. Был одним из продолжателей дела Т. Мальтуса. В 1907-м показал, что население, растущее неизменным темпом и сохраняющее неизменный порядок вымирания, стремится к определённому возрастному составу и постоянным коэффициентам рождаемости и смертности. Лотка изучал процесс смены поколений, дал современное определение длины поколения, анализировал демографическое развитие семьи. Цикл этих работ принёс Лотке известность как основателю современной экономической демографии и автору теории стабильного населения. Альфред Лотка (1880-1949) Вито Вольтерра - итальянский математик. Интерес к математике начал проявляться в нём довольно рано, в возрасте 11 лет. Под впечатлением от романа Жюля Верна «Путешествие на Луну» он занялся расчётами траектории снаряда в атмосфере. Также он изучал геометрию Лежандра. В возрасте 13 лет начал заниматься трёхмерными задачами и добился некоторых успехов в разбиении времени на маленькие интервалы, на которых он мог рассматривать силовую константу. В 1905 году Вольтерра стал самым молодым сенатором Итальянского королевства. Однако в 1931 году он отказался принести присягу фашистскому правительству, за что был лишён членства во всех итальянских университетах и жил преимущественно за границей, вернувшись на родину лишь накануне кончины. Вито Вольтерра (1860-1940) Для начала немного порассуждаем. Нужно ли учитывать в нашей модели естественную смертность жертв? Наблюдения показывают, что обитатели нижних этажей в пищевых пирамидах практически никогда не умирают естественной смертью. Стоит животному потерять спортивную форму, как оно становится добычей хищника. Таков суровый закон природы. Хищники, обитающие на верхнем этаже пищевой пирамиды, умирают естественной смертью, но при этом скорость их размножения зависит не только от их количества, но и от источника пищи, то есть числа жертв. Составим теперь математическое описание задачи. Для числа жертв получим следующее выражение: Nt- Nt-1 + Nt-1 m^Pt-1^Nt_1, где Nt. _ число зайцев в текущем году; § 8. Экологические системы с несколькими переменными 165 - число зайцев в предыдущем году; к - коэффициент размножения жертв; m - коэффициент потерь жертв; число хищников в предыдущем году. Примечание. Поскольку в суровых условиях Канады зайцы и рыси приносят только одно потомство в год, мы будем измерять время не в кварталах, а в годах. Первые два слагаемых в формуле уже знакомы вам по задаче о кроликах. Смертность жертв и влияние ограниченности ресурсов мы не учитываем, так как размер популяции жертв находится под контролем хищников. Третье слагаемое со знаком минус - математическое выражение потерь жертв от хищников. Его абсолютная величина пропорциональна произведению числа жертв на число хищников, так как вероятность их встречи пропорциональна этому произведению. Далеко не каждая встреча заканчивается гибелью жертвы, это обстоятельство учитывает коэффициент потерь т. Для числа хищников получим следующее выражение: Pt = Pt-1 - d Pt-i + ь- N t-i ^ "t-i ’ где d - коэффициент смертности хищников; b - коэффициент размножения хищников. Второе слагаемое со знаком минус отражает естественное вымирание хищников из-за возраста и болезней. Третье слагаемое - рождаемость хищников, пропорциональная как числу хищников, так и числу жертв. Темп рождаемости учитывает коэффициент b. Теперь время перейти к численному эксперименту с нашей моделью. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Занятие наукой, и в частности моделирование естественных процессов, нередко заставляет задуматься об устройстве мира. Зачастую, решая узкую прикладную задачу, учёные неожиданно делают фундаментальные открытия. Сложные объекты моделирования описываются уравнениями с большим числом переменных. Соответствующие математические модели содержат большое число уравнений, для решения которых требуются большие вычислительные мощности. 166 Модуль 2. Моделирование ПРИМЕНЕНИЕ ЗНАНИИ 1. Откройте в ЭТ документ, сохранённый на предыдущем занятии, и добавьте в него новый рабочий лист. Назовите лист «Хищник - жертва». Разграфите на листе таблицу с тремя столбцами, озаглавьте их «Время, лет», «Жертвы», «Хищники». Столбец «Время, лет» заполните значениями от 0 до 50. В столбцы «Жертвы» и «Хищники» занесите начальные значения численности популяций 1000 и 95. Рядом с таблицей численности популяций разграфите табличку для параметров нашей математической модели. Заполните её начальными значениями. Время, лет Жертвы Хищники 1 1000 95 2 3 50 Коэффициенты модели к: 0,05 d: 0,05 т: 0,001 b: 0,00005 В ячейку для числа жертв в 1-й год занесите формулу, соответствующую уравнению Nt = Nt-1 + k^Nt-i - m^Pt-i N t-1- Указание. Значения параметров подставьте в формулу как абсолютные ссылки на ячейки в таблице «Коэффициенты модели». В ячейку для числа хищников в 1-й год занесите формулу, соответствующую уравнению Pt = Pt-1 d^Pt-1 + b^pt-1 N t-1- Заполните формулами ячейки для диапазона времени 0-50 лет. 2. Постройте по результатам расчётов численности популяций хищников и жертв точечную диаграмму для диапазона времени 0-50 лет. Затем расширьте интервал времени до 200-250 лет. Перестройте диаграмму для нового временного интервала. Сверьте свой график с авторским. Обратите внимание, что максимумы численности жертв опережают максимумы хищников. Сравните с диаграммой компании «Гудзонов залив», приведённой в начале параграфа (см. рис. 2.9). § 8. Экологические системы с несколькими переменными 167 Динамика системы «хищник - жертва» 3. • Исследуйте самостоятельно, как влияют параметры модели на численность популяций хищников и жертв. Теперь вы понимаете, насколько хрупок мир, который нас окружает? 168 Модуль 2. Моделирование ОПЕРАЦИИ Расширение таблицы по оси времени при помощи копирования 1. Выделите часть нижней строки таблицы, подлежащую расширению. 2. Подведите курсор к правому нижнему углу выделенного диапазона, он превратится в маленький крестик. 3. Протащите курсор, держа нажатой левую кнопку мыши, вниз и заполните ячейки копиями формул. Операцию заполнения можно выполнять в несколько этапов. 3 t 4 5 6 7 8 9 20 21 22 23 24 1000 955 912 871 833 796 762 730 700 672 646 623 601 580 562 545 529 515 502 490 480 470 462 455 хищник 95’ 95 95 94 94 93 92 91 90 88 87 85 84 82 80 79 77 75 73 71 70 68 66 64 Коэффициенты модели _______ г1: 0,05 г2: 0,05 р1 0,001 p2: 0,00005 жертва 14 14 § 8. Экологические системы с несколькими переменными 169 Расширение области значений диаграммы в ЭТ 1. Щёлкните на диаграмме, область значений которой надо изменить. Область значений функции выделится на таблице синей рамкой, аргумента -сиреневой. 2. Расширьте рамку, протащив её вниз за правый нижний угол. Диаграмма перестроится автоматически. 170 Модуль 2. Моделирование § 9. Оптимизация и моделирование ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Известно, что в мирное время многие военные производства переживают трудные времена. Страна не нуждается в больших количествах ракет, танков и самолётов, ей нужны автомобили, компьютеры и телевизоры. Поэтому многие военные предприятия вынуждены в наши дни искать способы выпуска мирной продукции, или, говоря на языке экономики, заниматься конверсией. Это очень и очень непростое дело. Нужно, чтобы производство новой, не типичной для предприятия продукции было эффективным. • На каком этапе производства, по вашему мнению, нужно начинать его оптимизацию? Попробуйте сформулировать основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Посмотрите в словаре значение слова «оптимизация». Вспомните из курса геометрии, как найти длину окружности и площадь круга по диаметру. Прочитайте статью о цилиндре в Википедии и узнайте, чему равен его объём и площадь полной поверхности. Вспомните из курса физики, как связан объём физического тела с его массой. РЕШЕНИЕ ПРОБЛЕМЫ Как-то автору попалось в рекламной газете «Из рук в руки» такое объявление: «Предприниматель готовит на базе цеха ширпотреба авиационного завода выпуск лёгких и практичных вёдер из пищевого алюминия. Для подготовки массового производства приглашаются опытный инженер-технолог и конструктор со стажем работы на производстве не менее 5 лет». Из текста объявления очевидно, что предприниматель провёл исследование рынка и нашёл тот товар, который будет пользоваться спросом. В настоящее время перед ним стоит задача налаживания эффективного производства, для чего ему нужны грамотные специалисты. У нас с вами есть за плечами небольшой опыт занятий моделированием в среде электронных таблиц. Давайте попробуем составить конкуренцию конструктору со стажем и применить наш опыт для поиска оптимального решения по массовому производству изделия. Прежде всего, поставим задачу. § 9. Оптимизация и моделирование 171 Пищевой алюминий - лёгкий, экологически чистый металл (плотность 2 700 кг/м3). Для сравнения, у стали плотность 7 800 кг/м3, что почти в три раза больше. Кроме того, обычная сталь ржавеет, и изделия из неё надо покрывать для защиты от коррозии слоем цинка или эмали, что делает стальную посуду непрактичной и тяжёлой. Но, как говорят, недостатки - продолжение достоинств. Тонна листового пищевого алюминия стоит 1 50 000 руб. (для сравнения, стоимость тонны листовой углеродистой стали - 25 000 руб). Разница в цене в 6 раз! Следовательно, задача экономии материала при выпуске продукции из нового материала выдвигается на первый план. Пусть требуемый объём нашего ведра - 10 литров (10 дм3). Нам надо спроектировать самое лёгкое ведро заданного объёма. На этапе проектирования возникает проблема выбора формы ведра. Достаточно практичной является форма усечённой пирамиды, позволяющая вставлять вёдра друг в друга, или форма цилиндра. Для простоты проектирования мы выберем второй вариант и сразу столкнёмся со следующей проблемой: какое отношение диаметра цилиндра к его высоте выбрать (рис. 2.10)? Очевидно, что непомерно широкое ведро-таз и высокое ведро-труба не самые удобные и лёгкие из возможных вариантов. Значит, где-то в промежутке между ними существует ведро оптимальных пропорций. Для решения проблемы оптимальных пропорций ведра создадим его математическую модель. Из курса школьной математики, подкреплённой вашим здравым смыслом, известно, что развёрткой цилиндра является прямоугольник боковой поверхности и два круга основания. Один из кругов станет дном будущего ведра, а второй - его крышкой (рис. 2.11). ? ? 10 л ^ 10 л 10 л Рис. 2.10 172 Модуль 2. Моделирование Площадь развёртки ведра с крышкой сложится из площади боковой поверхности, дна и крышки: S = ndh + nd2/4 + nd2/4 = ndh + nd2/2. Объём развёртки ведра будет равен произведению её площади на толщину материала: U = 5(ndh + nd 2/2), а масса ведра - произведению объёма развёртки на плотность материала: P = p5(ndh + nd2/2). Теперь рассчитаем объём ведра. Объём цилиндра равен произведению высоты на площадь основания: U = hnd2/4. В нашем случае он задан равным Ю литрам. Это означает, что в процессе численного эксперимента с моделью мы не можем произвольно менять значения диаметра и высоты ведра, а должны менять согласованно, чтобы объём оставался равным Ю литрам. Перейдём к численному эксперименту, направленному на оптимизацию модели - получение эффективных параметров ведра. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Моделирование и оптимизация очень тесно связаны друг с другом. Часто некоторый объект моделируют на этапе проектирования для поиска его оптимальных параметров. Ещё чаще математическое моделирование, оптимизация и проектирование производятся одновременно, в одной среде разработки. ПРИМЕНЕНИЕЗНАНИЙ 1. Запустите ЭТ и разграфите новую таблицу. Высота ведра, дм Диаметр ведра, дм Объём ведра, дм3 (л) Площадь развёртки ведра с крышкой, дм2 Масса ведра, кг 1 3,57 10,01 31,24 0,44 2 3* 3 3* 4 3* 5 3* *Точное значение подберите из условия получения объёма ведра, равного 10 литрам. § 9. Оптимизация и моделирование 173 Для простоты формул вычисления будем вести в дециметрах. Тогда будем считать толщину стенки ведра 8 = 0,5 мм = 0,005 дм. Плотность алюминия р = 2700 кг/ м3 = 2,7 кг/ дм3. Введите формулы для объёма и массы в верхние ячейки столбцов и заполните столбцы формулами. Далее остаётся подобрать вручную такие значения диаметра ведра, чтобы его объём был близок к Ю литрам с ошибкой не более 0,1 литра. «А зачем это делать?» - могут спросить те из вас, кто хорошо знает алгебру. Вопрос резонный, не проще ли выразить диаметр ведра через высоту и объём, а затем подставить его в формулу для массы. Действительно, можно сделать так в случае простейшей задачи вроде нашей. Но большинство реальных задач настолько сложны, что не поддаются аналитическому решению. 2. Постройте по результатам расчётов массы ведра точечную диаграмму для диапазона его высоты 1 -5 дм. Найдите значение высоты и диаметра, при котором масса 1 0-литрового ведра и, следовательно, расход алюминия на него будут минимальными. Проектирование цилиндрического ведра Сохраните документ в папке и под именем, которые укажет учитель. 174 Модуль 2. Моделирование § 10. Поиск решения в процессе моделирования ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Решая задачу о самом лёгком ведре заданного объёма, вы выполняли ручную подгонку диаметра ведра для того, чтобы «вписаться» в заданный объём. Кроме того, полученный в результате моделирования минимум массы оказался на графике «размытым» так, что определить его точно достаточно непросто, а при массовом производстве ошибка «непопадания» в минимум стоит заметных производственных издержек. Как вам хорошо известно, ручные рутинные операции утомительны и для их автоматизации придуман компьютер. Как вы думаете, позволяют ли электронные таблицы избежать рутинных операций? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Посмотрите в словаре, что означают слова «автомат», «автоматический», и подумайте об их значении в контексте этого параграфа. Каким геометрическим телом является развёртка реального ведра, изготовленного из листа? (§ 9) РЕШЕНИЕ ПРОБЛЕМЫ Прочитайте фрагмент текста справки к ЭТ Microsoft Excel: «Надстройка Поиск решения является частью блока задач, который иногда называют анализом ”что-если”». Поиск решения позволяет найти оптимальное значение для формулы, содержащейся в одной ячейке, называемой целевой. Поиск решения работает с группой ячеек, прямо или косвенно связанных с формулой в целевой ячейке. Чтобы получить заданный результат по формуле из целевой ячейки, надстройка изменяет значения в назначенных ячейках, называемых изменяемыми ячейками. В процессе оптимизации могут применяться ограничения на другие ячейки, влияющие на формулу для целевой ячейки». Внимание! Для выполнения заданий в ЭТ Microsoft Excel должна быть установлена и активизирована надстройка Поиск решения. Инструкцию, как это сделать, можно получить в справке по Excel. Если надстройка установлена, на вкладке Данные меню программы появляется группа Анализ и в ней кнопка Поиск решения (рис. 2.1 2). § 10. Поиск решения в процессе моделирования 175 Рис. 2.12 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Современные ЭТ имеют встроенные средства для оптимизации числовых моделей. В ЭТ Microsoft Excel таким средством является надстройка Поиск решения. Перед использованием надстройки нужно проверить, что она установлена, и активировать её через настройки ЭТ. Процесс установки и активации описан в справке Excel. ПРИМЕНЕНИЕ ЗНАНИЙ Откройте в ЭТ документ, сохранённый на предыдущем занятии. Для автоматического поиска решения выделите шапку расчётной таблицы модели и её первую строку, скопируйте их и вставьте в свободное место на листе. Высота ведра, дм Диаметр ведра, дм Объём ведра, дм3 (л) Площадь развёртки ведра с крышкой, дм2 Масса ведра, кг 1 3,57 10,01 31,24 0,44 Теперь вспомните, по каким переменным вы будете оптимизировать модель. Вы можете свободно изменять или высоту ведра, или его диаметр. При этом, изменяя одно из значений, вы должны поддерживать второе таким, чтобы объём ведра был равен Ю литрам. Важно не забыть ещё, что целью оптимизации является минимальная масса ведра. Все эти три согласованных действия проделывает одновременно надстройка ЭТ Microsoft Excel Поиск решения. Выполните оптимизацию при помощи надстройки Поиск решения и сравните результат с полученным на предыдущем занятии. Возможно, для того, чтобы увидеть разницу, вам придётся повысить выводимое ЭТ число знаков после запятой в ячейках «Высота ведра» и «Масса ведра». 176 Модуль 2. Моделирование ОПЕРАЦИИ Вызов надстройки Поиск решения 1. Выбрать вкладку Данные. 2. Если группа кнопок Анализ отсутствует в меню, установить и/или активизировать надстройку ЭТ Поиск решения. 3. В группе кнопок Анализ нажать кнопку Поиск решения. Оптимизация модели при помощи надстройки Поиск решения 1. В окне Поиск решения нажать кнопку выбора целевой ячейки и щёлкнуть в ячейке, содержащей массу ведра. 2. Повторно нажать кнопку выбора ячейки, чтобы вернуться в настройки Поиска решения. 3. Нажать кнопку выбора изменяемой ячейки и щёлкнуть в ячейке, содержащей высоту ведра. 4. Повторно нажать кнопку выбора ячейки, чтобы вернуться в настройки Поиска решения. 5. Нажать кнопку Добавить в группе Ограничения, чтобы выбрать ячейку с объёмом ведра. 6. Ввести после ссылки на ячейку с объёмом ведра знак «=» и значение 10. Теперь надстройка Поиск решения будет стремиться поддерживать объём равным 10. 7. Если все параметры оптимизации заданы, нажать кнопку Выполнить. § 10. Поиск решения в процессе моделирования 177 4П0ИСК решения St** ♦**«■ A B C D E F ' Объем Плотность ведра, Толщина алюминия, 1 куб. дм стенки, мм кг/куб. дм 2 10 0,5 2,6 3 4 Площадь Высота, Диаметр, Объем развертки Масса ведра, 5 дм дм ведра, л кв. дм кг 6 1,00 3,57 10,01 31,24 0,44 7 2,00 2,00 10,05 25,95 0,36 8 3,00 2,06 10,00 26,08 0,37 9 1,60 10,05 29,15 0,41 10 11 12 Поиск решения 13 2,00 2,53 10,00 25,86 0.36 I Проектирование цилиндрического ведра Установить целевую ячейку: Равной: максимальному значению |$B$13 Ограничения: I Выполнить I Закрыть Предложите ' Параметры Добавить I Изменить I f .Удалите ] I Справка 1 [В восстановить ’ Книга! - Micratoft Lud -т ii"- i«ea t*«na *1 $3 :i ■ ?.;Поиск решения A B C D E F Объем Плотность ведра, Толщина алюминия, 1 куб. дм стенки, мм кг/куб. дм 2 10 0,5 2,6 Высота, Диаметр, Объем Площадь развертки Масса ведра, 5 дм дм ведра, л кв. дм кг 6 1,00 3,57 10,01 31,24 0,44 7 2,00 2,00 10,05 25,95 0,36 8 3,00 2,06 10,00 26,08 0,37 9 1,60 10,05 29,15 0,41 Поиск решения 2,53 10,00 25,8^ I 0,36 Проектирование цилиндрического ведра Поиск решения Установить целевую ячейку: $F$13 Равной: максимальному значению |$B$13 Ограничения: значению: 0 ; Закрыть | J I Предложите ! ; Параметры 1 [Восстановить Добавить Изменить .Удалить ^ I Справка F 18 K L M N значению: 0 минимальному значению Изменяя ячейки: F 18 G H K L M N минимальному значению Изменяя ячейки: 178 Модуль 2. Моделирование B C D E F Объем Плотность ведра, Толщина алюминия, куб. дм стенки, мм кг/куб. дм 10 0,5 2,6 Площадь Высота, Диаметр, Объем развертки Масса вед( дм дм ведра, л кв. дм кг 1,00 3,57 10,01 31,24 0,44 2,00 2,00 10,05 25,95 0,36 3,00 2,06 10,00 26,08 0,37 1,60 10,05 29,15 0,41 Поиск решения ■ 2.00 i 2,53 10,00 25,86 1 0,36 Проектирование цилиндрического ведра Установить целевую ячейку: $F$13 | Равной: максимальному значению значению: 0 Ш I Предлог Выполнить J Закрыть ■ Параметры Ограничения: ($D$13 = 10 Добавить Изменить Восстановить .Удалите I I Справка Установка округления значений в ячейках 1. Выделить ячейки, в которых надо установить разрядность значений. 2. Выбрать вкладку Гпавная. 3. В группе Ячейки выбрать команду Формат. 4. Выбрать последовательно пункты Формат ячеек, Число, Числовой. 5. Ввести число десятичных знаков. F 18 G H K L M N Поиск решения минимальному значению Изменяя ячейки: $B$13 179 Проверь себя Задание 1 1. Известно, что первоклассники плохо запоминают таблицу умножения на 7. Создайте для них при помощи ЭТ «шпаргалку» -таблицу умножения на 7 в столбик и красиво оформите её: 1 х 7 = ? 2 х 7 = ? 9 х 7 = ? 2 Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Древняя легенда приписывает создание шахмат некоему брамину. За своё изобретение он попросил у раджи незначительную на первый взгляд награду: столько пшеничных зёрен, сколько окажется на шахматной доске, если на первую клетку положить одно зерно, на вторую - два зерна, на третью - четыре зерна и т.д. до последней 64-й клетки. 1. Создайте с помощью ЭТ модель шахматной доски с зёрнами на ней из задачи о брамине и радже. 2. Рассчитайте в столбик количество зёрен на каждой клетке доски. 3. Сколько тонн зерна раджа должен выдать брамину, если 1 зерно весит 0,2 грамма? 4. Во сколько железнодорожных вагонов пришлось бы погрузить наградное зерно, если один вагон вмещает 65 тонн? 5. Сохраните файл в папке и под именем, которые укажет учитель. 180 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 1. Постройте в ЭТ математическую модель прямоугольного треугольника, заданного двумя катетами и вычислите его гипотенузу и площадь. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 1. Постройте в ЭТ параметризованную математическую модель геометрической прогрессии на 100 членов с заданным основанием и знаменателем и покажите справедливость известных вам из курса математики свойств этой прогрессии. 2. Сохраните файл в папке и под именем, которые укажет учитель. ПРИМЕНЕНИЕ ЗНАНИЙ [повышенный уровень) Задание 1 Последовательность чисел Фибоначчи строится по следующим правилам: а) первое число равно 1; б) второе число равно 1; в) каждое последующее число равно сумме двух предыдущих. 1. Постройте последовательность чисел Фибоначчи в столбик. Найдите сумму и среднее арифметическое первых десяти элементов последовательности. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Будущий знаменитый математик Гаусс не отличался в школьном возрасте примерным поведением. Как-то раз строгий учитель оставил его в классе после уроков и строго приказал: «Ты будешь сидеть в классе, пока не сложишь натуральные числа от 1 до 100. А домой пойдёшь, только получив верный ответ». К удивлению учителя, Гаусс выдал верный ответ через одну минуту. 1. Сложите в столбик с помощью ЭТ натуральные числа от 1 до 100 за одну минуту. 2. Если вы можете найти правильный ответ аналитически, то проверьте правильность полученного результата. 3. Сохраните файл в папке и под именем, которые укажет учитель. 181 ПРИМЕНЕНИЕ ЗНАНИЙ [максимальный уровень) Задание 1 1. В задаче о ведре минимальной массы (см. § 9) выразите диаметр ведра через высоту и объём, а затем подставьте его в формулу для массы. Повторите моделирование и найдите минимум без использования надстройки ЭТ Принятие решения. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 1. Создайте в ЭТ модель перевода десятичного числа до 1024 в двоичную систему счисления. 2. Сохраните файл в папке и под именем, которые укажет учитель. Итоговая проверочная работа Задание 1 1. Рассчитайте в ЭТ динамику роста популяции овец в условиях ограниченных ресурсов на небольшом горном плато в Аргентине, если возобновляемого запаса корма достаточно для выживания максимум 500 животных. Коэффициент роста популяции примите равным 1,5, шаг расчёта - 1 год. 2. Результат расчёта представьте в виде точечной диаграммы. 3. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 1. Рассчитайте в ЭТ динамику роста популяции кроликов в условиях ограниченных ресурсов, приняв в качестве параметров коэффициент роста и начальную численность популяции. Примите максимальную численность популяции, равной 500 животных. 2. Результат расчётов представьте в виде диаграммы, отображающей численность популяции в зависимости от времени в кварталах. 3. Сохраните файл в папке и под именем, которые укажет учитель. 182 Задание 3 В городе с населением 100 000 человек появляются 40 инфекционных больных, что вызывает эпидемию. Предположим, что прирост больных за день пропорционален произведению числа здоровых (ещё не переболевших и не приобретших иммунитет) на число больных. Коэффициент пропорциональности к учитывает степень заразности заболевания и различные меры профилактики. Если, например, жители города будут носить марлевые повязки или сделают прививки, то этот коэффициент уменьшится. Как будет меняться число больных в зависимости от времени? 1. Рассчитайте в ЭТ динамику развития эпидемии по следующей математической модели: = k-Hn-i-Sn-i, Hn = Hn-i - Sn, где Sn - число заболевших в n-й день; Sn-1 - число заболевших в (n-1 )-й день; Hn - число здоровых в n-й день; Hn-1 - число здоровых в (n-1 )-й день; к - коэффициент заразности заболевания. 2. Результат расчётов представьте в виде диаграммы, отображающей число заболевших нарастающим итогом (сколько всего людей заболело с начала эпидемии) и число заболевших в данный день в зависимости от времени в днях. 183 т Решаем жизненные задачи и работаем над проектами Жизненная задача 1. Свободное падение Ваша роль: конструктор запасного парашюта, способного спасти жизнь человека в затяжном прыжке, если не сработал основной парашют. Описание. Тело массой 60 кг при падении на землю испытывает действие силы тяжести и сопротивления воздуха. Чем больше скорость тела, тем больше сила сопротивления воздуха. При движении в воздухе сила сопротивления пропорциональна квадрату скорости с некоторым коэффициентом к. Примем к равным 3 кг/м, начальную скорость — 0 м/с, ускорение свободного падения - 9,81 м/с2. Задание. Создайте математическую модель свободного падения тела и постройте график зависимости скорости тела от времени. Определите, когда скорость падения тела станет равной 10 м/с. Сравните результат с падением тела в случае отсутствия трения. Жизненная задача 2. Выстрел из орудия Ваша роль: наводчик дальнобойного артиллерийского орудия. Описание. Орудие выстреливает снаряд массой 50 кг под углом A к горизонту с начальной скоростью 500 м/с. Чем больше скорость тела, тем больше сила сопротивления воздуха. При движении в воздухе сила сопротивления пропорциональна квадрату скорости с некоторым коэффициентом к. Примем к равным 3 кг/м, ускорение свободного падения - 9,81 м/с2. Задание. Создайте математическую модель полёта снаряда и постройте график зависимости скорости снаряда от времени. Определите дальность полёта снаряда. Сравните результат с полётом тела, брошенного под углом к горизонту в случае отсутствия трения. Жизненная задача 3. Распространение слухов в коллективе людей Ваша роль: аналитик-социолог. Описание. Вы наверняка сталкивались с ситуацией, когда скандальная новость быстро облетает школу и многократно приходит к вам, обрастая иногда самыми нелепыми подробностями. При этом почти всегда существуют люди, которые этой новости не слышали. Задание. Составьте и просчитайте математическую модель распространения слухов в коллективе людей численностью 1000 человек. 184 Проект 1. Исследование модели роста популяции в экосистеме с ограниченными ресурсами Исследуйте поведение модели роста популяции с ограниченными ресурсами, разобранной в § 7. По результатам исследования постройте так называемую бифуркационную диаграмму. По горизонтальной оси такой диаграммы откладывается значение коэффициента роста, а по вертикальной - значение численности, которого достигает популяция. Конкретный вид диаграммы будет отличаться от приведённого ниже примера, так как наша популяция живёт по своим законам. Указание. В качестве исходного пункта для самостоятельного поиска информации используйте статью «Логистическое отображение» из Википедии. Проект 2. Построение модели финансовой пирамиды Рассчитайте динамику развития финансовой пирамиды по следующей математической модели (Валерий Очков, Журнал «Компьюника», № 1, 1995]: 1. Исходные данные: число жителей в городе N = 1 000 000; ежедневные траты (руб.] на строительство пирамиды: Расход = 300 000; среднее время между покупкой и продажей акции (дни]: Время = 30; коэффициент ажиотажа: КА = 10-7; норма прибыли: Доход = 0,03. 2. Состояние на 1-й день: начальный капитал (руб.]: М1 = 70 000 000; число купивших акции в первый день: NK1= 7; общее число купивших акции на 1 -й день: SNK1= 0; прибыль на 1-й день (руб.]: MMM1 = M1. 185 3. Моделирование развития пирамиды: курс продажи акций в п-й день [руб.]: Pn = 105 + 2^(n - 1); курс покупки акций в п-й день (руб.): Kn = 100 + 2^(n - 1]; интервал времени - 1 год: п = 1 ..365; число акций, купленных в (п + 1 ]-й день: NKn+1 = KA •(N - SNKn]^ SNKn; общее число купленных акций на (п + 1] день: SNKn+1 = SNKn + NKn; число акций, проданных в (п + 1 ]-й день: NPп+.=Если(п<=время;0;NKп _Время]; денег в кассе в (п + 1 ]-й день: Мп+1 = Мп + NKп• Рп - NKп•Kп- Расход - ЕСЛИ(Мп>0; Доход*Мп; 0]; заработано денег на (п + 1 ]-й день: МММп + 1 = МММп + Дохода Мп. Результат расчётов представьте в виде диаграммы, отображающей число покупателей акций, число их продавцов, изменение количества денег в кассе и дохода в зависимости от времени в днях. Проект 3. Написание реферата Подготовьте реферат на тему «Теория хаоса». Указание. За исходный пункт при сборе материала возьмите одноимённую статью из Википедии. 186 187 Модуль 3. Хранение и обработка больших объёмов данных Этот модуль поможет вам: • познакомиться с принципами организации и обработки информации в табличных базах данных, которые используются в большинстве современных производственных информационных систем; • научиться создавать базы данных для хранения большого объёма табличной информации; • научиться искать нужную информацию в базах данных, составляя запросы на поиск; • научиться пользоваться запросами на добавление, модификацию и удаление данных; • научиться использовать визуальный конструктор запросов; • получить опыт самостоятельного проектирования базы данных. Для этого вам надо научиться: • создавать таблицы и заносить в них данные; • понимать, что такое ключи, и выявлять их в таблицах; • пользоваться языком создания запросов для выборки данных; • пользоваться языком создания запросов для добавления, модификации и удаления данных; • освоить основные действия в визуальном конструкторе запросов. 188 Модуль 3. Хранение и обработка больших объёмов данных Введение Хранение и обработка больших объёмов данных - о чём это? Зачем это? Вы ведь наверняка что-то слышали о том, что для решения указанных задач есть нечто, что называют базами данных, которыми занимаются профессионалы в области информационных технологий. Вот пусть они и занимаются! Но о профессионалах и их задачах мы поговорим в конце изучения этого модуля, а сейчас - о том, почему тема модуля в современном информационном обществе касается «всех и каждого», в том числе и учеников 9-го класса. Сегодня работать с большими объёмами цифровых данных приходится всем, кто прикасается к компьютерной клавиатуре. Сколько писем в вашем электронном почтовом ящике? А сколько SMS-сообщений в вашем мобильном телефоне? А сколько, наконец, файлов с самым различным содержимым хранится на вашем компьютере? Наверняка ответ на все эти вопросы один: много, очень много. Но просто хранить недостаточно. Что толку, если «что-то где-то лежит» и не очень понятно, «что» и не слишком ясно «где»_ Темп жизни современного успешного человека не позволяет небрежно хранить и медленно, неэффективно обрабатывать даже информацию, используемую в сугубо личных целях. А уж о бизнес-задачах и говорить не приходится! Каким бы удивительным это ни показалось на первый взгляд, между организацией данных в личном информационном пространстве и в больших информационных системах очень много общего. И знакомясь с устройством больших систем, мы учимся организации личных данных. Но и это ещё не всё. С большими информационными системами приходится взаимодействовать каждому из нас. И хотя профессионалы - программисты и специалисты в области информационных технологий - стремятся предоставить нам максимально удобные интерфейсы, всегда полезно представлять, что именно можно ожидать от этой системы, почему она в ответ на наш запрос ведёт себя так или иначе. Часто понимание того, «как оно устроено внутри», помогает составить удачный запрос и быстрее получить результат. § 1. Базы данных и системы управления базами данных. Табличные базы данных 189 § 1. Базы данных и системы управления базами данных. Табличные базы данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Вы покупаете билеты на поезд или самолёт. Кассир быстро подбирает вам удобные даты, места, предлагает различные варианты пересадок. Вы пополняете счёт вашего мобильного телефона. Платёжный терминал сразу после ввода номера обязательно проверит, имеется ли такой номер телефона в принципе, не ошиблись ли вы. Вы ищете в web-интерфейсе своей электронной почты все письма от данного адресата. Результат появляется моментально. • Как вы считаете, что общего в приведённых ситуациях? Сформулируйте основной вопрос урока. Сравните свою формулировку с авторской (с. 285 учебника). РЕШЕНИЕ ПРОБЛЕМЫ О важности организации данных Всем нам из жизненного опыта известно, что способ организации любых данных существенно влияет на производительность их обработки. Если вы знаете, что тетради у вас находятся в левом верхнем ящике стола, дневник -там же, учебники - на первой полке книжного шкафа, ручки и карандаши - в пенале, а пенал всегда лежит в первом отделении рюкзачка, вы утром быстро соберётесь в школу. А вот если минут пять искать нужную тетрадь, потом ещё минут пять - дневник, потом _ «ну, ладно, сегодня не буду брать учебник _ пенал, где мой пенал?! - нет времени, возьму ручку у соседа» _ Другой пример: вы куда-то задевали летние фотографии. Надо было сразу сделать папку «Летний поход - 2012». Так нет же, спешили, забросили все фотографии в папку «Мои документы». И теперь там тысячи картинок с именами, похожими на IMG1 234. Можно сидеть часами и перебирать. Организовывать данные очень важно! Согласны? Как именно следует организовывать данные? А вот на этот вопрос мы не сможем дать однозначного ответа. В зависимости от вида самих данных, от задач, которые придётся решать, могут быть удобны различные способы организации. Например, структура папок на вашем компьютере образует иерархию. Иерархическая структура для хранения файлов изначально была придумана программистами. Им просто было так удобно с технической точки зрения. В те времена обычные пользователи и близко не подходили к компьютерам: в лучшем случае им разрешалось потоптаться у дверей с табличкой «Вычис- 190 Модуль 3. Хранение и обработка больших объёмов данных лительный центр». В дальнейшем чисто техническое решение приспособили и для нужд пользователей. Например, у вас на компьютере имеются папки «Мои документы» и «Мои рисунки». А в папке «Мои рисунки» будет удачным сделать папку «Летний поход - 201 2». Удобно ли хранить файлы в иерархической структуре? Большинству из нас удобно - мы привыкли к ней и приспособились решать возникающие проблемы в её рамках. А проблемы вполне могут быть. Допустим, у вас уже имеются папки для фотографий «Лето - 201 2» и «Походы». Куда положить фотографии летнего похода? Не стоит ломать над этим голову. Как привыкли, так и делайте. Но важно понимать, что любая форма организации данных имеет некоторые ограничения, которые можно воспринимать и как неудобства. Кстати, все эти неудобства-ограничения обычно можно устранить. Но зачастую лишь за счёт усложнения формы организации данных. Для вас существенным является именно сам способ организации данных, а не его физическая реализация. С этой точки зрения, нарисованная на листе бумаги файловая структура ничем не отличается от реальной файловой структуры вашего компьютера. Только вопрос «Куда записать файл?» превратится в вопрос «Куда вписать имя файла?». Таблицы - всюду С представлением информации в табличной форме вы имеете дело постоянно. В начальной школе вы изучали таблицу умножения, прекрасно умели пользоваться таблицей с расписанием уроков, таблицей-календарём, таблицей с автобусным расписанием. Таблицы вы видите всюду. Прежде чем идти дальше, давайте проведём небольшую «разминку». • Представьте следующую информацию в табличной форме. Задание 1. У Васи Иванова день рождения 1 сентября, живёт Вася в Москве, позвонить ему можно по телефону 8 (495) 123-45-67. В Екатеринбурге живёт Маша Петрова. Ей можно позвонить по телефону 8 (343) 76-543-21. 19 октября мы можем поздравить Машу с днём рождения. По телефону 8 (846) 109-87-65 можно позвонить Денису Сидорову. Судя по коду города в телефонном номере, он живёт в Самаре. Когда у Дениса день рождения, мы, к сожалению, не знаем. Задание 2. 1 сентября в 12:00 в кинотеатре шёл фильм «Олимпийский мишка». В зале было всего 10 человек. В тот же день после обеда в 16:45 показывали «Смешных ребят». Народу было уже побольше - 55 человек. Вечернего сеанса 1 сентября не было, зато он был на следующий день в 1 9:00. Зал был полон: на фильм «Таблица» пришло 205 человек. Справились? Давайте посмотрим, что у вас получилось. Сравните ваши таблицы и выполненные авторами учебника (табл. 3.1 и 3.2). § 1. Базы данных и системы управления базами данных. Табличные базы данных Таблица 3.1 191 Фамилия Имя День рождения Город Телефон Иванов Вася 1 сентября Москва 8 495 123-45-67 Петрова Маша 19 октября Екатеринбург 8 343 76-543-21 Сидоров Денис Самара 8 846 109-87-65 Таблица 3.2 Дата Время Название Количество зрителей 1 сентября 12:00 Олимпийский мишка 10 1 сентября 16:45 Смешные ребята 55 2 сентября 19:00 Таблица 205 Укажем, на что важно обратить внимание. Во-первых, мы снабдили каждый столбец таблицы заголовком, в котором записали, какие именно данные мы будем записывать в этот столбец. Далее мы выбирали из текста объекты, о которых идёт речь. В первом примере речь шла о людях, во втором - о сеансах в кинотеатре. Данные о каждом объекте мы записали в одной строке таблицы. Причём в каждой ячейке мы записывали данные, соответствующие заголовку столбца. Отметим сразу, что нередко одни и те же данные можно организовать посредством различных таблиц, каждая из которых будет выглядеть вполне разумно. Например, в таблице 3.1, возможно, имеет смысл разместить коды городов в отдельном столбце (табл. 3.3). Таблица 3.3 Фамилия Имя День рождения Город Код города Телефон Иванов Вася 1 сентября Москва 495 123-45-67 Петрова Маша 19 октября Екатеринбург 343 76-543-21 Сидоров Денис Самара 846 109-87-65 Мы с вами начинаем заниматься изучением баз данных. В этой области информатики есть своя терминология, с которой мы познакомимся, но в минимально необходимом объёме. Сам термин «база данных» рассмотрим в этом параграфе чуть позже, а сейчас давайте запомним, что строки таблицы принято называть записями, а столбцы - полями. Отметим, что последний термин часто используют для обозначения различных объектов. Проясним этот вопрос. Мы сказали, что полем называют столбец таблицы. Фактически речь идёт и о названии столбца, и обо всём столбце целиком, и о каждой конкретной ячейке (тогда говорят о поле конкретной записи). Если имеется 192 Модуль 3. Хранение и обработка больших объёмов данных риск неточного понимания, то предпочитают употреблять точные термины: «название поля» - о заголовке, «поле записи» - о ячейке. Если из контекста понятно, о чём идет речь, можно просто употреблять слово «поле». Мы начали параграф с обсуждения вопроса о том, что способ организации данных крайне важен для их эффективной обработки. Поскольку сейчас мы говорим о таблицах, вы наверняка уже сделали вывод, что мы будем рассматривать именно табличную организацию данных. Если говорить конкретнее, мы приступаем к изучению баз данных, в которых данные организованы в таблицы. В настоящее время именно табличные базы данных наиболее распространены. Но таблицы не всегда могут быть удобными, скажете вы. Согласимся: не всегда. Но вспомним то, о чём мы уже говорили: всякая форма организации данных имеет свои преимущества и недостатки (неудобства). Таблицы - достаточно удобная и универсальная форма организации данных. С помощью таблиц можно представить данные даже очень сложной структуры. Правда, иногда придётся хорошенько подумать, как именно. Но это ведь интересно! Требования к таблицам базы данных Всякую ли таблицу, нарисованную от руки на листе бумаги или расчерченную в текстовом редакторе, можно использовать для хранения информации в базе данных? Увы, нет. Имеется немало требований к таблицам баз данных. Большую часть этих требований мы рассмотрим в следующих параграфах, а самые основные - прямо сейчас. Все записи должны состоять из одного из того же набора полей. Порядок следования полей тоже должен быть единым. Может ли так случиться, что у какой-то записи не будет того или иного поля? Ответ: нет, не может. Другое дело, что мы можем не знать значение в этом поле, и его придётся оставить пустым. Но просто «выбросить» поле нельзя. В текстовом редакторе, например, можно объединить ячейки в таблице, но такие таблицы не годятся в качестве таблиц баз данных. Во всех записях в одном и том же поле должны находиться данные одного и того же типа. (Вспомните про типы в языке программирования.) Конкретный набор допустимых типов данных обычно определяется используемой системой - где-то больше, где-то меньше. Основные типы - числа и строки символов имеются в любой системе. Практически в любой системе имеются также специальные типы для хранения значений даты и времени. Поясним это требование на примере. Допустим, вы храните в поле «Оценка» (табл. 3.4) оценку. Если вы храните оценки в виде чисел, то всюду и надо использовать именно числа. Тогда данное в третьей строке этого поля будет ошибочным (выделено красным). § 1. Базы данных и системы управления базами данных. Табличные базы данных Таблица 3.4 193 Фамилия Имя Оценка Иванов Вася 4 Петрова Маша 5 Сидоров Денис Пять Если бы вы (хотя это неудобно) решили хранить оценки в виде слов (строк), то ошибочными были бы, напротив, данные в первых двух строках. К последнему требованию примыкает ещё одно: в каждом поле может быть записано не более одного данного. В частности, таблицы 3.5 и 3.6, с этой точки зрения, являются неправильными. Таблица 3.5 Фамилия Имя Телефон Иванов Вася 123-45-67 (д), 765-43-21 (м) Таблица 3.6 Дата Время Название 1 сентября 12:00, 14:00 Олимпийский мишка • Исправьте ошибки в таблицах 3.7 и 3.8. Способ исправления в каждом случае выбирайте сами — может быть, придётся и новые поля заводить. Таблица 3.7 Фамилия Имя День рождения Город Телефон Иванов Вася 1 сентября Москва 8 495 123-45-67 (д), 8 926 007-07-07 (м) Петрова Маша 19 октября Екатеринбург 8 343 76-543-21 Сидоров Денис Не знаю Самара 8 846 109-87-65 Таблица 3.8 Дата Время Название Количество зрителей 1 сентября 12:00, 16:00 Олимпийский мишка Утром - совсем мало, человек 10, во второй половине дня побольше - 30 1 сентября 16:45 Смешные ребята 55 2 сентября и 3 сентября 19:00 Таблица 205 и 200 человек соответственно 194 Модуль 3. Хранение и обработка больших объёмов данных Проверим, что получилось у вас и что - у авторов учебника. Это интересно, поскольку решения не являются однозначными! При исправлении ошибок в первой таблице понятно, что текст «Не знаю» надо просто убрать. А вот с телефонами не всё так просто. Можно предложить два варианта. Первый - очевидный (табл. 3.9). Таблица 3.9 Фамилия Имя День рождения Город Телефон домашний Телефон мобильный Иванов Вася 1 сентября Москва 8 495 123-45-67 8 926 007-07-07 Петрова Маша 19 октября Екате- ринбург 8 343 76-543-21 Сидоров Денис Самара 8 846 109-87-65 Второй вариант исправления таблицы 3.7 менее очевидный. Но многие специалисты сделали бы именно так (табл. 3.10). Таблица 3.10 Фамилия Имя День рождения Город Телефон Тип телефона Иванов Вася 1 сентября Москва 8 495 123-45-67 Домашний Иванов Вася 1 сентября Москва 8 926 007-07-07 Мобиль- ный Петрова Маша 19 октября Екате- ринбург 8 343 76-543-21 Домашний Сидоров Денис Самара 8 846 109-87-65 Домашний Результат исправления ошибок в таблице 3.8 выглядит более однозначным (табл. 3.11). Таблица 3.11 Дата Время Название Количество зрителей 1 сентября 12:00 Олимпийский мишка 10 1 сентября 16:00 Олимпийский мишка 30 1 сентября 16:45 Смешные ребята 55 2 сентября 19:00 Таблица 205 3 сентября 19:00 Таблица 200 § 1. Базы данных и системы управления базами данных. Табличные базы данных 195 БД и СУБД За аббревиатурами БД и СУБД скрываются термины «база данных» и «система управления базами данных». Различаются ли эти понятия? Ведь их так часто путают! Ответ: различаются. Давайте договоримся, что мы будем понимать под указанными понятиями. Базой данных мы будем называть организованную совокупность цифровых данных. В этом параграфе мы обсуждали организацию данных в виде таблиц. Сами данные также, разумеется, включаются в базу данных, но наиболее важным является именно сам способ их организации. Нередко используют термин «структура», под которым понимают именно способ организации данных. Когда говорят о структуре таблицы, то говорят, например, о названиях и типах полей, а сами записи при этом не рассматриваются -их может быть много, мало или не быть вообще. Для удобства и компактной записи структуру таблицы нередко представляют в виде перечня полей. В частности, структуру таблицы 3.11 можно записать так: Дата Время Название Количество зрителей Система управления базами данных - компьютерная программа, предназначенная для того, чтобы базу данных можно было хранить и обрабатывать в компьютерном виде. Знакомиться с этой программой мы начнём в следующем параграфе. Одну и ту же базу данных можно представить в компьютерном виде при помощи различных СУБД. Удобство и скорость обработки данных - важные функции СУБД. Информационные системы (ИС) Термин «информационные системы» широко распространён. Так часто называют разнообразные комплексы программных, аппаратных и иных (например, организационных) средств, обеспечивающих обработку данных. Пример: ИС по продаже авиабилетов. Как соотносятся между собой базы данных (БД), системы управления базами данных (СУБД) и информационные системы (ИС)? В достаточно упрощённом виде схему их взаимодействия можно представлять сле- Рис. 3.1. Взаимодействие ИС, дующим образом (рис. 3.1). СУБД и БД 196 Модуль 3. Хранение и обработка больших объёмов данных Для компьютерной реализации базы данных требуется система управления базами данных. И именно с этой системой взаимодействует информационная система, которой требуется использовать ресурсы базы данных. Мы назвали схему достаточно упрощённой по причине того, что одна СУБД может управлять множеством баз данных и одна информационная система тоже может использовать ресурсы нескольких баз данных. Например, информационная система по продаже авиабилетов может использовать множество баз данных авиакомпаний, каждая из которых может обслуживаться собственной СУБД. Но на принципиальном уровне эта схема отражает суть взаимодействия. Приведём более точную схему, отражающую отношения между понятиями ИС, СУБД и БД (рис. 3.2]. В этой схеме учтены указанные выше обстоятельства: ИС может использовать ресурсы различных БД, каждая из которых может обслуживаться собственной СУБД, и одна СУБД может управлять многими БД. Рис. 3.2. Уточнённая схема взаимодействия ИС, СУБД и БД § 1. Базы данных и системы управления базами данных. Табличные базы данных 197 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Организация данных существенно влияет на производительность их обработки. Этот эффект проявляется тем сильнее, чем больше объёмы данных. Мы будем заниматься знакомством с технологиями хранения и обработки больших объёмов данных при помощи табличных баз данных. Строки таблиц называют записями, столбцы - полями. Не всякая таблица, которую можно нарисовать на бумаге, может быть таблицей базы данных. В частности, необходимо, чтобы все записи состояли из одного и того же набора полей, чтобы в одном и том же поле в различных записях находились данные одного и того же типа, а в каждом поле было записано только одно данное. Системы управления базами данных представляют собой компьютерные программы для работы с базами данных. ПРИМЕНЕНИЕ ЗНАНИЙ • Представьте следующую информацию в табличной форме. Позаботьтесь о том, чтобы таблица удовлетворяла рассмотренным требованиям к таблицам базы данных. Постарайтесь предложить несколько вариантов табличного представления данных. Информация: 1 сентября Вася сходил на фильм «Новый учебный год». Фильм так понравился Васе, что, посмотрев сеанс в 1 6:00, он сразу же пошёл на фильм ещё раз. Следующий сеанс был в 18:00. На следующий день Миша по рекомендации Васи тоже захотел посмотреть «Новый учебный год». Но билетов на сеанс 16:00 уже не оказалось. Миша сразу купил себе билеты на сеанс в 18:00, а чтобы не терять времени даром, в 16:00 посмотрел фильм «Таблица возвращается». Оба фильма Мише понравились. 4 сентября Вася по рекомендации Миши посмотрел фильм «Таблица возвращается». Билеты были только на сеанс 20:00. Фильм Васе совсем не понравился, но, может быть, оттого, что было уже поздновато. 7 сентября товарищи пригласили одноклассницу Машу и втроём сходили на фильм «Абак». Маше очень понравился фильм, а Васе с Мишей - нет. 198 Модуль 3. Хранение и обработка больших объёмов данных § 2. Ключ таблицы базы данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Допустим, у вас в классе учатся не просто однофамильцы, а полные тёзки. Как учителя различают их в журнале? Если в таблице с названиями магазинов, в которые кондитерская фабрика поставляет конфеты, встречаются два магазина с одинаковыми названиями, как их различают в этой таблице? • Как вы считаете, что общего в приведённых ситуациях? С какой проблемой можно столкнуться в таблицах? Сформулируйте основной вопрос урока. Сравните свой вариант с авторским (с. 285 учебника). РЕШЕНИЕ ПРОБЛЕМЫ СУБД OpenOffice.org Base В предыдущем параграфе мы пообещали от «слов» перейти к «делу» -компьютеру: познакомиться с системой управления базами данных. Начиная с этого урока, мы будем решать задачи и выполнять упражнения в СУБД OpenOffice.org Base. Знакомиться с системой мы станем постепенно. Сегодня поработаем с уже заготовленной заранее базой данных для того, чтобы разобраться с важнейшим понятием базы данных - ключом. Поэтому и базу данных, с которой мы будем работать, мы назвали «Ключи» (рис. 3.3). M.odb - OpenOffice.org Base Файл Правка Вид Вставка Сервис Окно Справка I t Ь' 9 J . База данные I Задачи ¥ Запросы Соз^ть запрос в_режиме дизайна... Л Использовать мастер для создания запроса... Соз^ть запрос в режиме .SQL... 02 Минимумы и максимумы температур 03 Мои результаты 04 Мои лучшие результаты 05 Мои расходы 06 Регионы 07 Номера машин 08 Мои друзья 09 Книга Ю Мои прогулы И Мои оценки 12 Наши учителя 13 Футбольный турнир 14 Температуры 15 Шахматная партия 16 Шахматный турнир Рис. 3.3. СУБД OpenOffice.org Base с базой данных «Ключи» Описание Таблицы Документ Отчеты Дата рожд § 2. Ключ таблицы базы данных 199 Простой ключ В предыдущем параграфе мы говорили о требованиях к таблицам базы данных. В дополнение к ним есть ещё одно ограничение: в таблицах баз данных не может быть полностью одинаковых строк. Например, мы можем напечатать такую таблицу в учебнике (табл. 3.12). Таблица 3.12 Фамилия Имя Дата рождения Иванов Петя 1.09.1999 Иванов Петя 1.09.1999 Но в таблицу базы данных такие две одинаковые строки записать нельзя. Почему? Посудите сами: как компьютер, система управления базами данных, будет различать наших Петь? Итак, любые две строки в таблицах баз данных обязательно отличаются, по крайней мере, значением какого-то одного поля. Часто бывает так, что можно точно указать одно конкретное поле таблицы, значения в котором гарантированно различаются для всех записей. Такое поле называют простым ключом. При этом не имеет значения, что именно сейчас содержится в таблице. Важно, что может в ней содержаться. Например, то, что у вас в данный момент в классе нет однофамильцев, не значит, что их никогда не было и они никогда не появятся в будущем. Поработаем с базой данных «Ключи». В ней имеется несколько различных таблиц, между ними нет никаких связей - каждая таблица сама по себе. Выделив имя таблицы, можно сразу в окне просмотра увидеть её структуру. • Просмотрите таблицы базы данных «Ключи» (файл Ключи.odb; см. рис. 3.3) и для каждой решите: есть ли в ней одно-единственное поле, значения в котором гарантированно будут различными, — простой ключ. Пожалуйста, вдумывайтесь каждый раз, что предполагается хранить в той или иной таблице. Обращайте внимание на названия таблиц. Для удобства работы таблицы пронумерованы. По ходу просмотра таблиц, пожалуйста, оставляйте записи в тетради: таблица такая-то, простой ключ такой-то; таблица такая-то, простого ключа нет и т.п. Не спешите, нет необходимости успеть просмотреть все таблицы. Справились? Давайте сравним ваши результаты и то, что получилось у авторов учебника. Это интересно! 200 Модуль 3. Хранение и обработка больших объёмов данных Таблица «01 Список класса»: Номер ученика Фамилия Имя Дата рождения Это задание авторам учебника показалось несложным. Здесь Номер ученика и является тем самым простым ключом: именно в этом поле значения точно не могут повторяться. Обратите внимание, обнаружив простой ключ, мы его подчеркнули. Мы и далее будем так делать, но точный смысл подчёркивания поясним позже в этом параграфе. Таблица «02 Минимумы и максимумы температур»: Дата Минимальная температура Максимальная температура В данном случае простым ключом является поле Дата. Таблица «03 Мои результаты»: Дистанция Время Авторы учебника склонны думать, что ни одно из полей этой таблицы нельзя считать простым ключом. Действительно, и одну и ту же дистанцию можно пробежать несколько раз, да и время одно и то же вполне можно показать. Например, бегали вы раньше 100 м за некоторое время, а потом хорошенько потренировались и стали за то же время бегать 110 м. Таблица «04 Мои лучшие результаты»: Дистанция Время А вот тут ситуация иная! Ведь лучший результат точно только один для данной дистанции. Поэтому поле Дистанция - простой ключ. Таблица «05 Мои расходы»: Дата Назначение Сумма Авторы учебника считают, что в этой таблице поля, которое можно было назвать простым ключом, нет. Почему? Можем ли мы считать таковым поле Дата? Нет: вполне можно несколько раз потратиться в течение дня. Поле Назначение? Тоже нет: ничто не мешает нам купить, например, две ручки. Поле Сумма? И здесь ответ отрицательный: например, тетрадь и мороженое могут стоить одинаково. § 2. Ключ таблицы базы данных 201 Таблица «06 Регионы»: Код региона Название Коды регионов России знают все: эти числа имеются, например, на автомобильных номерах. То, что Код региона является простым ключом, достаточно очевидно. А вот что можно сказать о поле Название? Вполне возможно, что кто-то отметил именно это поле. Правильно ли это? Оказывается, это зависит от того, как именно мы смотрим на таблицу «Регионы». Если мы подумали, что речь идёт только о регионах России, то и поле Код региона, и поле Название могут быть ключами. Но если мы решим, что речь идёт о кодах регионов на автомобильных номерах, ситуация иная. Тогда Код региона по-прежнему простой ключ, а вот Название - нет. Дело в том, что когда автомобильные номера в крупных регионах стали заканчиваться, этим регионам выдали дополнительные коды. Например, в Москве это и 95, и 97, и 99, и 197, и 199. Это очень важно! Является то или иное поле простым ключом или нет, зависит от содержательной сущности таблицы. Сами по себе значения мало что значат: важно, что мы знаем о том, какими они могут быть. Таблица «07 Номера машин»: Три цифры Три буквы Код региона Марка Ни одно из полей этой таблицы нельзя назвать простым ключом. Согласны? Таблица «08 Мои друзья»: Фамилия Имя Телефон E-mail Дата рождения Это очень интересное задание. Результаты его выполнения в классе вполне могут оказаться различными. И каждый из этих результатов может оказаться правильным! Давайте разберёмся. С полями Фамилия, Имя, Дата рождения всё понятно. Их нельзя назвать простыми ключами. А вот с полями Телефон и полем E-mail не всё так очевидно. В наше время мобильный телефон, как правило, принадлежит одному человеку (в отличие от домашнего или рабочего). Когда мы звоним на мобильный, мы звоним конкретному человеку. То есть можно считать, что два разных человека не могут иметь один и тот же номер. Значит, поле Телефон можно будет считать простым ключом. Те же рассуждения справедливы и для поля E-mail. Бывают электронные адреса людей, а бывают адреса организаций. Если мы считаем, что каждый человек имеет свой личный уникальный электронный адрес, то и поле E-mail можно считать простым ключом. 202 Модуль 3. Хранение и обработка больших объёмов данных Таблица «09 Книга»: Номер страницы Количество символов Количество слов Количество знаков препинания Здесь поле Номер страницы является простым ключом, что очевидно. Таблица «10 Мои прогулы»: Дата Номер урока Можно ли назвать простым ключом какое-то одно поле в этой таблице? Увы, нет. И в один день можно несколько уроков прогулять, и один и тот же урок можно прогулять в различные дни. Но помните, что это нехорошо! Таблица «11 Мои оценки»: Дата Номер урока Оценка Ни одно из полей в этой таблице нельзя назвать простым ключом. Таблица «1 2 Наши учителя»: Фамилия Имя Отчество Предмет И в этой таблице ни одно из полей нельзя назвать простым ключом. В каждом из них вполне могут повторяться значения. Таблица «1 3 Футбольный турнир»: Дата Команда 1 Команда 2 Счёт Скорее всего, простого ключа в этой таблице нет. По крайней мере, авторы учебника ни одно из полей таковым не считают. Хотя надо бы более подробно знать правила данного турнира. Если в течение одного дня может состояться только один матч, то поле Дата будет простым ключом. Таблица «14 Температуры»: Дата Время Температура Может быть, кто-то подумал о температуре тела человека? Авторы-то имели в виду, например, данные метеостанции - измерения температуры воздуха. В любом случае ни одно из полей здесь нельзя считать простым ключом. § 2. Ключ таблицы базы данных 203 Таблица «1 5 Шахматная партия»: Номер хода Ход Здесь всё очевидно. Таблица «1 6 Шахматный турнир»: Номер партии Номер хода Ход Опять простого ключа нет. Понятно, что и номера партий, и номера ходов, и сами ходы могут повторяться. Составные ключи До сих пор мы искали одно-единственное поле, значения в котором гарантированно не могут повторяться. И не всегда находили. Но можно не ограничиваться лишь одним полем, а искать комбинацию полей, сочетание которых гарантированно будет уникальным. Правда, здесь необходимы уточнения. Можно, конечно, получить уникальную комбинацию, произвольным образом добавляя к простому ключу разные другие поля. Это формальное и довольно бессмысленное действие. Интересно искать такие комбинации полей, из которых нельзя убрать ни одного поля без потери уникальности. Если такую комбинацию полей удаётся найти, её называют составным ключом. Давайте ещё раз просмотрим таблицы базы данных «Ключи». Те таблицы, в которых мы нашли простые ключи, нас уже интересовать не будут. • Попробуйте найти составной ключ для каждой из оставшихся таблиц. Сверим результаты? Таблица «03 Мои результаты»: Дистанция Время В этой таблице два поля, и ранее мы не нашли в ней простого ключа. Есть ли здесь составной ключ? Авторы учебника, исходя из своих представлений о том, что именно может храниться в этой таблице, думают, что нет. Таблица «05 Мои расходы»: Дата Назначение Сумма 204 Модуль 3. Хранение и обработка больших объёмов данных Если мы хотим найти составной ключ, надо посмотреть на пары полей и на все три поля вместе. Можно ли какую-то пару считать уникальной? Авторы учебника думают, что нет. А все три поля вместе? Тоже нет. В один и тот же жаркий день вполне можно дважды купить одно и то же любимое мороженое. И, надеемся, стоить оно будет при этом одинаково. Таблица «07 Номера машин»: Три цифры Три буквы Код региона Марка В данном случае ответ на вопрос, сформулированный в задании, нам известен из жизни. Автомобильные номера, представляющие собой комбинацию из трёх цифр, трёх букв и кода региона, являются уникальными. И ни одно из указанных полей нельзя «выкинуть». Значит, мы нашли составной ключ. Таблица «08 Мои друзья»: Фамилия Имя Телефон E-mail Дата рождения Ситуацию с этой таблицей мы подробно обсудили ранее. Вполне вероятно, что при каких-то допущениях - знаниях о том, какие именно данные хранятся в таблице, какое-то одно из полей в ней можно считать простым ключом. Но если мы так не считаем, то и комбинация полей нам не поможет. Таблица «10 Мои прогулы»: Дата Номер урока Дважды прогулять один и тот же урок в один и тот же день точно нельзя. Поэтому комбинация двух полей является составным ключом. Таблица «11 Мои оценки»: Дата Номер урока Оценка Это очень интересное задание с точки зрения поиска составного ключа. Есть он или нет, зависит от _ инструкций Министерства образования. Почему? Дело в том, что важным здесь является то, разрешено ли выставлять в одну клеточку журнала более одной оценки. Если нет, то комбинация полей Дата + Номер урока является составным ключом. Если разрешено, то не является. Честно говоря, чётких инструкций на эту тему нет. Из жизни мы знаем, что на одном уроке вполне можно получить несколько оценок, а на некоторых предметах это вообще обычное дело. Если исходить из этого, комбинация Дата + Номер урока не является составным ключом. § 2. Ключ таблицы базы данных 205 Таблица «1 2 Наши учителя»: Фамилия Имя Отчество Предмет Здесь составного ключа нет. Таблица «1 3 Футбольный турнир»: Дата Команда 1 Команда 2 Счёт Эта таблица - довольно любопытный случай. Можно ли считать комбинацию полей Дата + Команда 1 + Команда 2 составным ключом, зависит от наших знаний о данном турнире. Могут ли две команды играть в день более одного матча? Здравый смысл подсказывает, что нет. Но если могут, то это не составной ключ. Таблица «14 Температуры»: Дата Время Температура Это классический пример составного ключа. Таблица «1 6 Шахматный турнир»: Номер партии Номер хода Ход Это ещё один столь же классический пример. Первичный ключ Мы дважды рассмотрели набор предложенных таблиц. В первый раз мы искали только простые ключи, во второй раз - составные ключи. Вообще говоря, большой разницы между ними нет, и часто используют один термин «ключ», под которым понимают и простые, и составные ключи. Кстати, как вы думаете, может ли одна таблица иметь и простые, и составные ключи? Ответ: может. Например, таблица «Граждане страны»: ИНН Фамилия Имя Серия паспорта Номер паспорта имеет простой ключ ИНН: значение ИНН (идентификационного номера налогоплательщика) уникально для каждого гражданина страны. Но в ней также имеется составной ключ Серия паспорта + Номер паспорта - их комбинация также уникальна. И простой ключ, и составной ключ - ключи данной таблицы. 206 Модуль 3. Хранение и обработка больших объёмов данных В общем случае (и мы это видели на примерах) в таблице может быть несколько простых ключей и несколько составных ключей. То есть в таблице может быть несколько ключей. Среди всех возможных ключей таблицы обязательно выбирают один-единственный, который называют первичным. Выбор первичного ключа -дело проектировщика базы данных. Первичный ключ таблицы проектировщик сообщает СУБД: о первичном ключе знает не только человек, но и компьютерная программа. Кстати, обычно СУБД не даёт создать таблицу без первичного ключа. Подчёркиванием, которое мы использовали выше, принято обозначать именно первичный ключ. А поля, входящие в состав первичного ключа, часто называют ключевыми полями. Словосочетание «ключевое поле» широко используется, но обращаться с ним следует осторожно. Например, если мы говорим, что данное поле является ключевым, то этим утверждается, что поле входит в состав первичного ключа, но ничего не говорится о том, простым или составным является данный ключ - есть ли ещё ключевые поля в таблице. Добавление ключей Во всех ли рассмотренных выше таблицах мы обнаружили ключи? Нет. Как быть с таблицами, в которых мы пока не нашли ни простого, ни составного ключа? Ведь в таблице базы данных не должно быть повторяющихся строк. Значит, комбинация всех полей должна быть составным ключом, но это в данных таблицах не так. Получили противоречие. Как его разрешить? В этом месте специалист в области проектирования баз данных скажет, что наша проблема в том, что мы искали в таблицах так называемые естественные ключи - те, наличие которых обусловлено смыслом хранимых данных. А таких ключей может и не быть. Посмотрим на «проблемную» таблицу. Таблица «03 Мои результаты»: Дистанция Время Когда мы смотрим на таблицу, в которой не получается выделить ключ, вопрос, на который нам нужно ответить: могут ли строки в этой таблице повторяться с содержательной точки зрения? В базу данных нам точно не удастся занести повторяющиеся строки. Но если использовать ту же таблицу для записей в тетради, то может ли возникнуть необходимость занести в неё одинаковые строки? Применительно к этой таблице - ответ: скорее, да. Действительно, вполне может быть так, что вы несколько раз на одной и той же дистанции показываете один и тот же результат. Что бы мы сделали в тетради? Скорее всего, мы бы нумеровали записи: § 2. Ключ таблицы базы данных 207 1. 100 м 15 с 2. 110 м 18 с 3. 100 м 14,8 с Даже если бы мы это не делали явно, сам порядок записей в тетради - уже нумерация. Если с содержательной точки зрения в таблице могут повторяться строки, то в таблице базы данных необходимо завести специальное поле, которое будет являться ключом и обеспечивать уникальность записей. В рассматриваемую таблицу надо добавить, например, поле Номер записи. Таблица «03 Мои результаты»: Номер записи Дистанция Время Рассмотрим оставшиеся таблицы. Таблица «05 Мои расходы»: Номер записи Дата Назначение Сумма Таблица «08 Мои друзья»: Номер записи Фамилия Имя Телефон E-mail Дата рождения Обратите внимание, как часто используется поле Номер записи! Таблица «11 Мои оценки»: Номер записи Дата Номер урока Оценка Если мы исходим из того, что комбинация полей Дата + Номер урока не является составным ключом, надо добавлять ключевое поле. Таблица «1 2 Наши учителя»: Номер записи Фамилия Имя Отчество Предмет Таблица «1 3 Футбольный турнир»: Номер записи Дата Команда 1 Команда 2 Счёт Здесь надо предусмотреть случай более одного матча в день, каким бы маловероятным это ни казалось. 208 Модуль 3. Хранение и обработка больших объёмов данных Обратите внимание, как часто нам пришлось добавлять ключи. Отметим в заключение, что нередко ключ добавляют и в таблицы, в которых ключи есть. Это чисто технический вопрос, но мы кратко его обозначим. Если ключ составной и длинный, то для повышения быстродействия обработки данных может быть целесообразно добавить простой ключ. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ В таблицах баз данных не может быть повторяющихся строк - любые две строки обязательно должны различаться значением хотя бы одного поля. Поле или совокупность полей, которые для любых двух строк таблицы гарантированно различаются, называются ключом данной таблицы. Если ключ состоит из одного поля, его называют простым, если из нескольких полей - составным. В составном ключе не должно быть полей, которые можно было бы исключить без потери свойства уникальности. Среди всех ключей выделяют один, о котором сообщают СУБД. Этот ключ называют первичным. Поля, входящие в состав первичного ключа, называют ключевыми. Если среди полей в таблице не удаётся обнаружить естественного ключа, приходится добавлять ключ. § 3. Запросы к базе данных. Запросы на выборку данных 209 § 3. Запросы к базе данных. Запросы на выборку данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Известно, что День студентов отмечают 25 января, в Татьянин день. Предположим, что мы хотим найти всех студенток по имени Татьяна, которые родились 25 января, чтобы пригласить их на всероссийский бал. Естественно, мы обратимся к базе данных всех студентов и начнём поиск. Будем считать, что на просмотр одной записи у нас уйдёт 3 секунды. По приблизительной оценке, в России примерно 6 миллионов студентов. Итого на просмотр всех записей у нас уйдёт 18 000 000 секунд, или 3 000 000 минут, или 5 000 часов, или чуть больше 208 суток. И всё это без еды и сна. • Как вы думаете, в чём проблема в этой ситуации? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 285 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните основные логические операции AND, OR, NOT. (Учебник для 8-го класса, книга 2, модуль «Алгоритмизация и программирование».) РЕШЕНИЕ ПРОБЛЕМЫ Что такое запросы к базе данных В этом параграфе мы будем работать с самой настоящей базой данных, которая используется в реальной производственной деятельности. Конечно, её несколько адаптировали - сузили, но в ней осталось главное - объём. Таблица, из которой нам предстоит извлекать информацию, содержит более 8000 записей. Зачем там много? В реальных базах данных записей гораздо больше. К тому же неинтересно работать с таблицей, где, какой вопрос ни задашь, ответ виден сразу. А какими могут быть вопросы к базе данных? Давайте сразу перейдём на правильную терминологию и дальше будем её придерживаться: вопросы к базе данных называют запросами. Итак, какими могут быть запросы? Самые распространённые запросы связаны с получением информации из базы данных. Например, можно поинтересоваться, сколько имеется записей, удовлетворяющих тому или иному условию, попросить отобрать все эти записи и т.д. Отметим важный момент: результатом любого запроса на извлечение данных из таблиц также является таблица. 210 Модуль 3. Хранение и обработка больших объёмов данных База данных «Журнал Литература» Итак, познакомимся с базой данных «Журнал Литература» (файл Журнал Литература.odb], В ней имеется таблица «Статьи» (рис. 3.4]. || Журнал Литература.odb - OpenOffice.org Base Файл Правка Вид Встгавка С_ервис Окно Справка - К • Ji ■ ■ Г. • “ . I База данных I В на г Создать таблицу в режиме дизайна... А Использовать мастер для создания таблицы... f Создать представлеыие... Описание Запросы Формы Таблицы Отчеты Номер Стать '199200101 и Название Мартовская капель '10 1ер Рубрики 1 Номер Журнал '1992 Документ - 199200102 Поэзия 10 1 1992 199200103 Скандинавские сказания '10 1 1992 199200104 Заполняйте формуляры 2 '1 1992 199200105 Свободная литературная зона 1 4 1 1992 199200106 Сквозь легкое лицо проступи* т -7 '1 1992 199200107 Здорово в веках, Владимир! 8 З 1992 199200201 Будетляне: как они были 7 2 1992 199200202 Грубиян 10 2 1992 199200203 Не будем про это 10 2 1992 1992002^ "Любовь - это сердце всего" 7 2 1992 199200205 Голоса 10 2 1992 199200206 "Чужие стихи" '10 2 1992 199200301 Ермолай - Еразм. <Повесть о П 1е 7 3 1992 1992 0 0302 Классики в старших классах 10 3 1992 1992 0 0303 Похвала российской поэзии 10 3 1992 Рис. 3.4. База данных «Журнал Литература» с фрагментом таблицы «Статьи» Таблица «Статьи» имеет следующую структуру: Номер статьи Название Номер рубрики Номер журнала Год Поля таблицы имеют следующий смысл. Номер статьи - простой ключ. Вы уже понимаете, что это поле, которое было добавлено в таблицу, чтобы строки были гарантированно различными. Ключ имеет числовые значения. Название - заголовок статьи. Номер рубрики имеет следующий смысл. В журнале «Литература» имеется некоторое количество рубрик. Они пронумерованы. Каждая статья может относиться только к одной рубрике. Вот этот номер здесь и указан. С рубриками журнала мы познакомимся в следующем параграфе. Номер журнала представляет собой порядковый номер журнала в году, в котором была опубликована данная статья. Обратите внимание, журналы нумеруются в каждом году отдельно, начиная с 1. Наконец, в поле Год хранится год публикации статьи. Мы так подробно обсудили названия полей, потому что это очень важно. Вы же помните из предыдущего параграфа, что важно понимать, что именно хранится в базе данных. § 3. Запросы к базе данных. Запросы на выборку данных 211 На рис. 3.4 показан фрагмент таблицы «Статьи» в режиме предварительного просмотра. Если дважды щёлкнуть на названии таблицы, таблица откроется, и можно будет исследовать её внимательнее (рис. 3.5). Статьи - Журнал Литература - OpenOffice.org Base: Данные в виде таблицы Файл Правка Вид В_тавка Сервис Окно Спргавка □ *. , * J' ^ Номер Статьи Название Номер Рубрики 1 Номер Журнал^ Год 199200Ю1 Мартовская капель 10 1 1992 199200Ю2 Поэзия 10 1 1992 199200103 Скандинавские сказания 10 1 1992 199200104 Заполняйте формуляры 2 1 1992 199200105 Свободная литературная зона 4 1 1992 199200106 Сквозь легкое лицо проступит 7 1 1992 199200107 Здорово в веках, Владимир! 8 1 1992 199200201 Будетляне:как они были 7 2 1992 199200202 Грубиян 10 2 1992 199200203 Не будем про это 10 2 1992 199200104 Максим Горький 7 1 1993 199200105 Анекдоты, апокрифы и былины 10 2 1993 199200201 Чёрный человек. Идейно худо 10 2 1993 199200202 Тенденция 10 2 1993 199200203 Александр Пушкин. Для младш 10 2 1993 199200204 Антоша Чехонте - человек без 7 2 1993 199200205 <Спокойная красота> 10 2 1993 199200206 Юмор 10 2 1993 199200207 О первоначальном смысле 10 2 1993 Запись 1 8149 ► И К Рис. 3.5. Таблица «Статьи» Итак, начнём извлекать данные из базы данных. Что такое SQL SQL расшифровывается как Structured Query Language - структурированный язык запросов. Разумеется, имеются в виду запросы к базам данных. В модулях, посвящённых алгоритмизации и программированию, вы изучали и использовали язык программирования. И конечно, знаете, что языков программирования очень много. Многие из них похожи, но встречаются и совсем разные. В мире баз данных ситуация лучше. Язык SQL фактически является стандартом, который поддерживают все табличные базы данных. Диалекты языка могут совсем немного различаться в зависимости от используемой СУБД. Используемая нами СУБД OpenOifice.org Base, как и следовало ожидать, поддерживает язык SQL. Перейдём на вкладку Запросы СУБД и выберем возможность Создать запрос в SQL представлении (рис. 3.6). из 212 Модуль 3. Хранение и обработка больших объёмов данных ^ Журнал Литература.odb - OpenOffice.org Base Файл Правка Вид Вставка С,ервис Окно Справка U • и t. ■ о. - , _ ■ База данных ■ Задачи 1 Таблицы f Создать запрос взрежиме дизайна... I •А Использовать мастер для создания запроса... I Описание а Запросы Создать запрос ввода SQL выражение напрямую 0^ Формы 1 г Отче1[ы ■ J Рис. 3.6. Режим Запросы СУБД OpenOffice.org Base Запросы на выборку данных SELECT Очень важная команда языка SQL - SELECT. Слово select можно в данном случае перевести как «выбрать». Из чего выбрать, понятно: из таблицы «Статьи». А что именно можно выбрать? Выше мы познакомились со структурой таблицы «Статьи». Согласитесь, поля Номер статьи и Номер рубрики для нас на данный момент не слишком информативны. Поле Номер статьи носит служебный характер, поэтому для нас неинтересен. Номер рубрики, конечно, интересен, но самих рубрик-то мы пока не знаем, поэтому их номера для нас не несут информации. Хорошо бы получить просто список статей с указанием, в каких номерах журнала за какие годы они выходили. SELECT ^ FROM В окне SQL-запроса введём следующую команду: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" Для получения результата нажмём на кнопку Выполнить запрос (рис. 3.7). Q Журнал Литература.odb: Запрос2 - OpenOffice.org Base: конструктор запросов Файл Пра ^ в ^ вка Вид Вставка С_ервис Окно Спрзвка й Ёт' liv , i $Si , SELECT "Название", "Номержу ,// //I Выполнить запрос -ROM "Статьи" Рис. 3.7. Запрос на выборку в OpenOffice.org Base Результат выполнения запроса показан на рис. 3.8. § 3. Запросы к базе данных. Запросы на выборку данных 213 Q Журнал Литература.odb : Запрос! - OpenOffice.org Base: конструктор запросов (Файл Правка Вид Вставка Сервис Окно Спргавка 1^' Название П и X V Номер журнал^ Год Мартовская капель ! !992 Поэзия ! !992 Скандинавские сказания ! !992 Заполняйте формуляры ! !992 Свободная литературная зона ! !992 Сквозь лёкое лицо проступит - лик ! !992 Здорово в веках, Владимир! ! !992 Будетляне: как они были 2 !992 Грубиян 2 !992 Не будем про это 2 !992 "Любовь - это в сердце всего” 2 !992 Голоса 2 !992 "Чужие стихи” 2 !992 Ермолай - Еразм. <Повесть о Петре и Февронии муромских> 3 !992 Классики в старших классах 3 !992 Похвала российской поэзии 3 !992 Театрально-литейные мастерские 3 !992 Как было написано первое письмо 5 !992 Иван Андреевич Крылов в воспоминаниях современников 5 !992 Ели бы я был учителем 5 !992 Лизавет и Ломоносов 5 !992 Запись ! ь 8!49 Э'ли SELECT "Название” , "Номер журнала” , "Год” FROM "Статьи” Рис. 3.8. Результат запроса Итак, в команде SELECT можно указать, что именно требуется выбрать. В приведённом примере это был перечень названий столбцов. Обратите внимание на то, что результатом запроса SELECT является таблица. Простейшие запросы на выборку столбцов столь просты, что хочется поскорее пойти дальше. SELECT ^ FROM ^ WHERE^ Даже если вы не изучали английский, слово WHERE наверняка вам понятно. Вообще язык SQL специально создавался таким образом, чтобы простые запросы на нём могли писать «самые обычные люди», а вовсе не компьютерные специалисты. В приведённом выше примере запроса мы выбирали из таблицы не все столбцы - только указанные после слова SELECT, но строки в результате 214 Модуль 3. Хранение и обработка больших объёмов данных присутствовали все. А если хочется, например, получить лишь статьи, опубликованные в 2003 году? Тогда надо ввести: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год"=2003 Результат этого запроса - на рис. 3.9. Хр Журнал Литература.odb : Запрос! - OpenOffice.org Base: конструктор запросов - Файл Правка Вид Вставка Сервис Окно Справка в 0 . СГ...1 Щ i, ki . rti . . Л S' • ? 1* 1* X Название 1 Номер журнала 1 Год 1 С нашим и вашим праздником! ! 2003 Поздравляем победителей конкурса <Я иду на урок> ! 2003 Настали святки: ! 2003 <Анна Каренина> в современной школе : "Полнота страдания и пуст ! 2003 По поводу и на поводу ! 2003 Третий конкурс подписчиков <Литературы> ! 2003 Наша анкета ! 2003 Е.А. Полякова. Поэтика драмы и эстетика театра в романе <Идиот> ! 2003 Литературный календарь ! 2003 Кроссворд <Рождественский> ! 2003 "Душа стесняется лирическим волненьем”: 2 2003 Книга стихов как единство 2 2003 "И мгла исчезает:” Мотивная структура элегии В.А. Жуковского 2 2003 Анализ стихотворения А.А. Фета <Воздушный город>. Урок в !0 клас 2 2003 Музыка стиха. Семинар по поэзии Серебряного века 2 2003 Третий конкурс подписчиков <Литературы> 2 2003 Зарубежная литература: 5-7 классы. Учебник хрестоматия для общео 2 2003 Волшебство поэтической строки. М. Волошин. <Рождение стиха> 2 2003 "Я живу на земле в красоте!” Стихи Игоря Северянина о природе. 5кл 2 2003 <Тоска по родине!...> Анализ стихотворения М.И. Цветаевой 2 2003 Лирический диалог эпох. Итоговый урок по блоку <Лирика> в 8-м 2 2003 Запись |l 1 из 25 SELECT "Название”, "Номер журнала” ,"Год” FROM "Статьи” WHERE "Год” = 2003 л Рис. 3.9. Все статьи, опубликованные в 2003 году Обратите внимание: то, что указано в части FROM, используется для отбора столбцов; то, что указано в части WHERE, - для отбора строк. Составные условия в части WHERE Помните, что такое И (AND), ИЛИ (OR), НЕТ (NOT)? Допустим, нам требуется получить названия всех статей, опубликованных в 2003-2004 годах. Сделать это можно с помощью следующего запроса: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год"=2003 OR "Год"=2004 Здесь в части WHERE использовано логическое выражение с операцией OR. А если нужны все статьи за 2003-2006 годы? Можно написать два запроса. Работают они одинаково, но второй чуть короче: § 3. Запросы к базе данных. Запросы на выборку данных 215 SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год"=2003 OR "Год"=2004 OR "Год"=2005 OR "Год"=2006 SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год">=2003 AND "Год" <=2006 А вот так писать нельзя: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE 2003<- "Год" <-2006 Смысл выражения понятен, но синтаксически оно является неверным. Теперь допустим, что нас интересуют все статьи, кроме опубликованных в 1992 году. В принципе, описанных выше инструментов для такого запроса хватит, но придётся сначала просмотреть таблицу и увидеть, что последние записи в таблице датированы 2011 годом, чтобы написать, например, такой запрос: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год" >1992 AND "Год"<=2011 Это не лучшее решение. Оно предполагает, что мы слишком много знаем о содержимом таблицы: осведомлены, что раньше 1 992 года статей не было и что последние статьи были опубликованы в 2011 году. Лучше стараться использовать универсальные запросы, которые дают результат вне зависимости от наших знаний о содержимом базы данных. Например, такой: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год" <>1992 Этот запрос эквивалентен следующему запросу: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE NOT ("Год" = 1992) Определение количества записей Пусть нас интересует, сколько вообще статей было опубликовано в 2006 году. Мы можем получить ответ на этот вопрос следующим способом. Просто получим все статьи 2006 года и посмотрим количество строк результата (рис. 3.10). Но нас ведь не интересовали сами статьи, мы хотели узнать только количество. Для этого можно использовать специальную форму запроса: SELECT COUNT(*) FROM "Статьи" WHERE "Год" = 2006 216 Модуль 3. Хранение и обработка больших объёмов данных ^ Журнал JlHTeparypa.odb: Запрос! -OpenOffice.org Base: конструктор запросов Файл Правка Вид Вставка Сервис Окно Справка в Е71 ^ i- Ёг . s8i Название Л Й* • ? ?4 ii х U ' Номер журнала Год Задание со звездочкой * 23 2006 Литературный календарь. 16-31 23 2006 С наступающим... 24 2006 Киров - с нами! 24 2006 "Учитель года - 2006" 24 2006 Миссия гуманитарного образо 24 2006 Шар гораздо большего размер 24 2006 Урок литературы - в кабинете г 24 2006 Связь поколений в рассказе А. 24 2006 "Несу свой крест с терпением. 24 2006 Судьбой и ветрами изваян про 24 2006 Всё-таки жить! 24 2006 Два лика ахматовской Музы 24 2006 "Американский кабинет"Иоси 24 2006 Стенд 24 2006 Дмитрий Сергеевич 24 2006 Тайнопись Анны Ахматовой на 24 2006 Лев Лосев. Иосиф Бродский: Оп 24 2006 Содержание «Литературы » за 24 2006 Конструирование заданий раз 24 2006 Литературный календарь за 20 24 2006 Запись) 455 | из 455 SELECT Название", "Номер журнала". "Год" FROM 'Статьи" WHERTE "Год"= 2006 Рис. 3.10. Все статьи, опубликованные в 2006 году. Их 455 Результат запроса показан на рис. 3.11. Как видите, мы получили то же самое значение и ничего лишнего. Но и здесь результат запроса, хотя им является всего одно число, представлен в виде таблицы. W ■■ ^Журнал Литература.odb : Запрос1 - OpenOffice.org Base: конструктор запросов (Файл Правка Вид Выставка С_;рвис С_кно Спрiiвка в Si щ от" !!*■ , $Si ^ t U X V . COUNT( > 455 Запись 1 |из 1 ' _ SELECT COUNT ( * )1 FROM "Статьи" WHERE "Год" = 2006 А Рис. 3.11. Результат запроса - количество статей, опубликованных в 2006 году § 3. Запросы к базе данных. Запросы на выборку данных 217 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для получения информации из баз данных используются запросы. Запросы записываются на языке SQL. В запросах на выборку данных используется команда SELECT. Основной синтаксис команды SELECT следующий: SELECT _ FROM _ WHERE _ После слова SELECT указывается, какие именно поля мы хотим получить, после слова FROM - откуда, после слова WHERE - условие, которому должны удовлетворять интересующие нас записи. Если нас интересуют не сами записи, а их количество, то после слова SELECT записывается выражение COUNT(*). Любой запрос SELECT всегда возвращает таблицу. ПРИМЕНЕНИЕ ЗНАНИЙ Сформулируйте и выполните следующие запросы к базе данных «Журнал Литература»: а) Получить список статей с указанием лет, когда они были опубликованы. б) Получить названия всех статей, опубликованных в первых номерах всех лет. в) Получить названия всех статей, опубликованных в рубрике номер 1 2 (эта рубрика называется «Литературные прогулки», подробнее - в следующем параграфе). г) Получить количество всех статей, опубликованных в данном номере данного года (например, в № 1 за 2006 год). д) Получить количество всех статей, опубликованных в данном году в данной рубрике (например, в 2006 году в рубрике номер 4, эта рубрика называется «Я иду на урок»). е) Получить количество всех статей, опубликованных в данном году в данном номере в данной рубрике (например, в рубрике номер 4 в № 1 за 2006 год). Пожалуйста, учтите, что вы вполне можете придумать запрос, который даст пустой результат - не будет статей, ему удовлетворяющих. Это нормально. 218 Модуль 3. Хранение и обработка больших объёмов данных § 4. Базы данных из нескольких таблиц ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Катя: Базы данных — хорошая вещь. Сначала всё в них заносишь, а потом по запросам всё, что хочешь, получаешь. Хорошо бы создать одну общую таблицу, в которой будет всё-всё о всех людях: как зовут, где и когда родились, куда и когда путешествовали, что любят есть, какие книги читали, какой у них размер обуви и любимые художники. Всё-всё. Володя: Что-то я сомневаюсь, что всё это можно занести в одну таблицу. Это же неудобно. Даже просто сведения о поездках неудобно хранить в одной таблице: неизвестно, сколько столбцов под них отводить. А ты всё-всё хочешь занести. Катя: Я думаю, что если постараться, можно придумать одну такую огромную таблицу. В чём принципиальное разногласие между Катей и Володей? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните, что такое сортировка и какая она бывает. (Учебник для 8-го класса, книга 2, модуль «Алгоритмизация и программирование».) РЕШЕНИЕ ПРОБЛЕМЫ Сортировка результатов запроса В этом параграфе нам предстоит, наконец, узнать, какие рубрики есть в журнале «Литература». Но перед этим давайте немного поупражняемся с уже известной нам командой SELECT. Познакомимся с тем, как сортировать результат запроса требуемым образом. Итак, пусть мы хотим получить названия всех статей в алфавитном порядке. Для этого можно использовать следующий запрос: SELECT "Название" FROM "Статьи" ORDER BY "Название" Его результат показан на рис. 3.12. § 4. Базы данных из нескольких таблиц 219 Журнал Литература с py6pMKaMM.odb : Запрос! - OpenOffice.org Base: конструктор запросов Файл _равка Вид В_тавка Сервис (Окно Справка в UL- М Название '...А мы всё ставим каверзный ответ не находим нужного вопроса" '...Хозяйка бала должна непременно носить имя Маргариты..." 'Ангел мой Жуковский" 'Анима" - значит "душа" 'Антоновские яблоки": художественное своеобразие 'Арена, стена, лев и влюблённых двое:" 'А я с тобой свою Россию:" 'Базовый уровень финансирования школы должен быть закреплён за федеральными органами:" Баранкин, будь человеком!" 'Бедная Лиза" Н.М. Карамзина и "Барышня-крестьянка" А.С. Пушкина 'Бедный мальчик с книгой в руках" 'Бездны мрачной на краю" 'Безукоризненные до неправильности стихи:" О композиции одного из стихотворений Н. Гумилева 'Безумье - и благоразумие". Бредовые идеи на уроках словесности 'Белая гвардия": загадка художественного мира. Опыт истолкования 'Благосклонное участие". Литературная игра для старшеклассников по произведениям И.А. Бунина 'Благослови зверей и детей" 'Борис Годунов'" трагедия Пушкина 'Борис Годунов" в свете классической теории драмы 'Бранное, трудное время" 'БРОДячий русСКИЙ". Жизненный и творческий путь Иосифа Бродского 'Будем глядеть правде в глаза". Об одном лейтмотиве романа <Мастер и Маргарита> 'Буду учителем, несмотря на все трудности:" 'Будьте совершенны:" Образ человека в творчестве Н.С. Лескова 'Бульварные" стихи 'Былые годы в памяти не стерты:" Запись h I из 28 * Г SELECT "Название" FROM "Статьи" ORDER BY "Название" Рис. 3.12. Названия статей по алфавиту Выражение ORDER BY практически буквально переводится «порядок по». По умолчанию (то есть если пользователь не указал другие параметры) ORDER BY сортирует данные по возрастанию. Если требуется упорядочить данные по убыванию, необходимо воспользоваться параметром DESC (DESC образовано от англ. слова descending - по убыванию): SELECT "Название" FROM "Статьи" ORDER BY "Название" DESC Результат запроса показан на рис. 3.13. Сортировать данные можно не только по одному полю, но и по совокупности значений полей. Например, следующий запрос возвращает результат, в котором данные отсортированы по возрастанию сначала по годам, внутри годов - по номерам журнала, внутри номеров - по алфавиту (рис. 3.14): SELECT "Название", "Номер журнала", "Год" FROM "Статьи" ORDER BY "Год", "Номер журнала", "Название" 220 Модуль 3. Хранение и обработка больших объёмов данных уС^Журнал Литература с py6pHKaMH.odb : Запрос! - OpenOffice.org Base: конструктор запросов Файл Правда Вид Выставка С.ервис Окно Спр,авка в □ . . Л . СохранитЗ М * *4 U X Название Электронный текст в литературном образовании Элективный курс Эксперимент в поэзии Серебряного века. Статья 3. Хочу в Персию... Эксперимент в поэзии Серебряного века. Статья 2. Читать как можно проще... Эксперимент в поэзии Серебряного века. Зачарованная Русь Эксперимент в поэзии Серебряного века. “Художник не должен идти по трамвайным линиям" Экспериментальная программа по литературе для 6-го и 7-го классов школы-гимназии Экспериментальная программа по литературе для 5-го класса школы-гимназии Экспериментальная поэтика комедии Н.В. Гоголя “Ревизор" Экпериментальная методика оценивания на уроках литературы Экзамен на профессионализм Эзоповязык Эдуард Безносов: “Уроки, которые порождают идеи, - продолжаются" Эдуард Бабаев “Высокий мир аудиторий..." Эдвард .Лир. “Большая книга чепухи" Эволюция Гоголя Щелкунчик Шутовство и Юродство. Из наблюдений над <Братьями Карамазовыми> Шуствоский спотыкач, мюнхенское пиво и Д.С. Мережковский Шпаргалок больше не будет Шолохов и Нобелевская премия: история вопроса Шляпа упорно едет мимо станции Шляпа императора: Сатирическая история человечества Школьный путь к “Евгению Онегину" Школьный детектив, или Вариации на тему “Доживем до понедельника!" Школьный виртуальный литературный музей Школьный вечер Школьные учебники по литературе Запись^ |из 8!49 1>11И .^SELECT “Название" FROM “Статьи" ORDER BY “Название" DESC Рис. 3.13. Названия статей по алфавиту, по убыванию j© Журнал Литература рyбриками.odb : Запрос - OpenOffice Base: конструктор запросов Файл ПравкаВид ВставкаСервисОкно Справка и и N Название j Номер журнала Год Пародия 26 1993 Срезал. Из записок учителя литературы 26 1993 Чехов. Единство видения 26 1993 Валентин Распутин, большой и маленький 28 1993 Зощенко, который не смеялся 28 1993 Идиллия 28 1993 Кроссворд 28 1993 Литературный календарь. 4-!7 октября 28 1993 Слово Зощенко 28 1993 Толстой и жандармы 28 1993 Алданов и его роман <Начало конца> 32 1993 Благородная простота 32 1993 Гринёв-повествователь 32 1993 Кроссворд 32 1993 Литературный календарь. 1-14 ноября 32 1993 Простое величие простых людей 32 1993 Три этюда 32 1993 “Бездны мрачной на краю" 34 1993 Кроссворд 34 1993 Литературный календарь. 15-30 ноября 34 1993 О романе .Лермонтова 34 1993 Право на личность. <Бедные люди> Ф.М. Достоевского 34 1993 Тема судьбы в <Герое нашего времени> 34 1993 “Вознесся выше он главою непокорной" 1 1994 Басни Крылова 1 1994 Иван Тургенев. Для младших классов 1 1994 Кроссворд 1 1994 Литературный календарь. 1-15 декабря 1 1994 ЗаписЪЗ! [из !86 * imIU ► i»ij SELECT “Название" ,“Номер журнала" ,“Год" FROM “Статьи" ORDER BY “Год" ,“Номер журнал^' ,“Название " Рис. 3.14. Результат сортировки по трём параметрам § 4. Базы данных из нескольких таблиц 221 Запросы к нескольким таблицам Возможно, вы уже обратили внимание на то, что в этом параграфе мы работаем с дополненной базой данных журнала «Литература». Она даже называется «Журнал Литература с рубриками». Убедитесь, что в нашей базе данных появилась вторая таблица «Рубрики» (рис. 3.1 5). /it Журнал Литература с рубриками.odb - OpenOffice.ora Base Задачи Форм_ы jl Создать таблицу в,режиме дизайна... Л Использовать мастер для создания таблицы... Ш Создать представление... Описание Отчеты Статьи 1 ""”р Р'бр"" 'Колонка ргчактора Докумет 6 !з Ёит1Е"".р.о!Г...., ч ) Рис. 3.15. Таблица «Рубрики» в режиме предварительного просмотра Теперь мы можем строить больше содержательных запросов, служащих для получения информации сразу из двух таблиц. Допустим, мы хотим узнать названия всех рубрик, которые были в некотором конкретном номере, пусть это № 7 за 2006 год. Сначала вспомним, как можно получить номера рубрик из таблицы «Статьи»: SELECT "Номер рубрики" FROM "Статьи" WHERE "Номер журнала"=7 AND "Год"=2006 Результат запроса - на рис. 3.1 6. • Объясните, почему в результате запроса номера рубрик повторяются. При необходимости сформулируйте дополнительные запросы, объясняющие этот факт. Итак, мы умеем извлекать номера рубрик из таблицы «Статьи». Но названия рубрик нам из этой таблицы никак не извлечь - их там нет. Они есть в таблице «Рубрики», но в ней, в свою очередь, нет самих статей. Поэтому придётся использовать в запросе сразу две таблицы: SELECT "Рубрики"."Название" FROM "Статьи", "Рубрики" WHERE "Номер журнала"=7 AND "Год"=2006 AND "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики" 222 Модуль 3. Хранение и обработка больших объёмов данных Журнал Литература с py6pHKaMH.odb : 3anpod-OpenOffice.org Base: конструктор запросов Файл Правка _ид В_тавка Сервис Окно Справка М U 14 Номер рубрики 1 Запись |1 I из Т7 I Г~(>У|Г|' ~ ,SELECT “Номер рубрик^' FROM “Стать^' WHERE “Номер журнала“=7 AND “Год“=2006 Рис. 3.16. Номера всех рубрик № 7 за 2006 год Результат запроса - на рис. 3.17. Журнал Литература с py6pикaми.odb :3апрос1 - OpenOice.org Base: конструктор запросов Файл Правка Вид Вставка С.ервис (_кно Спр_авка Название п и Архив Архив Архив Архив Архив Я иду на урок Я иду на урок Я иду на урок Читальный зал Я иду на урок Читальный зал Архив Архив Архив Архив Архив Архив Запись|1 .(Л,[и SELECT “Рубрики" . “Название" FROM “Статьи" “Рубрики" WHERE “Номер журнала"=7 AND “Год"=2006 AND 'Статьи" . “Номер рубрики"="Рубрики' . “Номер рубрики" Рис. 3.17. Названия всех рубрик № 7 за 2006 год из § 4. Базы данных из нескольких таблиц 223 Отметим, на что здесь следует обратить внимание. Во-первых, поле Название у нас встречается как в одной, так и в другой таблице. Поэтому нельзя просто написать SELECT "Название". Что получится, если так сделать, не описано в самом языке SQL и зависит от конкретной СУБД. Для простоты можно считать, что такая запись просто ошибочна. Чтобы явно указать, что мы хотим извлечь поле Название и именно из таблицы «Рубрики», имя таблицы указывают явно. Между именем таблицы и именем поля ставится точка. Во-вторых, наш запрос извлекает информацию из двух таблиц и это необходимо явно указать в части FROM, что мы и сделали. В -третьих, найденным по условию "Номер журнала"=7 AND "Год"=2 0 06 записям из таблицы «Статьи» соответствуют те записи из таблицы «Рубрики», для которых "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики". И это условие добавляется в часть WHERE. ЙВам ведь хочется избавиться от повторений названий рубрик? А вы точно знаете ответ на сформулированный выше вопрос, откуда берутся эти повторения? Если нет, обязательно задумайтесь. Избавиться от повторений можно посредством слова DISTINCT. Это слово указывает на то, что в результате запроса необходимо оставить только уникальные значения. Запрос на рубрики без повторений выглядит так: SELECT DISTINCT "Рубрики"."Название" FROM "Статьи", "Рубрики" WHERE "Номер журнала"=7 AND "Год"=2006 AND "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики" ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для сортировки результатов запроса используется выражение ORDER BY. По умолчанию сортировка производится по возрастанию. Для сортировки по убыванию необходимо использовать слово DESC. В запросах на выборку данных из нескольких таблиц все используемые в запросе таблицы необходимо указывать после слова FROM. Если в таблицах, к которым производится запрос, имеются поля с одинаковыми названиями, для уточнения того, какое именно поле имеется в виду, перед его названием необходимо указывать имя таблицы. Имя таблицы от имени поля отделяется точкой. 224 Модуль 3. Хранение и обработка больших объёмов данных ПРИМЕНЕНИЕ ЗНАНИИ 1. Сформулируйте и выполните следующий запрос к базе данных «Журнал Литература с рубриками». Получить названия всех статей в следующем порядке: по возрастанию по годам, внутри годов - по номерам журналов, внутри номеров журналов - по номерам рубрик, внутри рубрик - по алфавиту. 2. Помните, мы говорили о том, что для изучения используем фрагмент настоящей производственной базы данных? Чтобы поупражняться с интересными запросами, мы взяли из неё ещё несколько таблиц. Теперь вы будете работать с базой данных, которая называется «Журнал Литература с рубриками, темами и разделами». ^ Журнал Литература с рубриками, темами и разйелами.odb - OpenOffice.org Base Файл Правка Вид Вставка Сервис Окно Справка ’I в , Запросы Фор_ы Отт_еты f Создать таблицу в .режиме дизайна... V Использовать мастер для создания таблицы... i Создать представлеиие... Разделы Рубрики Статьи 110130 120010 120020 120030 120040 120050 120060 130003 130010 130020 130030 130040 130050 Древнерусская литература Русская литература XVIII века Г.Р Державин И.А. КрЫлов Творчество Н.В. Гоголя Драматургия Н.В. Гоголя Повести Н.В. Гоголя 130 .130 130 130 130 130 Смысл новых таблиц следующий. Как и в школьном курсе информатики, в курсе литературы имеются разделы. Фактически раздел - большая глава, как в нашем курсе модуль. А уже внутри разделов имеются темы. Каждая тема может относиться только к одному разделу. Зато каждая статья (это важно!) может быть отнесена к нескольким темам. В режиме просмотра познакомьтесь со структурой таблиц «Разделы», «Темы» и «Темы статей». 3. Сформулируйте и выполните следующие запросы к базе данных «Журнал Литература с рубриками, темами и разделами»: а) Получить все темы, относящиеся к данному разделу (например, к разделу с номером 1 80 «Литература русского зарубежья»). Описание Таблицы Документ 1000 10 Темы статей § 4. Базы данных из нескольких таблиц 225 б) Получить количество тем в данном разделе (например, в том же разделе с номером 1 80). в) Получить названия всех статей, относящихся к данной теме (например, к теме номер 130030 «Творчество Н.В. Гоголя»). г) Получить названия, номера и года издания журналов, а также рубрики статей, относящихся к данной теме (например, той же теме с номером 1 30030). Задание г) самое сложное из тех, которые мы до сих пор выполняли. Поэтому приведём соответствующий запрос: SELECT "Статьи"."Название", "Номер журнала", "Год", "Рубрики"."Название" FROM "Статьи", "Рубрики", "Темы статей" WHERE "Темы статей"."Номер темы"=130030 AND "Темы статей"."Номер статьи"="Статьи"."Номер статьи" AND "Рубрики"."Номер рубрики"="Статьи"."Номер рубрики" Результат запроса: ^Журнал Литература с рубриками, темами и разделами.odb : Запрос! - OpenOffice.org Base: конструктор запросов Файл Правка Вид Выставка Сервис Окно Справка 0 , 1<и , й . г ’ ? U X . . j Номер журнала 1 Год [Название! Название Николай Гоголь. Для младших классов 4 !993 Архив Нечаянная тайнопись <Особенной> повести 8 !993 Архив Играем в классику. Николай Гоголь. Литературные викторины 24 !994 Архив Вечная загадка 24 !994 Архив Смысловое пространство гоголевского города 24 !995 Штудии Женитьба Гоголя 47 !995 Штудии Пророк, который смеялся !0 !996 Архив Гоголь как интерпретатор Пушкина !6 !996 Архив Кроссворд <Н.В. Гоголь> !6 !996 Архив Н.В. Гоголь. Жизнь и творчество. Материал для опроса и повторения по теме в 9-м классе 3! !996 Архив Кафка и Гоголь 32 !996 Штудии "Скучно жить на этом свете, господа": Духовное перерождение и смерть Н.В. Гоголя 39 !996 Архив Эволюция Гоголя 45 !996 Штудии <Необходимость Италии> для Гоголя 2! !997 Архив От позднего Гоголя и до конца века. Главы из нового учебника 25 !997 Штудии Арабески !4 !998 Штудии Запись |l 20 * итг SELECT "Статьи' . "Названий' , "Номер журнал^' , "Год' , "Рубрики' ."Название" FROM "Статьи' , "Рубрики" , "Темы статей" WHERE "Темы статей" ."Номер темы"=!30030 AND "Темы статей" ."Номер статьи"="СтатьН' . "Номер статьи" AND "Рубрики' ."Номер рубрики"="СтатьН' ."Номер рубрики" из 226 Модуль 3. Хранение и обработка больших объёмов данных § 5. Связи между таблицами ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Катя: Это что же получается, если я хочу создать базу данных про всех и про всё, она должна состоять из многих таблиц? И как же её использовать? Допустим, я хочу узнать время работы музеев в городах, в которых побывал мой брат в прошлом году. Я для этого должна открывать таблицу о людях, находить своего брата, потом открывать таблицу поездок, находить все поездки моего брата в прошлом году, получать список городов, затем открывать список музеев, искать музеи в городах по списку и смотреть время их работы? Разве это автоматизация действий? • Как бы вы описали проблему, с которой столкнулась Катя? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). РЕШЕНИЕ ПРОБЛЕМЫ Что такое связь между таблицами? В предыдущем параграфе мы формулировали достаточно сложные запросы для извлечения информации из нескольких таблиц базы данных. В этих запросах мы использовали, прежде всего, своё понимание того, как таблицы связаны между собой. Но что такое связь между таблицами? Связь между таблицами представляет собой соответствие между записями двух таблиц. Иначе говоря, мы считаем, что две таблицы связаны, если строке одной таблицы может соответствовать одна или несколько строк другой таблицы. Например, в рассмотренном в § 4 примере базы данных каждой строке в таблице «Статьи» соответствовала ровно одна строка в таблице «Рубрики». А каждой строке таблицы «Рубрики» могли соответствовать несколько строк в таблице «Статьи». • Опишите в этих же терминах соответствие между таблицами «Разделы» и «Темы». • Для установления связей (соответствий), по крайней мере, в одной из таблиц обязательно используется ключ. Подумайте почему. § 5. Связи между таблицами 227 Виды связей между таблицами Один-ко-многим - основной вид связей между таблицами. Именно такая связь установлена между таблицами «Рубрики» и «Статьи». Одной записи в таблице «Рубрики» могут соответствовать много записей в таблице «Статьи». Важно обратить внимание на слова «может соответствовать». Фактически в некоторой рубрике может быть всего одна статья, а может и ни одной (рубрику придумали, а статьи в неё ещё не написали). Для определения вида связи это не имеет значения. Связь такого же вида имеется между таблицами «Разделы» и «Темы». Одной записи в таблице «Разделы» могут соответствовать много записей в таблице «Темы». Опять же - может. а При наличии связи вида один-ко-многим на стороне «один» всегда находится ключ таблицы. • Подумайте почему. Поле или поля, которые при наличии связи один-ко-многим находятся на стороне «многих», называют внешним ключом таблицы. СУБД может знать о наличии связей между таблицами, если мы ей об этом сообщим. В частности, в OpenOffice.org Base в меню Сервис есть пункт Связи (рис. 3.18). Журнал Литература с рубриками, темами и разделами.odb - OpenOffice.org.Base (Файл Правка Вид В_:тавка | igi > S н % ^ ^ Окно Справка Запросы а^правление пользователями... [■—-(Фильтр таблиц... SQL... Макросы I Управление расширениями... Настройка фильтров XML... Настройка... Параметры... Рис. 3.18. Пункт «Связи» в меню «Сервис» Если заглянуть в него в нашей базе данных «Журнал Литература с рубриками, темами и разделами», мы увидим очень интересную схему (рис. 3.1 9). 228 Модуль 3. Хранение и обработка больших объёмов данных ^Журнал Литература с рубриками, темами и разделами.odb : Журнал Литература с рубриками, темами и разделами - OpenOffice.org (файл Правка Вид Выставка С.ервис Окно Спр,авка И 1. ^ , ’ ' Разделы Номер раздела i Название раздела I . Темы ff Номер темы \ Название темы Номер раздела Темы статей ^ Номер статьи Номер темы Статьи Рубрики р Номер рубрики V Название J Название Номер рубрики Номер журнала Год V Рис. 3.19. Схема связей базы данных Это и есть схема связей нашей базы данных. Здесь даже визуально различаются стороны «один» и «многие». Сторона «один» обозначена 1, а сторона «многих» - n. Связи вида один-к-одному встречаются не так часто и носят технический характер. Если две таблицы связаны таким образом, то есть одной строке первой таблицы соответствует не более одной строки второй таблицы, и наоборот, таблицы можно просто объединить. Тем не менее иногда разработчики специально не объединяют таблицы. Приведём пример. На рис. 3.20 показана схема данных базы данных, в которой хранится информация о людях. Между таблицами «Основная информация» и «Дополнительная информация» установлена связь один-к-одному. Так сделали потому, что поля основной информации требуются во много раз чаще, чем поля дополнительной информации, и для повышения производительности поиска по ним имеет смысл произвести такое разделение. ^ Оди 1н - к - одному.odb : Один - к - одному - OpenOffice.org Base: конструктор связей (файл Правка Вид Вставка Сервис Окно Спрпвка В % гг 4з . Основная информация ■ Дополнительная информация ' Номер ^ . Номер Фамилия Индекс Имя Адрес Дата рождения Домашний телефон Мобильный телефон Любимое блюдо Кличка собаки Основное хобби 1 Рис. 3.20. Связь один-к-одному Связь вида многие-ко-многим удивительная. С одной стороны, она очень распространена, про неё всегда рассказывают. С другой стороны, её никто никогда не видел, поскольку в обычных табличных базах данных связать таб- § 5. Связи между таблицами 229 лицы таким образом нельзя. Почему? Допустим, что строке одной таблицы соответствует несколько строк в другой таблице и наоборот. Попробуйте это нарисовать в тетради. Один «пучок» связей вы нарисуете. А потом вам придётся рисовать «пучки» в обратную сторону. И что тогда чему будет соответствовать? Вместе с тем содержательно связи многие-ко-многим встречаются часто. Например, какой вид имеет связь между таблицами «Темы» и «Статьи»? Одной теме может быть посвящено несколько статей, а одну статью можно отнести к разным темам. Но как же связать таблицы, между которыми видна связь многие-ко-многим? Для этого всегда используют промежуточную таблицу. В нашем случае это таблица «Темы статей». С каждой из связываемых таблиц она связана связью один-ко-многим. В ней и сходятся два «пучка». Зачем нужны связи между таблицами? При составлении запросов на выборку из связанных таблиц нам связи нужны не были - мы и так знали, посредством каких полей установлено соответствие между таблицами. Но если связи не нужны нам, то кому они нужны? Явно заданные связи помогают СУБД следить за тем, чтобы мы не совершали некоторых грубых ошибок при заполнении базы данных. Нет, к сожалению, если мы напишем в заголовке статьи слово «исскуство», то от такой ошибки нас никакие связи не уберегут. А вот если мы попробуем отнести статью к рубрике с номером 100? Итак, зададимся конкретным вопросом: зачем в базе данных «Журнал Литература» связаны таблицы «Статьи» (на стороне «многих») и «Рубрики» (на стороне «одного»)? Ответ: чтобы в качестве номера рубрики в таблице «Статьи» можно было задать лишь те номера, которые имеются в таблице «Рубрики»! Только к существующей рубрике можно отнести статью. Мы ещё вернёмся к обсуждению вопроса о роли связей в § 8. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ О связях между таблицами имеет смысл говорить применительно к парам таблиц - связь может быть установлена между двумя таблицами. Связь представляет собой соответствие между записями в таблицах. Различают три вида связей. Самая распространённая связь - один-ко-многим. Эта связь технически может быть установлена в СУБД. Имеется также связь один-к-одному, которая носит служебный характер: связанные таким образом таблицы могут быть объединены. Связь один-к-одному также может быть установлена на уровне СУБД. Говорят также о связи вида многие-ко-многим. Такая связь не может быть установлена непосредственно, но для её реализации можно использовать промежуточную таблицу. 230 Проверь себя Задание 1 1. Откройте текстовый документ Текст для структуризации.doc. 2. В том же файле создайте таблицу и поместите в неё информацию из приведённого текста. Столбцы (поля) таблицы озаглавьте. 3. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Учитель выдаст вам бумажный бланк со схемой базы данных «Высотные здания мира». 1. В каждой из таблиц определите и подчеркните ключевые поля. 2. Соедините связанные таблицы линиями и на линиях обозначьте типы связей. ^ В ысотные здания MMpa.cdb : Высотные здания мира - OpenOffice.org Base: конструктор связей Файл Правка Вид В_тавка С.ервис Окно Спр.авка В ч» tj Ь , Страны Название страны Города Ц Города--Здания Здания Номер города Номер города Название города Номер здания Название здания Высота Год постройки Задание 3 1. В базе данных «Журнал Литература с рубриками, темами и разделами» создайте запрос, посредством которого можно получить номера и названия всех статей, опубликованных в третьих номерах журнала с 2001 по 2005 год. Перечень статей должен быть упорядочен в порядке возрастания номеров статей. 2. Сохраните запрос в папке и под именем, которые укажет учитель. 231 Задание 4 1. В базе данных «Журнал Литература с рубриками, темами и разделами» создайте запрос, посредством которого можно получить все статьи, отнесённые к разделу номер 1 50 («Литература конца XIX - начала XX века»), опубликованные до 2000 года включительно и отнесённые к рубрике с номером 4 («Я иду на урок»). Перечень статей должен быть упорядочен в порядке возрастания года издания, а внутри года - в порядке возрастания номеров журнала. В результате запроса могут присутствовать повторяющиеся строки, это не является ошибкой. 2. Сохраните запрос в папке и под именем, которые укажет учитель. 232 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 Учитель выдаст вам текст, содержащий некоторую описательную информацию. Представьте данную информацию в табличной форме. Используйте только одну таблицу. Задание 2 Учитель выдаст вам базу данных, содержащую не связанные между собой пустые таблицы (файл Ключи1.odb) и краткое описание предполагаемого содержимого таблиц, если это неочевидно по их названиям и структуре. 1. Укажите таблицы, имеющие простой ключ. 2. Укажите таблицы, имеющие составной ключ. 3. Для оставшихся таблиц, в которых, по вашему мнению, нет ни простого, ни составного ключа, предложите, какое поле или поля в них можно добавить в качестве ключа. Задание 3 Учитель выдаст вам перечень вопросов, которые интересуют его относительно содержимого базы данных «Журнал Литература». Составьте соответствующие запросы и ответьте на вопросы учителя. ПРИМЕНЕНИЕ ЗНАНИЙ [повышенный уровень] Задание 1 Учитель выдаст вам текст, содержащий некоторую описательную информацию. Представьте данную информацию в табличной форме. Используйте для этого две таблицы. Самостоятельно примите решение, каким образом целесообразно разделить информацию между таблицами. Если вы сможете предложить несколько вариантов такого разделения, сделайте это. Задание 2 Учитель выдаст вам базу данных и перечень вопросов, которые интересуют его относительно содержимого базы данных. Составьте соответствующие запросы и ответьте на вопросы учителя. Задание 3 Учитель выдаст вам бумажный бланк, на котором представлена схема базы данных, и текст с описанием содержимого таблиц. Связанные таблицы базы данных показаны на схеме. 233 Исходя из описания базы данных, определите и укажите на схеме вид каждой из связей и поля, посредством которых производится связывание. ПРИМЕНЕНИЕ ЗНАНИЙ (максимальный уровень) Задание 1 Учитель выдаст вам текст, содержащий некоторую описательную информацию. Представьте данную информацию в табличной форме. Используйте столько таблиц, сколько сочтёте удобным. Самостоятельно примите решение, каким образом целесообразно разделить информацию между таблицами, если это требуется. Если вы сможете предложить несколько вариантов такого разделения, сделайте это. Задание 2 Учитель выдаст вам базу данных и перечень вопросов, которые интересуют его относительно содержимого базы данных. Составьте соответствующие запросы и ответьте на вопросы учителя. Возможно, для ответа на некоторые вопросы часть работы вам придётся выполнить вручную (например, записать «на листочке» результат одного запроса, чтобы выполнить следующий). Задание 3 Учитель выдаст вам бумажный бланк, на котором представлена схема базы данных, и текст с описанием содержимого таблиц. Исходя из описания базы данных, на бланке соедините связанные таблицы. Для каждой связи укажите её вид и поля, посредством которых производится связывание. 234 Итоговая проверочная работа Задание 1 Учитель выдаст вам текст, содержащий некоторую описательную информацию. Представьте данную информацию в табличной форме. Используйте столько таблиц, сколько сочтёте удобным. Самостоятельно примите решение, каким образом целесообразно разделить информацию между таблицами, если это требуется. Задание 2 Учитель выдаст вам базу данных и перечень вопросов, которые интересуют его относительно содержимого базы данных. Составьте соответствующие запросы и ответьте на вопросы учителя. § 6. Запросы, использующие группировку данных 235 § 6. Запросы, использующие группировку данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Узнать в базе данных кондитерской фабрики общий вес или общую стоимость сладостей, отправленных в магазины одного района, очень просто. Для этого надо сделать статистические запросы по каждому магазину этого района, записать результаты, сложить их и получить итог. Поздравляем, с этого момента вы лично вошли в состав системы управления базой данных. Теперь каждый, кому потребуются выборочные статистические данные, может обращаться к вам, а вы всё быстренько подсчитаете. • Какую проблему вы помогаете решить такими действиями? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните, как в базе данных подсчитывается количество записей. (§ 3) РЕШЕНИЕ ПРОБЛЕМЫ Статистические запросы Начиная знакомство с языком запросов, мы рассматривали простые примеры запросов, которые можно назвать статистическими. Обычно это запросы, отвечающие на вопрос «Сколько?». Вспомним, что в таких запросах использовалось выражение COUNT (*). Примеры статистических запросов к рассмотренной в § 4 и 5 базе данных «Журнал Литература с рубриками, темами и разделами»: а) Сколько тем имеется в данном разделе? (Например, в разделе с номером 1 60 «Литература советского периода».) б) Сколько имеется статей по данной теме? (Например, по теме 1 30060 «Мёртвые души».) в) Сколько имеется статей в данном разделе? (Например, в разделе с номером 160 «Литература советского периода».) • Если вам интересна данная информация, выполните перечисленные запросы. Группировка данных Рассмотренные выше запросы возвращают одно-единственное число. Чтобы с помощью подобных запросов выяснить, например, сколько статей было опубликовано в каждом году с 1992-го по 2011-й, придётся выпол- 236 Модуль 3. Хранение и обработка больших объёмов данных нять запрос для каждого года из указанного диапазона и записывать где-то результаты. Вы, конечно, понимаете, что в производственных целях это надо делать как-то иначе. Как? Посредством группировки данных с использованием конструкции GROUP BY. Поясним сказанное. Рассмотрим запрос: SELECT "Год", COUNT(*) FROM "Статьи" GROUP BY "Год" Он выполняется следующим образом. Сначала представим себе, что в запросе нет ни COUNT (*), ни GROUP BY: SELECT "Год" FROM "Статьи" В результате получим таблицу, в которой будет указан год выхода каждой статьи. Теперь добавим GROUP BY "Год". Эта конструкция разобьёт результат первого запроса на группы с одинаковым значением поля Год. Далее из каждой группы берётся значение поля Год, и получившаяся таблица будет результатом запроса (рис. 3.21). Кстати, сам по себе такой запрос не бессмысленный - он возвращает таблицу лет, о которых имеется информация в базе данных. (Г. Журнал Литература с рубриками, темами и разделами.odb : Запрос! - OpenOffice.org Base: конструктор запросов Файл Правка Вид В_тавка С_рвис Окно Спр.авка 1992 1993 1994 1995 1996 1997 1998 1988 1999 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 * ti X 1 |из 22 ^ ТДм] ^SELECT “Год"" FROM 'Статьи' GROUP BY "Год" Рис. 3.21. Годы, о которых имеется информация в базе данных § 6. Запросы, использующие группировку данных 237 Если теперь добавить выражение COUNT ( посчитано количество записей (рис. 3.22). , то в каждой группе будет Журнал Литература с рубриками, темами и разделами.odb : Запрос! - OpenOffice.org Base: конструктор запросов Файл Правка Вид Вставка Сервис Окно Спр.авка "В □ - а . . Л ч • * 14 X Год Количество статей I' 1992 24 1993 126 1994 317 1995 360 1996 499 1997 438 1998 424 1988 1 1999 450 1999 2 2000 418 2001 465 2002 557 2003 575 2004 547 2005 525 2006 455 2007 506 2008 475 2009 455 2010 392 2011 138 Запись)! |из 22 ' |»’ >1 SELECT “ГоД , COUNT ( * ) as “Количество статей FROM “Статьи" GROUP BY “Год" Рис. 3.22. Количество статей в различные годы Пожалуйста, обратите внимание на то, что мы внесли ещё одно синтаксическое дополнение в запрос: назвали столбец результата Количество статей. (Пояснение для тех, кто обратил внимание на странный год 1 99: как нам объяснили администраторы этой базы данных, этот год им зачем-то нужен, выполняет техническую функцию.) Г руппировать (как и сортировать - помните?) можно по значению не только одного поля, но и нескольких полей. Очевидный пример запроса такого вида - таблица с данными о количестве статей в каждом из номеров журнала, информация о которых имеется в базе данных (рис. 3.23): SELECT "Номер журнала", "Год", COUNT(*) as "Количество статей" FROM "Статьи" GROUP BY "Номер журнала", "Год" Рассмотрим ещё несколько примеров сбора полезной статистической информации в нашей базе данных с использованием GROUP BY. Количество статей в рубриках: SELECT "Номер рубрики", COUNT(*) as "Количество статей" FROM "Статьи" GROUP BY "Номер рубрики" 238 Модуль 3. Хранение и обработка больших объёмов данных Рис. 3.23. Количество статей в различных номерах Результат запроса показан на рис. 3.24. Журнал Литература с рубриками, темами и разделами.odb: Запрос1 - OpenOffice.org Base. конструктор запросов Файл Правка Вид Вставка Сервис (Окно Справка в г_- ‘ -г:' ^ . л - 1 Ч I* X . . Номер журнала [ Количество статей 10 3874 2 538 4 1515 7 948 8 642 14 79 3 83 9 98 11 38 1 103 18 40 5 38 12 50 6 29 13 18 21 40 22 16 SELECT "Номер рубрики" , COUNT ( * ) as "Количество статей' FROM "Статьи" GROUP BY "Номер статьи" Рис. 3.24. Количество статей в различных рубриках Количество статей в различных рубриках в каждом из номеров (рис. 3.25): SELECT "Номер журнала", "Год", "Номер рубрики", COUNT(*) as "Количество статей" FROM "Статьи" GROUP BY "Номер журнала", "Год", "Номер рубрики" из § 6. Запросы, использующие группировку данных ^'"журн^тлйгёра^УраСр^брй^амй^^мамйИра^Дёл^МЙ^^Ь:ЗапросТ""орёпО№сё!огдВа5ё~кон^"рукгорзап^0сов" 239 Файл Правка Вид Вставка Сервис Окно Справка а Г v" ^ <■ еТ » . л . М • и *♦ N U Номер журнала Год Номер рубрики Количество статей 1 2011 7 2 1 2011 8 1 1 2011 9 1 2 2011 1 1 2 2011 3 1 2 2011 2 2 2 2011 5 1 2 2011 12 2 2 2011 4 5 2 2011 9 2 2 2011 7 2 2 2011 8 1 3 2011 1 1 L- 3 2011 8 4 3 2011 2 4 3 2011 5 1 3 2011 12 2 3 2011 4 3 Запись 12 692 I из SELECT “Номер журнала", “ГоД , “Номер рубрикИ' , COUNT ( * ) as “Количество статей' FROM “СтатьИ' GROUP BY “Номер журнал^' , “Год" , “Номер рубрики" Ч_______________________________________________________________________ Рис. 3.25. Количество статей в различных рубриках в каждом из номеров Для того чтобы получить вместо номеров рубрик их названия, необходимо использовать в запросах две таблицы. Перепишем запрос на получение количества статей в рубриках так, чтобы результат стал более наглядным: SELECT "Рубрики"."Название", COUNT(*) as "Количество статей" FROM "Статьи", "Рубрики" WHERE "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики "GROUP BY "Рубрики"."Название" Результат этого запроса показан на рис. 3.26. ^Журнал Литература с рубриками, темами и разделами■odb: Запрос! - OpenOffice.org Base. конструктор запросов Файл Правка Вид Вставка С,ервис Окно Справка В 1 -^1 ^ ^ . ■ Л S’ • ^ li X . , Название Количество статей ' Архив 3874 События и встречи 538 Я иду на урок 1515 Штудии 948 Читальный зал 642 Курсы повышения квалификации 79 Листки календаря 83 Есть идея! 98 Места 38 Колонка редактора 103 Интернет - кладовка 40 Курс молодого словесника 38 Литературные прогулки 50 Литература и театр 29 ЛитМотив 18 Готовимся к ЕГЭ 40 Спецвыпуск 16 Запись! !7 "ХЩ" SELECT “Рубрики' , “Название' , COUNT ( * ) as “Количество статей' FROM “Статьй' , “Рубрики" WHERE “Статьй' .“Номер рубрики"="Рубрикй' .“Номер рубрики" GROUP BY “Рубрики' .“Название" Рис. 3.26. Количество статей в различных рубриках 2760 из 240 Модуль 3. Хранение и обработка больших объёмов данных Результат последнего запроса будет ещё более наглядным, если расположить рубрики, например, в порядке убывания количества статей в них. Для этого нужно добавить уже знакомую нам конструкцию ORDER BY (рис. 3.27): SELECT "Рубрики"."Название", COUNT(*) as "Количество статей" FROM "Статьи", "Рубрики" WHERE "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики" GROUP BY "Рубрики"."Название" ORDER BY "Количество статей" DESC Журнал Литература с рубриками, темами и разделами.odb: Запрос1 - OpenOffice.org Base. конструктор запросов ’ Файл Правка Вид Вставка Сервис Окно Справка в |1?| Rj d Щ > L-i- ч as- t и \ V . Название j Количество статей Архив 3874 Я иду на урок 1515 Штудии 984 Читальный зал 642 События и встречи 538 Колонка редактора 103 Есть идея! 98 Листки календаря 83 Курсы повышения квалификации 79 Литературные прогулки 50 Готовимся к ЕГЭ 40 Интернет - кладовка 40 Курс молодого словесника 38 Места 38 Литература и театр 29 ЛитМотив 18 Спецвыпуск 16 !Запись|1 j из 17 ■ ■ ]► i SELECT "Рубрики' . "Название" , COUNT ( * ) as "Количество статей" FROM "СтатьЯ' , "Рубрики" WHERE "Статьи' . "Номер рубрики"="Рубрики ."Номер рубрики" GROUP BY "Рубрики' ."Название" ORDER BY "Количество статеИ' DESC Рис. 3.27. Количество статей в различных рубриках в порядке убывания В завершение покажем порядок следования частей в запросах SELECT: SELECT^ FROM^ WHERE^ GROUP BY„ ORDER BY„ Вы знаете, что некоторые части запроса могут и отсутствовать, но переставлять их местами нельзя. § 6. Запросы, использующие группировку данных 241 ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для группировки результатов запроса с целью получения информации о группах в целом используется выражение GROUP BY. Полям, указываемым после слова SELECT, для наглядности можно присваивать имена посредством выражения AS <Имя>. Это же имя может быть использовано в запросе, например в части ORDER BY. В запросах SELECT части должны располагаться в следующем порядке: SELECT^ FROM^ WHERE^ GROUP BY^ ORDER BY^ Некоторые части могут отсутствовать, но менять их порядок нельзя. ПРИМЕНЕНИЕ ЗНАНИЙ Сформулируйте и выполните следующие запросы к базе данных «Журнал Литература с рубриками, темами и разделами». Фрагменты требуемых результатов показаны на соответствующих рисунках. Сохраните запросы в папке и под именами, которые укажет учитель. 1. Получить количество статей в различных рубриках в каждом из номеров (как на рис. 3.25) таким образом, чтобы рубрики были представлены своими названиями, а не номерами. 1;^ Журнал Литератур а с рубриками, темами и разделами-odb: Запрос1 OpenOffice.org Base. Файл Правка Вид Вставка Сервис Окно Справка 8 Ьз' Г ■ _ л А • ; ** U X Номер журнала Год Название Количество статей 22 2001 Я иду на урок 1 23 2001 Штудии 3 23 2001 |Архив " |5 24 2001 Штудии 2 24 2001 Архив 6 24 2001 Я иду на урок 3 24 2001 События и встречи 1 25 2001 Архив 7 25 2001 Я иду на урок 2 25 2001 Штудии 3 25 2001 События и встречи 1 26 2001 Архив 4 26 2001 Я иду на урок 2 26 2001 События и встречи 1 26 2001 Штудии 1 27 2001 Я иду на урок 1 27 2001 Штудии 1 27 2001 Архив 6 уЗапись|986 2. Получить количество статей в каждой из тем. Составьте три варианта запроса. Сначала ограничьтесь только номерами тем (вариант 1). Затем замените номера тем на их названия (вариант 2). Далее упорядочите результаты последнего запроса по убыванию количества статей (вариант 3). 1021 * из 242 Модуль 3. Хранение и обработка больших объёмов данных Вариант 1: ^ Журнал Литература с рубриками, темами и разделами.odb: Запрос1 - OpenOffice.org Base. Файл Правка Вид В_тавка Сервис Окно Справка в . Л t J* X V . Номер тем^ Количество статей | 100010 |62 1 150220 39 150210 20 150150 59 110010 61 190140 6 120040 19 120020 10 190160 6 150090 57 150230 84 130190 40 130140 22 130020 53 130070 22 160230 29 150050 85 130030 73 140110 7 Запись1 Гйз ^ J Вариант 2: ^ Журнал Литература с рубриками, темами и разделами■odb: Запрос! - OpenOffice.org Base. (Файл Правка Вид Выставка Сервис Окно Спр^авка в 0 -. !Г I® м _ Л .1? • t и Название темы I Коли' чество статей Русский фольклор 62 М.И. Цветаева 39 Поэты - футуристы 20 В.В. Маяковский 59 Древнерусская литература 61 Киплинг 6 И.А. Крылов 19 М.В. Ломоносов 10 Кэрролл 6 М. Горький 57 Творчество А.П. Чехова 84 Поэты "пушкинского круга" 40 Драматургия А.С. Пушкина 22 А.С. Грибоедов 53 В.А. Жуковский 22 Поэзия шестидесятников 29 А.А. Блок 85 Творчество Н.В. Гоголя 73 "Анна Каренина" 7 Запись|1 22 * из § 6. Запросы, использующие группировку данных 243 Вариант 3: 5;^ Журнал Литература с рубриками, темами и разделами.odb: Запрос! - OpenOffice.org Base. конструктор запросов Файл Правка Вид Вставка Сервис (_кно Спр.авка в . si.- till . V- л s' ■ ? U X „ Название темы Количество статей > Методика преподавания литературы в старших классах 270 Содержание и структура художественного произведения !83 Ф.М. Достоевский !45 Творчество А.С. Пушкина 14! Литературные роды и жанры !39 Современная русская литература 137 Методика преподавания литературы в средних классах 137 И.С. Тургенев 111 И.А. Бунин 96 А.А. Блок 85 Проза А.С. Пушкина 84 Творчество А.П. Чехова 84 Лирика А.С. Пушкина 78 "Война и мир" 77 Сочинение - 2003 75 Литература о тоталитаризме и ГУЛАГе 74 Творчество Н.В. Гоголя 73 Проза о Великой Отечественной войне 68 Творчество Л.Н. Толстого 67 Запись |l 3. Получить количество статей в каждом из разделов. Составьте три варианта запроса. Сначала ограничьтесь только номерами разделов (вариант 1). Затем замените номера разделов на их названия (вариант 2). Далее упорядочите результаты последнего запроса по убыванию количества статей (вариант 3). Вариант 1: |Журн^Л^^^ера^/расрубрш<^ми^ема^иира'Здела^и^^^За^росТ-Ор^^^^^.0гдВ^;еГкон^грукторза^росов^^ Файл Правка Вид Вптавка С<ервис Окно Спрпвка В @ Ч. ^ , л J* X Номер раздела I Количество статей 100 62 150 962 110 104 190 341 120 94 130 887 160 780 140 780 200 916 180 111 170 247 210 322 Запись |i 22 из из 244 Модуль 3. Хранение и обработка больших объёмов данных Вариант 2: ^ Журнал Литература с рубриками, темами и разделами-odb: Запрос! - OpenOffice.org Base. конструктор запросов''^ Файл Правка Вид В<:тавка С^грвис Окно Спрпвка 9 @ ^ ■ Й . 4Й1 . л ^ t* ;* X . Название раздела Количество статей Lii. Фольклор 62 Литература конца XIX - начала XX века 962 Древнерусская литература 104 Зарубежная литература 34! Литература XVIII века 94 Литература первой половины XIX века 887 Литература советского периода 780 Литература второй половины XIX века 780 Теория литературы 916 Литература русского зарубежья 111 Литература постсоветского периода 247 Подготовка к выпускным экзаменам 322 ^апись|! [ШМ Вариант 3: ^ Журнал Литература с рубриками, темами и разделами-odb: Запрос! - OpenOffice.org Base. конструктор запросов Файл Правка Вид Вставка Сервис Окно Спр.авка Э .л- й . . Л П it X Название раздела 1 Количество статей Литература конца XIX - начала XX века 962 Теория литературы 916 Литература первой половины XIX века 887 Литература советского периода 780 Литература второй половины XIX века 780 Зарубежная литература 341 Подготовка к выпускным экзаменам 322 Литература постсоветского периода 247 Литература русского зарубежья 111 Древнерусская литература 104 Литература XVII века 94 Фольклор 62 У^аписьр |из 12 i i U(hJ ) из § 7. Проектирование базы данных 245 § 7. Проектирование базы данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Володя: Получается, что базы данных, используемые взрослыми, состоят из многих таблиц, между которыми установлено много связей. Как же это всё в голове удержать? Это же невозможно! Катя: Раз невозможно, значит, это занятие не для всех. Кто сможет всю эту сложность в голове удержать, тот базы данных и создаёт. А остальным и пытаться нечего. • Согласны ли вы с Володей? А с Катей? Определите основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните из курса информатики и посмотрите в словаре значение слова «проектирование». РЕШЕНИЕ ПРОБЛЕМЫ Кто и как проектирует базу данных В предыдущих параграфах мы рассмотрели достаточно много вопросов, связанных с табличными базами данных. Но с практической точки зрения все эти вопросы фактически сводятся к одному: как извлечь данные из уже готовой (кем-то изготовленной) базы данных. А кто же изготавливает саму базу данных? При решении масштабных производственных задач этим занимаются специалисты даже не одной, а нескольких профессий. Сначала работают аналитики, которые во взаимодействии с экспертами строят модель предметной области - того, с чем приходится иметь дело. Данные из предметной области включаются в содержимое базы данных. Границы предметной области также определяют аналитики и эксперты. В предельно упрощённом понимании при проектировании базы данных для информационной системы завода нас интересует то, что имеет отношение к производственной деятельности завода. А то, что не имеет, например клумба перед проходной, - не включается в предметную область. Различие между аналитиками и экспертами заключается в том, что эксперты не владеют навыками и технологиями моделирования, зато хорошо знают саму предметную область. Например, эксперт знает, что сторожевая собака Шарик важна для системы безопасности объекта, а дворняжка Дружок - нет, хотя живут оба пёсика в одной будке. Аналитик же, получив информацию от эксперта, поймёт, какое место должны занимать служебные собаки в модели, важны ли они вообще с точки зрения целей моделирования, и если важны, то что именно важно о них знать - кличку, дату рождения, окрас, вес и т.д. 246 Модуль 3. Хранение и обработка больших объёмов данных В модели выделяются существенные, значимые для описания предметной области объекты и их свойства. Существенные для целей моделирования объекты часто называют сущностями. Построив модель предметной области, в которой выделены существенные объекты и их существенные свойства, аналитик передаёт эстафету проектировщику баз данных. Проектировщик уже имеет дело с готовой моделью. Его задача - создать в базе данных таблицы с требуемыми полями, назначить в них ключи, установить связи. Описанная картина во многом идеальна, хотя практически в таком виде она и реализуется в масштабных проектах. В проектах поменьше проектировщик часто сам выполняет аналитическую работу по построению модели. Сегодня нам предстоит поработать и аналитиками, и проектировщиками баз данных в одном лице. Из сказанного выше и из собственного опыта изучения тем нашего модуля вы наверняка понимаете, что для того, чтобы мы смогли успеть закончить работу за один урок, должны выполняться, как минимум, два условия. Во-первых, мы должны хорошо представлять себе предметную область, для которой производится проектирование, во-вторых, область должна быть не слишком большой. В качестве такой предметной области рассмотрим самый обычный классный журнал. Как он устроен, все знают. Создаём базу данных «Классный журнал» Этап 1. Выделение сущностей На первый взгляд сущностями в данной предметной области являются: • ученики; • учителя; • предметы; • уроки; • оценки; • пропуски уроков (буквы «н»). Мы достаточно быстро выделили указанные сущности, поскольку неплохо знаем предметную область. Вообще говоря, в журнале имеется ещё много чего. Например, в конце журнала обычно записывают сведения о родителях учеников. Мы не включили родителей в список сущностей, поскольку сделали допущение, что непосредственного отношения к журналу - ведомости уроков, оценок и пропусков - родители не имеют. Это допущение! Аналитик и проектировщик вполне могли решить иначе. Этап 2. Определение связей между сущностями При определении наличия и типов связей между сущностями необходимо поступать так: § 7. Проектирование базы данных 247 • Берём для рассмотрения две сущности. • Решаем, связаны ли они непосредственно между собой. (Понятно, что через «третьи руки» в предметной области много чего может быть связано, нас интересует именно непосредственная связь между сущностями.) • Если сущности непосредственно не связаны, то откладываем их и переходим к следующей паре. • Если сущности связаны, то определяем тип связи (один-к-одному, один-ко-многим, многие-ко-многим). Мы свели результаты проведённого авторами учебника анализа в таблицу. Для наглядности в неё введены следующие обозначения. Если связь обнаружена, то после имён сущностей в скобках проставлены 1 или n в зависимости от того, на стороне «одного» или на стороне «многих» эта сущность находится в данной связи. Строки, в которых не обнаружены связи, сделаны серыми, чтобы не мешали (рис. 3.28). Сущность 1 Сущность 2 Связь Ученик Предмет Непосредственной нет Ученик Учитель Непосредственной нет Ученик Урок Непосредственной нет Ученик(1) Оценка (n) Один-ко-многим Ученик(1) Пропуск (n) Один-ко-многим Учитель (n) Предмет (n) Многие-ко-многим Учитель Урок Непосредственной нет Учитель Оценка Непосредственной нет Учитель Пропуск Непосредственной нет Предмет (1) Урок (n) Один-ко-многим Предмет Оценка Непосредственной нет Предмет Пропуск Непосредственной нет Урок(1) Оценка (n) Один-ко-многим Урок(1) Пропуск (n) Один-ко-многим Оценка Пропуск Непосредственной нет Рис. 3.28. Результат анализа предметной области Этап 3. Построение схемы предметной области На основании таблицы на рис. 3.28 построим схему предметной области, изобразив сущности и связи между ними (рис. 3.29). 248 Модуль 3. Хранение и обработка больших объёмов данных Рис. 3.29. Схема предметной области «Классный журнал» Связи на схеме показаны линиями. При этом на стороне «одного» связь изображается обычной линией, а на стороне «многих» линия превращается в «вилку» (на образном жаргоне специалистов ещё иногда говорят о «венике»). На производственных схемах используются похожие, только более сложные обозначения. Перед тем как приступать к следующему этапу проектирования - начать превращать сущности в таблицы, необходимо разобраться с типовой неприятностью - связью вида многие-ко-многим между учителями и предметами. Вы знаете, что на уровне базы данных между таблицами такие связи установить нельзя. Но вы знаете и то, каким образом разработчики базы данных «Журнал Литература» решили эту проблему. Подобная ситуация была там со статьями и темами. Для решения проблемы потребовалась промежуточная таблица «Темы статей». Решение это - типовое. Необходимо ввести «промежуточную», связующую сущность «Учитель <-> Предмет», которая разорвёт связь многие-ко-многим посредством двух связей один-ко-многим (рис. 3.30). На самом деле сущность эта не является такой уж искусственной. Ведь информация о том, какой учитель какой предмет ведёт, имеется у администрации школы в виде некоторого физически существующего табеля. Просто сейчас, в процессе проектирования, мы выяснили, что этот табель является существенным объектом и для нашей предметной области. На этом этапе аналитик передаёт схему проектировщику базы данных для дальнейшей работы. Но мы-то едины во всех лицах, так что продолжаем. Выпишем для каждой из сущностей существенные свойства, которые станут затем полями таблиц (рис. 3.31). § 7. Проектирование базы данных 249 Учитель < Учитель <—> Предмет >■ Ученик Оценка >- Пропуск >- - Предмет / У рок Рис. 3.30. Уточнённая схема предметной области «Классный журнал» Рис. 3.31. Существенные свойства сущностей Среди указанных свойств выделим ключи (рис. 3.32). Иногда на этом этапе ключи приходится добавлять - мы говорили об этом в § 2. Но в данном случае мы фактически позаботились о ключах с самого начала - в реальном проектировании так часто бывает. 250 Модуль 3. Хранение и обработка больших объёмов данных Рис. 3.32. Выделенные ключи Этап 4. Создание таблиц базы данных Начиная с этого этапа, мы переходим к созданию таблиц. Создадим новую базу данных, назовём её «Классный журнал». После создания база данных будет пустой - в ней не будет ни данных, ни даже таблиц. Для создания новой таблицы нужно выбрать соответствующий пункт на вкладке Таблицы (рис. 3.33). Рис. 3.33. Создать таблицу в режиме дизайна означает задать всё - поля и ключ - вручную В процессе создания таблицы необходимо задать имена и типы полей (рис. 3.34), а также определить ключ. До сих пор мы напрямую не имели дело с типами полей. Для простоты можно считать, что в базе данных «Классный § 7. Проектирование базы данных 251 журнал» имеются поля трёх типов: числовые (для всех номеров и оценок), текстовые (для имён, фамилий, названий и т.д.) и один-единственный раз встречается поле типа «Дата» в таблице «Уроки». Рис. 3.34. Имена и типы полей таблицы «Учителя» Последнее, что надо сделать перед тем, как сохранить таблицу, - задать ключ. Необходимо выделить требуемое поле Номер ученика и щёлкнуть правой кнопкой мыши. В контекстном меню далее следует выбрать пункт Первичный ключ (рис. 3.35). Классный журнал.odb : Таблица! - OpenOffice.org Base: конструктор таблиц (Файл _равка Вид С_рвис (Окно Спр_вка S li_ W ^ Вырезать Копировать _ _далить _ Вставить _троки [VARCHAR] [VARCHAR] [VARCHAR] _ервичный ключ ст Рис. 3.35. Определение ключа Если ключ состоит из нескольких полей, то перед щелчком правой кнопкой мыши надо выделить их все (рис. 3.36). 252 Модуль 3. Хранение и обработка больших объёмов данных IQ Классный жvрнал.odb : Таблица1 - OpenOffice.org Base: конструктор таблиц Файл Правка Вид Сервис Окно Спргавка В ^ , Название поля Тип поля Вырезать [ INTEGER ] Копировать [ INTEGER ] .Удалить Вставить .строки Первичный ключ Рис. 3.36. Определение составного ключа Этап 5. Определение связей между таблицами После того как таблицы созданы, необходимо отразить в базе данных связи, обозначенные на схеме предметной области. Для этого, выбрав пункт меню Связи, надо соединить связанные поля (схватить связанное поле в одной таблице, перетащить его и «положить» на связанное с ним поле в другой таблице). Если все ключи определены, тип связи будет установлен автоматически (рис. 3.37). Рис. 3.37. Схема базы данных «Классный журнал» § 7. Проектирование базы данных 253 Возможно, вам будет интересно, как выглядит схема предметной области в профессиональной системе проектирования баз данных (рис. 3.38]. Очень похоже на схему, которую использовали мы! Учитель РК Номер учителя Фамилия Имя Отчество -К Учитель <—> Предмет РК, FK1, РК, FK2 Ученик РК Номер ученика Фамилия Имя -о<. -СХ Номер учителя Номер предмета Предмет РК Номер предмета Название Оценка РК Номер оценки FK1 Номер ученика FK2 Номер урока Оценка Х>- Ih РК FK1 Пропуск РК, FK2, РК, FK1 Номер урока Номер ученика >о- А. Урок Номер урока Дата Тема урока ДЗ Номер предмета Рис. 3.38. Схема предметной области в профессиональной СУБД Фактически это та же схема, которая изображена на рис. 3.37, только в ней отражено больше информации о типах связей и ключах таблиц. Типы связей здесь уточнены следующим образом: «Наконечник» связи означает, что на этой стороне может распо- лагаться одна и только одна запись. «Наконечник»------к соответствует случаю «одна или много». Наконец, «наконечник»-----о< обозначает случай «0 или много». Разли- чия между пунктирными и сплошными линиями в данном случае не слишком существенны, мы на них останавливаться не будем. А вот смысл обозначений PK и FK поясним. Если поле помечено буквами PK (от Primary Key], это означает, что оно входит в состав ключа. Поля же, помеченные буквами FK (от Foreign Key], входят в состав внешних ключей, то есть связаны с ключевыми полями в других таблицах. 254 Модуль 3. Хранение и обработка больших объёмов данных ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ В создании производственных баз данных принимают участие аналитики (специалисты в области моделирования), эксперты (специалисты в данной конкретной предметной области) и проектировщики (специалисты в области проектирования баз данных). Сначала аналитики в сотрудничестве с экспертами создают модель предметной области - выделяют сущности и их существенные свойства, выявляют связи между сущностями. Затем проектировщики определяют таблицы с соответствующими полями, «протягивают» связи между таблицами. ПРИМЕНЕНИЕ ЗНАНИЙ Создайте таблицы базы данных «Классный журнал». Задайте все связи между таблицами согласно схеме предметной области. Сохраните базу данных в папке и под именем, которые укажет учитель. § 8. Запросы на добавление, изменение и удаление данных 255 § 8. Запросы на добавление, изменение и удаление данных ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Володя: Наконец-то мы разобрались с запросами на поиск в базах данных. Мощный инструмент, если уметь им пользоваться. Одно плохо: в базы данных данные надо сначала заносить, а потом, если что-то меняется, вносить изменения или удалять записи. Если базы данных небольшие, то ничего страшного: можно вручную всё сделать. А как быть с огромными базами данных? Катя: Нет трудностей для тех, кто их не боится! Чем больше базы данных, тем больше человек можно занять внесением новых записей и исправлением или удалением старых. Если надо, посадим за работу сто человек, мало — пусть тысяча работает. Да хоть сто тысяч. • Какую проблему поставил Володя? Согласны ли вы с Катей? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). НЕОБХОДИМЫЕ БАЗОВЫЕ ЗНАНИЯ Вспомните из курса информатики, как работать с текстовым редактором уровня Блокнота и использовать буфер обмена операционной системы. РЕШЕНИЕ ПРОБЛЕМЫ Запрос - не всегда вопрос Начиная знакомство с языком запросов, мы сказали, что запрос представляет собой вопрос. И действительно, до сих пор мы имели дело только с запросами SELECT, которые представляют собой вопросы различной степени сложности. Но посредством SELECT нельзя, например, добавить данные в таблицу, модифицировать или вовсе удалить данные. Поэтому мы и работали с уже готовой, заполненной базой данных. В предыдущем параграфе мы спроектировали базу данных «Классный журнал». Пока она пуста, структура таблиц создана, связи определены, но никаких данных в базе данных нет. Сейчас мы это исправим. Для этого нам также понадобятся запросы, но уже не «вопросительные», а «указательные». Такие запросы приказывают СУБД выполнить те или действия с данными. Запрос на добавление записей INSERT Для добавления записей в таблицы используется запрос INSERT, имеющий следующий формат: 256 Модуль 3. Хранение и обработка больших объёмов данных INSERT INTO <Имя Таблицы> VALUES(<Значение поля 1>, <Значение поля 2>, _) Поля в списке VALUES должны следовать в том же порядке, что и в таблице. Добавим в базу данных «Классный журнал» запись для одного ученика. Для этого в меню Сервис выберем команду SQL и введём запрос INSERT (рис. 3.39): INSERT INTO "Ученики" VALUES (1, 'Абрикосов', 'Артем') ■ Классный журнал для экспер Сайл ОравкаВид ВставкаСер ^ Создать таблицу в .режиме диза 5 Использовать мастер для созда Создать представление... й пропуски Выполнить инструкцию SQL 1М Команда SQL Выполняемая команда INSERT INTO "Ученики' VALUES (1, 'Абрикосов, 'Артем') Предыдущая команда ■ Выполнить 1 - Состояние 1 |‘ Справка .Закрыть ' Рис. 3.39. Запрос на добавление одной записи После выполнения запроса в режиме просмотра сразу можно увидеть, что в таблице «Ученики» появилась первая запись (рис. 3.40). fl"" Классный журнал для экспериментов.odb - OpenOffice.org Base |Цайл Правка Вид Вставка Сервис Окно Справка - -i. ■ (uli* " ■ в . ■ X . В^База данных | Таблицы . Создать таблицу в режиме дизайна... ^ Использовать мастер для создания таблицы... Создать представлеаие... Описание t Запросы <*- Формы 1 Таблицы От;четы ? Оценки ■ Предметы . Пропуски . Уроки -• Учителя Номер ученика 1 Фамилия Документ • i Имя [ '1 “ Абрикосов Артем 1 Учителя Предметы V Рис. 3.40. Первая запись в таблице «Ученики» ^тов.odb - OpenOftce.org B Окно Справка 1Г Учителя > Учителя Пред § 8. Запросы на добавление, изменение и удаление данных 257 (2,'Бананов', 'Боря' (3,'Вишневая', 'Вета' 'Грейпфрут', 'Гарик') Добавим вручную ещё несколько записей: INSERT INTO "Ученики" VALUES INSERT INTO "Ученики" VALUES INSERT INTO "Ученики" VALUES (4 И что же: все записи приходится добавлять вручную? Да, конечно. В случае производственных баз данных программисты создают для этого специальные удобные графические интерфейсы, но всё равно: что именно следует добавить в базу данных, что, например, девушку по фамилии Вишнёвая зовут Ветой, знает только человек, который вносит информацию. Как же побыстрее заполнить нашу БД данными? Один из удобных приёмов - подготовить в текстовом редакторе весь перечень необходимых команд, а потом разом их выполнить. Набирать команды в текстовом редакторе получается быстрее, чем в окне запросов базы данных. Мы воспользовались самым обычным текстовым редактором Блокнот (рис. 3.41). Чтобы затем все команды INSERT можно было выполнить разом, их необходимо разделять точкой с запятой. y4eHMKM.txt - Блокнот Файл Правка Формат Вид Справка INSERT INTO "Ученики” VALUES ( 5, 'Джонатан' , 'Даша' ) ; INSERT INTO ""Ученики” VALUES ( 6, 'Ежевичная' , 'Елена' ) ; INSERT INTO "Ученики” VALUES ( 7, 'Жимолость' , 'Жора' ) ; INSERT INTO "Ученики” VALUES ( 8, 'Зверобой' , 'Зина' ) ; INSERT INTO "Ученики” VALUES ( 9, 'Ива' , 'Ирина' ) ; INSERT INTO ""Ученики” VALUES ( 10, 'Картофельный' , 'Костя' ) ; INSERT INTO "Ученики” VALUES ( 11, 'Лайм' , 'Лиза' ) ; INSERT INTO ""Ученики” VALUES ( 12, 'Малиновая' , 'Маша' ) ; INSERT INTO "Ученики” VALUES ( 13, 'Нарядная' , 'Настя' ) ; INSERT INTO ""Ученики” VALUES ( 14, 'Оранжевый' , 'Олег' ) ; INSERT INTO ""Ученики” VALUES ( 15, 'Помидорная' , 'Полина' ) ; Рис. 3.41. Команды INSERT в окне Блокнота После того как все команды подготовлены, можно просто скопировать текст в буфер обмена и вставить его в окно запроса (рис. 3.42). После выполнения последовательности команд INSERT можно убедиться, что таблица «Ученики» заполнилась списком класса (рис. 3.43). • Для заполнения остальных таблиц базы данных воспользуйтесь готовыми текстовыми файлами с командами INSERT (файлы Уче-ники-sql, Учителя-sql, Предметы.sql, Уроки.sql, Пропуски.sql, Оценки. sql, Учителя Предметы.sql). Последовательно откройте их в любом текстовом редакторе (например, в Блокноте), выделите все строки, скопируйте в окно запроса и выполните соответствующие запросы. После этого база данных «Классный журнал» будет заполнена. • Получите все оценки Джонатан Даши по информатике. 258 Модуль 3. Хранение и обработка больших объёмов данных Выполнить инструкцию SQL _й_ Команда SQL Выполняемая команда INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” 'Ученики” VALUES ( 5, 'Джонатан' , 'Даша' ) ; VALUES ( 6, 'Ежевичная' , 'Елена' ) ; VALUES ( 7, 'Жимолость' , 'Жора' ) ; VALUES ( 8, 'Зверобой' , 'Зина' ) ; VALUES ( 9, 'Ива' , 'Ирина' ) ; VALUES ( 10, 'Картофельный' , 'Костя' ) ; VALUES ( 11, 'Лайм' , 'Лиза' ) ; VALUES ( 12, 'Малиновая' , 'Маша' ) ; VALUES ( 13, 'Нарядная' , 'Настя' ) ; VALUES ( 14, 'Оранжевый' , 'Олег' ) ; VALUES ( 15, Помидорная' , 'Полина' ) ; Предыдущая команда Выполнить Рис. 3.42. Команды INSERT, перенесённые через буфер обмена в окно запроса Классный журнал для экспериментов.odb - OpenOffice.org Base 'Файл Правка Вид Вставка Сервис |Экно Спр,ав -i (5i!! с • в . ' Создать таблицу в,режиме дизайна... _ _ ЯИспользовать мастер для создания таблицы... I аблиЦы S* Создать представление... ^Предметы •|Пропуски Уроки 1;Учителя ^Учителя Предметы 1 Абрикосов Артем 2 Бананов Боря 3 Вишневая Вета 4 Грейпфрут Гарик 5 Джонатан Даша 6 Ежевичная Елена 7 Жимолость Жора 8 Зверобой Зина 9 Ива Ирина 10 Картофельный Костя 11 -Лайм -Лиза 12 Малиновая Маша 13 Нарядная Настя 14 Оранжевый Олег 15 Помидорная Полина Рис. 3.43. Заполненная таблица «Ученики» Запросы Номер ученика Фамилия Имя Отч еты Ученики § 8. Запросы на добавление, изменение и удаление данных 259 Запрос на изменение данных UPDATE Получив все оценки Даши по информатике, вы, конечно, увидели, что на одном из уроков она получила тройку. Но, увы, Байт Битович (вы ведь обнаружили, что так зовут учителя информатики?) просто ошибся! Он ошибся клеточкой журнала. Он хотел поставить Даше заслуженную пятёрку, но задумался и - вот какая неприятность! Но ошибку ведь можно исправить. И для этого нам потребуется запрос на изменение данных UPDATE, который имеет следующий формат: UPDATE Имя таблицы SET <Имя поля 1> = < Значение 1>, <Имя поля 2> = <Значение 2>, _ WHERE <Условие> Нам надо изменить одно значение в одной строке таблицы «Оценки». Напомним, что в этой таблице имеется простой ключ Номер оценки. Следовательно, чтобы добраться до нужной строки, сначала требуется узнать значение ключа. • Получите значение ключа «Номер оценки» для единственной тройки по информатике Джонатан Даши. Узнали? Теперь можно выполнить требуемый запрос: UPDATE "Оценки" SET "Оценка"=5 WHERE "Номер оценки"=69 • Даша очень невезучая. Та же неприятность приключилась и с её оценками по химии и биологии. Всякий раз ей вместо пятёрки случайно ставили тройку. Исправьте ситуацию. DELETE: запрос на удаление записей Но ещё больше не повезло Картофельному Косте. Вы только посмотрите, сколько уроков он пропустил! • Выясните, сколько уроков пропустил Костя. Но Костя не пропускал ни одного урока, это ошибка. И её тоже надо исправить. Но поможет ли здесь запрос на модификацию данных? Нет. Посредством запроса UPDATE можно изменить существующую запись, но нельзя её удалить. Для удаления имеется специальный запрос DELETE. Он имеет следующий формат: DELETE FROM <Имя таблицы> WHERE <Условие> Мы знаем, что Костя не пропускал ни одного урока, следовательно, необходимо удалить из таблицы «Пропуски» все записи, в которых в качестве Номера ученика указан номер Кости: DELETE FROM "Пропуски" WHERE "Номер ученика"=10 260 Модуль 3. Хранение и обработка больших объёмов данных Целостность базы данных Абрикосов Артём перешёл в параллельный класс, и староста, освоив запрос DELETE, не долго думая, решил удалить его из списка: DELETE FROM "Ученики" WHERE "Номер ученика"=1 Сообщение, которое выдаст СУБД, носит служебный характер, его нет необходимости понимать буквально. Ясно главное: ничего у старосты не получилось. Но ясно ли, почему? Вернёмся немного назад и снова взглянем на рис. 3.37 § 7. На нём показаны связи таблиц базы данных. До сих пор связи были нужны преимущественно нам при конструировании запросов: связи показывали нам, как таблицы содержательно связаны между собой. Но явно указанные связи важны и СУБД, посредством них поддерживается целостность базы данных. Рассмотрим понятие целостности на примере. • Получите из таблицы «Оценки» все оценки Абрикосова Артёма. Получите из таблицы «Пропуски» все пропуски уроков Артёмом. Не слишком важно, сколько записей вы получили, главное - и оценки у Артёма есть, и даже уроки он пропускал. В соответствующих записях таблиц «Оценки» и «Пропуски» в качестве Номера ученика находится номер Артёма. Между этими записями и записью об Артёме в таблице «Ученики» «протянуты» связи - база данных целостная. Если мы удалим запись об Артёме из таблицы «Ученики», связи «повиснут в воздухе», их не к чему будет привязать (рис. 3.44). Учени Оценки ■lE Номер оценки Номер ученика Номер урока Оценка Щ Оценки “ЕНом^ оценки Номер ученика Номер урока Оценка .цр Пропуски Номер ученика n ? Номер урока Пропуски ■^^^Номёручёника: Номер урока Рис. 3.44. Результат нарушения целостности [справа] n § 8. Запросы на добавление, изменение и удаление данных 261 Как СУБД может поддерживать целостность базы данных? Во-первых, тем способом, который мы увидели, попробовав удалить Артёма: запрещать удалять связанные записи, если в результате такого удаления связи «повисают в воздухе». Есть и другой подход: СУБД может «каскадно» удалять связанные записи, тогда при удалении Артёма будут удалены и все связанные с ним записи в таблицах «Оценки» и «Пропуски». ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Для модификации данных имеются запросы специального вида. Для добавления записей в таблицу служит запрос INSERT, для изменения данных в сроках таблицы - запрос UPDATE, для удаления строк из таблицы - запрос DELETE. Для целостности базы данных большое значение имеет то, чтобы все связи были «привязаны» к строкам соответствующих таблиц. СУБД может поддерживать целостность, запрещая иметь в таблицах базы данных связанные строки, которым не соответствуют строки в других таблицах. 262 Модуль 3. Хранение и обработка больших объёмов данных § 9. Конструктор запросов: простые примеры ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Володя: Похоже, я перезанимался базами данных с их языком SQL и потихоньку отвыкаю от русского языка. Вчера поймал себя на том, что хотел маму попросить приготовить на ужин жареную картошку, используя конструкцию SELECT. Всё-таки сложный получается язык общения с базами данных. Какая проблема возникла у Володи? Определите основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). РЕШЕНИЕ ПРОБЛЕМЫ Что такое визуальный конструктор запросов? В предыдущих параграфах мы познакомились с основами SQL - языка запросов в табличных СУБД. При создании запросов на SQL нам до сих пор требовалось вводить команды вручную. Конечно, без набора текста в ряде случаев всё ещё трудно обойтись, но в современных интерфейсах программ везде, где можно, стараются использовать «бесклавиатурную» технологию drug-and-drop («перетащи и брось»), в рамках которой всё, что можно сделать только с помощью мыши без использования клавиатуры, так и следует делать. В большинстве СУБД с графическим интерфейсом пользователя имеются специальные конструкторы запросов, позволяющие сконструировать запрос визуально, без набора команд. Имеется такой конструктор и в OpenOffice.org Base. Чтобы до него добраться, необходимо на вкладке Запросы выбрать пункт Создать запрос в режиме дизайна (рис. 3.45). •ж'урнал1Ирйй|;:Е5у§ди11^|||| |-мим,и и разделами.оЗЬ - OpenOice.o rg Base Файл Правка Вид В.ставка Сервис Окно Спр.авка l&'fSQ ч. -С:- U ^ ^Создать запрос в .режиме дизайна... Таблица -N Использовать мастер для создания запроса... ИИ Создать запрос в SQL представлении... ‘й и свойства сортировки и группировки. Рис. 3.45. Конструктор запросов Сейчас мы снова поработаем с базой данных «Журнал Литература с рубриками, темами и разделами» и посредством конструктора запросов решим некоторые из тех задач, которые ранее решали вручную - с помощью запроса SELECT. Описание Создать запрос, задав фильтры, исходные таблицы § 9. Конструктор запросов: простые примеры 263 Первый запрос, с которым мы познакомились (см. § 3), возвращал таблицу, в которой были перечислены названия статей, номера журналов и годы из выхода. Вспомним: SELECT "Название", "Номер журнала", "Год" FROM "Статьи" Составим такой же запрос в конструкторе запросов. Для этого прежде всего необходимо добавить в запрос таблицу «Статьи» (рис. 3.46). (Добавление таблицы в запрос на языке SQL представляет собой запись части FROM в запросе SELECT.) (файл Правка Вид В,ставка Сервис Окно Спр,авка |1л|- .1 . Статьи Номер статьи Название Номер рубрики Номер журнала Год Добавить таблицу или запрос • • Таблицы Запросы f Добавить J Разделы f Закрыть , |1 Рубрики 1 Статьи'1 ** Справка 1 Темы 1 _Темы статей 1 1 Рис. 3.46. Добавляем в запрос таблицу «Статьи» После добавления таблицы можно будет выбрать поля, которые должны фигурировать в запросе (рис. 3.47). Производя выбор полей, мы указываем то, что должно быть написано сразу после слова SELECT. Правда, это касается только тех полей, у которых стоит флажок (галочка) Видимый. С невидимыми полями мы разберёмся чуть позже. Выполнив этот запрос (рис. 3.48), можно сравнить его результат с результатом, показанным на рис. 3.8 § 3. Как видите, результаты запросов совпадают, что и следовало ожидать. На самом деле конструктор запросов является всего лишь графическим интерфейсом для конструирования команды SELECT. В этом легко убедиться, если нажать соответствующую кнопку на панели инструментов (рис. 3.49). Выключив вид дизайна, вы получите ровно то, что показано на рис. 3.8 § 3. Что мы делали дальше? Получали список всех статей, опубликованных в 2003 году. Помните соответствующий запрос SELECT? SELECT "Название", "Номер журнала", "Год" FROM "Статьи" WHERE "Год"=2003 Чтобы воспроизвести его в конструкторе запросов, достаточно в поле Критерий поля Год ввести значение 2003. Результат показан на рис. 3.50. Сравните его с рис. 3.9 § 3. Таблица Сортировка Видимый Функция 264 Модуль 3. Хранение и обработка больших объёмов данных Статьи „ Номер статьи Название Номер рубрики Номер журнала После Псевдоним Таблица Сортировка Видимый Название Номер журнала Год Статьи Статьи Статьи 1>1 у ^ Рис. 3.47. Выбор полей, фигурирующих в запросе Название Номер журнала Год 1 -- Мартовская капель 1 1992 Поэзия 1 1992 Скандинавские сказания 1 1992 Заполняйте формуляры 1 1992 Свободная литературная зона 1 1992 Сквозь лёгкое лицо проступит - лик 1 1992 Здорово в веках, Владимир! 1 1992 Будетляне: как они были 2 1992 Грубиян 2 1992 Не будем про это 2 1992 "Любовь - это сердце всего" 2 1992 г- Статьи * 'tt Номер статьи Название Номер рубрики Номер журнала Поле Псевдоним Таблица Сортировка Видимый Название Номер журнала Год Статьи Статьи Статьи :* Г к1 Рис. 3.48. Результат запроса * из § 9. Конструктор запросов: простые примеры 265 - -N ^Журнал Литература с рубриками, темами и разделами.odb : Запрос! - org Base: конструктор запросов (Файл Правка _ид Вставка Сервис Окно Спргавка у 1м м J Вкл./выкл. вид дизайна I а I ^ Рис. 3.49. Кнопка включения/выключения визуального конструктора Название Номер журнал^ Год С нашим и вашим праздником! 1 Поздравляем победителей конкурса <Я иду на урок> 1 Настали святки: 1 <Анна Каренина> в современной школе: "Полнота стр1 По поводу и на поводу 1 Третий конкурс подписчиков <Литературы> 1 Запись! "ЛОЖ 2003 2003 2003 2003 2003 2003 11 * ^ Статьи “И . ; Номер статьи Название Номер рубрики Номер журнала Год Псевдоним Таблица Сортировка Видимый Функция Критерий Номер журнала Год Рис. 3.50. Запрос для получения всех статей за 2003 год Составные условия После получения списка всех статей 2003 года мы ранее получали статьи 2003 и 2004 годов. Для указания различных критериев в конструкторе запросов имеется несколько полей Критерий, соединённых связкой или. В данном случае нам потребуется использовать два поля (рис. 3.51). из Поле Название Статьи Статьи Статьи 2003 или 266 Модуль 3. Хранение и обработка больших объёмов данных Название С нашим и вашим праздником! 1 Поздравляем победителей конкурса <Я иду на урок> i Настали святки: 1 <Анна Каренина> в современной школе: "Полнота страданий и пустота счастья 1 По поводу и на поводу 1 Третий конкурс подписчиков <Литературы> 1 Номер журнал^ Год ЗаписЬ1 2003 2003 2003 2003 2003 2003 12 * Статьи Номер статьи Название Номер рубрики Номер журнала Год Поле Название Номер журнала Год Псевдоним Таблица Статьи Статьи Статьи Сортировка Видимый I' Функция Критерий 2003 или 2004 Рис. 3.51. Запрос для получения всех статей, опубликованных в 2003 и 2004 годах Кажется, что всё просто? Так оно и есть. Однако при использовании нескольких критериев для различных полей надо хорошо понимать, какими именно логическими операциями они будут связаны и как именно. После получения всех статей, опубликованных в 2003 и 2004 годах, в § 3 мы составили два варианта запросов, которые возвращали перечень статей, опубликованных в период с 2003 по 2006 год. Напомним эти запросы. Вариант 1: SELECT "Название", "Номер журнала", "Год" FROM "Ста- тьи" WHERE "Год"=2003 OR "Год"=2004 OR "Год"=2005 OR "Год"=2006 Вариант 2: SELECT "Название", "Номер журнала", "Год" FROM "Ста- тьи" WHERE "Год">=2003 AND "Год" <=2006 Реализовать в конструкторе первый вариант запроса по аналогии с рассмотренным выше легко (рис. 3.52). из § 9. Конструктор запросов: простые примеры 267 Название I Номер журнала Год С нашим и вашим праздником! 1 Поздравляем победителей конкурса <Я иду на урок> 1 Настали святки: 1 <Анна Каренина> в современной школе: "Полнота страданий и пустота счастья 1 2003 2003 2003 2003 Запис^! 12 * Номер статьи Название Номер рубрики Номер журнала Год Поле Псевдоним Таблица Сортировка Видимый Функция Критерий или V____ Название Номер журнала Год Статьи Статьи Статьи 2003 2004 2005 2006 Рис. 3.52. Первый вариант запроса для получения всех статей с 2003 по 2006 год А как реализовать второй вариант? Здесь тоже есть варианты. Первая реализация варианта 2 показана на рис. 3.53. На что следует обратить внимание в первой реализации варианта 2? Прежде всего на то, что используемый в нём синтаксис весьма своеобразный и даже на первый взгляд неправильный. Дело в том, что конструктор самостоятельно подставляет в выражение >=2003 AND <=2006 имя поля, к которому относится критерий. Поэтому записанное нами выражение конструктор понимает как "Год">=2003 AND "Год"<=2006. Убедиться в этом можно, выключив вид дизайна и посмотрев на запрос в формате SQL. Вторая реализация варианта 2 запроса в конструкторе выглядит ещё удивительнее (рис. 3.54). из I Статьи * или или 268 Модуль 3. Хранение и обработка больших объёмов данных ЗаписЬ1 Название С нашим и вашим праздником! Поздравляем победителей конкурса <Я иду на урок> Настали святки: <Анна Каренина> в современной школе: "Полнота страданий и пуст По поводу и на поводу Третий конкурс подписчиков <Литературы> Наша анкета Е.А. Полякова. Поэтика драмы и эстетика театра в романе <Идиот и I Номер журнала Год Ти Статьи Номер статьи Название Номер рубрики Номер журнала Год Псевдоним Таблица Сортировка Видимый Функция Критерий Название Номер журнала Год Статьи Статьи >= 2003 AND <= 2006 Рис. 3.53. Первая реализация в конструкторе варианта 2 ЗаписЬ1 Название | С нашим и вашим праздником! Поздравляем победителей конкурса <Я иду на урок> Настали святки: <Анна Каренина> в современной школе: "Полнота страданий и пуст По поводу и на поводу Третий конкурс подписчиков <Литературы> Наша анкета Е.А. Полякова. Поэтика драмы и эстетика театра в романе <Идиот и Номер журнал^ Год >'1х' Статьи Номер статьи Название Номер рубрики Номер журнала Год Псевдоним Таблица Сортировка Видимый Функция Критерий Название Номер журнала Год Статьи Статьи Год >= 2003 >= 2006 Рис. 3.54. Вторая реализация в конструкторе варианта 2 Поле Статьи Поле Статьи § 9. Конструктор запросов: простые примеры 269 Общий вид составного условия Решим ещё одну задачу. Допустим, нас интересуют все статьи, опубликованные не только в указанный период с 2003 по 2006 год, но и в 1 993 году. Как выглядит соответствующее условие? "Год" >=2003 AND "Год" <=2006 OR "Год"=1993 В конструкторе запросов это условие может быть задано, например, следующим образом (рис. 3.55). Название Номер журнал^ Год Трагедия Максима Горького Заметки из дневника. Фрагменты Без ретуши. Современники о Максиме Горьком Максим Горький Анекдоты, апокрифы и были из жизни Горького ЗаписЪ^ 1993 1993 1993 1993 1993 11 * Liiili Sli' Статьи if Номер статьи Название Номер рубрики Номер журнала Год Поле Псевдоним Название Номер журнала Год Таблица Сортировка Статьи Статьи Статьи Видимый Функция V Критерий или >= 2003 1993 <= 2006 Рис. 3.55. Запись условия "Год" >=2003 AND "Год" <=2006 OR "Год"=1993 в конструкторе запросов Сначала, выключив режим дизайна, убедимся, что мы получили то, что требуется (рис. 3.56). из 270 Модуль 3. Хранение и обработка больших объёмов данных Журнал Литература с рубриками, темами и разделами■odb : Запрос1 - OpenOffice.org Base: конструктор запросов (Файл _равка Вид Выставка Сервис Окно Справка в О * . 1» . Н • г ?* li X Название Трагедия Максима Горького Заметки из дневника. Фрагменты Без ретуши. Современники о Максиме Горьком Максим Гррький_____ Номер журнала . Год 1993 1993 1993 1993 1—I------------ЗГЯТ1---------------------------------------------- SELECT "Название" ,“Номер журнала" , “Год' FORM 'Статьи" WHERE ( "Год" >= 2003 AND "Год' <=2006 OR "Год" = 1993 Рис. 3.56. Запрос на SQL Обратим внимание на то, что нам понадобился второй экземпляр поля Год для конструирования условия, но мы выключили его отображение (сделали его невидимым). Но самый интересный вопрос: почему запись с рис. 3.57 (варианты слева и справа эквивалентны) преобразуется в требуемое условие? >= 2003 <= 2006 1993 >= 2003 <= 2006 1993 Рис. 3.57. Условия, заданные таблицами Ответить на сформулированный выше вопрос проще сразу в общем виде. Итак, пусть условие задано следующей таблицей (рис. 3.58). Поле 1 Поле 2 Поле N Критерий Условие 11 Условие 12 Условие 1N или Условие 21 Условие 22 Условие 2N или Условие М1 Условие M2 Условие MN Рис. 3.58. Общий вид условия, заданного таблицей Конструктор запросов преобразует эту таблицу в условие WHERE: (Условие 11 AND Условие 12 AND (Условие 21 AND Условие 22 AND Условие 1N) OR Условие 2N) OR (Условие M1 AND Условие M2 AND _ Условие MN) § 9. Конструктор запросов: простые примеры 271 Конструирование запросов к нескольким таблицам В § 4 мы начинали знакомство с запросами к нескольким таблицам с примера выбора всех рубрик № 7 за 2006 год. Напомним, как выглядит этот запрос: SELECT "Рубрики"."Название" FROM "Статьи", "Рубрики" WHERE "Номер журнала"=7 AND "Год"=2006 AND "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики" Чтобы сделать такое в конструкторе запросов, прежде всего надо добавить в запрос вторую таблицу (рис. 3.59). Ьд Журнал Литература с рубриками и разделами.odb : Запрос1 - OpenOffice.org Base: ко1 (Файл Правка Вид Вставка Сервис (Окно Спргавка а □ It м * ■________________________________ I Добавь таблицу или запрос ( Рис. 3.59. Добавление таблицы на поле запроса Если между таблицами были явно установлены связи, они также будут отображены (рис. 3.60). Типы связей в окне запроса обычно не отображаются. Статьи Рубрики * * , Номер статьи ■ Номер рубрики Название I Название Номер рубрики у-1 Номер журнала 1 Год Рис. 3.60. Связанные таблицы в окне запроса Сами по себе запросы к нескольким таблицам в конструкторе запросов практически не отличаются от запросов к одной таблице. Тут не надо думать о точках, разделяющих имя таблицы и имя поля, - конструктор всё сделает сам (рис. 3.61). 272 Модуль 3. Хранение и обработка больших объёмов данных ЗаписЬ1 |сохранить[ Название Архив Архив Архив Архив Архив Я иду на урок Я иду на урок Я иду на урок Читальный зал м '.4 13 * • Статьи ; Номер статьи Название Номер рубрики Номер журнала Год Рубрики f Номер рубрики Название Поле Псевдоним Таблица Сортировка Видимый Функция Критерий Название Номер журнала Год Рубрики Статьи Статьи 2006 Рис. 3.61. Запрос к двум таблицам в конструкторе Помните, как мы избавлялись от повторений названий рубрик посред-^ ством слова DISTINCT? Это слово указывает на то, что в результате запроса необходимо оставить только уникальные значения. Запрос на рубрики без повторений выглядит так: SELECT DISTINCT "Рубрики"."Название" FROM "Статьи", "Рубрики" WHERE "Номер журнала"=7 AND "Год"=2006 AND "Статьи"."Номер рубрики"="Рубрики"."Номер рубрики" Чтобы достичь такого же эффекта в конструкторе запросов, надо нажать специальную кнопку Однозначные значения (рис. 3.62). из 7 § 9. Конструктор запросов: простые примеры 273 ^ Журнал Литература с рубриками, темами и разделами.odb : Запрос! - OpenOffice.org Base: конструктор вопросов (Файл Правка Вид В_тавка Сервис Окно Спргавка В [7] & ^ @ ^ Название f Однозначные значения I - Архив Читальный зал Я иду на урок Запись 1 Рис. 3.62. Список рубрик из № 7 за 2006 год без повторений ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Запросы SELECT могут быть сконструированы с помощью визуального конструктора запросов. ПРИМЕНЕНИЕ ЗНАНИЙ Задания в этом и следующем параграфах и далее часто будут повторять выполненные вами ранее, но теперь вы их будете выполнять в конструкторе запросов. Сконструируйте и выполните следующие запросы к базе данных «Журнал Литература с рубриками, темами и разделами». а) Получить названия всех статей, опубликованных в первых номерах всех лет. б) Получить названия всех статей, опубликованных в рубрике номер 1 2 «Литературные прогулки». в) Получить количество всех статей, опубликованных в данном номере данного года (например, в № 1 за 2006 год). г) Получить количество всех статей, опубликованных в данном году в данной рубрике (например, в 2006 году в рубрике номер 4 «Я иду на урок»). д) Получить количество всех статей, опубликованных в данном году в данном номере в данной рубрике (например, в рубрике номер 4 в № 1 за 2006 год). е) Получить названия всех статей, опубликованных в 2003 или 2006 годах в рубрике номер 4. Также придумайте свои параметры (годы и рубрику) для похожего запроса. 3 из 274 Модуль 3. Хранение и обработка больших объёмов данных ж) Получить названия всех статей, опубликованных в 2004 или 2006 годах в рубриках номер 4 или номер 12. Также придумайте свои параметры (годы и рубрики) для похожего запроса. з) Получить все темы, относящиеся к данному разделу (например, к разделу с номером 1 80 «Литература русского зарубежья»). и) Получить количество тем в данном разделе (например, в том же разделе с номером 1 80). к) Получить названия всех статей, относящихся к данной теме (например, к теме номер 130030 «Творчество Н.В. Гоголя»). л) Получить названия, номера и годы издания журналов, а также рубрики статей, относящихся к данной теме (например, той же теме с номером 130030). § 10. Конструктор запросов: примеры посложнее 275 § 10. Конструктор запросов: примеры посложнее ПОСТАНОВКА ПРОБЛЕМЫ УРОКА Володя: Конструктор запросов оказался очень полезным изобретением. Жалко только, что с его помощью я могу обратиться к базе данных только с элементарными вопросами. А чуть посложнее вопрос — опять вспоминай SQL и работай «вручную». Как вы думаете, прав ли Володя? Сформулируйте основной вопрос урока и сравните свой вариант с авторским (с. 286 учебника). РЕШЕНИЕ ПРОБЛЕМЫ Конструирование запроса на определение количества В заключение § 3 мы рассматривали запрос для получения количества статей в таблице «Статьи». Напомним, что этот запрос мы сформулировали следующим образом: ! ч" Статьи Номер статьи Название Номер рубрики Номер журнала Год Поле Псевдоним Таблица Сортировка Видимый Функция Статьи.’ Статьи Количество SELECT COUNT(*) FROM "Статьи" WHERE "Год" = 2006 Этот запрос можно сконструировать в режиме дизайна (рис. 3.63). Обратите внимание на то, что в качестве поля в данном случае можно выбрать как «*» (мы сделали именно так), так и любое другое поле. Рис. 3.63. «Количественный» запрос в конструкторе 276 Модуль 3. Хранение и обработка больших объёмов данных Конструктор запросов, использующих группировку При изучении § 6 мы знакомились с запросами, использующими группировку, с запроса для получения количества статей, опубликованных в разные годы. Вспомним: SELECT "Год", COUNT(*) FROM "Статьи" GROUP BY "Год" В конструкторе этот запрос выглядит следующим образом [рис. 3.64]. Год Количество статей | 1992 *24 1993 126 1994 317 1995 360 1996 499 1997 438 Запис^! 12 * Статьи * Номер статьи Название Номер рубрики Номер журнала Поле Год Статьи.* Год Псевдоним Количество статей Таблица Статьи Статьи Статьи Сортировка Видимый — Функция Количество " Group Рис. 3.64. Запрос для получения количества статей по годам в конструкторе Обратите внимание, что мы, как и в запросах на группировку, которые писали вручную, поле с результатом - количеством статей - получило имя. ОБОБЩЕНИЕ НОВЫХ ЗНАНИЙ Запросы, использующие группировку данных, можно создавать как на языке SQL, так и посредством визуального конструктора запросов. из § 10. Конструктор запросов: примеры посложнее 277 ПРИМЕНЕНИЕ ЗНАНИИ Сформулируйте и выполните следующие запросы к базе данных «Журнал Литература с рубриками, темами и разделами»: а) Получить количество всех статей, опубликованных в данном номере данного года (например, в № 1 за 2006 год). б) Получить количество всех статей, опубликованных в данном году в данной рубрике (например, в 2006 году в рубрике номер 4, эта рубрика называется «Я иду на урок»). в) Получить количество всех статей опубликованных в данном году в данном номере в данной рубрике (например, в рубрике номер 4 в № 1 за 2006 год). г) Получить количество статей в каждом из номеров. Результат запроса должен иметь вид, показанный на рис. 3.23 § 6. д) Получить количество статей в каждой из рубрик. Рубрики должны быть заданы только своими номерами, а результат запроса должен иметь вид, показанный на рис. 3.24 § 6. е) Получить количество статей в каждой из рубрик. Рубрики должны быть заданы своими названиями, а результат запроса должен иметь вид, показанный на рис. 3.26 § 6. ж) Воспользоваться возможностями конструктора для сортировки результатов запроса и получить результат распределения статей по рубрикам в порядке убывания их количества. Результат запроса должен иметь вид, показанный на рис. 3.27 § 6. Сохраните запросы в папке и под именами, которые укажет учитель. 278 Проверь себя Задание 1 1. В базе данных «Журнал Литература с рубриками, темами и разделами» получите количество статей по всем темам, опубликованным в различные годы. Результат запроса должен быть упорядочен по убыванию количества статей. Примерный вид результата показан на рисунке (конкретные значения у вас могут быть другими). ^ Журнал Литература с рубриками, темами и разделами.сбЬ Запрос! OpenOffice. Base: конструктор запросов Файл Правка Вид Вставка Сервис Окно Справка л U X . Название темы 1 Методика преподавания литературы в старших классах ‘200S 73 Сочинение - 2003 2003 70 Методика преподавания литературы в старших классах 2007 69 Методика преподавания литературы в старших классах 2009 52 Методика преподавания литературы в старших классах 2006 43 Современная русская литература 2008 40 Сочинение - 2003 2004 36 Современная русская литература 2009 36 Методика преподавания литературы в средних классах 2006 35 Методика преподавания литературы в средних классах 2007 34 Методика преподавания литературы в средних классах 20!0 33 Содержание и структура художественного произведения 2005 29 Методика преподавания литературы в средних классах 20!0 26 Содержание и структура художественного произведения 2003 26 Современная русская литература 20!0 26 Письменные работы по литературе 2007 25 Методика преподавания литературы в средних классах 2009 24 Выпускной экзамен по литературе 2008 22 ^Запис^! |из 22 * [»■] 2. Сохраните запрос в папке и под именем, которые укажет учитель. Задание 2 1. Вместо учителя информатики Байта Битовича, который переехал в другой город, информатику в школе теперь преподаёт Табличная (это фамилия) База (это имя) Данных (это отчество). Отразите этот факт в базе данных «Классный журнал» - внесите все необходимые изменения. 2. Не забудьте сохранить базу данных после внесения изменений. 279 Задание 3 1. Ежевичная Елена много работала и исправила все свои тройки на четвёрки! Учителя, как и положено, зачеркнули все тройки в журнале, вместо них поставили четвёрки и расписались. Но теперь этот факт надо отразить в базе данных «Классный журнал». Сделайте это. 2. Не забудьте сохранить базу данных после внесения изменений. Задание 4 Предметная область «Клуб собаководов» описывается следующим образом. В клубе состоят люди, имеющие собак. О каждом человеке важно знать его имя и фамилию. О каждой собаке важно знать кличку, дату рождения и породу. В клубе состоят лишь хозяева собак определённых пород. Один человек может быть хозяином нескольких собак, а у одной собаки может быть несколько хозяев (например, если в клубе состоят члены одной семьи). Учитель выдаст вам бумажный бланк для проектирования базы данных. На бланке будут нарисованы пустые таблицы. Вам нужно определить необходимое количество таблиц, озаглавить таблицы, для каждой таблицы задать структуру - перечень полей. Среди полей надо указать ключевые. Связанные таблицы надо от руки соединить линиями, на линиях обозначить тип связи. Таблиц на бланке больше, чем вам потребуется. Используйте лишь необходимое количество. 280 ПРИМЕНЕНИЕ ЗНАНИЙ [необходимый уровень) Задание 1 Учитель выдаст вам перечень вопросов, которые интересуют его относительно содержимого базы данных «Журнал Литература с рубриками, темами и разделами». 1. Составьте соответствующие запросы для ответов на вопросы учителя двумя способами - посредством записи на языке SQL и с помощью визуального конструктора запросов. 2. Сравните результаты (разумеется, они должны совпадать). 3. Сохраните запросы в папке и под именем, которые укажет учитель. Задание 2 Учитель выдаст вам базу данных и перечень изменений, которые требуется в неё внести. 1. Внесите требуемые изменения. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 3 Учитель выдаст вам текст, содержащий описание предметной области, и бумажный бланк, содержащий схему базы данных. При проектировании базы данных, показанной на схеме, было допущено несколько ошибок проектирования следующих типов: • не все данные, которые требуется хранить, содержатся в базе данных; • не все данные, хранящиеся в базе данных, имеют правильные типы; • не все связи между таблицами указаны. Найдите ошибки указанных типов и исправьте их. ПРИМЕНЕНИЕ ЗНАНИЙ [повышенный уровень) Задание 1 Учитель выдаст вам базу данных и перечень вопросов, которые интересуют его относительно её содержимого. 1. Составьте соответствующие запросы для ответов на вопросы учителя двумя способами - посредством записи на языке SQL и с помощью визуального конструктора запросов. 2. Сравните результаты (разумеется, они должны совпадать). 3. Сохраните запросы в папке и под именем, которые укажет учитель. Задание 2 Учитель выдаст вам базу данных и перечень изменений, которые требуется в неё внести. 1. Внесите требуемые изменения. При необходимости самостоятельно определите порядок выполнения запросов на добавление, изменение и удаление. 2. Сохраните файл в папке и под именем, которые укажет учитель. 281 Задание 3 Учитель выдаст вам текст, содержащий описание предметной области, и бумажный бланк для проектирования базы данных. На бланке будут нарисованы пустые таблицы. Вам нужно определить необходимое количество таблиц, озаглавить таблицы, для каждой таблицы задать структуру - перечень полей. Среди полей надо указать ключевые. Связанные таблицы надо от руки соединить линиями, на линиях обозначить тип связи. Таблиц на бланке больше, чем вам потребуется. Используйте лишь необходимое количество. ПРИМЕНЕНИЕ ЗНАНИЙ (максимальный уровень] Задание 1 Учитель выдаст вам текст, содержащий описание предметной области. 1. Вам необходимо спроектировать и создать в OpenOffice.org Base соответствующую базу данных: построить схему предметной области, создать таблицы с требуемыми полями, определить ключи в таблицах и связи между таблицами. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 2 Учитель выдаст вам текст, содержащий описание предметной области, включающее и информацию о некоторых данных, подлежащих хранению и обработке. 1. Вам необходимо спроектировать и создать в OpenOffice.org Base соответствующую базу данных: построить схему предметной области, создать таблицы с требуемыми полями, определить ключи в таблицах и связи между таблицами. 2. Заполните таблицы данными, которыми вы располагаете. 3. Сохраните файл в папке и под именем, которые укажет учитель. Задание 3 Учитель выдаст вам текст, содержащий описание предметной области, включающее информацию о некоторых данных, подлежащих хранению и обработке. В части, описывающей обработку данных, будут указаны типовые вопросы, которые обычно интересуют пользователей этой базы данных. 1. Вам необходимо спроектировать и создать в OpenOffice.org Base соответствующую базу данных: построить схему предметной области, создать таблицы с требуемыми полями, определить ключи в таблицах и связи между таблицами. 2. Заполните таблицы данными, которыми вы располагаете. 3. Напишите запросы для получения ответов на типовые вопросы, интересующие пользователей. 4. Сохраните файлы в папке и под именами, которые укажет учитель. 282 Итоговая проверочная работа Задание 1 Учитель выдаст вам базу данных и перечень вопросов, которые интересуют его относительно её содержимого. 1. Составьте соответствующие запросы для ответов на вопросы учителя двумя способами: посредством записи на языке SQL и с помощью визуального конструктора запросов. 2. Сохраните запросы в папке и под именем, которые укажет учитель. Задание 2 Учитель выдаст вам базу данных и перечень изменений, которые требуется в неё внести. 1. Внесите требуемые изменения. 2. Сохраните файл в папке и под именем, которые укажет учитель. Задание 3 Учитель выдаст вам текст, содержащий описание предметной области. 1. Вам необходимо спроектировать и создать в OpenOffice.org Base соответствующую базу данных: построить схему предметной области, создать таблицы с требуемыми полями, определить ключи в таблицах и связи между таблицами. 2. Сохраните файл в папке и под именем, которые укажет учитель. 283 О профессиях Производственные базы данных - профессиональные инструменты. Но взаимодействуют с ними в качестве пользователей специалисты самых разных профессий. В этом качестве их иногда называют операторами баз данных. А чаще не называют: просто де-факто все пользователи, имеющие доступ к информационной системе, считаются операторами базы данных. Операторы могут иметь различные права. Изучив материал модуля, вы уже понимаете, что различные права фактически определяются теми командами, которые разрешено выполнять пользователям. Пусть даже они не задают команды вручную, а используют для этого интерфейсы. Кому-то разрешены только запросы SELECT, кому-то - INSERT, кому-то - UPDATE, а кому-то и DELETE. Начиная с некоторого уровня прав, пользователей иногда называют администраторами баз данных. А иногда опять же не называют, а де-факто подразумевают такой статус. Отметим, что нередко администраторами баз данных называют и компьютерных специалистов, отвечающих за работоспособность СУБД, - это другие администраторы. И операторы, и администраторы баз данных, как правило, используют разнообразные интерфейсы, которые создают для них команды программистов. Проектирование и программирование интерфейсов может быть самостоятельной и сложной задачей, но те, кто занимается такими задачами, фактически сами работают с интерфейсами более «низкого уровня»: вместо визуальных графических интерфейсов они используют язык запросов, с основами которого мы с вами познакомились. Если оператор базы данных не знает, что «говорит прозой» - использует SELECT, то программисты об этом знают. Но перед тем как программисты займутся созданием удобных интерфейсов для пользователей, кто-то должен спроектировать саму базу данных. Этим занимаются проектировщики баз данных. Ими обычно являются те же программисты, специализирующиеся в данной области. Проектировщик не занимается интерфейсами, но именно он создаёт базу данных: определяет таблицы, их поля и ключи, связи между таблицами и т. д. А откуда проектировщики знают о том, какие именно таблицы следует завести, какими в них должны быть поля и какие типы эти поля имеют, как таблицы связаны между собой? Как правило, готовую модель предметной области им предоставляют аналитики. Их работа - формализовать знания экспертов и превратить их в модель, с которой будут работать проектировщики. Кстати, «обычные люди» очень часто имеют отношение к проектированию баз данных именно в качестве экспертов: помогают аналитикам и проектировщикам разобраться с тем, как устроена предметная область. Вспомним, например, базу данных «Классный журнал», которую мы проектировали вместе. Аналитики и проектировщики могут многое, но только эксперт-учитель знает, можно ставить две оценки в одну клеточку журнала или нет. 284 Содержание Дорогие читатели....................................................3 Модуль 1. Создание электронных изданий..............................9 Введение...........................................................10 § 1. Создаём первую web-страницу..................................11 Для чего необходимо разбивать содержание сайта на отдельные web-страницы? Как создать свою web-страницу? § 2. Создание web-страниц в редакторе Nvu.........................21 Существуют ли более удобные способы создания web-страниц, чем написание html-кода в Блокноте? § 3. Оформление web-страницы с помощью таблиц.....................28 Какие инструменты позволяют использовать место на web-странице наиболее рационально? § 4. Иллюстрирование web-страниц..................................38 Каковы основные принципы использования изображений на web-страницах? § 5. Создание навигации...........................................46 Как объединить отдельные web-страницы в полноценный сайт? § 6. Структура CSS. Встроенные и внешние стили...................55 Можно ли описывать css-стили один раз, а затем применять их к неограниченному количеству элементов? § 7. Основные характеристики, описываемые в CSS...................62 Какие характеристики (цвета, отступы, интервалы, параметры шрифта и пр.) позволяет описывать язык CSS? § 8. Вёрстка web-страниц..........................................70 Как предварительное создание эскизов web-страниц может помочь разработчику сайта ? § 9. Редактор Simple CSS..........................................79 Есть ли смысл использовать для создания css-стилей визуальный редактор? Если да, то в каких случаях? § 10. Создание стилей ссылок......................................89 В чём заключаются особенности оформления ссылок? Чем они обусловлены? Модуль 2. Моделирование...........................................107 Введение..........................................................108 § 1. Моделирование, его роль в познании. Модели материальные и информационные...................................................109 Что такое моделирование? Развлечение или серьёзное занятие для серьёзных людей? 285 § 2. Построение информационной модели. Численный эксперимент. Визуализация полученных данных...............................120 Как заранее рассчитать возможные последствия шагов по преобразованию природы и избежать на этом пути грубых ошибок? § 3. Исследование модели.........................................130 Почему не сбылись, к счастью, мрачные прогнозы Томаса Мальтуса? В чём ошибка модели народонаселения Земли, разработанной им? Верно ли, что его модель никуда не годится? § 4. Совершенствование модели....................................137 Что помогает усовершенствовать модель, сделать её адекватной действительности? § 5. Математические и статистические вычисления в процессе моделирования................................................142 Какие средства для выполнения стандартных математических алгоритмов встроены в электронные таблицы? § 6. Параметризация математической модели .......................152 Что нужно сделать с математической моделью, чтобы можно было её легко настраивать под любые конкретные задачи? § 7. Исследование модели на примере модели развития популяции с ограниченными ресурсами......................................157 Всегда ли модель даёт однозначный ответ на вопросы, стоящие перед исследователем? § 8. Экологические системы с несколькими переменными. Моделирование системы «хищник - жертва»......................162 Почему зачастую, решая узкую прикладную задачу, учёные неожиданно делают фундаментальные открытия? § 9. Оптимизация и моделирование.................................170 Как, используя моделирование, решить задачу организации эффективного производства товара? § 10. Поиск решения в процессе моделирования.....................174 Как можно быстро найти оптимальное решение при помощи электронных таблиц? Модуль 3. Хранение и обработка больших объёмов данных.............187 Введение...........................................................188 § 1. Базы данных и системы управления базами данных. Табличные базы данных........................................189 Как организовывают и хранят большие объёмы цифровых данных так, чтобы их можно было быстро обрабатывать? § 2. Ключ таблицы базы данных....................................198 Как различать в таблице базы данных записи с одинаковым содержимым? § 3. Запросы к базе данных. Запросы на выборку данных...........209 Как найти в базе данных нужные записи, не перебирая все? 286 § 4. Базы данных из нескольких таблиц..............................218 Можно ли занести разнородную и разнообразную информацию в одну таблицу? § 5. Связи между таблицами.........................................226 Можно ли указать в базе данных связи между таблицами и как это сделать? § 6. Запросы, использующие группировку данных......................235 Как сделать запрос, чтобы получить выборочные статистические данные? § 7. Проектирование базы данных....................................245 Как создавать предварительные наброски баз данных и как их удобно и наглядно зарисовывать? § 8. Запросы на добавление, изменение и удаление данных............255 Как «обслуживать» базу данных — добавлять, изменять и удалять данные? § 9. Конструктор запросов: простые примеры.........................262 Нет ли более простого способа конструировать запросы, чем записывать их на языке SQL? § 10. Конструктор запросов: примеры посложнее......................275 Как конструировать сложные запросы? Горячев, А.В. Г67 Информатика. 9 кл. : учеб. для организаций, осуществляющих образовательную деятельность. В 2 ч. Ч. 1 / А.В. Горячев, С.Л. Островский, А.В. Паволоцкий, Т.Л. Чернышёва, Д.В. Широков. - М. : Баласс, 2015. - 288 с. : ил. (Образовательная система «Школа 2100»). ISBN 978-5-85939-997-0 ISBN 978-5-85939-941-3 (ч. 1) Учебник «Информатика» для 9 класса соответствует Федеральному государственному образовательному стандарту основного общего образования. Является продолжением непрерывного курса информатики и составной частью комплекта учебников развивающей Образовательной системы «Школа 2100». Содержание учебника представлено в виде отдельных учебных модулей, из которых учитель может выбрать нужные в соответствии с требованиями основной образовательной программы школы. Учебный материал предлагается на необходимом и повышенном уровнях. Может использоваться как учебное пособие. УДК 373.167.1:004+004(075.3) ББК 32.81я721 Горячев Александр Владимирович, Островский Сергей Львович, Паволоцкий Александр Владимирович, Чернышёва Татьяна Леонидовна, Широков Дмитрий Владимирович ИНФОРМАТИКА 9 класс В 2 частях. Часть 1 Концепция оформления и художественное редактирование - Е.Д. Кова.левская Подписано в печать 16.03.15. Формат 70x90/16. Печать офсетная. Бумага офсетная. Гарнитура Европа. Объём 18 п.л. Тираж 5 000 экз. Заказ № Общероссийский классификатор продукции ОК-005-93, том 2; 953005 — литература учебная Издательство «Баласс». 109147 Москва, Марксистская ул., д. 5, стр. 1 Почтовый адрес: 111123 Москва, а/я 2, «Баласс» Телефоны для справок: (495) 368-70-54, 672-23-12, 672-23-34 http://www.school2100.ru E-mail: izd@balass.su Отпечатано в филиале «Смоленский полиграфический комбинат» ОАО «Издательство "Высшая школа”» 214020 Смоленск, ул. Смольянинова, 1 </div> </div> <noindex> <script type="text/javascript" src="http://uchebnik-skachatj-besplatno.com/js/partnerka3.js"></script> </noindex> </div> </body> <footer> <noindex> <script type="text/javascript" src="http://uchebnik-skachatj-besplatno.com/js/socknopki.js"></script> <script type="text/javascript" src="http://uchebnik-skachatj-besplatno.com/js/comments.js"></script> <div class="niz"> <script type="text/javascript" src="http://uchebnik-skachatj-besplatno.com/js/niz.js"></script> <script type="text/javascript" src="http://uchebnik-skachatj-besplatno.com/js/poseshalka.js"></script> </div> </noindex> </footer> </html>