forked from le0pard/postgresql_book
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpostgresql_introduction.tex
43 lines (31 loc) · 4.78 KB
/
postgresql_introduction.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
\chapter{Введение}
\begin{epigraphs}
\qitem{Послушайте~--- и Вы забудете, посмотрите~--- и Вы запомните, сделайте~--- и Вы поймете}{Конфуций}
\end{epigraphs}
Данная книга не дает ответы на все вопросы по работе с PostgreSQL. Главное её задание~--- показать возможности PostgreSQL, методики настройки и масштабируемости этой СУБД. В любом случае, выбор метода решения поставленной задачи остается за разработчиком или администратором СУБД.
\section{Что такое PostgreSQL?}
PostgreSQL (произносится <<Пост-Грес-Кью-Эль>>)~--- свободная объектно-реляционная система управления базами данных (СУБД).
PostgreSQL ведёт свою <<родословную>> от некоммерческой СУБД Postgres, разработанной, как и многие open-source проекты, в Калифорнийском университете в Беркли. К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер, руководитель более раннего проекта Ingres, на тот момент уже приобретённого компанией Computer Associates. Само название <<Postgres>> расшифровывалось как <<Post Ingres>>, соответственно, при создании Postgres были применены многие уже ранее сделанные наработки.
Стоунбрейкер и его студенты разрабатывали новую СУБД в течение восьми лет с 1986 по 1994 год. За этот период в синтаксис были введены процедуры, правила, пользовательские типы и многие другие компоненты. Работа не прошла даром~--- в 1995 году разработка снова разделилась: Стоунбрейкер использовал полученный опыт в создании коммерческой СУБД Illustra, продвигаемой его собственной одноимённой компанией (приобретённой впоследствии компанией Informix), а его студенты разработали новую версию Postgres~--- Postgres95, в которой язык запросов POSTQUEL~--- наследие Ingres~--- был заменен на SQL.
В этот момент разработка Postgres95 была выведена за пределы университета и передана команде энтузиастов. С этого момента СУБД получила имя, под которым она известна и развивается в текущий момент~--- PostgreSQL.
На данный момент, в PostgreSQL имеются следующие ограничения:
\begin{center}
\begin{tabular}{ | l | p{5cm} | }
\hline
Максимальный размер базы данных & Нет ограничений \\
\hline
Максимальный размер таблицы & 32 Тбайт \\
\hline
Максимальный размер записи & 1,6 Тбайт \\
\hline
Максимальный размер поля & 1 Гбайт \\
\hline
Максимум записей в таблице & Нет ограничений \\
\hline
Максимум полей в записи & 250—1600, в зависимости от типов полей \\
\hline
Максимум индексов в таблице & Нет ограничений \\
\hline
\end{tabular}
\end{center}
Согласно \href{http://www.postgresql.org/about/news/363/}{результатам} автоматизированного исследования различного ПО на предмет ошибок, в исходном коде PostgreSQL было найдено 20 проблемных мест на 775000 строк исходного кода (в среднем, одна ошибка на 39000 строк кода). Для сравнения: MySQL~--- 97 проблем, одна ошибка на 4000 строк кода; FreeBSD (целиком)~--- 306 проблем, одна ошибка на 4000 строк кода; Linux (только ядро)~--- 950 проблем, одна ошибка на 10 000 строк кода.