WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Что такое PostgreSQL ?

Что такое PostgreSQL ?

PostgreSQL - это свободно распространяемая объектно-реляционная система

управления базами данных (ORDBMS), наиболее развитая из открытых СУБД в мире и

являющаяся реальной альтернативой коммерческим базам данных.

PostgreSQL произносится как post-gress-Q-L (можно скачать mp3 файл postgresql.mp3), в

разговоре часто употребляется postgres (пост-гресс). Также, употребляется сокращение pgsql (пэ-жэ-эс-ку-эль).

Адрес этой статьи: http://www.sai.msu.su/~megera/postgres/talks/what_is_postgresql.html История развития PostgreSQL Краткую историю PostgreSQL можно прочитать в документации, распространяемой с дистрибутивом или на сайте. Также, есть перевод на русский язык. Из нее следует, что современный проект PostgreSQL ведет происхождение из проекта POSTGRES, который разрабатывался под руководством Майкла Стоунбрейкера (Michael Stonebraker), профессора Калифорнийского университета в Беркли (UCB).

Мне захотелось несколько подробнее показать взаимосвязи родословных баз данных, чтобы лучше понять место PostgreSQL среди основных игроков современного рынка баз данных.

Я попытался графически ( большая версия картинки откроется в новом окне) отобразить все наиболее заметные RDBMS и связи между ними и приблизительно привел даты их создания и конца. Пересечение объектов означает поглощение, при этом поглощаемый объект более бледен и не окантован. Знак доллара означает, что база данных является коммерческой. При этом, я основывался на информации, доступной в интернете, в частности в Wikipedia, в научных статьях, которые я читал и комментариях непосредственных пользователей БД, которые я получил после публикации этой картинки в интернете.

Надо сказать, что несмотря на то, что вся история реляционных баз данных насчитывает менее десятков лет, многие факты из истории создания трактуются по-разному, даты не согласуются, а сами участники событий зачастую просто вольно трактуют прошлое.Здесь надо принимать во внимание тот факт, что базы данных - это большой бизнес, в котором развитие одних БД часто связано с концом других. Кроме того, БД в то время были предметом научных исследований, поэтому приоритетность работ является не последним аргументом при написании воспоминаний и интервью. Наверное, учитывая такую запутанность, премия ACM Software System Award #6 была присуждена одновременно двум соперничающим группам исследователей из IBM за работу над "System R" и Беркли - за INGRES, хотя Стоунбрейкер получил награду от ACM SIGMOD (сейчас это премия названа в честь Теда Кодда - автора реляционной теории баз данных) #1 в 1992 г., а Грей (James Gray, Microsoft) - #2 в 1993 году.

Итак, как следует из рисунка, видно две ветви развития баз данных - одна следует из "System R", которая разрабатывалась в IBM в начале 70-х, и другая из проекта "INGRES", которым руководил Стоунбрейкер приблизительно в тоже время. Эти два проекта начались как необходимость практического использования реляционной модели баз данных, разработанной Тедом Коддом (Ted Codd) из IBM в 1969,1970 годах. Надо помнить, что в то время имелось две альтернативные модели баз данных - сетевая и иерархическая, причем за ними стояли мощные силы - CODASYL Data Base Task Group (сетевая) и сама IBM с ее базой IMS (Information Management System с иерархической моделью данных). Немного в стороне стоит "Oracle", взлет которой во многом связан с из Что такое PostgreSQL ?

коммерческим талантом Эллисона быть в нужном месте и в нужное время, как сказал Стоунбрейкер в своем интервью, хотя она вместе с IBM сыграла большую роль в создании и продвижении SQL.

"System R" сыграла большую роль в развитии реляционных баз данных, создании языка SQL (изначально SEQUEL, но из-за проблем с уже существующей торговой маркой пришлось выкинуть все гласные буквы). Из "System R" развилась SQL/DS и DB2. На самом деле, в IBM было еще несколько проектов, но они были чисто внутренними. Подробнее об этой ветви можно прочитать в весьма поучительном документе "The 1995 SQL Reunion: People, Projects, and Politics", также доступен русский перевод.

INGRES (или Ingres89), в отличие от "System R", вполне в духе Беркли развивалась как открытая база данных, коды которой распространялись на лентах практически бесплатно (оплачивались почтовые расходы и стоимость ленты). К 1980 году было распространено порядка 1000 копий.

Название расшифровывается как "INteractive Graphics REtrieval System" и совершенно случайно связано с французским художником Jean Auguste Dominique Ingres. Отличительной особенностью этой системы являлось то, что она разрабатывалась для операционной системы UNIX, которая работала на распространенных тогда PDP 11, что и предопределило ее популярность, в то время как "System R" работала только на больших и дорогих mainframe. Был разработан язык запросов QUEL, который, как писал Стоунбрейкер, похож на SEQUEL в том отношении, что программист свободен от знания о структуре данных и алгоритмах, что способствует значительной степени независимости от данных. Доступность INGRES и очень либеральная лицензия BSD, а также творческая деятельность, способствовали появлению большого количества реляционных баз данных, как показано на рисунке.

Стоунбрейкер лично способствовал их появлению, так он конце 70-х он организовал компанию Ingres Corporation (как он сам объясняет, ему пришлось на это пойти, так как Аризонский университет, потребовал поддержки), которая выпустила коммерческую версию Ingres, в 1994 году она была куплена CA (Computer Associates) и которая в 2004 году стала открытой как Ingres r3.

"NonStop SQL" компании Tandem Computers являлась модифицированной версией Ingres, которая эффективно работала на параллельных компьютерах и с распределенными данными. Она умела выполнять запросы параллельно и масштабировалась почти линейно с количеством процессоров.

Ее авторами были выпускники из Беркли. Впоследствии, Tandem Computers была куплена компанией Compaq (2000 г.), а затем компанией HP.

Компания Sybase тоже была организована человеком из Беркли (Роберт Эпстейн) и на основе Ingres. Известно, что база данных компании Мaйкрософт "SQL Server" - это не что иное как база данных Sybase, которая была лицензирована для Windows NT. С 1993 года пути Sybase и Mirosoft разошлись и уже в 1995 году Sybase переименовывает свою базу данных в ASE (Adaptive Server Enterprise), а Microsoft стала продолжать развивать MS SQL.

Informix тоже возник из Ingres, но на это раз людьми не из Беркли, хотя Стоунбрейкер все-таки поработал в ней CEO после того, как Informix купила в 1995 году компанию Ilustra, чтобы прибавить себе объектно-реляционности и расширяемости (DataBlade), которую организовал все тот же Майкл Стоунбрейкер как результат коммерциализации Postgres в 1992 году. В 2001 году она была куплена IBM, которая приобретала немалое количество пользователей Informix и технологию.

Таким образом, DB2 также приобрела немного объектно-реляционности.

Проект Postgres возник как результат осмысления ошибок Ingres и желания преодолеть ограниченность типов данных, за счет возможности определения новых типов данных. Работа над проектом началась в 1985 и в период 1985-1988 было опубликовано несколько статей, описывающих модель данных, язык запросов POSTQUEL, и хранилище Postgres. POSTGRES иногда еще относят к так называемым постреляционным СУБД. Ограниченность реляционной модели всегда являлась предметом критики, хотя все понимали, что это является следствием ее простоты и ее заслугой. Однако, проникновение компьютерных технологий во все сферы жизни требовали новых приложений, а от баз данных - поддержки новых типов данных и возможностей, например, поддержка наследования, создание и управление сложными объектами.

Еще при проектировании оригинальной версии POSTGRES основное внимание было уделено расширяемости и объектно-ориентированным возможностям. Уже тогда было ясна необходимость расширения функциональности DMBS от управления данными (data management) в сторону управления объектами (object management) и знаниями (knowledge management). При этом объектная функциональность позволит эффективно хранить и манипулировать нетрадиционными типами данных, а управление знаниями позволяет хранить и обеспечивать выполнения коллекции правил (rules), которые несут семантику приложения. Стоунбрейкер так и определил основную задачу POSTGRES как "обеспечить поддержку приложений, которые требуют службы управления данными, объектами и знаниями".

из Что такое PostgreSQL ?

Одним из фундаментальным понятием POSTGRES является class. Class есть именованная коллекция экземпляров (instances) объектов. Каждый экземпляр имеет коллекцию именованных атрибутов и каждый атрибут имеет определенный тип. Классы могут быть трех типов - это основной класс, чьи экземпляры хранятся в базе данных, виртуальный (view), чьи экземпляры материализуются только при запросе (они поддерживаются системой управления правилами), и может быть версией другого Первая версия была выпущена в 1989 году, затем последовало еще несколько переписываний системы правил (rule system). Отметим, что коды Ingres и Postgres не имели ничего общего ! В POSTGRES была реализована поддержка таких типов как многомерные массивы, что уже шло в противоречие с реляционной моделью, timetravel - хранение версионности объектов (впоследствии, в версии 6.3 этот тип был удален, так как его поддержка требовала больших усилий, а версионность могла быть реализована на стороне приложения с помощью триггеров). В 1992 году была образована компания Illustra, а сам проект был закрыт в 1993 году выпуcком версии 4.2.

Однако, несмотря на официальное закрытие проекта, открытый код и BSD лицензия сподвигли выпускников Беркли Andrew Yu и Jolly Chen в 1994 году взяться за его дальнейшее развитие. В 1995 году они заменили язык запросов POSTQUEL на общепринятый SQL, проект получил название Postgres95, изменилась нумерация версий, был создан веб сайт проекта и появились много новых пользователей (среди которых был и автор).

К 1996 году стало ясно, что название "Postgres95" не выдержит испытанием временем и было выбрано новое имя - "PostgreSQL", которое отражает связь с оригинальным проектом POSTGRES и приобретением SQL. Также, вернули старую нумерацию версий, таким образом новая версия стартовала как 6.0. В 1997 был предложен слон в качестве логотипа, сохранилось письмо в архивах рассылки -hackers за 3 марта 1997 года и последующая дискуссия. Слон был предложен Дэвидом Янгом в честь романа Агаты Кристи "Elephants can remember" (Слоны могут вспоминать). До этого, логотипом был бегущий леопард (ягуар). Проект стал большой и управление на себя взяла небольшая вначале группа инициативных пользователей и разработчиков, которая и получила название PGDG (PostgreSQL Global Development Group). Дальнейшее развитие проекта полностью документировано в документации и отражено в архивах списка рассылки -hackers.

На сегодняшний день выпущена версия PostgreSQL v8 (19 января 2005 года), которая является значительным событием в мире баз данных, так как количество новых возможностей добавленных в этой версии, позволяет говорить о возникновении интереса крупного бизнеса как в использовании, так и его продвижении. Так, крупнейшая компания в мире, Fujitsu поддержала работы над версией 8, выпустила коммерческий модуль Extended Storage Management. Либеральная BSD-лицензия позволяет коммерческим компаниям выпускать свои версии PostgreSQL под своим именем и осуществлять коммерческую поддержку. Например, компания Pervasive объявила о выпуске Pervasive Postgres.

PostgreSQL поддерживается на всех современных Unix системах (34 платформы), включая наиболее распространенные, такие как Linux, FreeBSD, NetBSD, OpenBSD, SunOS, Solaris, DUX, а также под Mac OS X. Начиная с версии 8.X PostgreSQL работает в "native" режиме под MS Windows NT, Win2000, WinXP, Win2003. Известно, что есть успешные попытки работать с PostgreSQL под Novell PostgreSQL неоднократно признавалась базой года, например, Linux New Media AWARD 2004, Editors' Choice Awards, 2004 Editors' Choice Awards.

PostgreSQL используется как полигон для исследований нового типа баз данных, ориентированных на работу с потоками данных - это проект TelegraphCQ, стартовавший в 2002 году в Беркли после успешного проекта Telegraph (название главной улицы в Беркли). Интересно, что компания Streambase, которая была основана Майком Стоунбрейкером в 2003 году (изначально "Grassy Brook") для коммерческого продвижения этого нового поколения баз данных, никаким образом не ассоциируется с проектом Беркли.

Основные возможности и функциональность Полный список всех возможностей предоставляемых PostgreSQL и подробное описание можно найти в объемной документации (1300 страниц).

Надежность PostgreSQL является проверенным и доказанным фактом и обеспечивается из Что такое PostgreSQL ?

полное соответствие принципам ACID - атомарность, непротиворечивость, многоверсионность (Multiversion Concurrency Control,MVCC) используется для поддержания согласованности данных в конкурентных условиях, в то время как в традиционных базах данных используются блокировки. MVCC означает, что каждая транзакция видит копию данных (версию базы данных) на время начала транзакции, несмотря на то, что состояние базы могло уже измениться. Это защищает транзакцию от несогласованных изменений данных, которые могли быть вызваны (другой) конкурентной транзакцией, и обеспечивает изоляцию транзакций. Основной выигрыш от использования MVCC по сравнению с блокировкой заключается в том, что блокировка, которую ставит MVCC для чтения не конфликтует с блокировкой на запись, и поэтому чтение никогда не блокирует запись и наоборот. Конкурентные наличие Write Ahead Logging (WAL) - общепринятый механизм протоколирования всех транзакций, что позволяет восстановить систему после возможных сбоев.

Основная идея WAL состоит в том, что все изменения должны записываться в файлы на диск только после того, как эти записи журнала, описывающие эти изменения будут и гарантировано записаны на диск. Это позволяет не сбрасывать страницы что сможем всегда восстановить базу данных используя журнал транзакций.

Point in Time Recovery (PITR) - возможность восстановления базы данных Репликация также повышает надежность PostgreSQL. Существует несколько систем репликации, например, Slony (тестируется версия 1.1), который является свободным и самым используемым решением, поддерживает master-slaves репликацию.

Ожидается, что Slony-II будет поддерживать multi-master режим.

Целостность данных является сердцем PostgreSQL. Помимо MVCC, PostgreSQL поддерживает целостность данных на уровне схемы - это внешние ключи (foreign Модель развития PostgreSQL, которая абсолютно прозрачна для любого, так как все планы, проблемы и приоритеты открыто обсуждаются. Пользователи и разработчики находятся в постоянном диалоге через мэйлинг листы. Все предложения, патчи проходят тщательное тестирование до принятия их в программное дерево. Большое количество бета-тестеров способствует тестированию Открытость кодов PostgreSQL означает их абсолютную доступность для любого, а либеральная BSD лицензия не накладывает никаких ограничений на использование Производительность PostgreSQL основывается на использовании индексов, интеллектуальном планировщике запросов, тонкой системы блокировок, системе управления буферами памяти и кэширования, превосходной масштабируемости при из Что такое PostgreSQL ?

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

Блокировка поддерживается на уровне таблиц и записей. На нижнем уровне, блокировка для общих ресурсов оптимизирована под конкретную ОС и архитектуру.

Управление буферами и кэширование используют сложные алгоритмы для поддержания эффективности использования выделенных ресурсов памяти.

Tablespaces (табличные пространства) для управления хранения данных на уровне объектов, таких как базы данных, схемы, таблицы и индексы. Это позволяет гибко использовать дисковое пространство и повышает надежность, производительность, а Масштабируемость основывается на описанных выше возможностях. Низкая требовательность PostgreSQL к ресурсам и гибкая система блокировок обеспечивают его шкалирование, в то время как индексы и управление буферами обеспечивают Расширяемость PostgreSQL означает, что пользователь может настраивать систему путем определения новых функций, агрегатов, типов,языков, индексов и операторов.

Объектно-ориентированность PostgreSQL позволяет перенести логику приложения на уровень базы данных, что сильно упрощает разработку клиентов, так как вся бизнес логика находится в базе данных. Функции в PostgreSQL однозначно определяются названием, На рисунке приведена ER диаграмма системного каталога PostgreSQL, в котором заложены все сведения об объектах системы, операторах и методах доступа к ним. При инициализации PostgreSQL кластера (команда initdb) создаются две базы данных - template и template1, которые содержат предопределенный по умолчанию набор функциональностей.

Любая другая база данных наследует template1, таким образом, часто используемые объекты и методы можно добавить в системный каталог template1.

из Что такое PostgreSQL ?

PostgreSQL предоставляет командный интерфейс для работы с системным каталогом, с помощью которого можно не только получать информацию об объектах системы, но и создавать новые. Например, создавать базы данных с помощью CREATE DATABASE, новый домен - CREATE DOMAIN, оператор - CREATE OPERATOR, тип данных - CREATE TYPE.

Для создания нового типа данных и индексных методов доступа достаточно:

Написать функции ввода/вывода и зарегистрировать их в системном каталоге с Написать функции сравнения и зарегистрировать их в системном каталоге с Создать оператор по умолчанию, который будет использоваться для создания Описанный сценарий использует существующих вид индекса. Для создания новых индексов Одной из примечательных особенностью PostgreSQL является обобщенное поисковое дерево или GiST (домашняя страница проекта), которое дает возможность специалистам в конкретной области знаний создавать специализированные типы данных и обеспечивает индексный доступ к ним не будучи экспертами в области баз данных. Аналогом GiST является технология DataBlade, которой сейчас владеет IBM (см. историческую справку выше). Идея GiST была придумана профессором Беркли Джозефом Хеллерстейном(Joseph M.

Hellerstein) и опубликована в статье Generalized Search Trees for Database Systems.

Оригинальная версия GiST была разработана в Беркли как патч к POSTGRES и позднее была инкорпорирована в PostgreSQL. Позже, в 2001 году код был сильно модифицирован для поддержки ключей переменной длины, много-атрибутных индексов и безопасной работы с NULL, также были исправлено несколько ошибок. К настоящему времени написано довольно много интересных расширений на основе GiST, в том числе:

из Что такое PostgreSQL ?

Дистрибутив PostgreSQL в поддиректории contrib/ содержит большое количество (около 80) так называемых контриб-модулей, реализующих разнообразную дополнительную функциональность, такую как, полнотекстовый поиск, работа с xml, функции математической статистики, поиск с ошибками, криптографические модули и т.д. Также, есть утилиты, облегчающие миграцию с mysql, oracle, для административных работ.

Поддержка SQL, кроме основных возможностей, присущих любой SQL базе данных, Схемы, которые обеспечивают пространство имен на уровне SQL. Схемы содержат таблицы, в них можно определять типы данных, функции и операторы. Используя полное имя объекта можно одновременно работать с несколькими схемами. Схемы позволяют организовать базы данных совокупность нескольких логических частей, каждая их которых имеет свою политику доступа, типы данных. Для приложений, которые создают новые объекты в базе данных удобно и безопасно создавать отдельную схему (и включать ее в SEARCH_PATH) с тем, чтобы избежать возможной Subqueries - подзапросы (subselects), полная поддержка SQL92. Подзапросы делают Rules - правила, согласно которым модифицируется исходный запрос. Главное исполнением запроса, а триггер - это реакция системы на изменение данных, т.е.

триггер запускается в процессе исполнения запроса для каждой измененной записи (PER ROW). Правила используются для указания системе, какие действия надо Views - представления, виртуальные таблицы. Реальных экземпляров этих таблиц не существуют, они материализуются только при запросе. Одним из основных предназначений 'view' является разделение прав доступа к родительским таблицам и к 'view, а также обеспечение постоянства пользовательского интерфейса при изменении родительских таблиц. Обновление 'view' (материализация) возможно в Cursors - курсоры, позволяют уменьшить трафик между клиентом и сервером, а также память на клиенте, если требуется получить не весь результат запроса, а Table Inheritance - наследование таблиц, позволяющее создавать объекты, которые наследуют структуру родительского объекта и добавлять свои специфические атрибуты. При этом наследуются значения атрибутов по умолчанию (DEFAULTS) и ограничение целостности (CONSTRAINTS). Поиск по родительской таблице автоматически включает поиск по дочерним объектам, при этом сохраняется возможность поиска только по ней (only). Наследование можно использовать для Prepared Statements (преподготовленные запросы) - это объекты, живущие на стороне сервера, которые представляют собой оригинальный запрос после команды PREPARE, который уже прошел стадии разбора запроса (parser), модификации запроса (rewriting rules) и создания плана выполнения запроса (planner), в результате чего, можно использовать команду EXECUTE, которая уже не требует Stored Procedures - серверные (хранимые) процедуры позволяют реализовывать бизнес логику приложения на стороне сервера. Кроме того, они позволяют сильно Savepoints(nested transactions) - в отличие от "плоских транзакций", которые не имеют промежуточных точек фиксации, использование savepoints позволяет отменять работу части транзакции, например вследствии ошибочно введенной команды, без влияния на оставшуюся часть транзакции. Это бывает очень полезно Права доступа к объектам системы на основе системы привилегий. Владелец объекта или суперюзер может как разрешать доступ (GRANT), так и отменять (REVOKE).

Система обмена сообщениями между процессами - LISTEN и NOTIFY позволяют из Что такое PostgreSQL ?

организовывать событийную модель взаимодействия между клиентом и сервером (клиенту передается название события, назначенное командой notify и PID Триггеры позволяют управлять реакцией системы на изменение данных (INSERT,UPDATE,DELETE), как перед самой операцией (BEFORE), так и после (AFTER). Во время выполнения триггера доступны специальные переменные NEW Cluster table - упорядочивание записей таблицы на диске согласно индексу, что иногда за счет уменьшения доступа к диску ускоряет выполнение запроса.

Богатый набор типов данных PostgreSQL включает:

Numeric тип поддерживает произвольную точность, очень востребованную в Большие объекты (Large Objects) позволяют хранить в базе данных бинарные Геометрические типы (point, line, circle,polygon, box,...) позволяют работать с ГИС (GIS) типы в PostgreSQL являются доказательством расширяемости PostgreSQL и позволяют эффективно работать с трехмерными данными. Подробности можно найти Сетевые типы (Network types) поддерживают типы данных inet для IPV4, IPV6, а Композитные типы (composite types) объединяют один или несколько элементарных типов и позволяют пользователям манипулировать со сложными Временные типы (timestamp, interval, date, time) реализованы с очень большой Псевдотипы serial и bigserial позволяют организовать упорядоченную последовательность целых чисел (AUTO_INCREMENT у некоторых СУБД).

PostgreSQL имеет очень богатый набор встроенных функций и операторов для работы с данными, полный список которых можно посмотреть в документации.

Поддержка 25 различных наборов символов (charsets), включая ASCII, LATIN, WIN, KOI8 и UNICODE, а также поддержка locale, что позволяет корректно работать с данными на Поддержка NLS(Native Language Support) - документация, сообщения об ошибках доступны на различных языках, включая японский, немецкий, итальянский, французский, русский, испанский, португальский, словенский, словацкий и несколько диалектов китайского Интерфейсы в PostgreSQL реализованы для доступа к базе данных из ряда языков (C,C++,C#,python,perl,ruby,php,Lisp и другие) и методов доступа к данным (JDBC, ODBC).

Процедурные языки позволяют пользователям разрабатывать свои функции на стороне сервера, тем самым переносить логику приложения на сторону базы данных, используя языки программирования, отличные от встроенных SQL и C. К настоящему времени поддерживаются (включены в стандартный дистрибутив) PL/pgSQL, pl/Tcl, Pl/Perl и pl/Python. Кроме них, существует поддержка PHP, Java, Ruby, R, shell.

Простота использования всегда являлась важным фактором для разработчиков.

Утилита psql (входит в дистрибутив) предоставляет удобный интерфейс для работы с базой данных, содержит краткий справочник по SQL, облегчает ввод команд (используя стрелки для повтора и табулятор для расширения), поддерживает историю и буфер запросов, а также позволяет работать как в интерактивном режиме, так и потоковом режиме.

phpPgAdmin (лицензия GPL) представляет возможность с помощью веб браузера администрировать PostgreSQL кластер.

pgAdmin III (GNU Artistic license) предоставляет удобный интерфейс для работы с базами данных PostgreSQL и работает под Linux, FreeBSD и Windows 2000/XP.

из Что такое PostgreSQL ?

PgEdit - программная среда для разработки приложений и SQL-редактор, доступна для Безопасность данных также является важнейшим аспектом любой СУБД. В PostgreSQL она обеспечивается 4-мя уровнями безопасности:

PostgreSQL нельзя запустить под привилегированным пользователем - системный SSL,SSH шифрование трафика между клиентом и сервером - сетевой контекст сложная система аутентификации на уровне хоста или IP адреса/подсети. Система аутентификации поддерживает пароли, шифрованные пароли, Kerberos, IDENT и прочие системы, которые могут подключаться используя механизм подключаемых Детализированная система прав доступа ко всем объектам базы данных, которая совместно со схемой, обеспечивающая изоляцию названий объектов для каждого пользователя, PostgreSQL предоставляет богатую и гибкую инфраструктуру.

Некоторые пределы PostgreSQL Максимальное количество атрибутов в таблице 250 - 1600 в зависимости от типа атрибута Максимальное количество индексов на таблицу Unlimited Сводная таблица основных реляционных баз данных За основу взяты данные из Wikipedia из Что такое PostgreSQL ?

1 - для поддержки транзакций и ссылочной целостности требуется InnoDB (не является 3 - Materialized view (обновляемые представления) могут быть эмулированы на PL/pgSQL 4 - только в MySQL 5.0, которая является экспериментальной версией Полный список новых возможностей приведен в большом списке TODO, который уже много лет поддерживает Брюс Момжан (Bruce Momjian), однако приоритеты для версии 8.1 еще не определены, более того, пока не определена продолжительность цикла разработки. Пока можно достаточно уверенно утверждать, что в 8.1 версии, помимо исправлений ошибок и улучшения существующей функциональности или приведение синтаксиса к стандарту SQL, будут:

интегрирование autovacuum в серверный процесс поддержка IN,OUT,INOUT параметров для pl/pgsql (CVS) увеличение предела максимального количества аргументов у функции (100 по умолчанию) Оптимизация MIN,MAX за счет использования индексов (CVS) Также, недавно проходило обсуждение о возможных планах о поддержке table partitioning, что сильно увеличивает производительность базы данных при работе с большими таблицами.

Вышла версия 8.0.2, в которой, помимо исправления ошибок и изменения версии библиотеки libpq (ВНИМАНИЕ ! Все клиентские приложения, которые используют libpq, требуется пересобрать, например DBD::Pg), алгоритм кэширования страниц "ARC", которым владеет IBM, был заменен на другой, "патентно-чистый" алгоритм "2Q".

Поскольку история с заменой алгоритма "ARC" в PostgreSQL вызвала большой интерес и обсуждение в сети (а она связана с очень "горячей" темой выдачи и использования патентов на программное обеспечение), я остановлюсь подробнее на описании механизма кэширования (buffer management) в PostgreSQL. Я использовал архив обсуждений, оригинальные работы и статью Элейн Мустэйн (A. Elein Mustain) The Saga of the ARC Algorithm and Patent.

Управление буферами в PostgreSQL Кэширование страниц, или сохранение прочитанных с диска страниц в памяти, очень важно для эффективной работы любой СУБД, так как времена доступа к диску и памяти отличаются на многие порядки. В идеале, мы хотим, чтобы все страницы, к которым происходит обращение, попадали в память, с тем, чтобы последующее ее использование не требовало обращения к диску. Однако, так как количество доступной памяти ограниченно, то возникает ситуация, когда требуется принимать решение, какую страницу надо освободить (заместить) для того, чтобы поместить в кэш новую страницу. Практически все коммерческие системы используют ту или иную вариацию LRU (Least Recently Used) алгоритма, в котором высвобождается та страница, к которой дольше всего не обращались. В чистом виде этот алгоритм не очень хорош для использования в СУБД в силу большой разнообразности последовательности запросов, например, не учитывает частоту обращения к странице, не защищен от "cache flooding", когда всего одно единичное последовательное чтение большого количества страниц (sequential scan) может заполнить кэш страницами, к которым может не быть больше обращения, т.е., к полной потере эффективности кэширования. Иногда, используют термин "scan-resistant", когда говорят, что хороший алгоритм должет быть устойчив по отношению к "cache flooding".

0 из Что такое PostgreSQL ?

PostgreSQL использовал разновидность этого алгоритма, известную как LRU/K, реализованную Томом Лайном (Tom Lane). В этом алгоритме используется история K-последних обращений к странице (именно последних, что позволяет этому алгоритму адаптироваться к изменениям шаблона запросов, в отличие от LFU алгоритма), которая позволяет отличить популярные страницы от давно не используемых. Для этого строится упорядоченная очередь (priority queue) указателей на страницы в кэше на основе времени обращения к странице по правилу: если у страницы P K-тое обращение (предпоследнее, для наиболее важного случая K=2, LRU/2 ) является более свежим чем у P2, то P1 будет замещено после P2. Классический LRU алгоритм можно рассматривать как LRU/1, так как он использовал информацию только об одном (последнем) обращении к странице. Важным является не то, что произошло единичное обращение к странице, а то, насколько эта страница была популярна в течение некоторого времени. Однако, этот алгоритм требовал нетривиальной настройки и время на построение очереди растет логарифмически в зависимости от размера буфера.

ARC (Adaptive Replacement Cache) алгоритм был привлекателен тем, что он учитывал не только как часто страница была использована, но и насколько недавно это происходило и не сильно "нагружал" процессор, как это происходило с LRU/K алгоритмом. Он динамически поддерживает баланс между часто используемыми и недавно используемыми страницами. Этот алгоритм был реализован Яном Виком (Jan Wieck) для версии 7.5 (впоследствии 8.0), который впоследствии был несколько улучшен после статьи, описывающей CAR (Clock with Adaptive Replacement) алгоритм.

Однако, незадолго (за два дня) до выхода PostgreSQL 8.0 было обнаружено (см. постинг Нейла Конвея (Neil Conway) и последующее обсуждение), что IBM подала заявку на алгоритм ARC еще в 2002 году. Так как было уже поздно что-либо менять было решено выпустить 8.0 версию как есть, а потом заняться решением проблемы. Несмотря на то, что IBM еще не получила патент на ARC алгоритм и то, что IBM имеет хорошую практику поддержки OSS проектов, и можно было надеяться на получения официального разрешения на его использование в PostgreSQL, как предлагали многие, было решено исследовать вопрос о действительном нарушение патента и выяснить возможность замены ARC алгоритма на "патентно-чистый" алгоритм.

Основным аргументов в пользу замены алгоритма было желание сохранить PostgreSQL доступным для "любого использования" согласно BSD лицензии, которая позволяет коммерческое использование PostgreSQL без каких-либо лицензионных отчислений. В начале февраля 2005 года Том Лэйн предложил измененную версию ARC алгоритма, близкую к 2Q и опубликованную в году задолго до ARC, и которая решала проблему "cache flooding" ("scan resistant") и не требовала больших изменений в коде (в основном удаление кода), которая и была реализована в версии 8.0.2. 2Q алгоритм (Two Queue) почти также эффективен как LRU/K, но проще, не требует настройки и быстрее. Он добивается этого тем, что хранит в основном буфере только "горячие" страницы, а не занимается очищением "холодных" страниц в основном буфере как LRU/2.

Упрощенно алгоритм выглядит так: при первом обращении указатель на страницу помещается в очередь A1 (FIFO), и если во время второго обращения страница еще находилась в A1, то страница называется горячей и помещается в основной буфер, который уже контролируется как LRU очередь. Если к странице не обращались пока она была в A1, то страница, вероятно, "холодная" и 2Q алгоритм удаляет ее из буфера.

PGDG - PostgreSQL Global Development Group PostgreSQL развивается силами международной группы разработчиков (PGDG), в которую входят как непосредственно программисты, так и те, кто отвечают за продвижение PostgreSQL (Public Relation), за поддержание серверов и сервисов, написание и перевод документации, всего на год насчитывается около 200 человек. Другими словами, PGDG - это сложившийся коллектив, который полностью самодостаточен и устойчив. Проект развивается по общепринятой среди открытых проектов схеме, когда приоритеты определяются реальными нуждами и возможностями.

При этом, практикуется публичное обсуждение всех вопросов в списке рассылке, что практически исключает возможность неправильных и несогласованных решений.

Это относится и к тем предложениям, которые уже имеют или рассчитывают на финансовую поддержку коммерческих компаний.

Цикл работой над новой версией обычно длится 10-12 месяцев (сейчас ведется дискуссия о более коротком цикле 2-3 месяца) и состоит из нескольких этапов (упрощенная версия):

Обсуждение предложений в списке -hackers. На собственном опыте могу заверить, что это 1 из Что такое PostgreSQL ?

очень непростой процесс и плохо подготовленный proposal не пройдет. Учитываются много факторов - алгоритмы, структуры данных, совместимость с существующей архитектурой, После принятия решения о работе над новой версией в CVS открывается новая ветка и с этого момента все изменения, касающиеся новых возможностей, вносятся туда. Также, анализируются патчи, которые присылаются в список -patches. Все изменения протоколируются и доступны любому для рассмотрения (anonymous CVS, -commiters лист рассылки или через веб-интерфейс к CVS). Иногда, в процессе работы над новой версией вскрываются или исправляются старые ошибки, в этом случае, наиболее критические исправляются и в предыдущих версиях (backporting). По мере накопления таких исправлений принимается решение о выпуске новой стабильной версии, которая совместима со старой и не требует обновления хранилища. Например, 7.4.7 - является В некоторый момент объявляется этап code freeze(замораживания кода), после которого в CVS не допускается новая функциональность, а только исправление или улучшение кода.

Граница между новой функциональностью и улучшением кода не описана и иногда возникают разногласия на этот счет, к документации и расширениям (contribution modules в поддиректории contrib/) обычно относятся более либерально. Замечу, что все это время все CVS версия проходит непрерывное тестирование на большом количестве машин, под разными архитектурами, операционными системами и компиляторами. Все это стало возможно благодаря проекту pgbuildfarm, который является распределенной системой тестирования, объединяющая добровольцев, которые предоставляют свои машины для тестирования. Проверяется не только корректность сборки, но и, благодаря обширному набору тестов (regression test), и правильность работы. Текущий статус (всех поддерживаемых версий, не только CVS) можно посмотреть на этой странице. Исходные тексты CVS версии PostgreSQL проходят тестирование в OSDL что помогает в обнаружении систематических изменений производительности (в обе стороны), иногда такие обнаружения приводят к необходимости "размораживания кода". Начиная с версии 8 такие тестирования будут регулярно проводиться в OSDL STP и PLM (STP - Scalable Test Platform и После внутреннего тестирования "собирается" дистрибутив и объявляется выход бета версии, на тестирование и исправление ошибок отводится 1-3 месяца. Бета версия не рекомендуется для использования в продакшн проектах (production), но практика показала хорошее качество таких версий и многие начинают ее использовать ради апробирования новой функциональности. Как правило, окончательная версия совместима с бета-версией и не требует обновления хранилища. По мере исправления замеченных ошибок выпускаются После исправления всех замеченных ошибок, выпускается релиз-кандидат, который уже практически ничем не отличается от окончательной версии, разве что не хватает В течении месяца выходит окончательная версия, которая анонсируется на главном веб-сайте проекта и его зеркалах, мэйлинг листах. Также, PR группа, которая к этому моменту подготовила анонсы на разных языках, распространяет их по всем ведущим сайтам и СМИ. Они принимают участие в конференциях, семинарах и прочих общественных На карте обозначены точки, где живут и работают члены PGDG, оригинальная версия с большей функциональностью находится на официальном сайте разработчиков.

2 из Что такое PostgreSQL ?

Принимает решение о планах развития и выпусках новых версий.

Бывшие члены управляющего комитета, которые отошли от участия в проекте.

Кроме PGDG, значительное участие в развитии PostgreSQL принимает некоммерческая организация "The PostgreSQL Foundation", созданная для продвижения и поддержки PostgreSQL. Сайт фонда находится по адресу www.thepostgresqlfoundation.org.

Спонсорская помощь на развитие PostgreSQL поступает как от частных лиц, так и от коммерческих компаний, которые:

оплачивают разработку каких-либо новых возможностей предоставляют услуги в виде хостинга или оплаты трафика поддерживают публичные мероприятия PGDG выделяют своих программистов на участие в разработке Кроме того, некоторые разработки поддерживаются государственными фондами, например, Российский Фонд Фундаментальных Исследований.

Если изначально POSTGRES использовался в основном в академических проектах для исследования алгоритмов баз данных, в университетах как отличная база для обучения, то сейчас PostgreSQL применяется практически повсеместно. Например, зоны.org,.info полностью обслуживаются PostgreSQL, известны многотерабайтные хранилища астрономических данных, Lycos, BASF. Из российских проектов, использующих PostgreSQL, наиболее известными является портал Рамблер, в разработке которого я принимал участие в 2000-2002 годах, федеральные порталы Сообщество PostgreSQL состоит из большого количества пользователей, объединенных разными 3 из Что такое PostgreSQL ?

интересами, такими как участие в разработке, поиск советов, решений, возможность коммерческого Основной источник актуальной информации о PostgreSQL является его официальный сайт www.postgresql.org, который имеет зеркала по всему миру. На нем публикуются сведения о всех событиях (анонсы релизов, семинаров, конференций), поддерживается список Основная поддержка осуществляется через почтовую рассылку, архивы которой доступны Архив pgsql-ru-general - русскоязычного списка рассылки,как подписаться.

Как показала многолетняя практика, списки рассылок являются наиболее эффективным и очень полезным источником знаний, обмена мнениями и помощи в самых различных ситуациях. На март 2005 года зарегистрировано 32812 пользователей, которые когда-либо Небольшая статистика списков рассылок PostgreSQL по данным www.pgsql.ru на 1 апреля Первая 20-ка мэйлинг листов Распределение постингов по годам Поисковая система PGsearch (разработана при поддержке РФФИ и Дельта-Софт) предоставляет поиск по сайтам сообщества. На момент написания этой статьи проиндексировано 480000 страниц из 67 сайтов, индекс обновляется еженедельно.

Много полезной информации по PostgreSQL можно найти на сайтах Документация на русском (переводы и оригинальные статьи) доступны на сайте русскоязычного сообщества http://www.linuxshare.ru/postgresql/.

Ответы на ваши вопросы можно найти в "PostgreSQL FAQ " (часто задаваемые вопросы):

Дистрибутивы PostgreSQL доступны для скачивания с основного ftp-сервера проекта и его зеркал. Подробная информация доступна со страницы http://www.postgresql.org/download/.

Кроме того, многие дистрибутивы Linux распространяются с бинарной версией PostgreSQL и обеспечивают поддержку обновлений. Для ознакомления с PostgreSQL можно скачать образ загрузочного CD (Live CD) - bittorent формат или в ISO формате. Информацию о том, 4 из Что такое PostgreSQL ?

как инсталлировать PostgreSQL под Mac OS X можно найти здесь. Инсталлятор для Win Коммерческая поддержка осуществляется рядом компаний, список которых доступен по адресу www.postgresql.org/support/. Также на российском сайте ведется список российских компаний, которые заявили о поддержке PostgreSQL.

Для проектов, имеющих отношение к PostgreSQL, предоставляется возможность размещать их на специальных сайтах, поддерживаемые PGDG и предоставляющие практически все, необходимые для разработчиков, сервисы:

PostgreSQL является полнофункциональной объектно-реляционной СУБД, готовой для практического использования. Ее функциональность и надежность обусловлены богатой историей развития,профессионализмом разработчиков и технологией тестирования, а ее перспективы заложены в ее расширяемости и свободной лицензии.

Автор благодарит русскоязычное сообщество за критику и дополнения, Российский Фонд Фундаментальных Исследований (РФФИ) за поддержку гранта 05-07-90225-в.

Текст написан Олегом Бартуновым в 2005 году, поправки и комментарии приветствуются.

Олег Бартунов (основная специальность астроном, работает в ГАИШ МГУ) является компании "GreatBridge", является членом "The PostgreSQL Foundation". Помимо затем совместно с Федором Сигаевым (компания Delta-Soft) занимался поддержкой ошибкам, поддержка иерархических данных. Соавтор свободного полнотекстового поиска для PostgreSQL OpenFTS. Является автором и создателем (совместно с Федором Сигаевым) сайта pgsql.ru. Занимается продвижением PostgreSQL для использования в астрономии, в частности, для работы с очень большими астрономическими каталогами, проект pgSphere - хранение данных со сферическими координатами и индексные методы доступа к ним.

5 из

Похожие работы:

«Статья 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ 1.1 Открытое акционерное общество Первенец (далее по тексту Общество) создано в соответствии с законодательством Российской Федерации и действует на основании Федерального закона Об акционерных Обществах (далее Федеральный закон), других законов и нормативных актов Российской Федерации, а также настоящего Устава. Общество является правопреемником Закрытого акционерного общества Ленская золоторудная компания и Закрытого акционерного общества Горнорудная компания...»

«4 ВВЕДЕНИЕ. А.В. Гурьева. Об авторе. Дорогу осилит идущий Сегодня мы беседуем с автором книги Механохимические технологии и организация новых производств на предприятиях строительной индустрии - ДСК и заводах ЖБК и СД Верой Павловной Кузьминой – кандидатом технических наук, специалистом мирового уровня в области пигментов для строительной индустрии и нашим постоянным автором. Кроме того, Вера Павловна – разработчик 16 патентов и 200 ноу-хау, руководитель предприятия ООО Колорит-Механохимия и –...»

«ТЕХНИЧЕСКИЙ КОДЕКС ТКП 003–2005 (02140) УСТАНОВИВШЕЙСЯ ПРАКТИКИ ОРГАНИЗАЦИЯ РАБОТ ПО ОХРАНЕ ТРУДА В ОТРАСЛИ СВЯЗЬ АРГАНIЗАЦЫЯ РАБОТ ПА АХОВЕ ПРАЦЫ Ў ГАЛIНЕ СУВЯЗЬ Издание официальное Минсвязи Минск ТКП 003-2005 УДК 621.39:658.345 МКС 13.100 КП 02 Ключевые слова: охрана труда, безопасные условия труда, инструктаж по охране труда, контроль условий труда, организация работы по охране труда, санитарногигиенические условия работы Предисловие Цели, основные принципы, положения по государственному...»

«1. Общие положения 1.1. Правила внутреннего трудового распорядка (далее по тексту – Правила) являются локальным нормативным актом Уральского социально-экономического института (филиал) Образовательного учреждения профсоюзов высшего профессионального образования Академия труда и социальных отношений (далее по тексту – Институт) и регламентируют в соответствии с Трудовым Кодексом Российской Федерации (далее – ТК РФ) и иными нормативными правовыми актами, содержащими нормы трудового права,...»

«Основная цель работы WWF в Баренцевоморском регионе – сохранить для будущих поколений Баренцево море с его богатой, разнообразной и высокопродуктивной живой природой, которая поддерживает естественные процессы экосистем, обеспечивает устойчивую экономическую деятельность и благосостояние населения, а так же естественную красоту региона. Баренцево море – это одна из самых значительных, чистых и незатронутых человеческой деятельностью морских экосистем. Очень высокая первичная продуктивность...»

«16 2013 Московский Муниципальный вестник №16(19) апрель 2013 Содержание центральный административный округ Муниципальный округ Арбат 3 Муниципальный округ Красносельский 19 Муниципальный округ Хамовники 20 северный административный округ Муниципальное образование Головинское 24 Муниципальное образование Тимирязевское 26 северо-восточный административный округ Муниципальный округ Бибирево 30 Муниципальный округ Марфино 34 восточный административный округ Муниципальный округ Вешняки 44...»

«НАША СТРАНА – РОДИНА КОСМОНАВТИКИ, СТАРТОВАЯ ПЛОЩАДКА КОСМИЧЕСКОЙ ЭРЫ Мы сделали мечту и сказку предков былью Грядущие века не скроют это пылью! Космическая эра человечества началась в нашей стране, называвшейся тогда Советским Союзом, на космодроме Байконур, откуда стартовали первая в мире межконтинентальная баллистическая ракета, первый в мире спутник, первый в мире лунник, первый космонавт Земли Юрий Алексеевич Гагарин, первые автоматические межпланетные станции к планетам Марс и Венера,...»

«‚‡‡ ‚ 2003 „‰ ·‚ ·‰, ‰. ‚ —.: ‡, 2003. — 26.:. — (‚ ‡‚ ‡ ‚. ‰ ) ‡‰ „‰ ‡ ‡ ‡ ·‡ ‰‚ ‚ ‚‰ ‚‡ ‡‚, ·, ‰‰, ·‚ „„ ‰„„. ·‡ ·‡ ‡ ‚‰ ·‚ ‰‚ () ‚ ‡ ‚‡, ‡ ‡ · ·‡ ‰‡ ‡‚‡ „‡‚ ‚ ‡ ‡ ‰ ‰‚ ‡. ‚ ·‡ · ‚‡ ‚, ‚ ·‡ ·, ‚‡ ‡ ‰‚, ‚ ‚‡‰ ‚ · ‰ ‚ ‡ ‡ ‰. ‰‡ ‰‡„ ‚‰‚‡ ‡ ‚ ·‡„‰‡ ‡‚ ‰‰ ‡„ ‡‚‚‡, ‰‡‚‚‡ „ ·‡‡ ‚ · ‡. © ООЭкопроект, 2003 2 Содержание 4 Что такое отходы? 5 Отходы — это проблема? 5 Каковы объемы образования отходов? Как изменяется состав отходов? Какие проблемы связаны с отходами? Что можно делать с отходами?...»

«ВВЕДЕНИЕ Гидротехнические мелиорации представляют собой комплекс мероприятий, направленных на регулирование водного режима почв и улучшения режима питания путем осушения избыточно увлажненных земель и орошения земель с недостаточным увлажнением. Чаще всего конечными целями гидротехнических мелиорации в лесном хозяйстве являются увеличение продуктивности лесных земель, повышение санитарно-гигиенических и рекреационных функций лесов и устойчивости их к неблагоприятным воздействиям. В сочетании с...»

«Министерство транспорта Российской Федерации Проект Транспортная стратегия Российской Федерации на период до 2030 года Москва сентябрь 2008 года 2 Содержание ВВЕДЕНИЕ 1. МЕСТО И РОЛЬ ТРАНСПОРТА В СОЦИАЛЬНО-ЭКОНОМИЧЕСКОМ РАЗВИТИИ РОССИЙСКОЙ ФЕДЕРАЦИИ 2. АНАЛИЗ СОВРЕМЕННОГО СОСТОЯНИЯ И ПРОБЛЕМ РАЗВИТИЯ ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ 3. ПРОГНОЗНЫЕ КАЧЕСТВЕННЫЕ И КОЛИЧЕСТВЕННЫЕ ПАРАМЕТРЫ РАЗВИТИЯ ТРАНСПОРТНОЙ СИСТЕМЫ РОССИЙСКОЙ ФЕДЕРАЦИИ НА ПЕРИОД ДО 2030 ГОДА 4. ЦЕЛИ И ПРИОРИТЕТЫ РАЗВИТИЯ...»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА Факультет Сервиса Кафедра Сервиса ДИПЛОМНЫЙ ПРОЕКТ на тему: Исследование характеристик композиционных полимерных составов и перспективы их использования при устранении отказов транспортных средств по специальности: 100101.65 Сервис Константин Михайлович Студенты Тимошенко Доктор...»

«выпуск № 16 (часть 1) 16 октября 2013 г. г. Печора РАЗДЕЛ ПЕРВЫЙ: Нормативные правовые акты Совета муниципального района Печора и проекты нормативных правовых актов № наименование стр. Решение Совета муниципального района Печора от 30 сентября № 5-19/257 О внесении изменений в решение Совета муниципального района Печора 1. от 25 декабря 2012 года № 5-13/198 О бюджете муниципального образования 3 муниципального района Печора на 2013 год и плановый период 2014 и 2015 годов Решение Совета...»

«БРЯНСКОЕ РЕГИОНАЛЬНОЕ ОТДЕЛЕНИЕ РОССИЙСКОГО ФИЛОСОФСКОГО ОБЩЕСТВА БРЯНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПРОБЛЕМЫ СОВРЕМЕННОГО АНТРОПОСОЦИАЛЬНОГО ПОЗНАНИЯ Сборник статей Выпуск 5 Под общей редакцией доктора философских наук Э.С. Демиденко Брянск Издательство БГТУ 2007 ББК 87.6 П 78 Проблемы современного антропосоциального познания: сб. ст. / под общей ред. Э.С. Демиденко. – Брянск: БГТУ, 2007. – Вып. 5. – 275 с. ISBN 5-89838-303-4 Рассматриваются актуальные темы и проблемы современной...»

«КУРГАНСКАЯ ОБЛАСТЬ ЩУЧАНСКИЙ РАЙОН ЩУЧАНСКАЯ РАЙОННАЯ ДУМА РЕШЕНИЕ от 18 декабря 2007года № 220 г. Щучье О внесении изменений в Устав муниципального образования Щучанского района В соответствии с Федеральным законом от 06.10.2003 г. № 131-ФЗ 0б общих принципах организации местного самоуправления в Российской Федерации, Федеральным законом от 21.07.2005 г. № 97-ФЗ О государственной регистрации уставов муниципальных образований, рассмотрев проект решения Щучанской районной Думы О внесении...»

«Оглавление ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ ОБЩИЕ СВЕДЕНИЯ НАЗНАЧЕНИЕ И ЦЕЛЬ ВЫПОЛНЕНИЯ РАБОТ ТРЕБОВАНИЯ К СЕТЕВОЙ ИНФРАСТРУКТУРЕ Общие требования Требования к СПД Требования к ВОЛС Требования к СКС, СБЭ, СКВ в здании заводоуправления Требования к СРТС Требования к системе мониторинга и управления Требования безопасности Требования к патентной чистоте КВАЛИФИКАЦИОННЫЕ ТРЕБОВАНИЯ СОСТАВ И СОДЕРЖАНИЕ РАБОТ ПО МОДЕРНИЗАЦИИ СИ ПОРЯДОК СДАЧИ И ПРИЕМКИ РАБОТ ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ НОРМАТИВНЫЕ ДОКУМЕНТЫ 2...»

«ВЕСТНИК УДМУРТСКОГО УНИВЕРСИТЕТА 3 ФИЗИКА. ХИМИЯ 2012. Вып. 2 Физика и химия наноматериалов УДК 378.22(045) Н.В. Семакина, В.И. Кодолов, М.А. Плетнев ПРОБЛЕМЫ ПОДГОТОВКИ ВЫСОКОКВАЛИФИЦИРОВАННЫХ КАДРОВ ДЛЯ НАНОИНДУСТРИИ В УДМУРТСКОЙ РЕСПУБЛИКЕ Рассматриваются состояние и перспективы развития нанообразования в Удмуртской Республике с целью подготовки высококвалифицированных кадров для наноиндустрии. Ключевые слова: нанотехнологии, образование, наноиндустрия, наноматериалы, научно-образовательный...»

«Утвержден решением единственного акционера ОАО Волжский трубный завод от 04 июня 2012 г. ГОДОВОЙ ОТЧЕТ за: 2011 год Открытое акционерное общество Волжский трубный завод Код эмитента: 32752-E Место нахождения: 404119, Российская Федерация, г. Волжский, Волгоградской области, ул.Автодорога №7, 6 Почтовый адрес: 404119, Российская Федерация, г. Волжский, Волгоградской области, ул.Автодорога №7, 6 Информация, содержащаяся в настоящем годовом отчете, подлежит раскрытию в соответствии с...»

«Издания 19- го и начала 20 веков Абамелек - Лазарев (князь) Вопрос о недрах и развитие горной промышленности с 1808 по 1908 г. – Изд. 2-е, изменен. и доп. – СПб: Слово,1910. – 243 с. (С картой мировой добычи минералов и производства металлов) – (Его Высокопревосходительству Сергею Васильевичу Рухлову в знак глубокого уважения от автора) Алямский А. М. Бурение шпуров при взрывных работах. – М. – Л.: ГНТИ, 1931. – 108 с. Базисные склады взрывчатых материалов для горной промышленности. – М. –...»

«2. Бондарцева, М.А. Флора трутовых грибов Сибири. 1. Трутовики Алтая / М.А Бондарцева // Новости систематики низших растений. - Л.: Наука, 1973. - Т.10. - С. 127-133. 3. Васильева, Л.Н. Изучение макроскопических грибов как компонентов растительных сообщес тв / Л.Н. Васильева // Полевая геоботаника. - М.; Л.: Наука, 1959. 4. Вассер С. П. Семейство Agaricaceae – Агариковые // Низшие растения, грибы и мохообразные советского Дальнего Востока. Грибы. Т. 1. Л.: Наука, 1990. С. 118-206. 5. Коваленко,...»

«Руководство пользователя 3.7.2013 2 DipTrace. Руководство пользователя Содержание Раздел I Создание простой схемы и печатной 4 платы 1 Введение 2 Установка размера страницы и размещение рамки 3 Настройка библиотек 4 Проектирование схемотехники 5 Преобразование в плату 6 Разработка печатной платы Подготовка к трассировке Автоматическая трассировка Работа со слоями Меж слойные переходы Классы сетей Ручная трассировка Измерение длины трасс Выбор объектов по типу/слою Размещение текста и...»




























 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.