Какие неудобства возникают при работе с системой построенной на основе архитектуры файл сервер

Обновлено: 07.07.2024

Презентацию к данной лекции Вы можете скачать здесь.

5.1. Архитектура информационных систем

5.1.1. Общие сведения

Современные программные приложения и информационные системы достигли такого уровня развития, что термин " архитектура " в применении к ним уже давно не удивляет. Грамотно построить информационную систему, эффективно и надежно функционирующую не проще, чем сконструировать и возвести современное многофункциональное здание [1].

Когда речь заходит об "архитектуре информационной системы", обычно не возникает недостатка в определениях. Есть даже Web-сайты, которые собирают такие определения [2].

Рассмотрим определение "архитектуры информационной системы", которое дают различные источники:

  • Архитектура – это организационная структура системы [3].
  • Архитектура информационной системы – концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы [4].
  • Архитектура – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы [5].
  • Архитектура – это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы, а также стиль архитектуры , который направляет эту организацию – элементы и их интерфейсы, взаимодействия и компоновку [6].
  • Архитектура программы или компьютерной системы – это структура или структуры системы, которые включают элементы программы, видимые извне свойства этих элементов и связи между ними [7].
  • Архитектура – это структура организации и связанное с ней поведение системы [8]. Архитектуру можно рекурсивно разобрать на части, взаимодействующие посредством интерфейсов, связи, которые соединяют части, и условия сборки частей. Части, которые взаимодействуют через интерфейсы, включают классы, компоненты и подсистемы.
  • Архитектура программного обеспечения системы или набора систем состоит из всех важных проектных решений по поводу структур программы и взаимодействий между этими структурами, которые составляют системы [9]. Проектные решения обеспечивают желаемый набор свойств, которые должна поддерживать система, чтобы быть успешной. Проектные решения предоставляют концептуальную основу для разработки системы, ее поддержки и обслуживания.

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

Под архитектурой программных систем будем понимать совокупность решений относительно [1, 10]:

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

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

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

Для того чтобы построить правильную и надежную архитектуру и грамотно спроектировать интеграцию программных систем необходимо четко следовать современным стандартам в этих областях. Без этого велика вероятность создать архитектуру , которая неспособна развиваться и удовлетворять растущим потребностям пользователей ИТ. В качестве законодателей стандартов в этой области выступают такие международные организации как SEI (Software Engineering Institute), WWW (консорциум World Wide Web), OMG (Object Management Group), организация разработчиков Java – JCP (Java Community Process), IEEE (Institute of Electrical and Electronics Engineers) и другие.

Рассмотрим классификацию программных систем по их архитектуре :

  • Централизованная архитектура ;
  • Архитектура "файл-сервер" ;
  • Двухзвенная архитектура "клиент-сервер" ;
  • Многозвенная архитектура "клиент-сервер" ;
  • Архитектура распределенных систем ;
  • Архитектура Веб-приложений ;
  • Сервис-ориентированная архитектура .

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

Далее подробно рассмотрим особенности каждой архитектуры .

5.1.2. Централизованная архитектура

Централизованная архитектура вычислительных систем была распространена в 70-х и 80-х годах и реализовывалась на базе мейнфреймов (например, IBM-360/370 или их отечественных аналогов серии ЕС ЭВМ), либо на базе мини-ЭВМ (например, PDP-11 или их отечественного аналога СМ-4) [11]. Характерная особенность такой архитектуры – полная "неинтеллектуальность" терминалов . Их работой управляет хост-ЭВМ.

Достоинства такой архитектуры [11, 12]:

  • пользователи совместно используют дорогие ресурсы ЭВМ и дорогие периферийные устройства;
  • централизация ресурсов и оборудования облегчает обслуживание и эксплуатацию вычислительной системы;
  • отсутствует необходимость администрирования рабочих мест пользователей;

Главным недостатком для пользователя является то, что он полностью зависит от администратора хост-ЭВМ. Пользователь не может настроить рабочую среду под свои потребности – все используемое программное обеспечение является коллективным.

Использование такой архитектуры является оправданным, если хост-ЭВМ очень дорогая, например, супер-ЭВМ .

Классическое представление централизованной архитектуры показано на рис. 5.1.


Рис. 5.1. Классическое представление централизованной архитектуры

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

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

5.1.3. Архитектура "файл-сервер"

Файл-серверные приложения – приложения, схожие по своей структуре с локальными приложениями и использующие сетевой ресурс для хранения программы и данных [13].

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

Классическое представление информационной системы в архитектуре "файл-сервер" представлено на рис. 5.2.


Рис. 5.2. Классическое представление архитектуры "файл-сервер"

Организация информационных систем на основе использования выделенных файл-серверов все еще является распространенной в связи с наличием большого количества персональных компьютеров разного уровня развитости и сравнительной дешевизны связывания PC в локальные сети [14].

Конечно, основным достоинством данной архитектуры является простота организации. Проектировщики и разработчики информационной системы находятся в привычных и комфортных условиях IBM PC в среде MS-DOS, Windows или какого-либо облегченного варианта Windows Server. Имеются удобные и развитые средства разработки графического пользовательского интерфейса, простые в использовании средства разработки систем баз данных и/или СУБД.

Достоинства такой архитектуры [12, 13, 14]:

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

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

5.1.4. Архитектура "клиент-сервер"

Клиент-сервер ( Client-server ) – вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемых серверами, и заказчиками услуг, называемых клиентами [15]. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.

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

Схематически такую архитектуру можно представить, как показано на рис. 5.3 [16].


Рис. 5.3. Классическое представление архитектуры "клиент-сервер"

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

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

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

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

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

  • Сервер производит компиляцию полученного оператора.
  • Далее (если компиляция завершилась успешно) происходит выполнение оператора.

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

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

Преимуществами данной архитектуры являются [12, 15]:

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

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

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

Архитектура файл-сервер

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

Рисунок 1 Структура информационной системы с файл-сервером

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

- трудности при обеспечении непротиворечивости и целостности данных;

- существенная загрузка локальной сети передаваемыми данными;

- в целом, невысокая скорость обработки и представления информации;

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

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

- количество одновременно работающих с системой пользователей не превышает пяти человек для ЛВС, построенной в соответствии со спецификацией 10BaseT (скорость обмена данными до 10Мб/с);

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

Архитектура "файл-сервер" предусматривает концентрацию обработки на рабочих станциях. Основным преимуществом этого варианта является простота и относительная дешевизна. Подобное решение приемлемо, пока число пользователей, одновременно работающих с базой данных, не превышает 5-10 человек. При увеличении количества пользователей система может "захлебнуться" из-за перегруженности ЛВС большими потоками необработанной информации.

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

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

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

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

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

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

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

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

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

Недостатки архитектуры "файл-сервер" решаются при переводе приложений в архитектуру "клиент-сервер", которая знаменует собой следующий этап в развитии СУБД. Характерной особенностью архитектуры "клиент-сервер" является перенос вычислительной нагрузки на сервер базы данных (SQL-сервер) и максимальная разгрузка приложения клиента от вычислительной работы, а также существенное укрепление безопасности данных - как от злонамеренных, так и просто ошибочных изменений.

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

Файловый сервер – это, как правило, центральный сервер в компьютерной сети, который обеспечивает подключение пользователей к сетевой системе хранения данных (СХД).

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

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

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

Рисунок 1. Расположение файлового сервера в компьютерной сети предприятия

Расположение файлового сервера в компьютерной сети предприятия

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

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

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

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

  1. Компьютер пользователя. В самом простом варианте, если в корпоративной сети немного пользователей (порядка 10-15), то в качестве файлового сервера может быть использован любой компьютер пользователя в сети компании. Это, конечно, далеко не лучший вариант, поскольку при перезагрузке или выключении этого компьютера сеть оказывается без файлового сервера. Кроме того, пользовательские операционные системы мало подходят для работы в качестве сервера.
  2. Выделенный серверс установленной ОС (Windows Server или Unix), на котором системный администратор настраивает роль файлового сервера. Это самый дорогой вариант, но и самый универсальный, поскольку все настройки можно сделать точно в соответствии с требованиями.
  3. Выделенный сервер без предустановленной ОС, например файловый сервер FreeNAS. Этот программный сервер предназначен только для системы файлового хранения. Такой метод дает возможность самостоятельно выбрать оборудование, но разворачивание займет больше времени.
  4. Решение под ключ. Представляет собой сервер, на котором производителем или поставщиком предустановлена система с настроенным сервисом хранения данных. Такой вариант удобен тем, что он требует не более 10 минут настройки для последующей работы. Это также недешевый вариант и имеющий некоторые ограничения, поскольку все настройки предусмотрены разработчиками.

