LINUX.ORG.RU

Реляционная база данных с нуля

 , , , ,


0

5

Испанец Тони Саро решил написать свою реляционную базу данных с нуля, не используя никаких сторонних библиотек. В результате получился интересный видео ролик с теорией и проект на языке Rust:

https://www.youtube.com/watch?v=5Pc18ge9ohI (видео)

https://github.com/antoniosarosi/mkdb (проект)



Последнее исправление: zg (всего исправлений: 1)

Испанский Тони Саро

Так написано, как будто это нарицательное имя, типа может быть итальянский Тони Саро, вьетнамский Тони Саро и пр, и вообще как будто важно, что он испанец…
Наверное хотели написать: Испанский программист Тони Саро?

mydibyje ★★★★
()
Последнее исправление: mydibyje (всего исправлений: 1)

Там теория простая. Сложно становится когда надо чтоб оно и безопасно было и шустро. А базовая деревянная субд пишется довольно быстро.

peregrine ★★★★★
()
Ответ на: комментарий от zg

Это писать надо. По объёму это реально курсач или плохой диплом. Но даже курсач/плохой диплом у студента занимает месяц. У работяги обычно времени ещё меньше.

peregrine ★★★★★
()
Ответ на: комментарий от MKuznetsov

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

Это если без поддержки транзакций.

soomrack ★★★★★
()
Ответ на: комментарий от peregrine

Не бывает ненадежной поддержки, она или есть или ее нет. Если транзакция состоит из нескольких команд, то тут простой очередью не обойтись, нужно блочить таблицы, нужно уметь откатывать часть выполненных команд транзакции если она не состоялась, это весьма жирный кусок кода и не особо тривиальные архитектурные решения.

В одной очень популярной СУБД долгое время была поддержка только транзакций в рамках одного запроса. Допилили до нормального состояния, кажется, лет 10 назад… Название СУБД не помню, но она была очень популярна и куча проектов на ней делалось…

soomrack ★★★★★
()
Ответ на: комментарий от LamerOk

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

LamerOk ★★★★★ (22.06.24 11:19:25 IDT) дурачок

А вот и местный дурачок подтянулся.

zg
() автор топика
Ответ на: комментарий от soomrack

Не бывает ненадежной поддержки, она или есть или ее нет.

Правильно. Но кроме просто поддержки транзакций есть ещё поддержка нескольких уровней изоляции. А тут, разумеется, есть лишь один - самый базовый уровень изоляции транзакций. В любом случае проект и видео ролик очень интересные, прежде всего потому, что человек изучил теорию, рассказал её в ролике и реализовал в коде. Это гораздо интереснее выпендрёжных сообщений некоторых лоровских персонажей.

zg
() автор топика
Последнее исправление: zg (всего исправлений: 2)
Ответ на: комментарий от soomrack

Это точно. Любой образовательный контент на примере создания чего-то реального, пусть и в простом, учебном виде, крайне полезен.

Согласен! Это всяко лучше чем очередной треш-контент. Но чем этот образовательный лучше других? И почему на лоре еще нет новости про это

PRN
()
Ответ на: комментарий от PRN

Чем больше образовательного контента, тем лучше. У каждого своя система ценностей, свой взгляд на мир, своя система восприятия. Если контента много, то можно найти тот, который зайдет и с которым обучение будет легким и быстрым. А то раньше до интернета, было очень грустно, в библиотеке есть одна книга по теме, и если ты в ней не смог разобраться, то все, ты не разобрался. А написана она могла быть так хреново, что ууууххх.

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Чем больше образовательного контента, тем лучше.

Нет, конечно же. В случае с образованием «лучше» определяется качеством контента, а не его количеством. Чтобы понять теорему Пифагора тебе нужно одно хорошее объяснение, а не 100500 роликов на ютубе от деревенских дурачков с альтернативными теориями и терминологиями.

IT-ишечку это бъёт прямо в самую точку. У меня на собесе как-то был чувак, который не знал, что такое «замыкания», но понаделал кучу «обучающих» видосов, где наглядно демонстрировал своё незнание предмета.

А то раньше до интернета, было очень грустно,

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

в библиотеке есть одна книга по теме,

А в другой тебя забанили за дебош?

А написана она могла быть так хреново,

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

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Чтобы понять теорему Пифагора тебе нужно одно хорошее объяснение

Увы, нет. Система восприятия разная. То, что хорошо для одного, будет совсем непонятно для другого. У нас в школе на экзамене нужно было дать пять разных доказательств теоремы Пифагора, т.е. пять разных взглядов на нее. И это правильно.

100500 роликов на ютубе от деревенских дурачков с альтернативными теориями и терминологиями.

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

Раньше до интернета был клятый СССР и вся образовательная продукция проходила профессиональное ревью - косяки отлавливались ещё до выпуска в печать.

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

Сейчас эта привилегия сохранилась только за учебниками.

Не сохранилась.

в библиотеке есть одна книга по теме,

А в другой тебя забанили за дебош?

А в другой все могло быть уже разобрано, да и книжек всего ничего было. И куда ты за ними пойдешь? Библиотека РАН студенту недоступна была, нужно было работать в РАН, публичка – да. А так основная библиотека это университетская, а в остальные еще ехать надо, потом книгу искать, заказывать и пр. А времени у студента всего ничего…

soomrack ★★★★★
()
Ответ на: комментарий от mydibyje

Испанский Тони Саро

Так написано, как будто это нарицательное имя, типа может быть итальянский Тони Саро, вьетнамский Тони Саро и пр, и вообще как будто важно, что он испанец…

Наверное хотели написать: Испанский программист Тони Саро?

Испанский стыд Тони Саро 😊.

Virtuos86 ★★★★★
()
Ответ на: комментарий от soomrack

Чтобы понять теорему Пифагора тебе нужно одно хорошее объяснение

Увы, нет. Система восприятия разная. То, что хорошо для одного, будет совсем непонятно для другого.

КОНКРЕТНО ТЕБЕ нужно ровно одно.

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

Сейчас эта привилегия сохранилась только за учебниками.

Не сохранилась.

Не получишь шильдика «рекомендовано» без ревью.

100500 роликов на ютубе от деревенских дурачков с альтернативными теориями и терминологиями.

Со временем дрянь осядет

Лол, нет. Дрянь генерируется в геометрической прогрессии - её производят больше, чем она успевает осесть.

основная библиотека это университетская, а в остальные еще ехать надо, потом книгу искать, заказывать и пр.

Да, надо. Надо ехать, надо искать, надо заказывать, а потом ещё, сука, и читать её надо.

А времени у студента всего ничего…

Вот уж у кого, а у студента времени просто до жопы. Если сократить ежедневные пьянки хотя бы в половину - в сессию учить будет нечего.

LamerOk ★★★★★
()
Ответ на: комментарий от soomrack

ну как так не бывает. Вот если я в лоб буду новый файл бд писать на каждую транзакцию меняющую базу если она успешна и после записи удалять старый, это надёжно или нет? А если я как-то хитро изменения буду писать и время от времени файл в порядок приводить чтоб костыли оттуда уходили если в процессе сырой записи например надо деревья внутри перебирать? Вот пусть база у нас 100 гигов, переписывание всего файла с БД процедура не быстрая. Во время этого процесса много чего может произойти. Может очередь транзакций на выполнение занять всю оперативку и сервер может упасть из-за её нехватки, может питание отключат и очередь как минимум мы потеряем, как максимум, если мы решили сначала удалять, потом писать то вообще всё гг вп.

peregrine ★★★★★
()
Ответ на: комментарий от sparkie

