Информационные системы
Шрифт:
• QBE (Query By Example – запрос по образцу);
• QUEL (Query Language – язык запросов).
Сейчас наибольшее распространение получил язык SQL, который является единственным языком реляционных баз данных, принятым в качестве стандарта ANSI.
Примечание.
Хотя SQL и называется языком запросов, помимо средств построения запросов он включает в себя и все необходимые средства управления базами данных.
В данной главе мы рассмотрим возможности языка SQL по управлению объектами реляционной базы данных и администрированию баз данных.
Краткая история языка SQL
Язык реляционных баз
• определения схемы базы данных и манипулирования ею;
• определения ограничений целостности и триггеров;
• создания представлений базы данных;
• определения структур физического уровня, поддерживающих эффективное выполнение запросов;
• авторизации доступа к отношениям и их полям;
• поддержания точек сохранения и откатов транзакций.
В конце 70-х годов модифицированный вариант языка SEQUEL, получивший название SQL, был выпущен корпорацией Oracle в качестве языка коммерческой системы управления базами данных. В 1983 г. компания IBM выпустила SQL в качестве языка управления СУБД DB2.
Американский национальный институт стандартов (ANSI) принял язык SQL в качестве стандарта в 1986 г. С тех пор этот стандарт пересматривался два раза – в 1989 г. были внесены некоторые незначительные изменения, а в 1992 г. стандарт SQL был довольно существенно расширен, и в настоящее время известен под названием ANSI SQL-92, или SQL/92.
Примечание.
Следует понимать, что ANSI SQL – это стандарт на язык, а не сам язык. Каждый производитель систем управления базами данных, как правило, предлагает собственную реализацию языка SQL. Причем в таких реализациях могут быть как расширения существующего стандарта, так и отклонения от него, в том числе возможно отсутствие некоторых стандартных элементов языка. Тем не менее, независимо от реализации, основа SQL сохраняется, поэтому при изучении языка SQL главным является понимание базовых концепций и команд ANSI SQL-92.
Типы команд SQL
Команды языка SQL обычно подразделяются на несколько групп. Основные типы команд следующие:
• команды языка DDL (Data Definition Language – язык определения данных) используются для создания и изменения структуры объектов базы данных (например, для создания и удаления таблиц);
• команды языка DML (Data Manipulation Language – язык манипулирования данными) служат для манипулирования информацией, содержащейся в объектах базы данных;
• команды языка DCL (Data Control Language – язык управления данными) предназначены для управления доступом к информации, хранящейся в базе данных;
• команды языка DQL (Data Query Language – язык запросов к данным), используемые наиболее
• команды администрирования базы данных предназначены для контроля за выполняемыми действиями и анализа производимых операций;
• команды управления транзакциями.
Примечание.
Язык запросов к данным (DQL) будет рассматриваться в главе 11 на примере использования в приложениях Delphi.
Типы данных SQL/92
Типы данных, используемые в стандартном языке SQL, можно подразделить на следующие группы:
• строковые типы;
• числовые типы;
• типы для представления даты и времени.
Рассмотрим эти типы данных.
Строковые типы
В SQL/92 определены два строковых типа:
• символьные строки фиксированной длины;
• символьные строки переменной длины.
Символьные строки фиксированной длины
Данные, хранящиеся в виде символьных строк фиксированной длины, всегда занимают один и тот же объем памяти, определяемый при объявлении поля, независимо от реального размера строки, занесенной в поле. Объявление строки фиксированной длины согласно ANSI SQL-92 имеет вид:
Здесь п – длина строки, определяющая размер поля, к которому это объявление относится.
При использовании строк фиксированной длины пустые места обычно заполняются пробелами. Например, если размер поля задан равным 10, а в него введена строка, состоящая из 3 символов, то оставшиеся 7 символов заполняются пробелами.
Примечание.
Не следует использовать тип CHARACTER для полей, предназначенных для хранения длинных строк, длина которых может сильно варьироваться – это приведет к неоправданному расходу доступной внешней памяти (дискового пространства).
Символьные строки переменной длины
Длина строк переменной длины не является постоянной для всех данных, а зависит от реального размера строки, хранящейся в поле таблицы базы данных. Объявление строки переменной длины имеет вид:
Здесь п – число, определяющее максимально возможную длину строки.
В отличие от типа CHARACTER, тип VARCHAR обеспечивает более экономное расходование дискового пространства. Независимо от того, какой размер строки указан в объявлении, поле будет занимать столько места, сколько необходимо для хранения занесенной в него информации. Например, если объявлено поле VARCHAR(IO), и в него занесена строка длиной 3 символа, то для хранения этой строки будет использовано только три байта, а не 10, как в случае строки фиксированной длины.
Числовые типы
Числовые типы подразделяются на:
• целочисленные типы;
• вещественные типы с фиксированной точкой;
• вещественные типы с плавающей точкой;
• двоичные строки фиксированной и переменной длины.
Целочисленные типы
Стандартом ANSI SQL-92 устанавливаются два целочисленных типа:
• INTEGER – целое число со знаком размером 4 байта, может представлять числа в диапазоне от -2 147 483 648 до 2 147 483 647;
• SMALLINT – короткое целое число со знаком размером 2 байта, может представлять целые числа в диапазоне от -32 768 до 32 767.