Программное Обеспечение. Основные этапы решения задач на эвм. Жизненный цикл программного средства 


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



ЗНАЕТЕ ЛИ ВЫ?

Программное Обеспечение. Основные этапы решения задач на эвм. Жизненный цикл программного средства



ПРОГРАММИРОВАНИЕ.

Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства

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

Программное обеспечение принято по назначению подразделять на базовое, системное, прикладное и инструментальное.

ПО распределяется на несколько уровней. Каждый вышележащий уровень повышает функциональность системы

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

2) Системное ПО – переходный. Программы обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением (драйверы). Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.

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

4) Прикладное ПО – комплекс прикладных программ, с помощью которых на рабочем месте обеспечивается выполнение конкретных задач.

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

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

1) Постановка задачи:

§ сбор информации о задаче;

§ формулировка условия задачи;

§ определение конечных целей решения задачи;

§ определение формы выдачи результатов;

§ описание данных (их типов, диапазонов величин, структуры и т. п.).

2) Анализ и исследование задачи, модели:

§ анализ существующих аналогов;

§ анализ технических и программных средств;

§ разработка математической модели;

§ разработка структур данных.

3) Разработка алгоритма:

§ выбор метода проектирования алгоритма;

§ выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

§ выбор тестов и метода тестирования;

§ проектирование алгоритма.

4) Программирование:

§ выбор языка программирования;

§ уточнение способов организации данных;

§ запись алгоритма на выбранном языке

§ программирования.

5) Тестирование и отладка:

§ синтаксическая отладка;

§ отладка семантики и логической структуры;

§ тестовые расчеты и анализ результатов тестирования;

§ совершенствование программы.

6) Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7) Сопровождение программы:

§ доработка программы для решения конкретных задач;

§ составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО

1) каскадная модель (70-85 г.г.);

2) спиральная модель (86-90 г.г.).

Каскадная модель.

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

Преимущества:

§ Полная и согласованная документация на каждом этапе;

§ Легко определить сроки и затраты на проект.

Недостатки:

§ Увеличение объема работ, связанных с возвратом на предыдущие этапы;

§ Заказчик не может внести изменения в техническое задание на проект, пока тот не будет полностью завершен.

 

Спиральная модель.

Цель – быстрее показать пользователю работоспособный продукт.

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

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

На каждой итерации оцениваются:

§ риск превышения сроков и стоимости проекта;

§ необходимость выполнения ещё одной итерации;

§ степень полноты и точности понимания требований к системе;

§ целесообразность прекращения проекта.


ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ.

CISC и RISC процессоры

RISC (Restricted (reduced) instructionsetcomputerкомпьютер с упрощённым набором команд) — архитектура процессора, в которой быстродействие увеличивается за счёт упрощения команд, чтобы их декодирование было проще, а время выполнения — короче. Это также облегчает повышение тактовой частоты и делает более эффективной распараллеливание команд между несколькими исполнительными блоками.

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

Цель архитектуры RISC - сделать команды настолько простыми, чтобы они легко конвейеризировались и тратили не более одного такта на каждом шаге конвейера на высоких частотах.

Характерные особенности RISC-процессоров:

§ Фиксированная длина машинных команд (например, 32 бита) и простой формат команды;

§ Специализированные команды для операций с памятью – чтения или записи. Обращение к памяти идёт только через команды load и store, а все прочие команды ограничены внутренними регистрами (т. н. архитектура load-and-store). Это упростило архитектуру процессоров: позволило командам иметь фиксированную длину, упростило конвейеры и изолировало логику, имеющую дело с задержками при доступе к памяти, только в двух командах;

§ Большое количество регистров общего назначения (32 и более);

§ Отсутствие поддержки операций вида «изменить» над укороченными типами данных — байт, 16-битное слово. Процессор работает над операндами, строго имеющими разрядность процессора;

§ Отсутствие микропрограмм (например, обработка отказов страниц) внутри самого процессора. То, что в CISC процессоре исполняется микропрограммами, в RISC процессоре исполняется как обыкновенный машинный код.

CISC (complexinstructionsetcomputing, или complexinstructionsetcomputer – компьютер с полным набором команд) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:

§ нефиксированное значение длины команды;

§ арифметические действия кодируются в одной команде (прочитать из памяти-вычислить-записать в память);

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

Недостатки CISC архитектуры:

