1i7 (1i7) wrote,
1i7
1i7

Category:

Курс «Базы данных» — семестр 1

Материалы курса "базы данных" - семестр 1: классические реляционные базы данных с SQL, нереляционные базы NoSQL, веб-приложения. Студенты - 3й курс Цифровая экономика (Прикладная математика и информатика) и просто Прикладная математика и информатика в НГТУ им Р.Е.Алексеева.

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

Курс читаю, наверное, уже 3й год, но оцифровал в слайды только в этом, т.к. в аудитории на стену повесили телек, а в еще одной аудитории есть проектор. Я знаю, что на слайдах есть некоторое количество опечаток и вещей, которые можно улучшить, кое-что уже есть в заметках. Возможно (и скорее всего), я их исправлю, но не раньше, чем следующей осенью.

ЖЖ так и не разрешил встраивать слайды со спикердека, поэтому ссылками.

- Базы данных - лекция1 - Введение
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia1-vviedieniie

- Базы данных - лекция2 - Реляционные базы данных
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia2-rieliatsionnyie-bazy-dannykh

- Базы данных - лекция3 - Объектная модель DAO (ORM вручную)
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia3-obiektnaia-modiel-dao-orm-vruchnuiu

- Базы данных - лекция4 - Объектно-реляционное отображение ORM (здесь слайды начинаются как копия предыдущей лекции DAO, но потом идет продолжение про ORM)
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia4-obiektno-rieliatsionnoie-otobrazhieniie-orm

- Базы данных - лекция5 - Архитектура веб-приложения
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia5-arkhitiektura-vieb-prilozhieniia

- Базы данных - лекция6 - Веб-приложение на Node.js + SQL
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia6-vieb-prilozhieniie-na-node-dot-js-plus-sql

- Базы данных - лекция7 - Веб-приложение с Node.js + fs + AJAX
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia7-vieb-prilozhieniie-s-node-dot-js-plus-fs-plus-ajax

- Базы данных - лекция8 - обзор решений NoSQL
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia8-obzor-rieshienii-nosql

- Базы данных - лекция9 - Cassandra (семейство колонок)
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia9-cassandra-siemieistvo-kolonok

- Базы данных - лекция10 - MongoDB (документоориентированная СУБД)
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia10-mongodb-dokumientooriientirovannaia-subd

- Базы данных - лекция11 - Neo4j (СУБД на основе графов)
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia11-neo4j-subd-na-osnovie-ghrafov

- Базы данных - лекция12 - веб-приложение React.js+Node.js
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia12-vieb-prilozhieniie-react-dot-js-plus-node-dot-js

- Базы данных - лекция13 - подведение итогов, за скобками
https://speakerdeck.com/sadr0b0t/bazy-dannykh-liektsiia13-podviedieniie-itoghov-za-skobkami

ЖЖ разрешает встраивать слайды только со слайдшары, но на слайдшару я больше слайды не выкладываю, т.к. после покупки Линкедыном в ней поломали возможность загружать файлы с русскими именами (сколько же я убил времени, пока не понял, в чем проблема, ведь раньше работало), что является злостнейшим проявлением ascii-фашизма. Плюс порезали возможность загружать слайды заново (это уже не аски-фашизм, а тупой саботаж тупых менеджеров), ну и она еще раньше была зароскомнадзорена (но я бы, конечно, не стал бы предавать ее из-за таких обстоятельств, а, скорее, наоборот, собирался использовать как повод порекламировать ВПН).


Еще уже в конце семестра к нам в Нижний Новгород заехали товарищи из Постгрес-профешинал - разработчики Постгреса, и буквально заново открыли мне на него глаза, хотя Постгрес - чуть не первая (пожалуй, первая и есть) база, с которой я поимел дело, когда сам в начале нулевых будучи студентом делал лабы по курсу Базы данных в той же аудитории.

Моя копипаста из фейсбука
Вчера был на меропрятии - приезжали разработчики PostgreSQL (российский центр разработки Postgres Professional) Олег Бартунов и Иван Панченко и еще Брюс Момжиян (Bruce Momjian) из EnterpriseDB (еще более древний разработчик Постгреса), читали лекцию. Я про Постгрес, конечно, давно знал и временами использовал, но в детали как-то не углублялся. Сегодня выяснил много интересного (из лекции ретранслирую в основном технические факты, восторженные соображения по большей части мои собственные):
- Оказывается, в разработку Постгреса значительный вклад оказывает команда из России (Бартунов в нем один из ключевых разработчиков уже 20 лет, сейчас команда еще расширилась)
- У них полностью открытая модель разработки с обширным сообществом, вокруг проекта живет множество сторонних модулей и расширений, многие нововведения и расширения появляются и обкатываются из этой среды (вокруг Оракла, МС и MySQL такая жизнь не наблюдается, а наблюдается централизация).
- Сам Постгрес сейчас по факту - источник инноваций в области СУБД. С их подачи (и наработок, которые уже давно обкатывались в Постгресе) совсем недавно в стандарт SQL добавлена поддержка JSON (причем, это направление развивалось как раз Бартуновым), вслед за ними его будут (и уже начали) реализовывать Оракл и МС.
- Появление JSON в SQL предвещает новый виток в эволюции СУБД. Пик хайпа вокруг NoSQL спал, пошел процесс осмысления предложенных нововведений и, судя по всему, процесс переваривания всего хорошего из NoSQL классическими реляционными б/д во главе с Постгресом (SQL strikes back). Конкретно SQL JSON (который сейчас полнее всего реализован в Постгресе) делает ненужной (по крайней мере очень сильно осложняет жизнь) MongoDB - по скорости и фичам они теперь будут как минимум сравнимы, но Постгрес - это не только JSON, но и классическая проверенная годами SQL с кучей возможностей и расширений, а MongoDB - это только JSON и всё.
- В России сейчас быстрыми темпами происходит процесс передела рынка хранилищ данных - от Оракла к Постгресу. Оракл грозит прекратить (или уже по факту прекратил) продажу и поддержку своих новых продуктов из-за санкций (кажется, была недавно какая-то новость с Газпромом), Пострес технически способен его заменить (и уже много где заменяет), юридически эти товарищи специально по этому поводу создали здесь организацию Постгрес Профешшионал, добавили Постгрес в реестр отечественного ПО, получили сертификат ФСТЭК (их можно использовать в медицине и госорганах для хранения персональных данных), не знаю, как там чешется или не чешется МС, если не чешется, то альтернатив совсем не предвидится.

