vitus_wagner (
vitus_wagner) wrote2020-01-05 09:37 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Питонистическое.
Выяснил что в стандартной библиотеке питона модуль collections, а в нем функция namedtuple. Позволяющая генерировать наборы данных с именованными полями и нулевым оверхедом. Более того named tuples - hashable, т.е. могут использоваться в качестве индекстов dict или элементов множества. И их очень удобно создавать из списков, dictionaries и тому подобных конструкций.
Теперь хочу реализацию операций реляционной алгебры над set of named tuples.
Теперь хочу реализацию операций реляционной алгебры над set of named tuples.
no subject
no subject
no subject
Работать с данными все равно имеет смысл начиная с 1НФ, а вот там как разу уже дубликатов не будет.
Опять же, пересечение, объединение и симметрическая разность - очень полезные операции.
no subject
Дубликаты в данных легко и непринуждённо образуются в результате неаккуратной реализации проекции.
Допущение «set of named tuples», впрочем, эту проблему снимает. Если, конечно, нас устраивает иммутабельность объектов.
no subject
И в случае если данные у нас живут в памяти командно-строчного скрипта, ограничение на иммутабельность, как правило, не мешает. При старте прочитали с диска, обработали, построили рядом со старой новую копию, сохранили. (впрочем, в моем случае модифицировать придется не данные, а те объекты, о которых они. А метаинформацию в пригодном для чтении виде мне сгенерят внешние инструменты).
no subject
no subject
no subject
no subject
Данные размером меньше мегабайта обрабатывать во "взросллой СУБД", одностраничные служебные записки писать в полнофункциональном офисном пакете и так далее.
no subject
no subject
no subject
no subject
Вот я сейчас бегло пробежался по источникам, и там наоборот, говорят:
а также
no subject
no subject
Это странное заблуждение, к тому же уникальность элементов набора -- это свойство области предметной области, а не области схемы БД.