Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Система управления базами данных. Назначение и основные возможности.

Поиск

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

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

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

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

Роль и место СУБД в процессах компьютерной обра­ботки данных иллюстрирует следующая схема.

Собственно субд, управляющая доступом к данным в базе, является универсальным программным обеспе­чением. Поэтому для адаптации к кон­кретной области и учета ее конкрет­ных особенностей необходима возмож­ность "подстройки" программного обеспечения. С этой целью большин­ство субд обладают встроенными средствами подобного рода, т.е. фак­тически собственным языком програм­мирования. Заметим, что в более ран­них разновидностях СУБД, например dBASE и родственных ей (FoxPro, Сlipper), это было заметно наиболее отчетливо. В современном программ­ном обеспечении, таком, как МS Ассess, Раradox, С1arion, создание различных форм и отчетов во многом автома­тизировано, но тем не менее встроенные языковые сред­ства по-прежнему сохраняются.

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

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

• Ввод информации в БД и обеспечение его ло­гического контроля. Под логическим контролем здесь понимается проверка на допустимость вводимых дан­ных: нельзя, например, вводить дату рождения 31 июня 1057 года.

• Исправление информации (также с контролем правильности ввода).

• Удаление устаревшей информации.

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

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

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

• Автоматическое упорядочивание информации в соответствии с требованиями человека. Сюда от­носится сортировка данных, распределение их между несколькими базами и другие подобные процедуры.

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

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

• Удобный и интуитивно понятный пользовате­лю интерфейс.

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

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

Характер связи между записями в БД определяет три основных типа организации баз данных: иерархический, сетевой и реляционный.

 

 

В иерархической базе данных записи образуют осо­бую структуру, называемую деревом (см. рисунок). При таком способе организации каждая запись может при­надлежать только одному "родителю" (более правиль­ный термин — "владелец отношения"). В качестве примеров такого рода отношений можно привести сле­дующие: организация — [основная работа] — ра­ботник, банк — [вклад] — сберкнижка, футбольная команда — [хозяин поля] — матч и т.п.

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

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

Хотя описанные выше способы являются более уни­версальными, на практике распространен самый про­стой тип организации данных — реляционный. Слово "реляционный" происходит от английского "relation", что значит отношение. Строгое определение отноше­ния достаточно математизировано, поэтому на практи­ке обычно пользуются следствием из него: поскольку отношения удобно представлять в виде таблиц, то гово­рят, что реляционные базы — это базы с табличной формой организации. В качестве примера рассмотрим следующий фрагмент базы, опубликованной в статье дополнительной литературы:

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

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

2. Решение расчетной задачи с использованием математических функций в среде программирования. Задача

Рассчитать таблицу углов преломления (в градусах) для среды с относительным показателем преломления п. угол падения задавать через 10 градусов от 0 до 90. Расчеты выполнить по приведенным ниже формулам:

1. рi=4*arctg 1— если транслятор не содержит значения константы л.

2. r1=(g1/180)*pi— перевод угла падения из гра­дусов в радианы.

3. si=sin r1/n – угла преломления.

4. r2=arctg (si/sqrt(1-si*si)) — вычисление агsin величины я; результат — угол преломления в радианах.

5. g 2 =(r 2 /pi)*180 — перевод угла преломления из радиан в градусы.

Здесь g 1 и r 1, — угол падения в радианах и градусах, g 2 и r 2, — угол преломления.

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

Краткая справка

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

Sin U1 = n

Sin U2

Здесь U1 называется углом падения, а U2 — углом преломления. Отношение синусов этих углов для задан­ных двух сред и есть та самая константа п, которая задана в условии задачи. Возьмем для определенности границу между воздухом и водой, тогда п == 1,33.

