Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

PostgreSQL, MySQL, IB, FB   Найти похожие ветки 

 
Ega23 ©   (2008-09-29 21:46) [120]


> В постгресе физически это что будет? view над всеми inherited
> таблицами или все вместе хранится?


Завтра обсудим...  :)


 
Petr V. Abramov ©   (2008-09-29 23:12) [121]


> Ega23 ©   (29.09.08 21:46) [120]

завтра обсудим технологические вопросы: а как же ёжики в ... -тся, они ж колючие :)
P.S. сегодня было техническое совещание, по вопросу совещания ничего не придумали, закончилось обсуждением вышеупомянутого технологического вопроса. Решения не приняли, блин, до сих пор покоя не дает :))))


 
Василий Жогарев ©   (2008-09-30 09:50) [122]

PostgreSQL - не обманул предположение, действительно привольная "штука"...

Вот сежу ковыряю, пока под виндой правда...


 
Василий Жогарев ©   (2008-09-30 09:51) [123]

Пока только непонятно как хранимки на PHP писать...


 
Ega23 ©   (2008-09-30 10:03) [124]


> Пока только непонятно как хранимки на PHP писать...


http://www.sql.ru/forum/actualtopics.aspx?bid=7
и поиском его, поиском...


 
Василий Жогарев ©   (2008-09-30 10:33) [125]

Еще вопросик: Что представляет собой Tablespace ?


 
Ega23 ©   (2008-09-30 10:36) [126]


> Еще вопросик: Что представляет собой Tablespace ?


Подозреваю ,что тебе суда:
5.7. Schemas

Вообще, это дело за 2 дня отлично читается. Вместе с экспериментами.


 
Василий Жогарев ©   (2008-11-24 16:56) [127]

На счет FireBird и Postgre, как у них обстоят дела с шифрованием данных таблиц, т.е. какие утилиты существуют и как они влияют на производительность ?


 
Sergey13 ©   (2008-11-24 16:59) [128]

> [127] Василий Жогарев ©   (24.11.08 16:56)

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


 
Василий Жогарев ©   (2008-11-24 17:05) [129]


> Sergey13 ©   (24.11.08 16:59) [128]
> > [127] Василий Жогарев ©   (24.11.08 16:56)Зачем тебе все
> это, если ты за 2 месяца не удосужился поискать инфу по
> интересующей тебя теме.

хм, инфы нарыл, разбираюсь...


 
ANB   (2008-11-24 18:00) [130]


> >  БД имеет в большей степени иерархический вид.
>
> Oracle. Без вариантов.

Назовите мне другую СУБД, имеющую аналог connect by


 
Псалтырь ©   (2008-11-24 19:28) [131]


> Назовите мне другую СУБД, имеющую аналог connect by

чоэта?


 
ANB   (2008-11-25 09:58) [132]


> > >  БД имеет в большей степени иерархический вид.
> >
> > Oracle. Без вариантов.
>
> Назовите мне другую СУБД, имеющую аналог connect by

Слегка повторюсь.

connect by - ключевое слово в оракле, позволяющее делать выборки из парентовых деревьев.


 
Псалтырь ©   (2008-11-25 10:59) [133]


> ANB   (25.11.08 09:58) [132]

Postgres 8.4 будет иметь эту вещь. Сейчас в состоянии пре-бета.


 
Ega23 ©   (2008-11-25 11:15) [134]


> Назовите мне другую СУБД, имеющую аналог connect by


Да он давно уже не главный пуп земли, этот Оракл. Всё, что в нём появится через год-два появится у других и через месяц-два у опенсорсных.

Я сходу могу 10 фсяких фишек назвать, которых ни у кого, кроме как Postgres не встречал.

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


 
ANB   (2008-11-25 16:09) [135]


> Postgres 8.4 будет иметь эту вещь. Сейчас в состоянии пре-
> бета.

У оракла эта вещь есть начиная с 8-ки. Т.е. минимум лет 6 уже. И в 10-ке была еще улучшена.


