Независимость от конкретной СУБД

Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle Database, так и с Microsoft SQL Server и DB2). Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

Наличие стандартов

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах (например, базовая часть стандарта SQL:2003 состоит из более чем 1300 страниц текста).

Декларативность

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

Недостатки

Несоответствие реляционной модели данных

Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие дефекты SQL с точки зрения реляционной теории[7]:

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

В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем манифесте[8] они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.

Сложность

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

Отступления от стандартов

Несмотря на наличие международного стандарта ANSI SQL-92, многие разработчики СУБД вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

Сложность работы с иерархическими структурами

Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения (например, в Oracle Database используется выражение CONNECT BY). В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В Microsoft SQL Server рекурсивные запросы (Recursive Common Table Expressions) появились лишь в версии 2005.

Расширения

Поскольку SQL не является привычным процедурным языком программирования (то есть не предоставляет средств для построения циклов, ветвлений и т. д.), вводимые разными производителями расширения касались в первую очередь процедурных расширений. Это хранимые процедуры (stored procedures) и процедурные языки-«надстройки». Практически в каждой СУБД применяется свой процедурный язык, в частности, в Oracle Database используется PL/SQL (поддерживается также в DB2 и Timesten[en]), в Interbase и Firebird — PSQL, в DB2 — SQL PL[en], в Microsoft SQL Server и Adaptive Server Enterprise — Transact-SQL, в PostgreSQL — PL/pgSQL.

Принципы функционирования Internet, типовые информационные объекты и ресурсы. Ключевые аспекты WWW-технологии.

Глобальные сети, охватывая миллионы людей, полностью изменили процесс распространения и восприятия информации.

Глобальные сети (Wide Area Network, WAN) – это сети, предназначенные для объединения отдельных компьютеров и локальных сетей, расположенных на значительном удалении (сотни и тысячи километров) друг от друга. Глобальные сетиобъединяют пользователей, расположенных по всему миру, используя при этом самые разнообразные каналы связи.

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

В действительности Internet не просто сеть, — это структура, объединяющая обычные сети.Internet — это «сеть сетей».

Чтобы описать сегодняшний Internet, полезно воспользоваться строгим определением.

В своей книге «The Matrix: Computer Networks and Conferencing Systems Worldwide» Джон Квотерман описывает Internet как «метасеть, состоящую из многих сетей, которые работают согласно протоколам семейства TCP/IP, объединены через шлюзы и используют единое адресное пространство и пространство имен».

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

(рис.1).

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

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

Независимость от конкретной СУБД - student2.ru

Рис.1 Схема взаимодействия в сети Интернет

Интернет – это глобальная информационная система, которая:

· логически взаимосвязана пространством глобальных уникальных адресов, основанных на Интернет-протоколе (IP);

· способна поддерживать коммуникации с использованием семейства протокола управления передачей - TCP/IP или его последующих расширений/преемников и/или других IP-совместимых протоколов;

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

Инфраструктура Интернет(рис.2):

магистральный уровень (система связанных высокоскоростных телекоммуникационных серверов).

уровень сетей и точек доступа (крупные телекоммуникационные сети), подключенных к магистрали.

уровень региональных и других сетей.

ISP – интернет-провайдеры.

пользователи.

К техническим ресурсам сети Интернет относятся компьютерные узлы, маршрутизаторы, шлюзы, каналы связи и др.

Независимость от конкретной СУБД - student2.ru

Рис.2 Инфраструктура сети Интернет

В основу архитектуры сетей положен многоуровневый принцип передачи сообщений. Формирование сообщения осуществляется на самом верхнем уровне модели ISO/OSI.. Затем (при передаче) оно последовательно проходит все уровни системы до самого нижнего, где и передается по каналу связи адресату. По мере прохождения каждого из уровней системы сообщение трансформируется, разбивается на сравнительно короткие части, которые снабжаются дополнительными заголовками, обеспечивающими информацией аналогичные уровни на узле адресата. В этом узле сообщение проходит от нижнего уровня к верхнему, снимая с себя заголовки. В результате адресат принимает сообщение в первоначальном виде. В территориальных сетях управление обменом данных осуществляется протоколами верхнего уровня модели ISO/OSI. Независимо от внутренней конструкции каждого конкретного протокола верхнегоуровня для них характерно наличие общих функций: инициализация связи, передача и прием данных, завершение обмена. Каждый протокол имеет средства для идентификации любой рабочей станции сети по имени, сетевому адресу или по обоим этим атрибутам. Активизация обмена информацией между взаимодействующими узлами начинается после идентификации узла адресата узлом, инициирующимобмен данными. Инициирующая станция устанавливает один из методов организации обмена данными:метод дейтаграмм или метод сеансов связи. Протокол предоставляет средства для приема/передачи сообщений адресатом и источником. При этом обычно накладываются ограничения на длину сообщений.

Наши рекомендации