С. В. Ченцова. В. Чубарьинформатикакрасноярск 2002 введение
Скачать 0.92 Mb.
|
модели организации данных (модели данных). Модель данных определяется способом организации данных, ограничениями целостности и множеством операций, допустимых над объектами организации данных. Соответственно, модель разделяют на три составляющие – структурную, целостную и манипуляционную. Известны три основные модели организации данных: • иерархическая (наборы данных представляют собой древовидную структуру, то есть допускаются только иерархические связи); • сетевая (наборы данных представляют собой сетевую структуру, то есть допускаются любые связи, в том числе иерархические и одноуровневые); • реляционная (наборы данных представляют собой таблицы). Эти модели очень часто используются в качестве критерия для классификации СУБД. Исходя из этого, различают иерархические СУБД, сетевые СУБД и реляционные СУБД. Функция СУБД по организации и поддержанию физической структуры данных включает организацию и поддержание внутренней структуры файлов БД, называемую форматом файлов базы данных, а также создание и поддержание специальных структур (индексы, страницы) для эффективного и упорядоченного доступа к данным. Данная функция тесно связана с третьей функцией СУБД – организацией доступа к данным. Организация доступа к данным и их обработка в оперативной и внешней памяти осуществляется через реализацию процессов, получивших название транзакций. Транзакцией называют последовательную совокупность операций, имеющую отдельное смысловое значение по отношению к текущему состоянию базы данных. Транзакции принято разделять на две разновидности – изменяющие состояние базы данных после завершения транзакции и изменяющие состояние БД временно, с восстановлением исходного состояния данных после завершения транзакции. Совокупность функций СУБД по организации и управлению транзакциями называют монитором транзакций. Источником транзакций может быть как один пользователь, так и несколько 69 сразу. По этому критерию СУБД классифицируют на однопользовательские (или «настольные») и многопользовательские («промышленные») СУБД. Примерами настольных СУБД являются Microsoft Access, Paradox и др. К промышленным СУБД относятся Oracle, DB2, Informix, SQL Server и т. д. Непосредственная обработка и доступ к данным в большинстве СУБД осуществляется через организацию в оперативной памяти средствами операционной системы или собственными средствами системы буферов оперативной памяти, куда на время обработки и доступа помещаются отдельные компоненты файла БД. Поэтому другой составной частью функции СУБД по организации доступа и обработки данных является управление буферами оперативной памяти. Еще одной важной функцией является так называемая журнализация всех текущих изменений БД, что представляет собой главное средство обеспечения сохранности данных при возможных сбоях и разрушениях данных. Таким образом, можно выделить в структуре следующие функциональные блоки: • процессор описания и поддержания структуры БД; • процессор запросов к БД; • монитор транзакций; • интерфейс ввода данных; • интерфейс запросов; • интерфейс выдачи сведений; • генератор отчетов. Ядром СУБД является процессор описания и поддержания структуры, который реализует модель организации данных, средствами которой проектировщик строит логическую структуру БД и обеспечивает построение и поддержание внутренней схемы базы данных. Процессором описания в терминах используемой модели данных обеспечиваются установки заданной логической структуры БД, а также перевод структуры данных во внутреннюю схему БД. В реляционных СУБД процессор описания реализуется на основе языка базы данных, являющегося составной частью языка структурированных запросов (SQL). Интерфейс ввода данных СУБД реализует входной информационный язык, обеспечивая поставщикам информации средства описания и ввода данных в информационную систему. Это обычно решается через применение диалоговых методов организации интерфейса и использование входных форм. Интерфейс ввода при этом обеспечивает средства создания, хранения входных форм и их интерпретацию в терминах описания логической структуры БД для передачи вводимых через формы сведений процессору описания. Процессор запросов интерпретирует запросы в терминах языка манипулирования даннымии совместно с процессором описания, собственно говоря, и исполняет запросы. В реляционных СУБД основу процессора запросов составляет язык манипулирования данными, являющийся основной частью языка SQL. 70 Функции монитора транзакций, как отмечалось выше, заключаются в организации совместного исполнения транзакций от нескольких пользователей над общими данными. Интерфейс выдачи СУБД получает от процессора запросов результаты обращений к БД и переводит эти результаты в форму, удобную для восприятия и выдачи пользователю. Обычно применяются табличные способы представления структурированных данных, а также специальные формы выдачи данных, аналогичные формам ввода. Формы выдачи лежат также в основе формирования так называемых «отчетов», выдающих результаты поиска и отбора информации из БД в письменной форме для формализованного создания соответствующих документов. Для подобных целей в состав СУБД включаются генераторы отчетов. Итак, к важным признакам, классифицирующим СУБД можно отнести: • среда функционирования, то есть платформа, на которой работает СУБД; • тип поддерживаемой в СУБД модели данных; • возможности встроенного языка СУБД, его переносимость в другие приложения; • наличие развитых диалоговых средств конструирования и средств работы с БД; • возможность работы с нетрадиционными данными в сетях (страницы HTML, сообщения электронной почты и т.п.); • возможность работы с объектными и объектно-реляционными данными; • уровень использования (настольная, промышленная); • возможности интеграции данных из других СУБД; • степень поддержки языка SQL и возможности работы с сервером БД; • наличие средств отчуждаемых приложений, позволяющих не проводить полную установку СУБД для тиражируемых приложений пользователя. Контрольные вопросы и задания: 1. Что такое программное обеспечение? 2. На какие типы можно разделить программное обеспечение ПК ? 3. Для чего предназначено системное, прикладное и инструментальное программное обеспечение? Какие программы в него входят? 4. Для чего нужна операционная система и из каких частей она состоит? 5. Какие основные задачи решает ОС ПЭВМ? 6. Что такое файл? Имя файла? Расширение файла? 7. Могут ли в одном компьютере храниться файлы с одинаковым именем и расширением: Обоснуйте ответ. 8. Что такое интерфейсы ОС и какими они бывают? 71 9. Какие существуют операционные системы? 10. Что представляют собой программы-оболочки? Почему с ними работать удобнее, чем с ОС? Какие они выполняют функции? 11. Для чего нужны текстовые редакторы? Табличные процессоры? Базы данных? Какие с их помощью решаются задачи? 12. Дайте определение базам данных? 13. Какие функции реализуют СУБД? 14. Назовите основные модели организации данных 15. Что такое транзакция? 16. Подготовьте рефераты на тему: • «Современные ОС»; • «Интерфейс современного программного обеспечения»; • «Области применения баз данных»; • «Пакеты программ для математических и инженерных расчетов». 72 11. АЛГОРИТМЫ 11.1. Понятие алгоритма С понятием алгоритма мы уже встречались, когда рассматривали этапы разработки программ для ЭВМ и определяли что такое программы. Вообще, понятие алгоритма относится к числу фундаментальных математических понятий, поэтому, приведем определение алгоритма, взятое из «Математической энциклопедии»: «Алгоритм, алгорифм, − точное предписание, которое задает вычислительный процесс (называемый в этом случае алгоритмическим), начинающийся с произвольного исходного данного и направленный на получение полностью определяемого этим исходным данным результата. Алгоритмами являются, например, известные с начальной школы правила сложения, вычитания, умножения и деления столбиком». (Т.1, стлб. 202−203). Из определения программы, взятого для данных лекций, также, из «Математической энциклопедии», и уже цитированного ранее, алгоритм определяется как «...конечная совокупность команд (инструкций), каждая из которых побуждает выполнить некоторую элементарную операцию над данными, хранящимися в памяти исполнителя и имена которых являются параметрами команды». Как видим, это определение, сохраняя суть, несколько отличается от предыдущего, так как приложено уже к понятию «программа». В повседневной жизни слово «алгоритм», войдя прочно в обыденный лексикон, понимается как: точное правило, инструкция, указание того, как нужно действовать, чтобы получить результат. В этом смысле главу лекций «Этапы разработки программы на ЭВМ», можно рассматривать тоже как алгоритм. Вообще, слово «алгоритм» появилось в средние века, когда европейцы познакомились с работами великого арабского математика аль-Хорезми (783- 855 г.г.). Эти работы произвели на них столь глубокое впечатление, что появилось слово «алгоритм», которое происходит от имени ученого. И в начале это слово обозначало нумерацию по арабской системе счисления. 11.2. Свойства и состав алгоритмов Правильно разработанный алгоритм решения задачи должен отвечать следующим требованиям. Он должен обладать:определенностью или детерминированностью, то есть применение алгоритма к одним и тем же исходным данным, должно приводить к одному и тому же результату; он должен обладать массовостью − быть пригодным для решения класса задач одного типа, а не одной задачи из этого класса; результативностью − возможностью достижения результата за конечное число шагов. Что касается последнего свойства, то могут встретится такие задачи, решение которых не возможно найти за конечное число шагов. Поэтому, прежде чем приступать к написанию алгоритма задачи, нужно хорошо изучить область вычислительной математики, к которой относится данная задача. 73 Например, решая задачу линейного программирования, или транспортную задачу, нужно помнить, что по внешнему виду системы ограничений и целевой функции, нельзя определить, достижим ли минимум целевой функции за конечное число шагов. Или решая трансцендентное уравнение, следует задавать точность, которой вам будет достаточно. А теперь рассмотрим из чего состоят алгоритмы решения задач на ЭВМ: 1. Описание, используемых переменных. 2. Операции ввода, присваивающие некоторым переменным значения исходных данных. 3. Вычислений или другой обработки информации. 4. Операций присваивания переменным значений полученных в результате вычисления выражений. 5. Операции условного перехода, проверяющей некоторое условие, и в зависимости от того, выполняется заданное условие или нет, указывающей, в качестве следующей, выполнение какой-либо из двух операций. 6. Операции вывода обработанной информации. 11.3. Способы записи алгоритмов. Блок-схемы Существуют три способа записи алгоритмов: словесный, графический и операторный. К словесному способу описания алгоритма можно отнести, в качестве примера, уже упомянутые «Этапы разработки программ для ЭВМ», или часто приводимый в учебниках по программированию пример рецепта приготовления какого-либо блюда. Этот способ записи алгоритмов пригоден лишь для простейших задач. Операторный способ предполагает подробное указание действий ЭВМ или автоматизированных устройств на специальном формальном языке. Графический способ описания алгоритмов или описание алгоритмов с помощью блок-схем, обладает большой наглядностью. Алгоритм изображается в виде последовательности блоков, предписывающих выполнение отдельных функций и связей между ними. Внутри блоков помещается информация, поясняющая выполняемые ими действия. Каждый блок снабжается номером, который размещается в разрыве контура блока в левой верхней его части. При оформлении документов (отчетов, курсовых и дипломных работ, диссертаций, инструкций и т.п.), содержащих блок-схемы, необходимо руководствоваться ГОСТами 19.002-80 и 19.003-80. Рассмотренные графические и словесные способы описания алгоритма не могут непосредственно восприниматься машиной, и в дальнейшем выполняться, поэтому они используются для предварительной работы. Для описания алгоритмов на языке понятном ЭВМ, служат языки программирования, которые на основе строго определенных правил, позволяют формировать последовательность предписаний для исполнения ЭВМ. 74 11.4. Базовые структуры алгоритмов: следование, ветвление, цикл В настоящее время, схемы алгоритмов используются не столько для указания последовательности операций, сколько для группирования блочных символов в виде базовых управляющих конструкций. К ним относятся следование, ветвление и цикл. В алгоритмах следования, или линейной или естественной структуры, операции выполняются последовательно в порядке их расположения в алгоритме. ПРИМЕР: Вычислить X b a = − / 2 Для вычисления значения X требуется задать значения a и b , проделать операцию деления и сделать вывод, полученного значения X. Решение большинства практических задач не ограничивается линейными алгоритмами, и предусматривает различные пути решения. Причем, выбор пути определяется либо условиями задачи, либо результатами полученными в процессе решения. Каждое возможное направление вычислений называется ветвью, а алгоритм такой структуры, называется алгоритмом разветвленной структуры. В зависимости от выполнения некоторого условия, вычислительный процесс может идти здесь по одной или другой ветви. ПРИМЕР: Вычислить X b D = − ± , где D b ac = − 2 4 . Если D <0, печатать «Корней нет”. Алгоритм циклической структуры − это алгоритм, в котором предусмотрено неоднократное повторение одной и той же последовательности действий. ПРИМЕР: Вычислить значение функции f(x) с шагом h на отрезке [x 1 ,x 2 ]. Решением этой задачи будут значения функции в точках f(x 1 ), (x 1 +h), f(x 1 +2h),..., f(x 1 +ih). Вычисления функции заканчиваются когда x 1 +ih становится больше или равно x 2 Контрольные вопросы и задания: 1. Дайте определение, что такое алгоритм? 2. Какими свойствами должен обладать алгоритм? 3. Из чего состоят алгоритмы решения задач на ЭВМ? 4. Назовите способы описания алгоритмов. 5. Назовите базовые алгоритмические структуры. Когда они применяются? 6. Приведите примеры задач, при решении которых необходимо применить алгоритм: линейной структуры, ветвления, цикл все три алгоритмические структуры. 7. Нарисуйте блок схемы вышеприведенных примеров. 75 12. ИНФОРМАЦИОННЫЕ СИСТЕМЫ. ОСНОВНЫЕ ПОНЯТИЯ И КЛАССИФИКАЦИЯ Информационной системой (ИС) – называются организованные средства сбора, ввода и обработки данных, а также хранения, управления, контроля и предоставления информации, предназначенные для достижения ее пользователем своих целей и выполнения производственных задач. В «ручной» неавтоматизированной информационной системе, люди являются основными обработчиками информации. Люди могут думать, рассуждать и приспосабливаться к незнакомым ситуациям, но они работают медленно и делают ошибки. Автоматизированная информационная система использует компьютер, чтобы обрабатывать данные. Такие системы могут выполнять свои функции без человеческого вмешательства и работать на высоких скоростях с большой точностью. В составе информационной системы можно выделить две основные составляющие: • аппаратная платформа – совокупность технических средств (ЭВМ, сетевое и телекоммуникационное оборудование) и установленной на них операционной системой. Требования организации и построению аппаратных средств, как правило, достаточно стандартизированы, методы их реализации хорошо отработаны и многократно проверены на практике • взаимосвязанные функциональные подсистемы, обеспечивающие решение задач ИС и достижение ее целей. Эта составляющая полностью относится к области прикладного программного обеспечения (ПО) и сильно зависит от специфики решаемых ИС задач. Прикладное ПО ИС обеспечивает сбор, хранение, поиск и обработку текстовой, фотографической и другой информации с целью ее использования в производственной, организационной и прочей деятельности. Большинство ИС работает в режиме диалога с пользователем и по этому обладает развитым интерфейсом взаимодействия пользователя с ПО. В наиболее общем случае типовые программные компоненты ИС включают: • диалоговый ввод-вывод; • логику диалога; • прикладную логику обработки данных; • логику управления данными; • операции манипулирования файлами или базами данными. Требования с прикладному ПО для ИС сложны и зачастую противоречивы, так как выдвигаются специалистами из различных прикладных областей. Однако, в конечном счете, именно эта составляющая наиболее важна для ее функционирования. Функциональность ИС существенно зависит от организационно управленческой структуры организации, принятых в организации финансовых технологий и схем, организации документооборота и множества других факторов. Функциональные подсистемы изменчивы по своей 76 природе, так как в предметной области деятельности организации постоянно могут происходить более или менее существенные изменения. Информационные системы классифицируются по разным признакам. Рассмотрим некоторые из них. 12.1. Классификация информационных систем 12.1.1. Классификация по масштабу • |