Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экз_бд.docx
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆
  1. Преимущества и недостатки sql

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

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

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

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

Недостатки:

  • Несоответствие реляционной модели данных. Следующие проблемы SQL:

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

Неопределенные значения

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

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

Отсутствие поддержки свойства «=» (хз что это_

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

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

  • Сложность (задумывался как инструмент пользователя, но стал инструментом программиста из-за большой сложности)

  • Отступления от стандартов (как я понял тут подразумевается наличие процедурных расширений и средства связи с другими языками)

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

  1. Реляционные операции.

Основные восемь операций реляционной алгебры были предложены Э.Коддом.

  • Объединение

  • Пересечение

  • Вычитание

  • Декартово произведение

  • Выборка

  • Проекция

  • Соединение

  • Деление

Первая половина операций аналогична таким же операциям над множествами. Часть операций можно выразить через другие операции.

Проекция является операцией, при которой из отношения выделяются атрибуты только из указанных доменов, то есть из таблицы выбираются только нужные столбцы, при этом, если получится несколько одинаковых кортежей, то в результирующем отношении остается только по одному экземпляру подобного кортежа. Для примера сделаем проекцию на таблице PRODUCTS выбрав из нее ID и PRICE. Синтаксис операции: π(ID, PRICE) PRODUCTS Выборка — это операция, которая выделяет множество строк в таблице, удовлетворяющих заданным условиям. Условием может быть любое логическое выражение. Для примера сделаем выборку из таблицы с ценой больше 90. Синтаксис операции: σ(PRICE>90) PRODUCTS

Умножение или декартово произведение является операцией, производимой над двумя отношениями, в результате которой мы получаем отношение со всеми доменами из двух начальных отношений. Кортежи в этих доменах будут представлять из себя все возможные сочетания кортежей из начальных отношений. Синтаксис операции: PRODUCTS × SELLERS

Операция соединения обратна операции проекции и создает новое отношение из двух уже существующих. Новое отношение получается конкатенацией кортежей первого и второго отношений, при этом конкатенации подвергаются отношения, в которых совпадают значения заданных атрибутов. В частности, если соединить отношения PRODUCTS и SELLERS, этими атрибутами будут атрибуты доменов ID. Результатом операции пересечения будет отношение, состоящее из кортежей, полностью входящих в состав обоих отношений. Результатом вычитания будет отношение, состоящее из кортежей, которые являются кортежами первого отношения и не являются кортежами второго отношения.