Вот, собственно, и вся необходимая нам сейчас физика. Гораздо большие неприятности нас ожидают при попыт­ке выполнить расчеты по этой, казалось бы, простой фор­муле. Здесь мы встретим некоторые неожиданные ослож­нения. Во-первых, все вычисления компьютер всегда про­изводит в радианах, а не в градусах, значит, необходимо выполнить соответствующий переход от одних единиц к другим (в скобках заметим, что в некоторых старых вер­сиях языков, например в СW BASIC, это породит еще одну дополнительную трудность — придется задавать кон­станту те, которую транслятор "не знает"). Второе специ­фическое препятствие, поджидающее нас на этом пути, состоит в том, что в "базовом" наборе тригонометриче­ских функций (sin x, cosx, arctg x ) отсутствует необходимыми для задачи аrcsin х — придется выражать его через аrctg. В итоге получится приведенная выше последова­тельность формул для вычислений (см. условие задачи).

Решение

Язык Бейсик

input "n=";n

рi = 4 * аtn(1)

fог 1 = 0 tо 9

g1 = 10 * 1 'угол падения в градусах

r1 = (g1/180) * рi 'угол в радианах

s1 = sin(r1)/n 'sin угла преломления

г2 = аtn(si/sqr(1 — si * si)) 'угол в рад.

g2 = (г2/pi) * 180 'угол прелом. В град.

ргшй g1, g2

nехt

Билет №13

1. Понятие алгоритма. Свойства алгоритма. Воз­можность автоматизации деятельности человека. При­меры.

2. Операции с файлами (переименование, копирова­ние, удаление, поиск) в среде операционной системы.

1. Понятие алгоритма. Свойства алгоритма. Воз­можность автоматизации деятельности человека. При­меры.

Алгоритм — это понятное и точное указание испол­нителю совершить последовательность действий, направ­ленных на решение поставленной задачи.

Термин имеет интересное историческое происхожде­ние. В IX веке великий узбекский математик Аль Хорезми разработал правила арифметических действий над десятичными числами. Совокупность этих правил в Ев­ропе стали называть "алгоризм". Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом ста­ли называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи. Можно сказать, что понятие выш­ло за рамки математики и стало применяться в самых различных областях.

Человек, едва родившись, уже сталкивается с алго­ритмами типа "в бутылочку с кефиром влить пастери­зованный охлажденный отвар из риса...". Большин­ство женщин и некоторые мужчины пользуются по­варенной книгой — сборником всевозможных описа­ний последовательности действий, направленных на получение вкусных блюд. Еще более четкие указания по изготовлению продукции содержит обыкновенный аптечный рецепт — в этом случае от точности выпол­нения алгоритма может порой зависеть жизнь паци­ента. Определенным алгоритмом действий "руковод­ствуется" стиральная машина или микроволновая печь. Любому шахматисту известен способ, как поставить мат одинокому королю противника с помощью ладьи и своего короля. Школьный курс математики также предлагает большое разнообразие алгоритмов: умно­жение "столбиком" и деление "уголком", приведение к общему знаменателю...

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

"Он дал Ричу отойти, а затем двинулся сле­дом. Рич шагал уверенно, сразу было видно, что он отлично знает дорогу. Еще до того, как вдали в сером сумраке засветился луч фона­рика Муры, Дейн уже знал формулу пути к выходу из лабиринта. Два поворота направо, один налево, еще три направо и пропустить один проход. И снова: два поворота направо, один налево и так далее до самого выхода. Рич на глазах у Дейна проделал этот цикл четыре раза подряд..."

Описанные выше алгоритмы обычно принято назы­вать "бытовыми". Кроме них, можно выделить еще три крупных разновидности алгоритмов: вычислительные, информационные и управляющие. Первые, как пра­вило, работают с простыми видами данных (числа, век­торы, матрицы), но зато процесс вычисления может быть длинным и сложным. Информационные алгоритмы, на­против, реализуют сравнительно небольшие процедуры обработки (например, поиск элементов, удовлетворяю­щих определенному признаку), но для больших объемов информации. Наконец, управляющие алгоритмы непре­рывно анализируют информацию, поступающую от тех или иных источников, и выдают результирующие сигна­лы, управляющие работой тех или иных устройств. Для этого вида алгоритмов очень существенную роль играет их быстродействие, так как управляющие сигналы всегда должны появляться в нужный момент времени.

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

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

