Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Лекция 7. PostgreSQL. Вводная лекция

Содержание

ПроизношениеPostgreSQL произносится как post-gress-Q-LВ разговоре часто употребляется postgres (пост-гресс)Также, употребляется сокращение pgsql (пи-джи-эс-ку-эл или п-г-эс-ку-эль)
Учебная дисциплина СИСТЕМЫ УПРАВЛЕНИЯ БАЗЫ ДАННЫХ  Лекция 7. PostgreSQL. ПроизношениеPostgreSQL произносится как post-gress-Q-LВ разговоре часто употребляется postgres (пост-гресс)Также, употребляется сокращение pgsql (пи-джи-эс-ку-эл или п-г-эс-ку-эль) PostgreSQL – это......самая развитая СУБД с открытым кодом...надежность и устойчивость на очень больших нагрузках...кроссплатформенность (FreeBSD, Linux, Solaris, 	Windows, OS X)...высокий уровень соответствия 	ISO/ANSI SQL 92, 99, 2003...интерфейсы для Tcl, Perl, C, C++, PHP, ODBC, JDBC, 	Embedded SQL in C, Python, Ruby, ......расширяемость...быстродействие Место в мире СУБДPostgreSQL – это свободно распространяемая объектно-реляционная система управления базами Происхождение1985 г. – Post Ingres (v1 – v4.2)		Майкл Стоунбрейкер		Калифорнийский университет в Беркли		POSTQUEL1994 Функциональность ОграниченияРазмер БД — нет ограниченияРазмер таблицы — до 32 TBРазмер строки — до 1.6 TBРазмер поля — до 1 GBКоличество строк в таблице — нет ограниченияКоличество столбцов в таблице — до 250..1600Количество индексов — нет ограниченияДлина идентификатора – до 63 байт включительно Модель «клиент/сервер»PostgreSQL­сессия - это совместнаяработа двух процессов:серверный процесс (postgres)клиентский процесс (psql, GUI­приложение, веб­сервер, утилиты обслуживания и т. д.) Концепция транзакцийОсновной принцип работы системы — ACID:Atomicity (атомарность) - выполнение или не выполнение всех DML команд входящих MVCCMultiversion Concurrency Control –	многоверсионный контроль конкурентных	транзакцийСпособ реализации принципа изоляции, вместо классических блокировокЧтение и запись не конфликтуютКонфликт только при конкурентных операциях записи Объекты в БДТаблицыИндексыПользователи и группы (роли)Языки (для создания функций)Функции (FUNCTION)Триггеры (TRIGGER)Правила (RULE)Представления (VIEW)Правила преобразования типов (CAST)Типы данных (TYPE)Последовательности (SEQUENCE) Типы данныхПоддерживаемые встроенные типы данных:ЧисловыеСимвольныеБинарные (двоичные) ЛогическиеДата и времяГеометрическиеТипы для адресов компьютерных Числовые типы Символьные типы Бинарные (двоичные) типы Логический тип Дата и время Геометрические типы Остальные типы Составные типы данныхМассивы простых типовСоставные типыМассивы составных типовПеречисления (ENUM) Пользовательские типыCREATE TYPE name AS			CREATE TYPE name AS ENUM  ( attribute_name Ограничения целостностиNOT NULL - не NULL UNIQUE - уникальность PRIMARY KEY - Операторы SQL1. Операторы описания данных (DDL, Data Definition Language): CREATE ..., ALTER ..., DROP ... и пр.	Примечание: в PostgreSQL DDL­операторы можно использовать в транзакциях.2. Операторы манипулирования данными (DML):SELECT – выборка данныхINSERT – вставка Примеры DDL и DMLCREATE TABLE person(    name VARCHAR(32) NOT NULL,	 age INTEGER,    CHECK(age >= 0 AND  age ИндексыPostgreSQL предлагает четыре типа индексов:B-treeHashGiSTGINИндексы могут быть:	составными	функциональными	частичнымиCREATE INDEX person_lower_name_idx ON person (lower(name)) USING btree; Функции и хранимые процедурыSQLPL/pgSQLPL/PerlPL/TclPL/PythonPL/RPL/JavaplPHPplRubyвсегда можно добавить что-то своё Анализ производительностиПорядок обработки запроса:	парсер –> планировщик –> исполнительEXPALAIN – показывает план запроса Пример функцииSQL:CREATE FUNCTION add(integer, integer) RETURNS integer AS 'select $1 + $2;‘LANGUAGE ТриггерыТриггеры могут быть назначены для операторов:INSERTUPDATEDELETETRUNCATECREATE TRIGGER name { BEFORE | AFTER Роли и привилегииКонцепция ролей заменила концепцию пользователей и группCREATE ROLE student WITH Первые шаги после установки1. Создание кластера БД (initdb)2. Начальная конфигурация postgresql.conf и pg_hba.conf3. Запуск сервера PostgreSQL Начальная настройкаВсего 2 файла:postgresql.conf (основные настройки)	listen_addresses (сетевые интерфейсы)	shared_buffers (общая память)	work_mem (память для сортировок и т.п.)pg_hba.conf (настройки доступа)	host all all 127.0.0.1/32 md5 Основные программы/утилитыpostgres – запуск сервера в однопользовательском режимеinitdb — инициализация кластераpg_ctl — утилита для контроля (запуск/останов)pg_dump — создание дампа (резервной копии) БДpsql — интерактивный терминалcreatedb, createuser, dropdb, dropuser, reindexdb и 	т.д. —утилиты работы с БД из shell psqlpsql — развитая терминальная программа, огромное 	количество возможностейВсегда помнить:	psql --help (в shell)	\?	\h	автодополнение (по нажатию на TAB)	\h ANY-SQL-COMMAND Полезные источники информацииhttp://postgresql.orgАнглийский языкСамые свежие дистрибутивы и документацияhttp://postgresql.ru.netДокументация на русском языкеhttp://google.ruХороший поисковик
Слайды презентации

Слайд 2 Произношение
PostgreSQL произносится как post-gress-Q-L

В разговоре часто употребляется postgres

ПроизношениеPostgreSQL произносится как post-gress-Q-LВ разговоре часто употребляется postgres (пост-гресс)Также, употребляется сокращение pgsql (пи-джи-эс-ку-эл или п-г-эс-ку-эль)


(пост-гресс)

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


Слайд 3 PostgreSQL – это...
...самая развитая СУБД с открытым кодом
...надежность и устойчивость на очень больших нагрузках
...кроссплатформенность (FreeBSD, Linux, Solaris, 
Windows, OS X)
...высокий уровень соответствия 
ISO/ANSI SQL 92, 99, 2003
...интерфейсы для Tcl, Perl, C, C++, PHP, ODBC, JDBC, 
Embedded SQL in C, Python, Ruby, ...
...расширяемость
...быстродействие

PostgreSQL – это......самая развитая СУБД с открытым кодом...надежность и устойчивость на очень больших нагрузках...кроссплатформенность (FreeBSD, Linux, Solaris, 	Windows, OS X)...высокий уровень соответствия 	ISO/ANSI SQL 92, 99, 2003...интерфейсы для Tcl, Perl, C, C++, PHP, ODBC, JDBC, 	Embedded SQL in C, Python, Ruby, ......расширяемость...быстродействие

Слайд 4 Место в мире СУБД
PostgreSQL – это свободно распространяемая

Место в мире СУБДPostgreSQL – это свободно распространяемая объектно-реляционная система управления

объектно-реляционная система управления базами данных (ORDBMS), наиболее развитая из

открытых СУБД в мире, являющаяся реальной альтернативой коммерческим СУБД.

Слайд 5 Происхождение
1985 г. – Post Ingres (v1 – v4.2)
Майкл

Происхождение1985 г. – Post Ingres (v1 – v4.2)		Майкл Стоунбрейкер		Калифорнийский университет в

Стоунбрейкер
Калифорнийский университет в Беркли
POSTQUEL
1994 г. – Postgres95 v5
Эндрю Ю

и Джолли Чен
Калифорнийский университет в Беркли
SQL
1996 г. – PostgreSQL (v6 – v8)
Развивается сообществом
Стабильная версия на 21.10.2009 – v8.4.1

Слайд 6 Функциональность

Функциональность

Слайд 7 Ограничения
Размер БД — нет ограничения
Размер таблицы — до 32 TB
Размер строки — до 1.6 TB
Размер поля — до 1 GB
Количество строк в таблице — нет ограничения
Количество столбцов в таблице — до 250..1600
Количество индексов — нет ограничения
Длина идентификатора – до

ОграниченияРазмер БД — нет ограниченияРазмер таблицы — до 32 TBРазмер строки — до 1.6 TBРазмер поля — до 1 GBКоличество строк в таблице — нет ограниченияКоличество столбцов в таблице — до 250..1600Количество индексов — нет ограниченияДлина идентификатора – до 63 байт включительно

63 байт включительно


Слайд 8 Модель «клиент/сервер»
PostgreSQL­сессия - это совместная
работа двух процессов:
серверный процесс (postgres)
клиентский процесс (psql, GUI­приложение, веб­сервер, утилиты обслуживания и т. д.)

Модель «клиент/сервер»PostgreSQL­сессия - это совместнаяработа двух процессов:серверный процесс (postgres)клиентский процесс (psql, GUI­приложение, веб­сервер, утилиты обслуживания и т. д.)

Слайд 9 Концепция транзакций
Основной принцип работы системы — ACID:
Atomicity (атомарность) - выполнение или не выполнение

Концепция транзакцийОсновной принцип работы системы — ACID:Atomicity (атомарность) - выполнение или не выполнение всех DML команд

всех DML команд входящих в тразакцию;
Consistency (согласованность БД)

- завершение транзакции не должно нарушать целостность БД;
Isolation (изоляция) - можно отображать либо исходные данные, которые были до начала транзакции, либо новые данные после выполнения транзакции;
Durability (сохранность данных) - если пользователю пришло подтверждение выполнения транзакции, то его изменения не будут отменены по каким-либо причинам.


Слайд 10 MVCC
Multiversion Concurrency Control –
многоверсионный контроль конкурентных
транзакций
Способ реализации принципа изоляции, вместо

MVCCMultiversion Concurrency Control –	многоверсионный контроль конкурентных	транзакцийСпособ реализации принципа изоляции, вместо классических блокировокЧтение и запись не конфликтуютКонфликт только при конкурентных операциях записи

классических блокировок
Чтение и запись не конфликтуют
Конфликт только при конкурентных операциях записи


Слайд 11 Объекты в БД
Таблицы
Индексы
Пользователи и группы (роли)
Языки (для создания функций)
Функции (FUNCTION)
Триггеры (TRIGGER)
Правила (RULE)
Представления (VIEW)
Правила преобразования типов (CAST)
Типы данных (TYPE)
Последовательности (SEQUENCE)

Объекты в БДТаблицыИндексыПользователи и группы (роли)Языки (для создания функций)Функции (FUNCTION)Триггеры (TRIGGER)Правила (RULE)Представления (VIEW)Правила преобразования типов (CAST)Типы данных (TYPE)Последовательности (SEQUENCE)

Слайд 12 Типы данных
Поддерживаемые встроенные типы данных:
Числовые
Символьные
Бинарные (двоичные)
Логические
Дата и

Типы данныхПоддерживаемые встроенные типы данных:ЧисловыеСимвольныеБинарные (двоичные) ЛогическиеДата и времяГеометрическиеТипы для адресов

время
Геометрические
Типы для адресов компьютерных сетей
Битовые строки
Типы для поиска текста


UUID
XML

Слайд 13 Числовые типы

Числовые типы

Слайд 14 Символьные типы

Символьные типы

Слайд 15 Бинарные (двоичные) типы

Бинарные (двоичные) типы

Слайд 16 Логический тип

Логический тип

Слайд 17 Дата и время

Дата и время

Слайд 18 Геометрические типы

Геометрические типы

Слайд 19 Остальные типы

Остальные типы

Слайд 20 Составные типы данных
Массивы простых типов
Составные типы
Массивы составных типов
Перечисления (ENUM)

Составные типы данныхМассивы простых типовСоставные типыМассивы составных типовПеречисления (ENUM)

Слайд 21 Пользовательские типы
CREATE TYPE name AS CREATE TYPE name AS

Пользовательские типыCREATE TYPE name AS			CREATE TYPE name AS ENUM ( attribute_name

ENUM
( attribute_name data_type [, ... ] )

( 'label' [, ... ] )

CREATE TYPE name (
INPUT = input_function,
OUTPUT = output_function
[ , RECEIVE = receive_function ]
[ , SEND = send_function ]
[ , TYPMOD_IN = type_modifier_input_function ]
[ , TYPMOD_OUT = type_modifier_output_function ]
[ , ANALYZE = analyze_function ]
[ , INTERNALLENGTH = { internallength | VARIABLE } ]
[ , PASSEDBYVALUE ]
[ , ALIGNMENT = alignment ]
[ , STORAGE = storage ]
[ , DEFAULT = default ]
[ , ELEMENT = element ]
[ , DELIMITER = delimiter ]
)

Слайд 22 Ограничения целостности
NOT NULL - не NULL
UNIQUE -

Ограничения целостностиNOT NULL - не NULL UNIQUE - уникальность PRIMARY KEY

уникальность
PRIMARY KEY - первичный ключ
FOREIGN KEY/REFERENCES -

внешний ключ, ссылки
CHECK - проверка


Слайд 23 Операторы SQL
1. Операторы описания данных (DDL, Data Definition Language): 
CREATE ..., ALTER ..., DROP ... и пр.
Примечание: в PostgreSQL DDL­операторы можно использовать в транзакциях.

2. Операторы манипулирования данными (DML):
SELECT –

Операторы SQL1. Операторы описания данных (DDL, Data Definition Language): CREATE ..., ALTER ..., DROP ... и пр.	Примечание: в PostgreSQL DDL­операторы можно использовать в транзакциях.2. Операторы манипулирования данными (DML):SELECT – выборка данныхINSERT –

выборка данных
INSERT – вставка данных
UPDATE – обновления данных
DELETE –

удаление данных

Слайд 24 Примеры DDL и DML
CREATE TABLE person(
    name VARCHAR(32) NOT NULL,
age INTEGER,
    CHECK(age >= 0 AND  age

Примеры DDL и DMLCREATE TABLE person(    name VARCHAR(32) NOT NULL,	 age INTEGER,    CHECK(age >= 0 AND  age

(name, age)
VALUES (‘Вольдемар', 22);

UPDATE person SET age = 17

WHERE name = ‘Вольдемар';

DELETE FROM person WHERE age < 18;


Слайд 25 Индексы
PostgreSQL предлагает четыре типа индексов:
B-tree
Hash
GiST
GIN
Индексы могут быть:
составными
функциональными
частичными

CREATE INDEX

ИндексыPostgreSQL предлагает четыре типа индексов:B-treeHashGiSTGINИндексы могут быть:	составными	функциональными	частичнымиCREATE INDEX person_lower_name_idx ON person (lower(name)) USING btree;

person_lower_name_idx ON person (lower(name)) USING btree;


Слайд 26 Функции и хранимые процедуры
SQL
PL/pgSQL
PL/Perl
PL/Tcl
PL/Python
PL/R
PL/Java
plPHP
plRuby
всегда можно добавить что-то своё

Функции и хранимые процедурыSQLPL/pgSQLPL/PerlPL/TclPL/PythonPL/RPL/JavaplPHPplRubyвсегда можно добавить что-то своё

Слайд 27 Анализ производительности
Порядок обработки запроса:
парсер –> планировщик –> исполнитель

EXPALAIN

Анализ производительностиПорядок обработки запроса:	парсер –> планировщик –> исполнительEXPALAIN – показывает план

– показывает план запроса с оценочными характеристиками

EXPLAIN ANALYZE –

выполняет запрос и показывает реальное время



Слайд 28 Пример функции
SQL:
CREATE FUNCTION add(integer, integer) RETURNS integer
AS

Пример функцииSQL:CREATE FUNCTION add(integer, integer) RETURNS integer AS 'select $1 +

'select $1 + $2;‘
LANGUAGE SQL IMMUTABLE RETURNS NULL ON

NULL INPUT;

pl/pgSQL:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer
AS $$
BEGIN RETURN i + 1;
END;
$$ LANGUAGE plpgsql;

Слайд 29 Триггеры
Триггеры могут быть назначены для операторов:
INSERT
UPDATE
DELETE
TRUNCATE

CREATE TRIGGER name

ТриггерыТриггеры могут быть назначены для операторов:INSERTUPDATEDELETETRUNCATECREATE TRIGGER name { BEFORE |

{ BEFORE | AFTER } { event [ OR

... ] } ON table [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE funcname ( arguments )

Слайд 30 Роли и привилегии
Концепция ролей заменила концепцию пользователей и

Роли и привилегииКонцепция ролей заменила концепцию пользователей и группCREATE ROLE student

групп

CREATE ROLE student WITH LOGIN PASSWORD 'jw8s0F4' VALID UNTIL

'2005-01-01';

GRANT EXECUTE ON FUNCTION add(integer, integer) TO student;

Слайд 31 Первые шаги после установки
1. Создание кластера БД (initdb)
2. Начальная конфигурация postgresql.conf и pg_hba.conf
3. Запуск сервера PostgreSQL

Первые шаги после установки1. Создание кластера БД (initdb)2. Начальная конфигурация postgresql.conf и pg_hba.conf3. Запуск сервера PostgreSQL

Слайд 32 Начальная настройка
Всего 2 файла:
postgresql.conf (основные настройки)
listen_addresses (сетевые интерфейсы)
shared_buffers (общая память)
work_mem (память для сортировок и

Начальная настройкаВсего 2 файла:postgresql.conf (основные настройки)	listen_addresses (сетевые интерфейсы)	shared_buffers (общая память)	work_mem (память для сортировок и т.п.)pg_hba.conf (настройки доступа)	host all all 127.0.0.1/32 md5

т.п.)
pg_hba.conf (настройки доступа)
host all all 127.0.0.1/32 md5


Слайд 33 Основные программы/утилиты
postgres – запуск сервера в однопользовательском режиме
initdb — инициализация кластера
pg_ctl — утилита для контроля (запуск/останов)
pg_dump — создание дампа (резервной копии) БД
psql — интерактивный терминал
createdb, createuser, dropdb, dropuser, reindexdb и 
т.д. —утилиты работы с БД из shell

Основные программы/утилитыpostgres – запуск сервера в однопользовательском режимеinitdb — инициализация кластераpg_ctl — утилита для контроля (запуск/останов)pg_dump — создание дампа (резервной копии) БДpsql — интерактивный терминалcreatedb, createuser, dropdb, dropuser, reindexdb и 	т.д. —утилиты работы с БД из shell

Слайд 34 psql
psql — развитая терминальная программа, огромное 
количество возможностей

Всегда помнить:
psql --help (в shell)
\?
\h
автодополнение (по нажатию на TAB)
\h ANY-SQL-COMMAND

psqlpsql — развитая терминальная программа, огромное 	количество возможностейВсегда помнить:	psql --help (в shell)	\?	\h	автодополнение (по нажатию на TAB)	\h ANY-SQL-COMMAND

  • Имя файла: lektsiya-7-postgresql-vvodnaya-lektsiya.pptx
  • Количество просмотров: 177
  • Количество скачиваний: 6