Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Magistr.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.85 Mб
Скачать

4. Третья нормальная форма (3nf)

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

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

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

Проиллюстрируем процесс приведения ненормализованного отношения к третьей нормальной форме. Для этого рассмотрим пример: отношение, находящееся не в третьей нормальной форме.

Итак, вариант 1 схемы отношения «Сотрудники»:

Сотрудники (№ табельный, Фамилия, Имя, Отчество, Код должности, Оклад);

Primary key (№ табельный);

Кроме того, над данным отношением «Сотрудники» задана следующая система функциональных зависимостей:

{Код должности} > {Оклад};

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

Именно поэтому это отношение «Сотрудники» и не находится в третьей нормальной форме, ведь получается, что неключевой атрибут «Оклад» полностью функционально зависит от атрибута «Код должности», хотя этот атрибут и не является ключевым.

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

Проведя декомпозицию отношения «Сотрудники», получим следующую систему новых самостоятельных отношений:

Итак, вариант 2 схемы отношения «Сотрудники»:

Должности (Код должности, Оклад);

Primary key (Код должности);

Сотрудники (№ табельный, Фамилия, Имя, Отчество, Код должности);

Primary key (Код должности);

Foreign key (Код должности) references Должности (Код должности);

Теперь, как мы видим, в отношении «Должности» неключевой атрибут «Оклад» полностью функционально зависит от простого первичного ключа «Код должности» и только от этого ключа.

Заметим, что в отношении «Сотрудники» все четыре неключевых атрибута «Фамилия», «Имя», «Отчество» и «Код должности» полностью функционально зависят от простого первичного ключа «№ табельный». В этом отношении атрибут «Код должности» – внешний ключ, ссылающийся на первичный ключ отношения «Должности».

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

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

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

35. Понятие СУБД. Функциональные возможности СУБД

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

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

Существуют универсальные системы управления базами данных, используемые для различных приложений. При настройке универсальных СУБД для конкретных приложений они должны обладать соответствующими средствами. Процесс настройки СУБД на конкретную область применения называется генерацией системы. К универсальным СУБД относятся, например системы Microsoft Access, Microsoft Visual FoxPro, Borland dBase, Borland Paradox, Oracle.

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

К основным функциям СУБД относятся:

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

  • - Поддержание целостности данных и управление транзакциями.

  • - Ведение системного журнала изменений в базе данных, что обеспечивает восстановление базы данных после технического или программного сбоя.

  • - Реализация поддержки языка описания данных и языка запросов к данным.

  • - Обеспечение безопасности данных.

  • - Обеспечение параллельного доступа к данным нескольких пользователей

36. Компоненты СУБД

Компоненты:

1)    ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

2)    процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,

3)    подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД

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

37. Классификация СУБД

38. Транзакция. Свойства транзакции

Транза́кция (англ. transaction) — группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными.

Пример: необходимо перевести с банковского счёта номер 5 на счёт номер 7 сумму в 10 денежных единиц. Этого можно достичь, к примеру, приведённой последовательностью действий:

  1. Прочесть баланс на счету номер 5.

  2. Уменьшить баланс на 10 денежных единиц.

  3. Сохранить новый баланс счёта номер 5.

  4. Прочесть баланс на счету номер 7.

  5. Увеличить баланс на 10 денежных единиц.

  6. Сохранить новый баланс счёта номер 7.

Транзакции имеют следующие свойства, которые известны под аббревиатурой ACID:

♦ атомарность (Atomicity);

♦ согласованность (Consistency);

♦ изолированность (Isolation);

♦ устойчивость (Durability).

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

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

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

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

39. Типы команд SQL Типы данных SQL. Функции SQL (агрегатные, математические, даты и времени)

Типы команд SQL

Команды языка SQL обычно подразделяются на несколько групп. Основные типы команд следующие:

1. DLL-язык определения данных. Команды данной группы используются для создания и изменения структуры объектов базы данных (например, для создания и удаления таблиц);

