SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.06.2008 14:56:43

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Можно ли внедрить в MySQL SQL3?

Вопрос в теме.

Неактивен

 

#2 10.06.2008 15:15:27

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Можно ли внедрить в MySQL SQL3?

Поясните, пожалуйста, что вы подразумеваете под "внедрить SQL3"?

SQL3 - это стандарт. MySQL - это реализация. У них есть пересекающиеся элементы smile

Неактивен

 

#3 11.06.2008 09:38:26

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

С помощью SQL3 можно создавать АТД (абстрактные типы данных) и осуществлять работу с ними. Например, вот запрос.
Отыскать в таблице Country названия всех стран, которые являются соседями Соединенных Штатов.
SELECT C1.Name AS “Соседи США”
FROM Country C1, Country C2
WHERE Touch(C1.Shape, C2.Shape) = 1 AND C2.Name = ‘США’

На что способен MySQL в этом отношении?

Неактивен

 

#4 11.06.2008 16:12:25

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Можно ли внедрить в MySQL SQL3?

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

Неактивен

 

#5 11.06.2008 17:30:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Можно ли внедрить в MySQL SQL3?

В MySQL есть тип SPATIAL, возможно, поможет в данной ситуации http://dev.mysql.com/doc/refman/6.0/en/ … sions.html

Абстрактные типы, к сожалению нельзя задавать

Неактивен

 

#6 28.01.2009 21:06:55

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

Неужели в MySQL реализован стандарт OGC?
Нельзя в русском варианте об этом почитать?
Киньте ссылки плиз, господа.

Неактивен

 

#7 29.01.2009 19:27:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Можно ли внедрить в MySQL SQL3?

Боюсь, что сайт документации отражает текущее состояние дел, а все переводные ресурсы
очень быстро устаревают.

Ссылки по этому поводу можно брать любые. Например: http://www.weblibrary.biz/mysql/raswir/optim-analiz

Неактивен

 

#8 30.01.2009 16:56:30

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

Не совсем ясно, что такое пространственный индекс и как он ускоряет выполнения запроса? Разъясните плиз smile
http://www.weblibrary.biz/mysql/raswir/optim-analiz

Неактивен

 

#9 30.01.2009 17:00:21

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

Перевод мануала по mysql, перевод спецификаций OGC ссылки не подкинете? Благодарю заранее!

Неактивен

 

#10 30.01.2009 18:00:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Можно ли внедрить в MySQL SQL3?

Пространственный индекс - это индекс по пространственным данным smile По поводу переводов -
попробуйте набрать соответствующие слова в Яндексе и Google.

Неактивен

 

#11 31.01.2009 10:45:04

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

paulus написал:

Пространственный индекс - это индекс по пространственным данным smile По поводу переводов -
попробуйте набрать соответствующие слова в Яндексе и Google.

Таблица также включает столбец fid типа AUTO_INCREMENT, предназначенный для хранения идентификаторов объектов (http://www.weblibrary.biz/mysql/raswir/optim-analiz). А чем же fid не индекс?! Зачем еще нужно делать ALTER TABLE geom ADD SPATIAL INDEX(g); ??? Спасибо за ответ.

Неактивен

 

#12 31.01.2009 11:41:19

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Можно ли внедрить в MySQL SQL3?

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

Неактивен

 

#13 31.01.2009 16:16:29

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Можно ли внедрить в MySQL SQL3?

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

Неактивен

 

#14 01.02.2009 17:10:10

believer
Участник
Откуда: Казань
Зарегистрирован: 01.02.2009
Сообщений: 18

Re: Можно ли внедрить в MySQL SQL3?

Допустим, я выполняю следующую последовательность запросов:

/*создание таблицы 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;

Какие будут критические замечания или рекомендации по решению данной задачи? Спасибо!

Неактивен

 

#15 01.02.2009 17:15:49

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Можно ли внедрить в MySQL SQL3?

Возможность встраивания функции существует. Называется UDF http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html

Неактивен

 

#16 03.02.2009 11:42:38

believer
Участник
Откуда: Казань
Зарегистрирован: 01.02.2009
Сообщений: 18

Re: Можно ли внедрить в MySQL SQL3?

rgbeast написал:

Возможность встраивания функции существует. Называется UDF http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html

Неужели нет ничего на русском по этому делу? Как пересобрать СУБД MySQL под Windows? Благодарю заранее.

Неактивен

 

#17 03.02.2009 14:07:56

believer
Участник
Откуда: Казань
Зарегистрирован: 01.02.2009
Сообщений: 18

Re: Можно ли внедрить в MySQL SQL3?

Rgbeast! Вы написали, что возможность встраивания функции в MySQL существует. Но не могли ли бы Вы дать оценку, насколько сложно это реализовать? Спасибо.

Неактивен

 

#18 03.02.2009 14:37:30

believer
Участник
Откуда: Казань
Зарегистрирован: 01.02.2009
Сообщений: 18

Re: Можно ли внедрить в MySQL SQL3?

Нашел! Вот ссылка http://www.arininav.ru/mysql/index.html

Неактивен

 

#19 03.02.2009 15:04:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Можно ли внедрить в MySQL SQL3?

believer написал:

Rgbeast! Вы написали, что возможность встраивания функции в MySQL существует. Но не могли ли бы Вы дать оценку, насколько сложно это реализовать? Спасибо.

Не пробовал, но люди делали. В документации есть пример
http://dev.mysql.com/doc/refman/5.0/en/ … iling.html

Неактивен

 

#20 03.02.2009 19:16:19

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Можно ли внедрить в MySQL SQL3?

И под windows нашел инструкцию: http://groups.google.com/group/mysql-ud … io-express

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson