PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Предимствата на PostgreSQL


Общ преглед

Има много системи за управление на релационни бази данни (RDBMS), от които да избирате, ако релационният модел най-добре представя вашите данни. PostgreSQL е една от най-популярните и уважавани релационни бази данни с отворен код в света.

Тази статия ще обхване някои от основните причини, поради които много разработчици избират PostgreSQL за своите нужди за управление на данни. Те варират от наличност на функции и съответствие със стандартите до подкрепа от общността и управление на проекти.



Стилен набор от функции

Една от основните причини да изберете да използвате PostgreSQL е неговият голям списък от функции. PostgreSQL притежава невероятен брой функции, свързани с производителността, сигурността, разширенията за програмиране и конфигурацията наред с други.

Някои от функциите, които PostgreSQL предлага, включват:

  • Поддръжка за писане на функции на база данни с помощта на:
    • SQL
    • Tcl
    • Perl
    • Python
    • Java
    • Луа
    • R
    • черупка
    • Javascript
  • Поддръжка за огромен брой типове данни, включително:
    • Общи примитиви на база данни като числови, низови, булеви и дата и времеви типове:Те се намират в повечето бази данни и имат голяма поддръжка в PostgreSQL.
    • мрежови адреси:PostgreSQL поддържа различни типове, свързани с мрежата, като CIDR адреси, адреси с маски на подмрежа и MAC адреси, както за IPv4, така и за IPv6.
    • геометрични типове:Налични са различни типове, които да ви помогнат да дефинирате двуизмерни обекти. Те включват точки, линии и сегменти, както и пълни форми като кутии, многоъгълници и кръгове.
    • парични типове:money на PostgreSQL тип съхранява валута с фиксирана дробна точност. Типът знае локал и включва автоматично форматиране на изхода.
    • диапазони:Диапазоните ви позволяват да работите естествено с диапазони от стойности, като например диапазони от дата и време за планиране.
    • JSONB:Вградената поддръжка на PostgreSQL за съхранение и работа с JSON обекти може да ви помогне да работите както с релационни, така и с нерелационни данни в една и съща система.
    • hstore:hstore type ви позволява да работите с двойки ключ-стойност в оригинал.
    • Многоизмерни масиви:Масивите са много полезни за съхраняване на стойности от множество части, които нямат голямо значение извън техния специфичен контекст.
  • Възможност да дефинирате свои собствени сложни типове:Дефинирането на вашите собствени типове ви помага да приведете базата си в по-тясно съответствие с начина, по който данните ви са представени във вашите приложения.
  • Търсене в пълен текст:Търсенето в пълен текст ви дава мощни техники за намиране и работа с данни в полу- и неструктуриран текст. Търсенето може да бъде фино настроено, за да отговаря на вашите очаквания за уместност и съвпадение.
  • Стабилни системи за удостоверяване, контрол на достъпа и управление на привилегиите, подходящи за организации от всякакъв размер:PostgreSQL разполага с функционалност за удостоверяване и упълномощаване на зрели потребители, за да определи кой може да използва системата и какво може да вижда или прави всеки потребител.
  • Обвивки на чужди данни:Обвивките на чужди данни правят възможно представянето и достъпа до таблици и данни в отдалечени сървъри.
  • Изгледи и материализирани изгледи:Поддръжката на изгледи и материализирани изгледи позволяват удобен, опростен достъп до данни чрез абстрахиране на оригиналните структури на таблици за информация, която често се иска заедно.
  • Коментари върху обекти на база данни:Възможността за прикачване на коментари към таблици, бази данни, колони и други отделни обекти на база данни ви позволява да документирате решения или подробности за изпълнението.
  • Регистриране с предварителна запис за осигуряване на възстановяване в момент, отказ и поточно репликация:Тези технологии помагат да се гарантира, че вашата база данни остава последователна, дори ако софтуерът се срине, и ви помага да копирате данни между системи за мащабиране и архивиране на данни .
  • Поддръжка за поведение, подобно на NoSQL, като например съхраняване на документи с помощта на JSONB и двойки ключови стойности с hstore:Възможността за използване на множество парадигми на база данни в рамките на една система може да помогне за минимизиране на административните разходи и подобряване на съвместимостта между различните представяния.

Можете да научите повече за функциите, които PostgreSQL поддържа със следните ресурси:

  • Матрица на функциите на PostgreSQL
  • Сравнение на функциите на SQL с други бази данни
  • Сравнителните таблици на базата данни на Уикипедия


Функции на обектно-ориентирана база данни

Един от най-фундаменталните начини, по които PostgreSQL се различава от повечето други релационни бази данни, идва от основния му дизайн.

Повечето релационни бази данни се описват най-добре като Системи за управление на релационни бази данни (RDBMS). RDBMS са софтуер, специално проектиран да обработва релационни бази данни, където данните се съхраняват в таблично-подобни структури с предварително дефинирани колони и типове данни. Данните могат да бъдат запитвани, модифицирани и извличани с помощта на техники, базирани на релационна алгебра, обикновено чрез език за структурирани заявки (SQL).

PostgreSQL, от друга страна, е технически система за управление на обектно-релационни бази данни (ORDBMS). Това означава, че има същите релационни възможности като RDBMS, но освен това има някои обектно-ориентирани функции.

На практика това означава, че PostgreSQL ви позволява да:

  • Дефинирайте свои собствени сложни типове данни
  • Претоварване на функции за работа с различни типове данни за аргументи
  • Дефинирайте релациите за наследяване между таблици

