Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лб1_Oracle_Ukr_020804.doc
Скачиваний:
5
Добавлен:
10.02.2016
Размер:
222.21 Кб
Скачать

Лабораторна робота №1

УПРАВЛІННЯ ДОСТУПОМ ДО БАЗИ ДАНИХ. СТВОРЕННЯ ОБЛІКОВИХ ЗАПИСІВ КОРИСТУВАЧА. СЕАНС ДОСТУПУ ДО БАЗИ ДАНИХ.

1 Ціль роботи

Ціллю роботи є вивчення властивостей СУРБД Oracle, адміністрування у Oracle, створення користувачів, представлення і відміна об’єктних привілеїв, використання ролів для доступу до бази даних, сеанс доступу до бази даних.

2 Ключові положення

2.1 Користувальницькі об'єкти бази даних

Користувальницькі об'єкти – це об'єкти системи, що не перебувають у винятковому віданні СУРБД Oracle. Усі вони, за винятком файлів даних, є логічними об'єктами бази даних. Це означає, що їхня форма і призначення мають сенс тільки в контексті сервера Oracle. Файли даних, на відміну від інших, є реальними файлами операційної системи, а тому них називають фізичними об'єктами бази даних.

У число об'єктів користувача входять файли даних, розширення (extend), табличні простори (tablespace) і сегменти (segments) бази даних.

Файли даних

Файли даних у СУРБД Oracle є єдиними фізичними об'єктами. Кожен файл даних розміщений про один табличний простір і зберігає поточне значення цього простору. Файл даних являє собою реальний файл операційної системи, і з ним можна звертатися, як з будь-яким її файлом. Дані зберігаються в бінарному форматі у файлі Oracle, і, таким чином, їх можна прочитати тільки за допомогою засобів СУРБД Oracle.

Файли даних формуються командами SQL CREATE TABLESPACE і ALTER TABLESPACE. Розмір файлу даних установлюється відповідно до параметрів оператора CREATE і не зв'язаний безпосередньо з даними, що у ньому знаходяться.

Одержати інформацію про реально існуючих у базі даних файлах даних можна за допомогою представлень DBA_DATA_FILES і v$datafile.

Табличні простори

Табличний простір (Tablespace) – це логічна модель, що використовується для угруповання даних з однотипними методами доступу. У табличний простір входить один або кілька файлів даних. При формуванні об'єктів бази даних потрібно вказувати табличні простори, якому вони будуть належати. Після цього дані (які, власне й утворять об'єкт) будуть зберігається у файлі даних, що належить зазначеному табличному просторові.

Табличні простори використовуються для поділу операцій уведення-висновку, що виконуються в процесі доступу до даних. Наприклад. один табличний простір може бути сформоване для збереження обітниць даних., а інше – для збереження об'єктів індексів. Якщо виділити для цих табличних просторів файли даних на різних фізичних дисках, можна бути упевненим, що звертання до об'єктів індексів не буде перетинатися зі звертанням до даних, на які ці індекси вказують.

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

Інформація про табличні простори знаходиться в представленні DBA_TABLESPSCES.

Блоки Oracle

Блоки Oracle є елементами нижчого рівня ієрархії збереження даних у системі, представляючи собою найменші адресуємі сервером одиниці збереження. Їх не потрібно плутати з блоками операційної системи, хоча блоки Oracle і формуються з блоків операційної системи, це не те саме.

Доступ до даних виконується в термінах блоків Oracle. При виконанні операції введення-висновку СУРБД Oracle зчитує стільки байтів даних, скільки входить в один блок Oracle. Обсяги об'єктів бази даних і розміри блоків у кеш-буфері також встановлюються у відповідно розмірові блоку Oracle.

Розмір блоку Oracle установлюється при створенні бази даних і не може бути змінений надалі.

У кожнім блоці Oracle передбачене місце для його заголовка, майбутніх відновлень даних у блоці і реально існуючих рядків даних. У кожнім блоці виділяться місце для наступного відновлення даних у його рядках. Це місце буде використано в тому випадку, якщо в процесі відновлення даних якого-небудь рядка вона збільшується в розмірі.

Можливість включати нові рядки до складу блоку контролюється параметрами PCTFREE і системи збереження інформації.

Параметр PCTFREE контролює виділення пам'яті (у відсотках) для подальшого відновлення даних у блоці. Наприклад, якщо значення параметра PCTFREE дорівнює 30%, те 70% обсягу блоку буде використано для нових рядків. Коли ці 70% будуть заповнені, Oracle викреслить блок зі списку вільних (доступних для нових рядків), а що залишилися 30% буде зберігати для можливих надалі відновлень уже включених у нього рядків.

Параметр PCTUSED задає частина обсягу блоку, що повинна звільниться, перш ніж блок знову буде включений у список доступних для введення нових рядків. Звільнення простору блоку можливо в результаті видалення рядків або скорочення обсягу інформації, що зберігаються в них, після відновлення даних.

У сукупності настроювання параметрів PCTFREE і PCTUSED повинні забезпечувати як можливість безперешкодного відновлення інформації в рядках, включених у блок, так і його раціональне використання при зменшенні обсягу даних, що зберігаються.

Розширення (Extents)-екстенти

Розширення (extents) – це об'єкти інформаційної структури збереження даних які утворяться безперервними блоками Oracle (одним або декількома).

Рисунок 1 Логічна структура табличного простору бази даних

Простір для розширення виділяться екстентові при створенні об'єкта відповідно до параметрів команди CREATE. Коли виявляється, що нові дані не можуть бути поміщені у вже створені розширення (extents), повинне бути виділений простір для нового розширення.

Сегмент (Segment)

Сегмент (segment) – це набір екстентів відведених для збереження логічної структури. Сегмент — це частина простору, відведений для збереження дані таблиці, індексу, сегмента відкоту або тимчасового об'єкта. Коли об'єктові бази даних не вистачає місця в його сегменті для введення нових даних, Oracle виділяє йому додатковий простір у виді екстента.

Кожен сегмент бази даних складається із одного чи декількох розширень. Розмір розширень (екстентів) в сегменті бази даних може бути таким же , як і інші, чи відрізнятись від них.

Сегменти – це створені користувачами об'єкти, що зберігаються в базі даних.

На додаток до створеним користувачем сегментам даних і індексів, два типи сегментів розглядаються як системні (або створювані адміністратором бази даних). Це - тимчасовий сегмент і сегмент відкоту (rollback). Звичайно ці сегменти створюються адміністратором і потім передаються в загальне користування.

Сегменти і екстенти складаються з блоків даних, а ті, у свою чергу, у сукупності утворять файл даних (date file). Для параметра ініціалізації DB_BLOCK_SIZE указується деяке значення в байтах. Це розмір кожного блоку Oracle. Звичайно розмір блоку кратний розмірові блоку операційної системи. Блоки Oracle складають, як правило, 2К, 4К, 8К и іноді 16К.

2.2 Керування блоками Oracle.

Найменшою адресуемою сервером Oracle одиницею є блок. Усі сегменти (segment) бази даних складаються з екстентів, що у свою чергу складаються з блоків, а структура блоку завжди та сама незалежно від того, чи є сегмент таблицею, індексом, кластером або іншим об'єктом.

Проектування бази даних з оптимальними характеристиками починається з підбора конфігурації й адміністрування блоків Oracle.

Кожен блок складається з п'яти розділів:

  • Заголовок (Header). Містить загальну інформацію, таку як адреса блоку і тип сегмента.

  • Каталог таблиць (Table directory). Містить інформацію про таблиці, що має дані в блоці даних.

  • Каталог рядків (Row directory). Містить інформацію про рядки в блоці даних.

  • Каталог рядків (Row directory). Містить інформацію про рядки в блоці даних.

  • Вільний простір (Free space). Простір відведене для відновлення існуючих рядків і введення нових. Два параметри керування простором PCTFREE і PCTUSED забезпечують керування використанням вільного простору.

У заголовку блоку утримується інформація про нього: сегмент якого типу зберігається в блоці, дані яких сегментів входять у цей блок, адресу блоку і покажчики на реальні рядки, збережені в ньому.

Заголовок блоку складається з фіксованої і перемінної частин і займає від 85 до 100 байт.

Керування областю збереження даних і областями вільного простору в межах блоку тісно зв'язані один з одним. Рядка, що зберігаються в блоці, складають область даних. Резервна вільна область являє собою фрагмент простору блоку, що зарезервований для майбутніх відновлень рядків, збережених у блоці. Розмір резервної вільної області визначається у відсотках від розміру блоку.

Параметри PCTFREE і PCTUSED

Параметри PCTFREE і PCTUSED – це параметри настроювання підсистеми збереження.

Якщо інформація повинна бути записана в блок бази даних, то СУРБД, аналізує значення параметрів PCTFREE і PCTUSED і поточні характеристики блоку, з'ясовує. Чи можливо додавання нової інформації в блок.

Якщо відносний розмір простору в резервній області більше, ніж значення параметра PCTFREE, блок може бути використаний для запису нової інформації, інакше блок буде вважатися заповненим, і нові дані в нього додаватися не будуть

Як тільки відносний обсяг використовуваного простору в блоці стане менше значення параметра PCTUSED, блок знову буде використовуватися СУРБД для додавання даних.

Цей метод дозволяє СУРБД Oracle зберігати достатній обсяг додаткового простору для додавання інформації в межах блоку, а компактне розміщення рядків у блоці. У свою чергу, допомагає забезпечувати високий рівень продуктивності СУРБД.

Якщо вільний простір у блоці менше, чим визначено параметром PCTFREE, блок виключається зі списку доступних. Це буде продовжуватися доти, поки границя вільного простору не перейде оцінку задану параметром PCTUSED у результаті виконання операцій видалення рядків, збережених у блоці, або відновлення, що зменшує довжину рядків у блоці. Параметр PCTUSED визначає відносний розмір вільного простору ( у відсотках), по досягненню якого в блок можуть додаватися нові рядки.

Значення параметрів PCTFREE і PCTUSED ніколи не повинні досягати 100%. Крім того, при близьких значеннях цих параметрів блок буде постійно віддалятися зі списку вільних блоків і включатися в нього при найменшій зміні вмісту. Цього можна уникнути. Якщо залишити між значеннями параметрів PCTFREE і PCTUSED зазор принаймні, у 20%. Значення параметрів за замовчуванням рівні 10% для параметра PCTFREE і 40% для параметра PCTUSED.

Знайти поточне значення для параметрів PCTFREE і PCTUSED можна, використовуючи представлення словника даних dba_tables, dba_clusters і dba_index.

За допомогою параметрів PCTFREE і PCTUSED можна точно набудовувати специфічні параметри збереження окремих таблиць.

На рисунку 2 показана взаємодія параметрів PCTFREE і PCTUSED при керуванні використанням простору усередині блоку. У цьому прикладі мається на увазі, що значення параметра PCTFREE дорівнює 20% , а значення параметра PCTUSED дорівнює 40%.

Рисунок 2 Взаємодія параметрів PCTFREE і PCTUSED при керуванні використанням простору усередині блоку

На схемі 1 показано, що вставки можуть використовувати весь простір усередині блоку, поки не буде досягнута межа 80%, тому 20% простору блоку резервується для наступних відновлень, що вказується параметром PCTFREE.

На схемі 2 показано, що при зменшенні відносного розміру вільного простору до величини параметра PCTFREE воно буде зарезервовано для відновлень у рядках, раніше вставлених у блок, а можливість нових у цей блок не допускається.

На схемі 3 показаний блок, що буде повернутий у список вільних блоків у результаті видалень або змін, і використовуваний простір у блоці зменшилося на 40% ( що погодиться зі значенням параметра PCTUSED для цієї таблиці).

На схемі 4 показано, що, як тільки границя зайнятого простору опуститися нижче оцінки, заданої параметром PCTUSED, можна вставляти в блок нові рядки. В міру вставки нових рядків використовуваний простір буде збільшуватися, поки його границя не досягне верхньої оцінки, заданої параметром PCTFREE, і цикл почнеться спочатку.