> Я сходу могу 10 фсяких фишек назвать, которых ни у кого,
>  кроме как Postgres не встречал.

Назови.


 
Ega23 ©   (2008-11-25 16:39) [136]


> Назови.


1.


query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2
query1 EXCEPT [ALL] query2

UNION effectively appends the result of query2 to the result of query1 (although there is no guarantee that this is the order in which the rows are actually returned). Furthermore, it eliminates duplicate rows from its result, in the same way as DISTINCT, unless UNION ALL is used.

INTERSECT returns all rows that are both in the result of query1 and in the result of query2. Duplicate rows are eliminated unless INTERSECT ALL is used.

EXCEPT returns all rows that are in the result of query1 but not in the result of query2. (This is sometimes called the difference between two queries.) Again, duplicates are eliminated unless EXCEPT ALL is used.



2.
Inheritance is a concept from object-oriented databases. It opens up interesting new possibilities of database design.

Let"s create two tables: A table cities and a table capitals. Naturally, capitals are also cities, so you want some way to show the capitals implicitly when you list all cities. If you"re really clever you might invent some scheme like this:

CREATE TABLE capitals (
 name       text,
 population real,
 altitude   int,    -- (in ft)
 state      char(2)
);

CREATE TABLE non_capitals (
 name       text,
 population real,
 altitude   int     -- (in ft)
);

CREATE VIEW cities AS
 SELECT name, population, altitude FROM capitals
   UNION
 SELECT name, population, altitude FROM non_capitals;
This works OK as far as querying goes, but it gets ugly when you need to update several rows, for one thing.

A better solution is this:

CREATE TABLE cities (
 name       text,
 population real,
 altitude   int     -- (in ft)
);

CREATE TABLE capitals (
 state      char(2)
) INHERITS (cities);

In this case, a row of capitals inherits all columns (name, population, and altitude) from its parent, cities. The type of the column name is text, a native PostgreSQL type for variable length character strings. State capitals have an extra column, state, that shows their state. In PostgreSQL, a table can inherit from zero or more other tables.

For example, the following query finds the names of all cities, including state capitals, that are located at an altitude over 500 feet:

SELECT name, altitude
 FROM cities
 WHERE altitude > 500;
which returns:

  name    | altitude
-----------+----------
Las Vegas |     2174
Mariposa  |     1953
Madison   |      845
(3 rows)

On the other hand, the following query finds all the cities that are not state capitals and are situated at an altitude of 500 feet or higher:

SELECT name, altitude
   FROM ONLY cities
   WHERE altitude > 500;

  name    | altitude
-----------+----------
Las Vegas |     2174
Mariposa  |     1953
(2 rows)

Here the ONLY before cities indicates that the query should be run over only the cities table, and not tables below cities in the inheritance hierarchy. Many of the commands that we have already discussed — SELECT, UPDATE, and DELETE — support this ONLY notation.

Note
Although inheritance is frequently useful, it has not been integrated with unique constraints or foreign keys, which limits its usefulness. See Section 5.8, “Inheritance” for more detail.


 
ANB   (2008-11-25 16:59) [137]


> query1 UNION [ALL] query2
> query1 INTERSECT [ALL] query2
> query1 EXCEPT [ALL] query2

UNION [ALL] - есть в оракле
EXCEPT = MINUS в оракле
INTERSECT - не понял, чего делает

По пункту 2 - не понял, в чем фича то ? Вьюхи и мс скл и оракл создавать умеют.


 
Petr V. Abramov ©   (2008-11-25 17:16) [138]


> Ega23 ©   (25.11.08 16:39) [136]

1. есть, начиная в 7 версии
2. есть, хотя сделано немного по-другому, где-то очевидно лучше, где-то очевидно хуже, улучшают с каждой версией

> it has not been integrated with unique constraints or foreign
> keys

с первичными ключами все хорошо, с foreign пока проблемы

> which limits its usefulness.

= не получилось реализовать, ключи - вещь добровольная, хошь ставь, хошь не ставь.


 
Ega23 ©   (2008-11-25 17:18) [139]


> Вьюхи и мс скл и оракл создавать умеют.


При чём тут вьюхи?


 
ANB   (2008-11-25 17:27) [140]


> Ega23 ©   (25.11.08 17:18) [139]

Ты по русски, на пальцах объясни, чего пункт 2 означает.

И где 10 фичей ? Если только 2 опубликованы ?


 
Ega23 ©   (2008-11-25 18:13) [141]


> Ты по русски, на пальцах объясни, чего пункт 2 означает.


Наследование таблиц. На уровне SQL.


> И где 10 фичей ? Если только 2 опубликованы ?


Система счисления не была озвучена. Так что 10.
На самом деле сейчас не до того. Но когда это дело читал - был сильно впечатлён.


 
Поросенок Винни-Пух ©   (2008-11-25 18:24) [142]

... а в итоге выяснится, что 70% модных фич модного сервера недоступны в доступных клиентских либах.


 
Ega23 ©   (2008-11-25 18:43) [143]


> а в итоге выяснится, что 70% модных фич модного сервера
> недоступны в доступных клиентских либах.


Дело в том, что если бы Oracle поставлялся по той же LGPL или GNU или BSD лицензии, то я бы молчал в тряпочку.


 
pasha_golub ©   (2008-11-25 19:18) [144]


> Поросенок Винни-Пух ©   (25.11.08 18:24) [142]
>
> ... а в итоге выяснится, что 70% модных фич модного сервера
> недоступны в доступных клиентских либах.

А вот над этим есть кому поработать. :)

Какие, например, недоступны?


 
Petr V. Abramov ©   (2008-11-26 00:41) [145]


> Дело в том, что если бы Oracle поставлялся по той же LGPL
> или GNU или BSD лицензии, то я бы молчал в тряпочку.

дело не в том. API клиентской части разжевано с документации, в отличие, от << ну ты сам понял, но не postgres :) >>
то, что ADO-бандо все фичи не поддерживает, не проблема oracle и не проблема postgres. Популярные клиентские библиотеки поддерживают ВСЕ, т.к.  API клиентской части разжевано с документации, в отличие ... :)


 
Ega23 ©   (2008-11-26 09:45) [146]


> что ADO-бандо все фичи не поддерживает


А я ей в силу необходимости пользуюсь, а не ради искусства. Была бы моя воля - я бы на пашин DAC перешёл бы.


 
ANB   (2008-11-26 13:01) [147]


> Дело в том, что если бы Oracle поставлялся по той же LGPL
> или GNU или BSD лицензии, то я бы молчал в тряпочку.

И ты бы полез его дорабатывать ?

Тем более, что :
1. Встроенных возможностей столько, что даже зубры знают только половину в лучшем случае.
2. Если чего не хватает - так же куча возможностей для расширения.

Одно не могу накопать - агрегатную склейку строк, но я ее и в других серверах не видел.


> Наследование таблиц. На уровне SQL.

Прекрасно делается и без доп.фичей в SQL. Ну лишний джойн в запросе воткнуть/убрать. Так он и так будет даже в постгрессе, только неявно.


 
Ega23 ©   (2008-11-26 13:22) [148]


> И ты бы полез его дорабатывать ?


Нет. Но я это дело могу использовать в качестве мощной и бесплатной СУБД к продукту. Очень часто цена лицензий на ПО, используемое в системе (ОС, СУБД, Офис и т.п.) сопоставима (если не больше) цены на собственно твоё ПО.


 
ANB   (2008-11-26 13:36) [149]


> Очень часто цена лицензий на ПО, используемое в системе
> (ОС, СУБД, Офис и т.п.) сопоставима (если не больше) цены
> на собственно твоё ПО.

