Анон, поясни за базы данных. Вот, допустим, есть у меня информация, которую можно организовать в виде таблицы. Логичным решением будет использовать Эксель, который как раз и предназначен для работы с таблицами. Но еще существует Акцесс, и другие системы управления базами данных. Но я не понимаю - в чем их преимущество? Там какие-то сложные заморочки, тысячи таблиц, которые как-то взаимосвязаны, ключевые поля, типы данных и прочая херь. Зачем это всё и почему оно такое переусложенное? Почему нельзя просто вбить все данные в таблицу?
>>257545135 (OP) >Зачем это всё и почему оно такое переусложенное? Для удобства > Почему нельзя просто вбить все данные в таблицу? База данных состоит из таблиц, если че
>>257545135 (OP) >Логичным решением будет использовать Эксель, который как раз и предназначен для работы с таблицами. Эксель не подойдет, если 1. Монго данных. 2. Ты пишешь приложение, которое обменивается данными с табличкой. 3. Много пользователей данных одновременно. 4. Требуется быстрый поиск по запросу.
>>257545135 (OP) >Зачем это всё и почему оно такое переусложенное? Почему нельзя просто вбить все данные в таблицу? Если для тебя "данные" ограничиваются лишь одной таблицей - тогда пользуйся экселем на здоровье, и во всякие акцессы не лезь. Тебе в треде уже всё рассказали. >>257545245 ну, для ОПа "база данных" - это пара табличек, в которых он ведет учёт своих домашних доходов-расходов. Чего ты докопался то?
А можно больше примеров использования баз данных вместо простых таблиц, как у этого анона >>257545353 ?
На одной работе вся информация была в экселевских таблицах, а там несколько миллионов записей, и этими файлами пользовались многие одновременно (из-за чего была проблема, когда нельзя было ничего в таблицу сохранить, потому что какой-нибудь червь-пидор забыл файл закрыть).
>>257545135 (OP) ОП не слушай псевдоайтишников, которые кукраекают тут ОП ТУПОЙ ЗУМЕР, ДУМОЕТ ЧТО БАЗЫ ДАННЫХ ЭТО ИКСЕЛЬ, КАКОЙ ЖЕ ПОРИДЖ ТУПОЙ, РЯЯЯЯ Вся хуйня из других программ выгружается на изи в формат xslx, в экселе помимо стандартных набор есть и макросы и команды.
>>257545938 так ты же сам сейчас и дал пример базы данных, которую нельзя хранить в экселе потому что: 1. Проблема с доступами. В реляционных БД это решается уровнями изолированности транзакций. Любая операция на изменение, добавление или удаление данных осуществляется через транзакции, а не через "в данный момент вы не можете вносить изменения, потому что документ в данный момент редактируется пользователем червь-пидор " 2. Быстродействие. Выше тебе дали пример БД, которая состоит из 50 миллионов строк. Действительно, попробуй ка по взаимодействовать с такой таблицей. Хотя бы на уровне элементарной выборки данных. В экселе у тебя эта операция может занять несколько минут. Тут, в реляционной бд в игру вступают так называемые кластерные и некластерные индексы. Как думаешь, эксель дружит с ними? 3. Целостность данных. Допустим, у тебя есть две таблицы. Таблица с людьми и таблица с их адресами, где они живут. То есть, город, улица, дом, квартира. Каждая строчка с адресами может ссылаться на конкретного человека в таблице людей. Скажи, имеем ли мы право удалить строчку из таблицы с людьми, если на эту строчку ссылается строчка из таблицы с адресами(а то и не одна) ? Как минимум, при попытке удалить человека, система должна запрашивать у пользователя - "а что мы будем делать со строками с его адресом, где он живёт? Эти строчки тоже удалить?". Это я привёл тебе простейший пример. 4. Безопасность данных. Скажи, твой эксель, может без помощи Windows, сам каждые пол часа делать бэкап всех таблиц? Причём делать это так, чтобы не нарушать работу пользователей, которые в данный момент работают с ней? А база данных может.
И это лишь самые элементарные и общие примеры. Если еще что-то вспомню - допишу.
>>257547068 Он имел ввиду, что SQL - это язык, что подразумевается последней буквой, который работает с данными, а то что ты рассказал - это концепция реляционных баз данных. Т.е. корректнее не использовать слово SQL потому что оно не относится к самой идее использования таблиц
>>257545135 (OP) Эксель работает только с данными в первой форме по типу Донос в РКН Анон1 Тред1 Анон1 Тред2 Анон1 Тред3 Анон2 Тред1 Во многих случаях - это норм, но в примере такое хранение избыточно поскольку строки дублируют инфу и можно просто завести таблицу с анонами и тредами и установить связь между записями в таблице, что будет занимать меньше места и искать треды, в которых сидел анон можно будет быстрее
Анон, у тебя же есть все. Дай пример, как организовать бд знакомых. Вот есть н-ное количество знакомых, нужно добавить их контакты, и различные характеристики. На пример: Чел 1 1) весёлый 2) безответвенный 3) работает в залупа нейм 4) знаком с челом 3
Чел 2 1) знаком с челом 3 2) враг
Чел 3 1) знаком с челом 1 2) знаком с челом 2 3) алкаш
Что бы можно было удобно искать/фильтровать людей по характеристике, что бы можно было посмотрет,ь какие чехлы с кем пересекаются.
>>257545135 (OP) Электронные таблицы больше для ручной работы и в более свободной форме. Таблицы в базе данных сильнее ограничены. В одном столбце может быть только один тип данных. Пока данных не очень много и в экселе норм, но когда размер становится слишком большим эксель, из-за того, что обновляет форматирование и вычисления в ячейках в реальном времени, начинает тормозить или может быть, что данные в него не лезут, так как там ограничение 65к на 65к ячеек. А из базы делают выборки данных, поэтому эй не надо что-то там постоянно перерисовывать на экране и производительность от этого сильно возрастает. К тому же с базами может работать не один пользователь. Короче вроде в основе и там и там таблицы, нл с разными возможностями и ограничениями и для несколько разных задач.
>>257548301 >там ограничение 65к на 65к ячеек Nope. >но когда размер становится слишком большим эксель, из-за того, что обновляет форматирование и вычисления в ячейках в реальном времени Excel строит зависимости и при изменении какой-либо ячейки обновляет ТОЛЬКО его зависимости and so on.
>>257546869 Нет, не быстрее. Тебе для построения красно-черного древа из 10 ТБ жсона уйдет уйма времени. За это время ты не одну сотню табличек сможешь распарсить и вынуть нужную тебе строку.
В таком случае, сударь, соизвольте откушать фекалий и вы сами, ибо relation это не link или connection.
А вообще, я, как и анон выше использую терминологию из языка оригинального изобретателя концепции. Если бы РБД изобрёл мудрый товарищ Си, то я бы, соответственно, называл их каким-нибудь сычуаньскими хранилищами информационных единиц.
Вы можете попробовать изобрести свой подход к управлению данными и назвать его исконно-русским словом, к вашему удовольствию.
>>257548389 Один хрен, когда занимаешься учебными задачами вроде и не понятно, нахрен оно надо. Но в жизни, если использовать инструмент не по назначению, очень легко упереться в ограничения. Как вариант, там, есть csv с данными с 50 счетчиков электроэнергии с интервалом в час за пару лет. Они идут подряд. Допустим, надо их растолкать в таблицу столбцы -счетчики, строки -даты. И уже, эксель, если в него вообще это влезет может часами эти данные переваривать, access лучше но его тоже может клинить из-за накопления промежуточный данных в файле базы, потому, что он не может быть больше то ли одного, то ли двух гб.
>>257549568 пчел, у тебя какой-то эксель не правильный. Отсортировать несколько десятков строк по наименованию счетчика или даты не требует колоссального количества времени, на это уйдет пара секунд.
>>257545135 (OP) Давно известно что анальники не умеют пользоваться экселем, поэтому придумали себе хуйню под названием сукуэль и пишут там что то вроде select govno from mocha и прочую ересь что тетя срака из бухгалтерии сделает в 2 клика
>>257548256 CREATE TABLE IF NOT EXISTS friends ( friend_id integer NOT NULL PRIMARY KEY, first_name character varying(64) NOT NULL, last_name character varying(64) NOT NULL, phone_number integer, home_adress character varying(32), job_adress character varying(32), ) Дальше сам давай, я устал
>>257550138 Пиздец А если он безработный? А если бездомный? А телефон нахуя интом? А праймири кей почему интом? Если у тебя несколько серверов с друзьями, то как коллизии разрешать будешь?
>>257550308 Я же поэтому и не указал NOT NULL в тех строках, где в теории может быть пусто. А чем плох int в этом моменте? Про коллизии я нихуя не знать, поэтому прошу на меня не орать. Мне просто делать нехуй вот чет и написал
>>257550353 Зашитая бизнес-логика сбора разных показателей: либо отчётность, либо выставление счетов клиентам по списку из 80+ услуг, считающихся по разным условиям
int в телефоне плох тем, что тебе вряд ли придется делать с ним арифмитические операции, а вот поиск телефона по маске, например, может пригодится. И с интом для этого придется изъебываться.
Использовать инты для id больно потому что сложнее обеспечить уникальность и потому что int внезапно ограничен сверху, гораздо удобней ебануть огромную строку хэш.
>>257550685 >поиск телефона по маске В чем проблема сделать отдельные столбцы под код города, код атс и сам номер телефона? мм? Работать будет даже быстрее.
>>257550685 Так и какой тип данных стоило указать в том моменте, varchar? Курс для начинающих сейчас прохожу и там такие моменты не проговариваются, может подскажешь где про все эти тонкости можно узнать?
Задача разделения телефон на три части настолько не тривиальная, что такие услуги SASS стартапы за деньги предоставляют. И это все равно не позволит легко искать по маске типа 153. Зачем так ебаться, если можно не ебаться? БД уже давно умеют очень быстро искать по строкам, вряд ли ты что-то выйграешь за счет интов даже на огромных масштабах.
Так, блет, раз такой тред, то поясните мне. Вот у меня есть таблица, каждые полминуты в неё кладётся строка. В ней есть столбец id, который автоматом присваивает id новое строке. Внимание, вопрос. Сколько строк так можно положить? Числа то ведь не бесконечные в id?
>>257550737 Его нет необходимости расширять, это раз. Это все должно собираться внутри одной транзакции, это два, поскольку формируется в рамках одного документа со сквозной нумерацией
>>257552647 И что? Просто профессиональный сленг. Когда игрок в ммо начинает затирать другому про дпс, аггро, бл с пулла, ассистим - ты тоже бугуртишь?
>>257552790 Это я понимаю. А программерский не понимаю. Вывод - программисты хуже пидоров, официально. Понапридумывали непонятных терминов, чтобы умнее казаться.
Зачем чистить таблицу вообще? Обычно данные там остаются навсегда Если достигнете предела (скорее всего 2^32 записей), то запись в таблицу наебнется, если у вас какой-нибудь залупный движок, то может начать переписывать с нуля
>>257546710 Справедливости ради существуют потоковые парсеры и json-итераторы, которые могут достать значение по ключу при этом не выгружая весть файл в память
>>257545135 (OP) Поясняю, эксель предназначен в первую лчередь для расчётов, подстановки формул. В ячейках полный рандом, фарш и винегрет, текст, формулы, цифры. Табличка там просто как нечто более удобное для этого. Да, схожесть с БД есть, но эксель не СУБД даже.
Ацесс как раз представляет БД правда так себе бд, да, там тоже есть таблицы. Но в ячейках хранятся данные, их тип определён (числа, текст и т.д.), строятся связи и главная суть всех БД: язык запросов, SQL, язык для извлечения данных из кучи ячеек по заданным параметрам, типа выбрать первые 10 ячеек если их значение больше чем например 3.14.
>>257548256 1) таблица людей 2) справочник видов отношений между людьми 3) таблица отношений между людьми: ид, чел1, чел2, ид отношения 4) справочник характеристик людей: ид, название хар-ки, значение хар-ки (инт, бул, произвольная строка, множество) 5) справочник значений характеристик: ид, ид хар-ки, значение 6) таблица характеристик людей: чел, ид хар-ки, значение
Номера, работу и др. сам раскидывай. Можешь к людям сунуть, можешь отдельными таблицами, мне поебать.
>>257547579 Не то чтобы сильно удобно, но вполне себе можно. А еще во всяких бэкенд фремворках для этого есть ORM с драйвером чтобы не надо было ебаться с SQL запросами из питона. Впрочем есть еще NoSQL DB в которых все немного проще.
>>257553593 А на хуй они там нужны? Это как промежуточная таблица хранения, из этих данных за день формируется строка в таблицу ответов раз в сутки и больше эта строка и на хуй не нужна А почему наебнется? В программировании ведь когда доходит до максимума то просто с нуля начинает считать, не?
>>257546398 В твоём JSON нет таких оптимизаций, какие есть в БД. Ты в JSON будешь лопатить весь файл по порядку. А если файл на сотни мегабайт или десятки гигабайт?
Ну если уж хранить как текст, то лучше не json, а csv хотя бы, чтобы не тратить время на поиск парных {}.
Начинает, а на нуле у тебя другие записи. Поэтому нормальная БД тебе просто откажется писать, потому что ноль уже был использован .
Данные обычно не удаляются потому что они есть/пить не просят, если не пригодятся, то хуй с ними, а если понадобятся, то уже не откатишь удаление. Плюс удаление файлов это лишнее место где что-то может пойти не так и похерить нужные данные.
>>257553856 ORM хороши для вещей, которые и так в общем-то тривиальные. А вот сделать что-то сложное, вроде аналитических запросов, с десятком CTEшек при помощи большей части ОРМов просто нельзя, в них не хватает функционала. Да и в ORMах довольно мало контроля над тем, какой именно запрос улетит в базу данных. Частой бывает ситуация, когда ВНЕЗАПНО орм делает 2-3 запроса вместо одного. В общем хуйня для вкатышей-CRUDоделов
>>257551686 Типа автоинкремент? Ну гугли автоинкремент твоей бд, алсо на его тип можно тоже обратить внимание. Ну и загугли переполнение в твоей бд. Ну куда-то в эту сторону. Всё это зависит от реализации твоей бд. Некоторые бд изначально забабаханы так чтобы у тебя скорее места на диске не хватило, чем ты приблизился бы к этой проблеме.
>>257554316 Ну, тут уже зависит от задачи и сколько человекочасов готовы выделить на ее решение. Хочешь поиграть в мамкиного оптимизатора - пишешь свой драйвер или ебешься с кастомными запросами.
Всякие операции по парсингу гораздо бытсрее проводить в базе данных, так как все эти запросы уже нормально оптимизированы. Само собой речь не о таблице в 10 строчек, где разницу ты просто не заметишь. Если у тебя десятки и сотни тысяч записей, то начинается совсем другая математика. Какой-нибудь сравнительный запрос с помощью средства базы данных выдаст тебе результат за 5 сек, в то время как поиск по текстовому файлу потребует пару минут.
Бд нужны прохрамерам, потому что с ними проще, чем с экселькой. Теоретически то можно пихать инфу в текстовые файлы и парсить их, но сойдешь с ума раньше, чем напишешь приложение.