Чтобы добавлять сообщения и комментарии, .

@datacompboy:
datacompboy

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

@folex:
folex

Жуйк, а вот эта статья еще актуальна allthingsdistributed.com ?
Амазон не переделал там в динамо всё к чертовой матери?

@justonemore:
justonemore

Из описания пакета mysql-workbench-oss:
MySQL Workbench is modeling tool that allows you to design and generate MySQL databases graphically.

MySQL Workbench requires OpenGL and a 3D accelerated graphics card with at least 16MB of memory.

@segfault:
segfault

Вот смотри, жуйка, есть у тебя тайпкласс Connection, который может prepare текстовый запрос в Statement (prepared statement на стороне базы данных).
У Statement есть четко определенный жизненный цикл:
1. prepare -> получаем новый стейтмент 
2. execute -> исполняем запрос, статус стейтмента меняется на "исполненный"
3. fetchRaw -> опционально вытаскиваем результаты запроса
4. finish/reset -> финализируем, либо сбрасываем Statement в исходное состояние
В данный момент Statement хранит свое состояние динамически в Mvar, то есть при выполнении fetchRaw/execute/finish/reset мы прсто меняет состояние переменной.
Теперь вопрос, не будет ли идиоматичнее жизненный цикл закодировать на уровне типов, чтобы нельзя было, например вытащить строки из невыполненного Staetment, либо выполнить один Statement дважды.
Вот такие типы
data NewStatement
data ExecutedStatement
data FinishedStatement
data Statement = NS NewStatement | ES Executed ......
и вот такие сигнатуры
prepare :: Connection -> Query -> IO NewStatement
execute :: NewStatement -> IO ExecutedStatemtn
reset :: Statement -> NewStatement
finish :: ExecutedStatement -> FinishedStatement
Я понимаю, что это может даже усложнить использование, но и добавить безопасности, а также избавит от проверок состояния на каждом шагу.
Что скажешь ? Дело Сноймана живо в наших сердцах ?

@segfault:
segfault

Вот смотри, жуик, есть такая штука как sql запрос. Как его лучше принимать в биндинге к базе данных ?
1. Самый очевидный ответ — String, но если немного подумать, то запросы обычно генерируются генераторами, а String не самая классная штука для генерации, кроме того его все равно придется преобразовывать в ByteString перед передачей в СУБД (сериализовать кодированием в UTF-8). Да еще для байтстрингов есть такие то классные билдеры, на которых можно очень быстро генерировать байтстринги.
2. Но если оставить запрос в виде ByteString, то мы даем пользователю возможность зафейлить операцию передав не правильно закодированную строку (тупо не в той кодировке) , а это не хорошо с точки зрения архитектуры.
3. Text — если дня него есть быстрые билдеры, то хорошо, и пофиг на преобразование Text->ByteString, или не пофиг и будет так-же медленно как со String ?
Варианты, аргументы ?

@segfault:
segfault

Жуик, а расскажи, какой универсальный интерфейс к БД умеет Decial ? Это те, что в базе numeric(x,y) в хаскеле парный тип, я так понимаю, Fixed.

@segfault:
segfault

а есть на хаскеле простое, без лсдшной магии, как у сноймана, плоское отображение тип -> таблица в базе ?
там ведь по сути нужно всего то создать тип данных и дерайвить для него операции insert update delete и прочий круд.

@wwarlock:
wwarlock

Стала доступна запись недавнего вебинара
“Getting Started with Couchbase App Development”

couchbase.com

@wwarlock:
wwarlock

Необходимо перехватить JDBC трафик от произвольного приложения.
Достаточно получить тексты SQL-запросов.
И приложение и сниффер работают локально.
Как-то изменить приложение возможности нет.
Кто какие решения знает?

p.s. Уже опробованы log4jdbc и jdbmonitor — эти не подходят.

@SKEW:
SKEW

пожскажите адекватную бесплатную замену, а то глючит безбожно sqldeveloper.

@folex:
folex

Принято ли как-нибудь схоронять в этих ваших СУБД часто используемые запросы? В функцию/процедуру там оборачивать, или ещё как?

@folex:
folex

Жуйк, привет.

Нам задали придумать и реализовать какую-нибудь БД в Interbase.
Я выбрал Jabber(social network).


В общем, скажи, жуйк, is it okay?

И что ты скажешь про соответствие NF? Нам сказали нормализовать до 3NF, а лучше до 4NF.
Я вот считаю, что status ID и message ID — лишние.

Опишу майндмап:
1 уровень — Jabber, сама DB.
2 уровень — таблицы.
3 уровень — наименования столбцов.

@SSergienko:
SSergienko

MySQL "на стероидах" — blogerator.ru

@Offoffoff:
Offoffoff

#Я просто запишу это здесь.
CREATE DATABASE databasename;
GRANT ALL PRIVILEGES ON databasename.* TO "username"@"hostname" IDENTIFIED BY "password";
FLUSH PRIVILEGES;
EXIT

@ekalosha:
ekalosha

Моя рыдаль ...
Hibernate in action:

select this_.ID as ID5_3_, this_.AREA as AREA5_3_, this_.CLOSED as CLOSED5_3_, this_.DESCRIPTION as DESCRIPT4_5_3_, this_.CREATED as CREATED5_3_, this_.CURRENCY_ID as CURRENCY21_5_3_, this_.CURRENCY_RATE as CURRENCY6_5_3_, this_.FUND_ID as FUND22_5_3_, this_.GUARANTEE_PAYMENT as GUARANTEE7_5_3_, this_.GUARANTEE_VARY as GUARANTEE8_5_3_, this_.GUARANTEE_VARY_COMMENT as GUARANTEE9_5_3_, this_.INCREASE as INCREASE5_3_, this_.INCREASE_DATE as INCREASE11_5_3_, this_.INCREASE_KIND_ID as INCREASE23_5_3_, this_.INCREASE_SUM as INCREASE12_5_3_, this_.INCREASE_TYPE_ID as INCREASE24_5_3_, this_.IS_INDIFINITELY as IS13_5_3_, this_.INITIAL_SUM as INITIAL14_5_3_, this_.NAME as NAME5_3_, this_.NUM as NUM5_3_, this_.AREA_TYPE_ID as AREA25_5_3_, this_.PAYMENT_MONTH_ID as PAYMENT26_5_3_, this_.PAYMENT_NEXT_MONTH_ID as PAYMENT27_5_3_, this_.PAYMENT_PERIOD_ID as PAYMENT28_5_3_, this_.PAYMENT_REASON_ID as PAYMENT29_5_3_, this_.PAYMENT_FROM as PAYMENT17_5_3_, this_.PAYMENT_TO as PAYMENT18_5_3_, this_.PAYMENT_UNLIMITED as PAYMENT19_5_3_, this_.PERIODICITY_ID as PERIODI30_5_3_, this_.PROPERTY_ID as PROPERTY31_5_3_, this_.STATUS_ID as STATUS32_5_3_, this_.SUM as SUM5_3_, this_.TYPE_ID as TYPE33_5_3_, property2_.ID as ID31_0_, property2_.ACL_SID_ID as ACL2_31_0_, property2_.ACTIVITY_FINISH as ACTIVITY3_31_0_, property2_.ACTIVITY_START as ACTIVITY4_31_0_, property2_.ADDRESS as ADDRESS31_0_, property2_.ATM_LOCATION_TYPE_ID as ATM6_31_0_, property2_.ATM_PARENT_PROPERTY_ID as ATM7_31_0_, property2_.BUILDING_NUMBER as BUILDING8_31_0_, property2_.CURRENT_AREA as CURRENT9_31_0_, property2_.DESCRIPTION as DESCRIP10_31_0_, property2_.ESTATE_NUMBER as ESTATE11_31_0_, property2_.FINANCIAL_CLOSURE as FINANCIAL12_31_0_, property2_.INITIAL_AREA as INITIAL13_31_0_, property2_.KLADR_CITY as KLADR14_31_0_, property2_.KLADR_DISTRICT as KLADR15_31_0_, property2_.KLADR_REGION as KLADR16_31_0_, property2_.KLADR_STREET as KLADR17_31_0_, property2_.NAME as NAME31_0_, property2_.NUM as NUM31_0_, property2_.OWNERSHIP_ID as OWNERSHIP20_31_0_, property2_.POST_CODE as POST21_31_0_, property2_.REPRESENTATION_ACL_SID_ID as REPRESE22_31_0_, property2_.STATUS_ID as STATUS23_31_0_, property2_.TYPE_ID as TYPE24_31_0_, contractst3_.ID as ID12_1_, contractst3_.CODE as CODE12_1_, contractst3_.NAME as NAME12_1_, contractty4_.ID as ID14_2_, contractty4_.CODE as CODE14_2_, contractty4_.IS_RENT as IS3_14_2_, contractty4_.NAME as NAME14_2_ from CONTRACTS this_ left outer join PROPERTIES property2_ on this_.PROPERTY_ID=property2_.ID inner join REF_CONTRACT_STATUSES contractst3_ on this_.STATUS_ID=contractst3_.ID inner join REF_CONTRACT_TYPES contractty4_ on this_.TYPE_ID=contractty4_.ID

@freefd:
freefd

коллеги интересуются, не знает ли кто под линуксы софт для проектирования БД? лицензия/платность не важны. главное — никаких пришиваний wine и прочего.

@jamerlan:
jamerlan

Можем ли мы выполнить SQL запрос вне транзакции? Или в любом случае транзакция неявно будет создана? Например, если мы выполняем простой select, создается ли транзакция?

@slapin:
slapin

А не подскажет ли кто хотя бы 3 базы данных энтерпрайзного уровня, кроме Oracle и DB2, но способных составить им конкурренцию? Про PostgreSQL я знаю, но в данном месте он не подходит, так как надо не для использования, а для понтов. Ныне мертвые тоже приветствуются, если они когда-либо считались того же уровня. Помогите!!!

@syncro:
syncro

не подвердят похоже мою новость: вышла версия 0.3 маленькой такой но весма зачетной программки Database Modeller предназначенной для рисования схем баз данных. Реализованно на кросплатформненном Qt/Cpp. В новой версии: экспорт в pdf, печать, улучшения и исправления. Как это не печально, но аналогов таких программ почти нет под линукс и нет достойных бесплатных и свободных под оффтопики, впрочем и платные страдают большим количеством маразмов, например, мало где найдешь эспорт схемы в нормальный графический файл (а тут свг, пнг, пдф — все как че). Вобщем студентам и разработчиками рекоммендую обратить внимание свое и коллег и завалить разработчика фичреквестами:)

@Yurtaev:
Yurtaev

Кто поможет чем либо по этому вопросу: «Какая сложность у процедуры вставки в простое бинарное дерево поиска в среднем случае? Какой сложностью обладает алгоритм, вставляющий m элементов по одному в дерево содержащее n элементов?»