У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Базові поняття реляційної моделі даних

Загальна характеристика реляційної моделі даних

Основи реляційної моделі даних були вперше викладені у статті Е.Кодда в 1970 р. Ця робота послужила стимулом для великої кількості статі і книг, в яких реляційна модель одержала подальший розвиток. Найпоширеніше трактування реляційної моделі даних належить К.Дейту. Згідно Дейту, реляційна модель складається з трьох частин:

Структурної частини.

Цілісної частини.

Маніпуляційної частини.

Структурна частина описує, які об'єкти розглядаються реляційною моделлю. Постуліруєтся, що єдиною структурою даних, що використовується в реляційній моделі, немає нормалізовані n-арные відносини.

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

Маніпуляційна частина описує два еквівалентні способи маніпулювання реляційними даними - реляційну алгебру і реляційне числення.

У даному розділі розглядається структурна частина реляційної моделі.

Типи даних

Будь-які дані, що використовуються в програмуванні, мають свої типи даних.

Важливо! Реляційна модель вимагає, щоб типи даних, що використовуються, були простими.

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

Прості типи даних.

Структуровані типи даних.

Посилальні типи даних.

Прості типи даних

Прості, або атомарні, типи даних не володіють внутрішньою структурою. Дані такого типу називають скалярами. До простих типів даних відносяться наступні типи:

Логічний.

Рядковий.

Чисельний.

Різні мови програмування можуть розширювати і уточнювати цей список, додаючи такі типи як:

Цілий.

Речовинний.

Дата.

Час.

Грошовий.

Що перераховує.

Інтервальний.

І т.д..

Звичайно, поняття атомарності досить відносне. Так, рядковий тип даних можна розглядати як одновимірний масив символів, а цілий тип даних - як набір бітів. Важливе лише те, що при переході на такий низький рівень втрачається семантика (значення) даних. Якщо рядок, що виражає, наприклад, прізвище співробітника, розкласти в масив символів, то при цьому втрачається значення такого рядка як єдиного цілого.

Структуровані типи даних

Структуровані типи даних призначені для завдання складних структур даних. Структуровані типи даних конструюються із становлячих елементів, званих компонентами, які, у свою чергу, можуть володіти структурою. Як структуровані типи даних можна привести наступні типи даних:

Масиви

Записи (Структури)

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

зване множиною індексів. Відображення

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

Запис (або структура) є кортежем з деякого декартового твору множин. Дійсно, запис є іменованим впорядкованим набором елементів , кожний з яких належить типу . Таким чином, запис є елемент множини . Оголошуючи нові типи записів на основі вже наявних типів, користувач може конструювати скільки завгодно складні типи даних.

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

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

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

Посилальні типи даних

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

Типи даних, що використовуються в реляційній моделі

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

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

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

Домени

У реляційній моделі даних з поняттям тип даних тісно зв'язано поняття домена, яке можна вважати уточненням типу даних.

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

Домен має унікальне ім'я (в межах бази даних).

Домен визначений на деякому простому типі даних


Сторінки: 1 2 3