Общие сведения. Реляционный подход к организации баз данных в настоящее время является наиболее распространенным, хотя наряду с общепризнанными достоинствами обладает и рядом

ЯЗЫК SQL

Выводы

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

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

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

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

В настоящее время основным предметом критики реляционных СУБД является их недостаточная эффективность при использование в нетрадиционных областях (наиболее распространенными примерами которых являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных. Еще одним часто отмечаемым недостатком реляционных баз данных является невозможность адекватного отражения семантики предметной области. Другими словами, возможности представления знаний о семантической специфике предметной области в реляционных системах ограничены. Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков.

Рассматривая вопросы, связанные с БД и СУБД, было бы нелогично оставить в стороне язык баз данных – SQL. Чтобы получить общее представление об его особенностях и возможностях вполне достаточно ограничится перечислением основных операторов языка.

Язык SQL (эта аббревиатура должна произноситься как "сикуель", однако все чаще говорят "эс-ку-эль") в настоящее время является промышленным стандартом, который в большей или меньшей степени поддерживает любая СУБД, претендующая на звание "реляционной".

В начале 70-х годов в компании IBM была разработана экспериментальная СУБД SystemR на основе языка SEQUEL (Structured English Qeury Language – структурированный английский язык запросов), который можно считать непосредственным предшественником SQL. Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. В 1981 году IBM объявила о своем первом, основанном на SQL программном продукте – SQL/DS. Чуть позже к ней присоединились Oracle и другие производители. Первый стандарт языка SQL был принят Американским национальным институтом стандартизации (ANSI) в 1987 (так называемый SQL level 1) и несколько уточнен в 1989 году (SQL level 2). Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 нового расширенного стандарта (ANSI SQL-92 или просто SQL-2). В настоящее время ведется работа по подготовке третьего стандарта SQL, который должен включать элементы объектно-ориентрованного доступа к данным.

В SQL определены два подмножества языка:

· SQL-DDL (Data Definition Language) – язык определения структур и ограничений целостности баз данных. Сюда относятся команды создания и удаления баз данных; создания, изменения и удаления таблиц; управления пользователями и т.д.

· SQL-DML (Data Manipulation Language) – язык манипулирования данными: добавление, изменение, удаление и извлечение данных, управления транзакциями

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

· Символьные типы данных – содержат буквы, цифры и специальные символы: CHAR или CHAR(n),VARCHAR(n )

· Целые типы данных – поддерживают только целые числа (дробные части и десятичные точки не допускаются): INTEGER или INT,SMALLINT

· Вещественные типы данных – описывают числа с дробной частью: FLOAT и SMALLFLOAT, DECIMAL(p), DECIMAL(p,n)

· Денежные типы данных – описывают, естественно, денежные величины: MONEY(p,n).

· Дата и время – используются для хранения даты, времени и их комбинаций: DATE,TIME,INTERVAL,DATETIME

· Двоичные типы данных – позволяют хранить данные любого объема в двоичном коде (оцифрованные изображения, исполняемые файлы и т.д.): BINARY,BYTE, BLOB

· Последовательные типы данных – используются для представления возрастающих числовых последовательностей: SERIAL

5.2. DDL: Операторы создания схемы базы данных

Перечислим основные операторы DDL в табл. 3 - 6

Таблица 3 – Операторы базы данных:

Команда Описание
Создание базы данных. CREATE DATABASE <имя_базы_данных>
Удаление базы данных. DROP DATABASE <имя_базы_данных>

Таблица 4 – Операторы модификации таблиц:

Команда Описание
Добавить столбцы ALTER TABLE <имя_таблицы> ADD (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] [REFERENCES <имя_мастер_таблицы> [<имя_столбца>]],...)
Удалить столбцы ALTER TABLE <имя_таблицы> DROP (<имя_столбца>,...)
Модификация типа столбцов ALTER TABLE <имя_таблицы> MODIFY (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] [REFERENCES <имя_мастер_таблицы> <имя_столбца>]],...)

Таблица 5 – Операторы работы с индексами

Команда Описание
Создание индекса CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...) [REFERENCES <имя_мастер_таблицы> [<имя_столбца>]],...)
Удаление индекса DROP INDEX <имя_индекса>

Таблица 6 – Операторы управления правами доступа

Команда Описание
Операция передачи прав на таблицу GRANT <тип_права_на_таблицу> ON <имя_таблицы> [<список_столбцов>] TO <имя_пользователя> Типы прав: · SELECT - получение информации из таблицы · UPDATE - изменение информации в таблице · INSERT - добавление записей в таблицу · DELETE - удаление записей из таблицы · INDEX - индексирование таблицы · ALTER - изменение схемы определения таблицы · ALL - все права
Отмена прав REVOKE <тип_права_на_таблицу> ON <имя_таблицы> [<список_столбцов>] FROM <имя_пользователя>

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: