|
|
|
Отрицательные OO-утверждения
- Relvars - это не домены.
- Никакое значение не должно обладать каким-либо ID, отличным от самого этого значения.
Как видно, это очередной "наезд" на объектно-ориентированный мир. Но утверждение не слишком корректное, поскольку в объектном мире никто и никогда не утверждал, что у значений должны существовать ID. Говорится про "object identity", то есть про существование уникальной идентификации объектов. Но Д&Д вообще не хотят соглашаться с наличием понятия объекта.
Очень строгие RM-суждения
- В языке D следует обеспечить механизм, в соответствии с которым значения некоторого определенного возможного ключа (или его компонентов) для некоторой указанной relvar поставляются системой. Следует также обеспечить механизм, в соответствии с которым произвольное отношение может быть расширено атрибутом, значения которого a) уникальны внутри этого отношения (или внутри некоторых разделов этого отношения) и b) поставляются системой.
- В язык D следует включить некоторую декларативную сокращенную форму для выражения ссылочных ограничений (называемых также ограничениями внешнего ключа).
- Если RX - реляционное выражение, то по определению RX можно считать обозначением relvar R -- либо определенной пользователем (если RX состоит только из имени relvar), либо определяемой системой (в противном случае). Желательно, хотя и не всегда возможно, чтобы система была в состоянии выводить возможные ключи R таким образом, что:
- Если RX предназначено для определения выражения для некоторой виртуальной relvar R', то эти выводимые возможные ключи можно проверить на соответствие возможным ключам, явно определяемым для R'. Если конфликт не обнаруживается, то выводимые ключи становятся возможными ключами R';
- Сведения о выводимых ключах могут быть включены в информацию об R, доступную пользователям языка D (через "метазапрос").
В языке D следует поддерживать такие возможности, но без какой-либо гарантии того, что a) эти выводимые ключи не составляют точного надмножества множества реальных возможных ключей и b) выводимый возможный ключ обнаружен для каждого реального возможного ключа.
- В языке D следует поддерживать ограничения переходов, т.е. ограничения на допустимые изменения значений данных relvar или базы данных.
- В языке D следует поддерживать некоторую сокращенную форму для выражения запросов с квотами. Для формулировки подобных запросов не должно требовать преобразование соответствующего отношения, например, в массив.
- В языке D следует поддерживать некоторую сокращенную форму для выражения операции обобщенного транзитивного замыкания, включая возможность определения обобщенных операций конкатенации и агрегации.
- В языке D следует допустить, чтобы параметры определяемых пользователями операций (включая операции над значениями-отношениями, см. RM-утверждение 20) могли быть кортежами, отношениями или скалярами.
- Для работы с "отсутствующей информацией" в языке D следует обеспечить некоторый механизм специальных значений.
В следующий раз мы обсудим соответствующий механизм, предлагаемый Д&Д в их Tutorial D.
- Следует обеспечить возможность реализации языка SQL средствами языка D -- не потому, что такая реализация желательна сама по себе, а в связи с тем, что это обеспечит безболезненный переход к D для пользователей SQL. С той же целью следует обеспечить возможность преобразования существующих баз данных SQL в такую форму, с которой D-программы могли бы работать без ошибок.
У меня имеются сильные сомнения относительно реальности последнего суждения. В прошлом предпринимались многочисленные попытки реализации SQL с использованием реляционной алгебры, и они приводили к необходимости очень сильных расширений алгебры. При той реляционной чистоте, которую Д&Д требуют от языка D, его возможностей, скорее всего, не хватит для реализации огромного и разнородного языка SQL.
Назад |
Содержание |
Вперед
|
|
|
|
|
|
|
|
Новости мира IT:
- 04.02 - Отчёт о развитии Fedora Workstation: AI, Wayland, HDR, MIPI-камеры и Flatpak
- 04.02 - Для борьбы с телефонными мошенниками в России будут использовать ИИ и базу биометрических данных
- 04.02 - Opera представила заботливый браузер Air — он поможет бороться со стрессом и поддерживать концентрацию
- 04.02 - Microsoft причислила к вредоносам средства обхода ограничений для установки Windows 11
- 04.02 - Китай начал антимонопольное расследование против Google в ответ на повышение импортных пошлин США
- 04.02 - OpenAI выпустит ИИ-гаджет, который кардинально изменит взаимодействие человека с компьютером
- 04.02 - Энтузиаст создал клиент Discord для древних ПК на Windows 95 и 98
- 04.02 - «Нестабильная, но многообещающая»: американцы начали тестировать спутниковую связь Starlink для обычных смартфонов
- 04.02 - Суд обязал ЕС выплатить компании Intel €515 млн за отменённый штраф 2009 года
- 31.01 - Apple поставила новый рекорд по числу активных устройств, но рост замедлился
- 31.01 - Первое в мире судно с захватом CO2 из собственных выхлопов скоро отправится в море
- 31.01 - Apple отчиталась о «лучшем за всю историю квартале» вопреки падению продаж iPhone
- 31.01 - Intel завершила год с убытками в $18,8 млрд — продажи Core и Xeon упали, но руководство верит, что скоро всё наладится
- 31.01 - Российские медиа объявили войну пиратам: число заблокированных ссылок в поисковиках удвоилось за год
- 31.01 - Почти половина бизнеса IBM теперь приходится на ПО — компания делает ставку на ИИ и open source
- 27.01 - Microsoft открыл код СУБД DocumentDB, основанной на PostgreSQL
- 27.01 - На соревновании Pwn2Own Automotive 2025 представлено 49 уязвимостей автомобильных систем
- 27.01 - Россия опустилась 8-е место в мире по количеству DDoS-атак в 2024 году
- 27.01 - Биткоин провалился ниже $98 тыс. после обвала акций американских ИИ-компаний
- 27.01 - В Великобритании появится крупнейший в Европе дата-центр, который построят для неназванного гиперскейлера
Архив новостей
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |
|