2. DML- язык манипулирования данными. Команды DML используются для манипулирования информацией, содержащейся в объектах базы данных;

3. DCL- язык управления данными. Соответствующие команды предназначены для управления доступом к информации, хранящейся в базе данных;

4. DQL-язык. Это наиболее часто используемые команды, предназначенные для формирования запросов к базе данных (запрос — это обращение к базе данных для получения соответствующей информации);

5. команды администрирования базы данных предназначены для осуществления

контроля за выполняемыми действиями и анализа производимых операций;

6. команды управления транзакциями.

Типы функций

function

Описание

Функции, возвращающие наборы строк.

Возвращают объект, который можно использовать так же, как табличные ссылки в SQL-инструкции.

Агрегатные функции

Обрабатывают коллекцию значений и возвращают одно результирующее значение.

Ранжирующие функции

Возвращают ранжирующее значение для каждой строки в секции.

Скалярная функция (описывается далее)

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

41. Реализация операций реляционной алгебры на SQL на примере (проекция, вычитание, естественное соединение)

42. Реализация операций реляционной алгебры на SQL на примере (выборка, пересечение, декартово произведение, объединение)

Выборка

SELECT * FROM Персоны WHERE Возраст >= 34

Проекция

SELECT DISTINCT Возраст, Вес FROM Персоны

Объединение

SELECT Имя, Возраст, Вес FROM Персоны

UNION

SELECT Имя, Возраст, Вес FROM Персонажи

Пересечение

Пример

Пусть даны следующие соотношения:

Персоны

Имя

Возраст

Вес

Harry

34

80

Sally

28

64

George

29

70

Helena

54

54

Peter

34

80

Персонажи

Имя

Возраст

Вес

Daffy

24

19

George

29

70

Donald

25

23

Scrooge

81

27

Sally

28

64

Результат пересечения:

Имя

Возраст

Вес

George

29

70

Sally

28

64

Эквивалентный SQL-запрос:

SELECT Имя, Возраст, Вес FROM Персоны

INTERSECT

SELECT Имя, Возраст, Вес FROM Персонажи

Разность

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

SELECT Имя, Возраст, Вес FROM Персоны

EXCEPT

SELECT Имя, Возраст, Вес FROM Персонажи

Произведение

При выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.

Пример

Пусть даны следующие соотношения:

Мульфильмы

Код_мульта

Название_мульта

0

The Simpsons

1

Family Guy

2

Duck Tales

Каналы

Код_канала

Название_канала

0

СТС

1

2х2

Результат произведения:

Код_мульта

Название_мульта

Код_канала

Название_канала

0

The Simpsons

0

СТС

0

The Simpsons

1

2х2

1

Family Guy

0

СТС

1

Family Guy

1

2х2

2

Duck Tales

0

СТС

2

Duck Tales

1

2х2

Эквивалентный SQL-запрос:

SELECT * FROM Мультфильмы, Каналы

Соединение

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.[4]

Пример

Мульфильмы

Код_мульта

Название_мульта

Название_канала

0

The Simpsons

2х2

1

Family Guy

2х2

2

Duck Tales

RenTV

Каналы

Код_канала

Частота

RenTV

3,1415

2х2

783,25

Соединим их с выборкой σНазвание_канала = Код_канала(Произведение) Первый этап, произведение:

Код_мульта

Название_мульта

Название_канала

Код_канала

Частота

0

The Simpsons

2х2

RenTV

3,1415

0

The Simpsons

2х2

2х2

783,25

1

Family Guy

2х2

RenTV

3,1415

1

Family Guy

2х2

2х2

783,25

2

Duck Tales

RenTV

RenTV

3,1415

2

Duck Tales

RenTV

2х2

783,25

Второй этап, выборка σНазвание_канала = Код_канала(Произведение):

Код_мульта

Название_мульта

Название_канала

Код_канала

Частота

0

The Simpsons

2х2

2х2

783,25

1

Family Guy

2х2

2х2

783,25

2

Duck Tales

RenTV

RenTV

3,1415

Эквивалентный SQL-запрос:

SELECT * FROM Мультфильмы, Каналы WHERE Название_канала = Код_канала

43. Триггеры в СУБД

Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).

44. Процедуры в СУБД

45. Методы проектирования алгоритмов.

Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование.

 

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

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

46. Тестирование и верификация алгоритмов. Трассировка.

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

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

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

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

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

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

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

Процесс поиска и исправления ошибок – отладка.

47. Данные, тип данных, стандартные типы.

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

48. Базовые алгоритмические структуры. Примеры на языке программирования.

1. Базовая структура  "следование". Образуется последовательностью действий, следующих одно за другим:

Школьный алгоритмический язык

Язык блок-схем

действие 1 действие 2 . . . . . . . . . действие n

2. Базовая структура  "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:

  • если—то;

  • если—то—иначе;

  • выбор;

  • выбор—иначе.

3. Базовая структура  "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла

49. Понятие алгоритма, его свойства, запись алгоритма, примеры записи.

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

Основными свойствами алгоритма являются:

  1. детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;

  2. результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;

  3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;

  4. дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

Способ записи – блок схема.

50. Алгебра, высказывания, предикаты, булева функция, аксиомы алгебры предикатов

Высказывание – повествовательное утверждение, про которое можно однозначно сказать, что оно истинно или оно ложно. (Логические переменные)

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

Выражения: х > 5, x > y – предикаты.

7>5 – высказывание.

Логической (булевой) функцией f(х) называется некоторая функциональная зависимость, в которой аргумент х – логическая переменная с заданным множеством изменений аргумента, а значения функции f(x) берутся из двухэлементного множества R(f) = {1,0}.

  1. Аксиома двойного отрицания:

  1. Аксиомы переместительности операндов (относительно операций дизъюнкции и конъюнкции ):

  1. Аксиомы переместительности операций дизъюнкции и конъюнкции (относительно операндов):

  1. Аксиомы одинаковых операндов:

  1. Аксиомы поглощения (множителем — множителя-суммы или слагаемым — слагаемого-произведения):

  1. Аксиомы распределения операции ( дизъюнкции относительно конъюнкции и наоборот):

  1. Аксиомы де Моргана (перенесения бинарной операции на операнды):

  1. Аксиомы нейтральности (взаимноинверсных множителей или слагаемых):

  1. Аксиома существования единицы ( истина, true, 1) и нуля ( ложь, false, 0), причем,

51. Таблица истинности, логические операции, упрощение логического выражения.

52. Логический вентиль, инвертор, дизъюнктор, конъюнктор, принципы работы.

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

Алгебра логики предусматривает множество логических операций. Однако три из них заслуживают особого внимания, т.к. с их помощью можно описать все остальные, и, следовательно, использовать меньше разнообразных устройств при конструировании схем. Такими операциями являются конъюнкция (И), дизъюнкция (ИЛИ) и отрицание (НЕ). Часто конъюнкцию обозначают &, дизъюнкцию - ||, а отрицание - чертой над переменной, обозначающей высказывание.

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

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

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

53. Логические схемы, сумматор, «черный ящик».

Арифметико-логическое устройство процессора (АЛУ) обязательно содержит в своем составе такие элементы как сумматоры. Эти схемы позволяют складывать двоичные числа.

Как происходит сложение? Допустим, требуется сложить двоичные числа 1001 и 0011. Сначала складываем младшие разряды (последние цифры): 1+1=10. Т.е. в младшем разряде будет 0, а единица – это перенос в старший разряд. Далее: 0 + 1 + 1(от переноса) = 10, т.е. в данном разряде снова запишется 0, а единица уйдет в старший разряд. На третьем шаге: 0 + 0 + 1(от переноса) = 1. В итоге сумма равна 1100.

54. Инфологическая задача.

55. Информационная безопасность, основные понятия, компьютерные вирусы и антивирусы

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

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

56. Криптографическая система.

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

КС = АШ + АДш + К + П

57. Основные понятия кодирования и шифрования.

Код – правило соответствия набора знаков одного множества Х знакам другого множества Y. Если каждому символу Х при кодировании соответствует отдельный знак Y, то это кодирование. Если для каждого символа из Y однозначно отыщется понекоторому правилу его прообраз в X, то это правило называется декодированием.

Кодирование – процесс преобразования букв (слов) алфавита Х в буквы (слова) алфавита Y.

При представлении сообщений в ЭВМ все символы кодируются байтами.

Пример. Если каждый цвет кодировать двумя битами, то можно закодировать не более 22 = 4 цветов, тремя – 23 = 8 цветов, восемью битами (байтом) – 256 цветов. Для кодирования всех символов на клавиатуре компьютера достаточно байтов.

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

Зашифрованное сообщение может быть построено над другим алфавитом. Назовем его закрытым сообщением. Процесс преобразования открытого сообщения в закрытое сообщение и есть шифрование .

Если А – открытое сообщение, В – закрытое сообщение ( шифр ) , f – правило шифрования, то f(A) = B.

Правила шифрования должны быть выбраны так, чтобы зашифрованное сообщение можно было расшифровать. Однотипные правила (например, все шифры типа шифра Цезаря, по которому каждый символ алфавита кодируется отстоящим от него на k позиций символом) объединяются в классы, и внутри класса определяется некоторый параметр (числовой, символьный табличный и т.д.), позволяющий перебирать (варьировать) все правила. Такой параметр называется шифровальным ключом. Он, как правило, секретный и сообщается лишь тому, кто должен прочесть зашифрованное сообщение (обладателю ключа).

При кодировании нет такого секретного ключа, так как кодирование ставит целью лишь более сжатое, компактное представление сообщения.

Если k – ключ, то можно записать f(k(A)) = B. Для каждого ключа k, преобразование f(k) должно быть обратимым, то есть f(k(B)) = A. Совокупность преобразования f(k) и соответствия множества k называется шифром.

Имеются две большие группы шифровшифры перестановки и шифры замены.

Шифр перестановки изменяет только порядок следования символов исходного сообщения. Это такие шифры, преобразования которых приводят к изменению только следования символов открытого исходного сообщения.

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

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

Пример. Один из лучших примеров алгоритма шифрования – принятый в 1977 году Национальным бюро стандартов США алгоритмстандарта шифрования данных DES (Data Encrypted Standard). Исследования алгоритма специалистами показали, что пока нет уязвимых мест, на основе которых можно было бы предложить метод криптоанализа, существенно лучший, чем полный перебор ключей. В июле 1991 года введен в действие аналогичный отечественный криптоалгоритм (стандарта ГОСТ 28147-89 ), который превосходит DES по надежности.

58. Технология обработки графической информации. Форматы графических файлов.

