Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 507 63 163
Универсальный баз данных тред v1.5 /sql/ Аноним # OP 15/04/22 Птн 21:06:49 2336742 1
.png 153Кб, 706x470
706x470
.png 2793Кб, 1951x2560
1951x2560
Прошлый >>2227895 (OP)

Ссылки:
- https://www.w3schools.com/sql/
- https://www.postgresqltutorial.com/
- https://www.oracletutorial.com/
- https://learnxinyminutes.com/docs/sql/
- https://metanit.com/sql/
- MongoDB: https://metanit.com/nosql/mongodb/

Задачи:
- https://www.sql-ex.ru
- http://sql-tutorial.ru/
- https://www.codewars.com/?language=sql

Видосики:
- Плейлисты по разным СУБД: https://www.youtube.com/c/SQLDeveloperBI/playlists
- https://www.youtube.com/watch?v=EHvzvwAv7RU&list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo

Литература:
- Томас Кайт. Oracle для профессионалов
- https://postgrespro.ru/education/books/dbtech
- Алан Бьюли. Изучаем SQL. - про MySQL
- К. Дж. Дейт. Введение в системы баз данных

ETL, OLAP, DWH и другие умные слова:
- https://www.youtube.com/watch?v=WPZuzDJXs-Q&list=PLhhjwMYxzolhP29LSPPwORVQxJX5OjYix[РАСКРЫТЬ][РАСКРЫТЬ][РАСКРЫТЬ]
- OLAP DAX Power BI: https://www.youtube.com/playlist?list=PLhhjwMYxzolhXuySjLR2_n-xb6VvWnjju

Прочее:
- https://dbdb.io/
- https://db.cs.cmu.edu/
- https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
- Сравнение диалектов SQL: http://troels.arvin.dk/db/rdbms/
- Как БД работают изнутри: https://habr.com/ru/company/mailru/blog/266811/


FAQ:
Q: Нужно ли знать английский?
A: Да.

Q: Что лучше, SQL или NoSQL?
A: По задачам.

Q: Вопросы с лабами и задачками
A: Задавай, ответят, но могут и обоссать.

Здесь мы:
- Негодуем, почему шапка - говно, и предлагаем коллективному ОПу идеи, как её улучшить.
- Разбираемся, почему PostgreSQL - не Oracle
- Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
- Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обеществе
- Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
- Анализируем, как работает поиск вконтакте
- И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно.

Поехали!
Аноним 15/04/22 Птн 22:53:50 2336813 2
Я покакал.
Аноним 16/04/22 Суб 12:02:15 2337047 3
Если я для дев окружения хочу дропнуть все релейтед схемы и таблицы в БД, то достаточно каскадно дропнуть схемы? Или нужно заморачиваться удалением таблиц, а потом схем? Данные ценность не имеют.
Аноним 16/04/22 Суб 12:20:12 2337054 4
define @op nvarchar

select @op = 'faggot'

select @op
Аноним 17/04/22 Вск 14:35:24 2337919 5
Как теоретически мог бы работать то что называется модгет? Номер это же первичный ключ
И типа когда даёшь новую запись в базу данных, то оно же начиная с него будет работать, а постов до него уже не будет
Аноним 17/04/22 Вск 14:50:50 2337926 6
>>2337919
Способов много. Например, незадолго до гета впилить в код создания поста проверку, где проверять значение счётчика, и если следующее значение будет гетом, то инсертнуть модгет. Либо повесить аналогичный триггер на INSERT в таблицу постов.
Аноним 17/04/22 Вск 14:58:20 2337934 7
>>2337926
> Либо повесить аналогичный триггер на INSERT в таблицу постов.
Вроде же как в триггере нельзя делать insert в ту же таблицу на after insert которой он сам и дергается.
Аноним 17/04/22 Вск 20:45:17 2338153 8
>>2337919
>Номер это же первичный ключ
Если первичный ключ не написан как дефолтный генератор, то там вполне можно своё значение вставлять. Да и в генератор можно своё значение впихнуть, если сильно надо.
Трикса 19/04/22 Втр 23:20:18 2339566 9
1. Сети, подключенные к ISP, считаются внешними:
ISP forward
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
image

RTR-L Gitw
ip route 0.0.0.0 0.0.0.0 4.4.4.1

RTR-R gitw
ip route 0.0.0.0 0.0.0.0 5.5.5.1

2. Платформы контроля трафика, установленные на границах регионов, должны выполнять трансляцию трафика, идущего из соответствующих внутренних сетей во внешние сети стенда и в сеть Интернет.
RTR-L NAT
на внутр. интерфейсе - ip nat inside

на внешн. интерфейсе - ip nat outside

int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

RTR-R NAT
int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 172.16.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

3. Между платформами должен быть установлен защищенный туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.
RTR-L GRE
interface Tunne 1
ip address 172.16.1.1 255.255.255.0
tunnel mode gre ip
tunnel source 4.4.4.100
tunnel destination 5.5.5.100
exi
router eigrp 6500
network 192.168.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-R
interface Tunne 1
ip address 172.16.1.2 255.255.255.0
tunnel mode gre ip
tunnel source 5.5.5.100
tunnel destination 4.4.4.100
exi
router eigrp 6500
network 172.16.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-L
crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 5.5.5.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

RTR-R
conf t

crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 4.4.4.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

4. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:
RTR-L ACL
ip access-list extended Lnew
permit tcp any any established
permit udp host 4.4.4.100 eq 53 any
permit udp host 5.5.5.1 eq 123 any
permit tcp any host 4.4.4.100 eq 80
permit tcp any host 4.4.4.100 eq 443
permit tcp any host 4.4.4.100 eq 2222
permit udp host 5.5.5.100 host 4.4.4.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Lnew in

5. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:
RTR-R ACL
ip access-list extended Rnew
permit tcp any any established
permit tcp any host 5.5.5.100 eq 80
permit tcp any host 5.5.5.100 eq 443
permit tcp any host 5.5.5.100 eq 2244
permit udp host 4.4.4.100 host 5.5.5.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Rnew in


6. Обеспечьте настройку служб SSH региона Left:
RTR-L SSH
ip nat inside source static tcp 192.168.100.100 22 4.4.4.100 2222
RTR-R SSH
ip nat inside source static tcp 172.16.100.100 22 5.5.5.100 2244
SSH WEB-L
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
SSH WEB-R
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
Трикса 20/04/22 Срд 02:23:53 2339638 10
какиш
Аноним 20/04/22 Срд 17:36:49 2340163 11
Мне нужно вытащить из MySQL таблицы те строки, у которых в ячейке name есть числа с точкой. То есть, "Вася 07" или "Коля.8Никифоров" НЕ войдут в выборку, а "Дима 6.16" - войдёт. Само число в строке может быть где угодно.

Можно ли это сделать чисто на скул-запросе? Пока что у меня только мысль вытаскивать всё как есть, и уже на бэке писать php-скрипт на регулярках, чтобы убрать лишнее.
Аноним 20/04/22 Срд 18:04:38 2340175 12
>>2340163
Всё, сам нашёл. Регексп прямо в майскуле: REGEXP '[0-9][0-9][.][0-9][0-9]'
Аноним 23/04/22 Суб 06:21:02 2342284 13
Чё тред мертвый?
В общем есть SQL проект в Visual Studio под платформу "SQL server 2014", он используется для генерации скрипта через publish. Этот скрипт добавляет в базу данных кучу таблиц и данных, но он подходит для mssql, а как сделать так, чтобы он подходил для sqlite? Пишу приложение и хочу отойти от зависимости от сервера базы данных, при этом с минимальными изменениями.
Аноним 24/04/22 Вск 15:24:09 2343146 14
> YDB
ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА

Комментарии анонов будут? Выглядит буквально безальтернативно. Буквально нет альтернатив.

Хз даже, есть вообще хоть одна БД как альтернатива?
Аноним 24/04/22 Вск 15:44:47 2343169 15
>>2343146
FoundationDB не выглядит как альтернатива, кста
Аноним 24/04/22 Вск 19:15:56 2343315 16
>>2343146
И где инфа по релизу? Подозрительно тихо выложили в период, когда можно срубить хайпа на импортозамещении.
Аноним 24/04/22 Вск 19:39:21 2343333 17
>>2343315
> срубить хайпа на импортозамещении
Опоздали, уже все решили переходить с оракла на постгрес, и никого не остановят новости о плохо обкатанной в проде поделке, даже если она действительно такая идеальная и безальтернативная. Никто не хочет быть бета-тестером.
Аноним 24/04/22 Вск 20:12:33 2343371 18
>>2343146
>Комментарии анонов будут?
НИНУЖНО.
Ничего изнутри Яндекса не нужно обычному анону.
Ничего.

Практическое обоснование : Стоунбрейкер уже давно написал VoltDB, но не может на ней заработать. Люди просто покупают самый большой IBM PC-совместимый ПК и крутят на нем свои СУБД.
Тупо выгоднее, проще, надежнее.

Аноним 24/04/22 Вск 20:40:35 2343394 19
>>2343315
На петухабре же статейка. https://habr.com/ru/company/yandex/blog/660271/ Ну и так по новостным раскидали, правд я прочитал только сейчас.
> Подозрительно тихо выложили в период, когда можно срубить хайпа на импортозамещении.
Стесняются быть русским мб? Хз вообще. Технология-то вообще норм, то что нужно.

>>2343333
> Никто не хочет быть бета-тестером.
Судя по заверениям у них есть свои тесты, скоро мб Jepson сделают. И ДБ используется в своих проектах, если они не пиздят. Т.е. как минимум она полностью рабочая и в продакшене работает.

Если там они не напердолили тысячи бесполезного функционала, то я точно заюзаю на ближайшем проекте. Хотя FoundationDB мне больше нравится, она проще, но там самому придётся кучу говна писать, YDB будет быстрее поднять, наверное, особенно если там встроенная inmemory есть.

>>2343371
> НИНУЖНО.
Ну как это нинужно. Вот мне нужны кластерная хуйня с большой потанцевальной нагрузкой. Какие варианты вообще есть? Кроме FoundationDB, офк.
> VoltDB
Это же жаба. И там есть ограничения функционала, YDB вроде полностью попенсорс (но это не точно).
Аноним 24/04/22 Вск 23:13:06 2343483 20
>>2342284
>а как сделать так, чтобы он подходил для sqlite?
Открывешь референс по кейвордам для mssql и смотришь, какие из них реализация SQL стандарта, а какие - инхаус костыль. Составляешь таблицу из кейвордов по категорям реализация/костыль, смотришь как реализованные кейворды реализованы в sqlite и пытаешь переписать запросики.
А потом идёт лютая ёбля с переписыванием инхаус костылей на костыли скулайта.
>Пишу приложение и хочу отойти от зависимости от сервера базы данных, при этом с минимальными изменениями.
Маняфантазии манагеров. Поезд волшебной универсальной СУБД ушёл и оставил за собой тонны легаси с диалектами. А рефакторить БД - не бэк/фронт переписывать, тут надо вкладывать усилия, время и деньжищи. Причём в обычную задачу спринта это не оформишь, да и не разбивается толком на подзадачи.
Аноним 25/04/22 Пнд 00:10:30 2343510 21

>>2343394
>Ну как это нинужно. Вот мне нужны кластерная хуйня с большой потанцевальной нагрузкой. Какие варианты вообще есть?


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

ВТБ вон на одном сервере mssql спокойно справляется. А твое говно до туда не дорастет
Только данные неоперативные нужно подчищать и перегружать в другие субд
Аноним 25/04/22 Пнд 00:41:26 2343517 22
>>2343510
>Нет, не нужна она тебе, поверь.
Надо, вася, надо. Других вариантов нет. Либо делать как нужно делать, либо сосать. Сосать я не хочу.
>Кабанчик тебе нужен нормальный. Архитектор там и админ бд. Они тебе расскажут как решить эти задачи.
Вероятнее всего они обоссутся, потому что альтернатив-то YDB и нет особо. Покрайней мере я так и не смог придумать. Хотя в целом можно через FoundationDB, но она сложнее. Либо через порезанные версии с интерпрайсом, ну тут это залупа конская, пошли они нахуй любители денежек.
>ВТБ вон на одном сервере mssql спокойно справляется. А твое говно до туда не дорастет
Не, я планирую очень много трафона гнать. Прямо очень много. Миллионы/сутки или вроде того. Иногда хайповые нагрузки миллион/час.
И аналитику туда ещё ебануть, а чтобы отвал бошки от поддержки не случился - всё на единой БД напердолить.
Аноним 25/04/22 Пнд 00:42:09 2343518 23
>>2343517
>Либо через порезанные версии с интерпрайсом
в смысле всякие монги, вольты и прочие залупы
Аноним 25/04/22 Пнд 09:40:33 2343587 24
>>2343517
Кому нужно? Откуда у тебя большая потенциальная нагрузка, не свисти.
Аноним 25/04/22 Пнд 10:26:41 2343593 25
>>2343587
Мне нужно. Если тебе не нужно - иди делай своё говно без трафона и не отсвечивай.
Аноним 25/04/22 Пнд 11:07:34 2343606 26
>>2343593
Тебе нужно чтоб подрочиться с модным баззвордом для поднятия ЧСВ, для твоих реальных задач нет необходимости в этой хуйне
Аноним 25/04/22 Пнд 11:35:57 2343623 27
>>2343606
Прекрати фантазировать.
Аноним 25/04/22 Пнд 11:58:23 2343643 28
>>2343623
И ты прекрати фантазировать о хуйлоаде и кластерных хуйнях >>2343510
Аноним 25/04/22 Пнд 12:10:46 2343656 29
>>2343643
Пчел, тут только ты нафантазировал что мне нужно, ты в курсе? И продолжаешь влажно фантазировать, про чсв, про задачи, про то что мне нужно, про каких-то кабанчиков.
Ты таблетки не выпил, что столько фантазий ебанул в тред?
Аноним 25/04/22 Пнд 18:46:37 2343987 30
помогите написать запрос.
есть поле nvarchar max, нужно по нему найти все записи с определенным значением
Аноним 25/04/22 Пнд 18:47:52 2343990 31
Аноним 25/04/22 Пнд 21:09:42 2344061 32
>>2343656
совершенно точно можно сказать одно - в разрезе нескольких следующих лет ты обязательно где-нибудь ошибешься. просто потому что предвидеть будущее нельзя.
Отсюда и мысль, что тебе скорее всего не нужна сырая БД от Яндекса. Ведь как-то наша айтишечка развивалась все эти годы.

Хочешь вложить свое время и не получить ничего - пожалуйцта.
Аноним 25/04/22 Пнд 21:42:08 2344082 33
>>2343510
>ВТБ вон на одном сервере mssql спокойно справляется.
Это откуда информация? Я там работаю и только лично мне приходится ковыряться в 4 базах, ещё штук про 5 я слышал, а сколько их всего вообще ебу.
Аноним 25/04/22 Пнд 22:41:08 2344126 34
>>2344061
> совершенно точно можно сказать одно - в разрезе нескольких следующих лет ты обязательно где-нибудь ошибешься.
Да я уже, десятки раз обосрался и ошибся. По этому работаю в нескольких направлениях.
> просто потому что предвидеть будущее нельзя.
Можно конечно. Причины имеют следствия, именно так составляются новучные теории. Они предсказывают будущее. Другое дело точность теорий. моя теория не очень точная, но предсказать хоть что-то можно всё же
> Отсюда и мысль, что тебе скорее всего не нужна сырая БД от Яндекса.
Альтернатив практически нет. Вообще нет никаких альтернатив YDB, буквально ноль. Единственная проблема которая там есть - производительность может быть не такой большой как у foundationdb и у самописного говна.
> Ведь как-то наша айтишечка развивалась все эти годы.
Она как раз и развивалась в направлении таких БД.
> Хочешь вложить свое время и не получить ничего - пожалуйцта.
Теории, понимаешь? За каждым шагом и мыслью должны лежать теории. Если хочешь что-то получить - нужно иметь теорию, которая проверена на эмпирических данных.
Аноним 25/04/22 Пнд 23:57:07 2344194 35
>>2344082
с надежного места, епта.
но проверить ты ее сможешь через 10 лет, когда форум sql.ru снова откроют.

А что, эта информация не кажется тебе правдоподобной?
Ну оцени банковским способом риски эксплуатации хуй знает какой базы от яндекс для транзакций.
Аноним 26/04/22 Втр 00:00:38 2344195 36
>>2344126
>Альтернатив практически нет
еще раз, альтернатива на поверхности:

эксплуатируешь любую традиционную бд на одном большом сервере для OLTP и непротиворечивых данных, таких как остатки на счетах и транзакции и несколько вторичных, в том числе аналитических, для всего остального.
Аноним 26/04/22 Втр 00:19:03 2344207 37
>>2344195
И что делать если нагрузки внезапно скакнут, "пожалуйста пожите, бд йобнулась"? Это несерьезно.
Конечно, это всё в рамках манятеорий, но я изначально делаю под огромный траф. Если оно будет работать - оно должно отрабатывать без хуйни и проблем. И выжимать нишу я хочу до последнего юзверя.
И счета, и аналитика, и данные будут на отдельных кластерах, чтобы в случае чего мог просто расширением аренды покрыть все проблемы.

YDB (или любое другое подобное решение) позволяет совершить плавный переход от лоутрафа до миллиона rps. Может конечно оно какое-то лажовое, тестов мало, jepsen нету, но. Нету альтернатив. Просто нету. Уже давно ищу и ничего нет.
Аноним 26/04/22 Втр 01:06:01 2344221 38
>>2344207
>И что делать если нагрузки внезапно скакнут, "пожалуйста пожите, бд йобнулась"? Это несерьезно.

Ничего.
Поставишь кабанчика перед фактом, что планирование не удалось, но хорошо что вам вообще удалось свою идею реализовать и настолько сильно вырасти.

>YDB позволяет совершить плавный переход

А может и не позволяет.
>(или любое другое подобное решение)

Вообще-то, другого такого же нет по определению. В Яндексе все уникальное.

Аноним 26/04/22 Втр 09:46:47 2344297 39
>>2344221
>Ничего.
В смысле ничего, пользотели-то уходят. Деньги тоже утекают. Каждая секунда простоя - очень хуево.
>Поставишь кабанчика перед фактом, что планирование не удалось, но хорошо что вам вообще удалось свою идею реализовать и настолько сильно вырасти.
Это мои проекты, лол, ты что, на кабанчиков работаешь в 2к22 году? Ебать ты. Мелкобуржуа нужно становиться.
>А может и не позволяет.
Позволяет, это же кластер.
>Вообще-то, другого такого же нет по определению. В Яндексе все уникальное.
Ну так покажи мне полностью опенсорс кластернуб БД, без интерпрайза и ограничения функционала. Единственная что есть - foundationdb. Всё остальное с ограничениями. Постгрес есть, но там просто реплики и это вообще не то.
Аноним 26/04/22 Втр 09:55:34 2344299 40
>>2344297
>мелкобуржуа
>МИЛЛИОНЫ РПС!!!!!!!
Чел... ты хотя бы прототип запили для начала на знакомых технологиях, чтобы понять, у тебя будут вообще клиенты или нет...
Аноним 26/04/22 Втр 11:49:03 2344375 41
>>2344299
Статистику по нише взял, да. Миллионы рпс будут. Если хайпанёт.
Аноним 26/04/22 Втр 19:21:33 2344784 42
Аноним 26/04/22 Втр 20:29:16 2344815 43
>>2344784
Ну вообще не если, а когда. Для этого открыл сразу несколько проектов и несколько копий существующих. Когда-то будет, главное сделать превосходство как минимум на уровне софта.
Аноним 27/04/22 Срд 18:25:40 2345388 44
>>2336742 (OP)
А вы посвящаете какое-нибудь время на развитие? Я уже года два прям вот чтоб самостоятельно, нихуя не делал.
Аноним 27/04/22 Срд 20:21:45 2345487 45
>>2345388
На питухоне всякое делаю, щас вот спарк пытаюсь палкой тыкать, каждый день не получается, но раз в 2-3 дня вполне. Щас читаю кабанчика с оппика.
Аноним 27/04/22 Срд 20:33:59 2345505 46
Аноним 27/04/22 Срд 21:18:37 2345527 47
Аноним 27/04/22 Срд 21:26:37 2345532 48
>>2345527
У, у меня больше. Значит норм все.
даже у банкира из дно треда больше
Аноним 28/04/22 Чтв 03:11:03 2345700 49
https://www.sql-ex.ru