Оракл XE - официально халявый.
Оракле 10G - минимальная лицензия около 700 долларов, с поддержкой. Ограничений нету - сам за ними следишь, если хочешь лицензионную чистоту.
Покупка лицензии на оракл - проблема покупателей твоего софта. Для изучения и разработки любая версия оракла - бесплатно.


 
pasha_golub ©   (2008-11-26 13:56) [150]


> ANB   (26.11.08 13:01) [147]


> Одно не могу накопать - агрегатную склейку строк, но я ее
> и в других серверах не видел.

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

Хотя, например, в Постгресе можно сделать так

SELECT
...,
ARRAY(somefield FROM sometable)
FROM
...


Как у нас с этим делом в Оракле?


 
ANB   (2008-11-26 14:32) [151]


> Как у нас с этим делом в Оракле?

А пока никак. Тоже ждемс. Возможно, оракл чешет репу, т.к. строки в SQL не длиннее 2000 байт могут быть. Хотя могли бы и ошибку генерить при переполнении.


 
Ega23 ©   (2008-11-26 14:43) [152]


> Как у нас с этим делом в Оракле?


не знаю как в оракле, а в mssql

declare @s varchar(max);
select @s=@s + somefield + ";" from sometable
select s=left(@s, len(@s)-1)


 
ANB   (2008-11-26 15:34) [153]


> не знаю как в оракле, а в mssql
>
> declare @s varchar(max);
> select @s=@s + somefield + ";" from sometable
> select s=left(@s, len(@s)-1)

Не совсем то.

Мне надо что то вроде :

select
 gr_id
,sum(X)
,gr_concat(Y)
from
 T1
group by
 gr_id

Склеить строку на pl/sql я и сам могу.


 
Поросенок Винни-Пух ©   (2008-11-26 15:57) [154]

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

точнее 4000 в sql и 32767 в plsql


 
atruhin ©   (2008-11-26 16:01) [155]

> [153] ANB   (26.11.08 15:34)

А в Firebird всегда это бало без проблемм.


 
ANB   (2008-11-26 16:11) [156]


> точнее 4000 в sql и 32767 в plsql

4000 байт, на XE - до 2000 символов. 4000 - тоже не сильно много.


 
Поросенок Винни-Пух ©   (2008-11-26 16:24) [157]

varchar2(4000) в поле это сколько в байтах?
4000


 
pasha_golub ©   (2008-11-26 16:41) [158]


> ANB   (26.11.08 16:11) [156]


> 4000 байт, на XE - до 2000 символов. 4000 - тоже не сильно
> много.

Опа. Не понятен финт ушами. В Постгресе varchar без модификатора это 2Гб, в той же Delphi TStringField максимально расчитан на 8192 символа. А чего это Оракл пожадничал так?


 
ANB   (2008-11-26 17:16) [159]


> А чего это Оракл пожадничал так?

У оракла - CLOB. Правда, с ним труднее работать.


 
GlFox ©   (2008-11-26 18:12) [160]

> [153] ANB   (26.11.08 15:34)
> Мне надо что то вроде :
>
> select
> gr_id
> ,sum(X)
> ,gr_concat(Y)
> from
> T1
> group by
> gr_id
>
> Склеить строку на pl/sql я и сам могу.

MySQL: GROUP_CONCAT() http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Firebird: LIST() http://firebirdsql.org/rlsnotesh/rlsnotes210.html#rnfb210-list



Страницы: 1 2 3 4 5 вся ветка

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.83 MB
Время: 0.025 c
2-1229501340
charoey_mag
2008-12-17 11:09
2009.02.01
Работа с Unicode


2-1229811012
kritika
2008-12-21 01:10
2009.02.01
очереди, стеки, деревья


15-1227739103
DillerXX
2008-11-27 01:38
2009.02.01
Вопрос к пользовтелям googlemail (gmail)


3-1214285735
Alex7
2008-06-24 09:35
2009.02.01
Что может конструкция IIF ? ( MS SQL)


4-1205143556
dmitry_12_08_74
2008-03-10 13:05
2009.02.01
Как загрузить цветной или полупрозрачный курсор из файла ресурсов