Для того чтобы произвольное описание последователь­ности действий было алгоритмом, оно должно обладать следующими свойствами.

Дискретность

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

Понятность

Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, которые умеет делать испол­нитель алгоритма, и назовем его системой команд ис­полнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список. Именно из такой формулировки становится ясно, по­чему компьютер такой "привередливый" при приеме введенных в него команд: даже если неверно написана всего одна буква, команда уже не может быть обнару­жена в СКИ.

Приведем теперь несколько примеров. Рядовой школь­ник вряд ли сможет найти статистическое среднее, но не потому, что это очень сложно, а просто из-за незна­комого термина. Переформулируйте задачу (найти сум­му чисел и поделить на их количество), и ученик немед­ленно с ней справится. Или еще. Казалось бы, что мо­жет быть проще, чем нарисовать на экране точку. Но, пока вы не будете знать команду, которая это делает, получить результат будет невозможно. Обратите внима­ние, что совсем не обязательно речь идет об операторе языка программирования. Определенную СКИ, оформ­ленную в форме панели инструментов, имеет и графи­ческий редактор.

Определенность (или детерминированность)

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

При наличии ошибок в алгоритме последнее сфор­мулированное свойство может иногда нарушаться. На­пример, если не было предусмотрено присвоение пе­ременной начального значения, то результат в некото­рых случаях может зависеть от случайного состояния той или иной ячейки памяти компьютера. Но это ско­рее не опровергает, а подтверждает правило: алгоритм должен быть определенным, в противном случае это не алгоритм.

Результативность

Результат выполнения алгоритма должен быть обяза­тельно получен, т.е. правильный алгоритм не может об­рываться безрезультатно из-за какого-либо непреодоли­мого препятствия в ходе выполнения. Кроме того, лю­бой алгоритм должен завершиться за конечное число шагов. Большинство алгоритмов данным требованиям удовлетворяют, но при наличии ошибок возможны на­рушения результативности. В качестве первого примера возьмем случай, когда алгоритм по тем или иным при­чинам получит в качестве номера символа в строке от­рицательное число. При попытке найти такой символ выполнение алгоритма, естественно, завершится аварий­ным образом. Теперь пример другой ситуации. Рассмот­рим алгоритм деления некоторого числа п "столбиком" на 3. При п == 4,2 он благополучно получает результат, а вот для простейшего значения п = 1 процесс деления оказывается бесконечным. Впрочем, достаточно допол­нить алгоритм условием на количество требуемых в от­вете знаков после запятой, и результативность немед­ленно будет восстановлена.

Корректность

Любой алгоритм создан для решения той или иной задачи, поэтому нам необходима уверенность, что это решение будет правильным для любых допустимых ис­ходных данных. Указанное свойство алгоритма принято называть его корректностью. В связи с обсуждаемым свойством большое значение имеет тщательное тести­рование алгоритма перед его использованием. Как пока­зывает опыт, грамотная и всесторонняя отладка для слож­ных алгоритмов часто требует значительно больших уси­лий, чем собственно разработка этих алгоритмов. При этом важно не столько количество проверенных сочета­ний входных данных, сколько количество их типов. Например, можно сделать сколько угодно проверок для положительных значений аргумента алгоритма, но это никак не будет гарантировать корректную его работу в случае отрицательной величины аргумента. Кстати гово­ря, именно результатом недостаточной тщательности тестирования чаще всего объясняются многочисленные сюрпризы, преподносимые современным программным обеспечением в процессе эксплуатации.

Массовость

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