Это мертвый сайт или чего? Чет нихуя не работает, не могу зарегаться.
Аноним 29/04/22 Птн 22:43:37 2347062 50
Аноны, как правильно организовать базу данных?
Хочу с заданным интервалом парсить количество вакансий на хх.ру по тому или иному запросу. И хранить это дело в бд.
Как лучше хранить? Я ничего не придумал лучше чем
id | запрос | количество
Норм будет или не очень?
Аноним 30/04/22 Суб 00:06:36 2347123 51
>>2347062
как минимум ты дату проебал
Аноним 30/04/22 Суб 04:33:07 2347168 52
Слушайте, те, кто Дейта проходил, вы где ответы брали? Они вообще сущестуют в интернете?
Аноним 01/05/22 Вск 16:00:39 2348045 53
ЕСТЬ КТО ЖИВОЙ?

уже час над задачей ебусь, понять не могу шо не так. помогите нах
Аноним 01/05/22 Вск 16:22:08 2348060 54
Аноним 01/05/22 Вск 16:33:17 2348067 55
>>2348060
прислал за щеку
чувствуется?
Аноним 01/05/22 Вск 16:59:55 2348083 56
>>2348067
Хорошо, горячо.
А можно ещё и побольше?
Аноним 02/05/22 Пнд 22:22:24 2348892 57
Анончик, дай какую-нибудь наводку, про то как будет работать база при таком сценарии:

Мы пишем в реляционку (постгрес) события. Другой воркер какой-то их вычитывает и удаляет. То есть грубо говоря это очередь.
На таблице есть индексы.
Запись достаточно интенсивная (сотни/тысячи в минуту), удаление так же.

Что будет проиходить с течением времени? Будет ли как-то деградировать эта система?
Я не знаю как именно, но предполагаю, что индексы и таблицы будут фрагментироваться, что может очистка удаленных записей будет создавать какую-то проблему
Наверное этот вопрос еще и специфичен для конкретной СУБД. Подскажи, что погуглить на эту тему? И поддается ли этот импакт (если он есть) рассчетам?
Аноним 03/05/22 Втр 11:02:21 2349102 58
Аноним 03/05/22 Втр 13:11:00 2349236 59
>>2349102
Ой блять, так и знал что придет дегенарт, который решит выебнуться знанием btree.

Только ты ошибся, дятел, btree - от слова balanced, а не binary.
Аноним 03/05/22 Втр 16:07:42 2349384 60
1.png 217Кб, 1345x617
1345x617
Анонасы, нужна помощь по лабе. Не получается заполнить таблицу улова, ругается, что праймари ключи уже есть такие. Так а как они могут быть не такими, если они формируются на основе id_катеров и id_рыбы?
Мой говно-код.
https://pastebin.com/AYQGYKcM
Пик, самое задание.
выходы в море тоже нужны правки с датой возвращения, но это главное заполнил таблицу для примера
Аноним 03/05/22 Втр 16:10:29 2349387 61
>>2349384
Ругается, когда пытаюсь начать заполнять таблицу улова.
Аноним 03/05/22 Втр 16:12:17 2349388 62
>>2349384
>id_катеров
id_выходов, конечно же.
Аноним 03/05/22 Втр 16:45:16 2349421 63
Проводи вставку/удаление пачками, и индекс не будет насиловаться.
Аноним 03/05/22 Втр 19:00:18 2349503 64
Аноним 04/05/22 Срд 12:39:21 2349861 65
Подскажите, как правильно написать запрос поиска по трём необязательным элементам? То есть я могу передать имя, но без промежутка дат, или имя и дату С, но не дату ПО. Примерно отобразил, что надо:
SELECT * FROM tasks
WHERE tasks.Name LIKE ?
AND tasks.Date BETWEEN ? AND ?
Аноним 04/05/22 Срд 13:43:27 2349948 66
>>2349236
я не ошибся, а упростил изложения. вопрос же ебанутым образом поставлен.

И, получается, ты в целом знаешь как устроены базы данных, но при этом ебешь нам мозг, задавая ебанутые некорректные вопрос?
ну и говнюк же ты.
Аноним 04/05/22 Срд 14:43:12 2349979 67
>>2349861
В функции ты можешь указать значения по умолчанию для дат, какое-нибудь 01.01.1900 и 01.01.9999, в рамках одного запроса я не встречал такой функционал в базах с которыми работал, по-моему так не делается.
Аноним 04/05/22 Срд 15:17:51 2350006 68
>>2349861
Сперва подумай, как ты будешь такой запрос кэшировать.
Аноним 04/05/22 Срд 16:48:42 2350087 69
>>2349861
Собирай секции where на уровне кода и небеи голову
Аноним 04/05/22 Срд 23:50:08 2350366 70
1.png 14Кб, 442x645
442x645
2.png 21Кб, 572x628
572x628
3.png 23Кб, 721x618
721x618
Анонасы, нужна помощь понять, где я обосрался. Написал запрос на увеличение вес улова семги. Все работает, обновляет то, что надо. Но вот когда пытаюсь создать представление, он выдает ошибку. В запросе update могу обращаться хоть так WHERE "Улов"."ID_Рыбы" = up10_semga; хоть так WHERE "Улов"."ID_Рыбы" = up10_semga."ID_Рыбы";, все равно ошибки.
Говнокод.
https://pastebin.com/XbKqCU8T
Пики: вид представления и 2 разных ошибки.
Аноним 04/05/22 Срд 23:53:49 2350374 71
>>2350366
>up10_omega
Это просто опечатка. Для up10_omega те же ошибки.
Аноним 04/05/22 Срд 23:55:43 2350375 72
Аноним 05/05/22 Чтв 01:25:03 2350415 73
>>2350366
Пиздец, нахуя у тебя названия таблиц и столбцов на кирилице?
Аноним 05/05/22 Чтв 01:28:04 2350417 74
>>2350366
>>2350415
Я кажись понял где ты серанул, у тебя условие должно быть такое: таблица1.поле1=(select поле2 from таблица2) а не как ты заебашил.
Аноним 05/05/22 Чтв 09:48:03 2350469 75
>>2350415
>нахуя у тебя названия таблиц и столбцов на кирилице?
Как сказали сделать, так и сделал. Не моя прихоть.
Аноним 05/05/22 Чтв 10:01:19 2350471 76
>>2350417
НЕ анонас. АНОНАСИЩЕ! Спасибо огромное тебе! А есть ли возможность как то переписать представление, чтобы потом в where к нему обращаться как я это делаю т.е. просто where "Улов"."ID_рыбы" = up10_semga?
Аноним 05/05/22 Чтв 10:05:58 2350473 77
>>2350471
Это так не работает, не может значение поля быть равно таблице или вьюхе, оно может быть равно значению поля таблицы или вьюхи которое тебе надо селектнуть подзапросом.
Аноним 05/05/22 Чтв 10:10:23 2350475 78
>>2350473
Странно, вроде где то в примерах в интернете видел, что обращались просто к вьюхи без полей. Но может там вью сделана как то по особенному. В любом случае, спасибо большое!
Аноним 05/05/22 Чтв 10:12:36 2350479 79
>>2350475
Даже интересно но не очень покажи пример.
Аноним 05/05/22 Чтв 10:19:27 2350481 80
>>2350473
Можешь помочь еще с одной вещью?
https://pastebin.com/N3Z8iwVX
Пытаюсь заполнить таблицу выходов в море. Поле выходов в море заполняет рандомной датой. Дальше надо заполнить дату возвращения путем рандомом например от 3 дней до 7 в примере у меня, пока просто затычка одна для всех. И вот тут начинается проблема. Пытался разными способами но не получается, постоянно ругается на то, что нельзя складывать timestamp+timestamp, date+date и т.д. Каким образом это организовать? cast не помогал, все равно ругался
Аноним 05/05/22 Чтв 10:23:10 2350484 81
>>2350479
Сейчас не могу найти, вчера ночью где то натыкался или показалось.
Аноним 05/05/22 Чтв 10:26:06 2350486 82
>>2350481
> путем рандомом например от 3 дней до 7
Имею ввиду,дата возвращения = дата отправления + рандомом например от 3 дней до 7.
Аноним 05/05/22 Чтв 10:26:52 2350487 83
>>2350481
>нельзя складывать timestamp+timestamp, date+date
Ясен хуй нельзя, как ты сложишь 05.05.2022+05.05.2022? Число прибавляй, timestamp+1 добавляет один день, если надо добавить месяцы то через add_months, загугли.
Аноним 05/05/22 Чтв 22:48:00 2350977 84
Кулит, /db/абч. Можете разъяснить следующее:
1) На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2. Есть ли какие-то фавориты?
2) Встречали ли вы доступное объяснение по работе с бд. Я не о книжках где учат синтаксису, более интересуюсь эксплуатацией самих бд. Как проектируют бд? Рисуют схемку в drawIO, а потом перегоняют в СУБД или создают на каком-то ЯП с помощью фрейм ворка или либы? Оценивают ли работу бд по каким-то показателям? Нормально ли, что в бд могут быть несвязанные таблицы, просто табличка, из которой периодически запрашивают какие-то данные?

Вопросы могут быть странными или тупыми. Я не it-шник поэтому решил спросить тут, ибо большинство инфы это учу SQL за 300 ноаносек.
Аноним 05/05/22 Чтв 23:33:42 2351001 85
>>2350977
> На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2.
Взаимодействуют через языко-зависимые библиотеки (их называют драйверами и коннекторами), которые получают от разраба SQL-запросы тупо в виде строк, отправляют их в базу по своему низкоуровневому протоколу на сокетах и получают ответы. Дальше на этом можно писать приложение, либо напрямую используя эти библиотеки, передавая SQL-запросы в строках, либо через ORM, которые волшебным и порой неоптимальным образом генерируют SQL-запросы и передают на вход тем же библиотекам-драйверам. В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL, и запросы надо писать на них, эти языки потом всё равно транслируются в SQL.
> Есть ли какие-то фавориты?
Те, что просят в большинстве вакансий. В любом случае учишь SQL и к нему пару популярных для конкретного языка библиотек.
> Как проектируют бд?
Обычно тупо пишут SQL-скрипт с созданием таблиц, ключей. индексов и прочего, продумывая налету нормальные формы, ключи и прочее. Поэтому обычно не надо рисовать никаких графических схем мышкой, Для чего-то нетривиального да, могут сначала набросать схему, а потом всё равно пишут SQL-скрипт. Скрипты сохраняются в исходниках приложения и накатываются в базу последовательно через различные инструменты миграции.
> Оценивают ли работу бд по каким-то показателям?
Да, админы БД настраивают мониторинг и следят за нагрузками, использованием памяти и подобным. Если замечают, что, например, при запуске пользователями определённых операций резко возрастает нагрузка, они сообщают об этом разрабам, а те пытаются оптимизировать запросы, насколько возможно.
> Нормально ли, что в бд могут быть несвязанные таблицы, просто табличка, из которой периодически запрашивают какие-то данные?
Нормально, всё зависит от приложения.
Аноним 05/05/22 Чтв 23:33:51 2351002 86
>1) На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2. Есть ли какие-то фавориты?

На каких целесообразно писать.
Что есть "реальность" ? Набор фирм в которых ты работал последние 3 года? Нет.

> 2) Встречали ли вы доступное объяснение по работе с бд
Дейт. Хз что ты там называешь доступным.

>Нормально ли, что в бд могут быть несвязанные таблицы
это НЕ "нормально", в смысле нормальных форм по Дейту и компании.
Но этот же самый Дейт неоднократно напоминает, что теория нужна для того чтобы лишь только ориентироваться на нее.
Аноним 06/05/22 Птн 08:43:18 2351092 87
>>2351001
>В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL
А зачем на это тратить время разработки, если можно дать напрямую SQL? Ограничить возможно для защиты от дурака?
>через различные инструменты миграции.
А что за миграция? В моем понимание это перенос данных из исходника в БД, или из БД №1 в БД №2. Это исходя из смысла слова.
>>2351002
>Хз что ты там называешь доступным.
Другой анон упоминал про ORM. Вот есть где про это посмотреть/прочитать? Вообще хотелось бы посмотреть какой-то курс универский на подобии Хирьянова.

>На каких целесообразно писать.
Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?
Аноним 06/05/22 Птн 09:10:46 2351097 88
>>2351092
про ORM фундаментального почитать особо нечего. А поверхностных статей полно.
Может быть есть на английском не переведенные книги, но попробуй еще начальные главы из книги "Java Persistence API и Hibernate" (не обязательно становиться грибом-джававиком чтобы понять эти главы)


>Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?

здесь я сдаюсь. Просто непонятно что ты спрашиваешь.
Реально какой-то разрыв в понятиях у тебя и у программистов.
Выбор и основного языка и СУБД являются важными.
Возможно ты имел ввиду такое :
позволяет ли ORM в языке абстрагироваться от деталей СУБД настолько, что можно легко сменить СУБД ?
ответ - ДА (но нет)
Аноним 06/05/22 Птн 09:20:15 2351102 89
>>2351092
> >В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL
> А зачем на это тратить время разработки, если можно дать напрямую SQL? Ограничить возможно для защиты от дурака?
Эти языки более переносимы и транслируются в разный SQL для разных БД. Используются они только в сложных случаях, обычно хватает стандартных методов на уровне прикладного языка.
> А что за миграция? В моем понимание это перенос данных из исходника в БД, или из БД №1 в БД №2. Это исходя из смысла слова.
Миграция схемы БД. Так называют запуск SQL-скрипта, изменяющего схему, ещё так могут называть сам скрипт.
Аноним 06/05/22 Птн 11:44:28 2351158 90
>>2351097
>позволяет ли ORM в языке абстрагироваться от деталей СУБД настолько, что можно легко сменить СУБД ?
Обычно впрочем это выливается в требование знания SQL, основного языка ORM и детали реализации самой ORM.
Аноним 06/05/22 Птн 12:24:56 2351180 91
>>2351158
это сложно понять, но простые в использовании инструменты в ряде случаев требуют чтобы ты понимал как все работает под капотом. где-то этого не требуется, но точно не в бекенде
Аноним 06/05/22 Птн 16:32:11 2351328 92
>>2351097
>>Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?

возможно, ты хотел спросить:
я является ли ORM настолько доминирующей технологией, что позволяет нанимать просто программиста без знаний конкретного языка и ORM чтобы потом переключаться между языками - и снова ответ ДА (но нет).
Опыт работы с ORM конечно пригодится в любой другой библиотеке в любом другом языке.
но очень уж много нюансов. Где-то миграции вручную пишут на SQL до сих пор ( да , я вас гошников имею ввиду)
Аноним 06/05/22 Птн 22:03:46 2351573 93

>>2351097
Скажем так, стоит задача разработать БД + прикрутить форму для ввода критериев для дальнейших запросов. Вот я пытаюсь понять, какие критерии помимо нормальных форм применить. На каком языке лучше писать форму - Шарп или Питон. Питон по мне проще, но он медленнее. Но вряд ли в БД будет больше сотни запросов. И вот как это все запилить и потенциально дать доступ другим сотрудникам. Если с формой понятно, то с БД нихуя нет.
Аноним 07/05/22 Суб 00:43:04 2351685 94
>>2351573
А то можно подумать ты дохуя языков знаешь?

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

Тьфу на тебя. Никакого серьезного совета не жди.
Аноним 07/05/22 Суб 11:59:36 2351794 95
1637165685279.webm 589Кб, 756x426, 00:00:05
756x426
>>2351685
>Еще хуже если "аналитик".
За що?!
другой анон
Аноним 08/05/22 Вск 23:44:32 2352993 96
Сап, двачик. Есть один бот на питоне подключенный к бд. И есть одна функция, цель которой определять нового пользователя по его айди, записанного в бд.
Вот то, что я высрал: https://www.codepile.net/pile/PVLwp0yl

На выходе получаю за щеку. mysql.connector.errors.DatabaseError: 2006 (HY000): MySQL server has gone away

Проблему гуглил. Либо база большая, либо кривые руки и говнокод. База у меня с 3 записями, так что выбор небольшой. Очень надеюсь на вашу помощь дабы понять обосрался я в самом запросе или мне съебать в питон тред на растерзание местному клоуну
Аноним 09/05/22 Пнд 00:20:09 2352997 97
>>2352993
блять какая нахуй база данных, ты даже линк нормально приложжить не можешь, пиздуй улицы подметать
Аноним 09/05/22 Пнд 14:44:15 2353195 98
>>2352997
Там пусто потому что я разобрался сам и удалил код с поста, а ты можешь пойти нахуй. Чем больше общаюсь с айтишниками, тем больше понимаю, что их большинство составляют затравленные чмошники или агрессивные гниды вроде тебя. За год в pr видел человек 5 нормальных и доброжелательных ребят. Как вы друг друга терпите, пиздец
Аноним 09/05/22 Пнд 15:38:55 2353217 99
изображение2022[...].png 232Кб, 1608x381
1608x381
Не получается создать триггер, который будет защищать от вставки одинаковых записей в таблицу (связывает две таблицы через многие-ко-многим). Что делаю не так? PostgreSQL

Код:
CREATE TRIGGER dont_insert_same_values_to_album_song
BEFORE INSERT
ON album_song
WHEN EXISTS(
SELECT *
FROM album_song, INSERTED
WHERE album_song.album_ismn = INSERTED.album_ismn AND album_song.song_ismn = INSERTED.song_ismn
) THEN
ROLLBACK
PRINT 'Не добавлено: запись уже существует'
END;
Аноним 09/05/22 Пнд 15:43:31 2353219 100
изображение2022[...].png 164Кб, 961x287
961x287
изображение2022[...].png 19Кб, 270x120
270x120
>>2353217
При замене этого говна
>EXISTS(
>SELECT *
>FROM album_song, INSERTED
>WHERE album_song.album_ismn = INSERTED.album_ismn AND album_song.song_ismn = INSERTED.song_ismn
>)
на 1 (true) так же возникает ошибка в этом месте
Аноним 09/05/22 Пнд 21:24:05 2353481 101
>>2353217
Нахуй тебе триггер, создай уникальный индекс.
Аноним 11/05/22 Срд 23:29:34 2354964 102
image.png 13Кб, 714x144
714x144
Не ебу где скрыт подъёб. Нашёл "минимальную верхнюю границу интервала", но на второй проверке крашится. Есть идеи, анон?

Код:
WITH temp AS ( SELECT B_V_ID, MIN(B_DATETIME) time
FROM utB
GROUP BY B_V_ID ),
temp2 AS (
SELECT TOP 1 WITH TIES B_V_ID, utb.B_DATETIME
FROM utB
JOIN utV uV
ON uV.V_ID = utB.B_V_ID
WHERE B_DATETIME >= (SELECT MAX(time) FROM temp)
ORDER BY utb.B_DATETIME
)

SELECT DISTINCT utV.V_NAME
FROM temp2
JOIN utV
ON temp2.B_V_ID = utv.V_ID
Аноним 12/05/22 Чтв 00:36:07 2354994 103
meme00060.jpg 83Кб, 639x641
639x641
Сап, ананасы.
Дрочу фронт, решил что знания в SQL не помешают, поглядел курс на фрикодкэмпе, основы понял. Поставил перед собой задачу сделать форум-борду с бесконечной вложенностью комментариев как на (((реддите))). Уткнулся в проблему как организовать бд:

1) Есть лишь одна таблица:
posts:
...
id BIGSERIAL PK,
is_thread boolean,
answer_to REFER posts (id),
...

