“The CHECK clause is parsed but ignored by all storage engines.”They say it's best to use a Trigger to work around the problem. Luckily, I have the opportunity for my work to attend a course in Postgres Plus Advanced Server Database Administration.
Included in the course was a certification track. So, since the fourth of March 2013, I can now officially call myself an "EnterpriseDB Certified Postgres Plus 9.0 Associate". Yay!!!
I've made some notes during the course, and this here are some excerpts from them I feel were important enough to share.
Introduction
EnterpriseDB [3] provides a version of PostgreSQL, called Postgres Plus Advanced Server[2], that is very similar to Oracle Database Server in a lot of ways.The EnterpriseDB version requires a license, but you can download the trialversion to use for free for a couple of months. Downloading it is only possible after registering on their website.
In fact, the PostgreSQL Server will attempt to contact your profile info via the internet upon startup, but if there is no internet connection it starts up regardless.
Support for
Postgres Plus 9.0 has support for the following features:- SQL
- PostgreSQL supports most of the major features of de SQL:2011 standard (ISO/IEC 9075:2011 "Database Language SQL").[5]
- schemas
- there is a schema search path per database/per user, by default set to ['$user',public], that indicates in what preference schemas are checked when a tablename is not prefixed with the schema
- savepoints
- make it possible within a transaction to "save" part of the transaction, so the entire transaction need not be rollbacked upon failure, but can be rollbacked to the savepoint.
- write ahead logging
- log first, *then* the database
- vertical table partitioning
- divides different columns of one table across tables. Oracle syntax works, but can allow many more partitions
- horizontal table partitioning
- also called database sharding. Different rows of a table are stored in different tables. It's kind of a view of a couple of tables unioned together.
- tablespaces
- tables on different devices for concurrent io.
- caching
- caching of everything in memory
- materialized views
- a view that is actually stored as a table, which provides the advantage of having indexes and being quicker, and the disadvantage of being possibly out of date
- synonyms
- created aliases for database objects (tables, procedures, etc)
- hierarchical queries
- returns a resultset which is a flattened tree, based on a parent-child relationship defined in a CONNECT BY. It is possible to create queries that work on the node-level by using LEVEL (for example for indentation). ORDER SIBLINGS makes it possible to order all siblings under a common parent as you'd like.
- database links
- database links provide links in the current database to tables in other (remote) databases that otherwise could not be queried.
- optimizer hints
- hints provided to update/insert/delete/select statements for influencing which query plan the optimizer will choose. The APPEND keyword for this is interesting. It forces an insert to be appended at the end of the table, not at the location of a (couple of) vacuumed record(s). This is handy for efficient bulkloading of data.
- MSRs
- send multiple requests of the database all at once, instead of each request individually. Minimizes network round trips.
- functions
- lets you embed functions that perform actions within a regular SELECT query. A common use is with "SELECT pg_reload_conf();" which reloads the configuration.
- inheritance
- define tables as inherited from other tables
Glossary
- DBMS
- DataBase Management System
- fsm
- free space map
- hba
- Host Based Access
- MSR
- Multi-Statement Request
- MVCC
- Multi Version Concurrency Control
- OLAP
- Online analytical processing
- OLTP
- Online transaction processing
- QUEL [4]
- old standard query language existing alongside SQL
- RDBMS
- Relational DBMS
- STONITH
- "Shoot The Other Node In The Head", just to make sure that the master, which went down, stays down after the slave takes over.
- tid
- tuple id, identification of a row in the table (a row in a table is called a tuple in Postgres)
- vm
- visibility map
- WAL
- Write Ahead Logging
- xlog
- transaction log
References
- [1] MySQL manual 5.6 - CREATE TABLE
- http://dev.mysql.com/doc/refman/5.6/en/create-table.html
- [2] PostgreSQL
- http://www.postgresql.org/
- [3] EnterpriseDB/
- http://www.enterprisedb.com/
- [4] QUEL
- http://en.wikipedia.org/wiki/QUEL_query_languages
- [5] Appendix D. SQL Conformance
- http://www.postgresql.org/docs/9.2/static/features.html
No comments:
Post a Comment