OpenStreetBugs — лёгкий способ сообщить об ошибке в OpenStreetMap

OpenStreetBugs — лёгкий способ сообщить об ошибке в OpenStreetMap

Вы, конечно, знаете о свободной карте OpenStreetMap. Это настоящая народная карта, создаваемая такими же людьми как и вы! Это такой же opensource-проект как Linux и как Википедия. Конечно же, как и в других картах, в OpenStreetMap имеются ошибки, но в отличие от тех же Яндекс.Карт, где ошибки не исправляются годами из-за сложной бюрократической процедуры (я уже не говорю о намеренных ошибках), в OpenStreetMap всё гораздо проще и лучше для всех нас...
Подробнее..

CloudMade Navigation поддерживает ограничения манёвров

CloudMade Navigation поддерживает ограничения манёвров

Не так давно CloudMade выделил несколько приоритетных направлений, среди которых оказалась и навигация. Решено было создать специальный проект Navi Studio, который объединял бы в себе несколько более мелких сервисов и позволял пользоваться ими, для создания полноценного навигационного программного обеспечения. В Navi Studio вошли: Работа закипела и уже появилось несколько приложений использующих данный проект. Но полноценной навигации без соблюдения правил ПДД не существует, а потому данному вопросу было также уделено не мало времени...
Подробнее..

Удали себя из интернет-социума — «Web 2.0 Suicide Machine»

Удали себя из интернет-социума — «Web 2.0 Suicide Machine»

Недавно наткнулся в сети на один занимательный интернет-сервис, именующийся Web 2.0 Suicide machine . Предназначен он для того, чтобы позволить людям, обремененным «социальной жизнью в интернете», в пару кликов удалить свои аккаунты на Facebook (в данный момент сервис блокирован администрацией по IP), Twitter, Linkedin и Myspace. В общем-то судя по количеству положительных отзывов и «успешных очищений» — пипл хавает зависимые от социальных сетей успешно пользуются сервисом и довольны...
Подробнее..



Embedded InnoDB новый движок баз данных

Топ компании - oracle

embedded innodb новый движок баз данных

Oracle выпустила Embedded InnoDB.

Совсем недавно «красный гигант» выпустили Embedded InnoDB, под довольно демократичной лицензией GPLv2, не Апатч 2.0 но тоже сносно.

В данный момент данная БД доступна только для 32-х битных версии Windows и Linux.

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

Концепция.

Данная БД разработана для критичных приложений и с успехом справляется как килобайтами данных так и объемами в несколько гигабайт.

Для доступа к данным и управлением БД и транзакциями используются специальные API.

Это типо никакого тибе SQL, пока не так занимательно.

Так как InnoDB является встраиваемым движком, он супер быстрый.

Вот это уже хочется протестировать, возможно к концу статьи они так раскрутят меня установить InnoDB и протестировать.

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

Хм, что-то вроде Google Gears??

Важный момент, что данная СУБД не является реляционной базой данных и как следствие не предоставляет таких высокоуровневых функции как триггеры и ничего похожего на SQL. InnoDB это лишь набор API низкого уровня для эффективного чтения/записи ваших данных.

Embedded InnoDB позволяет вам встраивать процессор дазы данных в ваше приложение, без необходимости устанавливать любую другую вашу СУБД. Операции с базой данных осуществляются по средствам плагина. Который позволяет осуществлять стандартные действия: insert, update, delete с обычными реляционными таблицами и колонками, а так же позволяет управлять транзакциями и возврашать курсоры данных.

Данная СУБД позволяет:

Работать с таблицами колонками и индексами.

Ваши вызовы происходят не с помощью SQL, вы оперируете вызовами API.

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

Расбота с базой данный осуществляется транзакциями ACID (Atomicity, Consistency, Isolation, Durability) и поддерживают commit / rollback / savepoint операции.

Приложение возвращает данные в виде классического курсора.

Вы можете контролировать уровни изолированности транзакции, а атк же модели блокировок как для таблиц так и курсоров.

Имеет внешние ключи.

Не позволяет менять свойства колонок после создания таблицы.

Имеет B-tree структуры данных.

Использование.

Качаем ставим, старутем бд, запускаем любое IDE.

создаем БД:

ib_err_t err = ib_database_create( test );

создаем табличку:

простой

CREATE TABLE T(c1 VARCHAR(32), c2 VARCHAR(32), c3 UNSIGNED INT, PK(c1, c2));

в языке API InnoDB будет выглядеть так:

ib_trx_t ib_trx;

ib_id_t         table_id = 0;

ib_tbl_sch_t    ib_tbl_sch = NULL;

ib_idx_sch_t    ib_idx_sch = NULL;

char            table_name[IB_MAX_TABLE_NAME_LEN];

snprintf(table_name, sizeof(table_name), %s/%s , database_name, name);

/* Pass a table page size of 0, ie., use default page size. */

ib_table_schema_create(table_name, &ib_tbl_sch, IB_TBL_COMPACT, 0);

ib_table_schema_add_col(ib_tbl_sch, c1 , IB_VARCHAR, IB_COL_NONE, 32);

ib_table_schema_add_col(ib_tbl_sch, c2 , IB_VARCHAR, IB_COL_NONE, 32);

ib_table_schema_add_col(ib_tbl_sch, c3 , IB_INT, IB_COL_UNSIGNED, 4);

/* Index schema handle is owned by the table schema handle in this

case and will be deleted when the table schema handle is deleted. */

ib_table_schema_add_index(ib_tbl_sch, PRIMARY_KEY , &ib_idx_sch);

/* Set prefix length to 0. */

ib_index_schema_add_col( ib_idx_sch, c1 , 0);

/* Set prefix length to 0. */

ib_index_schema_add_col( ib_idx_sch, c2 , 0);

ib_index_schema_set_clustered(ib_idx_sch);

/* Create the transaction that will cover data dictionary update. */

ib_trx = ib_trx_begin(IB_TRX_SERIALIZABLE);

/* Lock the data dictionary in exclusive mode */

ib_schema_lock_exclusive(ib_trx);

/* Create the actual table from the schema. The table id of the new

table will be returned in table_id. */

ib_table_create(ib_tbl_sch, &table_id);

/* Commit the transaction */

ib_trx_commit(ib_trx);

/* Release the data dictionary lock. */

ib_schema_unlock(ib_trx);

ib_table_schema_delete(ib_tbl_sch);

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

Так и напрашивается сравнение с Google Gears, очень схожие технологии. Различие Gears для броузерзерных оффлайн приложений приложений, InnoDB для десктопных.

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

Аналогичный предышему код на гугл будет выглядеть так:

try {

db = Factory.getInstance().createDatabase();

db.open( BaseApp11 );

db.execute( create table if not exists baseapp11 (Timestamp int) );

db.execute( delete from baseapp11 );

} catch (GearsException e) {

Window.alert(e.toString());

}

В как минимум 100 раз лаконичнее не правда ли?? Но несмотря на все удобство гугл не может похвастаться ни транзакциями ACID, ни втроенными средствами восстановления базы данных, ни B-tree индексами.

habrahabr.ru/blogs/sql/

 


Читайте:


Добавить комментарий


Защитный код
Обновить

Топ технологий:

News image

Оздана новая система беспроводной связи - она в 10

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

News image

Как взломали Twitter

В Интернетах, наряду с iPad, сканерами в аэропортах и войне между Google и Apple, уже второй день подряд активно обсуждается тема взлома и...