Как работает файловый сервер

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

Определяющим фактором для выбора параметров файлового сервера является число пользователей корпоративной сети. Для связи пользователей с файловым сервером используются специальные протоколы, например, протокол SMB (Server Message Block) разработанный IBM. Он может использоваться в локальных сетях как на устройствах Windows, так и macOS. В качестве протокола сетевой операционной системы часто используется NFS (Network File System). Если файловый сервер работает под ОС Unix, то чтобы совместить оба типа протоколов в одной сети, как клиенты, так и файловые серверы, должны быть оснащены программами, которые позволяют выполнять протокол SMB в этих системах. Это может быть, например, программная платформа Samba.

Преимущества файлового сервера

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

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

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

Основные преимущества файлового сервера:

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

Проблемы файловых серверов

Несмотря на явные преимущества, перечисленные выше, проблемы у файловых серверов тоже есть.

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

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

Оборудование для организации файлового сервера

Для файлового сервера организаций небольших и средних размеров подойдут бюджетные решения крупнейших вендоров – HPE, Dell, Fujitsu.


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

Файл-сервер только извлекает данные из файлов так, что дополнительные пользователи и приложения добавляют нагрузку на центральный процессор. Каждый новый клиент добавляет мощность к сети, компоненты PS и PL не имеют сетевого разделения, объектами разработки в файл-серверном приложении является компоненты приложения, определяющие логику диалога PL и логику обработки BL и логику управления DL.

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

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

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

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

Обслуживание запросов нескольких клиентов, простота и удобство использования.

- высокая загрузка сети и машин-клиентов;

- низкий уровень защиты данных, так как доступ к файлам БД управляется общими средствами ОС;

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

12) Формы языка sql, их назначение. Составные части языка sql.

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

Формы языка SQL

Структурированный язык запросов SQL реализуется в следующих формах:

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

Встроенный SQL позволяет включать операторы SQL в код программы на другом языке программирования (например, С++).

Составные части языка SQL

Традиционно выделяют две основных части языка SQL (хотя деление это во многом условное):

DDL - Data Definition Language - Язык определения данных. DDL включает в себя операторы создания, модификации, удаления объектов (Create, Alter, Drop. ). К DDL обычно также относят операторы управления правами пользователей (Grant, Revoke).

DML - Data Manipulation Language - Язык манипулирования данными. DML предназначен для ведения (добавления, модификации, удаления) и выборки информации из базы данных. Основные операторы DML - Select, Insert, Update и Delete.

Типы данных SQL.

Символьные типы данных - содержат буквы, цифры и специальные символы.

CHAR или CHAR(n) -символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответсвует CHAR(1). Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины строки.

VARCHAR(n) - символьная строка переменной длины. Для хранения данных этого типа отводится число байт, соответствующее реальной длине строки.

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

INTEGER или INT- целое, для хранения которого отводится, как правило, 4 байта. (Замечание: число байт, отводимое для хранения того или иного числового типа данных зависит от используемой СУБД и аппаратной платформы, здесь приводятся наиболее "типичные" значения) Интервал значений от - 2147483647 до + 2147483648

SMALLINT - короткое целое (2 байта), интервал значений от - 32767 до +32768

Вещественные типы данных - описывают числа с дробной частью.

FLOAT и SMALLFLOAT - числа с плавающей точкой (для хранения отводится обычно 8 и 4 байта соответсвенно).

DECIMAL(p) - тип данных аналогичный FLOAT с числом значащих цифр p.

DECIMAL(p,n) - аналогично предыдущему, p - общее количество десятичных цифр, n - количество цифр после десятичной запятой.

Денежные типы данных - описывают, естественно, денежные величины. Если в ваша система такого типа данных не поддерживает, то используйте DECIMAL(p,n).

MONEY(p,n) - все аналогично типу DECIMAL(p,n). Вводится только потому, что некоторые СУБД предусматривают для него специальные методы форматирования.

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

DATE - тип данных для хранения даты.

TIME - тип данных для хранения времени.

INTERVAL - тип данных для хранения верменного интервала.

DATETIME - тип данных для хранения моментов времени (год + месяц + день + часы + минуты + секунды + доли секунд).

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

Последовательные типы данных - используются для представления возрастающих числовых последовательностей.

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

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

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Читайте также: