противоречивости хранимых данных.
Как указывалось ранее, каждая таблица в реляционной БД удовлетворяет условию,
всоответствии с которым в позиции на пересечении каждой строки и столбца таблицы
всегда находится единственное атомарное значение, и никогда не может
бытьмножества таких значений. Любая таблица, удовлетворяющая этому условию,
называется нормализованной. Фактически, ненормализованные таблицы, т.е.таблицы,
содержащие повторяющиеся группы, даже не допускаются в реляционной БД.
Всякая нормализованная таблица автоматически считается таблицей в первой
нормальнойформе, сокращенно 1НФ. Таким образом, строго говоря, "нормализованная"
и "находящаяся в 1НФ" означают одно и тоже. Однако на практике термин
"нормализованная" часто используется в более узком смысле – "полностью
нормализованная", который означает,что в проекте не нарушаются никакие принципы
нормализации. Дадим точные определения наиболее распространенных форм
нормализации.
Таблица находится в первой нормальной форме (1НФ) тогда и только тогда,когда ни
одна из ее строк не содержит в любом своем поле более одного значения и ни одно
из ее ключевых полей не пусто
Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет
определению 1НФ и все ее поля, не входящие в первичный ключ,связаны полной
функциональной зависимостью с первичным ключом.
Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет
определению 2НФ и не одно из ее неключевых полей не зависитфункционально от
любого другого неключевого поля.
Таким образом, каждая нормальная форма является в некотором смысле более
ограниченной, но иболее желательной, чем предшествующая. Это связано с тем, что
"(N+1)-я нормальная форма" не обладает некоторыми
непривлекательнымиособенностями, свойственным "N-й нормальной форме". Общий
смысл дополнительного условия, налагаемого на (N+1)-ю нормальную форму по
отношению кN-й нормальной форме, состоит в исключении этих непривлекательных
особенностей.
Теория нормализации основывается на наличии той или иной зависимости между
полямитаблицы. Определены два вида таких зависимостей: функциональные и
многозначные.
Функциональная зависимость. Поле В таблицы функционально зависит от поля А той
же таблицы в том и только в томслучае, когда в любой заданный момент времени для
каждого из различных значений поля А обязательно существует только одно из
различных значений поля В.Отметим, что здесь допускается, что поля А и В могут
быть составными.
Полная функциональная зависимость. Поле В находится в полной функциональной
зависимости от составного поля А, еслионо функционально зависит от А и не
зависит функционально от любого подмножества поля А.
Многозначная зависимость. Поле А многозначно определяет поле В той же таблицы,
если для каждого значения поля Асуществует хорошо определенное множество
соответствующих значений В.
1.3Технология Клиент-Сервер.
1.3.1Основные понятия
Главная мысль, заложенная в эту технологию - минимизировать объем данных,
передаваемых посети, поскольку основные потери времени и сбои происходят именно
из-за недостаточно высокой пропускной способности сети.
Очень многие СУБД разделяют свою работу на два уровня по системе
"Клиент-Сервер".С точки зрения исполнения программа разделена на 2 части -
клиентскую и серверную. На клиентской части (компьютере) происходит контакт с
внешним миром.На компьютере-сервере расположены общие для всех клиентов данные и
работает специальная программа - сервер баз данных, оптимизирующая выполнение
запросовклиентов.
Итак, двухуровневая система "Клиент-Сервер" это:
Клиент - Программа обработки, она же пользовательская, она же прикладная
программа. Занимается обычно интерфейсом спользователем, а всю фактическую
работу с базой данных возлагает на плечи БД-сервера.
Сервер Базы Данных - базис (database engine), он же ядро базы данных. Отдельная
программа, выполняемая как отдельныйпроцесс. Передает выбранную из базы
информацию по межпроцессному каналу клиенту. Именно он, и только он фактически
работает с данными, занимается ихразмещением на диске.
1.3.2Преимущества архитектуры клиент-сервер
В первый момент может возникнуть вопрос, а зачем такие сложности? Вот
несколькосоображений в пользу такого подхода.
Несомненным преимуществом является приближенность данных к процессам
вычисления.Практически, все расчеты выполняются на сервере, что увеличивает
быстродействие в десятки и сотни раз.
Технология клиент-сервер в отличие от файл-серверной дает пользователю
большуюбезопасность, устойчивость, согласованность, масштабируемость, повышенную
конфиденциальность и надежность обработки и хранения информации. Развитиесистем
с архитектурой клиент-сервер в немалой степени обязано проверенному факту:
подключение к недорогим серверам недорогих ПК позволяет получить
оптимальноесоотношение цены и производительности.
В большинстве случаев программа обработки (клиентская часть) расположена на
одном компьютере,а сама база данных хранится на другом. Тут разделение выглядит
совершенно естественным: Программа - клиент (точнее, та ее часть, которая
отвечает заинтерфейс с пользователем), передает по сети запросы на обработку
самих данных на другой компьютер, а там БД-сервер их прочитывает, выполняет
требуемое, и посети возвращает готовые ответы клиенту. При этом по сети
передается только полезная информация.
Другое соображение: постоянно идет работа по совершенствованию самого метода
храненияи обработки информации, и если его реализация (т.е. БД-сервер)
сменилась, то не потребуется перекомпилировать с новыми библиотеками все
разработанныепрограммы, а достаточно будет инсталлировать новый БД-сервер взамен
старого и перевести базы данных в формат нового сервера (применив для этого
прилагаемую кнему утилиту). Естественно, все это можно проделать, если новый
сервер придерживается тех же правил обмена между ним и пользовательской
программой,что и старый, что, впрочем, наверняка имеет место.
Используя множество небольших компьютеров, разработчики систем клиент-сервер
могутэмулировать вычислительную мощность больших ЭВМ, распределяя прикладную
задачу по различным микрокомпьютерам и серверам. Каждый из них берет на себя
своючасть вычислительной нагрузки, используя информацию совместно с другими
процессорами сети. Суть идеи в том, чтобы повысить мощность системы, ненаращивая
производительность одного компьютера, а суммируя средства многих.
Быстродействие - основной фактор целесообразности разработки систем для
архитектурыклиент-сервер . Применение средств быстрой разработки программ (Rapid
Application Development - RAD), таких, как Delphi компании Borland,PowerBuilder
фирмы PowerSoft и Visual Basic корпорации Microsoft, позволяет разработчикам
"штамповать" прикладные системы для архитектурыклиент-сервер в рекордно короткие
сроки. Технология серверов баз данных также становится проще в использовании и
сочетается в одних системах со средствами RAD. Такимобразом, с помощью этой
скоростной и практически защищенной от "дурака" платформы разработки сокращается
время, необходимое дляподготовки и передачи прикладной программы пользователю.
В заключение стоит отметить что архитектура клиент-сервер предоставляет
разработчикам ПОисключительную свободу выбора и согласования различных типов
компонентов для клиента, сервера и всех промежуточных звеньев.
Наиболее простая (и рассматриваемая в контексте данной дипломной работы)
формаархитектуры клиент-сервер - это разделение вычислительной нагрузки между
двумя отдельными процессами: клиентом и сервером. Хотя и клиент, и сервер
могутнаходиться на одном и том же компьютере, большинство систем этой
архитектуры запускают клиентский процесс на одном компьютере, а процесс-сервер
на другом,используя для обмена информацией сетевые связи. В этой модели один
процесс может работать независимо от другого, выполнять определенные задания
иразделять вычислительную нагрузку.
Обычно клиентом служит настольный ПК, выполняющий программное обеспечение
конечногопользователя. программное обеспечение (ПО) конечного пользователя
(front-end software) - это любая прикладная программа или пакет,
способныенаправлять запросы по сети серверу и обрабатывать получаемую в ответ
информацию. Сервер, в свою очередь, получает запросы и предпринимаетдействия от
имени клиента.
ПК, работающий под управлением Windows 95 и выполняющий программу клиент-сервер
Delphi,например, может представить на рассмотрение запрос серверу баз данных
(скажем, программе InterBase5.1.1, запущенной на сервере Windows NT). Обычно
клиент посылает запросы базе данных в виде предложений на языке
структурированных запросов (SQL), используяпонятный серверу базы данных диалект.
1.3.3Компоненты архитектуры Клиент-сервер
Существуют три основных программных компонента архитектуры клиент-сервер :
ПО конечного пользователя.
промежуточное обеспечение.
ПО сервера.
К ПО конечного пользователя относятся средства разработки программ и
генераторыотчетов, в том числе электронные таблицы и текстовые процессоры. С
помощью этого ПО пользователи устанавливают связь с серверами, отправляют
нарассмотрение серверу запросы и получают ответную информацию.
Промежуточное обеспечение (middleware) предоставляет общий интерфейс для ПО
конечного пользователя и сервера,проникающий сквозь сквозь слои GUI (графический