Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты готовые ГОС 2013.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.57 Mб
Скачать

Билет № 1

  1. Системный анализ и системный подход. Пять принципов системного подхода. Методология проведения исследований на базе системного подхода.

Системный подход (СП) – способ решения практических задач с использованием элементов общей теории систем. Существует пять принципов системного подхода:

1. Совокупность элементов системы рассматривается как единое целое, а не как простое объединение элементов.

2. Свойства системы не есть сумма свойств его элементов.

3. Цель существования системы определяется как достижение максимума функции ценности. При этом функция ценности определяется как зависимость эффективности системы от условий построения и функционирования.

4. Необходимость учета внешних связей, так как изолированных систем не существует.

5. Так как должны учитываться внешние связи, то система может являться подсистемой другой глобальной системы.

Системный анализ (СА) – направление общей теории систем наиболее конструктивное и предлагающее методологию проведения исследований на базе системного подхода.

Эта методология включает в себя следующее:

- Способы выделения этапов исследования;

- Методики выполнения этапов;

- Методы формализации представления целей;

- Критерии оценки эффективности.

  1. Реализация запросов средствами SQL (хранимые процедуры, функции, представления).

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

SELECT [DISTINCT] *|<столбец> [<псевдоним>]

[,<групповая функция>] [,…n]

FROM <таблица>[, …n]| (<подзапрос>)

[WHERE <условие>]

[GROUP BY<выражение группировки>]

[HAVING <условие отбора группы>]

[ORDER BY < столбец >[,…n]]

Ключевое слово DISTINCT используется для возвращения запросом только уникальных строк. При необходимости вывести все записи из отношения используется команда SELECT *. SELECT устанавливает, какие столбцы должны присутствовать в выходных данных. FROM определяет имена используемой таблицы или нескольких таблиц. WHERE выполняет фильтрации строк объекта в соответствии с заданными условиями. GROUP BY образ-ся группы строк, имеющих одно и то же значение в указанном столбце. HAVING фильтрует группы строк объекта в соответствии с указанным условием. ORDER BY определяет упорядоченность результатов выполнения оператора. Порядок предложений и фраз в операторе SELECТ не может быть изменен. Только предложения SELECT и FROM являются обязательными, все остальные предложения и фразы могут быть опущены. Операция SELECT является закрытой, т.е. результат запроса к таблице представляет собой др. таблицу. Пример запроса: вывести названия всех предметов, по которым сред. оценка меньше 4.

SELECT Name_Subject, AVG(Mark)

FROM Progress Pr, Subject S

WHERE Pr.Code_Subject=S.Code_Subject

GROUP BY Name_Subject

HAVING AVG(Mark)<4

Стандарт ISO содержит определение 5 обобщающих функций: COUNT возвращает количество значений в указанном столбце. Функция COUNT() с аргументом отличным от *, игнорирует строки с признаком NULL, в то время как функция вида COUNT(*) посчитает все строки, в том числе и строки, в которых есть атрибуты с признаком NULL.

. SUM возвращает сумму значений в указанном столбце. AVG возвращает усредненное значение в указанном столбце. MIN возвращает минимальное значение в указанном столбце. MAX возвращает максимальное значение в указанном столбце.

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

Предложение ORDER BY всегда ставится в конец команды SELECT. По умолчанию сортировка идет по возрастанию. Для изменения порядка сортировки используется опция DESC. При сортировке по нескольким столбцам столбцы перечисляются через запятую. ORDER BY всегда стоит в конце запроса. Пример: Вывести список имен студентов, имеющих оценки, расположив их по возрастанию имен: SELECT DISTINCT Sname ФИО

FROM Student, Progress

WHERE Student.N_record_book= Progress.N_record_book;

ORDER BY Sname

Запросы с подзапросами:

Внутрь каждого запроса может входить другой запрос, называемый подзапрос. подзапросы создаются на уровне опций: where, having, from. Порядок выполнения: сначала подзапрос, потом запрос, куда подзапрос передает свои данные. Отличие составляют коррелированные подзапросы – внеш запрос выбирает строку; вып-ся внутр запрос, используя знач-е строки внеш запроса; рез-т вып-я внутр запроса возвращ-ся во внеш запрос, где провер-ся его соотв-е выбранной строке; выбир-ся след строка внеш запроса. Коррелированный подзапрос выполняется столько раз, сколько строк-кандидатов в основном подзапросе. Пример: вывести имена студентов и их средние оценки: Select Sname, Amk.Amark

From Student, (select N_record_book, avg(mark) Amark

From Progress

Group by N_record_book) Amk

Where Student. N_record_book = Amk. N_record_book;

Вывести имена студентов, чьи оценки выше, чем средняя оценка в их группе.

SELECT DISTINCT SName,Mark FROM Student s,Progress p

WHERE S.NRecordBook=P.NRecordBook

AND Mark>(SELECT AVG(Mark) FROM Progress P1,Student S1

WHERE S1.IDGroup=S.IDGroup AND S1.NRecordBook=P1.NRecordBook)

Подзапрос (пз) помещ в кругл скобки и долж стоять в прав части опер-ра сравнения внеш запроса, пз мож обращ к табл отличн от тех, к котор обращ основн запрос, пз может задав в слож критериях поиска внеш запросов с использ логич связок AND и OR, предл ORDER BY став-ся последн в основн запросе и не может содерж в пз. В команде SELECT пз мож стоять в предл FROM, WHERE, HAVING, пз мож содерж группы и групповые функции. Имена столбцов в предл SELECT внутр запр долж стоять в той же послед-ти, что и имена столбцов в левой части опер-ра сравн-я внешнего запроса. Типы столбцов должны попарно соотв-ть. В критерии поиска могут использ-ся логич опер-ры, операторы ANY (SOME), ALL.

Выборка данных из нескольких таблиц

Синтаксис предложения FROM:

FROM <первая таблица> [[AS] <псевдоним>] <тип объединения> <вторая таблица>[[AS] <псевдоним>] [ON <условие объединения>]

Псевдоним должен быть уникален в рамках одного запроса. INNER JOIN, OUTER JOIN (LEFT – RIGHT), FULL JOIN (включ-е всех данных из соед-мых таблиц) CROSS JOIN

Объединение двух или более запросов с помощью UNION – опер-р, с помощью котор. можно из двух или более запросов постр. единое результ-щее множ-во. Осн. правила: запросы должны им. одинак. кол-во столбцов в предл SELECT; возвращ комбинир результат будет иметь заголовки столбцов первого предлож-я SELECT; тип данных каждого столбца должен быть совместим с типом данных соотв-го столбца др запроса; по умолчанию режимом вывода для UNION является DISTINCT, иначе, после оператора UNION поставить опцию ALL. Предложение ORDER BY в операциях над множествами может стоять только в последнем предложении запроса, при этом вместо имен столбцов используются их номера из предложения SELECT.

Получить все записи о студентах, фамилии которых начинаются на букву 'М' или 'И'.

SELECT NRecordBook,SName FROM Student WHERE SUBSTRING(SName,1,1)= 'М'

UNION

SELECT NRecordBook,SName FROM Student WHERE SUBSTRING1(SName,1,1)= 'И'

  1. Понятие программы, подпрограммы, функции. Способы передачи и возврата параметров в подпрограммы и функции.

Программа – основная часть программы, которая получает управление от ОС в момент ее запуска, и которая в последующем определяет ход ее выполнения, в соответствии с заданным алгоритмом. Программа отвечает и за ее нормальное завершение – освобождение занимаемых ранее ресурсов. На языке C главная программа main – функция или WinMain для Windows.

Подпрограмма – программа, вызываемая другой программой или подпрограммой. Основное отличие от главной программы, то что она не настраивает окружающую среду. Предполагается, что это сделала главная программа. Подпрограмма же использует уже установленную среду. Подпрограмма выполняет действия по распределению памяти для собственных переменных и самой себя. Если все внутренние переменные подпрограммы живут только пока есть сама подпрограмма (языки C и Algol), то, разумеется, где-то должны выполняться действия по запросу и распределению памяти для переменных, а по завершению работы необходимо удалить из памяти ранее распределённые переменные. Кроме того, на входе подпрограммы выполняется «распаковка» входных параметров, а на выходе «упаковка» возвращаемого значения, если оно есть. Отсюда видно, что подпрограмма не может быть запущена самостоятельно. Она должна быть вызвана другой подпрограммой или главной программой. При этом вызывающая программа обязана обеспечить среду функционирования подпрограммы.

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

Подпрограммы делятся на два класса – процедуры и функции. Основное отличие процедур от функций заключается в том, что процедура может и не возвращать в главную программу результатов своих действий, а функция обязательно возвращает какой-либо результат. Список параметров, передаваемых в процедуры и функции, состоит из имен параметров и указания их типа. Примеры №1, объявления подпрограмм:

на языке Pascal: Procedure Pr(x1, x2: real; A: Integer);

на языке С: double Pr(double x1; double x2; int A);

Такая передача параметров называется передачей по значению. В момент вызова процедуры в памяти создаются временные переменные с именами x1, x2, A и в них копируются значения аргументов, передаваемых при вызове. На этом связь между аргументами и переменными разрывается. Можно изменять внутри процедуры значения x1, x2 и A, но это никак не отразится на значениях аргументов.

Существует ещё один способ передачи параметров в подпрограммы. Это так называемая передача параметров по ссылке. Пример №2,

на языке Pascal: Procedure Pr(var x1; x2: real; var A: Integer);

на языке С:

1) double Pr( int &x) // передается адрес переменной

{ x=x+1; return 0}

Pr(y); // вызов подпрограммы

2) double Pr(int *x); // передается указатель (косвенная адресация)

{ *x = *x+1; return 0}

Pr(&y); // вызов подпрограммы

В этом случае не происходит копирования значения аргумента в локальную, временную переменную в подпрограмме. Подпрограмма реально работает не с параметром, а со ссылкой – указателем на место хранения аргумента в памяти. Соответственно, любые изменения параметра x1, произведённые в подпрограмме, в действительности относятся не к этому параметру, а к тому аргументу, который передан при ее вызове.

  1. Классификация автоматизированных систем по уровню защищенности от НСД.

Выбор класса производится заказчиком и разработчиком с привлечением специалистов по защите информации. К числу определяющих признаков относятся:

  • наличие в системе информации различного уровня конфиденциальности;

  • уровень полномочий субъектов на доступ к конфиденциальной информации;

  • режим обработки данных в системе - коллективный или индивидуальный.

Устанавливается девять классов защищенности АС от НСД к информации.

Каждый класс характеризуется определенной минимальной совокупностью требований по защите.

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

Третья группа классифицирует АС, в которых работает один пользователь, допущенный ко всей информации АС, размещенной на носителях одного уровня конфиденциальности. Группа содержит два класса — 3Б и 3А.

Вторая группа классифицирует АС, в которых пользователи имеют одинаковые права доступа (полномочия) ко всей информации АС, обрабатываемой и (или) хранимой на носителях различного уровня конфиденциальности. Группа содержит два класса — 2Б и 2А.

Первая группа классифицирует многопользовательские АС, в которых одновременно обрабатывается и (или) хранится информация разных уровней конфиденциальности и не все пользователи имеют право доступа ко всей информации АС. Группа содержит пять классов — 1Д, 1Г, 1В, 1Б и 1А.

В зависимости от степени секретности информации, каждая группа делится на классы (А – самый секретный).

Классы В,Б,А используются для защиты гос. тайны. Если стоит гриф “секретно” – это должны быть классы 3А, 2А и не ниже 1В.

С грифом “совершенно секретно” 3А, 2А и не ниже 1Б. С грифом “особой важности” 3А, 2А, 1А.

1Г – конфиденциальная информация, 1Д – информация общего пользования.

  1. Статическая маршрутизация.

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

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

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