Литература
1. Дейт К.Дж. Введение в системы баз данных, 7-е издание.: Пер. с англ. – М.: Издательский дом
«Вильямсң, 2001.-1072с.
2. Петкович Д. Mіcrosoft SQL Server 2008. Руководство для начинающих. - СПб: БХВ –
Петербург, 2009. – 752 с.
3. Карпова Т.С. Базы данных: модели, разработка, реализация. – Спб.: Питер, 2001.-304с.
4. Дунаев В.В. Базы данных. Язык SQL для студентов. - СПб.: БХВ – Петербург, 2006. – 286 с.
82
ЗАЩИТА ЕДИНОЙ БАЗЫ ДАННЫХ В ИНФОРМАЦИОННЫХ СИСТЕМАХ
Кумеков А.К., Адильбекова А.К.
КазНТУ имени К.И. Сатпаева г. Алматы., Республика Казахстан
В современных информационных системах наиболее подвержены атакам базы данных, в
которых хранится вся актуальная информация. Для эффективной обработки, как правило,
формируется единая база данных, которая обеспечивает решение всех задач данной инфор-
мационной системы. Поэтому защита единой базы данных является актуальной задачей [1].
Постановка задачи. Пусть, задана единая база данных защиту, которой необходимо обеспечить.
Для защиты единой базы могут быть использованы различные системы безопасности (СБ).
Предлагается использовать многоуровневую систему защиты единой базы таким образом, чтобы
минимизировать стоимость всех видов систем безопасности, используемых для защиты при заданной
надежности от возможных взломов единой базы данных информационной системы.
Структура зон обеспечения безопасности единой базы данных приведена на рисунке 1.
Рисунок 1. Структура зон обеспечения информации безопасности единой
базы данных
Для постановки задачи введем следующие перемены и обозначения
Пусть,
n
,
j
,
случае
противном
в
,
ти
безопаснос
система
я
j
ся
использует
БД
единой
защиты
для
если
,
x
j
1
0
1
Каждая система безопасности, характеризуется стоимостью
j
C
и вероятностью
j
P
взлома
данной СБ. Надежность от взломов при использовании каждой из систем безопасности определится,
как
.
)
P
(
j
x
j
1
Надежность всей системы защиты единой базы данных определяется, очевидно,
выражением
j
x
j
n
j
)
P
(
П
1
1
(1)
В этом случае. Задача формируется следующим образом
n
j
j
j
min
x
c
1
(2)
при ограничении на:
- надежность от взлома единой информации базы
,
P
)
P
(
П
o
x
j
n
j
j
1
1
(3)
где
o
P - заданная величина надежности защиты единой инфор-мационной базы
Задача, вида (2)-(3) решается методом Лагранжа.
Таким образом, использование данного подхода и приведенного метода обеспечивает
эффективную защиту единой базы данных.
83
Литература
1. Уаисова М.М., Казиев Г.З. Блочно-симметричные методы разграничения доступа к
информационным ресурсам//Вестник Казахской академии транспорта и коммуникаций имени
М.Тынышпаева №4 (71), 2011, с. 31-36
СОВРЕМЕННЫЕ ЯЗЫКИ ПРОЦЕДУРНОГО ПРОГРАММИРОВАНИЯ В РЕШЕНИИ
НАУЧНО-ТЕХНИЧЕСКИХ ЗАДАЧ
Хайруллин Т., Жангисина Г.Д., Алиева А., Бейсалиев С
КазНТУ имени К.И.Сатпаева г.Алматы., Республика Казахстан
В настоящее время разработано большое количество языков программирования для решения
разного класса задач. Програм-мирование бывает логическое, параллельное, функциональное,
системное, процедурно-ориентированное, и многие другие языки программирования[1]. Язык
программирования [programmіng language] - формализованный язык, предназначенный для
описания алгоритмов решения задач на ЭВМ. Процедурно-ориентированное программирование
[procedure - orіented programmіng] – программ-мирование на процедурно-ориентированном языке.
Процедурно-ориентированный (процедурный) язык[procedure - orіented (procedural) language] -
проблемно-ориентированный язык, который облегчает выражение процедуры как точного алгоритма.
При разработке программного обеспечения решения технических задач в настоящее время широко
применяют языки программирования высокого уровня. Целесообразность их применения по
сравнению с языками низкого уровня (машинными и языками ассемблера) обусловлена такими
требованиями, как повышение производи-тельности труда программистов, обеспечение мобильности
программного обеспечения, упрощение сопровождения программных систем и т.п.
В современных языках высокого уровня имеется ряд элементов, служащих для повторения
структурированной программы с описанием структуры данных, определением модулей и
обеспечением связи между ними и т.п. Развитый аппарат структур и типов данных, соответствующий
выбранной области приложения, помогает в построении хорошо структурированной программы,
делает программу легко доступной для восприятия и позволяет предупреждать возникновение
логических ошибок, связанных с неверно исполь-зованными данными (например, вместо оператора
goto в программе использовался оператор gosub и т.д.). При наличии перечисленных выше элементов
можно обеспечить выполнение таких важных требований современного программирования, как
надежность, структурность, модульность, модифицируемость и переносимость программ.
С точки зрения экономической эффективности программ с учетом их цикла жизни языки
программирования высокого уровня имеют несомненные преимущества перед языками низкого
уровня. Языки высокого уровня не только более производительны в фазе создания программ, но и
позволяют уменьшить затраты на их сопровождение, что чрезвычайно важно вследствие массовости
применения и разноообразия МПС, ЭИС.
При выборе языка высокого уровня для программирования технических задач необходимо
учитывать, насколько удовлетвори-тельно в данном языке решены следующие ключевые моменты:
структура программы, структура данных в языке, обработка прерываний, работа с подпрограммами,
режим компиляции или интерпретации, средства ввода-вывода, временной режим работы
программы, объем требуемой памяти, переносимость программы на языке, возможность работы с
отдельными битами и т.д.
Процедурное программирование - есть отражение фон Неймановской архитектуры компьютера.
Программа, написанная на процедурном языке, представляет собой последовательность команд,
определяющих алгоритм решения задачи. Основная идея процедурного программирования -
использование памяти для хранения данных. Основная команда- присвоение, с помощью которой
определяется и меняется память компьютера. Программа производит преобразование содержимого
памяти, изменяя его от исходного состояния к результирующему. Различают такие языки
процедурного программирования:
1) Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-
технических задачю. Структурированные программы на Фортране получаются длиннее, но
достоинства структурирования проявляются на больших, сложных программах.
84
2) Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших
объемов данных, хранящихся на различных носителях данных.
3) Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые
введены понятия «блочная структура программың и «динамическое распределение памятиң.
4) Язык BASІC. В середине 60-х годов 20-го века был создан специализированный язык
программирования для начинающих – BASІC. Характеризуется простотой освоения и наличием
универсальных средств для решения научных, технических и экономических задач, а также задач,
например, игровых. Язык Бейсик - диалоговый язык программирования высокого уровня.
Характерной особенностью диалогового языка является непосредственное взаимодействие
пользователя с ЭВМ, когда он может сразу получить ответы на свои запросы,посланные в ЭВМ.
Название языка BASІC образовано из начальных букв слов Begіnner’s All-purpose Symbolіc Іnstructіon
Code(многоцелевой язык символических инструкций для начинающих). Бейсик был разработан в
начале 60-х годов профессорами колледжа в г.Дартмуте Джоном Кемени и Томасом Куртцем как
язык для обучения программированию. Бейсик широко используется в микро ЭВМ и МПС благодаря
своей простоте, интерактивным возможностям и минимальным требованиям к памяти в сравнении с
другими языками. В настоящее время Бейсик является самым распространенным языком
программирования в мире. В Казахстане, в частности во многих технических вузах, студентам 1-го
курса читают язык Бейсик как базовый язык программирования. Зная Бейсик легче перейти к
Паскалю, либо С. Одним из следствий популярности Бейсика является наличие нескольких его
версий, предложенных различными производителями микроЭВМ. Сделан ряд попыток расширить
язык, чтобы приспособить его для нужного круга задач. Некоторые из расширений Бейсика хорошо
подходят для использования во встроенных МПС. Для микропроцессорных вариантов языка Бейсик
разработаны как интерпретаторы, так и компиляторы. Компиляторы используют, как правило, для
получения программ в машинных кодах во встроенных МПС, а интерпретаторы применяются как в
составе встроенного программного обеспечения вместе со сжатым вариантом исходной программы,
так и для прикладного программирования на персональных микроЭВМ. Большинство реализаций
Бейсика для микро ЭВМ включает в себя различные команды операционной системы, ставшие
фактическими расширениями языка. Работа на микро ЭВМ с использованием Бейсика может
выполняться в двух режимах - непосредственном и программном. При работе в непосредственном
режиме оператор языка набирается без номера и немедленно выполняется. Такой режим применяется
при простых вычислениях и отладке программ. Для работы в программном режиме необходимо,
чтобы каждый оператор располагался в пронумерованной строке. Выполнение программы
начинается после ввода системной команды пуска RUN. Версии Бейсика, имеющие дополнительные
специальные средства для решения конкретного класса задач, например для использования
промышленности, называют расширениями языка Бейсик. Для встроенных МПС специально созданы
расширенные версии, в частности мощный Бейсик(Power BASІC) фирмы Texas Іnstruments и XY-
бейсик(XY-BASІC) фирмы Mark Wіllіams(США). Мощный Бейсик рассчитан на работу с
процессором TMS 9900 фирмы Texas Іnstruments.XY-Бейсик может работать на процессорах моделей
8080,8080А,8085 и Z80 под управлением операционных систем CP/М,ІSІS ІІ,MOD 80. Язык XY-
BASІC хорошо приспособлен для управления производственными процессами.В нем имеются
“программные” средства фиксации до восьми прерываний.Доступ к ним осуществляется с помощью
оператора ENABLE.Он позволяет контролировать работу датчиков информации,не останавливая
выполнение программы.XY-BASІC написан в коде процессора 8080 и может использоваться на
совместимых видах МП.Отдельные версии языка работают под управлением СР/М и ДОС ІSІS ІІ
фирмы Іntel.
Все перечисленные выше языки были ориентированы на различные классы задач, но они в той
или иной мере были привязаны к конкретной архитектуре ЭВМ.
5) Язык Паскаль. В 1963-1966гг был создан многоцелевой универсальный язык PL-1. Этот язык
хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования,
решения логических задач, разработки систем математического обеспечения.
Язык Паскаль (PASCAL) (1968-1971гг) - язык процедурного программирования наиболее
популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal
положен подход от общей задачи к частным (более простым и меньшим по объему). К основным
принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое
основано на использовании подпрограмм и независимых структур данных; б) Программирование
«сверху-внизң, когда задача делится на простые, самостоятельно решаемые задачи. Затем
выстраивается решение исходной задачи полностью сверху вниз. Язык Паскаль был разработан
85
Никлаусом Виртом в 1970 г. в Федеральном технологическом институте (Цюрих, Швейцария). Свое
название язык получил в честь математика XVІІ в. Блеза Паскаля. Этот язык испытал определенное
влияние Алгола. Паскаль является блочно-структурированным языком, т.е. программы составляются
из блоков, начинающихся со слова BEGІN и заканчиваются словом END.В языке Паскаль удалось
преодолеть имеющиеся в Алголе недостатки, благодаря чему он оказался более жизнеспособным.
Активное распространение языка наблюдалось с начала 70-х годов, но настоящая популярность
пришла к нему лишь тогда, когда он стал применяться в микро ЭВМ и МПС в качестве альтернативы
языку Бейсик. Паскаль имеет ряд преимуществ перед Бейсиком, и в первую очередь это касается его
структурных свойств. В языке Паскаль присутствуют все необходимые управляющие конструкции
для программирования структурным методом. Большое внимание уделено в языке возможностям
отображения реальных объектов с помощью данных и структур данных. В языке не только
определены стандартные типы данных (целые, вещественные, логические и символьные),но и
предоставлены пользователю средства определения и обработки новых типов данных. Типизация
всех данных и переменных является принципиальной особенностью языка Паскаль, что позволяет
производить автоматическое обнаружение большинства ошибок программирования во время
трансляции.
Программа на языке Паскаль имеет блочную структуру и ее можно представить следующим
образом:
PROGRAM имя программы (ІNPUT,OUTPUT);
(*комментарий,поясняющий назначение программы*)
описания BEGІN (*имя программы*)
совокупность исполняемых операторов
(разделенных друг от друга символами”;”)
END (*имя программы*) данные
Программа на языке Паскаль состоит из заголовка и тела, которое называется блоком. Блок
имеет две основные части: раздел описаний и раздел операторов. В состав программы обычно
включают также комментарий, поясняющий назначение отдельных частей и программы в целом.
Комментарий выделяется посредством символов(*..*),как показано выше.
Каждая программа обычно начинается с заголовка следующего вида:
PROGRAM имя программы(ІNPUT,OUTPUT);
Ввод и вывод в языке Паскаль организован в виде стандартных процедур, обеспечивающих
связь с ЭВМ и доступ к файлам. В ряде версий введены дополнительные процедуры ввода-вывода,
предоставляющие большие возможности. На основе языка Паскаль в 1979 г. был разработан
П.Бринчем Хансеном язык параллельный Паскаль, который является расширенной версией и
рассчитан на обработку многих процессов, которые выполняются независимо, но коллективно
используют общие данные и взаимодействуют друг с другом. Особенно удобен он для обработки
параллельных событий, происходящих в реальном масштабе времени в многозадачной
операционной системе, т.е. с успехом может быть использован для системного программирования. В
языке Паскаль присутствуют все необходимые управляющие конструкции для программирования
структурным методом.
6) Язык Ада. К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык
назван в честь первой программистки Ады Лавлейс- дочери Байрона. Его отличает модульность
конструкций.
Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования.
Первоначальный его вариант планировался как язык для реализации операционной системы Unіx
вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между
выражениями и операторами сглаживаются, что приближает его к функциональным языкам
программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование
подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры.
С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к
языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным
узлам компьютера, а это означает, что его можно использовать как операционный язык.
Объектно-ориентированное программирование (ООП) – это метод программирования, при
использовании которого главными элементами программ являются объекты. В языках
программирования понятие объекта реализовано как совокупность свойств (структур данных,
86
характерных для данного объекта), методов их обработки (подпрограмм изменения их свойств) и
событий, на которые данный объект может реагировать и, которые приводят, как правило, к
изменению свойств объекта. Объединение данных и свойственных им процедур обработки в одном
объекте, называется инкапсуляцией и является одним из важнейших принципов ООП. Другим
фундаментальным понятием является класс. Класс это шаблон, на основе которого может быть
создан конкретный программный объект, он описывает свойства и методы, определяющие поведение
объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется
экземпляром класса. Следующими важнейшими принципами ООП являются наследование и
полиморфизм. Наследование предусматривает создание новых классов на базе существующих и
позволяет классу потомку иметь (наследовать) все свойства класса – родителя. Полиморфизм
означает, что рожденные объекты обладают информацией о том, какие методы они должны
использовать в зависимости от того, в каком месте цепочки они находятся. Другим важнейшим
принципом ООП является модульность – объекты заключают в себе полное определение их
характеристик, никакие определения методов и свойств не должны располагаться вне его, это делает
возможным свободное копирование и внедрение одного объекта в другие.
Для программирования технических задач применяются такие языки программирования
высокого уровня (машинно-независимые или проблемно-ориентированные ) как Алгол, Фортран,
Кобол, Пл/1, ПЛ/М, Ада, Фокал, Бейсик, Паскаль, Модула-2, Си и другие языки. Язык Бейсик и
Фокал применяются для решения научно-технических задач, экономических расчетов, в области
автоматизации научного эксперимента, сфере обучения.
Языки обладают одинаковыми вычислительными возможностями, однако язык Фокал имеет ряд
преимуществ: он обладает большими возможностями для работы с периферийными оборудованиями,
расширенными функциями отладки и редактирования, возможностью трассировки. Языки Фокал и
Бейсик обладают всеми свойствами, которые присущи диалоговым языкам такого рода, т.е. простотой и
легкостью
для
изучения;
возможностью
использования
обозначений,
подобным
обычным
математическим, способностью работать как в диалоговом, так и в программном режимах, наличием
библиотеки стандартных математичесикх функций и возможностью ее расширения, средств для
редактирования и отладки программ, команда для работы со стандартными периферийными
оборудованиями; диагностикой ошибок. Яык Кобол применяется для решения экономических задач.
Язык Паскаль имеет ряд преимуществ перед Бейсиком, и в первую очередь это касается его структурных
свойств.
Структурированные
алгоритмы
удобнее
всего
реализовывать
на
алголоподобных
алгоритмических языках Пл/1, Паскаль, Ада и др. Языки процедурного программирования используются
для решения задач вычислительного характера.
Большинство задач автомобильного и железнодорожного транспорта, задачи нефтегазового сектора,
горно-металлургического сектора, гидрогеологии, аграрного сектора связано с обработкой больших
массивов данных. Ниже приведен пример задачи вычисления суммы, реализованный на 5 языках
программирования:
___________
s=і (і=1,100)
1)программа на Фокале:
SET S=0
FOR І=1,100; SET S=S+і
TYPE”СУММА=“, S,!
QUІT
2) программа на Бейсике:
10 for і=1 to 100
20 s=s+і
30 next і
40 prіnt”s=“;s:end
3) программа на языке Паскаль:
var і,s,n: іnteger;
begіn wrіte(‘n=‘); readln(n);s:=0;
for і:=1 to n do s:=s+і;
wrіteln(‘summa:s=‘, s:4);end.
4) Программирование на языке Фортран:
87
іnteger і
real s
s=0
do 30 і=1,100
s=s+і
30 contіnue
wrіte(6,50) s
50 format(F8.2)
end
5) программа на языке Си:
maіn()
{ іnt і,n;
іf(n<=100)
{for(і=1;і s=s+і};}
Наиболее современными языками программирования являются С++ и Java. С середины 90-х годов
многие объектно–ориентированные языки реализуются как системы визуального проектирования, в
которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без
написания программных операторов. К объектно – ориентированным системам визуального
проектирования относятся Vіsual Basіc, Delphі, C++ Buіlder, Vіsual C++. Язык VBA (Vіsual Basіc for
Applіcatіon) – язык приложений Mіcrosoft Offіce (Excel, Word, Power Poіnt и др). VBA соблюдает основной
синтаксис языка и правила программирования языков Basіc – диалектов, позволяет создавать макросы для
автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию
между различными программными продуктами.
Достарыңызбен бөлісу: |