Основные операции работы с данными
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 21.02.16 21:23
Оценка: 4 (1)
Задумался над операциями с данными. Для начала взять SQL с его DML.

Structured Query Language — «язык структурированных запросов»

операторы манипуляции данными (Data Manipulation Language, DML):

SELECT выбирает данные, удовлетворяющие заданным условиям,
INSERT добавляет новые данные,
UPDATE изменяет существующие данные,
DELETE удаляет данные;

Не так много операторов, но их хватает для работы с данными. Остальное предназначено для другого. С другой стороны REST, вроде иное назначение, но основные принципы казалось бы те же самые.

Representational State Transfer — «передача состояния представления»

Хотя данная концепция лежит в самой основе Всемирной паутины, термин REST был введён Роем Филдингом (англ. Roy Fielding), одним из создателей протокола HTTP, лишь в 2000 году. В своей диссертации «Архитектурные Стили и Дизайн Сетевых Программных Архитектур» («Architectural Styles and the Design of Network-based Software Architectures»)в Калифорнийском университете в Ирвайне он подвёл теоретическую основу под метод взаимодействия клиентов и серверов во Всемирной паутине, абстрагировав его и назвав «передачей репрезентативного состояния».


А можно ещё почитать "Архитектура корпоративных программных приложений" Мартина Фаулера.

CRUD: Create, Read, Update, Delete — «создание, чтение, обновление, удаление»

Operation SQL HTTP DDS
Create INSERT PUT / POST write
Read (Retrieve) SELECT GET read / take
Update (Modify) UPDATE POST / PUT / PATCH write
Delete (Destroy) DELETE DELETE dispose


Представлять Data Distribution Service думаю нет особого смысла. Кто увлекается поделиями OMG, тот скорее всего так же знает, про CORBA, UML и прочие, а кто не знает, тому и не надо.

Есть ещё Design Patterns, это уж так добавил в общем плане, где шаблон проектирование Свойство (Property) представлен составляющими Accessor и Mutator, а конструктор и деструктор за компанию, чтобы забить место. И конечно, С++, операторы new, delete и методы реализующие get, set.

Ниже приведён рисунок сопоставления, набросал на скорую руку, что вспомнилось, может не совсем верно, но не суть. Важно, что многие люди пришли к одной и той же идее. Для простоты буду называть её CRUD, так как образцы проектирования (design patterns) одновременно обо всём и ни о чём.

  рисунок 1. Сопоставление операция с данными в стиле CRUD

И вот вопрос, приходилось ли вам применять этот принцип на практике. Возможно в каком-то более сложном виде как у того же Мартина Фаулера в модели предметной области. Или может быть кто-то считает, что четырёх методов недостаточно, и лучше использовать что-то другое, на вскидку XML-RPC, CORBA, а то и вовсе какое-нибудь МЫЛО. Речь может быть так же об уровнях, слоях и прочих абстрактных прослойках.

  уровни и слои

Можно так же прокомментировать в стиле, "ерунда это всё, только зря время от просмотра котиков отнимает":

Встречает мастер своего преподавателя по вышке лет через восемь после
окончания вуза, разговорились, вспомнили время былое. Профессор
спрашивает:
— Вот я вам читал три года высшую математику, скажи, в жизни тебе мои
знания когда-нибудь пригодились?
Студент, подумав:
— А ведь был один случай.
— Очень интересно, расскажите, я его буду на лекциях рассказывать, что
высшая математика не такая абстрактная наука и в жизни бывает нужна.
— Шел я как-то по улице, и мне шляпу ветром в лужу сдуло. Так я взял
кусок проволоки, загнул его в форме интеграла и шляпу достал!

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.