Такой вариант прост и понятен, треды получаю по is_thread, затем запрошиваю все все ответы на него, затем на каждый ответ запрашиваю еще ответы и так до конца. Но там образом запросов на сервер получается очень дохуя и я понимаю что это блять бред (или нет?).

Мне стоит пересмотреть саму таблицу? Разбить на несколько? Использовать правильный запрос? Как получить рекурсивно все ответы, а с ними и ответы на ответы за запрос, или это не возможно? Помогите, будьте добры, гугл не помог, с меня как всегда.

пикрандом
Аноним 12/05/22 Чтв 02:12:13 2355004 104
1651429292120.png 32Кб, 1253x485
1253x485
>>2354994
Вообще не близкая мне задача, может под каждый "корневой" тред создавать патрицию и добавлять в каждый пост внутри ссылку на него? Так хотя бы он не по всей "борде" будет смотреть из-за каждого поста.
>>2354964
Разбирать что ты там написал я в рот ебал, без негатива, ответ на пикче, вроде быстро решил, больше пытался с постановкой задачи разобраться, если по моему скрипту вопросы будут - завтра отвечу.
Аноним 12/05/22 Чтв 08:40:18 2355065 105
>>2351180
В том и проблема, что ORM добавляют оверхеда к знанию стэка, причём необязательно, что эти знания будут полезны за пределами этой ORM. Самый очевидный пример - множественные инсерты. Банальная операция, если оперируешь SQL выражениями с интерполяцией, но лютый пердолинг в ORM. Не говоря про всякие хитровыебанные джоины/вьюхи/партишоны.
Аноним 12/05/22 Чтв 08:46:49 2355067 106
>>2354994
>Поставил перед собой задачу сделать форум-борду с бесконечной вложенностью комментариев как на (((реддите)))
Реддит - говно в этом плане. Все сорта вложенных комментариев - рак как в плане организации данных, так и в плане UX.

parent_id int REFERENCES posts

Посты с нулом заместо parent_id - ОП-посты. На реддите один хуй все комментарии привязаны к посту.
12/05/22 Чтв 09:11:29 2355076 107
Аноним 12/05/22 Чтв 20:34:55 2355394 108
Сап, аноны, у меня в постгресе есть таблица с полем id типа serial, как мне получить следующий после данного id? id+1 понятное дело не сработает, т.к. запись с таким id могла быть, например, удалена.
Аноним 12/05/22 Чтв 21:40:20 2355435 109
Аноним 12/05/22 Чтв 21:53:12 2355448 110
>>2355435
nextval возвращает незанятый id в последовательности.

Подробнее объясню, что мне нужно:

есть таблица

id | name
1 | Vasyan
2 | OP-hui
4 | test123

id - serial. Мне нужно из id = 1 получить 2 и из id=2 получить 4.
Аноним 12/05/22 Чтв 22:06:27 2355462 111
>>2355448
select min(id) from таблица where id > айди;
Аноним 12/05/22 Чтв 22:22:27 2355467 112
bigthumb.jpg 63Кб, 853x480
853x480
Аноним 14/05/22 Суб 16:44:19 2356304 113
Screenshot from[...].png 25Кб, 734x126
734x126
Привет, Анон!
Помоги, пожалуйста, понять или направь куда копать.

Дано:
Таблица 1 (Поля: Договор, Продукт)
Таблица 2 (Поля: Договор, Выручка)

Задача:
вывести те договора, что имеют выручку и нет в продуктах интернета и кабельного тв.

Моё решение на пик. Я нарушил синтаксис SQL?
Аноним 14/05/22 Суб 17:16:53 2356312 114
>>2356304
>Моё решение на пик. Я нарушил синтаксис SQL?
да
Аноним 14/05/22 Суб 17:29:55 2356326 115
>>2356312
могу ли я не использовать оператор where, а вместо этого добавить это условие под оператор and?
Аноним 14/05/22 Суб 17:30:37 2356327 116
>>2356304
1. Идентификаторы пишутся не в 'одинарных' кавычках, а в "двойных". В 'одинарных' только строковые константы.
2. После join идёт таблица, а не столбец, так же, как таблица после from. Столбцы только в on-части.
3. where должен идти в самом конце после всех джойинов.
4. Вообще, можно сравнение выручки с 0 засунуть в on-часть, как ты сделал с Таблица1.Продукт, а можно и наоборот их все вынести в where, а в on оставить только равенство договоров. В этом случае разницы не будет.
Аноним 14/05/22 Суб 17:35:44 2356329 117
>>2356327
Спасибо за советы и подсказки!
Аноним 17/05/22 Втр 12:52:33 2357901 118
Сап. Подскажите плес. Такая вещь как "уровень изоляции транзакций" назначается на какую сущность при работе с БД? На транзакцию? На соединение? На всю базу?
Аноним 17/05/22 Втр 15:50:55 2358045 119
>>2357901
Обычно на сессию. Но вроде можно и на бд проставить в опциях самого сервере.
Аноним 17/05/22 Втр 18:49:28 2358166 120
Объясните тупому или направьте на плюс-минус толковое решение, как ебнуть вычисляемый в одной таблице столбец, который вычисляется по столбцам других таблиц? Или может оно нахуй не надо?
Аноним 17/05/22 Втр 19:14:32 2358185 121
>>2358166
Представления/вьюхи гугли если я правильно понял что ты хочешь сделать.
Аноним 17/05/22 Втр 19:18:11 2358190 122
>>2358166
Откуда нам знать, надо тебе или не надо?
Это тебе не эксель. Можешь создать вьюху, в которой будешь подсчитывать значение по нужной тебе формуле, но в такую вьюху ты ничего не сможешь инсертнуть.
Либо делай как нормальные люди на уровне приложения при получении данных из этой таблицы.
Аноним 17/05/22 Втр 19:23:00 2358194 123
>>2358185
>>2358190

Ну типа, нужно посчитать конечную стоимость по данным из других таблиц (стоимость тура в таблице тура = сумма авиабилета из таблицы авиабилетов + сумма проживания из таблицы отелей).
Аноним 17/05/22 Втр 19:52:51 2358209 124
>>2358194
Мы на хую вертели твои авиабилеты с отелями, родной, если это лаба из универа и всё надо в базе делать - google=>create view. Если ты что-то приличное пытаешься склепать - считай на уровне приложения.
Аноним 18/05/22 Срд 19:01:30 2358697 125
А цифровые подписи для хранения паролей в базах данных используются вообще? Типа хакер такой взломал базу данных, подменил хеш и такой "блин не пускает из-за цифровой подписи"
Или тогда это и нормальным применениям помешает
Аноним 18/05/22 Срд 23:06:45 2358853 126
>>2358697
Не используются, какой смысл? Если ты можешь подменить хеш, то можешь и цифровую подпись. Не будут делать так, чтобы одно хранилось в надёжном хранилище, а другое в ненадёжном. Подписывают обычно что-то такое, что выгружается из одной системы и загружается в другую, например, какие-нибудь отчёты.
Аноним 19/05/22 Чтв 21:21:39 2359442 127
изображение.png 38Кб, 694x443
694x443
изображение.png 41Кб, 674x488
674x488
Анон, как правильно сделать:
Студент может учиться одновременно в нескольких группах. Где-то платно, где-то на бюджете как пример. Как связать это? У меня неправильно one to many в payment (пик 1)
Моя идея: сделать таблицу Seat - место (пик 2), но выглядит как-то странно, одни ключи. Так делают вообще?
Аноним 19/05/22 Чтв 21:26:05 2359448 128
>>2359442
upd
на втором пике таблица studs_grps не обращайте внимания, она не нужна.
Аноним 19/05/22 Чтв 21:35:58 2359455 129
>>2359442
Да, делают, многие-ко-многим так и реализуется.
Аноним 20/05/22 Птн 10:41:41 2359684 130
Есть база данных в json формате. Можно ли её как-то поместить в реляционную субд? Допустим, Postgresql
Аноним 20/05/22 Птн 10:44:34 2359687 131
>>2359442
>выглядит как-то странно, одни ключи. Так делают вообще?
А по-другому никак. Можешь добавить даты начала/окончания действия записи.
Аноним 20/05/22 Птн 10:50:33 2359689 132
>>2359684
В постгресе есть социальный тип колонки для жсонов, но по хорошему надо нормализовать структуру и написать скрипт для парсинга этой жсон и загрузки в таблицы.
Аноним 20/05/22 Птн 11:33:00 2359710 133
>>2359689
То есть можно скриптом перевести эти нереляционные даннные в связанные таблицы?
Просто я не совсем понимаю, как с этими лучше обращаться. Будет ли вообще профит от такой операции или можно так же в json хранить?
Аноним 20/05/22 Птн 11:47:33 2359725 134
>>2359710
Смотря что за данные. Если их немного, либо ты этот жсон просто хранишь и не обрабатываешь, можно оставить жсон. А если много, либо приходится часто обновлять отдельные поля, лучше несколько нормализованных таблиц.
Аноним 20/05/22 Птн 12:11:16 2359744 135
>>2359725
>Если их немного,
619Kb
Аноним 20/05/22 Птн 12:21:45 2359760 136
>>2359744
Это относительно немного. Может и не нужен постгрес, достаточно sqlite.
Аноним 23/05/22 Пнд 21:46:19 2362080 137
Начиная с какого размера стоит партиционировать таблицу? Или есть другие признаки что пора, кроме количества строк?
Аноним 23/05/22 Пнд 22:27:37 2362105 138
>>2359442
А где ты схемку рисуешь?
Аноним 23/05/22 Пнд 22:28:53 2362106 139
>>2362080
Партиционируй, если запрос виснет.
Аноним 24/05/22 Втр 01:59:16 2362182 140
>>2362080
Когда запросы появляются на срез данных, который удобно партицировать (дата например), и происходит вис
Аноним 24/05/22 Втр 12:07:07 2362263 141
>>2362080
если твой критерий размер - то ни с какого.
нет никакой причины использовать партиции, если индексы работают.
Думай о партиционировании как дополнительном измерении отсечк и данных в условиях когда оптимимизатор обосрался.
Обсирается он довольно редко.

Просто сей странный прием экономит разработчикам время потому что их кабанчик подгоняет. А нормальному ДБА он редко нужен.
Аноним 24/05/22 Втр 12:09:11 2362264 142
>>2362080
если твой критерий размер - то ни с какого.
нет никакой причины использовать партиции, если индексы работают.
Думай о партиционировании как дополнительном измерении отсечк и данных в условиях когда оптимимизатор обосрался.
Обсирается он довольно редко.

Просто сей странный прием экономит разработчикам время потому что их кабанчик подгоняет. А нормальному ДБА он редко нужен.
Аноним 24/05/22 Втр 12:12:44 2362266 143
Подскажите плес, сколько времени какая-то транзакция будет ждать снятия блокировки с данных, наложенных какой-то другой транзакцией? Есть ли какой-то таймер ожидания, и если он выйдет что произойдет? БД MSSQL. Если не ответите, то может пнете куда-то где можно об этом не очень длинно и сложно почитать, или хотя бы длинно и сложно.
Аноним 24/05/22 Втр 20:21:28 2362574 144
>>2362266
будет ждать пока блокировка не пройдёт. По идее в MSSQL есть механизм борьбы с дедлоками, но работает так себе.

Вот мб будет полезно, из личных заметок:
https://pastebin.com/Zw21ftdE
Аноним 24/05/22 Втр 21:49:10 2362636 145
>>2362266
>Есть ли какой-то таймер ожидания, и если он выйдет что произойдет?
Результат не закомитится, драйвер вернёт ошибку, которую приложение обработает.
Аноним 24/05/22 Втр 21:52:26 2362639 146
>>2362636
Это если лочить с NOWAIT.
Аноним 25/05/22 Срд 13:41:11 2362988 147
>>2362574
> с дедлоками
Но это не дедлок. Просто ожидание процесса, который что-то делает, пусть даже завис. Дедлок это взаимная блокировка.
Аноним 25/05/22 Срд 18:07:17 2363206 148
изображение.png 12Кб, 331x152
331x152
Привет программач, пытаюсь разобраться с базами данных. До этого работал с бд по средством либ которые сами создают и поднимают бд по моделям, но возникла потребность создать обычную под уже готовый проект.

Так вот возник вопрос: как поднять бд?
Ну вот создал я бд с таблицами скажем в Постгресе, а дальше что? Как блять ее запустить то? Либа просит ей скормить url или uri от бд, значит нужно ее запустить как? и найти адрес где его взять?.
Аноним 25/05/22 Срд 18:43:27 2363235 149
>>2363206
Это называется строка подключения. Это особенность скорее не СУБД, а используемых драйверов/коннектеров, через которые ты из своего языка подключаешься к БД. Например, в джаве JDBC, и строка там такая:
jdbc:postgresql://host:port/database
Аноним 25/05/22 Срд 19:57:54 2363355 150
>>2363235
то есть после того как я создам бд мне достаточно указать строку подключения к ней и все заработает?
Аноним 25/05/22 Срд 20:20:54 2363364 151
>>2363355
Да, просто вставляешь строку и всё само делается.
Аноним 26/05/22 Чтв 22:31:01 2364264 152
Работал ли кто-то с neo4j в продакшене? Может кто—то поделиться опытом и подводными?
Уже второй месяц пишу микросервис на нем. Сперва пользовался оберткой из spring data. Но теперь есть пара запросов на cypher. Но сущности пока всего три. И мне анонсировали еще штук 5. До сих пор не уверен, что neo4j вообще нужен и реляционки бы не хватило, а это не просто эксперименты тимлида. Тимлид и ответственный за сервис мидл как то сами особо не изучают neo4j и даже мои конспекты доки и ответов со стака по ими же написанным мне тасам читают через раз.
Аноним 26/05/22 Чтв 23:42:54 2364305 153
>>2343333
Представьте ебало когда еще не отошел кликхауса а росскийские анальники уже тащат в твой продакшен ydb.

>Никто не хочет быть бета-тестером.
Кроме российских анальников
Аноним 27/05/22 Птн 00:52:23 2364342 154
>>2364305
А что не так с кликхаусом?
Аноним 27/05/22 Птн 01:16:13 2364357 155
>>2364342
Проблема не в нем самом, чел. Проблема в анальниках которые тащат, прямо скажем, сырой местячковый nosql туда где классические реляционки его выносят в одну калитку.
Аноним 27/05/22 Птн 11:55:00 2364531 156
>>2364305
Ну извените, Кликхаус - принципиально другая нишевая вещь и тащить его имеет смысл.
Вот зачем нужно рисковать своими данными с YDB, если можно просто купить компьютор побольше - хз.
Аноним 27/05/22 Птн 16:22:30 2364845 157
программач поясните анону плез

за языки программирование
что для чего используют?

допустим
запрограммировать станок - какой язык?

написать приложение для ios - какой язык?

запрограммировать дрон и его управление - какой?

написать приложение которое будет в живом времени взаимодейтсвовать с тобой и теми кто рядом - какой язык?

и вот мне нравится например squoosh сервис, но там не загрузить много изображений сразу, вот чтобы это сделать - какой язык нужен?
Аноним 27/05/22 Птн 16:55:31 2364892 158
>>2364531
Чел, я тебе секрет открою: кликхаус и ydb примерно одного возраста, багов там одинаково дохуя.
Аноним 27/05/22 Птн 21:13:02 2365069 159
сап программач, решил сделать небольшой костыль для бд магазина, чтобы отпускать некорректные чеки по ОФД, но запрос отрабатывает только первую строку @ORDERS, не переходит ко второй. СУБД - MSSQL 2008R2, прошу совета у гуру анальных утех


DECLARE @ORDERS TABLE (NUMBER_DOC VARCHAR(50));
DECLARE @ID_INTERNET_ORDER_GLOBAL TABLE (ID INT IDENTITY(0,1) PRIMARY KEY, ID_GLOBAL VARCHAR(100));
DECLARE @ITERATOR INT = 0;

INSERT INTO @ORDERS(NUMBER_DOC) VALUES
('bebebebe.ru/2990303990')
('blablabla.ru/24000053501');

INSERT INTO @ID_INTERNET_ORDER_GLOBAL(ID_GLOBAL)
(SELECT ID_INTERNET_ORDER_GLOBAL FROM INTERNET_ORDER WHERE NUMBER_DOC IN
(SELECT NUMBER_DOC FROM @ORDERS))
SELECT FROM @ID_INTERNET_ORDER_GLOBAL
WHILE @ITERATOR <= (SELECT COUNT(
) FROM @ID_INTERNET_ORDER_GLOBAL)
BEGIN
DECLARE @XML XML
DECLARE @ID VARCHAR(100) = (SELECT ID_GLOBAL FROM @ID_INTERNET_ORDER_GLOBAL WHERE ID = @ITERATOR)
SET @XML = (SELECT('<XML>
<items>
<item>
<ID_INTERNET_ORDER_GLOBAL>'+@ID+'</ID_INTERNET_ORDER_GLOBAL>
<CASH_TYPE>CSE</CASH_TYPE>
</item>
</items>
</XML>'))
exec dbo.UDP_INTERNET_ORDER_CS_PRINT @XML
END
Аноним 27/05/22 Птн 21:14:17 2365070 160
Аноним 28/05/22 Суб 02:01:40 2365197 161
image.png 64Кб, 1020x943
1020x943
image.png 70Кб, 1570x432
1570x432
Объясните, что этим долбаебам от меня нужно. Урок называется Null handling, говорят мол используй функцию nullif, но я в корень не понимаю на кой хуй мне сравнивать 2 выражения в этом кейсе, если мне надо заменить значения в которых null на строковую билеберду %говно нот фаунд%?
Аноним 28/05/22 Суб 02:21:16 2365200 162
>>2365197
Бля, там пустая строка была и все равно не понимаю нахуй через коалсенсы и нулифы это говно заменять, когда есть IsEmpty. Че за ублюдок этот кал придумывал.
Аноним 28/05/22 Суб 18:49:27 2365745 163
>>2336742 (OP)
Какие подводные хранения HTML строк не полноценный HTML документ, а его фрагменты в mysql колонке с типом XML? Сейчас хранится в виде обычной строки. Не устраивает то, что для того, что бы вытянуть какую-ту часть селектором приходится загружать всю строку на бэкенд, там делать HTML парсинг, после чего отдавать на фронт. Хочу избавится от лишнего звена в виде парсера на бэке, стоит того?
Аноним 28/05/22 Суб 19:08:50 2365782 164
>>2365745
Зачем вообще хранить HTML в БД?
Аноним 28/05/22 Суб 19:44:54 2365807 165
>>2365782
У меня в приложении есть WYSIWYG редактор Quill, который может сохранять только как HTML. Вот то, что пользователь там наредактирует я и сохраняю
Аноним 30/05/22 Пнд 12:22:06 2367005 166
>>2364845
И ты для этого дурацкого вопроса решил выбрать именно баз данных тред?
Может быть сколько угодно слоев языков друг над другом (транслирующихся один в другой). Пользователь языка (программист) обычно сидит на верхнем или около-верхнем уровне, а иногда и сам создает более высокие. SQL кстати неплохой пример, он сам по себе обычно только прокладка между СУБД и языком общего назначения, который спамит скриптами запросов сервер БД.
Аноним 31/05/22 Втр 08:23:47 2367714 167
>>2365807
Трансформируешь этот хтмл в джейсон и не ебёшь мозг. XML и HTML может визуально похожи, но у них разные правила парсинга, так что ебанёшься от постоянных ошибок БД.
Аноним 31/05/22 Втр 08:24:35 2367715 168
изображение.png 11Кб, 547x176
547x176
Аноним 31/05/22 Втр 08:26:53 2367717 169
>>2367715
Хотя я дурак, надо было вместо Group нужный мне столбец вписать.
Но вопрос все равно в силе, что за o и b, и как работает эта магия
Аноним 31/05/22 Втр 14:43:49 2367964 170
>>2367714
Ну в общем говоря, лучше сразу парсить на бэке, спасибо.
01/06/22 Срд 23:48:29 2369190 171
Аноним 03/06/22 Птн 14:35:46 2370634 172
ананасы нид эдвайс

я хочу сделать для знакомой парикмахерше сайт с возможностью сделать к ней запись ( она охуенно стрижет, я хочу так выразить ей респект ) , всё что касается всяких CSS и html я знаю. но нужна будет база данных и какие-то формы записи, очевидно.

что мне для этого понадобится? куда копать? какую базу данных использовать и как ее прикрутить к сайту?
какой сейчас актуальный стэк?
Аноним 03/06/22 Птн 14:41:14 2370641 173
>>2370634
Скорее всего, для этого есть готовая CMS, и код не придётся писать вообще.
СУБД для такого сайта подойдёт любая.
Аноним 03/06/22 Птн 15:03:04 2370656 174
>>2370641
но CMS это же если писать сайт на php?

а какая субд будет наиболее проще для первого раза?
я сделаю нормально, но просто чтобы мне не сломаться о сложность, чтобы не было чрезмерно много информации которую сразу надо в мозг записать
Аноним 03/06/22 Птн 15:04:16 2370661 175
>>2370656
я не хочу писать сайт на wordpress, там бесплатные шаблоны полное говно
поэтому хочу сделать сам, со своим дизайном
Аноним 03/06/22 Птн 15:09:39 2370669 176
>>2370656
может для этого лучше сделать простенькое приложение?
Аноним 06/06/22 Пнд 13:29:48 2372749 177
>>2370661
Копай в сторону headless CMS и натягивай свою вёрстку на джейсоны, которые эта CMS высирает.
И она кстати тебе всё равно не даст.
Аноним 06/06/22 Пнд 14:08:13 2372777 178
>>2372749
ей под 50, челик )))
просто стрижет охуенно, со всякимимашинками wahl, свистелками шейверами и тп, и дешево