§ высокая стоимость аппаратной части;

§ сложности с распараллеливанием вычислений.

Типичными представителями являются процессоры на основе x86-команд (исключая современные IntelPentium 4, Core, AMDAthlon, Phenom, которые являются гибридными).

Наиболее распространённая архитектура современных настольных, серверных и мобильных процессоров построена по архитектуре Intel x86 (или х86-64 в случае 64-разрядных процессоров). Формально все х86-процессоры являлись CISC-процессорами, однако новые процессоры являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров в более простой набор внутренних инструкций RISC. Исполнение команд происходит на конвейере одновременно по несколько штук. В итоге такой подход позволил поднять производительность CPU.

 

ОПЕРАЦИОННЫЕ СИСТЕМЫ.

Классификация ОС.

Операционные системы могут различаться:

§ особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами);

§ типами аппаратных платформ;

§ областями использования;

§ особенностями использованных методов проектирования и др.

Особенности управление ресурсами.

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

1) многозадачные и однозадачные;

2) многопользовательские и однопользовательские;

3) на системы, поддерживающие многонитевую обработку и не поддерживающие;

4) на многопроцессорные и однопроцессорные системы.

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

§ однозадачные (например, MS-DOS, MSX);

§ многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

§ однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

§ многопользовательские (UNIX, Windows NT).

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

Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).

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

Типы аппаратных платформ.

По типу аппаратуры различают операционные системы:

§ персональных компьютеров;

§ мини-компьютеров;

§ мейнфреймов (больших многопроцессорных систем);

§ кластеров (Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой);

§ сетей ЭВМ (распределенных систем).

Особенности областей использования.

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

§ системы пакетной обработки (например, OC EC),

§ системы разделения времени (UNIX, VMS),

§ системы реального времени (QNX, RT/11).

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

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

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

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

Особенности методов построения

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

К таким базовым концепциям относятся:

§ Способы построения ядра системы (монолитное или микроядро);

§ Использование объектно-ориентированного подхода;

§ Наличие нескольких прикладных сред (возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС);

§ Распределенная организация операционной системы.

 


Файловая система.

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

В широком смысле понятие "файловая система" включает:

§ совокупность всех файлов на диске,

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

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

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

Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

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

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

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

Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е - сетевую.

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

Варианты размещения файлов на диске:

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

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

3) Использование связанного списка индексов, который хранится в специальной таблице дисковой памяти (FAT в Windows). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла.

4) Перечисление номеров блоков, занимаемым файлом.

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

 


БАЗЫ ДАННЫХ.

База данных. СУБД.

База данных (БД) – совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отражающая состояние объектов и их взаимосвязей в рассматриваемой предметной области. Логическую структуру данных называют моделью представления данных. К основным моделям представления данных относятся: иерархическая, сетевая, реляционная, объектно-ориентированная.

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

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

Основные функции СУБД:

1) Обеспечение зависимости данных и приложений (Все СУБД предоставляют программистам API для работы с БД без учета физического размещения элементов данных (например, SQL для реляционных БД)).

2) Обеспечение безопасности данных

3) Управление параллельным доступом (разграничение операций чтения и редактирования данных при одновременном доступе к базе)

4) Ведение журнала транзакций (для восстановления данных в случае сбоев и ошибочных операций)

5) Поддержка целостности БД

6) Обеспечение доступа к данным

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

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

1) По модели данных:

§ Иерархические;

§ Сетевые;

§ Реляционные;

§ Объектно-ориентированные;

2) По степени распределенности:

§ Локальные СУБД (все части СУБД располагаются на одном компьютере)

§ Распределенные СУБД (части СУБД могут размещаться на одном и более компьютеров);

3) По способу доступа к БД:

§ Файл-серверные (Microsoft Access, Paradox, Visual FoxPro). Данные, СУБД целиком располагаются на сервере.

§ Клиент-серверные (Oracle, IBMDB2, MSSQLServer, PostgreSQL, MySQL)

§ Встраиваемые (SQLite, Microsoft SQL Server Compact). Как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки.

 


Модели данных.

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

Каждая БД и СУБД строится на основе некоторой явной или неявной модели данных. Все СУБД, построенные на одной и той же модели данных, относят к одному типу.

Наиболее известными являются модели данных:

1) Иерархическая модель

2) Сетевая модель

3) Реляционная модель

