Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6.Базовые объекты СУБД таблицы, представления (...docx
Скачиваний:
1
Добавлен:
21.11.2019
Размер:
30.52 Кб
Скачать

6. Базовые объекты субд таблицы, представления (views), индексы, ключи (первичный – рк и вторичный - fk), триггеры, сохраненные процедуры, роль (role), логин (login), пользователь (user)

Таблиці (tables), представлення таблиць (views)

Таблиці – це набори логічно пов’язаних даних, які зберігаються в базі даних. Такий підхід є відносно новим. В старих СУБД таблиці були еквівалентами фізичних файлів на диску, тобто в кожному файлі була лише одна таблиця. Наприклад, в dBase в одному файлі на диску зберігалася лише одна таблиця бази даних.

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

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

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

Представлення таблиці, або вид (view) – це статичний набір операторів мови SQL, який дозволяє створювати динамічні таблиці, побудовані з одного або кількох наборів рядків у відповідності з попередньо заданим критерієм вибору; це потужній інструмент, який можна використовувати в різних ситуаціях. Представлення можна використовувати для різних комбінацій рядків і стовпчиків, які є в одній або декількох таблицях. Для отримання представлення використовують простий оператор SELECT (мова SQL), який дозволяє визначити рядки і стовпчики, включені в це представлення.

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

Працювати зі старими БД, наприклад, ієрархічними і мережними, можна було лише через об’єкти, еквівалентні представленням таблиць. До мережних баз даних доступ здійснювався через об’єкт, який називався підсхемою (subschema). Підсхема працювала так само, як і представлення. Підсхема зазвичай визначалася як об’єкт, через який програміст або користувач “бачить” базу даних.

Визначивши представлення таблиці, на нього можна посилатися так само, як і на таблицю. Mоже здаватися, що view – це постійний набір рядків і стовпчиків, який зберігається на диску в базі даних, насправді ж це зовсім не так. Представлення не створює постійної копії набора обраних з бази даних рядків і стовпчиків. Коли робиться посилання на view, виконується оператор SELECT, який міститься в визначенні цього представлення (тобто все відбувається так само, як і з таблицею). Тимчасова таблиця, що створюється для відображення даних на екрані монітора, після відображення заданого набора рядків і стовпчиків знищується.

Слід зауважити, що view – це не таблиця. Як вже зазначалося вище, визначивши представлення, за його допомогою можна отримати доступ до даних так само, як і при посиланні на таблицю. Однак слід пам’ятати, що дані, на які йде посилання за допомогою представлення, завжди беруться з таблиці, яка лежить в основі цього представлення. Крім того, якщо додати нові стовпчики до таблиці, на основі якої визначено представлення, то в останньому ці стовпчики не з’являться. Щоб це відбулося, необхідно спочатку знищити view, а потім створити його знов, або модифікувати SQL-оператори старого представлення таблиці.

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

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

Визначаючи представлення, слід пам’ятати про деякі обмеження. Наприклад, неможливо визначити представлення на основі тимчасової таблиці. Тимчасові таблиці – це структури, які існують доти, доки дані з постійної таблиці не будуть відображені на пристрої виведення. Якщо можливо було б визначити представлення, в основі якого лежить тимчасов таблиця, то при посиланні на нього дані могли б виявитися недоступними. Це сталося б у випадку видалення тимчасової таблиці.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]