хочу ее отблагодарить
Аноним 06/06/22 Пнд 15:08:05 2372838 179
>>2372777
>ей под 50, челик
да лан, всё нормально. никто тебя не осуждает
Аноним 06/06/22 Пнд 22:45:37 2373296 180
>>2336742 (OP)
Сап DB, посоветуйте визуализатор бд, по типу MySQL Workbench. Что интересует
1. Реверс инженеринг существующей бд
2. Отображение визуальной схемы бд (ER Diagram)
3. Отображение связей и их типов между таблицами.
Аноним 07/06/22 Втр 12:48:10 2373636 181
>>2373315
Я скорее всего многое не понимаю, цель следующая. Я создаю связи с разными типами, мне для личного убеждения нужна какая-то отладка, чтобы понимать какая связь реально установлена между таблицами.
Аноним 08/06/22 Срд 00:38:44 2374450 182
Зачем нужны блокировки на уровнях изоляции кроме Serializable?

Ведь по сути одна транзакция ждет коммита другой транзакции просто чтобы выполнить автоматические слияние данных(первая транзакция данные обновила, закоммитила, а вторая обновила после и тоже закоммитила автоматически, и зачем мы ждали, ведь то же самое было бы с другой последовательностью)?
Аноним 08/06/22 Срд 00:59:44 2374474 183
>>2374450
> Зачем нужны блокировки на уровнях изоляции кроме Serializable?
Чем выше уровень изоляции - тем медленнее работает БД. Самым высоким уровнем транзакции можно добиться такого, что транзакции будут выполняться тупо последовательно, и тогда вообще не будет смысла в нескольких ядрах и нескольких нодах приложения, всё будет тормозить и ждать очереди.
> Ведь по сути одна транзакция ждет коммита другой транзакции просто чтобы выполнить автоматические слияние данных
Это только если обе транзакции лезут в одну и ту же таблицу и обращаются к одним и тем же записям, тем более если обе хотят туда что-то записывать, а не просто читают. Таких случаев сравнительно немного, большинство транзакций работает с разными данными, не мешают друг другу.
> (первая транзакция данные обновила, закоммитила, а вторая обновила после и тоже закоммитила автоматически, и зачем мы ждали, ведь то же самое было бы с другой последовательностью)?
Одна из транзакций не закоммитится, будет ошибка.
Аноним 08/06/22 Срд 01:00:14 2374475 184
92ad78ac7f6c49e[...].png 73Кб, 1123x794
1123x794
>>2374450
Вот тут delete автоматически удаляет новую версию даже без нового select и автоматически мержит те данные на шагах 8 и 9.
Аноним 08/06/22 Срд 01:01:55 2374477 185
>>2374474
>>2374475
Вот тут коммит проходит в 3 транзакции.
Аноним 08/06/22 Срд 01:11:17 2374484 186
>>2374474
> Одна из транзакций не закоммитится, будет ошибка.
У меня в postgres закоммитилось два обновления одного и того же.
Аноним 08/06/22 Срд 01:28:06 2374491 187
Кажется я понял, про что это, если есть первая транзакция, так она после изменения данных должна быть уверена, что никто до конца их не изменит и не закоммитит.
Пример из википедии https://en.wikipedia.org/wiki/Record_locking врет в данном случае. Клерк 2 спокойно перезапишет документ Клерка 1.
А данные Клерка 1 никто никогда не увидит.

Можно даже начать транзакцию, удалить данные, попытаться обновить их во 2 транзакции, а потом закоммитить первую, ошибки второй не будет, просто вернется
UPDATE 0
Аноним 09/06/22 Чтв 01:40:00 2375409 188
Допустим я хочу реализовать trie в постгресе. Ничего путного по теме не нашёл, но есть структура ltree, это она? И какой же у неё уёбищный синтаксис, как и у всех расширений постгреса.
Аноним 09/06/22 Чтв 07:06:19 2375454 189
Аноним 10/06/22 Птн 13:02:19 2376349 190
стоит ли читать HeadFirstSQL если полный ноль?
Аноним 12/06/22 Вск 00:06:36 2377514 191
>>2376349
Я когда был нулем читал 1ое издание вот этой. Там было вообще 300 очень маленьких страниц, без дурацких картинок, теперь 400.
Аноним 12/06/22 Вск 15:16:54 2377833 192
>>2336742 (OP)
Сап, двач. Нужно хранить много HTML, еще и с изменениями - то есть вот HTML за такую дату, вот - за такую. Какое хранилище мне лучше выбрать? Или посмотреть, как это делает гит с помощью слепков?
Аноним 12/06/22 Вск 15:21:30 2377838 193
>>2377833
Посмотри, как вики-движки хранят историю страниц.
Аноним 12/06/22 Вск 16:05:19 2377899 194
>>2377846
Да в теории весь сайт (любой) в HTML. Хочу диффы формировать.
Аноним 12/06/22 Вск 16:35:41 2377933 195
>>2377920
Спасибо, пойду алгоритмы формирования диффов гуглить.
Аноним 12/06/22 Вск 20:49:26 2378182 196
>>2377899
>Хочу диффы формировать.
А зачем?
Аноним 12/06/22 Вск 22:09:40 2378267 197
>>2378186
>а заебись бы было, не?
Можно фото шлюх с интимсити парсить, только хз как это легально монетизировать, да и гораздо более интересные схемы были или есть. Когда тянок на фото разводят, а потом шантажируют .
Аноним 12/06/22 Вск 22:50:38 2378293 198
>>2378186
у вк есть api, использовать его для мониторинга и сталкеринга проще

я бы не хранил фул диф. проще в каждом объекте связанном с профилем иметь инфу о дате, когда она добавилась или была уделена
Аноним 12/06/22 Вск 23:24:30 2378339 199
>>2378182
Честно сказать, на форче неплохую идею для пет-проекта подкинули.
Аноним 13/06/22 Пнд 09:00:11 2378512 200
>>2378339
Не расскажешь идею?
Аноним 13/06/22 Пнд 11:29:36 2378583 201
>>2378512
Should do the following:
1. Poll URL and generate diff from previous version
2. Diff algorithm should be configurable, user should be able to add them as plugins. For starters simple HTML text diff is enough.
3. GUI should be able to show diff to user. Extra points if diff can generate abbreviated version, implementation may be site-specific.
4. GUI should be able to show worldmap, mapping URL to location. Any URL->Location mapping method will do.
5. Program should be able to use URL-specific connection settings, proxy should be enough. Extra points for ovpn/wireguard/whatever
6. Generate pdf with diff per time period.
7. Tech stack - elixir, phoenix (live updates on map with channels), DB - any kind, content storage on S3 (minio). Frontend - your choice.
Аноним 13/06/22 Пнд 14:46:08 2378666 202
41A-KL8Y1vL[1].jpg 31Кб, 381x500
381x500
Аноним 13/06/22 Пнд 15:34:14 2378688 203
Сап двачь!

Дело в том что мне нужно key value бд. Можно и графовую, если таких kv нет. Реплицируемая в многокластерную хуйню (обязательно), шардинговая (не обязательно, но желательно). Полностью опенсорс, без разделения важных фич для интепрайса. Без JVM.

Нашел только FoundationDB. Касандра ещё норм, но oна жава.
Аноним 13/06/22 Пнд 17:52:11 2378800 204
Аноним 13/06/22 Пнд 18:13:52 2378826 205
>>2378800
Она же на диск не пишет. Мне что, ручками всё делать? Ну ладно если на диск не пишет можно реплик ебануть 10 штук, но она и реплики и кластеры не поддерживает, мне что тогда, ручками реплики делать? Слишком слошна.


Пизда конечно, никаких бд по моему запросу нет по сути. Вот были времена когда майскуль ебанул на сервер и всё, похуй. Отвалился так отвалился, старую базу поднимай.
Аноним 13/06/22 Пнд 18:23:04 2378836 206
>>2378826
А ты откажись от требования "без JVM".
Аноним 13/06/22 Пнд 18:34:23 2378845 207
>>2378833
> berkeleydb
Хммм. Репликация есть. А я думал что нет. Хорошо что подсказал, нужно изучить детальнее её. Но конечно там ручками дохуя придётся пердеть.
> leveldb
У него репликация через JVM, неприятненько.

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

Алсо, а касандра жозенько пропихивает свой датастакс в опенсорс? Вообще не читал на эту тему. Редис, например, прямо ебёт досуха каждого долбоеба кто решил попользоваться редисом.
Аноним 13/06/22 Пнд 20:04:00 2378942 208
>>2378688
> графовую

Господи Иисусе, зачем?
Аноним 13/06/22 Пнд 21:00:03 2378970 209
>>2378942
Ну я могу довольно просто изменять почти всю бизнес-логику под БД. Не проблема вообще, можно сделать весьма неплохо, если перестроить данные так чтобы оно графы мне считало. Но похуй. У фоундейшена появился хороший калкурент.

https://griddb.net/en/
Griddb епта. Используется и сделано тошИба. Ну типо епта с++, сделана японцами, не геями-кожевниками из эпла. Внушает доверие, а? Как низкорослый карлик доверяю низкорослым карликам из Японии. Сайт хорошо выглядит, красивый маскот. Потратились ребята. Есть клиенты под жабу, питон, ноду. Ноу-ебля эдишн короче. КАКОВО НАХУЙ КОГДА ЕБАЦО НЕНУЖНО?

Всю бд делали 7 человек на гитхабе. Но у одного из них седые волосы.
Аноним 13/06/22 Пнд 21:12:37 2378976 210
>>2378970
>Ну типо епта с++, сделана японцами, не геями-кожевниками из эпла.
Полехче с таким заявлениями.
Gay-related immune deficiency (GRID) (sometimes informally called the gay plague or GRIDS, standing for Gay-related immune deficiency syndrome) was the original name for AIDS
Аноним 13/06/22 Пнд 21:14:57 2378979 211
>>2378970
братишка,
если бд написана на джяббе - это не означает что ты должен переписывать своё приложение на джяббе
Аноним 13/06/22 Пнд 21:22:17 2378980 212
>>2378970
> Griddb епта.
> GridDB is a NoSQL database which pursues high-speed and high-scalability and does not have a transaction function for the entire database like a relational database. However, transactions are supported in “container” units.
Ой, у них вместо ACID что-то другое непонятное. Эх, японцы. Ну для IoT наверное норм.

>>2378976
Хм, а ведь действительно. Как KV могут быть GRID? Никак, очевидно.

>>2378979
Так-то да, но руки-то чешутся. Если есть JVM, значит нужно писать в JVM. Зачем она просто так стоит? Непорядок.
Аноним 13/06/22 Пнд 21:47:53 2379010 213
>>2378980
> Так-то да, но руки-то чешутся. Если есть JVM, значит нужно писать в JVM. Зачем она просто так стоит? Непорядок.
А если БД написана на C++, тоже руки чешутся писать бизнес-логику на плюсах?
Аноним 13/06/22 Пнд 22:05:06 2379037 214
>>2379010
Так бизнес-логику и так все на плюсах пишут.
Аноним 13/06/22 Пнд 22:19:01 2379044 215
>>2379037
На плюсах не пишут бизнес-логику, на них пишут платформы и среды, поверх которых уже на высокоуровневых языках пишут бизнес-логику.
Аноним 13/06/22 Пнд 22:38:11 2379065 216
>>2379044
Нет, бизнес-логику, вроде того же перебора графа, очень часто пишут на плюсах/си. Как и транзакции всякие.
Ну и вообще термин "бизнес-логика" для ньюфагов, размытый и нихуя не значит, не используй особо его вне пиздаболии с менеджерами.
Аноним 13/06/22 Пнд 22:43:35 2379069 217
>>2379065
У бизнес-логики вполне конкретное значение: описание бизнес-процессов предприятия, соответственно, есть привязка к предметной области. Это явно не те категории, которые должны относиться к разработке СУБД.
Аноним 14/06/22 Втр 05:48:57 2379213 218
>>2379069
> бизнес-процессов
Ты ввёл ещё одно определение, которое не имеет смысла и не определено. И ввёл его чтобы объяснить предыдущее определение без смысла. Ебать ты менеджер, хуле ты в этом треде забыл?

Вот рассчёт графа это бизнес-процесс? А ведь он буквально регулярно проводит рассчёты над устройствами, получая и создавая готовые данные, которые попадают в аналитику без модификаций. Просчёт интернет-мошенничества это бизнес-процесс? А это тоже через рассчёт графа происходит.
Блджаж, да я с десяток "бизнес-процессов" могут только на одном графе напердеть тебе.
Аноним 14/06/22 Втр 14:22:12 2379473 219
>>2379213
Данные тебе в этот граф боженька отсыпает?
Аноним 14/06/22 Втр 14:24:55 2379477 220
Есть где-то описание апи для работы с постгрей? Для любого языка в целом
Точнее, что я хочу: подобие гуишной тулзы сделать для себя. В которой вкладки для постгри есть, редиса, тарантула и прочего что юзаю.
Затык на постгре. Для себя хочу управлять включением/выключением бд, время запросов, запросы, само описание таблиц, размеры и т.д. Короче объединить всякие тулзы в одну. Но мне не клиент нужен и не хочу системные pg_ctl вызывать.
Можете подсказать?
Аноним 14/06/22 Втр 14:49:36 2379484 221
Аноним 14/06/22 Втр 16:30:34 2379577 222
Screenshot from[...].png 42Кб, 783x222
783x222
Пытаюсь установить SQLServer на Ubuntu 22.04 LTS, следую официальному гайду: https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu

Однако когда пытаюсь пробежать sudo apt-get install -y mssql-server, то получаю сообщение о том, что серверу понадобится libldap-2.4-2, хотя у меня установлена обновлённая версия libldap-2.5-0. Даунгрейднуться не получается, потому что libldap-2.4-2 в принципе не доступен для скачивания. Есть ли какой-то способ проинструктировать mssql-server обратиться к libldap-2.5-0? Если нет, то каковы мои альтернативы, чтобы таки завершить установку?
Аноним 14/06/22 Втр 16:40:43 2379594 223
Аноним 14/06/22 Втр 17:39:13 2379648 224
>>2379473
Клиенты. Без бизнеслогики, чистые данные.
Ты говоришь про слой промежуточных серверов, которые не относятся к высокопроизводительным серверам с отдельными фичами и к серверам с бд. Ну да, там частенько используют высокоуровневые языки. Но не всегда, потому что без плюсов оптимизировать очень слошна.
Аноним 14/06/22 Втр 20:45:31 2379827 225
>>2379648
>Клиенты. Без бизнеслогики, чистые данные.
Волшебные клиенты по воздуху передают напрямую содержание памяти на своих машинах? И ты не менее волшебно их просто загружаешь прямо в память? Такую важную деталь, как откуда у них эта информация берётся, можно даже не упоминать.
>Ты говоришь про слой промежуточных серверов, которые не относятся к высокопроизводительным серверам с отдельными фичами и к серверам с бд.
У тебя от писания на крестах просто началась профессиональная деформация. Ты сидишь в треде, доменные языки которого разделены на два лагеря - человекочитаемый SQL и человекочитаемый JSON, и при этом заливаешь про отсутствие бизнес-логики как термина. Разработчикам постгреса наверно моча в голову ударила реализовывать и допиливать поддержку джейсонов в своём продукте, а разработчики монги просто захотели запилить индексы и джоины. Хотелки бизнеса здесь вообще ни причём.
Аноним 14/06/22 Втр 22:13:51 2379898 226
ананусы сап
вкатился я в базы данных начав изучать sqlite
можете мне пояснить кое что из азов?

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


Аноним 14/06/22 Втр 22:14:01 2379900 227
>>2379484
И правда, с libpq тоже нельзя стартом субд управлять.
Аноним 14/06/22 Втр 22:49:25 2379913 228
Разбираюсь в функциях в постгре и вопрос возник. Я могу указать, что нужно возвращать все столбцы не перечисляя их? Т.е. я могу указать RETURNS SETOF "MyTable", но мне нужно вернуть две сджойненные таблицы. Могу указать RETURNS TABLE, но тогда нужно вручную указывать все столбцы, что утомительно и можно забыть поправить функцию, если добавиться столбец.
Аноним 15/06/22 Срд 00:20:13 2379957 229
>>2379827
>Волшебные клиенты по воздуху передают напрямую содержание памяти на своих машинах? И ты не менее волшебно их просто загружаешь прямо в память? Такую важную деталь, как откуда у них эта информация берётся, можно даже не упоминать.
Что это за бредятина нахуй? Информация с датчиков.
Перестань свои менеджерские маняфантазии о сайтиках применять на всё что угодно.
>У тебя от писания на крестах просто началась профессиональная деформация. Ты сидишь в треде, доменные языки которого разделены на два лагеря - человекочитаемый SQL и человекочитаемый JSON, и при этом заливаешь про отсутствие бизнес-логики как термина.
SQL это не бизнес логика. Почитай что такое SQL на досуге, манагер.
Аноним 15/06/22 Срд 11:06:55 2380174 230
>>2379957
>Что это за бредятина нахуй? Информация с датчиков.
Датчики тоже из воздуха дату собирают? Никаких протоколов и следования стандартам, да? И отправляют гигабайты несжатых данных прямиком из памяти.
>Перестань свои менеджерские маняфантазии о сайтиках применять на всё что угодно.
Пердолик что-то там о маняфантазиях рассказывает, лол.
>SQL это не бизнес логика.
Он существует исключительно из-за нужд бизнеса. Пердолики всё хотят запилить бинарного убийцу SQL, да всё никак не могут.
Аноним 15/06/22 Срд 14:28:39 2380352 231
>>2380174
>Датчики тоже из воздуха дату собирают? Никаких протоколов и следования стандартам, да? И отправляют гигабайты несжатых данных прямиком из памяти.
Да, просто байты отсылают. По udp/tcp. Если какой-то датчик отсылает вместо чистых бинарных данных какое-то говно в json - его нахуй меняют на нормальный. Ебать ты манагер, ты что, нафантазировал как датчики json отсылают?
>Пердолик что-то там о маняфантазиях рассказывает, лол.
Ух эти пердолики! Не то что высшая каста, манагеры!
>Он существует исключительно из-за нужд бизнеса.
Манагер, плиз. Он существует из-за легаси и согласованности данных, которая как раз и являются нуждой бизнеса.
Мелкого бизнеса, в основном, сосайтики там всякие твои, мелкие магазины. У крупного биза проблемы с SQL, из-за невозможности горизонтального масштабирования.
> Пердолики всё хотят запилить бинарного убийцу SQL, да всё никак не могут.
Убийцу SQL сделоли - CRDT. Манагеры уже переучиваются на бетховен и солидити, а ты всё аутируешь в SQL. Хотя могу тебя понять, SQL ламповый, а CRDT только в зайчатках. Вот бы сделали SQL CRDT.
Аноним 15/06/22 Срд 20:20:14 2380650 232
pic1.png 64Кб, 1736x738
1736x738
pic2.png 44Кб, 1587x638
1587x638
Есть запрос вида select from (select from A ...) as SubA left join B on SubA.a = B.b
есть индекс по B.b. Для 25 записей пришедших из SubA дергается 25 раз индекс B.b (пик 1). Все ОК.
Но если выношу подзапрос в процедуру и получаю запрос вида select * from myPoc() as ProcA join B on ProcA.a = B.b
то на индекс кладется болт и строится хэштблица для всей присоеденяемой таблицы (пик 2), и запрос в 50 раз дольше на небольшой базе. Это не ОК. Есть мысли как разрулить?
Аноним 16/06/22 Чтв 00:48:21 2380756 233
>>2380650
В оракле хинт leading или ordered с use_nl юзается, как в других базах хинты работают хз.
если вообще правильно понял вопрос, с разработкой процедур не сталкивался
Аноним 16/06/22 Чтв 07:07:01 2380810 234
>>2380650
шо за софт на скринах?
Аноним 16/06/22 Чтв 16:16:46 2381181 235
Аноним 16/06/22 Чтв 17:56:53 2381261 236
>>2381181
блин, оно для постгре.
а есть такое же красивое, только для мускула?
Аноним 16/06/22 Чтв 20:35:51 2381360 237
Меня продолжают унижать функции в постгре. Я могу сделать запрос select * from A join B, и оно мне вернет например
|id|fieldA|id|fieldB
но я не могу вернуть из функции
table(id integer, fieldA text, id integer, fieldB text)
ибо два столбца с именем id ни-ни, а если переименовать столбец, то это перепердоливать мапперы. Ну что за хуета?
Аноним 16/06/22 Чтв 20:42:17 2381367 238
>>2381360
Перепердоливай говномапперы, делай нормально.
Аноним 16/06/22 Чтв 22:10:18 2381425 239
изображение.png 993Кб, 1283x720
1283x720
Кто-нибудь может доступно объяснить чем отличается под подход Аймона от Кимбелла?