Тези функции са мощни инструменти, които ви помагат да работите с вашите бази данни и данни, като използвате някои от същите техники, с които може да сте запознати, когато програмирате. Повишената гъвкавост ви позволява да моделирате различни типове и връзки в системата на базата данни, вместо външно във вашите програми. Това може да помогне за поддържане на последователност и налагане на планираното поведение по-близо до действителните данни.

За повече информация за това какво предоставя обектно-релационният подход на PostgreSQL, вижте следните ресурси:

  • „О“ в ORDBMS:Наследяване от PostgreSQL
  • Система за управление на обектна релационна база данни
  • Какво означава PostgreSQL да бъде ORDBMS?
  • Каква е разликата между RDBMS и ORDBMS


Съответствие със стандартите на SQL

Друга област, в която PostgreSQL се откроява пред другите системи за релационни бази данни, е нейното придържане към SQL стандартите.

SQL стандартите са разработени от ANSI и ISO групи с цел дефиниране на минимални изисквания за функционалност и оперативна съвместимост за SQL реализации. Въпреки че спецификациите, предоставени от тези органи, имат за цел да дефинират характеристиките, които SQL системите трябва да предоставят, поради сложността и дългата еволюция на езика, стриктното спазване не винаги е възможно. Според документацията на PostgreSQL в момента никоя база данни не отговаря на всички изисквания, посочени в спецификацията.

Като се има предвид това предупреждение, PostgreSQL удовлетворява повече от SQL спецификациите, отколкото други опции. Според тях те отговарят на поне 160 от 179-те основни изисквания, определени от SQL:2016.

Можете да научите повече за SQL съответствието на PostgreSQL с тези ресурси:

  • Сравнение на съответствието на SQL между реализациите
  • Поддържани от PostgreSQL функции
  • Функции, които все още не се поддържат от PostgreSQL


Съответствие с ACID

ACID е инициализъм в компютърните науки, който означава атомност, последователност, изолация и издръжливост. Те представляват основните гаранции, които транзакциите на базата данни трябва да поддържат, за да се избегнат грешки при валидността и да се поддържа целостта на данните.

Съответствието с ACID е основна грижа за релационните бази данни, тъй като представлява типичните очаквания за съхранение и модифициране на силно структурирани данни. Нерелационните бази данни често се опитват да съответстват на собствените си стандарти, често представени от конкурентния инициализъм BASE, който означава основно достъпно, меко състояние и евентуална последователност.

Докато почти всички релационни бази данни се стремят да осигурят съответствие с ACID, PostgreSQL се похвали с ACID-съвместимост в своя двигател от 2001 г. Тъй като PostgreSQL разчита на единична база данни, това означава, че всички транзакции са напълно съвместими с ACID по подразбиране. Тези гаранции се правят без заключвания на база данни, като се използва многоверсионен контрол на паралелност (MVCC). За сравнение, MySQL поддържа само пълно съответствие с ACID, когато се използват техните машини за бази данни InnoDB или NDB, което може да доведе до неочаквана повреда, ако се използват други машини.

За допълнителна информация относно съответствието на ACID и PostgreSQL, вижте тези ресурси:

  • Как Postgres прави транзакциите атомни
  • PostgreSQL Concurrency:изолиране и заключване
  • Руководство за ACID транзакции:Основите, които всеки разработчик на облачни приложения трябва да знае


Разработка и общност с отворен код

PostgreSQL е проект с отворен код, управляван от The PostgreSQL Global Development Group. Той е лицензиран с помощта на The PostgreSQL License, лиценз, признат от Open Source Initiative.

Въпреки че има много други релационни бази данни с отворен код, PostgreSQL се разработва и управлява без корпоративен собственик или търговски партньор. Това помага на сътрудниците да начертаят свой собствен път и да работят върху функции, за които общността се интересува най-много. Професионалните услуги за PostgreSQL се предоставят от компании, които често допринасят за проекта, но не контролират процеса на разработка.

Този фокус върху развитието, насочено към общността, доведе до голямо участие на потребителите на PostgreSQL. Налични са голям брой висококачествени разширения и приложения за подобряване на функционалността на основния PostgreSQL софтуер. Разработеният от общността софтуер може да ви помогне да администрирате вашите PostgreSQL сървъри, да съставяте отчети за бизнес разузнаване, да управлявате нови типове данни и да работите с PostgreSQL от различни езици и платформи за програмиране.



Заключение

PostgreSQL спечели страхотна репутация като мощен, богат на функции избор за релационни данни. Оценявайки стабилността, функционалността и съответствието със стандартите, PostgreSQL поставя отметки във всички правилни квадратчета за много проекти. По същия начин, ако се нуждаете от гъвкавост в начина, по който можете да представяте данни и искате да можете да използвате различни инструменти и езици, PostgreSQL също е добър избор.

PostgreSQL се отличава с това, че предлага отлично внедряване на основни релационни функции, като същевременно не се ограничава до границите на традиционните RDBMS. Въпреки че никоя база данни не може да обслужи всяка нужда, PostgreSQL е отлична опция, която е достатъчно гъвкава, за да отговаря на много случаи на употреба.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете произволен ред за всяка група

  2. Създайте централна таблица с PostgreSQL

  3. Postgres не използва индекс, когато сканирането на индекса е много по-добър вариант

  4. Размер на таблицата на дяловете в PostgreSQL 9.0

  5. Съставният ПЪРВИЧЕН КЛЮЧ налага ограничения NOT NULL върху участващите колони