Автоматизированное Рабочее Место Отдела Кадров
Такая человеко-ориентированная модель полностью независима от
физических параметров среды хранения данных. В конце концов этой средой
может быть память человека, а не ЭВМ. Поэтому инфологическая модель не
должна изменяться до тех пор, пока какие-то изменения в реальном мире не
потребуют изменения в ней некоторого определения, чтобы эта модель
продолжала отражать предметную область.
Остальные модели, показанные на рис. 1.2, являются компьютеро-
ориентированными. С их помощью СУБД дает возможность программам и
пользователям осуществлять доступ к хранимым данным лишь по их именам, не
заботясь о физическом расположении этих данных. Нужные данные отыскиваются
СУБД на внешних запоминающих устройствах по физической модели данных.
Так как указанный доступ осуществляется с помощью конкретной СУБД, то
модели должны быть описаны на языке описания данных этой СУБД. Такое
описание, создаваемое АБД по инфологической модели данных, называют
даталогической моделью данных.
Трехуровневая архитектура (инфологический, даталогический и физический
уровни) позволяет обеспечить независимость хранимых данных от использующих
их программ. АБД может при необходимости переписать хранимые данные на
другие носители информации и (или) реорганизовать их физическую структуру,
изменив лишь физическую модель данных. АБД может подключить к системе любое
число новых пользователей (новых приложений), дополнив, если надо,
даталогическую модель. Указанные изменения физической и даталогической
моделей не будут замечены существующими пользователями системы (окажутся
"прозрачными" для них), так же как не будут замечены и новые пользователи.
Следовательно, независимость данных обеспечивает возможность развития
системы баз данных без разрушения существующих приложений.
3 Инфологическая модель данных "Сущность-связь"
Цель инфологического моделирования – обеспечение наиболее естественных
для человека способов сбора и представления той информации, которую
предполагается хранить в создаваемой базе данных. Поэтому инфологическую
модель данных пытаются строить по аналогии с естественным языком (последний
не может быть использован в чистом виде из-за сложности компьютерной
обработки текстов и неоднозначности любого естественного языка). Основными
конструктивными элементами инфологических моделей являются сущности, связи
между ними и их свойства (атрибуты).
Сущность – любой различимый объект (объект, который мы можем отличить
от другого), информацию о котором необходимо хранить в базе данных.
Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д.
Необходимо различать такие понятия, как тип сущности и экземпляр сущности.
Понятие тип сущности относится к набору однородных личностей, предметов,
событий или идей, выступающих как целое. Экземпляр сущности относится к
конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а
экземпляром – Москва.
Атрибут – поименованная характеристика сущности. Его наименование
должно быть уникальным для конкретного типа сущности, но может быть
одинаковым для различного типа сущностей (например, ЦВЕТ может быть
определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты
используются для определения того, какая информация должна быть собрана о
сущности.
Абсолютное различие между типами сущностей и атрибутами отсутствует.
Атрибут является таковым только в связи с типом сущности. В другом
контексте атрибут может выступать как самостоятельная сущность. Например,
для автомобильного завода цвет – это только атрибут продукта производства,
а для лакокрасочной фабрики цвет – тип сущности.
Ключ – минимальный набор атрибутов, по значениям которых можно
однозначно найти требуемый экземпляр сущности. Минимальность означает, что
исключение из набора любого атрибута не позволяет идентифицировать сущность
по оставшимся.
Связь – ассоциирование двух или более сущностей. Если бы назначением
базы данных было только хранение отдельных, не связанных между собой
данных, то ее структура могла бы быть очень простой. Однако одно из
основных требований к организации базы данных – это обеспечение возможности
отыскания одних сущностей по значениям других, для чего необходимо
установить между ними определенные связи. А так как в реальных базах данных
нередко содержатся сотни или даже тысячи сущностей, то теоретически между
ними может быть установлено более миллиона связей. Наличие такого множества
связей и определяет сложность инфологических моделей.
4 Реляционная структура данных
В конце 60-х годов появились работы, в которых обсуждались возможности
применения различных табличных даталогических моделей данных, т.е.
возможности использования привычных и естественных способов представления
данных. Наиболее значительной из них была статья сотрудника фирмы IBM д-ра
Э.Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks.
CACM 13: 6, June 1970), где, вероятно, впервые был применен термин
"реляционная модель данных".
Будучи математиком по образованию Э.Кодд предложил использовать для
обработки данных аппарат теории множеств (объединение, пересечение,
разность, декартово произведение). Он показал, что любое представление
данных сводится к совокупности двумерных таблиц особого вида, известного в
математике как отношение – relation
Наименьшая единица данных реляционной модели – это отдельное атомарное
(неразложимое) для данной модели значение данных. Так, в одной предметной
области фамилия, имя и отчество могут рассматриваться как единое значение,
а в другой – как три различных значения.
Доменом называется множество атомарных значений одного и того же типа.
Смысл доменов состоит в следующем. Если значения двух атрибутов берутся из
одного и того же домена, то, вероятно, имеют смысл сравнения, использующие
эти два атрибута (например, для организации транзитного рейса можно дать
запрос "Выдать рейсы, в которых время вылета из Москвы в Сочи больше
времени прибытия из Архангельска в Москву"). Если же значения двух
атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено
смысла: стоит ли сравнивать номер рейса со стоимостью билета?
Заголовок состоит из такого фиксированного множества атрибутов A1, A2,
..., An, что существует взаимно однозначное соответствие между этими
атрибутами Ai и определяющими их доменами Di (i=1,2,...,n).
Тело состоит из меняющегося во времени множества кортежей, где каждый
кортеж состоит в свою очередь из множества пар атрибут-значение (Ai:Vi),
(i=1,2,...,n), по одной такой паре для каждого атрибута Ai в заголовке. Для
любой заданной пары атрибут-значение (Ai:Vi) Vi является значением из
единственного домена Di, который связан с атрибутом Ai.
Степень отношения – это число его атрибутов. Отношение степени один
называют унарным, степени два – бинарным, степени три – тернарным, ..., а
степени n – n-арным.
Кардинальное число или мощность отношения – это число его кортежей.
Кардинальное число отношения изменяется во времени в отличие от его
степени.
Поскольку отношение – это множество, а множества по определению не
содержат совпадающих элементов, то никакие два кортежа отношения не могут
быть дубликатами друг друга в любой произвольно-заданный момент времени.
Пусть R – отношение с атрибутами A1, A2, ..., An. Говорят, что множество
атрибутов K=(Ai, Aj, ..., Ak) отношения R является возможным ключом R тогда
и только тогда, когда удовлетворяются два независимых от времени условия:
Уникальность: в произвольный заданный момент времени никакие два
различных кортежа R не имеют одного и того же значения для Ai, Aj, ..., Ak.
Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть
исключен из K без нарушения уникальности.
Каждое отношение обладает хотя бы одним возможным ключом, поскольку по
меньшей мере комбинация всех его атрибутов удовлетворяет условию
уникальности. Один из возможных ключей (выбранный произвольным образом)
принимается за его первичный ключ. Остальные возможные ключи, если они
есть, называются альтернативными ключами.
Вышеупомянутые и некоторые другие математические понятия явились
теоретической базой для создания реляционных СУБД, разработки
соответствующих языковых средств и программных систем, обеспечивающих их
высокую производительность, и создания основ теории проектирования баз
данных. Однако для массового пользователя реляционных СУБД можно с успехом
использовать неформальные эквиваленты этих понятий:
Отношение–Таблица(иногдаФайл),Кортеж – Строка (иногда Запись), Атрибут
– Столбец, Поле. При этом принимается, что "запись" означает "экземпляр
записи", а "поле" означает "имя и тип поля".
Реляционная база данных – это совокупность отношений, содержащих всю
информацию, которая должна храниться в БД. Однако пользователи могут
воспринимать такую базу данных как совокупность таблиц
5 О нормализации, функциональных и многозначных зависимостях
Нормализация – это разбиение таблицы на две или более, обладающих
лучшими свойствами при включении, изменении и удалении данных.
Окончательная цель нормализации сводится к получению такого проекта базы
данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена
избыточность информации. Это делается не столько с целью экономии памяти,
сколько для исключения возможной противоречивости хранимых данных.
Как указывалось ранее, каждая таблица в реляционной БД удовлетворяет
условию, в соответствии с которым в позиции на пересечении каждой строки и
столбца таблицы всегда находится единственное атомарное значение, и никогда
не может быть множества таких значений. Любая таблица, удовлетворяющая
этому условию, называется нормализованной. Фактически, ненормализованные
таблицы, т.е. таблицы, содержащие повторяющиеся группы, даже не допускаются
в реляционной БД.
Всякая нормализованная таблица автоматически считается таблицей в
первой нормальной форме, сокращенно 1НФ. Таким образом, строго говоря,
"нормализованная" и "находящаяся в 1НФ" означают одно и то же. Однако на
практике термин "нормализованная" часто используется в более узком смысле –
"полностью нормализованная", который означает, что в проекте не нарушаются
никакие принципы нормализации. Дадим точные определения наиболее
распространенных форм нормализации.
Таблица находится в первой нормальной форме (1НФ) тогда и только
тогда, когда ни одна из ее строк не содержит в любом своем поле более
одного значения и ни одно из ее ключевых полей не пусто
Таблица находится во второй нормальной форме (2НФ), если она
удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ,
связаны полной функциональной зависимостью с первичным ключом.
Таблица находится в третьей нормальной форме (3НФ), если она
удовлетворяет определению 2НФ и не одно из ее неключевых полей не зависит
функционально от любого другого неключевого поля.
Таким образом, каждая нормальная форма является в некотором смысле
более ограниченной, но и более желательной, чем предшествующая. Это связано
с тем, что "(N+1)-я нормальная форма" не обладает некоторыми
непривлекательными особенностями, свойственным "N-й нормальной форме".
Общий смысл дополнительного условия, налагаемого на (N+1)-ю нормальную
форму по отношению к N-й нормальной форме, состоит в исключении этих
непривлекательных особенностей.
Теория нормализации основывается на наличии той или иной зависимости
между полями таблицы. Определены два вида таких зависимостей:
функциональные и многозначные.
Функциональная зависимость. Поле В таблицы функционально зависит от
поля А той же таблицы в том и только в том случае, когда в любой заданный
момент времени для каждого из различных значений поля А обязательно
существует только одно из различных значений поля В. Отметим, что здесь
допускается, что поля А и В могут быть составными.
Полная функциональная зависимость. Поле В находится в полной
функциональной зависимости от составного поля А, если оно функционально
зависит от А и не зависит функционально от любого подмножества поля А.
Многозначная зависимость. Поле А многозначно определяет поле В той же
таблицы, если для каждого значения поля А существует хорошо определенное
множество соответствующих значений В.
4 Технология Клиент-Сервер.
2 Основные понятия
Главная мысль, заложенная в эту технологию - минимизировать объем
данных, передаваемых по сети, поскольку основные потери времени и сбои
происходят именно из-за недостаточно высокой пропускной способности сети.
Очень многие СУБД разделяют свою работу на два уровня по системе
"Клиент-Сервер". С точки зрения исполнения программа разделена на 2 части -
клиентскую и серверную. На клиентской части (компьютере) происходит контакт
с внешним миром. На компьютере-сервере расположены общие для всех клиентов
данные и работает специальная программа - сервер баз данных, оптимизирующая
выполнение запросов клиентов.
Итак, двухуровневая система "Клиент-Сервер" это:
Клиент - Программа обработки, она же пользовательская, она же
прикладная программа. Занимается обычно интерфейсом с пользователем, а всю
фактическую работу с базой данных возлагает на плечи БД-сервера.
Сервер Базы Данных - базис (database engine), он же ядро базы данных.
Отдельная программа, выполняемая как отдельный процесс. Передает выбранную
из базы информацию по межпроцессному каналу клиенту. Именно он, и только он
фактически работает с данными, занимается их размещением на диске.
3 Преимущества архитектуры клиент-сервер
В первый момент может возникнуть вопрос, а зачем такие сложности? Вот
несколько соображений в пользу такого подхода.
Несомненным преимуществом является приближенность данных к процессам
вычисления. Практически, все расчеты выполняются на сервере, что
увеличивает быстродействие в десятки и сотни раз.
Технология клиент-сервер в отличие от файл-серверной дает пользователю
большую безопасность, устойчивость, согласованность, масштабируемость,
повышенную конфиденциальность и надежность обработки и хранения информации.
Развитие систем с архитектурой клиент-сервер в немалой степени обязано
проверенному факту: подключение к недорогим серверам недорогих ПК позволяет
получить оптимальное соотношение цены и производительности.
В большинстве случаев программа обработки (клиентская часть)
расположена на одном компьютере, а сама база данных хранится на другом. Тут
разделение выглядит совершенно естественным: Программа - клиент (точнее, та
ее часть, которая отвечает за интерфейс с пользователем), передает по сети
запросы на обработку самих данных на другой компьютер, а там БД-сервер их
прочитывает, выполняет требуемое, и по сети возвращает готовые ответы
клиенту. При этом по сети передается только полезная информация.
Другое соображение: постоянно идет работа по совершенствованию самого
метода хранения и обработки информации, и если его реализация (т.е. БД-
сервер) сменилась, то не потребуется перекомпилировать с новыми
библиотеками все разработанные программы, а достаточно будет инсталлировать
новый БД-сервер взамен старого и перевести базы данных в формат нового
сервера (применив для этого прилагаемую к нему утилиту). Естественно, все
это можно проделать, если новый сервер придерживается тех же правил обмена
между ним и пользовательской программой, что и старый, что, впрочем,
наверняка имеет место.
Используя множество небольших компьютеров, разработчики систем клиент-
сервер могут эмулировать вычислительную мощность больших ЭВМ, распределяя
прикладную задачу по различным микрокомпьютерам и серверам. Каждый из них
берет на себя свою часть вычислительной нагрузки, используя информацию
совместно с другими процессорами сети. Суть идеи в том, чтобы повысить
мощность системы, не наращивая производительность одного компьютера, а
суммируя средства многих.
Быстродействие - основной фактор целесообразности разработки систем
для архитектуры клиент-сервер . Применение средств быстрой разработки
программ (Rapid Application Development - RAD), таких, как Delphi компании
Borland, PowerBuilder фирмы PowerSoft и Visual Basic корпорации Microsoft,
позволяет разработчикам "штамповать" прикладные системы для архитектуры
клиент-сервер в рекордно короткие сроки. Технология серверов баз данных
также становится проще в использовании и сочетается в одних системах со
средствами RAD. Таким образом, с помощью этой скоростной и практически
защищенной от "дурака" платформы разработки сокращается время, необходимое
для подготовки и передачи прикладной программы пользователю.
В заключение стоит отметить что архитектура клиент-сервер
предоставляет разработчикам ПО исключительную свободу выбора и согласования
различных типов компонентов для клиента, сервера и всех промежуточных
звеньев.
Наиболее простая (и рассматриваемая в контексте данной дипломной
работы) форма архитектуры клиент-сервер - это разделение вычислительной
нагрузки между двумя отдельными процессами: клиентом и сервером. Хотя и
клиент, и сервер могут находиться на одном и том же компьютере, большинство
систем этой архитектуры запускают клиентский процесс на одном компьютере, а
процесс-сервер на другом, используя для обмена информацией сетевые связи. В
этой модели один процесс может работать независимо от другого, выполнять
определенные задания и разделять вычислительную нагрузку.
Обычно клиентом служит настольный ПК, выполняющий программное
обеспечение конечного пользователя. программное обеспечение (ПО) конечного
пользователя (front-end software) - это любая прикладная программа или
пакет, способные направлять запросы по сети серверу и обрабатывать
получаемую в ответ информацию. Сервер, в свою очередь, получает запросы и
предпринимает действия от имени клиента.
ПК, работающий под управлением Windows 95 и выполняющий программу
клиент-сервер Delphi, например, может представить на рассмотрение запрос
серверу баз данных (скажем, программе InterBase 5.1.1, запущенной на
сервере Windows NT). Обычно клиент посылает запросы базе данных в виде
предложений на языке структурированных запросов (SQL), используя понятный
серверу базы данных диалект.
4 Компоненты архитектуры Клиент-сервер
Существуют три основных программных компонента архитектуры клиент-
сервер :
ПО конечного пользователя.
промежуточное обеспечение.
ПО сервера.
К ПО конечного пользователя относятся средства разработки программ и
генераторы отчетов, в том числе электронные таблицы и текстовые процессоры.
С помощью этого ПО пользователи устанавливают связь с серверами, отправляют
на рассмотрение серверу запросы и получают ответную информацию.
Промежуточное обеспечение (middleware) предоставляет общий интерфейс
для ПО конечного пользователя и сервера, проникающий сквозь сквозь слои GUI
(графический интерфейс пользователя), ОС, вычислительной сети и собственных
драйверов базы данных с помощью общих вызовов. Для завершения операции
сервер базы данных выполняет запрос и передает клиенту затребованные данные
для обработки их программой клиента.
Под ПО сервера подразумевается операционная система и конкретный
сервер БД, используемый для обработки запросов клиентской части
информационной системы.
Серверы баз данных занимаются не только обслуживанием данных. В них
предусмотрены также механизмы блокировок и элементы управления
многопользовательским доступом, которые обеспечивают защиту данных от
опасности параллельного доступа. Кроме этого, серверу баз данных приходится
ограждать данные от несанкционированного доступа, оптимизировать запросы к
базе данных, обеспечивать кэширование и предоставлять место для размещения
словаря данных.
Две другие важные особенности, на которые стоит обратить внимание, -
способность сервера обеспечивать целостность ссылочных данных и обоюдный
контроль завершения транзакции. Ссылочная целостность данных (referential
integrity) - это механизм, обеспечивающий каждому внешнему ключу
соответствующий первичный ключ. Обоюдный контроль завершения транзакций
(two-phase commit) - гарантия того, что ваши данные не будут повреждены
даже при аппаратном сбое.
С помощью хранимых процедур, триггеров и правил разработчики могут
составить программу непосредственно самого сервера баз данных и, таким
образом, появляется еще одно место для размещения логики программы.
Хранимые процедуры (stored procedures) - это группа предложений на языке
SQL и процедурная логика, которые разработчики могут компилировать и
хранить на сервере баз данных в качестве объектов. Программы-клиенты
способны выполнять хранимые процедуры, также как и другой вид хранимых
процедур или триггеров, путем посылки сообщений серверу баз данных.
Реальное распространение архитектуры "клиент-сервер" стало возможным
благодаря развитию и широкому внедрению в практику концепции открытых
систем. Поэтому мы начнем с краткого введения в открытые системы.
Основным смыслом подхода открытых систем является упрощение
комплексирования вычислительных систем за счет международной и национальной
стандартизации аппаратных и программных интерфейсов. Главной побудительной
причиной развития концепции открытых систем явились повсеместный переход к
использованию локальных компьютерных сетей и те проблемы комплексирования
аппаратно-программных средств, которые вызвал этот переход. В связи с
бурным развитием технологий глобальных коммуникаций открытые системы
приобретают еще большее значение и масштабность.
Ключевой фразой открытых систем, направленной в сторону пользователей,
является независимость от конкретного поставщика. Ориентируясь на продукцию
компаний, придерживающихся стандартов открытых систем, потребитель, который
приобретает любой продукт такой компании, не попадает к ней в рабство. Он
может продолжить наращивание мощности своей системы путем приобретения
продуктов любой другой компании, соблюдающей стандарты. Причем это касается
как аппаратных, так и программных средств и не является необоснованной
декларацией. Реальная возможность независимости от поставщика проверена в
отечественных условиях.
Использование подхода открытых систем выгодно и производителям, и
пользователям. Прежде всего открытые системы обеспечивают естественное
решение проблемы поколений аппаратных и программных средств. Производители
таких средств не вынуждаются решать все проблемы заново; они могут по
крайней мере временно продолжать комплексировать системы, используя
существующие компоненты.
5 Язык структурированных запросов SQL
1 Назначение и принцип работы SQL
SQL (часто произносится как "сиквэл", сокращенное название от
Structured Query Language) символизирует собой Структурированный Язык
Запросов. SQL является инструментом, предназначенным для обработки и чтения
данных, содержащихся в компьютерной базе данных. Это язык который дает
возможность эффективно создавать реляционные базы данных и работать с ними.
Мир баз данных становится все более и более единым, что привело к
необходимости создания стандартного языка, который мог бы функционировать в
большом количестве различных видов компьютерных сред. Стандартный язык
позволит пользователям знающим один набор команд, использовать их чтобы
создавать, отыскивать, изменять, и передавать информацию независимо от того
работают ли они на персональном компьютере, сетевой рабочей станции, или на
универсальной ЭВМ. Во все более и более взаимосвязанном компьютерном мире,
пользователь, снабженый таким языком, имеет огромное преимущество в
использовании и обобщении информации из ряда источников с помощью
большого количества способов.
Как следует из названия, SQL является языком программирования, который
применяется для организации взаимодействия пользователя с базой данных. На
самом деле SQL работает только с базами данных реляционного типа. На рис. 8
изображена схема работы SQL.
Рис. 1.3. Применение SQL для доступа к базе данных
Согласно этой схеме, в вычислительной системе имеется база данных, в
которой хранится важная информация. Если вычислительная система относится к
сфере бизнеса, то в базе данных может храниться информация о материальных
ценностях, выпускаемой продукции, объемах продаж и зарплате. В базе данных
на персональном компьютере может храниться информация о выписанных чеках,
телефонах и адресах или информация, извлеченная из более крупной
вычислительной системы.
Если пользователю необходимо прочитать данные из базы данных, он
запрашивает их у СУБД с помощью SQL. СУБД обрабатывает запрос, находит
требуемые данные и посылает их пользователю. Процесс запрашивания данных и
получения результата называется запросом к базе данных: отсюда и название —
структурированный язык запросов.
Вот основные моменты, характеризующие удобство применения SQL:
Организация данных. SQL дает пользователю возможность изменять
структуру представления данных, а также устанавливать отношения между
элементами базы данных.
Чтение данных. SQL дает пользователю или приложению возможность читать
из базы данных содержащиеся в ней данные и пользоваться ими.
Обработка данных. SQL дает пользователю или приложению возможность
изменять базу данных, т.е. добавлять в нее новые данные, а также удалять
или обновлять уже имеющиеся в ней данные.
Управление доступом. С помощью SQL можно ограничить возможности
пользователя по чтению и изменению данных и защитить их от
несанкционированного доступа.
Совместное использование данных. SQL координирует совместное
использование данных пользователями, работающими параллельно, чтобы они не
мешали друг другу.
Целостность данных. SQL позволяет обеспечить целостность базы данных,
защищая ее от разрушения из-за несогласованных изменений или отказа
системы.
Таким образом, SQL является достаточно мощным языком для
взаимодействия с СУБД.
2 Достоинства языка SQL
Язык запросов дает несомненные преимущества. Во первых он продолжает
идеологию архитектуры Клиент-Сервер. Клиентская часть приложения
подготавливает запрос на обработку информации и отсылает запрос на сервер
базы данных. Сервер , выполнив (обработав) полученный запрос возвращает
клиентской программе готовый результат.
Основные преимущества напрямую вытекают из преимуществ клиент-
серверного подхода. Например, простое суммирование значений всех полей
без использования SQL приведет к пересылки всей таблицы по сети на машину
клиента. После суммирования таблица фактически уже не нужна и такое
использование сети как минимум не рационально. В случае же с SQL по сети
уйдет запрос на сервер, сервер проведет суммирование и вернет обратно по
сети только полученную сумму!
Элегантность и независимость от специфики компьютерных технологий
(аппаратных платформ), а также его поддержка лидерами промышленности в
области технологии реляционных баз данных, сделало SQL, и вероятно в
течение обозримого будущего оставит его, основным стандартным языком. По
этой причине, любой кто хочет работать с базами данных 90-х годов должен
знать SQL.
Стандарт SQL определяется ANSI (Американским Национальным Институтом
Стандартов) и в данное время также принимается ISO (МЕЖДУНАРОДНОЙ
ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ). Однако, большинство коммерческих СУБД
расширяют SQL без уведомления ANSI, добавляя разные другие особенности в
этот язык, которые, как они считают, будут весьма полезны. Иногда они
несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию
развиваться и вскоре становиться стандартами "рынка" сами по себе в силу
полезности своих качеств.
Здесь следует отметить, что несмотря на достаточно большой набор
нестандартных дополнительных фукций SQL InterBase, программа Отдел Кадров
использует только стандартные операторы и конструкции. Такое решение
принято для возможности легкого переноса программы на другой SQL сервер.
Например, при дальнейшем развитии можно перенести программу на Microsoft
SQL Server, если InterBase по каким либо причинам перестанет удовлетворять
запросы разработчиков. Также следует отметить, что многие нестандартные ,
дополнительные возможности разных SQL серверов зачастую похожи между собой
и при выходе нового стандарта, как правило переносятся в группу
стандартизованных. Таким образом происходит дальнейшее развитие языка SQL.
В целом, список преимуществ, на которые стоит обратить внимание в
первую очередь, можно представить в следующем виде:
независимость от конкретных СУБД;
переносимость с одной вычислительной системы на другую;
наличие стандартов;
поддержка со стороны компании Microsoft (протокол ODBC);
реляционная основа;
высокоуровневая структура, напоминающая английский язык;
возможность выполнения специальных интерактивных запросов:
обеспечение программного доступа к базам данных;
возможность различного представления данных;
полноценность как языка, предназначенного для работы с базами данных;
возможность динамического определения данных;
поддержка архитектуры клиент/сервер.
Все перечисленные выше факторы явились причиной того, что SQL стал
стандартным инструментом для управления данными на персональных
компьютерах, мини-компьютерах и больших ЭВМ. Ниже эти факторы рассмотрены
более подробно.
Независимость от конкретных СУБД
Все ведущие поставщики СУБД используют SQL, и ни одна новая СУБД, не
поддерживающая SQL, не может рассчитывать на успех. Реляционную базу данных
и программы, которые с ней работают, можно перенести с одной СУБД на другую
с минимальными доработками и переподготовкой персонала. Программные
средства, входящие в состав СУБД для персональных компьютеров, работают с
реляционными базами данных многих типов.
Переносимость с одной вычислительной системы на другие
Поставщики СУБД предлагают программные продукты для различных
вычислительных систем: от персональных компьютеров и рабочих станций до
локальных сетей, мини-компьютеров и больших ЭВМ. Приложения, созданные с
помощью SQL и рассчитанные на однопользовательские системы, по мере своего
развития могут быть перенесены в более крупные системы. Информация из
корпоративных реляционных баз данных может быть загружена в базы данных
отдельных подразделений или в личные базы данных. Наконец, приложения для
реляционных баз данных можно вначале смоделировать на экономичных
персональных компьютерах, а затем перенести на дорогие
многопользовательские системы.
Стандарты языка SQL
Официальный стандарт языка SQL был опубликован Американским институтом
национальных стандартов (American National Standards Institute — ANSI) и
Международной организацией по стандартам (International Standards
Organization — ISO) в 1986 году и значительно расширен в 1992 году. Кроме
того, SQL является федеральным стандартом США по обработке информации (FIPS
— Federal Information Processing Standard) и, следовательно, соответствие
ему является одним из основных требований, содержащихся в больших
правительственных контрактах, относящихся к области вычислительной техники.
В Европе стандарт X/OPEN для переносимой среды программирования на основе
операционной системы UNIX включает в себя SQL в качестве стандарта для
доступа к базам данных. SQL Access Group — консорциум поставщиков
компьютерного оборудования и баз данных — определил для SQL стандартный
интерфейс вызовов функций, который является основой протокола ODBC компании
Microsoft и входит также в стандарт X/OPEN. Эти стандарты служат как бы
официальной печатью, одобряющей SQL, и они ускорили завоевание им рынка.
Протокол ODBC и компания Microsoft
Компания Microsoft рассматривает доступ к базам данных как важную
часть своей операционной системы Windows. Стандартом этой компании по
обеспечению доступа к базам данных является ODBC (Open Database
Connectivity — взаимодействие с открытыми базами данных) — программный
интерфейс, основанный на SQL. Протокол ODBC поддерживается наиболее
распространенными приложениями Windows (электронными таблицами, текстовыми
процессорами, базами данных и т.п.), разработанными как самой компанией
Microsoft, так и другими ведущими поставщиками. Поддержка ODBC
обеспечивается всеми ведущими реляционными базами данных. Кроме того, ODBC
опирается на стандарты, одобренные консорциумом поставщиков SQL Access
Group, что делает ODBC как стандартом де-факто компании Microsoft, так и
стандартом, независимым от конкретных СУБД.[13, 8, 17].
3 Запрос на языке SQL
Как подчеркивалось ранее, SQL символизирует собой Структурированный
Язык Запросов. Запросы - вероятно наиболее часто используемый аспект SQL.
Фактически, для категории SQL пользователей, маловероятно чтобы кто-либо
использовал этот язык для чего-то другого. Итак :
Запрос - команда которую дается прикладной программе базы данных, и
которая сообщает ей чтобы она вывела определенную информацию из таблиц в
память. Эта информация обычно посылается непосредственно на экран
компьютера или терминала хотя, в большинстве случаев, ее можно также
послать принтеру, сохранить в файле ( как объект в памяти компьютера ),
или представить как вводную информацию для другой команды или процесса.
Одна из наиболее важных особенностей запросов SQL - это их
способность определять связи между многочисленными таблицами и выводить
информацию из них в терминах этих связей, всю внутри одной команды. Этот
вид операции называется - объединением, которое является одним из видов
операций в реляционных базах данных.
Как установлено ранее, главное в реляционном подходе это связи
которые можно создавать между позициями данных в таблицах. Используя
обьединения, мы непосредственно связываем информацию с любым номером
таблицы, и таким образом способны создавать связи между сравнимыми
фрагментами данных. При обьединении, таблицы представленые списком в
предложении FROM запроса, отделяются запятыми. Предикат запроса может
ссылаться к любому столбцу любой связанной таблицы и, следовательно, может
использоваться для связи между ими.
Язык допускает три типа синтаксических конструкций, начинающихся с
ключевого слова SELECT: спецификация курсора (cursor specification),
Страницы: 1, 2, 3, 4, 5, 6
|