У одного 3NF, у другого просто называем справочники DIMENSION и точно так же джоиним.
Аноним 16/06/22 Чтв 22:13:08 2381426 240
>>2380650
Если кому интересно, то дело в том, что планировщик, при использовании функции не может прикинуть количество возвращаемых из нее строк. Он решает (возможно константное значение заложено), что функция вернет 1к строк и решает, то лучше сделать seq scan на 20к строк, чем 1000 раз долбить индекс, что при таком раскладе вполне разумно.
Можно закостылить установив лимит
select * from func() limit N
В моем случае количесво мне известно, так как оно зависит от размера передаваемого в функцию массива. Но в общем случае видимо придется страдать.
Аноним 17/06/22 Птн 01:07:07 2381524 241
d0e9ee9.jpg 46Кб, 1000x1000
1000x1000
Базач, есть потребность данные из db2 реплицировтаь в postgres.
Что можно использовать, помимо экспорта-импорта файлов?
db2 fdw не катит - используется несовместимая версия постгри.
Помоги, анон.
сам нихуя не базист
Аноним 17/06/22 Птн 09:46:14 2381650 242
>>2381524
linked server, либо любой etl инструмент
Аноним 17/06/22 Птн 19:22:27 2382147 243
>>2381426
>>2380650
Оказывается в функция можно указать кол-во строк и стоимость для планировщика и ебать вола. Удивительно, что в бд треде не тех, кто шарит в бд нет
Аноним 19/06/22 Вск 13:01:56 2383481 244
Нужна бдшка для телеграм бота, очень маленькая, пяток табличек, максимум записей - 500. Какую выбрать?
Аноним 19/06/22 Вск 16:23:07 2383709 245
>>2383481
sqlite, если наличие хранимок не принципиально.
Аноним 21/06/22 Втр 21:20:44 2385791 246
а что такое хранимки?

алсо поясните нубу: могу я где-то скачать mysql бесплатно?

хочу вкатиться в базы данных, лет 10 назад верстал сайты, хочу вкатиться в IT на хуй пошел я , знаю
Аноним 21/06/22 Втр 21:28:49 2385800 247
>>2385791
> а что такое хранимки?
Хранимые процедуры. Это когда логика программы не в виде какого-то экзешника или скрипта, а прямо в базе данных.
> алсо поясните нубу: могу я где-то скачать mysql бесплатно?
https://dev.mysql.com/downloads/installer/
> хочу вкатиться в базы данных, лет 10 назад верстал сайты, хочу вкатиться в IT на хуй пошел я , знаю
Ну, вкатывайся, чо
Аноним 22/06/22 Срд 01:22:47 2385895 248
>>2385800
а может простыми словами пояснить, что значит прямо в базе данных? не понимаю , не могу представить

допустим файл с кодом который выполняет что-то когда его читают могу представить, а что значит прямо в программе невразумею
Аноним 22/06/22 Срд 02:00:56 2385898 249
>>2385895
Вот умеет СУБД как-то хранить таблицы, вьюхи и индексы в каких-то своих внутренних файлах БД. И так же она хранит в том или ином виде процедуры в виде кусков инструкций, которые сама СУБД умеет интерпретировать и исполнять, как это делают интерпретаторы некоторых языков программирования. Это может быть байт-код, исходники скриптов или что-то ещё, физически, конечно, всё хранится в файлах в бинарном виде. Ты пишешь команду CREATE PROCEDURE, прямо там же её исходник на понятном СУБД языке (к примеру PL/SQL в Oracle или T-SQL в MS SQL Server), она в свою очередь этот исходник парсит и где-то у себя сохраняет. В любой другой момент ты можешь вызвать эту процедуру, и она просто запустится и выполнится. Можно сравнить с макросами в Excel. На таких языках удобно работать со стандартными командами SELECT/INSERT/UPDATE/DELETE, ты просто их пишешь как обычные операторы языка, но в довесок к ним у тебя есть переменные, условия, циклы, вызов других процедур и прочие стандартные возможности языков программирования.
Аноним 22/06/22 Срд 19:56:19 2386556 250
Аноним 27/06/22 Пнд 15:54:32 2390424 251

аноны сап
подскажите
скачал установил open server, пытаюсь в настрйоках включить чтобы появился phpmyadmin , настрйки - модули - mysql, но как только выбираю sql win10 - опен сервер не запускается

у меня 7ка если что. поясните плез как настроить ээто всё
Аноним 27/06/22 Пнд 21:56:35 2390751 252
>>2390424
Спроси в каком-нибудь PHP-треде (или кто ещё там юзает подобный софт). Вряд ли проблема имеет хоть малейшее отношение к MySQL как таковому.
Аноним 28/06/22 Втр 14:01:40 2391214 253
>>2390751
оказалось все просто, у разных версий - разный дефолтный пароль.

алсо - для изучения базы данных а именно MySQL что лучше поставить? просто чистый MySQL с сайта мелкомягких или можно оставить опен сервер? какую самую позднюю версию можно накатить на win7 ? у меня заработал только с 5.6
Аноним 28/06/22 Втр 14:11:44 2391224 254
>>2336742 (OP)
В постгресе выбираю часть мыла до @. Возвращается что-то типа 'marie.sue'. Как мне сделать так, чтобы только первая буква конвертировалась в верхний регистр? initcap дает 'Marie.Sue'. Неужели нужно ебаться с конкатенацией?
Аноним 28/06/22 Втр 21:53:25 2391689 255
>>2391224
Да, ебаться с конкатенацией. Для такой специфической проблемы отдельную функцию решили не запиливать.
Аноним 29/06/22 Срд 06:24:10 2391839 256
image.png 12Кб, 365x302
365x302
image.png 4Кб, 450x146
450x146
image.png 13Кб, 432x352
432x352
image.png 47Кб, 180x200
180x200
Всем доброго времени суток аноны повелители БД. Я как заплутавший стьюдент пришел за вашей помощью. В чем суть,
я пишу типичный веб сервис на REST архитектуре, у которой есть БД постгрес, и у неё есть несколько таблиц с UNIQUE столбцами.
И вот смотрите:
1. я шлю post запрос на запись данных в таблицу

2. в табличку данные записываются и в столбце primary key (просто к примеру если табличка пустая) я получаю 1

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

4. естественно получаю от БД сообщение что данные нельзя записать и что они не уникальные

5. и вот тут начинается магия, я шлю теперь правильный (с новыми данными) post запрос на запись данных в таблицу, туда все записывается, но! в столбце с primary key теперь не 2 а 3

Нахуя он пишет первичный ключ 3 если есть всего лишь 2 строки, причем у одной из них 1, как постгрес перескочил с 2 на 3?
Вот хочу понять это я кривой код написал, или постгрес с табличками неправильно сделал. Если первое то не буду вас беспокоить и пойду к разрабам на том языке на котором свою каку накодил.

Был бы крайне признателен если поможете




Аноним 29/06/22 Срд 06:44:44 2391844 257
>>2391841
Бля пчел объясни своими словами пж, это что значит, мне нужно добавлять ON CONFLICT или это не баг а фича и ничего в этом плохого нет?
Аноним 29/06/22 Срд 09:13:13 2391905 258
image.png 40Кб, 787x231
787x231
>>2391845
Спасибо за то что навел в правильном направлении, сейчас покопался и понял что не обязательно делать все значения последовательным, они уникальны и соответствуют требованиям первичного ключа да и хуй с ними.
Аноним 29/06/22 Срд 11:38:48 2391990 259
Здравствуйте!

Суть проблемы:
В СУБД (postgresql) есть таблица data. В этой таблице есть столбец address, в котором хранится json. Внутри json, среди значений, встречаются строки вида \u041e\u043f\u044b\u0442\u043d\u0430\u044f.

С извлечением этих строк проблем нет. Запрос типа:
select trim('"' from (address::json->'street')::text) as "StreeName" from data;
отрабатывает замечательно, но вот есть проблема с перекодированием этой строки в читабельный вид, т.е. чтобы вместо "\u041e\u043f\u044b\u0442\u043d\u0430\u044f" отображалось "Опытная".

Пробовал всякие encode|decode|convert_to|convert_from, но желамеого результата нет - или пустое значение или ошибка типа "неверный синтаксис для типа bytea".

Вопрос:
Скажите, пожалуйста, как правильно перекодировать юникод-строки в читабельный вид в постгресе?



Аноним 29/06/22 Срд 12:11:47 2392017 260
>>2392013
Язык - sql.
Я не могу понять как нужно обработать значение
trim('"' from (address::json->'street')::text)
чтобы результатом select-запроса была читабельная запись.

Что-то типа:
select МАГИЯ(trim('"' from (address::json->'street')::text)) as "StreeName" from data;
Аноним 29/06/22 Срд 17:07:24 2392224 261
К довольно сочному собесу надо нахватать хотя бы по верхам теории по следующей теме:

DWH: структуры отчетов, источников, хранение данных в DWH - слои, объекты, логика преобразования данных, показатели качества требований, модели и типы хранения данных и т.д.

Аноны, выручайте, посоветуйте ресурсы, по SQL я разъебу их, а по проектированию хранилища надо хотя бы сойти за не полного идиота.
Аноним 29/06/22 Срд 22:26:24 2392481 262
image.png 27Кб, 549x455
549x455
image.png 21Кб, 459x451
459x451
image.png 15Кб, 959x121
959x121
господа аноны, помогите. В базах хуёво шарю, пилю пет проект. Надо агрегировать две коллекции, тренируюсь, но нихуя не выходит.
Аноним 29/06/22 Срд 22:41:37 2392491 263
image.png 1483Кб, 1800x1273
1800x1273
image.png 4Кб, 328x221
328x221
PostgreSQL
Как из Столбца 1 и Столбца 2 получить Результат?
Каждое значение в С1 повторяется строго два раза. Для каждого уникального С1 нужен результат вычитания соответствующей пары чисел в С2.
Аноним 29/06/22 Срд 22:51:37 2392497 264
Аноним 29/06/22 Срд 22:55:04 2392498 265
>>2392497
Енто я уже нагуглил.
Но что-то похожих примеров нет.
Короче, сделайте за меня, позязя)0)0))
Аноним 29/06/22 Срд 23:25:51 2392526 266
>>2392498
Не надо искать примеры, просто научись делать partition by C1, и в каждом окне считай разницу между first _value() и last_value().
Аноним 01/07/22 Птн 19:37:04 2393826 267
Такая тема, мне нужно раз в неделю персистентно писать очень много данных в бд, а потом доставать их по ключу, это что-то вроде горячего кеша. Данные выглядят, как json'чики по 200кб.
Я пробовал постгрес, монгу и редис, примерно все одинаково плохо работают с записью объектов такого размера и получается заточены под хранения большого количества маленьких файликов. Редис только ещё и пытается вообще всё в памяти хранить и в итоге по оперативке быстро проседает.
Плохо работают - это упираются в CPU базы и в итоге запись длится часы. Я ещё думал, что может монга будет работать быстрее постгреса, так как ему нужно время на нарезку json'а на тосты, но оказывается нихуя, работают примерно одинаково.

Что ещё затестить? Удивлен, что оказывается задача "записать несколько гигов в виде json'ов средне-большого размера настолько неочевидная. Я уже думал, что может распределенную фс поднять и туда писать, прям реально файликами.
Аноним 01/07/22 Птн 20:13:48 2393860 268
>>2393834
Я же сказал "хранить персистентно", это означает распределенность, устойчивость, фейловер и тд и тп.
Аноним 01/07/22 Птн 20:41:15 2393914 269
Аноним 02/07/22 Суб 14:51:19 2394301 270
А можно как-то в postgres подписать case конструкцией as? Прохожу курс, в нем задание - достать общее количество продаж у продавца, и отдельный столбец - премия. Если продаж больше определенного числа, то там 'да', иначе 'нет'. Вот мне надо, чтобы case выводился как 'Премия'
Аноним 02/07/22 Суб 15:00:25 2394305 271
Аноним 02/07/22 Суб 17:12:21 2394417 272
>>2394301
А спрашивать то зачем? Попробуй сначала и ВНЕЗАПНО увидишь, что это работает.
Аноним 02/07/22 Суб 18:13:30 2394474 273
>>2394417
>>2394305
Я бы не спрашивал, если бы не пробовал. У меня нет получилось.
Аноним 02/07/22 Суб 21:03:20 2394616 274
Аноним 02/07/22 Суб 21:04:31 2394617 275
Аноним 04/07/22 Пнд 15:00:44 2395961 276
суп

для изучения mysql и запросов что лучше ставить на комп - open server или просто скачивать и ставить mysql ?

сколько вообще по канону нужно времени чтобы научиться нормально понимать и писать запросы?

алсо может порекомендуете хороший курс?
Аноним 04/07/22 Пнд 18:45:00 2396168 277
>>2336742 (OP)
>Ссылки:
>https://www.w3schools.com/sql/
>https://learnxinyminutes.com/docs/sql/
>https://metanit.com/sql/
>Задачи:
>https://www.sql-ex.ru
>http://sql-tutorial.ru/
Удали

Вcтавь:
>https://github.com/agarcialeon/awesome-database
>https://www.mysqltutorial.org/

>Продвинутый MySQL
>https://www.mysqltutorial.org/mysql-resources.aspx
>https://shlomi-noach.github.io/awesome-mysql/

Не вижу инструменты проектирования БД, где? Вставь хотя бы https://www.mysql.com/products/workbench/
Аноним 04/07/22 Пнд 19:26:26 2396202 278
>>2396006
спасибо тебе анон
я конечно же нихуя не понял но очень интересно

а зачем вообще всю эту систему ставить? для изучения в чем будет разница с просто sql и open server?
Аноним # OP 04/07/22 Пнд 21:10:20 2396281 279
>>2396168
Ок, если не забуду при перекате.
Аноним 05/07/22 Втр 20:39:04 2397238 280
>>2396006
Нахера вообще что-то ставить, если есть dbfiddle? Ты ещё ему кубернетес порекомендуй
Аноним 05/07/22 Втр 23:12:36 2397324 281
>>2396212
а я думал что mysql это и есть Та Самая база.
т.е. все ставят MSSQL а не MySQL?
Аноним 05/07/22 Втр 23:30:57 2397339 282
>>2397324
MSSQL ставят исключительно шарпобляди, потому что у них нет выбора. Все остальные используют PostgreSQL, ещё в легаси Oracle остался.
Аноним 06/07/22 Срд 00:40:12 2397404 283
>>2397339
а поясни мне азы плез. запутался.

есть SQL - это язык.
а PostgreSQL, MySQL, SQLite - это среда или интерфейс просто?

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

а по факту ( или наиболее часто ) в работе - это просто комнадная строка и запросы? как это выглядит визуально?

Аноним 06/07/22 Срд 01:00:19 2397421 284
>>2397404
SQL - это язык, у которого есть стандарт, но нет "эталонной" реализации, которую бы юзало большинство.
Постгресы и мускулы - это всё СУБД, т.е. движки для создания и управления БД. Для доступа к БД они все предоставляют поддержку SQL, но каждый из них добавляет свои расширения, которых в стандарте SQL нет.
Поддержка SQL для разработчиков приложений реализована через специальные библиотеки (драйверы), где ты на уровне обычного языка программирования пишешь SQL-запросы в виде строк, передаёшь их библиотеке, а они передают их СУБД, те их выполняют и возвращают ответы в виде таблиц, для программиста это будет что-то вроде готового массива значений. Также у СУБД обычно есть из коробки простые программы с консольным интерфейсом, где можно писать запросы, а они внутри юзают драйверы и просто выводят результат.
Ну и кроме консольных утилит есть сторонние приложения, которые делают то же, что и эти утилиты, но в виде удобного графического интерфейса, где да, как раз открываешь таблицы как эксель и меняешь данные, кликая мышкой, ну и ещё можно писать те же SQL-запросы в специальных полуконсольных-полуграфических режимах. Насчёт Open Server не знаю, хз что это, там либо юзается одно из таких приложений с графическим интерфейсом, либо какая-то своя тулза.
При написании приложений пользуются в первую очередь драйверами, консольные и графические утилиты нужны только для того, чтобы иногда заходить и смотреть данные в БД, сами приложения их не юзают, они работают исключительно через драйверы.
Аноним 06/07/22 Срд 02:19:52 2397449 285
Анончики, я тут со странным вопросом

Есть одна амуриканская проприетарная программа, которая пишет данные в MS SQL базу данных. Эта база данных уже занимает 30гб. В ней есть одна таблица с миллиардами записей (буквально - данные туда летят чуть ли не каждую минуту, и накапливаются за года)

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


Ну вот, импортозамещение.. Делаю простенькие селект-запросы... Ничего сложнее простого селект-фром-вере...

Почему мои запросы выводящие ровно теже данные по тем же условиям выполняются за минуты... А в той программе мнговенно?

Меня тут больше для самообразования интересует - хочу разобраться в какую сторону копать чтобы тоже так делать.
Аноним 06/07/22 Срд 13:26:09 2397798 286
>>2397421
в open server там работа с базой данных через phpmyadmin
Аноним 06/07/22 Срд 13:38:30 2397819 287
>>2397449
Один хуй твоя программа запросы шлёт в базу, а не напрямую из ноосферы данные вытаскивает, они должны на стороне базы в истории храниться, вот откопай их и посмотри в чём прикол, вангую ты просто партиций дохуя смотришь.
Аноним 06/07/22 Срд 17:26:24 2398009 288
>>2397804
спасибо. возьму с собой маску для плавания с трубкой

а что посоветуешь ? как учиться работой с базой данных сейчас?
чтобы актульаное и прикладное. я просто посмотрел web, всякие javascript, html css , php, и понял вдруг что мне очень нравится именно базы данных, я сука люблю структуры, порядок, логику, плыву в этой моче и кайфую

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


Аноним 06/07/22 Срд 17:27:10 2398011 289
>>2397804
алсо что такое сосональная работа?
Аноним 06/07/22 Срд 19:01:36 2398089 290
удалил к хуям open server и mysql, ставлю postgreSQL и PGadmin
норм?

Аноним 06/07/22 Срд 20:32:20 2398151 291
Аноним 06/07/22 Срд 21:25:48 2398183 292
>>2398146
т.е. просто через sql shell? типа через командную строку?
Аноним 06/07/22 Срд 21:31:46 2398186 293
>>2398146
да что такое соснали-то? как по анлийски будет?
Аноним 06/07/22 Срд 21:32:30 2398187 294
>>2398146
соснали = консоли? )))
Аноним 07/07/22 Чтв 12:33:26 2398549 295
>>2398431
хочу разврата и потерять невинность
остаюсь
жду ответов
Аноним 07/07/22 Чтв 18:09:28 2398863 296
>>2397804
Что бля? Я тебя сам на лицо нассу щас. Только долбаёб будет пердолится в консоли, когда миллион сред для разработки. Консоль запускается в крайних случаях, когда нужно создать первого пользователя, проверить проблемный запрос, никто в чёрные целыми днями не смотрит.

мимо
Аноним 07/07/22 Чтв 18:14:25 2398869 297
>>2398009
Если ты просто вебмакака, то тебе нужен только CRUD. Как аноны выше советовали ставишь докер и работаешь с ним. По структуре и логике это наверное скорее Data Governance, а работа с базами данных это часто говно и кастыли, потому-что заказчик хочет что-то специфическое, и ему поебать что это не соотвествует текущей модели данных. Почитай кабанчика с ОП пика. Пойми, сами по себе бд, в отрыве от конкретного проекта/приложения ценности не имеют.
Аноним 07/07/22 Чтв 19:07:40 2398918 298
>>2398869
не, я не веб макака, я бы хотел проектировать БД,
структуры

скачаю докер ок.
Аноним 07/07/22 Чтв 20:58:08 2399010 299
>>2398918
Тогда пиздуй читать, Кимбела, Аймона, data vault 2.0, анхоры, дата меш.
чел хули ты там собрался проектировать, если к бд подключиться не можешь
Аноним 07/07/22 Чтв 21:09:16 2399017 300
Что значат вопросительные знаки в запросе?

SELECT username FROM users WHERE username = ? and password = ?
Аноним 07/07/22 Чтв 21:11:35 2399020 301
>>2399017
подстановка из кода приложения
Аноним 07/07/22 Чтв 21:12:59 2399022 302
>>2399013
Ебало этого любителя Дейта в мире nosql представили?
Аноним 07/07/22 Чтв 21:13:57 2399024 303
изображение.png 40Кб, 972x212
972x212
>>2399019
>>2399020
Ладно, расширю вопрос
Что тут происходит?
Аноним 07/07/22 Чтв 21:16:30 2399027 304
>>2399024
Стоп, сам сообразил. Оно в get как раз заканчивает запрос, подставляя всё в него. То есть, оно ищет в базе конкретные логин с паролем?
Аноним 07/07/22 Чтв 21:18:38 2399028 305
изображение.png 48Кб, 947x281
947x281
Я правильно понимаю, тут оно дропает базу, если она не пуста, а потом добавляет в неё запись админа со случайным паролем, которую нельзя перезаписать потому что юзернейм столбец в ней помечен как unique?
Аноним 07/07/22 Чтв 21:21:20 2399031 306
>>2399029
В get и вставляет же, не? То что ему пришло в функцию
Аноним 07/07/22 Чтв 21:27:09 2399039 307
>>2399035
Это я понял. Меня ситуация с конкретным куском кода интересует, >>2399024 который
Аноним 07/07/22 Чтв 21:28:12 2399042 308
>>2399029
смеялись всей Big Data team
Аноним 07/07/22 Чтв 21:32:47 2399048 309
>>2399042
Твоя биг дата хайпанула и исчезла.
Аноним 07/07/22 Чтв 22:33:30 2399095 310
>>2399057
Вот бы щас читать хабропарашу, не знаю что они там в своём курятнике кудахчут. Подумай сам, количество данных только растёт, место подешевело, и все хотят аналитику делать, не говоря уже о всяких нейронках и прочеему машинному обучению. Да оперативные бд никуда не делись, но все деньги интересные решение сейчас в аналитических решениях.
Аноним 07/07/22 Чтв 23:51:55 2399138 311
изображение.png 7Кб, 603x26
603x26
Сюда же можно SQL injection сделать, если я правильно понимаю?
Аноним 07/07/22 Чтв 23:58:59 2399142 312
>>2399138
Смотря откуда берутся user и pass. Если напрямую с клиента и не экранируются, до да, легко.
Аноним 08/07/22 Птн 00:07:36 2399148 313
>>2399142
Да, они просто приходят. Ну, уже хоть что-то
Аноним 08/07/22 Птн 13:19:36 2399495 314
Уважаемые, помогите новичку, который sql только на картинке видел и пока не разобрался с синтаксисом. Есть таблица А, в которой есть поля idA, relatedIdB и nameA, есть таблица B, в которой есть idB и nameB. Нужно сделать так, чтобы если nameА и nameB совпали, то в поле relatedIdB записалось idB этого элемента из таблицы B.
Аноним 08/07/22 Птн 13:22:46 2399509 315
>>2336742 (OP)
Как принято хранить глубокие древовидные структуры в БД? Херь вроде Монги тут вряд ли подойдет, при большой вложенности она начинает сосать. В РСУБД будет слишком много джойнов. Шо делать?
Аноним 08/07/22 Птн 13:26:02 2399520 316
Аноним 08/07/22 Птн 13:34:52 2399545 317
image.png 100Кб, 1810x405
1810x405
Хм, че-то я тут потерялся малость, вот что смог сообразить:

1. WHERE x != 1 по идее должно бустануться обычным btree же? Оно работает на равенство и на больше/меньше, а на прямое неравенство? hash должен тащить то чно
2. Тут походу никакой индекс не поможет
3. btree/hash выручат
4. Возможно GIN? Не ебу, не юзал его никогда, btree точно не поможет
5. В идеале составной индекс нужен. Но просто индекс по b тоже ускорит запрос, просто меньше
Аноним 08/07/22 Птн 15:09:12 2399699 318
>>2399010
так блять вот и хочу научиться! зайти могу в базу, посмотрел уже sqlite, mysql, теперь postgre, понял что такое crud, сейчас пытаюсь понять в логику запросов
Аноним 08/07/22 Птн 15:57:52 2399742 319
>>2399621
Да, уже разобрался, как селект написать.
Аноним 08/07/22 Птн 16:46:33 2399824 320
Поиграйте со мн[...].mp4 12797Кб, 1280x720, 00:01:37
1280x720
накидайте актуалочки еще?
на каких версиях всяких postgres sqlов работаете?
может можете порекомендовать курсы какие-нибудь годные?
только не скилбоксы хуексы всякие
Аноним 08/07/22 Птн 16:57:26 2399841 321
>>2399545
Во втором случае можно упороться и создать индекс по выражению x+y. Работать будет, но очень не шибко. К примеру, если в запросе использовать не x+y, y+x, то такой индекс уже не будет использоваться
Аноним 08/07/22 Птн 20:31:29 2400058 322
>>2399824
Переезжаю на grinplum с MSSQL Володька, спасибо.

Курсы в шапке, специалист который. От него же ещё есть на рутрекере курс по оптимизации.
Аноним 08/07/22 Птн 20:35:44 2400070 323
>>2399545
1) Хороший вопрос. Индекс по x должен помочь
2) Тут индекс не поможет, если хотим ускорить вычисляемое и пишем сразу в таблицу
3) index(a,b)
4) Т.к. вначале тоже подстановка, то полнотекстовый
5) index(a,b)
Где я обосрался?
Аноним 08/07/22 Птн 20:41:25 2400079 324
Аноним 08/07/22 Птн 22:15:21 2400207 325
>>2399545
откуда это? Есть теория от него почитать?
Аноним 09/07/22 Суб 15:41:52 2400626 326
id->\”’)), (SELECT (CASE WHEN (SELECT 1)=1 THEN ‘SUCCESS’ ELSE (select exp(~(SELECT * FROM (select user())x))) END)) #

Что происходит в этом коде?
Аноним 09/07/22 Суб 16:10:19 2400666 327
изображение.png 11Кб, 310x422
310x422
Аноним 09/07/22 Суб 16:34:15 2400697 328
>>2400626
Ладно, тогда просто спрошу что есть id->"')) внутри ORDER BY
Аноним 09/07/22 Суб 17:10:03 2400762 329
аноны разминаю свои уёбищные знания в sql

есть уёбищная таблица, например с добавленными данными в виде 5 строк (из N столбцов каждая) , и я решил добавил к ней еще один столбец - например РАЗМЕР СИСЕК

как мне блин у каждой строки заполнить только этот столбец?
Аноним 09/07/22 Суб 19:25:56 2400886 330
>>2400762
Тупо через апдейт, не?
ALTER TABLE UYOBISHCHNAYA_TABLITSA ADD BOOBS_SIZE NUMBER(2);
UPDATE UYOBISHCHNAYA_TABLITSA SET BOOBS_SIZE = 0;

Ну или ALTER TABLE UYOBISHCHNAYA_TABLITSA ADD BOOBS_SIZE NUMBER(2) DEFAULT 0;
Аноним 09/07/22 Суб 23:39:42 2401071 331
Может кому интересно будет, задания с собеса.
Что в первом ответите?
https://pastebin.com/bsyWEYU0
Аноним 10/07/22 Вск 00:45:39 2401119 332
уёбищная таблица.jpg 81Кб, 570x201
570x201
>>2400886
не пойму, или не получается

короче , вот таблица
там есть 4 заполненные мамаши или около того

я хочу добавить туда столбец размер сисек
пишу
ALTER TABLE уёбищная_таблица
ADD размер_сисек CHARACTER VARYING(20) NOT NULL;

получаю ошибку:

ERROR: ОШИБКА: столбец "размер_сисек" содержит значения NULL
SQL state: 23502

что я сделал не так?
Аноним 10/07/22 Вск 01:02:44 2401146 333
>>2401119
сделал NOT NULL DEFAULT 'Неизвестно';
и вроде получилось.

но как теперь его отдельно заполнить?
Аноним 10/07/22 Вск 01:02:55 2401147 334
>>2401119
В таблицу, где уже есть какие-то данные нельзя добавить NOT NULL столбец без значения по умолчанию. СУБД ведь не знает, какими данными инициализировать ячейки существующих записей, а NULL подставить не может, ведь ты ей запретил через NOT NULL. Либо дописываещь DEFAULT какое_нибудь_значение, либо добавляешь столбец без NOT NULL, устанавливаешь значения через UPDATE и в конце меняешь столбец на NOT NULL через ALTER TABLE уёбищная_таблица MODIFY размер_сисек NOT NULL;
Аноним 10/07/22 Вск 01:34:34 2401161 335
>>2401147
а как теперь этот столбец отдельно заполнить? чтобы не переписывать всю таблицу
Аноним 10/07/22 Вск 02:30:01 2401174 336
>>2401161
Так обычными апдейтами.
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = 'Неизвестно';
Это обновит значения всех столбцов размер_сисиек. Таблица целиком не перезапишется, перезапишутся только указанные в апдейте ячейки.
Аноним 10/07/22 Вск 03:10:12 2401181 337
>>2401174
не понимаю.
вот мне надо чтобы теперь в каждой строке в столбце размера сисек появилось значение.
чтоб у жирной мамаши 5, у мамы шака 3 и тд
какой командой это прописывается? логику не улавливаю
Аноним 10/07/22 Вск 03:15:25 2401182 338
>>2401181
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = '5' WHERE milf_id = 4;
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = '3' WHERE milf_id = 3;
и т.д.

Хотя если ты юзаешь какую-то гуёвую тулзу для работы с БД, там почти наверняка можно не писать команды вручную и в просмотре таблиц тупо отредактировать, как в экселе.
Аноним 10/07/22 Вск 03:21:12 2401183 339
>>2401182
pgadmin юзаю
да, можно тупо как в таблице, но я хотел именно узнать как прописать уёбищными ручками

анон, а зачем размер_сисек два раза писать?
Аноним 10/07/22 Вск 03:36:20 2401185 340
>>2401183
Это я проебался, когда копипастил. Надо только один раз, конечно.
Аноним 10/07/22 Вск 14:27:52 2401409 341
>>2401185
спасибо анон. теперь понял

а вот интересно - если милф там 1 000 000 , и например не нужно \ не хочу заполнять каждую и писать реальный размер_сисек
а хочу набросать рандомно эту таблицу, например с последовательностью 2345 которая заloopена?

можно это как-то реализовать?
типа размер_сисек = 2 where milf_id = 1, размер_сисек = 3 where milf_id = 2 и тп
а дальше что-то типа в логике n + 1 , чтобы оно само дальше добавилось
Аноним 10/07/22 Вск 14:44:05 2401426 342
>>2401409
Можешь в апдейте написать простую формулу по вычислению размера как остаток от деления от milf_id. Типа такого:
UPDATE уёбищная_таблица SET размер_сисиек = (((milf_id - 1) % 4) + 2)::CHARACTER;
Аноним 10/07/22 Вск 16:15:40 2401545 343
>>2401409
автоинкремент, если постгрес, то там можно вобще произвольный ряд задать
Аноним 11/07/22 Пнд 01:13:01 2402143 344
>>2401545
типа сделать автоинкримент на колонку размер_сисек чтобы он сам заполнил? а как задать чтобы ряд числел бы ограниченный и повторяющийся?
Аноним 11/07/22 Пнд 01:38:47 2402159 345
image.png 22Кб, 634x261
634x261
Анон, куда копать?

Сам SQL Server рабочий (к другим базам нормально подключается), а вот к этой нет (при этом пробовал еще и с самого сервера, и по локальной сети с других компов - везде выдает эту ошибку)

База данных вроде как рабочая - я сделал ее копию через powershell. В нее идут запросы по ODBC, плюс программа пишет и читает из нее данные

Пользователь тоже имеет права (ну как минимум по ODBC создаются связи для пользователя - вообще пробовал и пользователя винды и пользователя SQL)

Ошибка не гуглится. В подробном тоже нифига не написано
Аноним 11/07/22 Пнд 17:06:00 2402701 346
есть ли какой-нибудь способ открыть рядом две уёбищные таблицы сразу?
типа чтобы визуально было понятно что с чем соединять
неудобно жутко, хоть на бумаге рисуй их
Аноним 11/07/22 Пнд 17:32:41 2402723 347
Аноним 11/07/22 Пнд 18:54:30 2402779 348
>>2402723
нет, всмысле как например сижу я в фотошопе - могу две картинки открыть в двух окнах рядом

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

алсо еще вопрос - есть ли какая-то live reload\live update фича? чтобы каждый раз не кликать на refresh в дереве баз

как в каком-нить редакторе кода
Аноним 11/07/22 Пнд 19:57:57 2402855 349
>>2402701
В Datagrip от jetbrains видел недавно такую фишку в нововведениях

Мимо
Аноним 12/07/22 Втр 01:04:56 2403079 350
>>2402779
>как в каком-нить редакторе кода
Мне вообще кажется что вся среда SQL застряла где-то в девяностых.

И вот эти деревянные редакторы времен ms-dos с одним активным окошком.
И сам синтаксис SQL который полностью просирает всяким модно-молодежным LINQ
Связи через допотопные библиотеки которые хуй знает сколько лет как устарели.....
Аноним 12/07/22 Втр 17:31:49 2403642 351
image.png 284Кб, 333x500
333x500
image.png 427Кб, 540x810
540x810
>>2403079
Мальчик, РСУБД это одна из самых зрелых технологий на рынке сейчас. Испытанная временем и миллионами человекочасов. Это пикрил 1.
Nosql это пик 2 - молодняк, лелеющий мечты переплюнуть Папку, но ему банально не хватает опыта и выдержки, максимум на что он способен - это перетянуть на себя одеяло в небольших кейсах.
Аноним 12/07/22 Втр 21:17:01 2403958 352
>>2403642
Есть ещё Спарк и соответственно датабрикс (дельта Лейк). Если смотреть не как замену реляционным базам а дополнение, то Там учтены все ошибки сиквела и есть возможность создавать продукты (контроль версией, тесты и вообще девопс)...
Аноним 12/07/22 Втр 21:34:25 2403970 353
>>2403958
И нужно это не для широкого применения, а всяким дата-аналитикам и другим пидорам, которые и экселю рады.
Аноним 12/07/22 Втр 21:42:36 2403977 354
>>2403079
Не могу определиться, то ли это троллинг тупостью, то ли зелень.
> И вот эти деревянные редакторы времен ms-dos с одним активным окошком.
Много редакторов видел? Или сделал вывод по одному посту на дваче? У меня даже ебаная встроенная консолька в IDE умеет во фреймы и анализ синтаксиса, что там специализированные редакторы.
> И сам синтаксис SQL который полностью просирает всяким модно-молодежным LINQ
Модные-молодёжные LINQ не умеют работать с базами данных напрямую и не умеют даже в UPDATE без ебли с нечитаемыми коллбеками.
> Связи через допотопные библиотеки которые хуй знает сколько лет как устарели.....
Мера устарелости - это возраст библиотек больше трёх лет, да? 50 лет прошло, дохуя технологий и языков взлетело и умерло, а SQL пережил их всех.
Аноним 12/07/22 Втр 21:53:56 2403985 355
>>2403970
Спарк это номер один фреймворк для биг даты. Даже создатели велосипедов из Гугла и Майкрософта переходят
Аноним 12/07/22 Втр 22:05:05 2403991 356
>>2403985
> биг даты
Вот я и говорю: дата-аналитики и другие пидоры.
Аноним 12/07/22 Втр 22:42:56 2404007 357
Аноним 12/07/22 Втр 22:49:47 2404017 358
>>2404007
Очень пидорско звучит.
Аноним 13/07/22 Срд 01:26:13 2404122 359
>>2403642
>Nosql это пик 2
при чем тут вообще эта хуйня? Я про само SQL, а не его отдельных представителей

>>2403977
> У меня даже ебаная встроенная консолька в IDE
Ну покажи IDE для SQL которая бы умела что-то кроме подстветки (например хотя бы проверку типа поля, а то заебало открывать структуру таблицы чтобы узнать что там в ячейке, число/текст или вообще дата)

>>2403977
>а SQL пережил их всех.
Я и не говорил что нужно чем-то заменить.
Я говорил что оно не развивается. Там вон даже сишечка развивается, а ей сколько лет и она насколько проверена временем... А выходят новые стандарты, новые среды, новые инструменты...

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

А вот запросы на SQL как писались в нулевые, когда был бум развития (даже считай визуальные конструкторы появились типа Access), так до сих пор там и сидят


p.s. если что, у меня 33 уровень. Я считай уже дед, которому заебало каждую буковку писать в этаком блокноте вот уже больше 15 лет
Аноним 13/07/22 Срд 11:12:19 2404220 360
>>2404122
DataGrip от JetBrains вполне себе неплох. Единственный минус - не бесплатный
Аноним 13/07/22 Срд 16:53:38 2404656 361
>>2404122
Так запросы руками пишут только деды на дба, всё остальные с ормами работают или с пандасами/спарками.
Аноним 13/07/22 Срд 19:29:59 2404787 362
>>2404656
для любителей орм - отдельный котел между любителями ебаться в гудок и "тесты потом напишу"
орм нужна только для джун-мидло дебилов которые хотят накатать мвп без необходимости что бы он нормально работал

