PostgreSQLPostgreSQL, bieži saukta arī vienkārši par Postgres, ir bezmaksas atvērtā pirmkoda objektu relāciju datubāzes pārvaldības sistēma (DBVS). Ir implementācijas šādām platformām: Linux, Solaris / OpenSolaris, Win32, Win x86-64, Mac OS X, FreeBSD, QNX 4,25, QNX 6. Standartu atbalsts, iespējas un īpatnības
PostgreSQL pamatā ir SQL valoda, un tā atbalsta daudzas funkcijas un iespējas no SQL2003 standarta (ISO / IEC 9075). PostgreSQL 8.4.0 versijai ir šādi ierobežojumi:
PostgreSQL stiprās puses ir:
VēsturePostgreSQL ir nekomerciālās DBVS Postgres pēctecis, un ir izstrādāta Kalifornijas universitātē Berklijā. Postgres izstrādāšanā, kas sākās 1986.gadā, iesaistījās arī Michael Stonebraker, kas bija daudz agrāka projekta Ingres vadītājs. Nosaukums «Postgres» tiek atšifrēts kā «Post Ingres», attiecīgi, izstrādājot Postgres tika izmantotas jau agrāk izveidotas iestrādnes. Stonebraker un viņa studenti izstrādāja šo jauno datu bāzu vadības sistēmu (DBVS) astoņus gadus (1986-1994.g.). Šajā laikā tā sintaksē tika ieviestas procedūras, noteikumi, lietotāja tipi un daudzas citas komponentes. Darbs nebija veltīgs – 1995.gadā izstrādne tika sadalīta vēlreiz: Stonebraker izmantoja iegūto pieredzi veidojot komerciālu DBVS Illustra, bet viņa studenti izstrādāja jaunu Postgres versiju - Postgres95, kurā vaicājumvaloda POSTQUEL - mantojums no Ingres - tika aizstāta ar SQL. Tajā laikā Postgres95 tika izplatīta ārpus universitātes telpām un nodota entuziastu komandai. No tā laika šai DBVS tika piešķirts vārds, ar kuru mēs to pazīstam arī šobrīd – PostgreSQL. Galvenās iespējasFunkcijasFunkcijas ir kodu bloki, kas darbojas uz servera, nevis klientu datu bāzē. Lai gan tās var būt rakstītas tīrā SQL valodā, papildu loģikas realizēšanai, piemēram, nosacītas pārejas un cilpas, ir nepieciešams iziet ārpus SQL valodas iespējām un tāpēc nepieciešams izmantot dažu valodu paplašinājumus. Funkcijas var rakstīt, izmantojot vienu no šādām valodām:
PostgreSQL ļauj izmantot funkciju, kas atgriež ierakstu kopu, kas pēc tam var tikt izmantota tādā pašā veidā, kā parasta pieprasījuma rezultāti. Funkcijas var izpildīt gan ar tās radītāja privilēģijām, gan arī ar pašreizējā lietotāja tiesībām. TrigeriTrigeri tiek definēti kā funkcijas, kas tiek iniciētas ar DBL operācijām. Piemēram, INSERT darbība var palaist trigeri, kurš pārbauda pievienotā ieraksta atbilstību noteiktiem nosacījumiem. Rakstot funkcijas var tikt izmantotas dažādas programmēšanas valodas (sk. iepriekš). Trigeri ir saistīts ar tabulām. Daudzi trigeri tiek izpildīti alfabētiskā secībā. NoteikumiNoteikumu mehānisms, ir mehānisms, kas tiek izmantots ne tikai lietotāju apstrādei BDL operācijās, bet arī atlases darbībās. Galvenā atšķirība no trigeru mehānisma ir tā, ka noteikumi nostrādā vaicājumu analizēšanas stadijā, pirms izvēlētās optimālās plāna izpildes un īstenošanas procesa. IndeksiPostgreSQL ir atbalsts šāda veida indeksiem: B-tree, hash, R-koks, GIST, GIN. Ja nepieciešams, ir iespējams izveidot jauna veida indeksus. PostgreSQL indeksiem ir šādas īpašības:
Daudzversiju atbalstsPostgreSQL atbalsta vienlaicīgu vairāku lietotāju datubāzes modifikāciju, izmantojot Multiversion Concurrency Control mehānismu. Pateicoties tam, tas atbilst ACID prasībām, un praktiski novērš nepieciešamību bloķēt datubāzes lasīšanas iespējas. Datu tipiPostgreSQL atbalsta ļoti daudzus iebūvētos datu tipus:
Bez tam, lietotājs var pats radīt jaunus tipus un programmēt tam indeksēšanas mehānismu ar GIST palīdzību. Lietotāju objektiPostgreSQL var tikt papildināts lietotāja vajadzībām gandrīz jebkurā aspektā. Ir iespējams pievienot savu:
PārmantojamībaTabulas var pārmantot citu tabulu īpašības un laukus. Turklāt dati, kas pievienoti radot jauno tabulu, automātiski piedalīsies (ja nav norādīts citādi) vaicājumos. Šī funkcija ir pašreiz nav pilnībā pabeigta. Tomēr tā ir pieejama praktiskai izmantošanai. Citas iespējas
UzticamībaSaskaņā ar dažādu automatizētu programmatūru testiem uz kļūdu rašanos PostgreSQL pirmkodā konstatēja 20 problemātiskās vietas uz 775 000 koda rindām (vidēji viena kļūda uz 39 000 koda rindiņām). Salīdzinājumam: MySQL - 97 problemātiskās vietas, viena kļūda uz 4000 koda rindiņām, FreeBSD - 306 problēmas, viena kļūda uz 4000 koda rindiņām, Linux (kodols) - 950 problēmas, viena kļūda uz 10 000 koda rindiņām. PaplašināšanaPamatojoties uz PostgreSQL datu bāzi, EnterpriseDB kompānija izveidoja jaudīgākas šīs datu bāzu vadības sistēmas versijas, kurus par maksu var izmantot komerciālām vajadzībām - Postgres Plus un Postgres Plus Advanced Server. Komplektā tika iekļauts arī komplekts izstrādātājiem:
Turpmākā attīstība9.0 .* versijai plānots datubāzes vadības sistēmā ieviest šādas funkcijas:
Piezīmes
|