Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
01.05.2014
Размер:
527.87 Кб
Скачать

(Глава 4).

Нормализация осуществляется последовательно с использованием пяти нормальных форм, включая форму Бойса-Кодда.

На этом «бумажное» построение БД заканчивается. Компьютерная реализация БД определяется языками описания (ЯОД) и манипулирования (ЯМД) данными.

Они могут базироваться на реляционной алгебре (процедурные языки) и реляционном исчислении кортежей и доменов (декларативные языки). На исчислении кортежей основан язык SQL, на исчислении доменов - язык QBE.

Рассмотрим возможности языков SQL и QBE. Прикладное их использование описано в главах 17 и 18.

5.2.1. Язык sql.

Для SQL имеется много вариантов и диалектов. Здесь изложим основные положения базового варианта: более подробное описание языка приведено в [2, 5, 6, 26, 33].

Иллюстрацию можно вести на ранее рассмотренном примере «Учебный процесс». Однако в нем имеются сложные связи и с методической точки зрения целесообразно использовать более простой пример.

Иллюстрацию языка SQL проведем поэтому на примере базы данных «Снабжение», представленной в табл. 5.3 - 5.5. Для нее схема Access-связей показана на рис. 5.2.

Название полей таблиц.

Таблица ПРОДАВЦЫ

пном - уникальный номер продавца, первичный ключ;

пимя - имя продавца;

город - город расположения продавца;

комм - комиссионные продавца.

Таблица ЗАКАЗЧИКИ

зном - уникальный номер заказчика, первичный ключ;

зимя - имя заказчика;

рейтинг - число, показывающее уровень предпочтения данного заказчика перед другими;

пном - номер продавца, внешний ключ.

Таблица ЗАКАЗЫ

прном - уникальный номер заказа, первичный ключ;

сумпр - сумма (цена) заказа;

датпр - дата получения заказа;

зном - номер заказчика, делающего заказ, внешний ключ;

пном - номер продавца, продающего заказ, внешний ключ.

Вьщеляют статический и динамический язык программирования SQL.

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

Статический язык программирования SQL.

В языке SQL возможно выделить три основные группы операций: создание (CREATE), обновление (INSERT, UPDATE, DELETE), запрос (SELECT). Они имеют следующие стандарты, в которых приняты обозначения: | - все, что предшествует символу, можно заменить тем, что следует за ним; {} - единое целое для применения символа; [] -необязательное выражение; ... - повторяется произвольное число раз ; .,... -повторяется произвольное число раз, но любое вхождение отделяется запятой.

CREATE TABLE <имя таблицы>

({<имя столбца> <тип данных> [размер]

[<тип столбца>...]}.,...);

[<тип таблицы>].,..); (5.1)

Э-

Типы данных могут быть INTEGER, CHARACTER, DECIMAL, NUMERIC, SMALLINT, FLOAT, REAL, PRECISION, LONG, VARCHAR, DATE, TIME. Четыре последние типа не входят в стандарт SQL, но им могут поддерживаться.

Тип столбца (и тип таблиц) может быть UNIQUE, PRIMARY KEY, CHECK <предикат>, DEFAULT = <список полей>, REFERENCE <имя таблицы> [(<имя столбца>,...)].

INSERT INTO <имя таблицы>[(<имя столбцах,...)] (5.2)

{VALUES(<cписок полей>).,...}

DELETE <имя предиката> (5.3)

[WHERE <имя предиката> [WHERE CURRENT OF <имя курсора> (*только вложенный*)];

SELECT * |[{DISTINCT|ALL]<cnHCOK полей> (5.4)

FROM <имя таблицы> [<алиас>]} ...

[WHERE <предикат>]

[GROUPBY {<имя столбца>|<целое>}.,...]}

[HAVING <предикат>] [ORDER BY {<имя столбца>}]|<целое>}...]

[{UNION}];

Выделяют две разновидности языка SQL: интерактивный и вложенный.

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

Вложенный SQL состоит из команд SQL, помещенных внутри программ, которые обычно написаны на некотором другом языке (типа КОБОЛА или Паскаля). Это делает такие программы более мощными и эффективным.

Будет рассматривать преимущественно - при отсутствии упоминаний -интерактивный язык.

В нем возможно выделить:

DDL (Язык Описания Данных) - язык описания схемы и в ANSI он состоит из команд, создающих объекты (таблицы, индексы, виды) в базе данных;

DML (Язык Манипулирования Данными) - набор команд, определяющих, какие значения представлены в таблицах в любой момент времени;

DCD (Язык Управления Данными) состоит из средств, которые определяют, разрешение пользователю выполнять определенные действия.

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

  1. создание БД - структуры таблиц, заполнение БД данными, создание видов, обеспечение целостности, система доступа (разрешений), словарь данных, многопользовательский режим;

  2. использование БД - запрос в различных формах (в том числе с обновлением).

Отдельно рассмотрим основы вложенного языка SQL.

Соседние файлы в папке Набор конспектов по БД