ух сука, аж трисет
Аноним 13/07/22 Срд 20:04:05 2404809 363
>>2404787
пчел, первая миграция и ты жидко серишь в штаны без орма
Аноним 13/07/22 Срд 21:13:02 2404840 364
>>2404797
>>2404809
А вот и петухонщики, не осилившие основы SQL.
Аноним 13/07/22 Срд 22:30:08 2404881 365
>>2404840
дед, таблетки прими
Аноним 14/07/22 Чтв 01:00:31 2404908 366
>>2404840
они самые, анон

>>2404797
научитесь в инжиниринг бд что бы таких вопросов не возникало, тем более при твоей ситуации в вакууме тебя орм не спасет

>>2404809
я прям вижу джанго-макаку после трехнедельных курсов с юдеми, где для вас mvc это просто три папочки в корне проекта а хайлоад - больше одного запроса в секунду
Аноним 14/07/22 Чтв 06:08:05 2404939 367
>>2336742 (OP)
Вопрос немного низкоуровневый.

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

Первое, что приходит в голову, это тупо выделить память для хранения данных, и писать туда их прямо:
>данные1 + данные2 + данные2 + ... и т. д.
а также определить максимальное число записей данніх, и сделать индекс вида:
>номер записи (фиксированное число бит) + (начало данных, фиксированное число бит) + длина данных (фиксированное число бит).
И записать этот индекс в отдельном блоке выделенной памяти,
или в отдельном файле.

Грузить в память - только индекс, а не сами данные, а данные уже - грузить по запросу.

Такая себе ебала. Но а шо если много таблиц надо?
Аноним 14/07/22 Чтв 08:22:53 2404953 368
Аноним 14/07/22 Чтв 22:31:03 2405593 369
20160205100222f[...].jpg 65Кб, 604x468
604x468
>>2404908
>>2404840
Пенсия, как делать миграции будете? Через dynamic SQL?
Аноним 14/07/22 Чтв 23:19:04 2405627 370
>>2405593
Какой блять dynamic SQL? Хуйнул SQL-скрипт с нужными изменениями схемы с названием <следующий по порядку номер> + <номер задачи в джире для уникальности>, положил в специальную папку в проекте, тулза для миграции прошлась по названиям скриптов, увидела, что указанный скрипт не запускался, запустила, добавила запись в свою таблицу с историей, и всё заебись. Легко отслеживать историю изменений схемы, контролировать порядок наката миграций и отмести правки задним числом по хеш-суммам в таблице истории, чего зумерские ORM не умеют.
Аноним 15/07/22 Птн 05:40:45 2405809 371
>>2405593
>Пенсия, как делать миграции будете?
нахуя ее делать? Работает, не трожь. 20 лет ебашат базы.
Просто нормально надо было нормализовать базы при проектировании

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

Так что, мне маленькому тем более норм
Аноним 15/07/22 Птн 11:35:56 2405971 372
>>2405593
понятно что ты хотел сказать.
но вот парадокс: в твоем молодежном GO миграционный инструментарий далек от явовского и тоже весьма примитивный. Его просто не успели хорошо развить. Однако никто не орет.
Аноним 15/07/22 Птн 13:00:36 2406047 373
>>2404953
Тогда, надо как-то выдрать этот код,
https://github.com/mono/mono/tree/main/mcs/class/Mono.Data.Sqlite
и дополнить его .csproj и .sln файлами так, чтобы оно конпелировалось под .NET Framework 4.0
и компилировалось с помощью msbuild или Visual Studio 2010,
без пердолинга с компиляцией mono,
а то там хуй пойми чего содержится в бинарниках, которые вместе - занимают целый охуллиард байт.

Поможешь с этой хуйнёй?
Аноним 15/07/22 Птн 13:08:25 2406055 374
1657879704712.jpg 39Кб, 400x564
400x564
>>2404939
Почитай про использование страниц для хранения таблиц в БД.
А вообще советую ознакомиться с этой книгой. Много чего интересного почерпнешь про кишочки.
Аноним 15/07/22 Птн 13:25:28 2406074 375
>>2406055
...пока молодой-модный дата-инженер быстро клепает решения на современных фреймворках и поднимает зпшку в 3 раза за 2 года, ты будешь вникать в кишочки
Аноним 15/07/22 Птн 13:30:37 2406078 376
>>2406074
Не будешь вникать в кишочки - не пройдешь собесы и не апнешь зпшку. Очевидно же.
Или ты думал любому хую с горы дадут вакуху просто потому что он сказал "я юзал модные фреймворки, пук лол кек"
Аноним 15/07/22 Птн 13:34:34 2406081 377
>>2406078
а что вообще такое фреймворк в контексте базы данных?
Аноним 15/07/22 Птн 13:36:27 2406085 378
>>2406081
Он имел ввиду скорее всего приблуды типо spark / hadoop
Аноним 15/07/22 Птн 13:43:37 2406097 379
>>2406078
+
Проходил недавно собес на сеньку бекендера в одну большую рашкованскую компанию. Половина вопросов не по питону:
- Что будете делать если случайно удалили целый набор строк в Постгре?
- Что такое "план запроса" Постгри и как работает bitmap scan?
- Чем индексы Кликхауза отличаются от Постгри?
- Как происходит процесс записи в очереди в Реббите и что там за "маски"?
- Какие виды доставки есть в Кафке и какой для чего вы бы использовали?
Аноним 15/07/22 Птн 13:44:45 2406100 380
>>2406078
на собесах спрашивают одно и то же плюс-минус
а в те места, где дрючат по подкапотной хуйне, среднепчёлу не пройти
так что можно, конечно, положить жизнь на доскональное изучение кишков. но есть и другой путь...
Аноним 15/07/22 Птн 16:36:19 2406222 381
>>2405971
ты о каком молодежном ГО говоришь? вопрос про миграции в треде задали уже раза два-три в ответ на мой пост и одно я могу гарантировать почти точно - это выпускники Яндекс практикума написавшие хелловорд на Джанго и считающие что sql это еще один язык программирования
Аноним 17/07/22 Вск 12:04:33 2407555 382
Figure-21000x610.png 110Кб, 1000x610
1000x610
Давайте окончательно закроем вопрос про ПАРТИЦИИ или СЕКЦИИ, если угодно носителям настоящего русского языка

Откуда взялось мнение, что их вообще нужно делать?
Разве всевозможные стратегии index merge (я про mysql) не должны покрывать все ситуации, когда на практике часто используют партиции ?

Что почитать об этом уровня Кнута или К. Дейта ?
Аноним 17/07/22 Вск 14:10:38 2407751 383
Насколько хорошо плохо если приложение динамически создает собственные базы?(create database).

Допустим у вас SaaS платформа типа wix где чел покупает и котонизирует себе сайт, и мы ему его в виде отдельной базы создаем?
Аноним 17/07/22 Вск 14:17:24 2407758 384
>>2407751
Раньше были шаред хостинги, там был один сервер и одна дб, и для всех создавали директорию и базу данных, потом через анальную дыру на одном из сайтов (которых было миллион) залазили и рутали сервак.
Сейчас может и актуально для такого мусорного говна, в соглашении там прописать - если вас въебут, мы ни при чём.
Аноним 17/07/22 Вск 14:22:05 2407764 385
>>2407758

Не понял как это связано. Я говорю просто с точки зрения структуры. А так своя у юзера ДБ или нет он может даже не знать. Прямой доступ логин/пароль не дается никому
Аноним 17/07/22 Вск 14:26:32 2407773 386
>>2407764
Если сейчас есть средства и ты уверен, что не въебут весь сервак, то делай. Тогда без такой уверенности делали и норм было.
Можешь даже нанять специальных людей, которые въебут и посоветуют, как настроить чтобы такое не повторилось.
Аноним 19/07/22 Втр 10:58:39 2409611 387
image.png 78Кб, 250x250
250x250
Аноним 19/07/22 Втр 10:59:59 2409613 388
>>2405593
Это либо шизанутые пенсионеры на пхп либо гобляди, вот тут https://2ch.hk/pr/res/2286748.html недавно люто порвались как раз на тему орм и миграций, визжали что НИНУЖНО
Аноним 19/07/22 Втр 12:50:00 2409697 389
>>2409613
лол, почитал, какого-то дебила порвало с >сырых sql
несите следующего
Аноним 19/07/22 Втр 13:29:20 2409733 390
>>2405809
>нужно новое поле или поменять тип - заебомшим новую таблицу, а старую оставим на память

Всегда так делаю, а вы нет чтоле?

Джанга, кстати, охуенная! Пока хейтерки пердолятся с шаблонизаторами шаблонизаторов, мы уже все выкатили и гэпнулись на х5.

мимо дед скуф
Аноним 19/07/22 Втр 16:48:27 2409977 391
>>2409697
Сырые sql - признак дремучего легаси или не шибко смышленых мартых на проекте

Я вот не боюсь сырых sql, не боюсь коннектиться к постгре напрямую и вертеть ее сырыми запросами. Но только блять в 99 случаях из 100 я заюзаю для этого pgadmin как и любой белый человек. Смекаешь?
Аноним 19/07/22 Втр 18:47:37 2410076 392
>>2409977
>Сырые sql - признак дремучего легаси или не шибко смышленых мартых на проекте

это настолько абсурдное утверждение, что хорошим, схожего уровня контраргументом будет просто насрать на стол, но тогда получится тавтология.
В ходе всей этой дискуссии я не получил ни один аргумент за орм на серьезный хайлоад проектах за исключением
1)Макакам сложно в sql/api/ижесними
2)Макаки не могут в миграции
3)Макак так научили на курсах
4)Манагерские макаки экономят на БДА и разрабах БД

Ты несешь ту же ересь - при чем тут вообще pgadmin?
Аноним 19/07/22 Втр 19:50:49 2410157 393
>>2410076
аргументов в пользу сырого sql мы тоже пока не услышали

мимо
Аноним 19/07/22 Втр 19:56:05 2410159 394
>>2410157
Как и аргументов против сырого sql.

мимо
Аноним 19/07/22 Втр 22:37:01 2410277 395
>>2409977
поясни нубу, что значит сырые SQL ?
Аноним 19/07/22 Втр 22:44:14 2410285 396
>>2410277
В зумерских ORM не пишешь SQL-запросы напрямую, ты вместо этого скармливаешь библиотеке готовые объекты, а она одним ей ведомым образом генерирует для неё SQL-запросы, глядя, какие у сущности поля и какие у них типы. Когда пишешь как нормальные люди SQL-запросы, это и есть сырые SQL, они же native queries.
Аноним 19/07/22 Втр 23:20:03 2410313 397
>>2410285
что есть зумерская ORM и в какой среде надо писать нормальные SQL запросы?
Аноним 19/07/22 Втр 23:35:50 2410331 398
>>2410313
> что есть зумерская ORM
ORM - это принципиально зумерское явление, поэтому, логично, все ORM зумерские.
> в какой среде надо писать нормальные SQL запросы
В любой.
Аноним 19/07/22 Втр 23:55:01 2410353 399
>>2409977
Несмышленные мартыхи это может быть но редко. Наоборот, это очень ушлые и хитрозадые мартышки оптимизирующие свою job security. Потому что никто в здравом уме не полезет поддерживать этот идиотский ворох из конкатенаций, шаблончиков, ФОРМАТОВ. Если Кабан Кабаныч спросит «а почему так, СЫЧАЕВ?», Сычаев начнет бубнить под нос что-то невнятное про хипстеров (что мы и зоонаблюдаем в треде).
Аноним 20/07/22 Срд 00:08:53 2410370 400
>>2410353
> job security
От кого? От тех немногих шизиков, не осиливших SQL?
> Если Кабан Кабаныч спросит «а почему так, СЫЧАЕВ?»
Какой блять кабан, он что, твой код ревьюить будет?
Аноним 20/07/22 Срд 00:21:24 2410380 401
>>2410076
Но 90% проектов вообще никакой не хайлоад.
Орм и оболочки поверх них - топовая вещь для прототипирования.
При нормальной разработке они никак не мешают миграциям.
Ну и если подкапотное поведение орм тебе учить не хочется - еще есть статические билдеры sql с генерацией кода.
>>2410331
>ORM - это принципиально зумерское явление
хибер всего лишь вдвое младше оракла. ОРМ в продакшене уже больше 20 лет.
Аноним 20/07/22 Срд 00:25:31 2410383 402
>>2410370
Что ты там бубнишь, Скуфяев? Откуда я знаю от кого ты городишь жоп сесурити. Это к тебе вопрос.
Аноним 20/07/22 Срд 00:26:26 2410384 403
>>2410370
К кабану придет уже третий разработчик с жалобой на код Сычева, написанный на голом sql, потому что другие разработчики не хотят сами руками писать маппинг между табличками и кодом. И особенно не хотят читать десятки тысяч строк такого маппинга, написанного сычевым.
Аноним 20/07/22 Срд 00:28:26 2410385 404
>>2410331
эээ pgadmin это зумерская ORM ?
Аноним 20/07/22 Срд 00:39:52 2410391 405
>>2410384
А ещё они могут прийти к кабану с жалобой на говнокод Сычёва в логике программы и потребовать юзать no-code разработку с программированием мышкой. Это ничем не отличается нежелания отдельных шизиков учить SQL.
Аноним 20/07/22 Срд 00:48:57 2410392 406
>>2410391
>учить SQL
Спокойно, пыхомакак, спокойно.
Аноним 20/07/22 Срд 00:52:09 2410394 407
Аноним 20/07/22 Срд 00:52:34 2410395 408
>>2410391
Чтобы пользоваться orm на продвинутом уровне ты должен хорошо знать sql. Плюс orm задает тебе рамки не использовать всякие антипаттерны типа вьюх или логики в бд во всяких хранимках.
Аноним 20/07/22 Срд 00:53:58 2410396 409
>>2410394
Пыхатрон, спокуха! SQL выучил?
Аноним 20/07/22 Срд 00:57:08 2410397 410
ебать петухонщики повылазили после курсов по джанге. 1 сентября всё закончится.
Аноним 20/07/22 Срд 01:08:41 2410402 411
>>2410380
ты прав, для прототипирования - ок, для низконагруженного или индюшачьего приложения - тоже ок, да я сам использовал сиквелмодел для своего бота

но буквально в том году - довольно урча команда разрабов принесла мне сервис с 10k rps 300k dau и какими-то неистовыми инсертами с обращением к нашим субд c ебучей алхимией и с предъявами что наш сервис на слишком слабом железе что бы переваривать это богоподобное творение.
То что они сделали говно с точки зрения
1)Архитектуры кода
2)Оптимизации
3)Интеграции

Потому что
1) ORM на больших проектах - это легаси, костыль. Оно рвет вообще всю структуру прекрасного ооп на мелкие куски.
2)Никто не хочет учить как это работает под капотом, оно и не нужно - хорошие оптимизированные приложения будет писать человек который может в оптимизацию запросов, в лучшем случае часть логики может даже перенести на субд
3)ORM - это явно бутылочное горлышко
Аноним 20/07/22 Срд 01:20:41 2410404 412
>>2410402
Классическая история про то как скуфидон не осилил модный хипстерский фреймворк из нулевых-х и переписал все на перл. Ебало представили?
Аноним 20/07/22 Срд 01:23:40 2410406 413
>>2410404
> пуксреньк
А аргументировано и по пунктам слабо?
Аноним 20/07/22 Срд 01:34:39 2410412 414
>>2410402
>10k rps 300k dau и какими-то неистовыми инсертами с обращением к нашим субд c ебучей алхимией
показатель, успешности орм, что сервис дошел до таких нагрузок.
Вполне реально переписать только 20% критичных к нагрузке методов, причем не на голый sql а на какую-нибудь легкую оболочку, как минимум защищающую от инъекций.
И если ты не гугель все эти ваши большие rpm решаются кешом.
>в лучшем случае часть логики может даже перенести на субд
лол, привет тестам и соответственно всей современной разработке с агилом
и опять же жоб-секурити, как выше сказали.
Заебешься искать нормального человека, кто сможет поддерживать логику в бд.
Аноним 20/07/22 Срд 10:14:14 2410546 415
image.png 18Кб, 300x190
300x190
Аноним 20/07/22 Срд 10:53:50 2410586 416
>>2410353
>job security
Твой job это blowjob
Аноним 20/07/22 Срд 11:15:51 2410607 417
>>2410546
Он там еще и на алхимию ссылается, а значит наворачивает ООП в петухоне. Ебало представили?
Аноним 20/07/22 Срд 16:35:15 2410859 418
>>2410402
Чел причём тут орм, если у тебя бд как хлебушек работает. Если у тебя уловного индекса нет на таблицы, тебе sql не поможет. Орм позволяет в 90% случаев реализовать тот же функционал, но без легаси sql кода? который хуево портируется и рефакторится. От нагрузки начинает рваться не потому-что орм, а потому-что датамодель хуевая\бд не оптимизирована под запросы\сами кейсы запросов не проработаны.
Аноним 20/07/22 Срд 18:45:53 2410973 419
Анон, ходил на собеседование стартап, и в бд нет ни индексов, ни связей между таблицами. таблиц порядка +-100. При вопросе что это такое, сказали что так и должно быть. Это была проверка на мою реакцию, или они рили там все пизданутые на голову? ах да, и ацесс токен они так же хранят в бд
Аноним 20/07/22 Срд 18:54:50 2410981 420
>>2410973
>стартап
Очевидно, проектировал систему поридж, который пользовался только монгой
Аноним 20/07/22 Срд 19:51:00 2411022 421
>>2410973
Зависит от того что за бд. В аналитике это обычное дело, индексы это слишком дорого а в пределе и вовсе невозможно на больших данных.

Но я встречал в яшке оторванные констрейнты. При чем в задачах где целостность была важна, намного важнее производительности. Чисто потому что челик был долбаеб.
Аноним 20/07/22 Срд 20:38:15 2411046 422
20160205100222f[...].jpg 65Кб, 604x468
604x468
>>2410973
Чел тебе там поди NOSQL показали
Аноним 20/07/22 Срд 20:52:28 2411061 423
>>2410973
Небось все таблицы создаются через зумерские ORM, которую они не осилили сконфигурировать так, чтобы она генерировала индексы и констреинты.
Аноним 20/07/22 Срд 20:57:04 2411064 424
изображение.png 292Кб, 500x395
500x395
Аноним 20/07/22 Срд 21:04:10 2411069 425
>>2411064
Таблетки тоже создаются через зумерские ORM.
Зумеры изобрели золотой молоток.
Аноним 20/07/22 Срд 21:26:58 2411098 426
Аноним 21/07/22 Чтв 00:13:11 2411312 427
>>2410859
как круто ты продиагностировал мои бд, майн респектулен, а можешь подробнее немного об индексах рассказать - что это такое и с чем едят, я же, больше пяти лет проработав дба до этого, первый раз о них слышу от выпускника Яндекс практикума
и что ты вкладываешь в понятие легаси? это сильное утверждение, которое надо чем-то подкрепить, да и прочую чушь
Аноним 21/07/22 Чтв 01:13:40 2411376 428
>>2411312
Как же я проиграл. Оказывается это ссаный ДБА рассказывает разрабам как правильно писать код. Шел бы бэкапами занялся, Скуфидот.
Аноним 21/07/22 Чтв 11:40:28 2411535 429
>>2411376
я был дба еще до того как ты узнал что такое базы данных, поридж
в разработке уже больше 10 лет и такие олигофрены, любители обмазаться либами для умножения двух чисел, жидко обсираются на собесах
Аноним 21/07/22 Чтв 12:06:44 2411560 430
>>2410973
Какой "БД"?

Монго?
Кликхауз?
Редис?
Аноним 21/07/22 Чтв 13:37:48 2411645 431
скуфидон.mp4 507Кб, 336x442, 00:00:03
336x442
>>2411535
Аццкей одмен, спакухо!))))
Аноним 21/07/22 Чтв 16:48:14 2411931 432
>>2411645
откуда этот мемес "да не трясись ты?"

алсо вопрос
какова структура запроса вообще \ логика ? есть ли где-нить размернутая схема нарисованная?

например простого
SELECT [ тут что? таблица, база данных, результат запроса, что еще?] FROM [ тут что может быть ?]

