Переносимость и интероперабельность информационных систем, международные стандарты. Язык реляционных запросов SQL. Типы данных. 


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



ЗНАЕТЕ ЛИ ВЫ?

Переносимость и интероперабельность информационных систем, международные стандарты. Язык реляционных запросов SQL. Типы данных.



 

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

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

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

На сегодняшний день приняты международные стандарты языков Фортран-95, Паскаль, Ада, Си и Си++, SQL/89,SQL/92. Понятно, что Фортран не является языком, подходящим для программирования информационных систем. Одним из основных недостатков стандарта для языка Паскаль является отсутствие в нем средств раздельной компиляции. Язык Ада пригоден для любых целей, но отличается своей громоздкостью.

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

SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL является информационно-логическим языком, а не языком программирования. SQL основывается на реляционной алгебре. Язык SQL делится на три части:

· операторы определения данных (Data Definition Language, DDL)

· операторы манипуляции данными (Data Manipulation Language, DML)

· операторы определения доступа к данным (Data Control Language, DCL)

Язык SQL (Structured Query Language) стал единственным практически используемым языком реляционных БД.

Для удовлетворения современных требований к корпоративным БД ISO разработал новый стандарт SQL/92. Большинство современных коммерческих реляционных СУБД соответствует стандарту SQL/89. Минимальный стандарт ANSI/ISO SQL/92 реализован в сервере Oracle 7.3., включая усовершенствованное средство обеспечения целостности, специфицирующее синтаксис и поведение ограничений целостности.

Стандарт SQL определяется ANSI— American National Standarts Institute (Американским Национальным Институтом Стандартов) и в настоящее время принят ISO — International Standarts Organization (Международной Организацией по Стандартизации). С помощью SQL можно создавать таблицы данных; хранить, получать и изменять данные; изменять структуру таблиц; объединять данные и выполнять вычисления; обеспечивать защиту данных.

ANSI SQL стандарт распознает только текст и число, в то время как большинство коммерческих программ используют другие специальные типы, такие как DATЕ и TIME — фактически почти стандартные типы. Некоторые пакеты также поддерживают такие типы, как,например, MONEY и BINARY.

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

CHARACTER(length) определяет спецификацию строк символов, где length задает длину строк заданного типа. Большинство реализаций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).

Поле VARCHAR может быть любой длины, включая реализационно-определяемый максимум. Этот максимум может меняться от 254 до 2048 символов для VARCHAR и до 16000 символов для LONG. LONG обычно используется для текста пояснительного характера или для данных, которые не могут легко сжиматься в простые значения полей; VARCHAR может использоваться для любой текстовой строки, чья длина может меняться.

Точные числовые типы — это числа, с десятичной точкой или без десятичной точки, которые могут представляться в виде [+|-]<целое без знака>[.<целое без знака>] и специфицироваться как:

DECIMAL(precision [, scale]) — аргумент размера имеет две части: точность и масштаб. Масштаб не может превышать точность. Точность указывает сколько значащих цифр имеет число. Масштаб указывает максимальное число цифр справа от десятичной точки.

NUMERIC(precision [, scale]) — такое же как DECIMAL за исключением того, что максимальное десятичное не может превышать аргумента точности

INTEGER — число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от десятичной точки, т.е. с масштабом равным 0.

SMALLINT — такое же как INTEGER, за исключением того, что, в зависимости от реализации, размер по умолчанию может (или не может) быть меньше чем INTEGER.

Приблизительные числовые типы — это числа в показательной (экспоненциальной по основанию 10) записи, представляемые как <литеральное значение точного числа>Е<целое со знаком>и специфицирущиеся следующим образом:

FLOAT[(precision)] — число с плавающей запятой. Аргумент размера состоит из одного числа, определяющего минимальную точность.

REAL — такое же как FLOAT, за исключением того, что никакого аргумента размера не используется. Точность устанавливается реализационно-зависимой по умолчанию.

DOUBLE PRECISION — такое же как REAL, за исключением того, что реализационно-определяемая точность для DOUBLE PRECISION должна превышать реализационно-определяемую точность REAL.


 

18. Язык реляционных запросов SQL. Команды языка определения данных.

 

 

SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.

SQL является информационно-логическим языком, а не языком программирования. SQL основывается на реляционной алгебре.

Язык SQL делится на три части:

· операторы определения данных (Data Definition Language, DDL)

· операторы манипуляции данными (Data Manipulation Language, DML)

· операторы определения доступа к данным (Data Control Language, DCL)

Преимущества:

· Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую.

· Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.

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

Недостатки:

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

· Повторяющиеся строки

· Неопределённые значения (nulls)

· Явное указание порядка колонок слева направо

· Колонки без имени и дублирующиеся имена колонок

· Отсутствие поддержки свойства «=»

· Использование указателей

· Высокая избыточность

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

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

· Сложность работы с иерархическими структурами. Ранее SQL не предлагал стандартного способа манипуляции древововидными структурами. Некоторые поставщики СУБД предлагали свои решения. Например, Oracle использует выражение «CONNECT BY». В настоящее время в качестве стандарта принята рекурсивная конструкция «WITH».

Условно команды SQL можно разделить на четыре группы:

· команды определения данных;

· команды манипулирования данными;

· команды управления данными;

· команды управления транзакциями.

Команды языка определения данных (DDL - Data Definition Language) — это команды SQL, которые можно использовать для создания, изменения и удаления различных объектов базы данных.

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

CREATE – определяет новый объект базы данных.

ALTER – изменяет определение объекта базы данных.

DROP – удаляет объект базы данных из базы данных.

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

Таким образом, существует множество команд DDL, например: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE TRIGGER, CREATE USER, CREATE ROLE и т.д.

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 286; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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