Задавайте вопросы, мы ответим
Вы не зашли.
Вопрос в теме.
Неактивен
Поясните, пожалуйста, что вы подразумеваете под "внедрить SQL3"?
SQL3 - это стандарт. MySQL - это реализация. У них есть пересекающиеся элементы
Неактивен
С помощью SQL3 можно создавать АТД (абстрактные типы данных) и осуществлять работу с ними. Например, вот запрос.
Отыскать в таблице Country названия всех стран, которые являются соседями Соединенных Штатов.
SELECT C1.Name AS “Соседи США”
FROM Country C1, Country C2
WHERE Touch(C1.Shape, C2.Shape) = 1 AND C2.Name = ‘США’
На что способен MySQL в этом отношении?
Неактивен
Типы данных новые нельзя делать.
То, что Вы описали, можно реализовать с помощью отдельной таблицы, в которой описывается соседство стран.
Неактивен
В MySQL есть тип SPATIAL, возможно, поможет в данной ситуации http://dev.mysql.com/doc/refman/6.0/en/ … sions.html
Абстрактные типы, к сожалению нельзя задавать
Неактивен
Неужели в MySQL реализован стандарт OGC?
Нельзя в русском варианте об этом почитать?
Киньте ссылки плиз, господа.
Неактивен
Боюсь, что сайт документации отражает текущее состояние дел, а все переводные ресурсы
очень быстро устаревают.
Ссылки по этому поводу можно брать любые. Например: http://www.weblibrary.biz/mysql/raswir/optim-analiz
Неактивен
Не совсем ясно, что такое пространственный индекс и как он ускоряет выполнения запроса? Разъясните плиз
http://www.weblibrary.biz/mysql/raswir/optim-analiz
Неактивен
Перевод мануала по mysql, перевод спецификаций OGC ссылки не подкинете? Благодарю заранее!
Неактивен
Пространственный индекс - это индекс по пространственным данным По поводу переводов -
попробуйте набрать соответствующие слова в Яндексе и Google.
Неактивен
paulus написал:
Пространственный индекс - это индекс по пространственным данным По поводу переводов -
попробуйте набрать соответствующие слова в Яндексе и Google.
Таблица также включает столбец fid типа AUTO_INCREMENT, предназначенный для хранения идентификаторов объектов (http://www.weblibrary.biz/mysql/raswir/optim-analiz). А чем же fid не индекс?! Зачем еще нужно делать ALTER TABLE geom ADD SPATIAL INDEX(g); ??? Спасибо за ответ.
Неактивен
У меня еще такой вопрос. Если я собираюсь хранить пространственные данные в зашифрованном виде, то каким-образом мне можно будет выполнять SQL-запросы пространственного типа? У меня уже был опыт работы с зашифрованными данными, эту задачу я решал путем составления архисложных SQL-запросов (над проецируемыми данными выполнял преобразования). Неужели данную задачу придется решать также?!
Неактивен
Индекс строится на самих данных. Если данные зашифрованы, то пространственный индекс не будет работать. Только если расшифровать во временную таблицу.
Неактивен
Допустим, я выполняю следующую последовательность запросов:
/*создание таблицы geom с ключевым полем id и полем g для хранения геометрических объектов*/
CREATE TABLE geom (`id` int NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), g GEOMETRY);
/*объявление переменных для хранения точки, линии и полигона*/
SET @point = 'POINT(1 1)';
SET @line = 'LINESTRING(0 0,1 1,2 2)';
SET @polygon = 'POLYGON((0 0,10 0,10 10,0 10,0 0), (5 5,7 5,7 7,5 7, 5 5))';
/*добавление объявленных геометрических объектов в таблицу*/
INSERT INTO geom VALUES (0,GeomFromText(@point));
INSERT INTO geom VALUES (0,GeomFromText(@line));
INSERT INTO geom VALUES (0,GeomFromText(@polygon));
Далее, я шифрую данные, которые расположены в столбце g.
После этого, допустим, мне необходимо выполнить такой запрос:
/*выдача минимально ограничивающего прямоугольника для геометрического объекта с id=2*/
SELECT AsText(Envelope(g)) FROM geom WHERE id=2;
Естественно этот запрос не пройдет, т.к. пространственные данные зашифрованы.
Тогда есть такой выход: можно выполнить преобразования над полем g непосредственно в самой функции Envelope. Но тогда это затруднит написание SQL-запроса. Возникает вопрос, можно ли встроить в СУБД MySQL свою функцию расшифрования? Если это можно, то это бы упростило жизнь пользователя, и запрос мог бы выглядеть, например, так:
SELECT AsText(Envelope(Decode(g))) FROM geom WHERE id=2;
Какие будут критические замечания или рекомендации по решению данной задачи? Спасибо!
Неактивен
Возможность встраивания функции существует. Называется UDF http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html
Неактивен
rgbeast написал:
Возможность встраивания функции существует. Называется UDF http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html
Неужели нет ничего на русском по этому делу? Как пересобрать СУБД MySQL под Windows? Благодарю заранее.
Неактивен
Rgbeast! Вы написали, что возможность встраивания функции в MySQL существует. Но не могли ли бы Вы дать оценку, насколько сложно это реализовать? Спасибо.
Неактивен
Нашел! Вот ссылка http://www.arininav.ru/mysql/index.html
Неактивен
believer написал:
Rgbeast! Вы написали, что возможность встраивания функции в MySQL существует. Но не могли ли бы Вы дать оценку, насколько сложно это реализовать? Спасибо.
Не пробовал, но люди делали. В документации есть пример
http://dev.mysql.com/doc/refman/5.0/en/ … iling.html
Неактивен
И под windows нашел инструкцию: http://groups.google.com/group/mysql-ud … io-express
Неактивен