Какие улучшения SQL вы ждете? - PullRequest
16 голосов
/ 24 января 2009

Работа с SQL показывает нам некоторые ограничения и дает нам возможность представить, что может быть.

Каких улучшений в SQL вы ждете? Что бы вы поставили поверх списка желаний?

Думаю, было бы неплохо, если бы вы опубликовали в своем ответе базу данных, в которой отсутствует запрос функции.

Ответы [ 46 ]

2 голосов
/ 06 февраля 2009

В моем списке пожеланий есть база данных, поддерживающая подзапросы в CHECK-ограничениях, без необходимости полагаться на материализованные приемы просмотра . И база данных, которая поддерживает «утверждения» стандарта SQL, то есть ограничения, которые могут охватывать более одной таблицы.

Что-то еще: функция, связанная с метаданными, которая возвращает возможные значения данного столбца, если набор возможных значений мал. То есть, если у столбца есть внешний ключ к другому столбцу, он вернет существующие значения в столбце, на который ссылаются. Если столбец имеет ограничение CHECK, например «CHECK foo IN (1,2,3)», он вернет 1,2,3. Это упростило бы создание элементов графического интерфейса на основе схемы таблицы: если функция вернула список из двух значений, программист мог бы решить, что виджет переключателя будет релевантным - или если функция вернулась - например, - 10 значений, приложение показало вместо этого выпадающий виджет. И т.д.

1 голос
/ 06 февраля 2009

Абстрактные таблицы и подклассы

create abstract table person
  (
  id primary key,
   name varchar(50)
  );

create table concretePerson extends person
  (
  birth date,
  death date
  );

create table fictionalCharacter  extends person
  (
  creator int references concretePerson.id      
  );
1 голос
/ 06 февраля 2009

Дополнительные функции ООП:

  • хранимые процедуры и пользовательские функции

    CREATE PROCEDURE tablename.spname (params) AS ...

вызывается через

EXECUTE spname
FROM tablename
WHERE conditions
ORDER BY

, который неявно передает курсор или текущую запись в SP. (похоже на вставленные и удаленные псевдотаблицы)

  • определения таблиц с наследованием

определение таблицы, полученное из базовой таблицы, наследующее общие столбцы и т. Д.

Кстати, это не обязательно настоящий ООП, а только синтаксический сахар в существующей технологии, но это сильно упростит разработку.

1 голос
/ 26 января 2009

Агрегирование строк по группам (в Oracle возможно с этим трюком ):

SELECT deptno, string_agg(ename) AS employees
FROM   emp
GROUP BY deptno;

DEPTNO EMPLOYEES
---------- --------------------------------------------------
    10 CLARK,KING,MILLER
    20 SMITH,FORD,ADAMS,SCOTT,JONES
    30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD
1 голос
/ 06 февраля 2009

Увеличена поддержка временной базы данных на Sql Server. Интервалы, перекрытия и т. Д.

Увеличена поддержка OVER на Sql Server, включая LAG, LEAD и TOP.

1 голос
/ 20 марта 2009

Автоматическое уведомление dba в случае, когда оптимизатор создает план, отличный от плана, с которым был проверен запрос.

Другими словами, каждый запрос может быть зарегистрирован. В это время план сохраняется. Позже, когда запрос выполняется, если в план вносятся изменения, dba получает уведомление, что произошло что-то неожиданное.

1 голос
/ 21 февраля 2009

Некоторая таблица UPGRADE, которая позволяет вносить изменения в таблицу, чтобы она была похожа на заданную :

CREATE OR UPGRADE TABLE 
( 
  a VARCHAR,
  ---
)
1 голос
/ 04 марта 2009

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

1 голос
/ 27 февраля 2009

Мой список пожеланий (для SQLServer)

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

В настоящее время существует один план - если он больше не является оптимальным, он все равно используется или вместо него вычисляется новый.

  1. Собственное хранилище UTF-8

  2. Зеркальное отображение базы данных с несколькими резервными серверами и возможность использовать модель восстановления, приближающуюся к «простой», при условии, что все серверы работают и транзакция фиксируется везде.

  3. PCRE в заменяющих функциях

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

1 голос
/ 10 февраля 2009

Массивы

Я не уверен, что сдерживает это, но отсутствие массивов приводит к временным таблицам и связанному беспорядку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...