Если сложить все вместе, то получим, что новый виток инноваций в мире СУБД надвигается из ПостгреSQL (Оракл и МС его не возглавляют, а идут в фарватере), у которого есть хорошие шансы обосноваться на рынке корпоративных (и особенно, государственных) СУБД в России, при этом имея здесь реальный (а не профанационный) и важный для Постгреса центр разработки, из которого уже сейчас по факту исходит значительная часть этих самых мировых СУБД-инноваций. Я думаю, это все довольно любопытно, если учесть, что СУБД - это прям важная часть современного технологического стека.


еще https://www.facebook.com/anton.moiseev.35/posts/2373725312637626
Интересная статья про то, как устроена разработка бд Оракл: https://habr.com/post/429946/

По этому поводу выкладываю слайды Брюса Момжияна (Bruce Momjian, насколько я понял, одного из отцов-основателей интернет-версии Постгреса такого, каким мы его знаем сегодня: https://en.wikipedia.org/wiki/PostgreSQL#History) - с ноябрьской лекции https://www.facebook.com/anton.moiseev.35/posts/2310516705625154

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

Кстати, на этой же лекции в секции дополнительных вопросов спросил у Брюса, можно ли считать опенсорс коммунизмом в мире программного обеспечения. Он ответил в таком духе, что если сравнить проприетарный проект с фабрикой, которую владелец может в любой момент закрыть по своему усмотрению, а открытый проект - это такой проект, результаты которого принадлежат всем разработчикам и всему сообществу, то вполне можно, что идея вообще не новая, только, конечно, участники открытого проекта работают добровольно в удовольствие, а не по принуждению (реверанс, очевидно, в сторону коммунизм == GULAG, но комментарий принял объективно).

Тем поучительнее наблюдать, как опенсор-сообщество со своими идеями построения цифрового социализма внутри монополистической фазы капитализма корпораций вообще без боя задрало юбки и лапки перед штурмовиками из SJW, сдало повестку, деньги, за свой же счет устроило надсмотрщиков-комиссаров. (история повторяется, но мне по этой линии вести летопись очень не хочется и лень, кое-чего накапливают на ЛОРе:
https://www.linux.org.ru/forum/talks/14691270
https://www.linux.org.ru/forum/talks/14703812
https://www.linux.org.ru/forum/talks/14785478
https://www.linux.org.ru/tag/sjw )



Бонус-2 (добавил 13 декабря 2019, нашел в прошлогоднем фейсбуке):

Курс Базы данных, первое занятие, разбираем транзакции. Естественно, на примере банковских - операция перевода. Подошли: таблица, номер счета, баланс, две строки. Как осуществить перевод? - Вычесть значение в первой строке, прибавить во второй. Вопрос: а можно сначала прибавить во второй, а потом вычесть в первой? Короткий ступор, потом: нет, нельзя. - Почему? - Ну, вдруг во время операции произойдет сбой (ок, к этому и вел) и банк на один счет деньги начислит, а со второго не спишет. Вопрос: а все-таки почему нельзя поменять операции местами? Если банк зачислит деньги, но не успеет списать, это проблема, а если спишет, но успеет начислить - это ок? - Нет, все равно нельзя. - Ну как, если у клиента банка по результату сбоя софта пропадут деньги, это приемлемо, а если деньги пропадут у банка, то сразу нет? А вдруг у клиента свои проблемы, срочно нужны деньги, нужно купить еду, отдать кредит? - Деньги же не берутся ниоткуда, в банке их может не хватить, банк так обанкротится, это же банк и т.п. Ладно, неприемлемы, конечно, ни та и ни другая ситуации, для этого и нужны транзакции. Выдыхаем. Две группы примерно по 15-20 человек, разные дни, вчера получился эксперимент по наитию, сегодня повторил целенаправленно с тем же результатом. Можно говорить про репрезентативность.

(это был 2018, в 2019 новые группы так не подловились)

Tags: ДОСААФ, базы данных, нгту, облако, образование, программирование
Subscribe

Posts from This Journal “нгту” Tag

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments