Понятия о базах данных и системах управления ими. Классификация баз данных. Основные средства обработки данных 


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



ЗНАЕТЕ ЛИ ВЫ?

Понятия о базах данных и системах управления ими. Классификация баз данных. Основные средства обработки данных



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

Цель любой информационной системы — обработка информации конкретной предметной области.

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

База данных — это информационные структуры, содержащие взаимосвязанные данные о реальных объектах.

Особенностями такой совокупности данных являются:

· достаточно большие объемы информации;

· максимально возможная компактность хранения данных;

· возможность извлечения из базы данных разнообразной информации в определенной предметной области;

· удобные для пользователя вид и форма извлекаемой информации;

· высокая скорость доступа к данным;

· надежность хранения информации и возможность Предоставления санкционированного доступа к данным Шля отдельных пользователей;

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

Система управления базами данных (СУБД) — это Программное обеспечение для создания и редактирования баз данных, просмотра и поиска информации в них. I По технологии обработки базы данных делятся на централизованные и распределенные. Централизованная база данных хранится в памяти одной машины.

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

Централизованные базы данных по способу доступа делятся на:

· базы данных с локальным доступом (данные и процедуры их обработки хранятся на одной машине);

· базы данных с удаленным (сетевым) доступом. СУБД с удаленным доступом могут быть построены с использованием архитектур файл-сервер и клиент-сервер.

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

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

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

Состав процессов ЖЦ регламентируется международным стандартом ISO/IEC 12207:1995 «Information Technology - Software Life Cycle Process». ISO - International Organization for Standartization -Международная организация по стандартизации. IEC - International Electrotechnical Comission - Международная комиссия по электротехнике.

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

1. основные процессы ЖЦ (приобретение, поставка, разработка, эксплуатация, сопровождение);

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


3. организационные процессы (управление, создание инфраструктуры, усовершенствование, обучение).

Рассмотрим подробнее один из основных процессов – процесс разработки. По стандарту ISO/IEC процесс разработки включает следующие действия:

· подготовительную работу – выбор модели ЖЦ, стандартов, методов и средств разработки, а также составление плана работ;

· анализ требований к системе – определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, требований к внешним интерфейсам и т.д.;

· проектирование архитектуры системы – определение состава необходимого оборудования, ПО и операций, выполняемых обслуживающим персоналом;

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

· проектирование архитектуры ПО – определение структуры ПО, документирование интерфейсов его компонентов, разработку предварительной версии пользовательской документации, а также требований к тестам и плана интеграции;

· детальное проектирование ПО – подробное описание компонентов ПО и интерфейсов между ними, обновление пользовательской документации, разработку и документирование требований к тестам и др.;

· кодирование и тестирование ПО – разработку и документирование каждого компонента, а также совокупности тестовых процедур и данных для их тестирования, тестирование компонентов и т.д.;

· интеграцию ПО – сборку программных компонентов в соответствии с планом интеграции, тестирование ПО на соответствие квалификационным требованиям;

· квалификационное тестирование ПО – тестирование ПО в присутствии заказчика для демонстрации его соответствия требованиям и готовности к эксплуатации; проверка готовности и полноты всей документации;

· интеграцию системы – сборку всех компонентов системы, включая ПО и оборудование;

· установку ПО – установку ПО на оборудовании заказчика и проверку его работоспособности;

· приемку ПО – оценку результатов квалификационного тестирования ПО и системы в целом и документирование результатов оценки совместно с заказчиком, окончательную передачу ПО заказчику.

Указанные действия можно сгруппировать, условно выделив следующие основные этапы разработки ПО (стадии разработки по ГОСТ 19.102-77 «Стадии разработки»):

· постановка задачи (стадия «Техническое задание»);

· анализ требований и разработка спецификаций (стадия «Эскизный проект»);

· проектирование (стадия «Технический проект»);

· реализация (стадия «Рабочий проект»);

Традиционно разработка также включала этап сопровождения (началу этого этапа соответствует стадия «Внедрение» по ГОСТ). Однако по международному стандарту этот процесс теперь рассматривается отдельно.

Под технологией программирования понимается [4] совокупность знаний о способах и средствах достижения целей в области программного обеспечения ЭВМ, в том числе и таких, которые ранее никем не достигались.

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

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

1. Модифицируемость. Необходимость модификации ПО обычно возникает по двум причинам: чтобы отразить в системе изменение требований или чтобы исправить ошибки, внесенные ранее в процессе разработки.

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

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

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

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

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

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

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

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

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

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

Принципы технологии разработки программного обеспечения не должны применяться случайно - необходимо выполнять структуризацию системы определенным образом и, что самое важное, поскольку происходит деление системы на модули, применять согласованные критерии декомпозиции. Можно выделить три основных подхода к разработке программного обеспечения, обеспечивающие такие критерии: нисходящее структурное проектирование [15]; проектирование, структурированное по данным[27], и объектно-ориентированное проектирование [5].

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

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

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

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

Такой подход получил название объектно-ориентированного [5]. Здесь учитывается важность трактовки объектов программного обеспечения как активных элементов, причем каждый объект наделен своим собственным набором допустимых операций. Легко убедиться, что объектно-ориентированная парадигма поддерживает основные принципы технологии разработки программного обеспечения.

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

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

Проектирование предполагает составление формальных и/или формализованных спецификаций.

Реализация - преобразование этих спецификаций в программный код (автоматическое и/или автоматизированное).

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

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

24.
Aрхитектура «клиент-сервер» и «файл-сервер». Сравнительные характекристики
. Увеличение сложности задач, появление персональных компьютеров и локальных вычислительных сетей явились предпосылками появления новой архитектуры файл-сервер. Эта архитектура баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы базы данных [[6]]. В соответствии с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных.

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

Программная архитектура «файл-сервер»

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


Достоинства:

· низкая стоимость разработки;

· высокая скорость разработки;

· невысокая стоимость обновления и изменения ПО.

Недостатки:

· рост числа клиентов резко увеличивает объём трафика и нагрузку на сети передачи данных;

· высокие затраты на модернизацию и сопровождение сервисов бизнес-логики на каждой клиентской рабочей станции;

· низкая надёжность системы.



Поделиться:


Последнее изменение этой страницы: 2016-04-20; просмотров: 448; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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