Re: tablespaces and schemas - Mailing list pgsql-general

From Andrew Rawnsley
Subject Re: tablespaces and schemas
Date
Msg-id 671755B0-BA5F-11D8-B264-000393A47FCC@ravensfield.com
Whole thread Raw
In response to tablespaces and schemas  (Dennis Gearon <gearond@fireserve.net>)
Responses Re: tablespaces and schemas  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: tablespaces and schemas  (John Sidney-Woollett <johnsw@wardbrook.com>)
List pgsql-general
On Jun 9, 2004, at 5:15 PM, Dennis Gearon wrote:

> This post is as much about getting some questions answered as leaving
> the following definitions in the archives for the next person.
>
> After a quick perview of the web, I came up with the following:
>
> tablespaces are a hardware issue, and totally transparent to SQL
> execution. It is for optimization for IO, recovery, and separating
> user and application usage amongst disks even in the same databases.
>

A bit more like database configuration based upon your hardware/design
requirements and availability, but yes, its transparent to the guy
writing the SQL. In Oracle (Sorry to use the 'O' word on the list...),
you specify a tablespace when you create a table (or it uses a default
one), but after that it only matters to the DBA actually running the
installation.

> schemas are a logical issue, and NOT transparent to the SQL. If
> schemas are involved, the SQL needs to know which schema tables are in
> to access them.
>

Yep.

> My questions are:
>    1/ Am I right/

As much as makes no odds, yes.

>    2/ is the use of the '.' character standard across all databases as
> a schema delimiter, i.e. SELECT * FROM
> {schemaname.tablename.columnname;} ?

Yep.

>    3/ Once a user/dba gets down to the actual SQL, and past all the
> bl***ng Oracle Obfuscation(TM), does Oracle do the same thing with
> schemas that Postgres does, i.e. the aforementioned '.' separator?

Schemas are users in Oracle, but the net effect to the SQL author is
the same. 'SELECT * FROM SERVICES.USERS' is the same, just that
'SERVICES' is a user in oracle (although referred to as a schema, and
you have to do a 'CREATE SCHEMA AUTHORIZATION blablabla' to get
anything to work. See your Oracle Obfuscation(TM) documentation, which
of course will tell you nothing without the decoder ring that comes
with a $10,000 service contract), and a schema in Postgres.  Sybase and
DB2 IIRC float in the middle with the terminology, but again, same
effect to the author (the poor sod actually implementing the thing has
to pay attention to all the differences, of course).

>
> I am building an application that I want to work on Postgres, IBM DB2,
> Oracle, MSSQL, et.al.
>

If you keep your SQL generic, its not really that hard to do if you
have/write decent middleware. The temptation is always to cheat and
take advantage of native doodads to help things along.

> TIA, y'all.
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--------------------

Andrew Rawnsley
President
The Ravensfield Digital Resource Group, Ltd.
(740) 587-0114
www.ravensfield.com


pgsql-general by date:

Previous
From: Dennis Gearon
Date:
Subject: tablespaces and schemas
Next
From: Bernard Clement
Date:
Subject: Re: postgres on SuSE 9.1