Таковы основные свойства алгоритмов. Если их вни­мательно проанализировать, то становится очевидным, что исполнитель алгоритма не нуждается в какой-либо фантазии и сообразительности. Более того, для выпол­нения алгоритма совсем не требуется его понимание, а правильный результат может быть получен путем формального и чисто механического следования со­держанию алгоритма. В самом деле, используя алго­ритм настройки телевизора на существующие в дан­ной местности каналы, который подробно описан в инструкции, любой человек сможет успешно справить­ся с этой задачей, даже если он понятия не имеет об устройстве телевизора. А вот обратный пример: люди, не разбирающиеся в компьютерах, постоянно нужда­ются, чтобы кто-то им формулировал алгоритмы (вспомните характерный вопрос "А теперь куда на­жимать?").

Из возможности формального исполнения алгорит­ма следует очень важное следствие: поскольку осозна­вать содержание алгоритма не требуется, его испол­нение вполне можно доверить автомату или ЭВМ. Таким образом, составление алгоритма является обязательным этапом автоматизации любого процесса. Как только разработан алгоритм, машина может исполнять его лучше человека — быстрее и, что очень важно, не ошибаясь. Напротив, даже самое простое по человеческим меркам действие не может быть выполнено машиной, пока не сформулирован алгоритм. Например, попробуйте научить машину, как отличить на фотографии кошку от собаки; наверное, вы тоже затрудняетесь сформулировать четкий алго­ритм такого действия. А между тем пятилетний ребе­нок совершенно безошибочно справляется с такой за­дачей! И еще один, чуть более сложный, пример. В данный момент неизвестен алгоритм составления рас­писания уроков в наиболее общем виде, поэтому опыт­ный завуч часто делает это лучше, чем компьютер. Зато в деле проверки уже готового расписания, на­против, компьютер вне конкуренции, поскольку алго­ритм операции достаточно простой.

Завершая обсуждение, стоит подчеркнуть, что теоре­тическое понятие "алгоритм" имеет огромное приклад­ное значение. Любая программа, написанная для ЭВМ, является, по сути дела, одной из форм записи алгорит­ма. А роль программного обеспечения для современных компьютеров трудно переоценить.

2. Операции с файлами (переименование, копирова­ние, удаление, поиск) в среде операционной системы.

Задание

Выполнить приведенные ниже действия.

1. Найти на указанном учителем диске папку с зада­нием. Пусть для определенности изложения она называется ZADANIE

2. Скопировать папку и все ее содержимое на диске­ту. Все дальнейшие манипуляции выполнять только с данной копией на дискете.

3. Создать внутри полученной папки две новые с на­званиями ТЕХТS И PICTURES.

4. Скопировать все текстовые документы, имеющие­ся в папке ZADANIE, в папку ТЕХТS, а графиче­ские — в PICTURES.

5. Удалить скопированные файлы из папки ZADANIE на дискете. Если ОС позволяет, то при выполнении предыдущей операции можно делать не копирова­ние, а перемещение документов — это избавит от необходимости их удаления.

6. Переименовать на дискете папку ZADANIE в RESULTAT.

Примечание. Поскольку при формулировке задания под­разумевалась среда Windows, в тексте использованы терми­ны, характерные именно для этой операционной системы (папка, документ и др.). Если в школе используется другая ОС, то терминологию следует соответствующим образом из­менить (каталог, подкаталог, файл и т.п.).

Комментарии

Для выполнения задания нужно четко представлять себе структуру хранения информации в данной файло­вой системе (см. вопрос 1 билета № 6) и знать правила ввода команд в ОС.

Методы выполнения задания существенным образом зависят от типа интерфейса операционной системы. Если вы работаете в ОС с командной строкой, то необходимо ввести последовательность строк, каждая из которых представляет собой написанную по определенным стро­гим правилам команду. В качестве альтернативного ва­рианта можно сохранить все командные строки в спе­циальном текстовом файле (для СР/М он имел расши­рение SUB, а для МS-DOS — ВАТ) и затем его запус­тить.

Билет №14

Линейная алгоритмическая структура. Команда присваивания. Примеры.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 253; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.4.54 (0.019 с.)