SCHEMA in postgreSQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Koehoorn

Jan Koehoorn

23/02/2008 22:40:00
Quote Anchor link
Even een vraagje voor de postgreSQL kenners hier: is het juist te stellen dat een SCHEMA in postgreSQL fungeert zoals een namespace in veel programmeertalen?
 
PHP hulp

PHP hulp

01/11/2024 01:05:07
 
Frank -

Frank -

23/02/2008 22:43:00
Quote Anchor link
Hmmm, een schema is een verzameling objecten, bv. tabellen, views, functies, sequences, etc. etc. Verschillende schema's kunnen wel weer bv. tabellen hebben met dezelfde naam: status kan zowel in schema tutorials als in schema users voorkomen. Dat zijn wel 2 verschillende dingen!

Zelf vergelijk ik het altijd meer met objecten: Een object users met daarin alle tabellen, views, functies, etc. die bij dit object horen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Jan Koehoorn

Jan Koehoorn

23/02/2008 22:47:00
Quote Anchor link
Tnx Frank. Is er een voorbeeld te geven waarin het voordeel van schema's duidelijk naar voren komt? Ik zie het nu nog alleen maar als een extra laag tussen de database en de tabellen in. Is het puur organisatorisch of zijn er ook praktijkvoorbeelden die zonder schema's niet uitvoerbaar zouden zijn?
 
Frank -

Frank -

23/02/2008 22:58:00
Quote Anchor link
Wanneer je vooral ervaring hebt met eenvoudige databases in MySQL en alleen denkt in tabellen en databases, dan mis je een groot deel van de mogelijkheden met databases/PostgreSQL. Zaken als sequences, triggers, functies en views zijn namelijk eveneens onderdeel van je database, net zoals de reeds genoemde tabellen.

Vooral in complexe databases is het handig om met schema's de verschillende objecten aan te maken (denk bv. aan gebruikers en topics in een forum) met daarin de verschillende onderdelen. Wanneer je dan alle interactie via functies en views laat lopen, dan hoef je nooit meer vanuit PHP het datamodel te kennen om de juiste data op te vragen. De functies en views in de database zorgen er voor dat dit wel goed komt. Je kunt het datamodel gewoon veranderen, zolang de interface niet verandert, hoef je in je scripts niks aan te passen.

Je kunt nog een stapje verder gaan en een aparte API ontwikkelen met daarin uitsluitend functies en views die dan de onderliggende schema's aanspreekt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
API
----
functies die de functies in de onderliggende schema's aanspreken
===
gebruikers + topics
------------  ------------
tabellen      tabellen
functies      functies
views         views
etc.            etc.

De schema's gebruikers en topics sluit je af voor de buitenwereld, niemand (behalve de DBA) mag daar inkomen en niemand kan dus tabellen e.d. rechtstreeks benaderen. Alles loopt via het schema API. Zeer veilig en zeer goed te onderhouden.

Het is geen extra laag tussen database en tabellen, maar zorgt voor overzicht, veiligheid en flexibiliteit.
 
Jan Koehoorn

Jan Koehoorn

23/02/2008 23:09:00
Quote Anchor link
Bedankt Frank, ik ga me er verder in verdiepen. Ik heb postgreSQL 8.3 met pgAdmin 3 lokaal aan de praat en de gewone dingen als connecten en query's uitvoeren lukken wel. Nu nog de postgre-specifieke dingen leren ;-)
 
Frank -

Frank -

23/02/2008 23:12:00
Quote Anchor link
Ik ben bezig om een tut te plaatsen voor het opzetten van een pgSQL-database. 5 minuten, ok?

Het doodgewone INSERT en SELECT gebeuren bespreek ik niet, dat is basiskennis.

Edit: Aftrappen met PostgreSQL
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.