Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для Белаш / Лекции / 5 - Языки манипулирования реляционными данными.doc
Скачиваний:
0
Добавлен:
07.08.2024
Размер:
273.41 Кб
Скачать

14

Языки манипулирования реляционными данными (Data Manipulation Languages, dml)

Данные в БД хранятся в структурированном и непротиворечивом виде для того, чтобы ими можно было манипулировать:

  • извлекать данные по запросам пользователей;

  • вносить новые данные;

  • изменять существующие данные;

  • удалять данные.

Категории языков манипулирования реляционными данными:

1). Реляционная алгебра.

Реляционная алгебра похожа на обычную алгебру, в которой переменными являются отношения. Операторы +, -, * и т.д. действуют над отношениями, и результатом этих действий являются новые отношения.

Недостаток:

  • Трудна в использовании, т.к. является процедурной (имеет процедурный характер). Пользователь при формулировке запроса должен определить не только то, что он хочет получить, но и то, как это получить (каким путем).

Реляционная алгебра не используется в качестве языка запросов в коммерческих СУБД.

2). Реляционное исчисление.

В основе реляционного исчисления лежит раздел математики – исчисление предикатов, примененное к отношениям.

Различают два вида реляционного исчисления в зависимости оттого, что является переменной:

  • Реляционное исчисление с переменными-кортежами – переменной является кортеж отношения.

  • Реляционное исчисление с переменными на доменах – переменной является значение домена.

Достоинство:

  • Имеет непроцедурный характер. Пользователь при формулировке запроса должен определить только то, что он хочет получить, и не должен определять, как это получить (каким путем).

Недостаток:

  • Трудно в понимании и использовании.

Реляционное исчисление не используется в качестве языка запросов в коммерческих СУБД.

Разработчики СУБД искали другие непроцедурные стратегии манипулирования данными, к которым относятся следующие категории языков.

3). Языки, ориентированные на преобразования.

  • Непроцедурные языки.

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

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

Языки, ориентированные на преобразования используются в коммерческих СУБД (SQUARE, SEQUEL, SQL).

4). Графически языки.

  • Запрос по образцу (Query-by-Example).

  • Запрос из формы (Query-by-Form).

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

Графические языки имеют СУБД Approach (компании Lotus) и Access.

Язык структурированных запросов sql (Structured Query Language)

Разработка SQL началась в середине 70-х годов в исследовательском центре IBM в Сан-Хосе. Изначально язык носил название SEQUEL. В 1980 году он был переименован в SQL.

В настоящее время SQL:

  • Наиболее популярный язык манипулирования реляционными данными.

  • Рекомендован Американским национальным институтом стандартов (ANSI) в качестве стандартного языка манипулирования реляционными БД.

  • Используется как язык доступа к данным многими коммерческими СУБД.

  • Является стандартным языком для обмена информацией между компьютерами, т.к. существует версия SQL, которая может работать почти на любом компьютере и операционной системе.

Институт ANSI периодически публикует обновленные версии стандарта SQL.

Реализация SQL в каждой СУБД немного отличается от ANSI-стандарта.

Причины отличия:

  • Многие коммерческие СУБД были разработаны до того, как появилось соглашение о стандарте.

  • Производители закладывают в свои продукты дополнительные возможности с целью получить преимущества в конкурентной борьбе. (Одной лишь поддержки стандарта ANSI считается недостаточно для обеспечения привлекательности продукта).

SQL – язык, ориентированный на преобразования;

– принимает на вход одно или несколько отношений и выдает на выходе одно отношение;

– даже если результатом является одно число, это число считается отношением с одной строкой и одним столбцом.

Будем рассматривать язык SQL на примере конкретной СУБД – Access.

Пример: Реляционная БД разрабатываемой ИС (аэропорт) (часть БД, использующаяся для иллюстрации формирования SQL-запросов).

Рейс

Номер рейса

Пункт назначения

Время вылета

Время прибытия

Число мест

12345

Москва

10:13

12:55

100

55555

Владивосток

10:05

21:30

120

67890

Киев

3:15

8:15

100

77777

Астрахань

21:35

0:10

115

89898

Москва

10:25

13:25

60

Вылет

Номер рейса

Плановая дата

Реальная дата

Реальное время

12345

16.10.19

16.10.19

10:15

12345

17.10.19

17.10.19

10:30

12345

18.10.19

19.10.19

0:10

67890

16.10.19

16.10.19

10:00

67890

18.10.19

19.10.19

0:30

77777

16.10.19

16.10.19

21:35

77777

17.10.19

89898

16.10.19

16.10.19

12:00

Пассажир

Номер билета

Номер рейса

Дата вылета

Паспортные данные

Цена билета