Руководство по реляционной субд db2

libcats.org

Руководство по реляционной СУБД DB2

Это уникальное издание адресовано профессионалам в области информационных технологий.

Номер посвящен работе с базами данным и охватывает три основные темы:

Технология доступа к данным Microsoft ADO.NET

Microsoft SQL Server

Доступ к данным из приложений.
Альманах представляет собой тематический сборник статей из журнала MSDN Magazine/Русская Редакция и Microsoft MSDN Library. Издание адресовано широкому кругу программистов, интересующихся современными и перспективными информационными технологиями. Первый том альманаха, посвященный работе с базами данных, состоит из трех тематических рубрик, содержащих 20 статей.

Популярные книги за неделю:

Только что пользователи скачали эти книги:

32.973
Д27

Дейт, К. Дж.
    Руководство по реляционной СУБД DB2 : руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT / К. Д. Дейт ; Пер. с англ. [и предисл.] М. Р. Когаловского. — Москва : Финансы и статистика, 1988. — 319, [1] с. : ил. ; 22 см. — Библиогр.: с 314-315 (15 назв.). — Предм. указ.: с. 316-317. — 20000 экз. — ISBN 5-279-00063-9 (в пер.) : Б. ц.
Перевод изд.: A guide to DB2 / C. J. Date (Reading, Mass etc.)

ББК 32.973.233-018.2

Рубрики: Базы данных—Управление

   Вычислительные машины электронные—Программное обеспечение

Держатели документа:
Национальная библиотека им. А. С. Пушкина, г. Саранск

Похожие издания по классификации

Автор: Крис Дж. Дейт
Издательство: Финансы и статистика

Год: 1988
Страниц: 320
Язык: русский
Формат:
ISBN: 0-201-11317-1

Аннотация:

Руководство по реляционной СУБД DВ2. Книга американского специалиста в области реляционных баз дачных К. Дейта, автора популярной в СССР монографии «Введение в системы баз данных» представляет собой руководство по перспективной СУБД фирмы ИБМ DB2, сочетающей возможности широко известной системы IMS/VS и реляционной СУБД Для специалистов по программному обеспечению информационных систем и студентов вузов.

Скачать книгу из интернета:

Clicking social button for download (кликнете на соцзначек для скачивания)

Вас заинтересует / Intresting for you:

Информация / Заказ

2023. 1896 с. Твердый переплет. 3499 р.

Стивен Коткин, всемирно известный историк, профессор Принстонского университета (США), предпринял успешную попытку написать тотальную историю сталинского режима и его воздействия на Евразию и остальной мир. В первом томе — «Парадоксы власти» — изучается история жизни и деятельности Сталина от рождения… (Подробнее)


Информация / Заказ

2023. 476 с. Интегральный переплет. 539 р.

Книга выпущена в рамках издательской программы Института системно-стратегических исследований (рук. А.И. Фурсов). 2022 год во всех смыслах стал переломным. Военная фаза длительного украинского конфликта стала продолжением деструкции политического, социально-экономического и культурного (в самом… (Подробнее)


Информация / Заказ

URSS. 2023. 512 с. Мягкая обложка. 1139 р. Новинка недели!

Широкое внедрение алгебраических методов в теоретическую физику не является новостью. Калибровочные поля и их интерпретация на языке расслоенных пространств, суперсимметричные расширения полевых теорий, возникновение теорий Великого объединения, струнных моделей, квантовой петлевой гравитации —… (Подробнее)


Информация / Заказ

2023. 160 с. Твердый переплет. 2999 р.

Эта книга — трогательная история для взрослых о поиске себя. Большая Панда и Маленький Дракон отправляются в путешествие по временам года. Они часто теряются, как и многие из нас. Но, заблудившись, делают для себя множество прекрасных открытий. (Подробнее)


Информация / Заказ

URSS. 2023. 160 с. Твердый переплет. 699 р.

Технологическая динамика выступает важным показателем экономического развития и предметом в рамках структурной политики. Серьезным «камнем преткновения» в области технологического развития является технологический дуализм, который может приобретать форму весьма специфического для данной экономики… (Подробнее)


Информация / Заказ

URSS. 2023. 272 с. Мягкая обложка. 799 р.

В 2001 г. за разработку новой технологии производства посадочного материала методом зеленого черенкования Михаилу Трофимовичу Тарасенко была присуждена Государственная премия Российской Федерации в области науки и техники.

В настоящей книге обобщены результаты полувековых исследований автора… (Подробнее)


Информация / Заказ

URSS. 2023. 416 с. Мягкая обложка. 1139 р.

В монографии, посвященной 300-летию Российской академии наук, представлены результаты совместных исследований группы ведущих российских ученых, разрабатывающих новые теоретико-методологические подходы, основанные на применении инструментов экономики качества и больших агент-ориентированных моделей для… (Подробнее)


Информация / Заказ

URSS. 2023. 312 с. Мягкая обложка. 879 р.

Вниманию читателей предлагается книга одного из наиболее выдающихся экономистов XX века Йозефа Шумпетера, в которую вошли биографические и одновременно теоретико-экономические статьи о жизни и творчестве ученых, ставших классиками экономической науки. Автор обобщает колоссальный объем знаний… (Подробнее)


Информация / Заказ

2020. 912 с. Твердый переплет. 3699 р.

«В зеркале супермоделей» это издание из двух книг о том, как на самом деле используются теоретические модели в реальных финансах. Читатель узнает, как стать гораздо более продуктивным и успешным, если смотреть на финансовый мир с разных точек зрения через призму моделей. А еще это — своебразный… (Подробнее)


Информация / Заказ

2023. 1318 с. Твердый переплет. 2799 р.

Впервые в мировой научно-технической литературе в объеме одного комплексного издания последовательно и детально исследован феномен программных и аппаратных троянов, которые фактически являются технологической платформой современного и перспективного информационно-технического оружия (кибероружия)…. (Подробнее)

Пример проектирования базы данных «Библиотека»

Пример
проектирования базы данных «Библиотека»

Назначение и предметная область

База данных предназначена для хранения данных о приобретенных библиотекой
изданиях (монографиях, справочниках, сборниках статей и т.п.), информации о
местонахождении отдельных экземпляров (переплетов) каждого издания и сведений о
читателях.

Д27

Дейт К. Руководство по реляционной СУБД DB2 / Пер. с англ.
и предисл. М.Р.Когаловского. – М.: Финансы и статистика, 1988. – 320 с.: ил.

ISBN 5-279-00063-9

Книга американского специалиста в области реляционных баз данных К.Дейта,
автора популярной в СССР монографии «Введение в системы баз данных»
(М.: Наука, 1981), представляет собой руководство по перспективной СУБД фирмы
ИБМ DB2, сочетающей возможности широко известной системы IMS/VS и реляционной
СУБД.
Для специалистов по программному обеспечению информационных систем и
студентов вузов.

ББК 32.973

Рис. 5.1. Макет аннотированной
каталожной карточки

Для ведения библиотечных каталогов, организации поиска требуемых изданий и
библиотечной статистики в базе должны храниться сведения, большая часть которых
размещаются в аннотированных каталожных карточках (рис. 5.1). Анализ запросов
на литературу (как читателями, так и сотрудниками библиотек) показывает, что
для поиска подходящих изданий (по тематике, автору, художнику, издательству и
т.п.) и отбора нужного (например, по аннотации) следует выделить следующие
атрибуты каталожной карточки:

1. Автор (фамилия и имена (инициалы) или псевдоним каждого автора издания).

2. Название (заглавие) издания.

3. Номер тома (части, книги, выпуска).

4. Вид издания (сборник, справочник, монография, …).

5. Составитель (фамилия и имена (инициалы) каждого из составителе издания).

6. Язык, с которого выполнен перевод издания.

7. Переводчик (фамилия и инициалы каждого переводчика).

8. Под чей редакцией (фамилия и имена (инициалы) каждого из титульных
редакторов).

9. Художник (фамилия и имена (инициалы) каждого художника-иллюстратора) —
для художественных изданий, иллюстрируемых оригинальными рисунками.

10. Повторность издания (второе, одиннадцатое и т.п.).

11. Характер переиздания (исправленное, дополненное, переработанное,
стереотипное и т.п.).

12. Место издания (город).

13. Издательство (название издательства).

14. Год выпуска издания.

15. Издательская аннотация или реферат.

16. Библиотечный шифр (например, ББК 32.973).

17. Авторский знак (например, Д27).

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

Библиотечно-библиографическая классификация (ББК) распределяет издания по
отраслям знания в соответствии с их содержанием. В ней используется
цифро-буквенные индексы ступенчатой структуры.

Каждый из девяти классов (1. Марксизм-ленинизм; 2. Естественные науки; 3.
Техника. Технические науки; 4. Сельское и лесное хозяйство; 5. Здравоохранение;
6/8. Общественные и гуманитарные науки; 9. Библиографические пособия.
Справочные издания. Журналы.) делится на подклассы и следующие ступени деления:

 3. Техника. Технические науки.
 32 Радиоэлектроника.
32.97 Вычислительная техника.
 32.973 Электронные
вычислительные машины и устройства.
32.973.2
Электронно вычислительные машины и устройства дискретного действия.

Шифр ББК используется при выделении хранимым изданиям определенных комнат,
стеллажей и полок, а также для составления каталогов и статистических отчетов.

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

К объектам и атрибутам, позволяющим охарактеризовать отдельные экземпляры
изданий (переплеты), места их хранения и читателей, можно отнести:

18. Номер комнаты (помещения для хранения переплетов).

19. Номер стеллажа в комнате.

20. Номер полки на стеллаже.

21. Номер (инвентарный номер) переплета.

22. Дата приобретения конкретного переплета.

23. Цена конкретного переплета.

24. Дата размещения конкретного переплета на конкретном месте.

25. Дата изъятия переплета с установленного места.

26. Номер читательского билета (формуляра).

27. Фамилия читателя.

28. Имя читателя.

29. Отчество читателя.

30. Адрес читателя.

31. Телефон читателя.

32. Дата выдачи читателю конкретного переплета.

33. Срок, на который конкретный переплет выдан читателю.

34. Дата возврата переплета.

Построение инфологической модели

Анализ определенных выше объектов и атрибутов позволяет выделить сущности
проектируемой базы данных и, приняв решение о создании реляционной базы данных,
построить ее инфологическую модель на языке «Таблицы-связи» (рис.
5.2).

К стержневым сущностям можно отнести:

  1. Создатели
    (Код создателя, Создатель).

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

    Так как фамилия и имена (инициалы) создателя могут быть достаточно
    громоздкими (М.Е. Салтыков-Щедрин, Франсуа Рене де Шатобриан, Остен Жюль
    Жан-Батист Ипполит и т.п.) и будут многократно встречаться в разных
    изданиях, то их целесообразно нумеровать и ссылаться на эти номера. Для
    этого вводится целочисленный атрибут «Код_создателя», который
    будет автоматически наращиваться на единицу при вводе в базу данных нового
    автора, переводчика или другого создателя.

    Аналогично создаются: Код_издательства, Код_заглавия, Вид_ издания,
    Код_характера, Код_языка, Номер_билета, Номер_пере- плета, Код_места и
    Код_издания, замещающие от одного до девяти атрибутов.

  2. Издательства (Код_издательства,
    Название, Город).
  3. Заглавия
    (Код_заглавия, Заглавие).

    Выделение этой сущности позволит сократить объем данных и снизить
    вероятность возникновения противоречивости (исключается необходимость
    ввода длинных текстовых названий для различных томов собраний сочинений,
    повторных изданий, учебников и т.п.).

  4. Вид_издания (Вид_издания,
    Название_вида).
  5. Характеры (Код_характера,
    Характер_переиздания).
  6. Языки
    (Код_языка, Язык, Сокращение).

    Кроме названия языка хранится его общепринятое сокращение (англ., исп.,
    нем., фр.), если оно существует.

  7. Места
    (Код_места, Номер_комнаты, Номер_стеллажа, Номер_ полки).

    Один из кодов этой сущности (например, «-1») отведен для
    описания обобщенного места, находящегося за стенами хранилища книг
    (издание выдано читателю, временно передано другой библиотеке или
    организации).

  8. Читатели (Номер_билета,
    Фамилия, Имя, Отчество, Адрес, Телефон).

Две ключевые сущности, описывающие издание и его конкретные экземпляры,
оказываются зависимыми от других сущностей и попадают в класс обозначений:

  1. Издание (Код_издания,
    Код_заглавия, Вид_издания, Номер_тома, Авторский_знак, Библиотечн_шифр,
    Повторность, Код_издательства, Год_издания, Аннотация) [Заглавия,
    Вид_издания, Издательства];
  2. Переплеты (Номер_переплета,
    Код_издания, Цена, Дата_приобретения)[Издания];

Стержневые сущности и обозначения связаны между собой ассоциациями:

  1. Авторы [Создатели M,
    Издание N] (Код_создателя, Код_издания).
  2. Составители [Создатели M,
    Издания N] (Код_создателя, Код_издания).
  3. Редакторы [Создатели M,
    Издания N] (Код_создателя, Код_издания).
  4. Художники [Создатели M,
    Издания N] (Код_создателя, Код_издания).
  5. Переводчики [Создатели M,
    Издания N] (Код_создателя, Код_издания, Язык).
  6. Переиздания [Характеры M,
    Издания N] (Код_характера, Код_издания).
  7. Размещение [Места M,
    Переплеты N] (Код_места, Номер_переплета, Дата_размещения,
    Дата_изъятия).
  8. Выдача [Читатели M,
    Переплеты N] (Номер_билета, Номер_переплета, Дата_выдачи,
    Срок, Дата_возврата).

И, наконец, для уменьшения объема часто используемого обозначения
«Издания» из него выделена характеристика:

  1. Аннотации (Код_издания,
    Аннотация) {Издание}.

Рис. 5.2. Инфологическая модель
базы данных «Библиотека», построенная с помощью языка
«Таблицы-связи»

Проектирование базы данных

В соответствие с процедурой проектирования (п. 4.4)
каждая из полученных сущностей должна быть представлена базовой таблицей.
Первый вариант этих таблиц описывается так:

СОЗДАТЬ ТАБЛИЦУ Создатели *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_создат )

           ПОЛЯ ( Код_создат Целое, Фам_ИО Текст 30 );

СОЗДАТЬ ТАБЛИЦУ Издательства *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_издательства )

           ПОЛЯ ( Код_издательства Целое, Название

                  Текст 40, Город Текст 25 );

СОЗДАТЬ ТАБЛИЦУ Заглавия *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_заглавия )

           ПОЛЯ ( Код_заглавия Целое, Заглавие Запись );

СОЗДАТЬ ТАБЛИЦУ Вид_издания *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Вид_издания )

           ПОЛЯ ( Вид_издания Целое, Название_вида Текст 16);

СОЗДАТЬ ТАБЛИЦУ Характеры *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_характера )

СОЗДАТЬ ТАБЛИЦУ Языки *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_языка )

           ПОЛЯ ( Код_языка Целое, Язык Текст 16, Сокращение Текст 6 );

СОЗДАТЬ ТАБЛИЦУ Места *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_места )

           ПОЛЯ ( Код_места Целое, Номер_комнаты Целое,

                  Номер_стелажа Целое, Номер_полки Целое );

СОЗДАТЬ ТАБЛИЦУ Читатели *( Стержневая сущность )

ПЕРВИЧНЫЙ КЛЮЧ ( Ном_билета )

           ПОЛЯ ( Ном_билета Целое, Фамилия Текст 20, Имя Текст 16,

                  Отчество Текст 20, Адрес Текст 60, Телефон Текст 9 );

СОЗДАТЬ ТАБЛИЦУ Издание *( Обозначение )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_издания )

   ВНЕШНИЙ КЛЮЧ ( Код_заглавия ИЗ Заглавия

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Заглавия ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Заглавия.Код_заглавия ОГРАНИЧИВАЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Вид_издания ИЗ Вид_издания

                  NULL-значения ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Вид_издания ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Вид_издания.Вид_издания КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Код_издательства ИЗ Издательства

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Издательства ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Издательства.Код_издательства КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Код_издания Целое, Код_заглавия Целое,

                  Вид_издания Текст 16, Номер_тома Целое,

                  Авторский_знак Текст 3, Библиотечн_шифр Текст 12,

                  Повторность Целое, Код_издательст- ва Целое,

                  Год_издания Целое )

    ОГРАНИЧЕНИЯ ( 1. Значения полей Код_заглавия, Вид_издания

                  и Код_издательства должны принадлежать набору значений

                  соответствующих полей таблиц Заглавия, Вид_издания

                  и Издательства; при нарушении вывод сообщения «Такого

                  заглавия нет», «Такого вида издания нет» или «Такого

                  издательства нет». );

СОЗДАТЬ ТАБЛИЦУ Переплеты *( Обозначение )

ПЕРВИЧНЫЙ КЛЮЧ ( Номер_переплета )

   ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Номер_переплета Целое, Код_издания Целое, Цена Деньги,

                  Дата_приобретения Дата )

    ОГРАНИЧЕНИЯ ( Значения поля Код_издания должны принадлежать набору

                  значений соответствующего поля таблицы Издания;

                  при нарушении вывод сообщения «Такого издания нет» );

СОЗДАТЬ ТАБЛИЦУ Аннотации *( Характеризует Издания )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_издания )

   ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания

                  NULL-значения ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Код_издания Целое, Аннотация Запись )

    ОГРАНИЧЕНИЯ ( Значения поля Код_издания должны принадлежать набору

                  значений соответствующего поля таблицы Издания;

                  при нарушении вывод сообщения «Такого издания нет» );

СОЗДАТЬ ТАБЛИЦУ Авторы *( Связывает Создатели и Издания )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_создателя, Код_издания )

   ВНЕШНИЙ КЛЮЧ ( Код_создателя ИЗ Создатели

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Создатели ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Создатели.Код_создателя КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Код_создателя Целое, Код_издания Целое )

    ОГРАНИЧЕНИЯ ( Значения полей Код_создателя и Код_издания должны

                  принадлежать набору значений соответствующих полей

                  сообщения «Такого автора нет» или «Такого издания нет» );

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

СОЗДАТЬ ТАБЛИЦУ Переводчики *( Связывает Создатели, Издания и Языки)

ПЕРВИЧНЫЙ КЛЮЧ ( Код_создателя, Код_издания )

   ВНЕШНИЙ КЛЮЧ ( Код_создателя ИЗ Создатели

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Создатели ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Создатели.Код_создателя КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Код_издания ИЗ Издания

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Издания ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Издания.Код_издания КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Код_языка ИЗ Языки

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Языки ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Языки.Код_языка КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Код_создателя Целое, Код_издания Целое )

    ОГРАНИЧЕНИЯ ( Значения полей Код_создателя, Код_издания и

                  Код_языка должны принадлежать набору значений

                  соответствующих полей таблиц Создатели, Издание

                  и Языки; при нарушении вывод сообщения «Такого

                  автора нет» или «Такого издания нет» или «Такого

                  языка нет»);

СОЗДАТЬ ТАБЛИЦУ Размещение *( Связывает Места и Переплеты )

ПЕРВИЧНЫЙ КЛЮЧ ( Код_места, Номер_переплета )

   ВНЕШНИЙ КЛЮЧ ( Код_места ИЗ Места

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Места ОГРАНИЧИВАЕТСЯ

                  ОБНОВЛЕНИЕ Места.Код_места КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Номер_переплета ИЗ Переплеты

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Переплеты КАСКАДИРУЕТСЯ

                  ОБНОВЛЕНИЕ Переплеты.Ном_переплета КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Код_места Целое, Номер_переплета Целое,

                  Дата_размещения Дата, Дата_изъятия Дата )

    ОГРАНИЧЕНИЯ ( Значения полей Код_места и Номер_переплета

                  должны принадлежать набору значений соответствующих

                  полей таблиц Переплеты и Места; при нарушении вывод

                  сообщения «Такого переплета нет» или «Такого места нет» );

СОЗДАТЬ ТАБЛИЦУ Выдача *( Связывает Читатели и Переплеты )

ПЕРВИЧНЫЙ КЛЮЧ ( Ном_билета, Ном_переплета )

   ВНЕШНИЙ КЛЮЧ ( Ном_билета ИЗ Читатели

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Читатели КАСКАДИРУЕТСЯ

                  ОБНОВЛЕНИЕ Читатели.Ном_билета КАСКАДИРУЕТСЯ)

   ВНЕШНИЙ КЛЮЧ ( Ном_переплета ИЗ Переплеты

                  NULL-значения НЕ ДОПУСТИМЫ

                  УДАЛЕНИЕ ИЗ Переплеты КАСКАДИРУЕТСЯ

                  ОБНОВЛЕНИЕ Переплеты.Ном_переплета КАСКАДИРУЕТСЯ)

           ПОЛЯ ( Ном_билета Целое, Ном_переплета Целое, Дата_выдачи Дата,

                  Срок Целое, Дата_возврата Дата )

    ОГРАНИЧЕНИЯ ( Значения полей Ном_билета и Ном_переплета должны

                  принадлежать набору значений соответствующих полей таблиц

                  Читатели и Переплеты; при нарушении вывод сообщения

                  «Такого читателя нет» или  «Такого переплета нет» );

Теперь следует проверить, не нарушены ли в данном прокете какие-либо
принципы нормализации (п. 4.6),
т.е. что любое неключевое поле каждой таблицы:

  • функционально зависит от
    полного первичного ключа, а не от его части (если ключ составной);
  • не имеет функциональной
    зависимости от другого неключевого поля.
  • Сущности Авторы,
    Составители, Редакторы, Художники и Переиздания, не имеющие неключевых
    полей, безусловно нормализованы. Нормализованы и сущности Создатели,
    Характеры, Заглавия, Вид_издания и Аннотации, состоящие из несоставного
    ключа и единственного неключевого поля.

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

Наконец, анализ сущностей Издания, Переплеты, Места, Читатели и Языки,
показал, что единственной «подозрительной» сущностью является
стержень Языки, имеющий два функционально связанных неключевых поля: Язык и
Сокращение.

Поле Язык стало неключевым из-за ввода цифрового первичного ключа Код_языка,
заменяющего текстовый возможный ключ Язык. Это позволило уменьшить объем
хранимых данных в таблице Переводчики, затраты труда на ввод множества
текстовых значений и возможной противоречивости, которая часто возникает из-за
ввода в разные поля ошибочных дубликатов (например, «Английский»,
«Англиский», «Анлийский», «Англйский» и т.п.).
Если мы вспомним рекомендации п. 4.5
о замене на время нормализации цифровыз заменителей первичных ключей
(Код_языка) на исходный ключ (Язык) или воспользуемся формулировкой НФБК, то
окажется, что таблица Языки – нормализована.

Для завершения проекта необходимо было бы ввести в описания таблиц
дополнительные сведения об ограничениях целостности (выше указан лишь
минимальный их набор) и дать описание некоторых таблиц, но ограниченнный объем
публикации не позволяет включать эти подробности, не являющиеся принципиальными
для иллюстрации процедуры проектирования.

ЛИТЕРАТУРА

  1. Атре Ш. Структурный подход
    к организации баз данных. – М.: Финансы и статистика, 1983. – 320 с.
  2. Бойко В.В., Савинков В.М.
    Проектирование баз данных информационных систем. – М.: Финансы и
    статистика, 1989. – 351 с.
  3. Дейт К. Руководство по
    реляционной СУБД DB2. – М.: Финансы и статистика, 1988. – 320 с.
  4. Джексон Г. Проектирование
    реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. – 252
    с.
  5. Кириллов В.В.
    Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.
  6. Мартин Дж. Планирование
    развития автоматизированных систем. – М.: Финансы и статистика, 1984. –
    196 с.
  7. Мейер М. Теория реляционных
    баз данных. – М.: Мир, 1987. – 608 с.
  8. Тиори Т., Фрай Дж.
    Проектирование структур баз данных. В 2 кн., – М.: Мир, 1985. Кн. 1. – 287
    с.: Кн. 2. – 320 с.
  9. Ульман Дж. Базы данных на Паскале.
    – М.: Машиностроение, 1990. – 386 с.
  10. Хаббард Дж.
    Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294 с.
  11. Цикритизис Д., Лоховски Ф.
    Модели данных. – М.: Финансы и статистика, 1985. – 344 с.

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

В алгоритме повышения в должности две составляющие: объективная и субъективная. А именно: высокая результативность работы и вотум личного доверия руководителя

Тактика и действия для служебного продвижения

Грамотно построенный разговор с начальником о повышении должности гарантирует 50 % успеха

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

Хорошим поводом, например, станет:

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

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

Аргументируйте свое ходатайство цифрами и фактами:

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

Совет: для того чтобы Ваш спич был эффективным — изложенную на бумаге речь, отредактируйте и сократите. Монолог должен быть коротким, но с большим количеством фактов, плюс в меру эмоциональным.

Избегайте ошибок:

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

Третий шаг: отрепетируйте свою речь. Не смущайтесь самого себя и сделайте это перед зеркалом. Монолог на тему: почему Вы достойны подняться на следующею ступень карьерной лестницы должен звучать убедительно.

Говорить необходимо: четко и твердо; в меру эмоционально; без «проглоченных» окончаний, без пауз на подбор нужных доводов, без слов-паразитов («э-э-э», «ну», «как сказать» и так далее).

Совет: во время беседы смотрите визави в глаза и держитесь уверенно, как человек, которому можно доверять.

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

С просьбой о рандеву обращайтесь, если точно уверены:

  • нет производственного аврала;
  • не проводятся проверки; не планируются важные переговоры с партнерами;
  • босс не попал под критику вышестоящего руководства…

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

Избегайте ошибок:

  • не подходите к начальнику и не начинайте разговор между делом — в коридоре, лифте, столовой, на корпоративном мероприятии;
  • не опаздывайте на встречу.

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

Шестой шаг: уверенно начинайте свою презентацию! После чего будьте готовы ответить на любые вопросы. Делайте это лаконично и только по существу. Совет: не настаивайте на ответе о продвижении по службе, как говорится, «с колес». Просто спросите, когда подойти, чтобы узнать решение.

А пока шеф взвешивает «за» и «против» (ему может понадобиться несколько дней), трудитесь, как и раньше.

Вы получили отказ в повышении должности?

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

Советы

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

Как добиться повышения после отказа

Станьте незаменимым специалистом: ценным, управляемым, безопасным для руководителя и Ваша просьба о повышении в должности будет удовлетворена

Существует несколько основных критериев, которые влияют на решение руководителя: продвигать по службе человека или нет. Первый — ценность специалиста. Второй — управляемость сотрудника. Третий — безопасность подчиненного для начальника.

Ценность специалиста. Речь идет об уверенности босса в том, что Вам под силу достижение поставленных целей и он останется довольным результатами. В интересах шефа: дать повышение кандидатам, которым с уверенностью можно делегировать часть полномочий и заняться планированием важных задач.

Советы

  • Всегда и своевременно рапортуйте о проделанной работе и полученных достижениях.
  • Перетягивайте на себя функции по координации работы над общими и проектами.
  • Даже при очень большой загрузке не отказывайтесь от присутствия на формальных и неформальных мероприятиях.

Управляемость подчиненным. Начальник должен быть уверен, что Вы выполните его указание абсолютно точно. Ведь ему не нужны «сюрпризы», связанные с переделыванием работы или переносом сроков. Также он должен чувствовать уважение, и готовность следовать его распоряжениям.

Советы

  • Играйте по правилам босса Демонстрируйте уважительное отношение к нему и его должности.
  • Точно выполняйте задания (если есть предложения по оптимизации какого-либо процесса, то обязательно посоветуйтесь).
  • Свои идеи излагайте с газа на глаз.
  • Не спорьте и не огрызайтесь в присутствии коллег.
  • Не используйте командный тон.

Безопасность сотрудника для руководителя. Каждый начальник хочет видеть в своей команде профессионалов, ведь от их навыков зависят показатели структурного подразделения и, как следствие, его личная карьера. Равнозначно важен и фактор доверия к людям, работающим в коллективе. Шеф, как и любой из нас, стремиться окружить себя единомышленниками, на поддержку которых может рассчитывать, а также теми, кто не подставит и не подсидит.

Советы: как получить вотум доверия начальника

  • Не демонстрируйте своего превосходства над ним.
  • Не поддерживайте оппонентов (если делового общения с такими людьми избежать нельзя, то он должен знать о теме переговоров).
  • Не критикуйте его в коллективе.

И главное: не ищите виноватых и не вините себя в том, что с первой попытки не получили продвижения по службе. Проанализируете ситуацию, определите «узкие места» и устраните их. Подсказки можно найти как в аргументах руководителя, так и в публикации «Как активизировать карьерный рост: о чем молчит менеджмент».

Книжные памятники Свет

Обратная связь
Версия для слабовидящих

Войти

НЭБ

  • Коллекции и спецпроекты

  • Новости

  • Электронные читальные залы

  • Информация для библиотек

  • Программное обеспечение для библиотек

  • Вопросы и ответы

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

  • Форум

Наши продукты

  • Книжные памятники

  • Свет

  • Мы в соцсетях

    Версия для слепых

    Руководство по реляционной СУБД DB2

    Руководство по реляционной СУБД DB2

    Дейт К.

    Дейт К.

    320 с.

    Количество страниц

    1988

    Год издания

    М.

    Место издания

    О произведении

    Издательство

    Финансы и статистика

    Ответственность

    Когаловский М.Р.

    ISBN

    5-279-00063-9

    ББК

    З973.2

    УДК

    681.3.06.016

    Язык

    Русский

    Еще

    Примечание содержания

    ISBN 5-279-00063-9

    Еще

    Общее примечание

    ISBN 5-279-00063-9

    Еще

    Библиотека

    ЭКБСОН

    Еще

    Ближайшая библиотека с бумажным экземпляром издания

    Пожалуйста, авторизуйтесь

    Вы можете добавить книгу в избранное после того, как
    авторизуетесь на портале. Если у вас еще нет учетной записи, то
    зарегистрируйтесь.

    Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта "IBM Database 2" фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT

    Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT

    Описание:

    Дейт К.Д. Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT / Пер. с англ. [и предисл.] М.Р. Когаловского. — М. : Финансы и статистика, 1988. — 319, [1] с. : ил. ; 22 см. — Библиогр.: с 314-315 (15 назв.). — Предм. указ.: с. 316-317

    Примечания:

    Перевод изд.: A guide to DB2 / C.J. Date (Reading, Mass etc.) . — Библиогр.: с 314-315 (15 назв.) . — Предм. указ.: с. 316-317

    Дата создания:

    2020-10-25 14:27:51

    Пожалуйста, помогите актуализировать информацию

    Загрузить фотографию актуальной обложки книги

    Дополнить или обновить информацию о книге

    Купить

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Недоступно

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть

    • Посмотреть





    Реферат по теме Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT

    Базы данных и SQL | Основы SQL

    Вводная лекция курса Основы SQL. Страница курса — https://www.asozykin.ru/courses/sql 00:00 — SQL — один из самых востребованных языков 00:27 …

    Andrey Sozykin

    Помогите сайту стать лучше, ответьте на несколько вопросов про книгу:
    Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT

    Опросы

    Книга запрещена в странах СНГ?

    Содержание

    • Объявление о покупке
    • Книги этих же авторов
    • Наличие в библиотеках
    • Рецензии и отзывы
    • Похожие книги
    • Наличие в магазинах
    • Информация от пользователей
    • Книга находится в категориях

    Реставрация Руководство по реляционной СУБД DB2 : Руководство для пользователей прогр. продукта «IBM Database 2» фирмы IBM (реляц. системы управления базами данных, функционирующей в обстановке операц. системы MVS) и сопутствующих прогр. продуктов QMF и DXT

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

    Показать контакты

    Объявление о покупке (разыскивается книга)

    Подпишитесь на новые объявления

    Уроки SQL для начинающих / #1 — Что такое SQL? Установка локального сервера

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

    Гоша Дударь

    Генерация базы по модели ERWIN

    Moodle Donguu

    Лекция 2, Семененко Сергей, Эволюция аналитических хранилищ данных

    Рoстeлeкoм

    Наличие в библиотеках

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Централизованная библиотечная система, КГУ

    Астана, Астана, Сарыарка район
    Конституции, 2/2
    Расположение на карте

    санитарный день: последний день месяца
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Сб: 09:00-18:00

    astana-library.kz

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотеки Тольятти, МБУК

    Самарская область, Тольятти городской округ, Тольятти, Центральный район, 75-й квартал
    Жилина, 44
    Расположение на карте

    Пн: 09:00-17:00
    Вт: 09:00-17:00
    Ср: 09:00-17:00
    Чт: 09:00-17:00
    Пт: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека им. В.А. Сухомлинского

    Чувашская Республика, Чебоксары городской округ, Чебоксары, Московский район, Чапаевский
    Энтузиастов, 21
    Расположение на карте

    санитарный день: последний чт месяца
    Пн: 09:00-18:00
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Вс: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека-музей им. П.Д. Пономарёва

    Воронежская область, Воронеж городской округ, Воронеж, Коминтерновский район
    Московский проспект, 109
    Расположение на карте

    зимний период: вт-вс 10:00-19:00; пн выходной; санитарный день: последний чт месяца
    Пн: 10:00-19:00
    Вт: 10:00-19:00
    Ср: 10:00-19:00
    Чт: 10:00-19:00
    Пт: 10:00-19:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека №20

    Воронежская область, Воронеж городской округ, Воронеж, Железнодорожный район
    Артамонова, 38
    Расположение на карте

    санитарный день: последний чт месяца; зимний период: вт-вс 10:00-19:00; пн выходной
    Пн: 10:00-19:00
    Вт: 10:00-19:00
    Ср: 10:00-19:00
    Чт: 10:00-19:00
    Пт: 10:00-19:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Централизованная библиотечная система г. Оби

    Новосибирская область, Обь городской округ, Обь
    Геодезическая, 68
    Расположение на карте

    санитарный день: последний день месяца
    Пн: 09:00-18:00
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Сб: 09:00-17:00

    библиотека-обь.рф

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека №6 им. Т.Г. Шевченко

    Пермский край, Пермь городской округ, Пермь, Орджоникидзевский район, Лёвшино
    Социалистическая, 4
    Расположение на карте

    санитарный день: последний рабочий день месяца; июнь-август: пн-пт 11:00-19:00
    Пн: 11:00-19:00
    Вт: 11:00-19:00
    Ср: 11:00-19:00
    Чт: 11:00-19:00
    Пт: 11:00-19:00
    Сб: 10:00-18:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека

    Краснодарский край, Динской район, ст-ца Васюринская
    Ставского, 19
    Расположение на карте

    Пн: 09:00-17:00
    Вт: 09:00-17:00
    Ср: 09:00-17:00
    Чт: 09:00-17:00
    Сб: 09:00-16:00
    Вс: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека №3

    Республика Мордовия, Саранск городской округ, Саранск, Пролетарский район, Светотехстрой
    Никула Эркая, 36 к3
    Расположение на карте

    санитарный день: последний день месяца
    Пн: 08:00-17:00
    Вт: 08:00-17:00
    Ср: 08:00-17:00
    Чт: 08:00-17:00
    Пт: 08:00-17:00
    Вс: 08:00-15:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека им. Веры Чаплиной

    Омская область, Омск городской округ, Омск, Ленинский округ
    Новокирпичная, 5
    Расположение на карте

    санитарный день: последний день месяца; зимний период: пн-пт 10:00-18:00; вс 9:00-17:00
    Пн: 10:00-18:00
    Вт: 10:00-18:00
    Ср: 10:00-18:00
    Чт: 10:00-18:00
    Пт: 10:00-18:00

    www.lib.omsk.ru
    Вконтакте: 
    https://vk.com/lovebooks

    Основные приемы работы в СУБД Access

    В примере показаны основные приемы работы в СУБД Microsoft Access — создание таблиц и наполнение их информацией, создание и …

    Стань IT-гуру
    Уроки SQLite. Графический менеджер баз данных DBeaver: установка и запуск на Windows 10

    В этом видео мы посмотрим откуда скачать менеджер баз данных DBeaver и попробуем его запустить на Windows 10, также мы рассмотрим базовые …

    Кирилл Антонов
    Урок №1. Создание базы данных и отображение данных.

    ВСЕ КТО ПРОСИЛ БИБЛИОТЕКУ! http://files.mail.ru/75896DCAEB94470FA43F6852B0272586 — библиотека EhLib В серии видеоуроков будет рассказано …

    RuLooper
    [ИТ-лекторий]: Postgres Professional – Будущее баз данных

    Спикер: Олег Бартунов, основатель и генеральный директор компании Postgres Professional; На встрече Олег Бартунов расскажет о базах данных …

    ФКН ВШЭ

    Наличие в библиотеках

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Централизованная библиотечная система, КГУ

    Астана, Астана, Сарыарка район
    Конституции, 2/2
    Расположение на карте

    санитарный день: последний день месяца
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Сб: 09:00-18:00

    astana-library.kz

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотеки Тольятти, МБУК

    Самарская область, Тольятти городской округ, Тольятти, Центральный район, 75-й квартал
    Жилина, 44
    Расположение на карте

    Пн: 09:00-17:00
    Вт: 09:00-17:00
    Ср: 09:00-17:00
    Чт: 09:00-17:00
    Пт: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека им. В.А. Сухомлинского

    Чувашская Республика, Чебоксары городской округ, Чебоксары, Московский район, Чапаевский
    Энтузиастов, 21
    Расположение на карте

    санитарный день: последний чт месяца
    Пн: 09:00-18:00
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Вс: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека-музей им. П.Д. Пономарёва

    Воронежская область, Воронеж городской округ, Воронеж, Коминтерновский район
    Московский проспект, 109
    Расположение на карте

    зимний период: вт-вс 10:00-19:00; пн выходной; санитарный день: последний чт месяца
    Пн: 10:00-19:00
    Вт: 10:00-19:00
    Ср: 10:00-19:00
    Чт: 10:00-19:00
    Пт: 10:00-19:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека №20

    Воронежская область, Воронеж городской округ, Воронеж, Железнодорожный район
    Артамонова, 38
    Расположение на карте

    санитарный день: последний чт месяца; зимний период: вт-вс 10:00-19:00; пн выходной
    Пн: 10:00-19:00
    Вт: 10:00-19:00
    Ср: 10:00-19:00
    Чт: 10:00-19:00
    Пт: 10:00-19:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Централизованная библиотечная система г. Оби

    Новосибирская область, Обь городской округ, Обь
    Геодезическая, 68
    Расположение на карте

    санитарный день: последний день месяца
    Пн: 09:00-18:00
    Вт: 09:00-18:00
    Ср: 09:00-18:00
    Чт: 09:00-18:00
    Пт: 09:00-18:00
    Сб: 09:00-17:00

    библиотека-обь.рф

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Библиотека №6 им. Т.Г. Шевченко

    Пермский край, Пермь городской округ, Пермь, Орджоникидзевский район, Лёвшино
    Социалистическая, 4
    Расположение на карте

    санитарный день: последний рабочий день месяца; июнь-август: пн-пт 11:00-19:00
    Пн: 11:00-19:00
    Вт: 11:00-19:00
    Ср: 11:00-19:00
    Чт: 11:00-19:00
    Пт: 11:00-19:00
    Сб: 10:00-18:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека

    Краснодарский край, Динской район, ст-ца Васюринская
    Ставского, 19
    Расположение на карте

    Пн: 09:00-17:00
    Вт: 09:00-17:00
    Ср: 09:00-17:00
    Чт: 09:00-17:00
    Сб: 09:00-16:00
    Вс: 09:00-17:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека №3

    Республика Мордовия, Саранск городской округ, Саранск, Пролетарский район, Светотехстрой
    Никула Эркая, 36 к3
    Расположение на карте

    санитарный день: последний день месяца
    Пн: 08:00-17:00
    Вт: 08:00-17:00
    Ср: 08:00-17:00
    Чт: 08:00-17:00
    Пт: 08:00-17:00
    Вс: 08:00-15:00

    Название и адрес

    Режим работы

    Контактная информация

    Телефон

    Детская библиотека им. Веры Чаплиной

    Омская область, Омск городской округ, Омск, Ленинский округ
    Новокирпичная, 5
    Расположение на карте

    санитарный день: последний день месяца; зимний период: пн-пт 10:00-18:00; вс 9:00-17:00
    Пн: 10:00-18:00
    Вт: 10:00-18:00
    Ср: 10:00-18:00
    Чт: 10:00-18:00
    Пт: 10:00-18:00

    www.lib.omsk.ru
    Вконтакте: 
    https://vk.com/lovebooks

    Информация от пользователей

    Введение в DB2

    В этой главе описывается история DB2, ее версий, выпусков и соответствующих функций.

    обзор

    DB2 – это продукт базы данных от IBM. Это система управления реляционными базами данных (RDBMS). DB2 предназначена для эффективного хранения, анализа и извлечения данных. Продукт DB2 расширен за счет поддержки объектно-ориентированных функций и нереляционных структур с XML.

    история

    Первоначально IBM разработала продукт DB2 для своей конкретной платформы. С 1990 года было решено разработать сервер DB2 Universal Database (UDB), который может работать в любых авторитетных операционных системах, таких как Linux, UNIX и Windows.

    Версии

    Для IBM DB2 текущая версия UDB – 10.5 с функциями BLU Acceleration и его кодовым названием «Kepler». Все версии DB2 до сегодняшнего дня перечислены ниже:

    Версия Кодовое имя
    3,4 паутина
    8.1, 8.2 Жало
    9,1 гадюка
    9,5 Viper 2
    9,7 кобра
    9,8 Он добавил функции только с PureScale
    10,1 Галилео
    10,5 Kepler

    Выпуски и функции сервера данных

    В зависимости от требований необходимых функций DB2 организации выбирают соответствующую версию DB2. В следующей таблице показаны серверные редакции DB2 и их возможности:

    издания Характеристики
    Advanced Enterprise Server Edition и Enterprise Server Edition (AESE / ESE) Он предназначен для средних и крупных бизнес-организаций. Платформа – Linux, UNIX и Windows. Разделение таблиц Материализованная таблица запросов (MQT) с высокой готовностью к аварийному восстановлению (MQT) Многомерная кластеризация (MDC) Концентратор соединений Сжатие с резервным копированием чистого XML Однородные федерации
    Workgroup Server Edition (WSE) Он предназначен для рабочих групп или организаций среднего бизнеса. С помощью этого WSE вы можете работать с: – Высокая доступность после аварийного восстановления (HARD) Онлайн-реорганизация Поддержка федерации веб-служб Pure XML Поддержка однородных федераций DB2 Гомогенная репликация SQL Сжатие резервных копий
    Экспресс -C Он предоставляет все возможности DB2 без взимания платы. Он может работать на любых физических или виртуальных системах с любым размером конфигурации.
    Express Edition Он предназначен для организаций начального и среднего бизнеса. Это полнофункциональный сервер данных DB2. Он предлагает только ограниченные услуги. Этот выпуск поставляется с: – федерации веб-служб, однородные федерации DB2, гомогенные репликации SQL, сжатие резервных копий.
    Enterprise Developer Edition Он предлагает только один разработчик приложений. Полезно проектировать, создавать и создавать прототипы приложений для развертывания на любом сервере IBM. Программное обеспечение не может быть использовано для разработки приложений.

    Установка сервера DB2

    В этой главе описываются этапы установки сервера DB2.

    Вступление

    Вы можете загрузить пробную версию сервера DB2 или приобрести лицензию на веб-сайт www.ibm.com . Для загрузки доступно два отдельных сервера DB2, в зависимости от размера операционной системы, на которой он предназначен. Например, если вы хотите загрузить сервер DB2 для 32-битной операционной системы Linux или UNIX, вам необходимо загрузить 32-битный сервер DB2. То же самое относится и к 64-битному серверу DB2.

    Требования к оборудованию

    Процессор: Minimum Core 2Duo

    RAM: минимум 1 ГБ

    Жесткий диск: минимум 30 ГБ

    Требования к программному обеспечению

    Перед установкой сервера DB2 вашей системе необходимо подготовить необходимое программное обеспечение. Для Linux вам нужно установить «libstdc ++ 6.0».

    Проверка совместимости системы

    Перед установкой сервера DB2 необходимо проверить, совместима ли ваша система с сервером DB2. Для подтверждения совместимости вам нужно вызвать команду ‘db2prereqcheck’ в командной консоли.

    Установка DB2 в операционной системе Linux

    Откройте Терминал и задайте путь к папке установочного образа db2 на консоли с помощью команды «CD <папка установки DB2>». Затем введите команду «./db2prereqcheck», которая подтверждает совместимость вашей системы с сервером DB2.

    ./db2prereqcheck

    На рисунке 1 показаны требования совместимости операционной системы Linux и аппаратной системы.

    Выполните указанные шаги для установки DB2 в вашей системе Linux:

    • Откройте терминал.
    • Войдите в систему как пользователь root.
    • Откройте папку установки DB2.
    • Введите «./db2setup» и нажмите Enter.

    Этот процесс начнет выполнение установки сервера DB2.

    Установка сервера DB2

    Введите «./db2setup» и нажмите Enter на корневом терминале, чтобы начать процесс установки DB2 Server.

    При этом появится экран «Настройка панели запуска». [Фигура 2]

    Настройка Launch Pad

    На странице панели запуска установки выберите опцию «Установить продукт» в боковом меню. Выберите опцию «DB2 Advanced Enterprise Server Edition». Выберите кнопку «Установить новый».

    Появится новый фрейм с именем «Мастер установки DB2». Нажмите кнопку “Далее”. [Рисунок-3]

    Мастер установки DB2

    Появится следующий экран с лицензионным соглашением DB2. Выберите «Я принимаю условия…». Нажмите «Далее». [Рисунок-4]

    Лицензионное соглашение DB2

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

    Держите тот же выбор. Нажмите кнопку “Далее”. [Рисунок-5]

    Действие по установке

    Появится следующий экран с действием установки.

    Выберите «Установить DB2 Advanced Enterprise Server Edition…»

    Нажмите кнопку “Далее”. [Рисунок-6]

    Каталог установки

    На следующем экране программа установки попросит выбрать каталог установки.

    Оставьте значение по умолчанию и нажмите «Далее».

    Информация о сервере

    На следующем экране появится аутентификация пользователя. Введите пароль для пользователя «dasusr1».

    (Ваш пароль может быть идентичен имени пользователя, чтобы его было удобно запомнить.)

    Экземпляр DB2

    На следующем экране программа установки попросит вас создать экземпляр сервера DB2.

    Здесь он создает экземпляр DB2 с именем «db2inst1».

    Имя экземпляра DB2

    На следующем экране запрашивается количество разделов, необходимых для экземпляра по умолчанию.

    У вас есть выбор «одного или нескольких» разделов.

    Выберите «экземпляр одного раздела». Нажмите кнопку “Далее”.

    Раздел DB2

    На следующем экране программа установки запрашивает аутентификацию для создаваемого экземпляра DB2.

    Здесь по умолчанию имя пользователя создается как «db2inst1». Вы можете ввести пароль так же, как имя пользователя.

    Нажмите кнопку “Далее”.

    Аутентификация

    На следующем экране программа установки запрашивает информацию для аутентификации пользователя «db2fenc».

    Здесь вы можете ввести пароль так же, как имя пользователя.

    Нажмите кнопку “Далее”.

    Информация аутентификации

    На следующем экране вы можете выбрать опцию «Не настраивать сервер db2 для отправки уведомлений в это время».

    Нажмите кнопку “Далее”.

    уведомление

    На следующем экране отображается информация о настройке db2.

    Нажмите «Готово».

    На этом этапе процедура установки DB2 завершена.

    Проверка установки DB2

    Вам нужно проверить установку сервера DB2 на его полезность. После завершения установки сервера DB2 выйдите из режима текущего пользователя и войдите в систему как пользователь «db2inst1». В пользовательской среде «db2inst1» вы можете открыть терминал и выполнить следующие команды, чтобы проверить, правильно ли установлен ваш продукт db2.

    db2level

    Эта команда показывает текущую версию и уровень обслуживания установленного продукта DB2 для текущего экземпляра.

    Синтаксис:

    db2level 

    Пример:

    db2level 

    Выход:

    DB21085I Instance "db2inst2" uses "64" bits       
    And DB2 code release "SQL10010" with level     
    identifier "0201010E". Informational tokens     
    are "DB2 v10.1.0.0", "s120403",     
    "LINUXAMD64101", and Fix Pack "0".  
    Product is installed at "/home/db2inst2/sqllib".  

    db2licm

    Эта команда показывает всю информацию о лицензии нашего продукта DB2.

    Синтаксис:

    db2licm <parameter> 

    Пример:

    db2licm -l 

    Выход:

    Product name:                     "DB2 Advanced Enterprise Server Edition" 
    License type:                     "Trial" 
    Expiry date:                      "10/02/2014" 
    Product identifier:               "db2aese" 
    Version information:              "10.1"  
    Product name:                     "DB2 Connect Server" 
    License type:                     "Trial" 
    Expiry date:                      "10/02/2014" 
    Product identifier:               "db2consv" 
    Version information:              "10.1" 

    Процессор командной строки (CLP)

    CLP может быть запущен в одном из трех режимов:

    • Командный режим : в этом режиме каждая команда и оператор SQL должны иметь префикс «db2». Например, запрос «db2 активировать образец базы данных».

    • Режим интерактивного ввода : вы можете запустить этот режим с помощью команды «db2». Здесь вы можете передавать операторы SQL без префикса. Например, «активировать образец базы данных».

    • Пакетный режим : здесь вам необходимо создать файл сценария, который содержит все запросы SQL-запросов и сохранить файл с расширением «.db2». Вы можете вызвать это в командной строке, используя синтаксис «db2 –tf <filename.db2>».

    Командный режим : в этом режиме каждая команда и оператор SQL должны иметь префикс «db2». Например, запрос «db2 активировать образец базы данных».

    Режим интерактивного ввода : вы можете запустить этот режим с помощью команды «db2». Здесь вы можете передавать операторы SQL без префикса. Например, «активировать образец базы данных».

    Пакетный режим : здесь вам необходимо создать файл сценария, который содержит все запросы SQL-запросов и сохранить файл с расширением «.db2». Вы можете вызвать это в командной строке, используя синтаксис «db2 –tf <filename.db2>».

    Доступ к DB22

    Экземпляр DB2

    Вступление

    Экземпляр – это логическая среда для менеджера баз данных DB2. Используя экземпляр, вы можете управлять базами данных. В зависимости от наших требований вы можете создать несколько экземпляров на одном физическом компьютере. Содержимое каталога Instance:

    • Файл конфигурации менеджера баз данных
    • Системный каталог баз данных
    • Каталог узлов
    • Файл конфигурации узла [db2nodes.cfg]
    • Отладка файлов, дамп файлов

    Для сервера баз данных DB2 экземпляром по умолчанию является «DB2». Изменить каталог Instance после его создания невозможно. Экземпляр может управлять несколькими базами данных. В каждом случае каждая база данных имеет уникальное имя, собственный набор таблиц каталога, файлы конфигурации, права доступа и привилегии.

    Архитектура экземпляра в продукте DB2

    db2_product

    Несколько экземпляров

    Вы можете создать несколько экземпляров в одном DB2Server в Linux, UNIX и Windows. Можно установить несколько серверов DB2Server на физический компьютер.

    Создание экземпляра в Linux

    Вы можете создать несколько экземпляров в Linux и UNIX, если сервер DB2 установлен от имени пользователя root. Экземпляр может работать одновременно в Linux и UNIX независимо. Вы можете одновременно работать с одним экземпляром менеджера баз данных.

    Папка Instance содержит файлы конфигурации и папки базы данных. Каталог Instance хранится в разных местах Windows, в зависимости от версии операционной системы.

    Перечисление экземпляров

    Следующая команда используется для перечисления экземпляров:

    db2ilist

    Эта команда перечисляет все экземпляры, которые доступны в системе.

    Синтаксис:

    db2ilist 

    Пример: [Чтобы увидеть, сколько экземпляров создано в копии DB2]

    db2ilist 

    Выход:

    db2inst1 
    db2inst2 
    db2inst3  

    Команды среды экземпляра

    Эти команды полезны для работы с расположением экземпляров в CLI DB2.

    Получить экземпляр

    Эта команда показывает подробности текущего запущенного экземпляра.

    Синтаксис:

    db2 get instance 

    Пример: [Чтобы увидеть текущий экземпляр, который активировал текущего пользователя]

    db2 get instance 

    Выход:

    The current database manager instance is : db2inst1 

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

    Чтобы запустить или остановить менеджер базы данных экземпляра в DB2 UDB, для текущего экземпляра выполняется следующая команда.

    Синтаксис:

    set db2instance=<instance_name> 

    Пример: [Организация среды «db2inst1» для текущего пользователя]

    set db2instance=db2inst1

    db2start

    Используя эту команду, вы можете запустить экземпляр. Перед этим вам нужно запустить «установить экземпляр».

    Синтаксис:

    db2start 

    Пример: [Чтобы запустить экземпляр]

    db2start

    Выход:

    SQL1063N DB2START processing was successful

    db2stop

    С помощью этой команды вы можете остановить работающий экземпляр.

    Синтаксис:

    db2stop 

    Выход:

    SQL1064N DB2STOP processing was successful.

    Создание экземпляра

    Давайте посмотрим, как создать новый экземпляр.

    db2icrt

    Если вы хотите создать новый экземпляр, вам нужно войти в систему как root. Идентификатор экземпляра не является корневым идентификатором или корневым именем.

    Вот шаги для создания нового экземпляра:

    Шаг 1 : Создайте пользователя операционной системы, например.

    Синтаксис:

    useradd -u <ID> -g <group name> -m -d <user location> <user name> 
    -p <password>  

    Пример : [Создать пользователя, например, с именем ‘db2inst2’ в группе ‘db2iadm1’ и паролем ‘db2inst2’]

    useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2  

    Шаг 2. Перейдите в каталог экземпляра DB2 в корневом пользователе, чтобы создать новый экземпляр.

    Место нахождения:

    cd /opt/ibm/db2/v10.1/instance  

    Шаг 3. Создайте экземпляр, используя следующий синтаксис:

    Синтаксис:

    ./db2icrt -s ese -u <inst id> <instance name>

    Пример : [Чтобы создать новый экземпляр ‘db2inst2’ в пользователе ‘db2inst2’ с функциями ‘ESE’ (Enterprise Server Edition)]

    ./db2icrt -s ese -u db2inst2 db2inst2

    Выход:

    DBI1446I The db2icrt command is running, please wait.
     ….
     ….. 
    DBI1070I Program db2icrt completed successfully.

    Организация порта связи и хоста для экземпляра

    Отредактируйте файл / etc / services и добавьте номер порта. В приведенном ниже синтаксисе «имя_экземпляра» указывает имя экземпляра, а «имя_экземпляра» указывает номер порта экземпляра.

    Синтаксис:

    db2c_<inst name> <inst_port>/tcp

    Пример : [Добавление номера порта «50001 / tcp» для экземпляра «db2inst2» с переменной «db2c_db2inst2» в файле «services»]

    db2c_db2inst2 50001/tcp

    Синтаксис 1 : [Обновить конфигурацию менеджера баз данных с помощью имени службы. Следующий синтаксис ‘svcename’ указывает имя службы экземпляра, а ‘имя_экземпляра’ указывает имя экземпляра]

    db2 update database manager configuration using svcename db2c_&<inst_name>

    Пример 1 : [Обновление конфигурации DBM с помощью переменной svcename со значением ‘db2c_db2inst2’, например, ‘db2inst2’

    db2 update database manager configuration using svcename db2c_db2inst2 

    Выход

    DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.

    Синтаксис 2 : установить протокол связи «tcpip» для текущего экземпляра

    db2set DB2COMM=tcpip 

    Синтаксис 3 : [Остановка и запуск текущего экземпляра для получения обновленных значений из конфигурации менеджера баз данных]

    db2stop 
    db2start 

    Обновление экземпляра

    Вы можете обновить экземпляр, используя следующую команду:

    db2iupdt

    Эта команда используется для обновления экземпляра в том же выпуске версии. Перед выполнением этой команды необходимо остановить менеджер базы данных экземпляра с помощью команды «db2stop». Синтаксис ниже «имя_экземпляра» указывает имя ранее выпущенного или установленного экземпляра сервера db2, которое вы хотите обновить до более новой версии или установленной версии сервера db2.

    Синтаксис 1 : обновить экземпляр в обычном режиме

    db2iupdt <inst_name> 

    Example1:

    ./db2iupdt db2inst2 

    Синтаксис 2 : обновить экземпляр в режиме отладки

    db2iupdt -D <inst_name> 

    пример

    db2iupdt -D db2inst2  

    Обновление экземпляра

    Вы можете обновить экземпляр с предыдущей версии копии DB2 до текущей вновь установленной версии копии DB2.

    db2iupgrade

    В системе Linux или UNIX эта команда находится в каталоге DB2DIR / instance. В следующих синтаксисах «имя_экземпляра» указывает на предыдущую версию экземпляра DB2, а «имя_экземпляра» указывает на текущую установленную версию пользователя экземпляра копии DB2.

    Синтаксис 2 :

    db2iupgrade -d -k -u <inst_username> <inst_name>  

    Пример :

    db2iupgrade -d -k -u db2inst2 db2inst2 

    Параметры команды:

    -d : включает режим отладки.

    -k : Сохраняет тип экземпляра перед обновлением, если он поддерживается в копии DB2, откуда вы запускаете эту команду.

    Если вы используете Super User (su) в Linux для команды db2iupgrade, вы должны выполнить команду «su» с опцией «-».

    Отбрасывание экземпляра

    Вы можете удалить или удалить экземпляр, который был создан командой «db2icrt».

    db2idrop

    В операционной системе Linux и UNIX эта команда находится в каталоге DB2_installation_folder / instance.

    Синтаксис : [в следующем синтаксисе «inst_username» указывает имя пользователя экземпляра, а «inst_name» указывает имя экземпляра]

    db2idrop -u <inst_username> <inst_name> 

    Пример : [Чтобы удалить db2inst2]

    ./db2idrop -u db2inst2 db2inst2  

    Использование других команд с экземпляром

    Команда, чтобы узнать, с каким экземпляром DB2 мы работаем сейчас.

    Синтаксис 1 : [проверить текущий экземпляр, активированный менеджером баз данных]

    db2 get instance  

    Выход:

    The current database manager instance is:  db2inst1  

    Синтаксис 2 : [Чтобы увидеть текущий экземпляр с рабочими битами и версией выпуска]

    db2pd -inst | head -2  

    Пример:

    db2pd -inst | head -2  

    Выход:

    Instance db2inst1 uses 64 bits and DB2 code release SQL10010   

    Синтаксис 3 : [Чтобы проверить имя работающего в данный момент экземпляра]

    db2 select inst_name from sysibmadm.env_inst_info    

    Пример:

    db2 select inst_name from sysibmadm.env_inst_info    

    Выход:

    INST_NAME  --------------------------------------  
    db2inst1              
    1 record(s) selected.  

    Синтаксис : [Чтобы установить новый экземпляр по умолчанию]

    db2set db2instdef=<inst_name> -g   

    Пример : [Для массива вновь созданного экземпляра как экземпляра по умолчанию]

    db2set db2instdef=db2inst2 -g   

    Базы данных DB2

    В этой главе описывается создание, активация и деактивация баз данных с соответствующим синтаксисом.

    Архитектура базы данных

    Архитектура базы данных

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

    Каталог базы данных

    Каталог баз данных – это организованное хранилище баз данных. При создании базы данных все сведения о базе данных сохраняются в каталоге базы данных, такие как сведения о запоминающих устройствах по умолчанию, файлы конфигурации, список временных таблиц и т. Д.

    Глобальный каталог раздела создается в папке экземпляра. Этот каталог содержит всю глобальную информацию, связанную с базой данных. Этот глобальный каталог раздела называется NODExxxx / SQLyyy, где xxxx – номер раздела данных, а yyy – токен базы данных.

    В глобальном каталоге partition создается каталог для конкретного члена. Этот каталог содержит информацию о локальной базе данных. Каталог для конкретного члена называется MEMBERxxxx, где xxxx – это номер участника. Среда DB2 Enterprise Server Edition работает на одном члене и имеет только один каталог, специфичный для этого члена. Этот каталог для конкретного члена имеет уникальное имя MEMBER0000.

    Разделенный глобальный каталог

    Расположение каталога: <экземпляр> / NODExxx / SQLxxx

    Глобальный каталог partition содержит файлы, относящиеся к базе данных, как указано ниже.

    • Глобальные тупиковые файлы мониторинга событий записи в файл
    • Информационные файлы табличного пространства [SQLSPCS.1, SQLSPCS.2]
    • Управляющие файлы группы хранения [SQLSGF.1, SQLSGF.2]
    • Временные файлы контейнера табличного пространства. [/ путь хранения / /T0000011/C000000.TMP/SQL00002.MEMBER0001.TDA]
    • Файл глобальной конфигурации [SQLDBCONF]
    • Файлы истории [DB2RHIST.ASC, DB2RHIST.BAK, DB2TSCHG.HIS, DB2TSCHG.HIS]
    • Файлы, связанные с журналированием [SQLOGCTL.GLFH.1, SQLOGCTL.GLFH.2]
    • Блокировка файлов [SQLINSLK, SQLTMPLK]
    • Контейнеры автоматического хранения

    Специальный каталог для членов

    Расположение каталога: / NODExxxx / SQLxxxx / MEMBER0000

    Этот каталог содержит:

    • Объекты, связанные с базами данных
    • Информационные файлы пула буферов [SQLBP.1, SQLBP.2]
    • Локальные файлы мониторинга событий
    • Файлы, связанные с журналированием [SQLOGCTL.LFH.1, SQLOGCTL.LFH.2, SQLOGMIR.LFH].
    • Локальные файлы конфигурации
    • Файл монитора событий взаимоблокировок. Подробные файлы монитора событий взаимоблокировки хранятся в каталоге базы данных узла каталога в случае ESE и среды многораздельных баз данных.

    Создание базы данных

    Вы можете создать базу данных, используя команду «CREATE DATABASE». Все базы данных создаются с группой хранения по умолчанию «IBMSTOGROUP», которая создается во время создания экземпляра. В DB2 все таблицы базы данных хранятся в «табличном пространстве», в котором используются соответствующие группы хранения.

    Привилегии для базы данных автоматически устанавливаются как PUBLIC [CREATETAB, BINDADD, CONNECT, IMPLICIT_SCHEMA и SELECT], однако, если присутствует опция RESTRICTIVE, привилегии не предоставляются как PUBLIC.

    Создание неограничительной базы данных

    Эта команда используется для создания неограничительной базы данных.

    Синтаксис : [Для создания новой базы данных. ‘database_name’ указывает новое имя базы данных, которое вы хотите создать.]

    db2 create database <database name>

    Пример : [Создать новую неограничительную базу данных с именем ‘one’]

    db2 create database one

    Выход:

    DB20000I The CREATE DATABASE command completed successfully.

    Создание ограничительной базы данных

    Ограничительная база данных создается при вызове этой команды.

    Синтаксис : [В приведенном ниже синтаксисе «db_name» обозначает имя базы данных.]

    db2 create database <db_name> restrictive 

    Пример : [Создать новую ограничительную базу данных с именем ‘two’]

    db2 create database two restrictive 

    Создание базы данных с другим определенным пользователем местоположением

    Создайте базу данных с группой хранения по умолчанию «IBMSTOGROUP» по другому пути. Ранее вы вызывали команду «создать базу данных» без какого-либо определенного пользователем местоположения для хранения или создания базы данных в определенном месте. Чтобы создать базу данных с использованием пользовательского расположения базы данных, выполните следующую процедуру:

    Синтаксис : [В приведенном ниже синтаксисе «db_name» указывает «имя базы данных», а «data_location» указывает, где нужно хранить данные в папках, а «db_path_location» указывает расположение драйвера «data_location».]

    db2 create database '<db_name>' on '<data location>' dbpath on '<db_path_location>'  

    Пример : [Создать базу данных с именем ‘four’, где данные хранятся в ‘data1’, а эта папка хранится в ‘dbpath1’]

    db2 create database four on '/data1' dbpath on '/dbpath1'

    Просмотр файлов каталогов локальной или системной базы данных

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

    Синтаксис:

    db2 list database directory 

    Пример:

    db2 list database directory 

    Выход:

     System Database Directory  
     Number of entries in the directory = 6  
     Database 1 entry:  
     Database alias                       = FOUR  
     Database name                        = FOUR  
     Local database directory             = 
     /home/db2inst4/Desktop/dbpath  
     Database release level               = f.00  
     Comment                              =  
     Directory entry type                 = Indirect  
     Catalog database partition number    = 0  
     Alternate server hostname            =  
     Alternate server port number         =  
    Database 2 entry: 
    Database alias                       = SIX  
    Database name                        = SIX  
    Local database directory             = /home/db2inst4  
    Database release level               = f.00  
    Comment                              =  
    Directory entry type                 = Indirect  
    Catalog database partition number    = 0  
    Alternate server hostname            =  
    Alternate server port number         = 

    Активация базы данных

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

    Синтаксис : [‘db_name’ указывает имя базы данных]

    db2 activate db <db_name> 

    Пример : [Активация базы данных ‘one’]

    db2 activate db one  

    Деактивация базы данных

    Используя эту команду, вы можете остановить службы базы данных.

    Синтаксис:

    db2 deactivate db <db_name>

    Пример : [Деактивировать базу данных ‘one’]

    db2 deactivate db one

    Подключение к базе данных

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

    Синтаксис:

    db2 connect to <database name> 

    Пример : [Чтобы подключить базу данных один к текущему CLI]

    db2 connect to one 

    Выход:

     Database Connection Information  
     Database server        = DB2/LINUXX8664 10.1.0  
     SQL authorization ID   = DB2INST4  
     Local database alias   = ONE  

    Проверка, является ли база данных ограничительной

    Чтобы проверить, является ли эта база данных ограничительной или нет, вот синтаксис:

    Синтаксис : [В следующем синтаксисе «db» обозначает базу данных, «cfg» обозначает конфигурацию, «db_name» обозначает имя базы данных]

    db2 get db cfg for <db_name> | grep -i restrict 

    Пример : [Чтобы проверить, ограничена ли база данных «один» или нет]

    db2 get db cfg for one | grep -i restrict  

    Выход:

    Restrict access                       = NO   

    Конфигурирование менеджера базы данных и базы данных

    Конфигурация экземпляра (конфигурация менеджера баз данных) хранится в файле с именем «db2system», а конфигурация, связанная с базой данных, хранится в файле с именем «SQLDBCON». Эти файлы нельзя редактировать напрямую. Вы можете редактировать эти файлы, используя инструменты, которые вызывают API. Используя процессор командной строки, вы можете использовать эти команды.

    Параметры конфигурации менеджера баз данных

    Синтаксис : [Чтобы получить информацию менеджера баз данных экземпляра]

    db2 get database manager configuration   

    ИЛИ ЖЕ

    db2 get dbm cfg   

    Синтаксис : [Чтобы обновить менеджер базы данных экземпляра]

    db2 update database manager configuration   

    ИЛИ ЖЕ

    db2 update dbm cfg  

    Синтаксис : [Для сброса предыдущих конфигураций]

    db2 reset database manager configuration  

    ИЛИ ЖЕ

    db2 reset dbm cfg  

    Параметры конфигурации базы данных

    Синтаксис : [Получить информацию о базе данных]

    db2 get database configuration   

    ИЛИ ЖЕ

    db2 get db cfg  

    Синтаксис : [Чтобы обновить конфигурацию базы данных]

    db2 update database configuration    

    ИЛИ ЖЕ

    db2 update db cfg  

    Синтаксис : [Для сброса ранее настроенных значений в конфигурации базы данных

    db2 reset database configuration     

    ИЛИ ЖЕ

    db2 reset db cfg   

    Синтаксис : [Чтобы проверить размер текущей активной базы данных]

    db2 "call get_dbsize_info(?,?,?,-1)"      

    Пример : [Чтобы проверить размер Активируемой базы данных]

    db2 "call get_dbsize_info(?,?,?,-1)"      

    Выход:

    Value of output parameters   
    --------------------------   
    Parameter Name  : SNAPSHOTTIMESTAMP   
    Parameter Value : 2014-07-02-10.27.15.556775  
    Parameter Name  : DATABASESIZE   
    Parameter Value : 105795584  
    Parameter Name  : DATABASECAPACITY   
    Parameter Value : 396784705536  
    Return Status = 0    

    Оценка места, необходимого для базы данных

    Чтобы оценить размер базы данных, необходимо учитывать вклад следующих факторов:

    • Таблицы системного каталога
    • Данные таблицы пользователя
    • Длинные полевые данные
    • Данные больших объектов (LOB)
    • Индекс Пространство
    • Временное рабочее пространство
    • Данные XML
    • Пространство файлов журнала
    • Каталог локальной базы данных
    • Системные файлы

    Проверка полномочий базы данных

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

    Шаг 1 : подключитесь к базе данных с аутентификационным идентификатором пользователя и паролем экземпляра.

    Синтаксис : [Для подключения к базе данных с именем пользователя и паролем]

    db2 connect to <db_name> user <userid> using <password>      

    Пример : [Соединить «одну» базу данных с идентификатором пользователя «db2inst4» и паролем «db2inst4»]

    db2 connect to one user db2inst4 using db2inst4       

    Выход:

     Database Connection Information  
     Database server        = DB2/LINUXX8664 10.1.0  
     SQL authorization ID   = DB2INST4  
     Local database alias   = ONE        

    Шаг 2 : Проверить полномочия базы данных.

    Синтаксис : [Синтаксис ниже показывает результат службы авторизации для текущей базы данных]

    db2 "select substr(authority,1,25) as authority, d_user, d_group, 
    d_public, role_user, role_group, role_public,d_role from table( 
    sysproc.auth_list_authorities_for_authid ('public','g'))as t 
    order by authority"      

    Пример:

    db2 "select substr(authority,1,25) as authority, d_user, d_group, 
    d_public, role_user, role_group, role_public,d_role from table( 
    sysproc.auth_list_authorities_for_authid ('PUBLIC','G'))as t 
    order by authority"       

    Выход:

    AUTHORITY                 D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE  
    ------------------------- ------ ------- -------- --------- ---------- ----------- ------  
    ACCESSCTRL                *      *       N        *         *          N           *       
    BINDADD                   *      *       Y        *         *          N           *       
    CONNECT                   *      *       Y        *         *          N           *       
    CREATETAB                 *      *       Y        *         *          N           *       
    CREATE_EXTERNAL_ROUTINE   *      *       N        *         *          N           *       
    CREATE_NOT_FENCED_ROUTINE *      *       N        *         *          N           *       
    CREATE_SECURE_OBJECT      *      *       N        *         *          N           *       
    DATAACCESS                *      *       N        *         *          N           *       
    DBADM                     *      *       N        *         *          N           *       
    EXPLAIN                   *      *       N        *         *          N           *       
    IMPLICIT_SCHEMA           *      *       Y        *         *          N           *       
    LOAD                      *      *       N        *         *          N           *       
    QUIESCE_CONNECT           *      *       N        *         *          N           *       
    SECADM                    *      *       N        *         *          N           *       
    SQLADM                    *      *       N        *         *          N           *       
    SYSADM                    *      *       *        *         *          *           *       
    SYSCTRL                   *      *       *        *         *          *           *       
    SYSMAINT                  *      *       *        *         *          *           *       
    SYSMON                    *      *       *        *         *          *           *       
    WLMADM                    *      *       N        *         *          N           *         
    20 record(s) selected. 

    Удаление базы данных

    Используя команду Drop, вы можете удалить нашу базу данных из каталога базы данных экземпляра. Эта команда может удалить все свои объекты, таблицы, пространства, контейнеры и связанные файлы.

    Синтаксис : [Чтобы удалить любую базу данных из экземпляра]

    db2 drop database <db_name>

    Пример : [Удалить базу данных «шесть» из экземпляра]

    db2  drop database six 

    Выход:

    DB20000I The DROP DATABASE command completed successfully 

    Буферные пулы DB2

    Эта глава знакомит вас с Bufferpools в базе данных.

    BUFFERPOOL

    Вступление

    Буферный пул является частью основного пространства памяти, которое выделяется менеджером базы данных. Целью буферных пулов является кэширование таблицы и индексирование данных с диска. Все базы данных имеют свои собственные буферные пулы. Пул буферов по умолчанию создается во время создания новой базы данных. Он называется «IBMDEFAULTBP». В зависимости от требований пользователя, можно создать несколько буферных пулов. В пуле буферов менеджер базы данных помещает данные строки таблицы в виде страницы. Эта страница остается в пуле буферов до тех пор, пока база данных не будет закрыта или пока в пространство не будут записаны новые данные. Страницы в пуле буферов, которые обновляются данными, но не записываются на диск, называются «грязными» страницами. После того, как обновленные страницы данных в пуле буферов будут записаны на диск, пул буферов будет готов принять другие данные.

    Связь между табличными пространствами и буферными пулами

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

    Размеры буфера

    Размер страницы буферного пула задается при использовании команды «CREATE DATABASE». Если вы не укажете размер страницы, он примет размер страницы по умолчанию, равный 4 КБ. После создания пула буферов невозможно изменить размер страницы позже.

    Список доступных буферных пулов в текущем каталоге базы данных

    Синтаксис : [Синтаксис ниже показывает все доступные буферные пулы в базе данных]

    db2 select * from syscat.bufferpools   

    Пример : [Чтобы увидеть доступные буферные пулы в текущей базе данных]

    db2 select * from syscat.bufferpools  

    Выход:

    BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE 
    NUMBLOCKPAGES BLOCKSIZE   NGNAME
    ------------------------------------------------------------ 
    IBMDEFAULTBP                                                                                                                
     1 -                                                                                                  
     -2        4096 N                  0           0 -     
     
     1 record(s) selected.   

    Создание буферного пула

    Чтобы создать новый пул буферов для сервера базы данных, вам понадобятся два параметра, а именно «имя буферного пула» и «размер страницы». Следующий запрос выполняется для создания нового пула буферов.

    Синтаксис: [В приведенном ниже синтаксисе «bp_name» указывает имя пула буферов, а «размер» указывает размер страницы, которую необходимо объявить для буферных пулов (4K, 8K, 16K, 32K)]

    db2 create bufferpool <bp_name> pagesize <size> 

    Пример : [Создать новый пул буферов с именем «bpnew» и размером «8192» (8Kb).]

    db2 create bufferpool bpnew pagesize 8192  

    Выход

    DB20000I The SQL command completed successfully.  

    Отбрасывание буферного пула

    Перед удалением пула буферов необходимо проверить, назначено ли ему какое-либо табличное пространство.

    Синтаксис : [Чтобы удалить буферный пул]

    drop bufferpool <bp_name>  

    Пример : [Чтобы удалить ‘bpnew’ с именем bufferpool]

    db2 drop bufferpool bpnew  

    Выход

    DB20000I The SQL command completed successfully.  

    Табличные пространства DB2

    В этой главе подробно описаны табличные пространства

    Табличные

    Вступление

    Табличное пространство – это структура хранения, она содержит таблицы, индексы, большие объекты и длинные данные. Он может использоваться для организации данных в базе данных в логическую группу хранения, которая связана с тем, где данные хранятся в системе. Эти табличные пространства хранятся в группах разделов базы данных

    Преимущества табличных пространств в базе данных

    Табличные пространства полезны в базе данных по-разному:

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

    Автоматическое управление хранением : менеджер баз данных создает и расширяет контейнеры в зависимости от потребностей.

    Использование памяти : один буферный пул может управлять несколькими табличными пространствами. Вы можете назначить временные табличные пространства их собственному пулу буферов, чтобы повысить производительность таких действий, как сортировки или объединения.

    Контейнер

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

    Табличные пространства по умолчанию

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

    1. Табличное пространство каталога
    2. Табличное пространство пользователя
    3. Временное табличное пространство

    Табличное пространство каталога : содержит таблицы системного каталога для базы данных. Он называется SYSCATSPACE и не может быть удален.

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

    Временное табличное пространство : временное табличное пространство содержит данные временных таблиц. Это табличное пространство содержит системные временные табличные пространства или пользовательские временные табличные пространства.

    Системное временное табличное пространство содержит временные данные, необходимые для менеджера баз данных при выполнении таких операций, как сортировки или объединения. База данных должна иметь хотя бы одно системное временное табличное пространство, и она называется TEMPSPACE1. Он создается во время создания базы данных. Пользовательское временное табличное пространство содержит временные данные из таблиц. Он создается с помощью оператора DECLARE GLOBAL TEMPORARY TABLE или CREATE GLOBAL TEMPORARY TABLE. Это временное табличное пространство не создается по умолчанию во время создания базы данных.

    Табличные пространства и управление хранением:

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

    Доступны следующие три типа управляемых пространств:

    System Managed Space (SMS) : Менеджер файловой системы операционной системы выделяет и управляет пространством, в котором хранится таблица. Место для хранения выделяется по запросу. Эта модель состоит из файлов, представляющих объекты базы данных. Этот тип табличного пространства объявлен устаревшим в версии 10.1 для пользовательских табличных пространств и не рекомендуется для каталога и временных табличных пространств.

    Управляемое пространство базы данных (DMS) . Сервер базы данных контролирует пространство хранения. Пространство памяти предварительно выделяется в файловой системе на основе определения контейнера, которое вы указываете при создании табличного пространства DMS. Он не рекомендуется в версии 10.1 с пакетом исправлений 1 для пользовательских табличных пространств, но не рекомендуется для системных табличных пространств и временных табличных пространств.

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

    Размер страницы, таблицы и табличного пространства:

    Для временных табличных пространств DMS и автоматического хранения размер страницы, который вы выбираете для своей базы данных, определяет максимальный предел для размера табличного пространства. Для табличных пространств SMS и временных автоматических хранилищ размер страницы ограничивает размер самой таблицы. Размер страницы может быть 4 КБ, 8 КБ, 16 КБ или 32 КБ.

    Тип табличного пространства Ограничение размера страницы 4K 8K ограничение размера страницы 16K ограничение размера страницы Ограничение размера страницы 32K
    DMS, обычное автоматическое хранение табличного пространства 64G 128G 256G 512 г
    DMS, временное DMS и временное автоматическое табличное пространство для хранения данных большие 1892G 16384G 32768G 65536G

    DB2 Storagegroups

    В этой главе описываются группы хранения базы данных.

    Место хранения

    Вступление

    Набор путей хранения для хранения таблицы или объектов базы данных – это группа хранения. Вы можете назначить табличные пространства группе хранения. Когда вы создаете базу данных, все табличные пространства принимают стандартное хранилище. Группой хранения по умолчанию для базы данных является «IBMSTOGROUP». При создании новой базы данных группа хранения по умолчанию активна, если вы передаете параметр «AUTOMATIC STOGROUP NO» в конце команды «CREATE DATABASE». База данных не имеет групп хранения по умолчанию.

    Список групп хранения

    Вы можете перечислить все группы хранения в базе данных.

    Синтаксис : [Чтобы увидеть список доступных групп хранения в текущей базе данных]

    db2 select * from syscat.stogroups

    Пример : [Чтобы увидеть список доступных групп хранения в текущей базе данных]

    db2 select * from syscat.stogroups

    Создание группы хранения

    Вот синтаксис для создания группы хранения в базе данных:

    Синтаксис : [Создать новую группу. ‘Stogropu_name’ указывает имя новой группы хранения, а ‘path’ указывает место, где хранятся данные (таблицы)]

    db2 create stogroup  on path

    Пример : [Чтобы создать новую стогруппу ‘stg1’ в папке ‘data1’ path]

    db2 create stogroup stg1 on ‘/data1

    Выход:

    DB20000I The SQL command completed succesfully 

    Создание табличного пространства с помощью Stogroup

    Вот как вы можете создать табличное пространство с помощью storegroup:

    Синтаксис : [Чтобы создать новое табличное пространство, используя существующую группу хранения]

    db2 create tablespace <tablespace_name>  using stogroup <stogroup_name> 

    Пример : [Чтобы создать новое табличное пространство с именем ‘ts1’, используя существующую группу хранения ‘stg1’]

    db2 create tablespace ts1 using stogroup stg1 

    Выход:

    DB20000I The SQL command completed succesfully 

    Изменение группы хранения

    Вы можете изменить местоположение группы магазинов, используя следующий синтаксис:

    Синтаксис : [Чтобы переместить группу хранения из старого местоположения в новое местоположение]

    db2 alter stogroup  add location’, location 

    Пример : [Чтобы изменить путь расположения из старого расположения в новое расположение для группы хранения с именем ‘sg1’]

    db2 alter stogroup sg1 add ‘/path/data3’, ‘/path/data4 

    Удаление пути к папке группы хранения

    Перед удалением пути к папке группы хранения вы можете добавить новое расположение для группы хранения с помощью команды alter.

    Синтаксис : [Чтобы удалить старый путь из расположения группы хранения]

    db2 alter stogroup  drop ‘/path 

    Пример : [Чтобы удалить местоположение группы хранения из ‘stg1’]

    db2 alter stogroup stg1 drop ‘/path/data1  

    Перебалансировка табличного пространства

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

    Синтаксис : [Чтобы сбалансировать табличное пространство от старого пути группы хранения к новой группе хранения]

    db2 alter tablspace <ts_name> rebalance   

    Пример : [Чтобы сбалансировать]

    db2 alter tablespace ts1 rebalance   

    Переименование группы хранения

    Синтаксис : [Чтобы изменить имя существующего имени хранилища]

    db2 rename stogroup <old_stg_name> to <new_stg_name>   

    Пример : [Чтобы изменить имя группы хранения с ‘sg1’ на новое имя ‘sgroup1’]

    db2 rename stogroup sg1 to sgroup1   

    Удаление группы хранения

    Шаг 1 : Перед удалением любой группы хранения вы можете назначить другую табличную группу для табличных пространств.

    Синтаксис : [Чтобы назначить другую группу хранения для табличного пространства.]

    db2 alter tablspace <ts_name> using stogroup <another sto_group_name>    

    Пример : [Чтобы изменить одну стогруппу на новую стогруппу с именем ‘sg2’ для табличного пространства ‘ts1’]

    db2 alter tablespace ts1 using stogroup sg2   

    Шаг 2:

    Синтаксис : [Чтобы удалить существующую группу)

    db2 drop stogorup <stogroup_name>   

    Пример : [Чтобы удалить строгруппу ‘stg1’ из базы данных]

    db2 drop stogroup stg1  

    Схемы DB2

    Эта глава знакомит и описывает концепцию схемы.

    Вступление

    Схема – это коллекция именованных объектов, классифицированных логически в базе данных.

    В базе данных вы не можете создать несколько объектов базы данных с одним и тем же именем. Для этого в схеме предусмотрена групповая среда. Вы можете создать несколько схем в базе данных, и вы можете создать несколько объектов базы данных с одним и тем же именем, с разными группами схем.

    схемы

    Схема может содержать таблицы, функции, индексы, табличные пространства, процедуры, триггеры и т. Д. Например, вы создаете две разные схемы с именами «Professional» и «Personal» для базы данных «employee». Можно составить две разные таблицы с одним и тем же именем «Сотрудник». В этой среде одна таблица содержит профессиональную информацию, а другая – личную информацию сотрудника. Несмотря на наличие двух таблиц с одинаковыми именами, они имеют две разные схемы «Личная» и «Профессиональная». Следовательно, пользователь может работать с обоими без каких-либо проблем. Эта функция полезна, когда существуют ограничения на именование таблиц.

    Давайте посмотрим несколько команд, связанных со схемой:

    Получение текущей активной схемы

    Синтаксис:

    db2 get schema  

    Пример : [Чтобы получить текущую схему базы данных]

    db2 get schema   

    Установка другой схемы для текущей среды

    Синтаксис:

    db2 set schema=<schema_name>  

    Пример : [Чтобы разместить ‘schema1’ в текущей среде экземпляра]

    db2 set schema=schema1 

    Создание новой схемы

    Синтаксис : [Для создания новой схемы с идентификатором авторизованного пользователя]

    db2 create schema <schema_name> authroization <inst_user> 

    Пример : [Чтобы создать схему «schema1», авторизованную с помощью «db2inst2»]

    db2 create schema schema1 authorization db2inst2 

    Упражнение

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

    Шаг 1 : Создайте две схемы.

    Схема 1 : [Для создания схемы с именем Professional]

    db2 create schema professional authorization db2inst2 

    Схема 2 : [Для создания схемы с именем personal]

    db2 create schema personal authorization db2inst2

    Шаг 2. Создайте две таблицы с одинаковым именем для сведений о сотруднике.

    Table1 : professional.employee

    [Создать новую таблицу ’employee’ в базе данных, используя схему с именем ‘professional’]

    db2 create table professional.employee(id number, name 
    varchar(20), profession varchar(20), join_date date, 
    salary number); 

    Table2 : personal.employee

    [Создать новую таблицу ’employee’ в той же базе данных с именем схемы ‘personal’]

    db2 create table personal.employee(id number, name 
    varchar(20), d_birth date, phone bigint, address 
    varchar(200));  

    Выполнив эти шаги, вы получите две таблицы с одинаковым именем ’employee’, с двумя разными схемами.

    Типы данных DB2

    В этой главе представлены различные типы данных, используемые в DB2.

    Вступление

    В таблицах базы данных DB2 каждый столбец имеет свой собственный тип данных в зависимости от требований разработчика. Тип данных называется типом и диапазоном значений в столбцах таблицы.

    Встроенные типы данных

    • Datetime
      • ВРЕМЯ : представляет время дня в часах, минутах и ​​секундах.
      • TIMESTAMP : представляет семь значений даты и времени в форме года, месяца, дня, часов, минут, секунд и микросекунд.
      • ДАТА : представляет дату дня в трех частях в виде года, месяца и дня.
    • строка
      • символ
    • CHAR (фиксированная длина) : фиксированная длина строки символов.
      • Варьируемая длина
    • VARCHAR : символьные строки переменной длины.
    • CLOB : строки больших объектов, вы используете это, когда строка символов может превысить пределы типа данных VARCHAR.
      • графический
    • ГРАФИКА
      • Фиксированная длина : графическая строка фиксированной длины, которая содержит двухбайтовые символы
      • Варьируемая длина
    • VARGRAPHIC : графическая строка с изменяющимися символами, которая содержит двойные символы.
    • DBCLOB : тип большого объекта
      • двоичный
    • BLOB (различной длины): двоичная строка в большом объекте
    • BOOLEAN : в форме 0 и 1.
    • Числовой подпись
      • точная
    • Двоичное целое число
      • SMALLINT [16BIT] : с его помощью вы можете вставить небольшие значения int в столбцы
      • INTEGER [32BIT] : С его помощью вы можете вставлять большие значения int в столбцы
      • BIGINT [64BIT] : с его помощью вы можете вставлять большие значения int в столбцы
    • Десятичный
      • ДЕЦИМАЛЬНЫЙ (упакованный)
      • DECFLOAT (десятичная с плавающей запятой): Используя это, вы можете вставить десятичные числа с плавающей запятой
      • приближенный
    • Плавающие точки
      • REAL (одинарная точность): используя этот тип данных, вы можете вставлять числа с плавающей запятой одинарной точности.
      • DOUBLE (двойная точность): используя этот тип данных, вы можете вставлять числа с плавающей запятой двойной точности.
    • расширяемый язык разметки
      • XML : Вы можете хранить данные XML в этом столбце типа данных.

    Таблицы DB2

    Таблицы представляют собой логическую структуру, поддерживаемую менеджером баз данных. В таблице каждый вертикальный блок называется столбцом (Tuple), а каждый горизонтальный блок называется строкой (Entity). Коллекция данных, хранящихся в форме столбцов и строк, называется таблицей. В таблицах каждый столбец имеет различный тип данных. Таблицы используются для хранения постоянных данных.

    Тип столов

    • Базовые таблицы : они содержат постоянные данные. Существуют различные виды базовых таблиц, в том числе:
      • Обычные таблицы : таблицы общего назначения, общие таблицы с индексами – это таблицы общего назначения.
      • Таблица многомерных кластеров (MDC) . Этот тип таблиц физически сгруппирован по нескольким ключам и используется для поддержки сред больших баз данных. Таблицы такого типа не поддерживаются в DB2 pureScale.
      • Таблица кластеризации по времени вставки (ITC) . Подобно таблицам MDC, строки кластеризуются по времени, когда они вставляются в таблицы. Они могут быть секционированными таблицами. Они тоже не поддерживают среду pureScale.
      • Таблица с кластеризацией по диапазону (RCT) : таблицы этого типа обеспечивают быстрый и прямой доступ к данным. Они реализованы в виде последовательных кластеров. Каждая запись в таблице имеет идентификатор записи. Таблицы такого типа используются, когда данные плотно кластеризованы с одним или несколькими столбцами в таблице. Таблицы этого типа также не поддерживаются в DB2 pureScale.
      • Секционированные таблицы : Таблицы этого типа используются в схеме организации данных, в которой данные таблицы делятся на несколько объектов хранения. Разделы данных могут быть добавлены, присоединены и отделены от многораздельной таблицы. Вы можете хранить несколько разделов данных из таблицы в одном табличном пространстве.
      • Временные таблицы : история таблицы в базе данных хранится во временных таблицах, таких как детали ранее сделанных изменений.
    • Временные таблицы : для временной работы различных операций с базой данных вам необходимо использовать временные таблицы. Временные таблицы (DGTT) не отображаются в системном каталоге, столбцы XML нельзя использовать в созданных временных таблицах.
    • Материализованные таблицы запросов : MQT можно использовать для повышения производительности запросов. Эти типы таблиц определяются запросом, который используется для определения данных в таблицах.

    Создание таблиц

    Следующий синтаксис создает таблицу:

    Синтаксис : [Создать новую таблицу]

    db2 create table <schema_name>.<table_name>
    (column_name column_type....) in <tablespace_name>   

    Пример : мы создаем таблицу для хранения данных «сотрудника» в схеме «профессионал». Эта таблица имеет поля «id, name, jobrole, joindate, salary», и данные этой таблицы будут храниться в табличном пространстве «ts1».

    db2 create table professional.employee(id int, name 
    varchar(50),jobrole varchar(30),joindate date, 
    salary double) in ts1    

    Выход:

    DB20000I The SQL command completed successfully.    

    Детали таблицы

    Следующий синтаксис используется для перечисления деталей таблицы:

    Синтаксис : [Чтобы увидеть список таблиц, созданных со схемами]

    db2 select tabname, tabschema, tbspace from syscat.tables    

    Пример : [Чтобы увидеть список таблиц в текущей базе данных]

    db2 select tabname, tabschema, tbspace from syscat.tables     

    Выход:

    TABNAME      TABSCHEMA     TBSPACE 
    ------------ ------------- -------- 
    EMPLOYEE     PROFESSIONAL    TS1  
    
    
     1 record(s) selected.     

    Список столбцов в таблице

    Следующий синтаксис перечисляет столбцы в таблице:

    Синтаксис : [Чтобы увидеть столбцы и типы данных таблицы]

    db2 describe table <table_name>    

    Пример : [Чтобы увидеть столбцы и типы данных таблицы ’employee’]

    db2 describe table professional.employee     

    Выход:

                 Data type                   Column 
    Column name  schema    Data type name    Length    Scale Nulls 
    ------ ----- --------- ----------------- --------- ----- ------ 
    ID           SYSIBM    INTEGER             4         0     Yes 
    NAME         SYSIBM    VARCHAR             50        0     Yes 
    JOBROLE      SYSIBM    VARCHAR             30        0     Yes 
    JOINDATE     SYSIBM    DATE                4         0     Yes 
    SALARY       SYSIBM    DOUBLE              8         0     Yes  
    
      5 record(s) selected.   

    Скрытые колонны

    Вы можете скрыть весь столбец таблицы. Если вы вызываете запрос «выбрать * из», скрытые столбцы не возвращаются в результирующей таблице. Когда вы вставляете данные в таблицу, оператор «INSERT» без списка столбцов не ожидает значений для неявно скрытых столбцов. На столбцы этого типа часто ссылаются в материализованных таблицах запросов. Столбцы такого типа не поддерживают создание временных таблиц.

    Создание таблицы со скрытым столбцом

    Следующий синтаксис создает таблицу со скрытыми столбцами:

    Синтаксис : [Создать таблицу со скрытыми столбцами]

    db2 create table <tab_name> (col1 datatype,col2 datatype 
    implicitly hidden)    

    Пример : [Чтобы создать таблицу ‘customer’ со скрытыми столбцами ‘phone’]

    db2 create table professional.customer(custid integer not 
    null, fullname varchar(100), phone char(10) 
    implicitly hidden)     

    Вставка значений данных в таблицу

    Следующий синтаксис вставляет значения в таблицу:

    Синтаксис : [Вставить значения в таблицу]

    db2 insert into <tab_name>(col1,col2,...)
     values(val1,val2,..)    

    Пример : [Вставить значения в таблицу ‘customer’]

    db2 insert into professional.customer(custid, fullname, phone) 
    values(100,'ravi','9898989')
    
    
    db2 insert into professional.customer(custid, fullname, phone) 
    values(101,'krathi','87996659')
    
    
    db2 insert into professional.customer(custid, fullname, phone) 
    values(102,'gopal','768678687')

    Выход:

    DB20000I  The SQL command completed successfully.

    Получение значений из таблицы

    Следующий синтаксис извлекает значения из таблицы:

    Синтаксис : [Чтобы получить значения из таблицы]

    db2 select * from <tab_name>    

    Пример : [Чтобы получить значения из таблицы ‘customer’]

    db2 select * from professional.customer 

    Выход:

    CUSTID      FULLNAME 
    ----------- ------------------------ 
            100 ravi
    		
            101 krathi
    		
            102 gopal  
    		
      3 record(s) selected. 

    Получение значений из таблицы, включая скрытые столбцы

    Следующий синтаксис извлекает значения из выбранных столбцов:

    Синтаксис : [Извлечение значений выбранных скрытых столбцов из таблицы]

    db2 select col1,col2,col3 from <tab_name>    

    Пример : [Извлечение значений выбранных столбцов из таблицы]

    db2 select custid,fullname,phone from professional.customer  

    Выход:

    CUSTID  FULLNAME    PHONE 
    ------- ---------   ------------ 
    100     ravi        9898989
     
    101     krathi      87996659 
    
    102     gopal       768678687 
    
      3 record(s) selected. 

    Если вы хотите увидеть данные в скрытых столбцах, вам нужно выполнить команду «DESCRIBE».

    Синтаксис :

    db2 describe table <table_name> show detail     

    Пример:

    db2 describe table professional.customer show detail     

    Выход:

    Column name     Data type schema     Data type name  Column
               column    Partitionkey  code 
                                           Length   Scale    Nulls     
    number     sequence      page     Hidden      Default 
    --------------- -------------------- --------------- -------- ----
    ---- -------- ---------- ------------- -------- ----------- ------ 
    ---  
    CUSTID          SYSIBM               INTEGER         4        0 
    No       0          0         0        No 
    FULLNAME        SYSIBM               VARCHAR         100      0
    Yes      1          0        1208     No     
    
    PHONE           SYSIBM               CHARACTER       10       0     
    Yes      2          0             1208     Implicitly  
      
    3 record(s) selected.  

    Изменение типа столбцов таблицы

    Вы можете изменить нашу структуру таблицы, используя эту команду «alter» следующим образом:

    Синтаксис :

    db2 alter table <tab_name> alter column <col_name> set data type <data_type>     

    Пример: [Чтобы изменить тип данных для столбца «id» с «int» на «bigint» для таблицы сотрудников]

    db2 alter table professional.employee alter column id set data type bigint      

    Выход :

    DB20000I The SQL command completed successfully.    

    Изменение названия столбца

    Вы можете изменить имя столбца, как показано ниже:

    Синтаксис : [Чтобы изменить имя столбца со старого имени на новое имя таблицы]

    db2 alter table <tab_name> rename column <old_name> to <new_name>     

    Пример: [Чтобы изменить имя столбца с «полное имя» на «имя пользователя» в таблице «клиенты».]

    db2 alter table professional.customer rename column fullname to custname       

    Отбрасывать столы

    Чтобы удалить любую таблицу, вам нужно использовать команду «DROP» следующим образом:

    Синтаксис :

    db2 drop table <tab_name>     

    Пример: [Чтобы удалить базу данных из таблицы клиентов]

    db2 drop table professional.customers       

    Чтобы удалить всю иерархию таблицы (включая триггеры и отношения), вам нужно использовать команду «DROP TABLE HIERARCHY».

    Синтаксис :

    db2 drop table hierarchy <tab_name>

    Пример: [Чтобы удалить всю иерархию таблицы ‘customer’]

    db2 drop table hierarchy professional.customers       

    DB2 Alias

    В этой главе описывается создание псевдонима и извлечение данных с использованием псевдонима объектов базы данных.

    Вступление

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

    Создание псевдонимов объектов базы данных

    Вы можете создать псевдоним объекта базы данных, как показано ниже:

    Синтаксис :

    db2 create alias <alias_name> for <table_name>    

    Пример : создание псевдонима для таблицы «professional.customer»

    db2 create alias pro_cust for professional.customer    

    Если вы передадите «SELECT * FROM PRO_CUST» или «SELECT * FROM PROFESSIONAL.CUSTOMER», сервер базы данных покажет тот же результат.

    Синтаксис : [Извлечение значений из таблицы напрямую с именем схемы]

    db2 select * from <schema_name>.<table_name>    

    Пример : [Извлечь значения из таблицы customer]

    db2 select * from professional.customer    

    Выход:

    CUSTID  FULLNAME    PHONE
    ------- ---------   ------------ 
    100     ravi        9898989 
    101     krathi      87996659 
    102     gopal       768678687 
      
      3 record(s) selected.    

    Получение значений с использованием псевдонима таблицы

    Вы можете извлечь значения из базы данных, используя псевдоним, как показано ниже:

    Синтаксис : [Чтобы извлечь значения из таблицы, вызвав псевдоним таблицы]

    db2 select * from <alias_name>    

    Пример : [Чтобы получить значения из таблицы customer, используя псевдоним]

    db2 select * from pro_cust

    Выход:

    CUSTID  FULLNAME    PHONE
    ------- ---------   ------------ 
    100     ravi        9898989 
    101     krathi      87996659 
    102     gopal       768678687 
      
      3 record(s) selected.    

    Ограничения DB2

    Эта глава описывает различные ограничения в базе данных.

    Вступление

    Для обеспечения целостности базы данных определен набор правил, называемых ограничениями. Ограничения разрешают или запрещают значения в столбцах.

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

    • НЕНУЛЕВОЙ
    • уникальный
    • Основной ключ
    • Иностранный ключ
    • Проверьте
    • информационный

    Ограничения связаны только с таблицами. Они применяются только к конкретным таблицам. Они определяются и применяются к таблице во время создания таблицы.

    Объяснение каждого ограничения:

    НЕНУЛЕВОЙ

    Это правило запрещает нулевые значения из одного или нескольких столбцов в таблице.

    Синтаксис:

    db2 create table <table_name>(col_name col_type not null,..)  

    Пример : [Чтобы создать таблицу продаж с четырьмя столбцами (id, itemname, qty, price), добавив ограничения «not null» для всех столбцов, чтобы избежать образования нулевой ячейки в таблице.]

    db2 create table shopper.sales(id bigint not null, itemname 
    varchar(40) not null, qty int not null,price double not null)   

    Вставка значений NOT NULL в таблицу

    Вы можете вставить значения в таблицу, как показано ниже:

    Пример: [ERRORoneous Query]

    db2 insert into shopper.sales(id,itemname,qty) 
    values(1,'raagi',12) 

    Вывод: [правильный запрос]

    DB21034E  The command was processed as an SQL statement because 
    it was not a 
    
    valid Command Line Processor command.  During SQL processing 
    it returned: 
    
    SQL0407N  Assignment of a NULL value to a NOT NULL column 
    "TBSPACEID=5, 
    
    TABLEID=4, COLNO=3" is not allowed.  SQLSTATE=23502 
     

    Пример: [Правильный запрос]

    db2 insert into shopper.sales(id,itemname,qty,price) 
    values(1,'raagi',12, 120.00)  
    
    db2 insert into shopper.sales(id,itemname,qty,price) 
    values(1,'raagi',12, 120.00) 

    Выход:

    DB20000I The SQL command completed successfully.

    Уникальные ограничения

    Используя эти ограничения, вы можете установить значения столбцов уникальным образом. Для этого уникальные ограничения объявляются с ограничением «не ноль» во время создания таблицы.

    Синтаксис:

    db2 create table <tab_name>(<col> <col_type> not null unique, ...) 

    Пример:

    db2 create table shopper.sales1(id bigint not null unique, 
    itemname varchar(40) not null, qty int not null,price 
    double not null)  

    Вставка значений в таблицу

    Пример: для вставки четырех разных строк с уникальными идентификаторами 1, 2, 3 и 4.

    db2 insert into shopper.sales1(id, itemname, qty, price) 
    values(1, 'sweet', 100, 89)  
    
    db2 insert into shopper.sales1(id, itemname, qty, price) 
    values(2, 'choco', 50, 60)  
    
    db2 insert into shopper.sales1(id, itemname, qty, price) 
    values(3, 'butter', 30, 40)  
    
    db2 insert into shopper.sales1(id, itemname, qty, price) 
    values(4, 'milk', 1000, 12)  

    Пример: вставить новую строку со значением «id» 3

    db2 insert into shopper.sales1(id, itemname, qty, price) 
    values(3, 'cheese', 60, 80)   

    Вывод : при попытке вставить новую строку с существующим значением идентификатора будет показан следующий результат:

    DB21034E  The command was processed as an SQL statement 
    because it was not a 
    
    valid Command Line Processor command.  During 
    SQL processing it returned: 
    
    SQL0803N  One or more values in the INSERT statement, 
    UPDATE statement, or foreign key update caused by a
    DELETE statement are not valid because the primary key, 
    unique constraint or unique index identified by "1" constrains 
    table "SHOPPER.SALES1" from having duplicate values for the 
    index key. SQLSTATE=23505    

    Основной ключ

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

    Синтаксис:

    db2 create table <tab_name>( ,.., primary
    key ()) 

    Пример : для создания таблицы «salesboys» с «sid» в качестве первичного ключа

    db2 create table shopper.salesboys(sid int not null, name 
    varchar(40) not null, salary double not null, constraint 
    pk_boy_id primary key (sid))

    Иностранный ключ

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

    Ранее вы создали таблицу с именем «shopper.salesboys». Для этой таблицы первичным ключом является «sid». Теперь вы создаете новую таблицу с личными данными продавца с другой схемой с именем «работник» и таблицей с именем «продавец». В этом случае «sid» является внешним ключом.

    Синтаксис:

    db2 create table <tab_name>(<col> <col_type>,constraint 
    <const_name> foreign key (<col_name>)  
                      reference <ref_table> (<ref_col>)  

    Пример : [Чтобы создать таблицу с именем ‘salesboys’ со столбцом внешнего ключа ‘sid’]

    db2 create table employee.salesboys( 
                sid int,  
                name varchar(30) not null,  
                phone int not null,  
                constraint fk_boy_id  
                foreign key (sid)  
                references shopper.salesboys (sid) 
    			 on delete restrict 
                           ) 

    Пример : [Вставка значений в таблицу первичных ключей «shopper.salesboys»]

    db2 insert into shopper.salesboys values(100,'raju',20000.00), 
    (101,'kiran',15000.00), 
    (102,'radha',10000.00), 
    (103,'wali',20000.00), 
    (104,'rayan',15000.00)

    Пример : [Вставка значений в таблицу внешнего ключа «employee.salesboys» [без ошибки]]

    db2 insert into employee.salesboys values(100,'raju',98998976), 
    (101,'kiran',98911176), 
    (102,'radha',943245176), 
    (103,'wali',89857330),  
    (104,'rayan',89851130) 

    Если вы ввели неизвестный номер, который не хранится в таблице «shopper.salesboys», он покажет вам ошибку SQL.

    Пример : [ошибка выполнения]

    db2 insert into employee.salesboys values(105,'rayan',89851130) 

    Выход:

    DB21034E  The command was processed as an SQL statement because it 
    was not a valid Command Line Processor command.  During SQL 
    processing it returned: SQL0530N  The insert or update value of 
    the FOREIGN KEY "EMPLOYEE.SALESBOYS.FK_BOY_ID" is not equal to any 
    value of the parent key of the parent table.  SQLSTATE=23503  

    Проверка ограничения

    Вам нужно использовать это ограничение, чтобы добавить условные ограничения для определенного столбца в таблице.

    Синтаксис:

    db2 create table                                                      
     (  
      primary key (),                                                       
      constraint  check (condition or condition)  
     )
     

    Пример : [Создать таблицу emp1 со значениями ограничений]

    db2 create table empl                                                     
     (id           smallint not null,                                         
      name         varchar(9),                                                
      dept         smallint check (dept between 10 and 100), 
      job          char(5)  check (job in ('sales', 'mgr', 'clerk')), 
      hiredate     date,                                                      
      salary       decimal(7,2),                                              
      comm         decimal(7,2),                                              
      primary key (id),                                                       
      constraint yearsal check (year(hiredate) > 1986 or salary > 40500)  
     )
     

    Вставка значений

    Вы можете вставить значения в таблицу, как показано ниже:

    db2 insert into empl values (1,'lee', 15, 'mgr', '1985-01-01' , 
    40000.00, 1000.00) 

    Отбрасывание ограничения

    Давайте посмотрим синтаксис для отбрасывания различных ограничений.

    Отбрасывание УНИКАЛЬНОГО ограничения

    Синтаксис:

    db2 alter table <tab_name> drop unique <const_name>

    Отбрасывание первичного ключа

    Синтаксис:

    db2 alter table <tab_name> drop primary key 

    Отбросить проверочное ограничение

    Синтаксис:

    db2 alter table <tab_name> drop check <check_const_name>  

    Отбрасывание внешнего ключа

    Синтаксис:

    db2 alter table <tab_name> drop foreigh key <foreign_key_name>  

    Индексы DB2

    Эта глава охватывает введение в индексы, их типы, создание и удаление.

    Вступление

    Индекс – это набор указателей, которые могут ссылаться на строки в таблице, блоки в таблицах MDC или ITC, данные XML в объекте хранения XML, которые логически упорядочены по значениям одного или нескольких ключей. Он создается в столбцах таблицы DB2 для ускорения доступа к данным для запросов, а также для эффективной кластеризации и разделения данных. Это также может улучшить производительность работы на представлении. Таблица с уникальным индексом может иметь строки с уникальными ключами. В зависимости от требований к таблице вы можете использовать разные типы индексов.

    Типы указателей

    • Уникальные и неуникальные индексы
    • Кластерные и некластеризованные индексы

    Создание индексов

    Для создания уникальных индексов вы используете следующий синтаксис:

    Синтаксис:

    db2 create unique index <index_name> on 
    <table_name>(<unique_column>) include (<column_names..>) 

    Пример : создать индекс для таблицы «shopper.sales1».

    db2 create unique index sales1_indx on 
    shopper.sales1(id) include (itemname) 

    Сбрасывание индексов

    Для удаления индекса вы используете следующий синтаксис:

    Синтаксис:

    db2 create unique index <index_name> on 
    <table_name>(<unique_column>) include (<column_names..>) 

    Пример:

    db2 drop index sales_index 

    Триггеры DB2

    В этой главе описываются триггеры, их типы, создание и удаление триггеров.

    Вступление

    Триггер – это набор действий, которые выполняются для ответа на операцию INSERT, UPDATE или DELETE для указанной таблицы в базе данных. Триггеры хранятся в базе данных сразу. Они управляют управлением данными. Они могут быть доступны и доступны для нескольких приложений. Преимущество использования триггеров состоит в том, что если в приложении необходимо внести какие-либо изменения, это делается в триггере; вместо изменения каждого приложения, которое обращается к триггеру. Триггеры просты в обслуживании и обеспечивают более быструю разработку приложений. Триггеры определяются с помощью оператора SQL «CREATE TRIGGER».

    Типы триггеров

    Есть два типа триггеров:

    1. ДО триггеров

    Они выполняются перед любой операцией SQL.

    2. ПОСЛЕ триггеров

    Они выполняются после любой операции SQL.

    Создание ПЕРЕД триггером

    Давайте посмотрим, как создать последовательность триггера:

    Синтаксис:

    db2 create sequence <seq_name> 

    Пример : создание последовательности триггеров для таблицы shopper.sales1

    db2 create sequence sales1_seq as int start with 1 increment by 1 

    Синтаксис:

    db2 create trigger <trigger_name> no cascade before insert on 
    <table_name> referencing new as <table_object> for each row set 
    <table_object>.<col_name>=nextval for <sequence_name> 

    Пример : создание триггера для таблицы shopper.sales1 для автоматической вставки номеров первичных ключей

    db2 create trigger sales1_trigger no cascade before insert on 
    shopper.sales1 referencing new as obj for each row set 
    obj.id=nextval for sales1_seq

    Теперь попробуйте вставить любые значения:

    db2 insert into shopper.sales1(itemname, qty, price) 
    values('bicks', 100, 24.00) 

    Получение значений из таблицы

    Давайте посмотрим, как получить значения из таблицы:

    Синтаксис:

    db2 select * from <tablename>

    Пример :

    db2 select * from shopper.sales1

    Выход :

      ID       ITEMNAME       QTY 
    -------  ------------   ---------- 
        3      bicks            100 
        2      bread            100 
      
      2 record(s) selected. 

    Создание триггера ПОСЛЕ

    Давайте посмотрим, как создать триггер после:

    Синтаксис:

    db2 create trigger <trigger_name> no cascade before insert on 
    <table_name> referencing new as <table_object> for each row set
     <table_object>.<col_name>=nextval for <sequence_name> 

    Пример: [Вставить и получить значения]

    db2 create trigger sales1_tri_after after insert on shopper.sales1 
    for each row mode db2sql begin atomic update shopper.sales1 
    set price=qty*price; end  

    Выход:

    //inseting values in shopper.sales1 
    db2 insert into shopper.sales1(itemname,qty,price) 
    values('chiken',100,124.00) 
    //output 
    ID    ITEMNAME       QTY         PRICE 
    ----- -------------- ----------- -----------                      
        3 bicks          100         2400.00 
        4 chiken         100         12400.00 
        2 bread          100         2400.00 
    
    	3 record(s) selected. 

    Отпустить курок

    Вот как сбрасывается триггер базы данных:

    Синтаксис:

    db2 drop trigger <trigger_name>  

    Пример:

    db2 drop trigger slaes1_trigger   

    DB2 – последовательности

    Эта глава знакомит вас с концепцией последовательности, созданием последовательности, просмотром последовательности и удалением их.

    Вступление

    Последовательность – это программная функция, которая генерирует целые числа в возрастающем или убывающем порядке в пределах определенного диапазона для генерации первичного ключа и координации других ключей в таблице. Вы используете последовательность для использования целых чисел, скажем, для employee_id илиaction_id. Последовательность может поддерживать типы данных SMALLINT, BIGINT, INTEGER и DECIMAL. Последовательность может быть разделена между несколькими приложениями. Последовательность увеличивается или уменьшается независимо от транзакций.

    Последовательность создается оператором CREATE SEQUENCE.

    Типы последовательностей

    Доступны два типа последовательностей:

    • NEXTVAL : возвращает увеличенное значение для порядкового номера.

    • ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ : Возвращает недавно сгенерированное значение.

    NEXTVAL : возвращает увеличенное значение для порядкового номера.

    ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ : Возвращает недавно сгенерированное значение.

    Параметры последовательностей

    Следующие параметры используются для последовательностей:

    Тип данных : это тип данных возвращенного увеличенного значения. (МАЛЕНЬКИЙ, БОЛЬШОЙ, ЦЕЛЫЙ, НОМЕР, ДВОЙНОЙ)

    НАЧАТЬ С : ссылочное значение, с которого начинается последовательность.

    MINVALUE : минимальное значение для начала последовательности.

    MAXVALUE : максимальное значение для последовательности.

    INCREMENT BY : значение шага, на которое увеличивается последовательность.

    Цикл последовательности : предложение CYCLE вызывает генерацию последовательности несколько раз. Генерация последовательности осуществляется путем обращения к возвращенному значению, которое сохраняется в базе данных предыдущей генерацией последовательности.

    Создание последовательности

    Вы можете создать последовательность, используя следующий синтаксис:

    Синтаксис:

    db2 create sequence <seq_name> 

    Пример : [Создать новую последовательность с именем ‘sales1_seq’ и увеличением значений от 1]

    db2 create sequence sales1_seq as int start 
    with 1 increment by 1  

    Просмотр последовательностей

    Вы можете просмотреть последовательность, используя синтаксис, приведенный ниже:

    Синтаксис:

    db2 value <previous/next> value for <seq_name>

    Пример : [Чтобы увидеть список предыдущих обновленных значений в последовательности ‘sales1_seq’]

    db2 values previous value for sales1_seq  

    Выход:

     1 
    ----------- 
      4 
      1 record(s) selected. 

    Отбрасывание последовательности

    Чтобы удалить последовательность, вам нужно использовать «DROP SEQUENCE» Команда. Вот как вы это делаете:

    Синтаксис:

    db2 drop sequence <seq_name>>

    Пример : [Удалить последовательность ‘sales1_seq’ из базы данных]

    db2 drop sequence sales1_seq  

    Выход:

     DB20000I The SQL command completed successfully. 

    DB2 Views

    В этой главе описывается введение представлений, создание, изменение и удаление представлений.

    Вступление

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

    Создание вида

    Вы можете создать представление, используя следующий синтаксис:

    Синтаксис:

    db2 create view <view_name> (<col_name>,
    <col_name1...) as select <cols>.. 
    from <table_name> 

    Пример : создание представления для таблицы shopper.sales1

    db2 create view view_sales1(id, itemname, qty, price) 
    as select id, itemname, qty, price from 
    shopper.sales1  

    Изменение вида

    Вы можете изменить представление, используя следующий синтаксис:

    Синтаксис:

    db2 alter view <view_name> alter <col_name> 
    add scope <table_or_view_name> 

    Пример : [Добавить новый столбец таблицы в существующее представление ‘view_sales1’]

    db2 alter view view_sales1 alter id add 
    scope shopper.sales1  

    Отбрасывание зрения

    Вы можете удалить представление, используя следующий синтаксис:

    Синтаксис:

    db2 drop view <view_name> 

    Пример:

    db2 drop view sales1_view  

    DB2 с XML

    В этой главе описывается использование XML с DB2.

    Вступление

    Функция PureXML позволяет хранить правильно сформированные документы XML в столбцах таблиц базы данных. Эти столбцы имеют базу данных XML. Данные хранятся в своей исходной иерархической форме, сохраняя данные XML в столбце XML. Хранимые данные XML могут быть доступны и управляться функциями сервера баз данных DB2. Хранение XML-данных в их собственной иерархической форме обеспечивает эффективный поиск, поиск и обновление XML. Чтобы обновить значение в данных XML, вам нужно использовать XQuery, SQL или их комбинацию.

    Создание базы данных и таблицы для хранения данных XML

    Создайте базу данных, введя следующий синтаксис:

    Синтаксис:

    db2 create database xmldb 

    По умолчанию базы данных используют кодовый набор UTF-8 (UNICODE). Активируйте базу данных и подключитесь к ней:

    Синтаксис:

    db2 activate db <db_name>
    db2 connect to <db_name> 

    Пример:

    db2 activate db xmldb 
    db2 connect to xmldb  

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

    Синтаксис:

    db2 create table <schema>.<table>(col <datatype>, 
    col <xml datatype>)” 

    Пример:

    db2 "create table shope.books(id bigint not null 
    primary key, book XML)"   

    Вставьте значения XML в таблицу, правильно сформированные документы XML вставляются в столбец типа XML с помощью оператора SQL «INSERT».

    Синтаксис:

    db2 insert into <table_name> values(value1, value2)” 

    Пример:

    db2 "insert into shope.books values(1000, '<catalog>  
    <book> 
    
    <author> Gambardella Matthew</author> 
    <title>XML Developers Guide</title> 
    <genre>Computer</genre> 
    <price>44.95</price> 
    <publish_date>2000-10-01</publish_date> 
    <description>An in-depth look at creating application 
    with XML</description> 
    </book> 
    
    </catalog>')"   

    Обновление данных XML в таблице

    Вы можете обновить данные XML в таблице, используя следующий синтаксис:

    Синтаксис:

    db2 update <table_name> set <column>=<value> where 
    <column>=<value>”  

    Пример:

    db2 "update shope.books set book='<catalog>  
    
    <book> 
    <author> Gambardella, Matthew</author>  
    <title>XML Developers Guide</title>  
    <genre>Computer</genre>  
    <price>44.95</price>  
    <publish_date>2000-10-01</publish_date>  
    <description>An in-depth XML</description>
      
    </book> 
     
    </catalog>' where id=1000"  

    DB2 – Резервное копирование и восстановление

    В этой главе описываются методы резервного копирования и восстановления базы данных.

    резервное копирование

    Вступление

    Методы резервного копирования и восстановления предназначены для обеспечения безопасности нашей информации. В интерфейсе командной строки (CLI) или графическом интерфейсе пользователя (GUI) с помощью утилит резервного копирования и восстановления вы можете выполнять резервное копирование или восстановление данных баз данных в DB2 UDB.

    логирование

    Файлы журнала состоят из журналов ошибок, которые используются для восстановления после ошибок приложения. В журналах ведется учет изменений в базе данных. Существует два типа регистрации, как описано ниже:

    Круговая регистрация

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

    Архивирование журнала

    Этот режим поддерживает резервное копирование в онлайн-хранилище и восстановление базы данных с использованием файлов журналов, называемых восстановлением с повтором транзакций. Режим резервного копирования можно изменить с циклического на архивный, установив для logretain или userexit значение ON. Для ведения архива для базы данных параметров резервного копирования требуется каталог, доступный для записи для процесса DB2.

    Резервное копирование

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

    Вы можете сделать резервную копию, работая как в автономном режиме, так и в Интернете.

    Автономное резервное копирование

    Синтаксис: [Для отображения активных приложений / баз данных]

    db2 list application  

    Выход:

    Auth Id  Application    Appl.      Application Id                                                
    DB       # of   
             Name           Handle              
    Name    Agents  
    -------- -------------- ---------- ---------------------
    ----------------------------------------- -------- -----  
    DB2INST1 db2bp          39         
    *LOCAL.db2inst1.140722043938                                   
    ONE      1  

    Синтаксис: [Чтобы заставить приложение использовать приложение. Обработанный идентификатор]

    db2 "force application (39)"   

    Выход:

    DB20000I  The FORCE APPLICATION command completed 
    successfully.  
    
    DB21024I  This command is asynchronous and may not 
    be effective immediately. 

    Синтаксис: [Чтобы разорвать соединение с базой данных]

    db2 terminate  

    Синтаксис: [Деактивировать базу данных]

    db2 deactivate database one   

    Синтаксис: [Взять файл резервной копии]

    db2 backup database <db_name> to <location>   

    Пример:

    db2 backup database one to /home/db2inst1/ 

    Выход:

    Backup successful. The timestamp for this backup image is : 
    20140722105345  

    Резервное копирование онлайн

    Для начала вам нужно изменить режим с Циклического ведения журнала на Архивное ведение журнала .

    Синтаксис: [Чтобы проверить, использует ли база данных циклическое или архивное ведение журнала]

    db2 get db cfg for one | grep LOGARCH   

    Выход:

    First log archive method (LOGARCHMETH1) = OFF  
     Archive compression for logarchmeth1  (LOGARCHCOMPR1) = OFF 
     Options for logarchmeth1              (LOGARCHOPT1) =   
     Second log archive method             (LOGARCHMETH2) = OFF  
     Archive compression for logarchmeth2  (LOGARCHCOMPR2) = OFF  
     Options for logarchmeth2              (LOGARCHOPT2) =   

    В приведенном выше выводе выделенными значениями являются [logarchmeth1 и logarchmeth2] в выключенном режиме, что означает, что текущая база данных находится в режиме «CIRCULLAR LOGGING». Если вам нужно работать с режимом «ARCHIVE LOGGING», вам нужно изменить или добавить путь в переменных logarchmeth1 и logarchmeth2, присутствующих в файле конфигурации.

    Обновление logarchmeth1 с необходимым каталогом архива

    Синтаксис: [Чтобы сделать каталоги]

    mkdir backup 
    mkdir backup/ArchiveDest    

    Синтаксис: [Чтобы предоставить пользователю права доступа к папке]

    chown db2inst1:db2iadm1 backup/ArchiveDest 

    Синтаксис: [Чтобы обновить конфигурацию LOGARCHMETH1]

    db2 update database configuration for one using LOGARCHMETH1 
    'DISK:/home/db2inst1/backup/ArchiveDest'

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

    Синтаксис: [Для резервного копирования в онлайн]

    db2 backup database one online to 
    /home/db2inst1/onlinebackup/ compress include logs   

    Выход:

    db2 backup database one online to 
    /home/db2inst1/onlinebackup/ compress include logs    

    Проверьте файл резервной копии, используя следующую команду:

    Синтаксис:

    db2ckbkp <location/backup file>   

    Пример:

    db2ckbkp 
    /home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001 

    Список истории файлов резервных копий

    Синтаксис:

    db2 list history backup all for one    

    Выход:

                        List History File for one 
      
    Number of matching file entries = 4 
     
    Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
    Backup ID  
     -- --- ------------------ ---- --- ------------ ------------ 
     --------------
      B  D  20140722105345001   F    D  S0000000.LOG S0000000.LOG 
    
     ------------------------------------------------------------ 
     ----------------   
     
     Contains 4 tablespace(s): 
     00001 SYSCATSPACE  
     
     00002 USERSPACE1
     
     00003 SYSTOOLSPACE 
     
     00004 TS1 
      ------------------------------------------------------------ 
      ---------------- 
      Comment: DB2 BACKUP ONE OFFLINE  
      
     Start Time: 20140722105345  
     
       End Time: 20140722105347
       
         Status: A
     ------------------------------------------------------------ 
     ---------------- 
     EID: 3 Location: /home/db2inst1 
    
     
     Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
     Backup ID
     -- --- ------------------ ---- --- ------------ ------------ 
     --------------  
      B  D  20140722112239000   N       S0000000.LOG S0000000.LOG   
     ------------------------------------------------------------ 
     ------------------------------------------------------------- 
     ------------------------------- 
     
     Comment: DB2 BACKUP ONE ONLINE  
     
     Start Time: 20140722112239 
     
       End Time: 20140722112240  
       
         Status: A 
     ------------------------------------------------------------ 
     ----------------  
      EID: 4 Location: 
    SQLCA Information 
     
     sqlcaid : SQLCA     sqlcabc: 136   sqlcode: -2413   sqlerrml: 0 
     
     sqlerrmc:   
     sqlerrp : sqlubIni  
     sqlerrd : (1) 0                (2) 0                (3) 0 
     
               (4) 0                (5) 0                (6) 0  
    		   
     sqlwarn : (1)      (2)      (3)      (4)        (5)       (6)  
     
               (7)      (8)      (9)      (10)       (11)  
     sqlstate: 
     
     Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
     Backup ID
      -- --- ------------------ ---- --- ------------ ------------ 
      -------------- 
       B  D  20140722112743001   F    D  S0000000.LOG S0000000.LOG   
     
     ------------------------------------------------------------ 
     ---------------- 
     Contains 4 tablespace(s): 
     
     00001 SYSCATSPACE 
     
     00002 USERSPACE1 
     
     00003 SYSTOOLSPACE 
     
     00004 TS1
      ------------------------------------------------------------- 
      ---------------- 
      Comment: DB2 BACKUP ONE OFFLINE 
      
     Start Time: 20140722112743 
     
       End Time: 20140722112743 
       
         Status: A 
     ------------------------------------------------------------- 
      ---------------- 
     EID: 5 Location: /home/db2inst1 
     
     Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log 
     Backup ID   
      ------------------------------------------------------------- 
      ----------------
      
    R  D  20140722114519001   F                                
    20140722112743 
    
     ------------------------------------------------------------ 
     ----------------  
     Contains 4 tablespace(s):  
     
     00001 SYSCATSPACE 
     
      00002 USERSPACE1 
      
     00003 SYSTOOLSPACE  
     
     00004 TS1
     ------------------------------------------------------------ 
     ----------------  
    Comment: RESTORE ONE WITH RF
      
     Start Time: 20140722114519 
     
       End Time: 20140722115015  
         Status: A  
    	 
     ------------------------------------------------------------ 
     ----------------  
      EID: 6 Location:  

    Восстановление базы данных из резервной копии

    Чтобы восстановить базу данных из файла резервной копии, вам необходимо следовать заданному синтаксису:

    Синтаксис:

    db2 restore database <db_name> from <location> 
    taken at <timestamp>    

    Пример:

    db2 restore database one from /home/db2inst1/ taken at 
    20140722112743  

    Выход:

    SQL2523W  Warning!  Restoring to an existing database that is 
    different from  
     
    the database on the backup image, but have matching names. 
    The target database  
     
    will be overwritten by the backup version.  The Roll-forward 
    recovery logs
    
    associated with the target database will be deleted.  
    
    Do you want to continue ? (y/n) y 
     
    DB20000I  The RESTORE DATABASE command completed successfully.   

    Выполните откат всех журналов, расположенных в каталоге журналов, включая последние изменения непосредственно перед отказом дисковода.

    Синтаксис:

    db2 rollforward db <db_name> to end of logs and stop   

    Пример:

    db2 rollforward db one to end of logs and stop  

    Выход:

                                     Rollforward Status  
     Input database alias                   = one  
     Number of members have returned status = 1  
     Member ID                              = 0  
     Rollforward status                     = not pending  
     Next log file to be read               =  
     Log files processed                    = S0000000.LOG - 
     S0000001.LOG  
     Last committed transaction            = 2014-07-22- 
     06.00.33.000000 UTC  
    DB20000I  The ROLLFORWARD command completed successfully. 

    DB2 – Безопасность базы данных

    Эта глава описывает безопасность базы данных.

    Вступление

    База данных и функции DB2 могут управляться двумя различными режимами контроля безопасности:

    1. Аутентификация
    2. авторизация

    Аутентификация

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

    Безопасность базы данных может управляться извне системы базы данных db2. Вот некоторый тип процесса аутентификации безопасности:

    • Основано на аутентификации операционной системы.
    • Облегченный протокол доступа к каталогам (LDAP)

    Для DB2 служба безопасности является частью операционной системы как отдельный продукт. Для аутентификации требуются два различных учетных данных: идентификатор пользователя или имя пользователя и пароль.

    авторизация

    Вы можете получить доступ к базе данных DB2 и ее функциям в системе баз данных DB2, которая управляется менеджером баз данных DB2. Авторизация – это процесс, управляемый менеджером баз данных DB2. Менеджер получает информацию о текущем аутентифицированном пользователе, которая указывает, какую операцию базы данных пользователь может выполнить или получить к ней доступ.

    Вот различные способы разрешений, доступных для авторизации:

    Основное разрешение : предоставляет идентификатор авторизации напрямую.

    Вторичное разрешение : Предоставляет группам и ролям, если пользователь является участником

    Публичное разрешение : Предоставляет всем пользователям публично.

    Контекстно-зависимое разрешение . Предоставляет доверенную контекстную роль.

    Авторизация может быть предоставлена ​​пользователям на основе категорий ниже:

    • Авторизация на уровне системы
    • Системный администратор [SYSADM]
    • Управление системой [SYSCTRL]
    • Обслуживание системы [SYSMAINT]
    • Системный монитор [SYSMON]

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

    • Авторизация на уровне базы данных
    • Администратор безопасности [SECADM]
    • Администратор базы данных [DBADM]
    • Контроль доступа [ACCESSCTRL]
    • Доступ к данным [DATAACCESS]
    • Администратор SQL. [SQLADM]
    • Администратор управления рабочей нагрузкой [WLMADM]
    • Объясните [ОБЪЯСНИТЬ]

    Власти обеспечивают контроль в базе данных. Другие полномочия для базы данных включают с LDAD и CONNECT.

    • Авторизация на уровне объекта. Авторизация на уровне объекта включает проверку привилегий при выполнении операции над объектом.
    • Контентная авторизация . Пользователь может иметь доступ на чтение и запись к отдельным строкам и столбцам в конкретной таблице, используя управление доступом на основе меток [LBAC].

    Таблицы и файлы конфигурации DB2 используются для записи разрешений, связанных с именами авторизации. Когда пользователь пытается получить доступ к данным, записанные разрешения проверяют следующие разрешения:

    • Авторизационное имя пользователя
    • Какая группа принадлежит пользователю
    • Какие роли предоставляются непосредственно пользователю или косвенно группе
    • Разрешения, полученные через доверенный контекст.

    При работе с операторами SQL модель авторизации DB2 учитывает комбинацию следующих разрешений:

    • Разрешения, предоставленные первичному идентификатору авторизации, связанному с операторами SQL.
    • Вторичные идентификаторы авторизации, связанные с операторами SQL.
    • Предоставлено ПУБЛИЧНО
    • Предоставлено роли доверенного контекста.

    Органы уровня инстанции

    Давайте обсудим некоторые инстанции, связанные с властями.

    Системный администратор (SYSADM)

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

    • Обновить базу данных
    • Восстановить базу данных
    • Обновить файл конфигурации менеджера баз данных.

    Орган управления системой (SYSCTRL)

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

    Пользователи с полномочиями SYSCTRL могут выполнять следующие действия:

    • Обновление базы данных, узла или каталога службы распределенного подключения (DCS)
    • Вынуждение пользователей от системного уровня
    • Создание или удаление уровня базы данных
    • Создание, изменение или удаление табличного пространства
    • Использование любого табличного пространства
    • Восстановление базы данных

    Центр обслуживания системы (SYSMAINT)

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

    Только пользователи с полномочиями системы SYSMAINT или более высокого уровня могут выполнять следующие задачи:

    • Принимая резервную копию
    • Восстановление резервной копии
    • Восстановление с повтором
    • Запуск или остановка экземпляра
    • Восстановление табличных пространств
    • Выполнение команды db2trc
    • Создание снимков системного монитора в случае пользователя уровня экземпляра или пользователя уровня базы данных.

    Пользователь с SYSMAINT может выполнять следующие задачи:

    • Запросить состояние табличного пространства
    • Обновление файлов истории журнала
    • Реорганизация таблиц
    • Использование RUNSTATS (коллекция каталогов статистики)

    Полномочия системного монитора (SYSMON)

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

    • ПОЛУЧИТЕ ПЕРЕКЛЮЧАТЕЛИ БАЗЫ ДАННЫХ МЕНЕДЖЕРА
    • ПОЛУЧИТЬ ПЕРЕКЛЮЧАТЕЛИ МОНИТОРА
    • ПОЛУЧИТЬ СНЕЙШОТ
    • СПИСОК
      • СПИСОК АКТИВНЫХ БАЗ ДАННЫХ
      • СПИСОК ПРИЛОЖЕНИЙ
      • СПИСОК БАЗ ДАННЫХ
      • СПИСОК ПРИЛОЖЕНИЙ DCS
      • СПИСОК ПАКЕТОВ
      • СПИСОК ТАБЛИЦ
      • СПИСОК СТОЛОВЫХ КОНТЕЙНЕРОВ
      • СПИСОК СТОЛОВ
      • СПИСОК ПОЛЬЗОВАТЕЛЕЙ
    • СБРОС МОНИТОРА
    • ПЕРЕКЛЮЧАТЕЛИ МОНИТОРА ОБНОВЛЕНИЯ

    База данных органов

    Каждый орган базы данных содержит идентификатор авторизации для выполнения некоторых действий с базой данных. Эти полномочия базы данных отличаются от привилегий. Вот список некоторых органов управления базами данных:

    ACCESSCTRL : позволяет предоставлять и отзывать все привилегии объекта и полномочия базы данных.

    BINDADD : позволяет создать новый пакет в базе данных.

    CONNECT : позволяет подключаться к базе данных.

    CREATETAB : позволяет создавать новые таблицы в базе данных.

    CREATE_EXTERNAL_ROUTINE : Позволяет создать процедуру, которая будет использоваться приложениями и пользователями баз данных.

    DATAACCESS : позволяет получить доступ к данным, хранящимся в таблицах базы данных.

    DBADM : выступать в роли администратора базы данных. Он предоставляет все остальные права доступа к базе данных, кроме ACCESSCTRL, DATAACCESS и SECADM.

    ОБЪЯСНИТЬ : Позволяет объяснить планы запросов, не требуя от них обладания правами доступа к данным в таблицах.

    IMPLICIT_SCHEMA : позволяет пользователю неявно создавать схему, создавая объект с помощью оператора CREATE.

    LOAD : позволяет загружать данные в таблицу.

    QUIESCE_CONNECT : позволяет получить доступ к базе данных, пока она находится в состоянии покоя (временно отключена).

    SECADM : позволяет выступать в роли администратора безопасности для базы данных.

    SQLADM : позволяет отслеживать и настраивать операторы SQL.

    WLMADM : позволяет выступать в роли администратора рабочей нагрузки.

    привилегии

    SETSESSIONUSER

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

    Схема привилегий

    Эти привилегии включают действия над схемой в базе данных. Владелец схемы имеет все полномочия для управления объектами схемы, такими как таблицы, представления, индексы, пакеты, типы данных, функции, триггеры, процедуры и псевдонимы. Пользователь, группа, роль или PUBLIC могут быть предоставлены любому пользователю со следующими привилегиями:

    • CREATEIN : позволяет создавать объекты в схеме
    • ALTERIN : позволяет изменять объекты в схеме.

    DROPIN

    Это позволяет удалять объекты в схеме.

    Привилегии табличного пространства

    Эти привилегии включают действия с табличными пространствами в базе данных. Пользователю может быть предоставлена ​​привилегия USE для табличных пространств. Затем привилегии позволяют им создавать таблицы в табличных пространствах. Владелец привилегии может предоставить привилегию USE с помощью команды WITH GRANT OPTION для табличного пространства при создании табличного пространства. А полномочия SECADM или ACCESSCTRL имеют разрешения на использование привилегий USE в табличном пространстве.

    Привилегии таблиц и представлений

    Пользователь должен иметь полномочия CONNECT для базы данных, чтобы иметь возможность использовать таблицы и просматривать привилегии. Привилегии для таблиц и представлений приведены ниже:

    КОНТРОЛЬ

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

    ALTER

    Это позволяет пользователю изменять таблицу.

    УДАЛЯТЬ

    Это позволяет пользователю удалять строки из таблицы или представления.

    ИНДЕКС

    Это позволяет пользователю вставить строку в таблицу или представление. Он также может запустить утилиту импорта.

    РЕКОМЕНДАЦИИ

    Это позволяет пользователям создавать и удалять внешний ключ.

    ВЫБРАТЬ

    Это позволяет пользователю получать строки из таблицы или представления.

    ОБНОВИТЬ

    Позволяет пользователю изменять записи в таблице, просматривать.

    Пакетные привилегии

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

    КОНТРОЛЬ

    Он предоставляет пользователю привилегии перепривязывания, удаления или выполнения пакетов. Пользователю с этими привилегиями предоставляются привилегии BIND и EXECUTE.

    BIND

    Это позволяет пользователю связывать или перепривязывать этот пакет.

    ВЫПОЛНИТЬ

    Позволяет выполнить пакет.

    Индекс привилегий

    Эта привилегия автоматически получает привилегию CONTROL для индекса.

    Привилегии последовательности

    Sequence автоматически получает привилегии USAGE и ALTER для последовательности.

    Обычные привилегии

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

    DB2 – роли

    Вступление

    Роль – это объект базы данных, который группирует несколько привилегий, которые могут быть назначены пользователям, группам, PUBLIC или другим ролям с помощью оператора GRANT.

    Ограничения на роли

    • Роль не может владеть объектами базы данных.
    • Разрешения и роли, предоставленные группам, не учитываются при создании следующих объектов базы данных.
      • Пакет, содержащий статический SQL
      • Просмотры
      • Материализованные таблицы запросов (MQT)
      • Триггеры
      • SQL подпрограммы

    Создание и предоставление членства в ролях

    Синтаксис: [Создать новую роль]

    db2 create role <role_name> 

    Пример : [Чтобы создать новую роль с именем ‘sales’, чтобы добавить таблицу для управления каким-либо пользователем или группой]

    db2 create role sales 

    Выход:

    DB20000I The SQL command completed successfully. 

    Предоставление роли из DBADM определенной таблице

    Синтаксис: [Предоставить разрешение роли для таблицы]

    db2 grant select on table <table_name> to role <role_name> 

    Пример : [Добавить разрешение на управление таблицей «shope.books» для роли «продажи»]

    db2 grant select on table shope.books to role sales 

    Выход:

    DB20000I  The SQL command completed successfully. 

    Администратор безопасности предоставляет роль нужным пользователям. (Прежде чем использовать эту команду, вам нужно создать пользователей.)

    Синтаксис: [Добавить пользователей в роль]

    db2 grant role <role_name> to user <username> 

    Пример : [Чтобы добавить пользователя ‘mastanvali’ к роли ‘sales’]

    db2 grant sales to user mastanvali  

    Выход:

    DB20000I  The SQL command completed successfully. 

    Ролевые иерархии

    Для создания иерархий для ролей каждой роли предоставляются разрешения / членство с другой ролью.

    Синтаксис: [перед этим синтаксисом создайте новую роль с именем «production»]

    db2 grant role <roll_name> to role <role_name>

    Пример : [Чтобы предоставить разрешение роли «продажа» другой роли «производство»]

    db2 grant sales to role production 

    DB2 – LDAP

    Вступление

    LDAP – это облегченный протокол доступа к каталогам. LDAP – это глобальная служба каталогов, стандартный протокол, основанный на модели клиент-сервер и работающий на уровне выше стека TCP / IP. LDAP предоставляет средство для подключения, доступа, изменения и поиска в интернет-каталоге.

    Серверы LDAP содержат информацию, которая организована в форме дерева каталогов. Клиенты просят сервер предоставить информацию или выполнить некоторую операцию с определенной информацией. Сервер отвечает клиенту, предоставляя требуемую информацию, если таковая имеется, или направляет клиента на другой сервер для действия с требуемой информацией. Затем клиент получает желаемую информацию с другого сервера.

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

    Существует два типа LDAP:

    1. прозрачный
    2. Вставной

    Давайте посмотрим, как настроить прозрачный LDAP.

    Настройка прозрачного LDAP

    Чтобы начать с настройки прозрачного LDAP, вам необходимо настроить сервер LDAP.

    Конфигурация сервера LDAP

    Создайте файл SLAPD.conf, который содержит всю информацию о пользователях и объектах группы в LDAP. Когда вы устанавливаете сервер LDAP, по умолчанию он настроен с базовым деревом каталогов LDAP на вашем компьютере.

    В приведенной ниже таблице указана конфигурация файла после модификации.

    Текст, выделенный желтым цветом, означает следующее:

    DBA user-id = «db2my1», group = «db1my1adm», password = «db2my1» Admin user-id = «my1adm», group = «dbmy1ctl».

    # base dn: example.com 
    dn: dc=example,dc=com 
    dc: example 
    o: example 
    objectClass: organization 
    objectClass: dcObject 
    # pc box db 
    dn: dc=db697,dc=example,dc=com 
    dc: db697 
    o: db697 
    objectClass: organization 
    objectClass: dcObject 
    # 
    # Group: dbadm 
    # 
    dn: cn=dbmy1adm,dc=db697,dc=example,dc=com 
    cn: dbmy1adm 
    objectClass: top 
    objectClass: posixGroup 
    gidNumber: 400 
    objectClass: groupOfNames 
    member: uid=db2my1,cn=dbmy1adm,dc=db697,dc=example,dc=com 
    memberUid: db2my1 
    # 
    # User: db2 
    # 
    dn: uid=db2my1,cn=dbmy1adm,dc=db697,dc=example,dc=com 
    cn: db2my1 
    sn: db2my1 
    uid: db2my1 
    objectClass: top 
    objectClass: inetOrgPerson 
    objectClass: posixAccount 
    uidNumber: 400 
    gidNumber: 400 
    loginShell: /bin/csh 
    homeDirectory: /db2/db2my1 
    # 
    # Group: dbctl 
    # 
    dn: cn=dbmy1ctl,dc=db697,dc=example,dc=com 
    cn: dbmy1ctl 
    objectClass: top 
    objectClass: posixGroup 
    gidNumber: 404 
    objectClass: groupOfNames 
    member: uid=my1adm,cn=dbmy1adm,dc=db697,dc=example,dc=com 
    memberUid: my1adm 
    # 
    # User: adm 
    # 
    dn: uid=my1adm,cn=dbmy1ctl,dc=db697,dc=example,dc=com 
    cn: my1adm 
    sn: my1adm 
    uid: my1adm 
    objectClass: top 
    objectClass: inetOrgPerson 
    objectClass: posixAccount 
    uidNumber: 404 
    gidNumber: 404 
    loginShell: /bin/csh 
    homeDirectory: /home/my1adm 

    Сохраните указанный выше файл с именем «/var/lib/slapd.conf», затем выполните этот файл, выполнив следующую команду, чтобы добавить эти значения на сервер LDAP. Это команда Linux; не команда db2.

    ldapadd r- -D cn=Manager,dc=example,dc=com W f 
    /var/lib/slapd.conf 

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

    Конфигурация клиента LDAP

    Конфигурация клиента LDAP сохраняется в файле ‘ldap.conf’. Для параметров конфигурации доступны два файла: один общий, а другой – конкретный. Вы должны найти первый в /etc/ldap.conf, а последний находится в /etc/openldap/ldap.conf.

    Следующие данные доступны в общем файле конфигурации клиента LDAP

    # File: /etc/ldap.conf  
    # The file contains lots of more entries and many of them  
    # are comments. You show only the interesting values for now  
    host localhost  
    base dc=example,dc=com  
    ldap_version 3  
    pam_password crypt  
    pam_filter objectclass=posixAccount  
    nss_map_attribute uniqueMember member 
    nss_base_passwd dc=example,dc=com  
    nss_base_shadow dc=example,dc=com  
    nss_base_group dc=example,dc=com 

    Вам необходимо изменить расположение информации о сервере и домене в соответствии с конфигурацией DB2. Если мы используем сервер в той же системе, то упомяните его как «localhost» в «host» и «base», вы можете настроить, что упомянуто в файле «SLAPD.conf» для сервера LDAP.

    Сменная модель аутентификации (PAM) – это API для сервисов аутентификации. Это общий интерфейс для аутентификации LDAP с зашифрованным паролем и специальным объектом LDAP типа posixAccount. Все объекты LDAP этого типа представляют собой абстракцию учетной записи с атрибутами переносимого интерфейса операционной системы (POSIX).

    Службы сетевой безопасности (NSS) – это набор библиотек для поддержки кроссплатформенной разработки клиентских и серверных приложений с включенной безопасностью. Это включает в себя библиотеки, такие как SSL, TLS, PKCS S / MIME и другие стандарты безопасности.

    Вам нужно указать базовое DN для этого интерфейса и два дополнительных атрибута сопоставления. Файл конфигурации клиента OpenLDAP содержит следующие записи:

    host localhost  
    base dc=example,dc=com

    До этого вы просто определяете хост подачи LDAP и базовый DN.

    Проверка среды OpenLDAP

    После того, как вы настроили сервер LDAP и клиент LDAP, проверьте оба соединения.

    Шаг 1 : Проверьте, работает ли ваш локальный сервер LDAP. Используя команду ниже:

    ps -ef | grep -i ldap

    Эта команда должна перечислить демон LDAP, который представляет ваш сервер LDAP:

    /usr/lib/openldap/slapd -h ldap:/// -u ldap -g ldap -o slp=on

    Это означает, что ваш сервер LDAP работает и ожидает запроса от клиентов. Если для предыдущих команд такого процесса не существует, вы можете запустить сервер LDAP с помощью команды ‘rcldap’.

    rcldap start 

    Когда сервер запускается, вы можете отслеживать это в файле ‘/ var / log / messages /, выполнив следующую команду.

    tail f /var/log/messages 

    Тестирование соединения с сервером LDAP с помощью ldapsearch

    Команда ldapsearch открывает соединение с сервером LDAP, связывается с ним и выполняет поисковый запрос, который можно указать, используя специальные параметры ‘-x’, подключаются к вашему серверу LDAP с помощью простого механизма аутентификации, используя параметр –x вместо более сложный механизм, такой как простая аутентификация и уровень безопасности (SASL)

    ldapsearch x  

    Сервер LDAP должен ответить приведенным ниже ответом, содержащим все ваши записи LDAP в формате обмена данными LDAP (LDIF).

    # extended LDIF  
    #  
    # LDAPv3  
    # base <> with scope subtree  
    # filter: (objectclass=*) 
    # requesting: ALL  
    # example.com  
    dn: dc=example,
    dc=com  dc: example  
    o: example  
    objectClass: organization  
    objectClass: dcObject  
    # search result  
    search: 2  
    result: 0 Success  
    # numResponses: 2  
    # numEntries: 1  

    Конфигурирование DB2

    После работы с сервером и клиентом LDAP вам необходимо сконфигурировать нашу базу данных DB2 для использования с LDAP. Давайте обсудим, как вы можете установить и настроить базу данных для использования нашей среды LDAP для процесса аутентификации пользователя DB2.

    Конфигурирование подключаемых модулей взаимодействия DB2 и LDAP

    IBM предоставляет бесплатный пакет с плагинами LDAP для DB2. Пакет DB2 включает три подключаемых модуля защиты DB2 для каждого из следующих компонентов:

    • аутентификация на стороне сервера
    • аутентификация на стороне клиента
    • поиск группы

    В зависимости от ваших требований вы можете использовать любой из трех плагинов или все из них. Этот плагин не поддерживает среды, в которых одни пользователи определены в LDAP, а другие – в операционных системах. Если вы решите использовать подключаемые модули LDAP, вам необходимо определить всех пользователей, связанных с базой данных на сервере LDAP. Тот же принцип применим к групповому плагину.

    Вы должны решить, какие плагины являются обязательными для нашей системы. Подключаемые модули аутентификации клиента, используемые в сценариях, в которых идентификатор пользователя и проверка пароля, указанные в операторе CONNECT или ATTACH, происходят в клиентской системе. Поэтому параметры конфигурации менеджера баз данных SRVCON_AUTH или AUTHENTICATION должны быть установлены в значение CLIENT. Аутентификация клиента трудна для обеспечения безопасности и обычно не рекомендуется. Обычно рекомендуется подключаемый модуль сервера, поскольку он выполняет проверку идентификаторов пользователей и паролей на стороне сервера, если клиент выполняет инструкцию CONNECT или ATTACH, и это безопасный способ. Плагин сервера также предоставляет способ сопоставления идентификаторов пользователей LDAP с идентификаторами авторизации DB2.

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

    Образ

    Файл LDIF openldap.ldif должен содержать следующий код:

    #  
    # LDAP root object  
    # example.com  
    #  
    dn: dc=example,
    dc=com  
    dc: example  
    o: example  
    objectClass: organization  
    objectClass: dcObject 
     #  
     # db2 groups  
     #  
     dn: cn=dasadm1,dc=example,dc=com  
     cn: dasadm1  
     objectClass: top  
     objectClass: posixGroup  
     gidNumber: 300  
     objectClass: groupOfNames 
     member: uid=dasusr1,cn=dasadm1,dc=example,dc=com  
     memberUid: dasusr1  
     dn: cn=db2grp1,dc=example,dc=com  
     cn: db2grp1  
     objectClass: top  
     objectClass: posixGroup  
     gidNumber: 301  
     objectClass: groupOfNames  
     member: uid=db2inst2,cn=db2grp1,dc=example,dc=com  memberUid: db2inst2  
     dn: cn=db2fgrp1,dc=example,dc=com  
     cn: db2fgrp1  
     objectClass: top 
     objectClass: posixGroup  
     gidNumber: 302  
     objectClass: groupOfNames 
     member: uid=db2fenc1,cn=db2fgrp1,dc=example,dc=com  
     memberUid: db2fenc1  
     #  
     # db2 users  
     #  
     dn: uid=dasusr1,
     cn=dasadm1,
     dc=example,dc=com  
     cn: dasusr1  
     sn: dasusr1  
     uid: dasusr1  
     objectClass: top  
     objectClass: inetOrgPerson 
     objectClass: posixAccount 
     uidNumber: 300  
     gidNumber: 300  
     loginShell: /bin/bash 
     homeDirectory: /home/dasusr1  
     dn: uid=db2inst2,cn=db2grp1,dc=example,dc=com  
     cn: db2inst2  
     sn: db2inst2  
     uid: db2inst2  
     objectClass: top  
     objectClass: inetOrgPerson  
     objectClass: posixAccount  
     uidNumber: 301  
     gidNumber: 301  
     loginShell: /bin/bash  
     homeDirectory: /home/db2inst2  
     dn: uid=db2fenc1,cn=db2fgrp1,dc=example,dc=com  
     cn: db2fenc1  
     sn: db2fenc1  
     uid: db2fenc1  
     objectClass: top  
     objectClass: inetOrgPerson  
     objectClass: posixAccount  
     uidNumber: 303  
     gidNumber: 303  
     loginShell: /bin/bash  
     homeDirectory: /home/db2fenc1 
     

    Создайте файл с именем ‘db2.ldif’ и вставьте в него приведенный выше пример. Используя этот файл, добавьте определенные структуры в каталог LDAP.

    Чтобы добавить пользователей DB2 и группы DB2 в каталог LDAP, вам необходимо привязать пользователя как «rootdn» к серверу LDAP, чтобы получить точные привилегии.

    Выполните следующие синтаксисы, чтобы заполнить информационный каталог LDAP всеми нашими объектами, определенными в файле LDIF ‘db2.ldif’

    ldapadd x D cn=Manager, dc=example,dc=com W f <path>/db2.ldif 

    Выполните результат поиска с большим параметром

    ldapsearch x |more 

    Подготовка файловой системы для использования DB2

    Создание экземпляра для нашего пользователя LDAP db2inst2. Для этого пользователя требуется домашний каталог с двумя пустыми файлами внутри домашнего каталога. Перед созданием нового экземпляра необходимо создать пользователя, который будет владельцем экземпляра.

    После создания пользователя экземпляра вам нужно будет создать файлы «.profile» и «.login» в домашнем каталоге пользователя, которые будут изменены DB2. Чтобы создать этот файл в каталоге, выполните следующую команду:

    mkdir /home/db2inst2  
    mkdir /home/db2inst2/.login 
    mkdir /home/db2inst2/.profile  

    Вы зарегистрировали всех пользователей и группы, связанные с DB2, в каталоге LDAP, теперь вы можете создать экземпляр с именем ‘db2inst2’ с идентификатором владельца экземпляра ‘db2inst2’ и использовать идентификатор изолированного пользователя ‘db2fenc1’, который необходим для запуска пользователя определенные функции (UDF) или хранимые процедуры.

    /opt/ibm/db2/V10.1/instance/db2icrt u db2fenc1 db2inst2  
    DBI1070I Program db2icrt completed successfully.  

    Теперь проверьте домашний каталог экземпляра. Вы можете увидеть новый подкаталог с именем ‘sqllib’ и файлы .profile и .login, настроенные для использования DB2.

    Настройка общедоступных модулей аутентификации для поддержки LDAP в DB2

    Скопируйте необходимые плагины LDAP в соответствующий каталог DB2:

    cp            ///v10/IBMLDAPauthserver.so  
    /home/db2inst2/sqllib/security/plugin/server/. 
     
    cp            ///v10/IBMLDAPgroups.so 
    /home/db2inst2/sqllib/security/plugin/group/.

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

    Su  db2inst2  
    db2inst2> db2 update dbm cfg using svrcon_pw_plugin 
    IBMLDAPauthserver 
    db2inst2> db2 update dbm cfg using group_plugin 
    IBMLDAPgroups 
    db2inst2> db2 update dbm cfg using authentication 
    SERVER_ENCRYPT 
    db2inst2> db2stop 
    db2inst2> db2start  

    Эта модификация вступает в силу после запуска экземпляра DB2. После перезапуска экземпляра вам необходимо установить и настроить основной файл конфигурации DB2 LDAP с именем «IBMLDAPSecurity.ini», чтобы подключаемые модули DB2 работали с текущей конфигурацией LDAP.

    Файл IBMLDAPSecurity.ini содержит

    ;-----------------------------------------------------------  
    ; SERVER RELATED VALUES  
    ;-----------------------------------------------------------  
    ; Name of your LDAP server(s).  
    ; This is a space separated list of LDAP server addresses,  
    ; with an optional port number for each one:  
    ; host1[:port] [host2:[port2] ... ]  
    ; The default port number is 389, or 636 if SSL is enabled.  
    LDAP_HOST = my.ldap.server  
    ;-----------------------------------------------------------  
    ; USER RELATED VALUES  
    ;-----------------------------------------------------------  
    rs  
    ; LDAP object class used for use USER_OBJECTCLASS = posixAccount  
    ; LDAP user attribute that represents the "userid"  
    ; This attribute is combined with the USER_OBJECTCLASS and  
    ; USER_BASEDN (if specified) to construct an LDAP search  
    ; filter when a user issues a DB2 CONNECT statement with an  
    ; unqualified userid. For example, using the default values 
    ; in this configuration file, (db2 connect to MYDB user bob  
    ; using bobpass) results in the following search filter:  
    OrgPerson)(uid=bob)  
    ; &(objectClass=inet USERID_ATTRIBUTE = uid  
    representing the DB2 authorization ID  
    ; LDAP user attribute, AUTHID_ATTRIBUTE = uid  
    ;-----------------------------------------------------------  
    ; GROUP RELATED VALUES  
    ;-----------------------------------------------------------  
    ps  
    ; LDAP object class used for grou GROUP_OBJECTCLASS = groupOfNames  
    at represents the name of the group  
    ; LDAP group attribute th GROUPNAME_ATTRIBUTE = cn  
    ; Determines the method used to find the group memberships  
    ; for a user. Possible values are:  
    ; SEARCH_BY_DN - Search for groups that list the user as  
    ; a member. Membership is indicated by the  
    ; group attribute defined as  
    ; GROUP_LOOKUP_ATTRIBUTE. 
    ; USER_ATTRIBUTE - A user's groups are listed as attributes  
    ; of the user object itself. Search for the  
    ; user attribute defined as  
    TRIBUTE to get the groups.  
    ; GROUP_LOOKUP_AT GROUP_LOOKUP_METHOD = SEARCH_BY_DN  
    ; GROUP_LOOKUP_ATTRIBUTE  
    ; Name of the attribute used to determine group membership,  
    ; as described above.  
    llGroups  
    ; GROUP_LOOKUP_ATTRIBUTE = ibm-a GROUP_LOOKUP_ATTRIBUTE = member 

    Теперь найдите файл IBMLDAPSecurity.ini в каталоге текущего экземпляра. Скопируйте вышеуказанный пример содержимого в тот же.

    Cp 
    //db2_ldap_pkg/IBMLDAPSecurity.ini  
    /home/db2inst2/sqllib/cfg/ 

    Теперь вам нужно перезапустить ваш экземпляр DB2, используя два синтаксиса, приведенные ниже:

    db2inst2> db2stop 
    
    Db2inst2> db2start 

    На этом этапе, если вы попробуете команду ‘db2start’, вы получите сообщение об ошибке безопасности. Потому что конфигурация безопасности DB2 еще не настроена правильно для вашей среды LDAP.

    Настройка обеих конфигураций

    Держите под рукой имя LDAP_HOST, которое настраивается в файле slapd.conf.

    Теперь отредактируйте файл IMBLDAPSecurity.ini и введите имя LDAP_HOST. Имя LDAP_HOST в обоих указанных файлах должно быть одинаковым.

    Содержимое файла показано ниже:

          ;-----------------------------------------------------------  
          ; SERVER RELATED VALUES  
          ;-----------------------------------------------------------  
          LDAP_HOST = localhost  
          ;-----------------------------------------------------------  
          ; USER RELATED VALUES  
          ----------------------------  
          ;-------------------------------  
          USER_OBJECTCLASS = posixAccount  
          USER_BASEDN = dc=example,dc=com  
          USERID_ATTRIBUTE = uid  
          AUTHID_ATTRIBUTE = uid  
          ;-----------------------------------------------------------  
          ; GROUP RELATED VALUES  
          ;-----------------------------------------------------------  
          GROUP_OBJECTCLASS = groupOfNames 
    	  GROUP_BASEDN = dc=example,dc=com  
          GROUPNAME_ATTRIBUTE = cn  
          GROUP_LOOKUP_METHOD = SEARCH_BY_DN  
          GROUP_LOOKUP_ATTRIBUTE = member 

    После изменения этих значений LDAP немедленно вступает в силу, и ваша среда DB2 с LDAP работает отлично.

    Вы можете выйти и снова войти в систему для пользователя ‘db2inst2’.

    Теперь ваш экземпляр работает с каталогом LDAP.

    Понравилась статья? Поделить с друзьями:
  • Блоктран гт инструкция по применению при каком давлении
  • Левомиколевая мазь инструкция по применению в гинекологии
  • Seitron сигнализатор загазованности инструкция по эксплуатации
  • Инструкция по авиационной охране лесов от пожаров
  • Автомобильный держатель dexp s050 инструкция по применению