wizzard: (Default)
гуру SQL показывают, как натянуть сову на глобус! и вроде неплохо получается.



PDF: https://mega.co.nz/#!z4xkBZJJ!RrNmCqxBwT06rMiHhfBNDeLqso-jJzXlF2lMGvOWhyQ
wizzard: (Default)

можно почитать больше и с картинками у Алексея - http://alexey.raga.name/

“- Теперь у меня есть на это ответ. Я знаю, что такое noSQL и покажу вам. Больше нет никакого смысла противопоставлять SQL и noSQL, теперь наступит мир, сказал Эрик.”

…Далее он всячески “наезжал” на язык SQL (а что, как архитектор MS SQL Server он легко может себе такое позволить) за отсутствие возможности композиции, отсутствие возможности рекурсии как таковой (да, есть теперь CTE, но это не то), за то, что тип результата не соответствует типу запроса, много и интересно ссылался на различных мировых светил и т.д.

…все законы и свойства, применимые к SQL-системам, дуально применимы к coSQL системам и наоборот. Взять ту же ссылочную целостность:
- в SQL ссылки направлены от родителя к детям, в coSQL – от детей к родителям;
- в SQL используется “внешняя” системы ссылок (объекты маркируются ID), в coSQL – внутренняя система (ссылки на сами объекты);
И так много, много пунктов.

Что из этого следует?
А то, что SQL и coSQL могут сосуществовать в одной экосистеме (и то, что этим занимается архитектор MS SQL Server уже является кое-каким намёком), а не являются “непримиримыми врагами”.
То, что (и Эрик это даже прямо сказал) обе эти системы могут иметь некий общий “интерфейс” и взаимодействие с системой (язык, если хотите) можно построить на основе этого “интерфейса”, то есть, одинаково работать и с тем и с другим.
То, что можно использовать наработки из одной системы в другой. Например, в SQL-системах имеются прекрасные оптимизаторы запросов и ещё куча всяческих полезных алгоритмов – вероятно, их можно будет применить в coSQL.
То, что, в конце концов, системы являются трансформируемыми друг в друга (и это следует напрямую из математики).

P.S. Нашел совершенно случайно. Подписался ;)

wizzard: (Default)

необходим embedded database engine. либо object-oriented, либо relational.

target platform – Linux, Windows, Windows Mobile. target language – C#. поддержка LINQ/EF не обязательна, но приветствуется.

в базе есть мэппинг NxM, по которому неплохо бы уметь делать выборки, ну и еще есть табличка с paging по datetime. в остальном на индексы пофигу (i.e. query by primary key only)
теоретчиески, его (мэппинг) можно засунуть в оперативку, должно влезть, тогда на индексы совсем пофигу.

более 10к записей на таблицу не планируется.

wizzard: (Default)

оно вообще неплохо. работает. только вот мне как-то кажется, что компилить C# в AST, AST в SQL, SQL в query, query в план запроса (см. серию постов [livejournal.com profile] zabivator про устройство БД) - это какой-то оверкилл. просадка перформанса в дебаге оч существенная, по крайней мере.

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

так вот, кажется, что идеальное API для БД и для работы с файлами – это что-то вроде коллекций, которые хранятся или в памяти, или на носителе, и имеет copy-by-reference (для RAM или private storage) или copy-by-value (для сьемных носителей) семантику. ну и индексами они могут заведовать, чего уж там, это полезно :)

что-то подобное, кажется, приветствуют ребята из Фантома ([livejournal.com profile] dz и т.д.)

UPD: ну, не все так радужно, судя по совместному с [livejournal.com profile] ev_genus экспириенсу, подводных камней там тонны :) в основном потому, что если выбросить из головы процессы, файлы и потоки, то надо всё заново придумывать. как говорится, техника безопасности написана кровью.

wizzard: (Default)

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

UPD: А реально ли запустить Entity Framework и Linq to SQL под Mono (Debian) с SQLite и PostgreSQL?

Мне уже кажется, что можно, но, возможно, я что-то упустил. То есть, есть 3 движка Linq to SQL (.NET, Mono, DBLinq) и 3 SQLite провайдера, почти все комбинации запускаются. Перебирать лень.

UPD2: Ага, щас. Микрософтовский SQL кодоген для autogenerated IDs для SQLite генерирует бред, DBLinq – полагается на дебильную эвристику “мы не будем строить метатипы, а понадеемся, что их явно везде юзер прописал, и дефолтные значения пропертей мы тоже не знаем”. ну что за гавно? причем, тесты проходят, т.е. это явно by design. Mono – обладает обеими багами сразу.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 10th, 2025 03:55 pm
Powered by Dreamwidth Studios