Первая версия формата GIF (Graphics Interchange Format, «Формат для обмена графической информацией») была разработана в 1987 г. специалистами компьютерной сети CompuServe. Этот формат сочетает в себе редкий набор достоинств, неоценимых при той роли, которую он играет в WWW. GIF может иметь любое количество цветов от двух до 256-ти, и если в изображении используется, скажем, 64 цвета (26), то для хранения каждого пикселя будет использовано ровно шесть бит и ни битом больше. ля этого файл с изображением тасуется при записи так, чтобы сначала шли все строки пикселов с номерами, кратными восьми (первый проход), затем четырем (второй проход), потом двум и, наконец, последний проход ― все оставшиеся строки с нечетными номерами. Во время приема и декодирования такого файла каждый следующий проход заполняет пропуски в предыдущих, постепенно приближая изображение к исходному состоянию. Поэтому такие изображения были названы чересстрочными (interlaced). Другой полезной возможностью формата является использование прозрачности. Формат BMP (от слова bitmap) был создан компанией Microsoft и широко используется в операционных системах семейства Windows для растровой графики. Вам необходимо записать изображение в этом формате, если вы хотите использовать его в качестве фона вашего рабочего стола. Хотя в этом формате может применяться компрессия, большинство программ ее не используют. В файлах BMP информация о цвете каждого пиксела кодируется 1, 4, 8, 16 или 24 бит (бит/пиксел). Строго говоря, JPEG называется не формат, а алгоритм сжатия, основанный не на поиске одинаковых элементов, как в RLE и LZW, а на разнице между пикселами. JPEG ищет плавные цветовые переходы в квадратах 9´9 пикселов. Вместо действительных значений JPEG хранит скорость изменения от пиксела к пикселу. Лишнюю с его точки зрения цветовую информацию он отбрасывает, усредняя некоторые значения. Чем выше уровень компрессии, тем больше данных отбрасывается и тем ниже качество. Используя JPEG, можно получить файл в 10―500 раз меньше, чем ВМР. Формат аппаратно независим, полностью поддерживается на РС и Macintosh, однако он относительно нов и не понимается старыми программами (до 1995 г.). помощью JPEG лучше сжимаются растровые картинки фотографического качества, чем логотипы или схемы ― в них больше полутоновых переходов, среди же однотонных заливок появляются нежелательные помехи. Формат PDF (Portable Document Format) предложен фирмой Adobe как независимый от платформы формат, в котором могут быть сохранены и иллюстрации (векторные и растровые), и текст, причем со множеством шрифтов и гипертекстовых ссылок. Для достижения продекларированной в названии переносимости размер PDF-файла должен быть малым. Для этого используется компрессия (для каждого вида объектов применяется свой способ). Например, растровые изображения записываются в формате JPEG. Для работы с этим форматом компания Adobe выпустила пакет Acrobat. Бесплатная утилита Acrobat Reader позволяет читать документы и распечатывать их на принтере, но не дает возможности создавать или изменять их [3; c. 46]. 2. Графические редакторы 2.1. Растровые и векторные редакторы Растровый графический редактор — «специализированная программа, предназначенная для создания и обработки изображений» [9; с. 83]. Подобные программные продукты нашли широкое применение в работе художников-иллюстраторов, при подготовке изображений к печати типографским способом или на фотобумаге, публикации в Интернете. Растровые графические редакторы позволяют пользователю рисовать и редактировать изображения на экране компьютера. Также сохранять их в различных растровых форматах, таких как, например, JPEG и TIFF, позволяющих сохранять растровую графику с незначительным снижением качества за счёт использования алгоритмов сжатия с потерями. PNG и GIF, поддерживающими хорошее сжатие без потерь, и BMP, также поддерживающем сжатие (RLE), но в общем случае представляющем собой несжатое «попиксельно» описание изображения. В противоположность векторным редакторам растровые редакторы используют для представления изображений матрицу точек (bitmap). Однако большинство современных растровых редакторов содержат векторные инструменты редактирования в качестве вспомогательных.

59. Технология обработки текстовой информации. Форматы текстовых файлов.

60. Операционная система (общие понятия, управление файловой системой, командный процессор, драйвера устройств, сервисные программы, графический интерфейс пользователя).

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

Современные операционные системы имеют сложную структуру, каждый элемент которой выполняет определенные функции по управлению компьютером.

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

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

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

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

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

Технология "Plug and Play" (подключи и играй) позволяет автоматизировать подключение к компьютеру новых устройств и обеспечивает их конфигурирование. В процессе установки Windows определяет тип и конкретную модель установленного устройства и подключает необходимый для его функционирования драйвер. При включении компьютера производится загрузка драйверов в оперативную память.

Пользователь имеет возможность вручную установить или переустановить драйверы.

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

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

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

61. Загрузка операционной системы. Файловая система.

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

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

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

Самотестирование компьютера. В состав компьютера входит энергонезависимое постоянное запоминающее устройство (ПЗУ), содержащее программы тестирования компьютера и первого этапа загрузки операционной системы - это BIOS (Basic Input/Output System - базовая система ввода/вывода).

После включения питания компьютера или нажатия кнопки Reset на системном блоке компьютера или одновременного нажатия комбинации клавиш {Ctrl+Alt+Del} на клавиатуре процессор начинает выполнение программы самотестирования компьютера POST (Power-ON Self Test). Производится тестирование работоспособности процессора, памяти и других аппаратных средств компьютера.

В процессе тестирования сначала могут выдаваться диагностические сообщения в виде различных последовательностей коротких и длинных звуковых сигналов (например, 1 длинный и 3 коротких - не подключен монитор, 5 коротких - ошибка процессора и так далее). После успешной инициализации видеокарты краткие диагностические сообщения выводятся на экран монитора.

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

Загрузка операционной системы. После проведения самотестирования специальная программа, содержащаяся в BIOS, начинает поиск загрузчика операционной системы. Происходит поочередное обращение к имеющимся в компьютере дискам (гибким, жестким, CD-ROM) и поиск на определенном месте (в первом, так называемом загрузочном секторе диска) наличия специальной программы Master Boot (программы-загрузчика операционной системы).

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

Рис. 4.20. Процесс загрузки операционной системы

Если системные диски в компьютере отсутствуют, на экране монитора появляется сообщение "Non system disk", и компьютер "зависает", то есть загрузка операционной системы прекращается и компьютер остается неработоспособным.

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

C:\WINDOWS>

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

62. Информация и её свойства. Количество информации.

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

Код — набор символов (условных обозначений) для представления информации.

Кодирование — процесс представления информации в виде кода.

Знаменитый немецкий ученый Готфрид Вильгельм Лейбниц предложил еще в XVII веке уникальную и простую систему представления чисел. «Вычисление с помощью двоек... является для науки основным и порождает новые открытия... при сведении чисел к простейшим началам, каковы 0 и 1, везде появляется чудесный порядок».

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

Эти два символа 0 и 1 принято называть битами (от англ. binary digit – двоичный знак).

Бит – наименьшая единица измерения информации и обозначается двоичным числом.

Более крупной единицей изменения объема информации принято считать 1 байт, который состоит из 8 бит. 1 байт = 8 битов.

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

63. Десятичная, восмиричная, двоичная, шестнадцатиричная системы счисления, основание, алфавит, развернутая форма записи числа.

08 = 0002

18 = 0012

28 = 0102

38 = 0112

48 = 1002

58 = 1012

68 = 1102

78 = 1112

Для перевода восьмеричного числа в двоичное необходимо заменить каждую цифру восьмеричного числа на триплет двоичных цифр. Например: 25418 = [ 28 | 58 | 48 | 18 ] = [ 0102 | 1012 | 1002 | 0012 ] = 0101011000012.

  1. Полиморфизм и его использование в программах (на примере языка С++).

Полиморфизм (polymorphism) (от греческого polymorphos) - это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий.

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

class A {

public:

virtual void f() = 0;

}

class B: A{

public:

void f() {};

}

class C: A{

public:

void f() {};

}

A * b = new B();

A * c = new C();

b->f(); // здесь будет вызываться метод класса B

c->f(); // здесь будет вызываться метод класса C

  1. Инкапсуляция и ее использование в программах (на примере языка С++).

Инкапсуляция (encapsulation) - это механизм, который объединяет данные и код, манипулирующий зтими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В объектно-ориентированном программировании код и данные могут быть объединены вместе; в этом случае говорят, что создаётся так называемый "чёрный ящик". Когда коды и данные объединяются таким способом, создаётся объект (object). Другими словами, объект - это то, что поддерживает инкапсуляцию.

class A

{

public:

int a, b; //данные открытого интерфейса

int ReturnSomething(); //метод открытого интерфейса

private:

int Aa, Ab; //скрытые данные

void Do_Something(); //скрытый метод

};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]