4) Объектно-ориентированная модель

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

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

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

К достоинствам иерархической модели относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения основных операций над данными. Иерархическая модель удобна для работы с иерархически упорядоченной информацией.

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

Можно сказать, что иерархической БД является файловая система, состоящая из корневой директории, в которой имеется иерархия поддиректорий и файлов.

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

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

Недостатки сетевой модели: высокая сложность и жёсткость схемы базы данных, построенной на основе, а также слабый контроль целостности вследствие допустимости установления произвольных связей между записями.

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

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

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

Каждый объект – экземпляр класса принадлежит своему классу и имеет одного родителя. Родовые отношения в базе данных образуют связную иерархию объектов.

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

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

 


Реляционная модель данных.

Номер пропуска Фамилия Имя Отчество Дата рождения
  Романова Валентина Петровна 12.01.1980
  Пирогов Василий Иванович 25.03.1975
…… ……      

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

Все операции над реляционной базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира (сущность), а каждая ее строка - конкретный объект. Строки таблицы называются также кортежами. Таблица "Сотрудники отдела" содержит, например, сведения обо всех сотрудниках отдела, каждая ее строка - набор значений атрибутов конкретного сотрудника. Значения конкретного атрибута выбираются из домена – множества всех возможных значений атрибута объекта. Имя столбца должно быть уникальным в таблице. Столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. Любая таблица должна иметь по крайней мере один столбец. В отличие от столбцов строки не имеют имен. Порядок следования строк в таблице не определен, а количество логически не ограничено. Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции - среди них не существует "первой" и "последней".

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

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

 

Нормальные формы.

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

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

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

Основные нормальные формы:

1) Первая нормальная форма.

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

В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение.

Вторая нормальная форма.

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

Пример:

Отношение ПОСТАВКИ (N_ПОСТАВЩИКА, ТОВАР, ЦЕНА).

Поставщик может поставлять различные товары, а один и тот же товар может поставляться разными поставщиками. Тогда ключ отношения – < N_ПОСТАВЩИКА, ТОВАР>. Пусть все поставщики поставляют товар по одной и той же цене. Тогда имеем следующие функциональные зависимости:

< N_ПОСТАВЩИКА, ТОВАР>à ЦЕНА

ТОВАР à ЦЕНА

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

Следующее разложение дает отношения во 2НФ:

ПОСТАВКИ (N_ПОСТАВЩИКА, ТОВАР)

ЦЕНА_ТОВАРА (ТОВАР, ЦЕНА)

Третья нормальная форма.

Отношение находится в 3НФ тогда и только тогда, когда оно находится во 2НФ и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключевых. Транзитивной зависимостью неключевых атрибутов от ключевых называется следующая: {A} → {B} и {B} → {C}, где {A} — потенциальный ключ, {B} и {С} — различные множества неключевых атрибутов. Таким образом, отношение в 3НФ содержит только такие неключевые атрибуты, которые находятся в прямой зависимости от ключевых атрибутов.

Пример:

Отношение (ГРУППА, СЕЦИАЛЬНОСТЬ, ФАКУЛЬТЕТ)

ГРУППАàСПЕЦИАЛЬНОСТЬ

СЕЦИАЛЬНОСТЬàФАКУЛЬТЕТ

После нормализации:

(ГРУППА, СПЕЦИАЛЬНОСТЬ),

(СПЕЦИАЛЬНОСТЬ, ФАКУЛЬТЕТ).

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

 


КОМПЬЮТЕРНАЯ ГРАФИКА.

Графические библиотеки

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

1) системные функции,

2) векторные функции,

3) растровые функции,

4) геометрические и общематематические функции.

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

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

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

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

§ линейные (аффинные) преобразования и построение проекций;

§ векторная и матричная арифметика;

§ функции по манипулированию с цветами, поддержка палитр;

§ работа с геометрическими примитивами (точка, плоскость, треугольник);

§ вычисление параметров освещения;

§ различные виды интерполяции.

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

Примеры графических библиотек: OpenGL, DirectX, GDI, GDI+ и др.


ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ.

Графические модели ИТ.

Процессы ИТ могут быть представлены графически на основе ряда схем. Схемы используются на различных уровнях детализации процессов, по ГОСТ 19.701 различают:

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



Поделиться:


Последнее изменение этой страницы: 2017-02-22; просмотров: 811; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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