Здесь все предельно просто. Кому ФП зашло, тем Rust нравится. Кому ФП не зашло, или вообще, кто толком не знаком с ФП, тем реклама Rust не нравится. Из моих наблюдений 90% программистов с ФП просто не знакома от слова «совсем». Соответственно, столько ненавистников у Rust.

При чем, чтобы не усиливать волну негодования, создатели Rust по возможности стараются дистанцироваться от ФП, но уши-то торчат и заметно торчат.

Для сравнения. С С++ уже иная ситуация. Там самая простая аналогия. Современный C++, может быть, и был когда-то красивым языком, но сейчас он больше похож на реинкарнацию ПЛ/1. Отсюда нелюбовь.

Два языка, но совершенно разные причины нелюбви. Ну, так, в качестве вечернего тролинга в выходной!

anonymous
()
Ответ на: комментарий от soomrack

езко снижало количество контента, который можно было выбросить на рынок, плюс цензура на соотв. марксизму-ленинизму

А сейчас никакой цензуры нет, а тиражи любой книги уровнем выше Донцовой, ничтожны.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от PRN

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

Как я написал выше, еще раз повторю: уши ФП торчат в Rust везде. Даже вот такие вещи: минимум мутабельности, неизменяемость в let по умолчанию, expression language вместо statement language, способ обработки ошибок Result как калька Either, RefCell как некое подобие IORef, характеристики trait как калька классов типов, generic constraints как калька ограничений по классам типов и многое, многое другое. Дальнейшее обсуждение по этому вопросу считаю бесполезным, очевидным для меня, но бесполезным для дискуссии (могу и не ответить).

Лучше за современный сверх меры переусложненный ПЛ/1 поговорить. Мне тут будет интереснее почитать мнения - все же с языком C++ знакомы на порядки больше людей, и знакомы они на порядки лучше

anonymous
()
Ответ на: комментарий от anonymous

Как я написал выше, еще раз повторю: уши ФП торчат в Rust везде

Так-то и на С можно ООП написать, он это не делает С ООП языком. Ржавый ни в каком месте не ФП. Так что успокойся)))

PRN
()
Ответ на: комментарий от PRN

А вот свои суждения приписывать мне не надо. Я и не писал, что Rust - язык ФП. Я написал, что он связан с ФП, и связь эта очевидна. Докопался до какой-то мелочи, а суть не заметил

anonymous
()
Ответ на: комментарий от rtxtxtrx

Те пистон, где ссылка на структуру в качестве первого аргумента обычно с именем self передается - ООП, а если в C или Go делаешь так же, то там нет ООП?

Из вашего пассажа можно сделать безумный вывод, что любой язык в котором можно передать ссылку на структуры - это ООП язык. Очевидно, что питон и си разнят гораздо более фундаментальные вещи, чем способ передачи ссылки на структуру в метод. В этой связи я в принципе не понимаю, при чем тут ссылка на селф. Говоря об ООП VS не ООП я бы в первую очередь подумал, как бы я программе на конкретном языке реализовал полиморфный вызов метода, а не как там ссылка передается.

FishHook
()
Ответ на: комментарий от anonymous

Поэтому 99% софта такого низкого качества!

Компенсируется доступностью высокоскоростого процессора и гигантской памяти. Программа должна быть написана ещё вчера.

anonymous
()
Ответ на: комментарий от sparkie

А почему тогда упоминание название языка программирования в топике про программирование - это реклама? Так раст не любишь, аж кушать не можешь, и само упоминание его тебя корёжит?

FishHook
()
Ответ на: комментарий от FishHook

Это как у некоторых упоротых иОсников). Есть подпись «Отправнено с IOs». Так и тут, у упоротых растоманов: «Написано на раст» XDDD Отношение соответствующее. Какая мне разница с чего отправлено или на чем написано, но они зачем-то считают своим долгом потыкать всем этим в нос))

PRN
()
Последнее исправление: PRN (всего исправлений: 1)