какая у сложного?
Аноним 21/07/22 Чтв 16:52:30 2411938 433
image.png 1226Кб, 1200x900
1200x900
image.png 350Кб, 718x461
718x461
Аноним 21/07/22 Чтв 19:14:25 2412082 434
Аноним 21/07/22 Чтв 20:43:38 2412147 435
>>2411312
что тебе не позволяет сделать орм, дедуль?
Аноним 22/07/22 Птн 10:44:18 2412653 436
Чёт я не вкуриваю синтаксис запросов one-to-many в постгресе. Допустим есть условный профиль, у него может быть множество постов. Всё там по ключам в порядке и для нахождения всех постов достаточно айди профиля. Вот только как это реализовать в одном запросе, чтобы на выходе получить структуру типа IProfile { id: number, posts: [] }?
Аноним 23/07/22 Суб 02:13:43 2413695 437
>>2412653
Нет такого синтаксиса, базы данных не знают ни о каких one-to-many, они умеют только джойны, а джойнам неважно, какую идею ты в них закладываешь, они тупо объединят записи по внешнему ключу. Забросить одним запросом из БД можно только один набор строк, и ты можешь в своём примере запросить посты по id профиля, если у тебя в таблице постов хранится id профиля. Если твоей структуре не важны данные самого профиля, ты просто складываешь посты в полей posts, а в поле id устанавливаешь id профиля, по которому запрашиваешь посты. Хотя это излишне, в posts и так каждая запись содержит id профиля.
Если нужен не только id профиля, но и, к примеру, имя и логин, у тебя два варианта: либо делать ещё один запрос к таблице профилей, либо в том же запросе сделать джойн с профилями, и у тебя в ответе от базы будет набор строк с постами, но рядом с каждым постом будет дублироваться инфа о профиле, и уже на уровне приложения придётся их отсекать и раскладывать по разным полям структуры. И это ещё вопрос, что будет работать быстрее. Профили, например, часто кешируют и лишний раз в базу за ними не лезут.
Аноним 23/07/22 Суб 16:47:12 2414084 438
аноначе пытаюсь разораться в foreign key, не могу найти как простую вещь сделать - допустим 2 таблицы, типа заказы и клиенты. на одно поле во второй таблице есть внешний ключ


так вот при заполнении строк второй таблицы что мне вводить в это поле с внешним ключем ? цифру?

т.е. этот внешний ключ для чего-то нужен вообще при заполнении? ( по смыслу конечно же понимаю для чего он, но в плане удобвства что он дает ?)
Аноним 23/07/22 Суб 16:55:49 2414089 439
>>2414084
id той сущности, на таблицу которой ссылается ключ
Аноним 23/07/22 Суб 17:31:10 2414108 440
>>2414084
Он дает INTEGRITY связанных таблиц, пнятенько?
Аноним 23/07/22 Суб 19:13:59 2414215 441
>>2414108
не,я хуево объяснил что хочу

короче есть две таблицы
в одной рок группы и есть там колонка группа_id, в другой рок альбомы и тоже колонка группа_id

например я уже заполнил таблицу - рок группы, у каждой группы есть номер теперь. например металлика это 1, хуяллика 2, и мастер хуяллики это 3.

и теперь заполняю таблицы рок альбомы: и там тоже есть колонка группа_id, собстна мне вместо альбома создавая строки писать для колонки группа_id что? название группы или просто номер из таблицы?
Аноним 23/07/22 Суб 19:15:47 2414216 442
>>2414215
быстрофикс
*мне в строке вместо названия группы писать ее номер из предыдущей таблицы или писать буквенно опять название ?
Аноним 23/07/22 Суб 19:20:48 2414218 443
>>2414215
Номер, конечно. В этом вся суть реляций и нормализации.

Аноним 23/07/22 Суб 19:55:23 2414240 444
>>2414218
но если групп 150 или 1500 ? вбивающий данные не запомнит ведь все 1500
Аноним 23/07/22 Суб 19:59:25 2414242 445
Можно ли перенести в реляционную субд из csv колонку, значение в которогой массив строк?
Пример - ['Drama', 'Fantasy', 'Suspense'], жанры фильмов. Пробовал varchar[], и просто varchar, при копировании говорит что значение не валидно
Аноним 23/07/22 Суб 20:20:56 2414255 446
>>2414240
Бля, чел, прочти какую-то начальную книгу.
>>2414242
Это many-to-many, делаешь отдельную табличку с жанрами и отдельную табличку кинцо айди-жанр айди.
Аноним 23/07/22 Суб 20:34:09 2414270 447
>>2414255
да заебал, расскажи что сделать

а потом прочту книгу
Аноним 23/07/22 Суб 20:37:01 2414275 448
>>2414270
> а потом прочту книгу
Нет блять, сейчас.
Аноним 23/07/22 Суб 20:39:33 2414276 449
>>2414270
А что тебе надо сделать-то?
Если импортировать какой-то датасет, то вставляешь праймери запись и получаешь её ключ, потом вставляешь форейгны с ней.
Если как макака вручную, то получаешь все праймери и даешь макаке форму, она вводит значение и отправляет на бек, там уже вставляется.
Прям вручную в базу никто не вставляет.
Теперь пиздуй читать книгу.
Аноним 23/07/22 Суб 21:11:27 2414307 450
>>2414276
ну я хотел понять как работает фича с foreign key
потом задумался а как добавляюстя данные в таблицу с ним если их дохуя.
Аноним 24/07/22 Вск 00:21:24 2414379 451
>>2414242
>>2414255
За constraint и схему спасибо.

Насколько нормальная практика хранить перечисление строк в одной записи? Допустим я этот массив строк буду хранить в genres_tags, а в орм просто фильтровать, хотя пока хз каким запросом.

Кому не в падлу - оцените схему данных. У меня основная логика в том, чтобы выводить в шаблон теги с помощью <a></a>, и при нажатии на тег редиректить на ресурс с поиском, где выполняется запрос. Запрос, разумеется, я ещё не написал
Аноним 24/07/22 Вск 00:22:47 2414380 452
1.png 91Кб, 928x1009
928x1009
Аноним 24/07/22 Вск 00:33:07 2414386 453
>>2414379
> Насколько нормальная практика хранить перечисление строк в одной записи
Хуевая практика - это нинужный полнотекстовый поиск + потом ебля, если тебе потом надо добавить-убрать что-то.
Аноним 24/07/22 Вск 00:56:06 2414392 454
>>2414386

А как можно сделать если значение в csv хранится как comma separated list (of genres) ?

Посмотрел кучу датасетов на Kaggle, там у всех таблиц жанры либо как list of string, либо просто как перечисление строк через запятую.

Аноним 24/07/22 Вск 01:08:21 2414395 455
>>2414380
что это за програ с которой скрин?
Аноним 24/07/22 Вск 01:17:31 2414400 456
>>2414392
Потому что цсв это дата эксчейндж, там нет нормализаций.
Аноним 24/07/22 Вск 01:24:14 2414402 457
Аноним 24/07/22 Вск 01:26:17 2414404 458
>>2414400
Надо где-то было взять готовые собранные данные
Аноним 24/07/22 Вск 01:32:11 2414411 459
>>2414404
Они уже собранные, тебе надо просто правильно их импортировать, очевидно же.
Аноним 24/07/22 Вск 01:37:06 2414414 460
>>2414411
Я ни разу не видел датасета, где были бы все нужные мне колонки, так что пришлось данные брать с разных датасетов и писать несколько таблиц, связывая их Many-to-Many.
>>2414255
Ахуенный constraint ты мне подсказал. Проверил на join, запросы работают как мне и нужно было
Аноним 24/07/22 Вск 16:04:21 2414871 461
image.png 69Кб, 1099x821
1099x821
Сап. Хочу вкатиться в аналитико-макакинг, работать с данными. Освоил postgresql, практиковался на базе northwind. Проблема в том, что у меня нет ни малейшего представления о том, как работают с SQL в коммерции.
Мне интересно, как данные взаимодействия пользователя с приложением попадают в базу данных, как сделать так, чтобы они туда попадали, как соединить сайт/приложение с базой данных и т.д, но я не могу найти нормальных книг/ресурсов для таких зелёных как я. Решил почитать книгу с ОП-поста, но там на первых страницах уже непонятная мне информация и названия(прикреплен скрин) и хочу найти что-нибудь попроще для понимания глобальной картины КАК работать с БД на практике.
Стоит ли почитать К. Дж. Дейт. Введение в системы баз данных из оп-поста?
помоги, анонче
Аноним 24/07/22 Вск 16:08:16 2414878 462
>>2414871
> Мне интересно, как данные взаимодействия пользователя с приложением попадают в базу данных, как сделать так, чтобы они туда попадали, как соединить сайт/приложение с базой данных и т.д
Если ты идёшь в аналитики, то и не будешь знать, т.к. этим занимаются программисты. Всё, что тебе остаётся - спрашивать у них, какие таблицы смотреть.
Аноним 24/07/22 Вск 16:20:51 2414892 463
>>2414878
Как минимум я хочу понять, как это работает. Я сейчас в pgadmin умею создать только подключение к БД и писать запросы, остальное для меня не понятно. + не думаю, что кабану нужен будет АНАЛитик на фуллтайм, который умеет только чистить данные вилкой.
Аноним 24/07/22 Вск 19:09:22 2415191 464
аноны, корешь работает на фирме одной и у них там все через 1С
я могу сидеть в ней с его компа когда она работает он на удаленке

хочу посмотреть как у них устроена база данных и кое-что узнать
типа сделать пару запросов

что для этого мне понадобится?
Аноним 24/07/22 Вск 19:10:19 2415194 465
>>2415191
Сделать пару транзакций, а кореша на бутылку?
Аноним 24/07/22 Вск 19:15:36 2415203 466
>>2415194
да не
хочу увидеть как выглядит настоящая рабочая база , сколько там таблиц и как они связаны чтобы иметь представление

я вроде тоже как анон сверху поучился на northwind от инженера спока, но она маленькая и простая, хочу хардкор но чтобы не перекрыться сразу
Аноним 24/07/22 Вск 20:43:53 2415348 467
>>2415203
говно идея, 1с хранит свои базы в ебанутой стрктуре, с кучей профиксов в названиях, ты нихуя полезного там не увидешь.
Аноним 24/07/22 Вск 22:19:32 2415433 468
Значит, MySQL никто не использует, кроме вкатунов с лабами? В реальности у всех постгрес и проприетарные ораклы?
Аноним 24/07/22 Вск 23:41:25 2415474 469
Аноним 25/07/22 Пнд 00:55:03 2415500 470
>>2415348
ладно уж храни свои секреты


а где можно глянуть на настоящую рабочую базу?
Аноним 25/07/22 Пнд 01:22:07 2415509 471
>>2415191
Установить к себе 1С:Предприятие, подключиться к их информационной базе и запускать запросы через интерфейс.
Ну или подключаться напрямую и лезть в эту канализацию: https://its.1c.ru/db/metod8dev/content/1798/hdoc
>>2415500
На рабоче, очевидно. В открытом доступе даже опенсорсные проекты обычно не держат реальные данные так, чтобы можно было подключиться и что-то селектнуть, это небезопасно и создаёт лишнюю нагрузку.
Аноним 25/07/22 Пнд 07:15:51 2415539 472
>>2415433
Используют. В качестве базы для небольших сайтов она неплоха, особенно для макак, которые используют cms-ки и не хотят запариваться с настройками СУБД (построю нужно таки тюнить)
Аноним 25/07/22 Пнд 11:44:02 2415694 473
1.png 71Кб, 871x912
871x912
Анон с БД по аниме.
Сейчас получилась такая таблица, связи вообще убрал, т.к. как без title во второй таблице матчились не корректные данные - год выхода, теги и т.д.

Попробовал на такой бд разные джоины, например

SELECT
a.title_en,
a.show_type,
ri.*
FROM database_anime as a
JOIN database_releaseinfo as ri
ON a.title_en = ri.title_en
WHERE ri.tags SIMILAR TO '%(Shounen)%'
AND ri.end_year IS NOT null


Вроде все работает, но мне кажется это какая-то хуйня, т.к. title_en повторяется в обоих таблицах, т.е. я фактически храню одинаковые записи в двух разных таблицах. Просто проблема в том, что эта таблицы на основе двух разных датасетов
Аноним 25/07/22 Пнд 14:27:42 2415845 474
>>2410395
> антипаттерны типа вьюх
Почему?
Аноним 25/07/22 Пнд 16:54:08 2416053 475
>>2415694
запрос не смотрел. группируй по id, уберутся повторы
Аноним 25/07/22 Пнд 17:23:57 2416094 476
>>2415694
вообще нихрена не понятно что ты хочешь

убери title_en из одной таблицы и все
и как тебе коснтрейты мешали данные джойнить? чет ты не то куришь
Аноним 25/07/22 Пнд 20:24:38 2416301 477
1.png 49Кб, 1473x144
1473x144
2.png 26Кб, 629x163
629x163
>>2416094
Ага я походу какую-то хуйню сделать пытался.

Но title_en я убрать все таки не могу, потому что тогда не понятно, к какому title будуту относится тэги из второй таблицы. Если я добавлю связи по id т и удалю title_en, то субд просто приклеит к сущности с id = 1 из основной таблицы рандомные теги где id = 1.

Я сдела как подсказал анон выше (>>2414414) и даже написал, что все ахуенно. И так было до той поры, пока я не заметил что при запросе по title = 'Cowboy Bebop' джоинится release year: 2021
Аноним 25/07/22 Пнд 21:30:46 2416348 478
>>2413695
То есть или эндпоинты хуярить на каждый пук и склеивать их на клиенте или мутить цепочки запросов на сервере?
Аноним 25/07/22 Пнд 21:34:33 2416352 479
Аноним 25/07/22 Пнд 22:50:39 2416475 480
>>2415500
На самом деле учебные базы у них довольно неплохие, проблема не в самой базе, а в том что ты не знаещь что с ней делать. На этих базах можно тренировать довольно близкие к реальным кейсы.

Вроде северный ветер старая, у них ещё AdventureWorks есть
Аноним 25/07/22 Пнд 22:52:34 2416478 481
>>2416348
Если у тебя сервер тупо для круда и хранения данных, можешь сделать на сервере билдер запросов и обмазать каким-нибудь GraphQL. Но вообще да, если у тебя не круд и не публичное API, мутить по эндпоинту на сервере на каждое допустимое действие - основа безопасности, чтобы юзер мог вытащить только то, что ему разрешил администратор для тех или иных действий.
Аноним 25/07/22 Пнд 23:38:43 2416523 482
>>2416301
Вот я тебе накидал примерчик импорта денормализированного csv и использование many-to-many.
https://ideone.com/OOz1ow
Давненько не писал на питоне, лол.
Аноним 26/07/22 Втр 13:09:28 2416775 483
>>2416301
ты джойнишь эти таблицы по их первичному что ли?У тебя совсем фляга свистит?
определи какой-то фк в таблице

господи, посмотел на твой первоначальный вопрос

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

у тебя цель какая? хранить информацию о анимах и их жанрах?

какой смысл такого деления на таблицы?

Нахера ты хранишь список жанров в текстовом поле?

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

Аноним 01/08/22 Пнд 17:57:31 2421876 484
Памахите

Есть набор записей (timestamp, value) по сути активность чего-то

Нужно вывести промежутки активности когда value > 0

date, start_time - end_time, sum(value)
Аноним 01/08/22 Пнд 18:12:05 2421885 485
>>2421876
Чую, что будет как-то через жопу.
Аноним 01/08/22 Пнд 19:12:28 2421953 486
>>2421885
Если бы был какой-то фиксированный интервал, то было бы наверно проще
Аноним 01/08/22 Пнд 19:18:18 2421959 487
Аноним 01/08/22 Пнд 19:47:07 2421980 488
>>2421959
А разве там не нужно 2 записи timestamp start/end?
Можно простой пример?
Аноним 01/08/22 Пнд 22:00:51 2422129 489
>>2421980
>>2421959
Кажется не оч тема. У меня нет четкого интервала.

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

И дальше джойним сюда то что нужно/отфильтровываем

Аноним 01/08/22 Пнд 22:30:51 2422177 490
>>2421876
если я правильно понял очевидные оконные функции, берешь соседнии в качестве nextValue и считаешь разницу.
Аноним 01/08/22 Пнд 23:01:56 2422207 491
>>2422177
Пчел, а ниже тыне читал посты? Они не верны?
Аноним 02/08/22 Втр 22:27:08 2423015 492
>>2422207
Ну ёбана, с начала фильтруешь все 0, потом смотришь подряд ли идут цифры, если подряд закрашиывешь.
Я что за интернет плачу чтоб считать читать чужые посты?
Аноним 02/08/22 Втр 22:33:55 2423016 493
>>2421876
выгрузи семпл, записей 200, а то щото мамку ебал в ручную заполнять а в голове решить не могу.
Аноним 03/08/22 Срд 10:11:40 2423203 494
>>2423016
> ебал в ручную заполнять
Достойные специалисты в треде

generate_series(timestamp '2020-01-01, timestamp '2022-01-08' , interval '1 min') + random() * interval '5 min';
Аноним 03/08/22 Срд 10:20:04 2423213 495
>>2423015
> смотришь подряд ли идут цифры
Как именно смотришь? Когда понимаешь что интервал закончился?

Вот я начал какать утром в 9:05, потом залипал в телефон, в 9:10 еще чуть выдавил и в 9:15 еще
Сколько я какаль? 9:05-9:15

Если покакаль 2 раза за минуту это одно событие, но в бд 2 записи, если что
Аноним 03/08/22 Срд 10:27:39 2423221 496
>>2423213
Вернее, такой вариант будет правильнее:

Начал какать в 9:05, продолжил 9:06 и 07, 08 - раз в минуту выдавливал. Потом залипал в телефоне 5 минут и выдавил еще раз в 9:13

Пусть будет что если есть событие хоть раз в минуту, то это часть интервала


- 9:05-9:08
- 9:13
Аноним 03/08/22 Срд 10:46:04 2423235 497
Аноним 03/08/22 Срд 10:57:07 2423244 498
Аноним 03/08/22 Срд 10:57:26 2423245 499
Аноним 03/08/22 Срд 15:47:00 2423557 500
Блэт, а как заполнить все строчки како-либо таблицы согласно условию? Вот как мне нужно обновить все записи:

JЕсли Cуществует запись ENVIRON с условиями:

STORE.ROLLOUT_ENV= ENVIRON.NAME
И ENVIRON.LVL <= CURRENT_LVL

Тогда
STORE.USED = 1

Иначе
STORE.USED = 0


Тут надо как-то апдейтиться из джойна? Я могу конечно выбрать все записи из таблицы с помощью go и потом итерироваться по ним через for но это уебанство, ндао бы за 1 sql-запрос это порешать
Аноним 03/08/22 Срд 16:13:43 2423605 501
>>2423557
Ну апдейтишь с джойном и там через case вибыраешь значение.
Аноним # OP 03/08/22 Срд 23:48:18 2424143 502
Аноним 16/08/22 Втр 03:13:38 2435417 503
>>2336742 (OP)
Есть ли какая-то IDE для MySQL с урезанным функционалом для новичков чтобы могла наглядно строить таблички или все эти связи между табличками как Воркбенч? Может есть какой-то хидден гем в вашей области для новичков?
Аноним 16/08/22 Втр 13:36:12 2435762 504
народ работаю сейчас в 1С

эта ебала дичайше тормозит. у коллег тоже, и на ноутах и стационарниках в офисе

что с ней не так? где затык?
компания экономит на сервере? или нужно железо на клиенте мощнее?
Аноним 16/08/22 Втр 19:49:04 2436318 505
>>2435762
Я ебу чтоли? Скорее всего и то и то
Аноним 19/08/22 Птн 10:20:39 2439215 506
>>2436318
ну ты просто пиздец по полочкам все разложил

и кстати иди нахуй
Аноним 24/08/22 Срд 09:24:42 2444283 507
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов