Основи баз даних і знань:Іспит
Матеріал з USIC Wiki
Поняття інформаційної системи. Класифікація інформаційних систем. Поняття СКБД та її властивості
Інформаційна система
Інформаційна система - програмно-апаратний комплекс, який слугує для надійного збереження інформації у пам’яті комп’ютера, виконує специфічні для застосування перетворення і має зручний і легкий користувацький інтерфейс. Найдавніша інформаційна система - це бібліотека.
Класифікація інформаційних систем
- За призначенням:
- фактографічні(для збереження певних фактів)
- документальні(для збереження документів). Більшість СКБД – фактографічні.
- За мовами:
- За можливістю впровадження власних операторів:
- передбачена можливість впровадження операторів підмови даних(DDL,DML) в програми мовами високого рівня - це системи з базовою мовою.
- можливість впровадження операторів не передбачена – замкнуті системи.
- За парадигмою:
- процедурні (у запиті має бути вказано що треба і як це можна отримати)
- декларативні (у запиті вказуємо лише бажаний результат)
- Підмови:
- DDL (data definition language) – описує сутності, атрибути та зв’язки між сутностями, а також дозволяє обмеження цілісності та запису. Результат компіляції операторів в реляційній моделі – набір таблиць.
- DML (data manipulation language) – набір операторів для маніпулювання данними.
- За можливістю впровадження власних операторів:
- За локалізацією:
- локальні системи(всі дані в одному місці)
- розподілені системи
- За даталогічною моделю:
- фактографічні
- документальні
- За архітектурою:
- системи телеобробки(1 комп’ютер під’єднаний до кількох терміналів, вся обробка на цьому комп’ютері)(mainframe). Недолік – навантаження на центральний комп’ютер.
- файлові сервери. Результат виконання запиту відсилаються на робочу станцію у вигляді файлу. На кожній робочій станції – часткова копія БД. Недолік – значний мережевий трафік та ускладнене керування паралельною роботою, цілісністю.
- клієнт-серверна
- Функції сервера: приймає та обробляє запити до БД з боку клієнтів, виконує запити і повертає результат, перевіряє права клієнта, забезпечує паралельний доступ.
- Функції клієнта: керує інтерфейсом користувача, виконує прикладні програми, генерує запити до БД, формує отримані від сервера дані та відображає користувачу.
- Переваги: підвищена продуктивність, зниження вартості апаратної частини, скорочення комунікаційних витрат, підвищення рівня несуперечливості даних.
- розширення дворівневої архітектури клієнт-сервер до трирівневої. Функціональна частина клієнта розбивається на
- Тонкого клієнта(інтерфейс)
- Середній рівень обробки даних(логіка прикладних програм)
Обмеження файлових систем (як інформаційних систем)
- залежність програм від даних
- несумісність інформації у файлах
- дублювання даних
- розподіл та ізоляція даних
- необхідність забезпечення ефективної паралельної роботи багатьох користувачів з однми й тими ж файлами.
- децентралізований підхід до керування доступом до інформації
Системи керування базами даних
База даних - іменована сукупність даних, яка відображає стани об’єктів та їхніх співввідношень у предметній галузі, що розглядається. Альтернативне визначення таке: база даних - це набір взаємопов’язаних даних та їхніх описів, що використовуються спільно і призначені для задоволення інформаційних потреб користувачів.
СКБД – програмне забезпечення за допомогою якого користувачі можуть визначити , стоврювати та підтримувати БД, а також здійснювати контрольований доступ до неї.
Властивості СКБД
- контроль за надлишковістю даних; мінімальна надлишковість
- коректність та несуперечливість даних
- підтримка цілісності БД
- незалежність прикладних програм від даних
- спільне використання даних
- підвищений рівень безпеки
Можливості СКБД
- дозволяти створювати БД за допомогою мови визначення даних (DDL)
- дозволяти вставку оновлення, видалення читання інформації з БД за допомогою мови маніпулювання даними (DML)
- Надавати контрольований доступ до бази даних за допомогою
- системи забезпечення захисту
- системи керування паралельною роботою прикладних програм
- системи відновлення БД до попереднього несуперечливого етапу
Основні компоненти СКБД
- апаратне забезпечення;
- програмне забезпечення;
- дані;
- процедури(інструкції та правила, які повинні враховуватись при проектуванні та використанні баз даних)
- групи користувачів:
- адміністратори – планування БД, розробка та супровід стандартів, алгоритмів, процедур, а також за логічне та концептуальне програмування БД. Вони відповідають за фізичну реалізацію БД – фізичне проектування, безпеку і цілісність БД, роботу ОС, максимальну продуктивність програм та користувачів.
- розробники БД
- прикладні програмісти
- кінцеві користувачі
Трирівнева архітектура СКБД ANSI-SPARC
1975р. ANSI-SPARC
- Зовнішній рівень – представлення БД з точки зору користувача – рівень прикладних програм. Складається із зовнішніх представлень.
- Концептуальний рівень – узагальнене представлення БД, описує які дані зберігаються в БД, які зв’язки між ними. Підтримує зовнішнє представлення і у свою чергу підтримується внутрішнім рівнем. Показує логічну структуру. Складається із таких компонентів:
- усі сутності, атрибути та зв’язки.
- обмеження на дані
- семантична інформація
- Внутрішній рівень – фізичне представлення БД в комп’ютері.
Логічна незалежність – повна захищеність зовнішньої моделі від змін, що вносяться в концептуальну модель. Фізична незалежність – захищеність концептуальної моделі від змін, що вносяться у внутрішню модель.
Класифікація моделей концептуального рівня
- інфологічні (не залежать від деталей реалізації)
- сутність-зв’язок
- даталогічні (залежать від типу цільової СКБД)
- документальні (слабко структурована інформація)
- орієнтовані на формат документа
- дескрипторні - кожному документу відповідає жорсткий дескриптор(опис), який описує документ з певними характеристиками
- тезаурусні - орієнтуються на принципи організації словників
- фактографічні
- теоретико-графові
- теоретико-множинні - базуються на теорії множин
- реляційні
- об’єктно-орієнтовані – орієнтована на об’єкти з ООП
- теоретико-графові – відображення сукупності об’єктів в формі графа
- ієрархічні
- мережеві
- документальні (слабко структурована інформація)
Ієрархічна модель даних
IMS Поле даних – мінімальна неподільна одиниця даних доступна для користувача за допомогою СКБД. Сегмент(запис) поділяється на тип і екземпляр сегменту. Тип – іменована сукупність полів даних, які в нього входять. Екземпляр утворюється з конкретних полів, що в нього входять. Ключ – набір полів, які однозначно ідентифікує екземпляр сегменту. В ієрархічній моделі сегменти об’єднуються в орієнтований деревовидний граф. Тип сегменту, що знаходиться на вищому рівні ієрархії називається логічно вихідним, а на нижчих – логічно підпорядкованими. Кожне дерево – фізична БД і задовольняє таким умовам:
- Існує один кореневий сегмент
- дітей довільна кількість
- батько – тільки один
Екземпляри нащадки одного типу, що зв’язані з одним екземпляром батька називаються близнюками. Фізичним записом називається набір усіх екземплярів, сегментів, які підпорядковуються одному екземпляру кореневого сегменту. Вади:
- користувач має знати фізичну організацію БД.
- модель не дає засобів для явного задання обмежень, що накладаються на дані.
- не має можливості «багато до багатьох»
Мережева модель даних
IDHS Елемент даних – мінімальна інформаційна одиниця даних, що є доступною для користувача за допомогою СКБД Агрегат даних поділяється на
- вектор (адреса(місто, вулиця))
- група, що повторюється (зарплатня(місяць, сума))
Запис – сукупність агрегатів або елементів даних, що моделює певний ключ об’єктів. Набір даних дворівневий граф, що зв’язує зв’язком 1:n два записи. Володар і член набору. Модель мер БД – сукупність взаємозв’язаних наборів, які утворює граф. Вади:
- користувач має знати фізичну організацію БД.
- модель не дає засобів для явного задання обмежень, що накладаються на дані.
ER-модель
1976р.
- Сутність
- Тип сутності – група об’єктів з однаковими властивостями, яка розглядається в критерії предметної області, як така, що має незалежне існування.
- Екземпляр сутності – об’єкт, що відноситься до сутності даного типу та однозначно ідентифікується.
- Атрибут – властивість типу сутності або типу зв’язку. Атрибути містять значення, які описують кожен екземпляр сутності. Характеристики атрибутів:
- Домен – набір допустимих значень одного або кількох атрибутів.
- Простий атрибут – складається з одного компонента з незалежним існуванням.
- Складений атрибут складається з кількох компонентів, кожен з яких характеризується незалежним існуванням
- Однозначний атрибут – містить лише 1 значення для кожного екземпляра сутності певного типу.
- Багатозначний атрибут – містить кілька значень для кожного екземпляра сутності певного типу.
- похідний атрибут – представляє значення похідне від значення зв’язаного з ним. Атрибутом або пеаної множини атрибутів, що належить даному типу сутності.
- Ключ
- Потенційний ключ – один атрибут, або мінімальний набір атрибутів який однозначно ідентифікує кожен екземпляр сутності.
- Первинний ключ – потенційний ключ, який обрано для однозначної ідентифікації кожного екземпляру даного типу.
- Звязок показує яким чином сутності співвідносяться або взаємодіють між собою.
- Тип зв’язку – набір асоціацій між сутностями різних типів. Кожному типу надається імя, яке описує його призначення.
- Екземпляр зв’язку – асоціація яка включає по одному екземпляру сутності, який бере участь у зв’язку яка однозначно ідентична.
- Степінь типу зв’язку – кількість типів сутностей, що беруть участь у даному зв’язку.
- Кратність типу зв’язку – кількість (задана як значення або діапазон) можливих екземплярів сутності певного типу, які можуть бути зв’язані з одним екземпляром сутності іншого типу за допомогою зв’язку.
Життєвий цикл бази даних як програмно-технічного комплексу
- планування розробки БД; чітке визначення технічного завдання проекту БД
- визначення теми, вимог, діапазону дій та задач, що мають бути вирішені, визначення складу користувачів галузей їхнього проектування
- збір та аналіз вимог користувачів (системний аналіз та словесний опис предметної області) методи збору фактів:
- анкетування
- співбесіда
- вивчення документації
- спостереження за роботою підприємства
- Результат – специфікація вимог
- проектування БД. Основні підходи:
- підхід вгору(висхідний) - починається з найнижчого рівня атрибутів, які аналізуються та групуються; краще застосування для простих БД
- низхідний підхід. Розробка моделей даних, далі йде уточнення низькорівневих зв’язків, сутностей та атрибутів.
- Етапи:
- Концептуальний – процес створення концепції моделі даних, яка не залежить від типу СКБД
- Логічний – опис БД в термінах обраної дата логічної моделі.
- Фізичний – вибір ефективного розташування БД на зовнішніх носіях для забезпечення найбільш ефективної роботи БД
- вибір цільової СКБД
- розробка прикладних програм – проектування інтерфейсу користувача та прикладних програм, призначених для обробки БД
- створення прототипу – створення робочої моделі яка забезпечує лише частину можливостей і не надає усіх функцій засобів системи
- реалізація – фізична реалізація БД та розробка прикладних програм
- тестування – виявлення помилки та перевірка БД на відповідність усім вимогам
- експлуатація та супроводження системи
Класифікація запитів
За складністю:
- найпростіші
- прості
- складні
Основна форма для класифікації найпростіших запитів: А(О)=V
- A – імя атрибута
- O – специфікація об’єкта запиту
- V – значення яке може набути атрибут об’єкта
Прості утворюються з найпростіших(за допомогою логічних звязок) Складні утворюються з простих за допомогою кванторів
Реляційна модель
Базові визначення
- 1970р. Кодд
- Кінець 70-х – System R
- INGRES
В основі реляційної моделі покладено поняття відношення.
- Відношення(реляція) – підмножина декартового добутку на якому введено відношення еквівалентностей. До одного класу еквівалентності належать тільки ті відношення, які відрізняються порядком компонент в добутку.
- Реляційне відношення – табличка, яка складається зі стовпчиків та рядків.
- Атрибут – стовпчик
- Домен – набір допустимих значень одного або кількох атрибутів.
- Кортеж – рядок таблиці(розширений екземпляр, стан)
- Схема реляції – реляційна таблиця без даних, тобто таблиця без наповнення. Сукупність схем реляцій – схема реляційної БД.
- Степінь відношення – кількість кортежів які містяться у відношенні
- Властивості реляцій:
- Відношення має імя
- Кожен атрибут має унікальне імя
- Кожен кортеж є унікальним
- Порядок слідування атрибутів не має значення
- Порядок слідування кортежів не має значення
- Суперключ – атрибут, або множина атрибутів, яка в єдиний спосіб ідентифікує кортеж даного відношення.
- Потенційний ключ потенційний ключ, який обрано для унікальної ідентифікації кортежів у відношенні. Всі інші – альтернативні
- Зовнішній ключ – атрибут, або кілька атрибутів в середині відношення, яке відповідає потенційному ключу іншого відношення.
Реляційна алгебра та основні операції над реляціями
Теоретичні основи реляційної моделі баз даних були закладені Е.Коддом на початку 70-х років і спочатку дійсно мали чисто теоретичний характер. На відміну від поширених на той час систем з ієрархічними чи мережаними типами структур даних реляційний підхід запропонував гранично спрощені структури даних – реляції чи таблиці, але значно употужнив мови маніпулювання даними та мови запитів. Сигнатура реляційної алгебри складається з 8-ми операцій.
Теоретико-множинні операції
,
,\ – частково визначені (визначені тільки для сумісних реляцій з однаковою структурою).
Реляції R1(A1, … , An) і R2(B1, … , Bk) називаються сумісними, якщо: 1. у них однакова кількість атрибутів, тобто k = n; 2. кожному атрибуту першої реляції можна поставити у взаємно однозначну відповідність атрибут другої реляції, тобто існує таке бієктивне відображення
S:{1, … , k}
{1, … , k}, що
N(Ai) = N(BS(i)), i = 1поділити k.
- 1-Об’єднання.
R1
R2: в результуючу реляцію попадають всі кортежі першої і другої реляції без дублів.
- 2-Перетин.
R1
R2: в результуючу реляцію попадають кортежі, присутні і в першій, і в другій реляції.
- 3-Різниця.
R1\R2: в результуючу реляцію попадають кортежі з R1, яких немає в R2.
- 4-Декартів добуток.:R1
R2 – визначається для будь-яких реляцій. Ця операція може різко збільшити об’єм результату.
- 5-Проекція. Посилаючись на реляцію П (постачальник), запит “знайти прізвища всіх постачальників” може бути виражений так: П[прізв].
- 6-Операція θ - з’єднання (θ - join).
- 7-Операція θ - обмеження.
В літературі іноді цю операцію називають селекцією або фільтрацією. Ця операція задається над однією реляцією з двома списками атрибутів; використовується також поняття q - порівнюваності.
- 8-Операція ділення.
Реляційне числення та поняття реляційної повноти
Реляційна алгебра базується на класичній теорії множин, вона є процедурною мовою.
Реляційне числення спирається на апарат числення предикатів.
Мова називається реляційно повною, якщо вона дозволяє отримати будь-яке відношення яке можна вивести за допомогою реляційного числення.
Мови називаються логічно еквівалентними якщо для кожного виразу мови А існує еквівалентний вираз мови В.
Реляційна алгебра та реляційне числення є логічно еквівалентними. Це доводить алгоритм редукції Кодда.
В реляційному численні використовують 2 класи мов:
- числення доменів (числення предикатів, ОДЗ змінних – домени) – QBE, FQL.
- числення кортежів (класичне числення предикатів 1-ого порядку, ОДЗ – кортежі у відношеннях баз даних) – ALPHA.
Алгоритм переходу від ER-моделі до реляційної моделі
- Кожній сутності ставиться у відповідність відношення реляційної моделі даних.
- Кожен атрибут сутності стає атрибутом відповідного відношення. Для кожного атрибуту здається конкретним допустимий в СКБД тип даних.
- Багатозначні атрибути: робиться декомпозиція атрибуту для виявлення нового типу сутності.
- Первинний ключ сутності стає первинним ключем відповідного відношення. Атрибути які входять в первинний ключ відношення автоматично отримують властивості обов’язкових.
- В реляційній моделі в кожному зв’язку кожне відношення виступає як базове інше як підпорядковане відношення додається набір атрибутів основної сутності. У відношенні підпорядковано цей набір атрибутів називається зовнішнім ключем.
- У випадку зв’язку 1:n сутність з боку 1 визначається як базова, n – підпорядковується
- У випадку 1:1 проводиться синтаксичний аналіз
- Якщо 1 сутність характ обов’язковою і копіюється в1, де стає зовнішнім ключем.
- У випадку обов’язкової участі у зв’язку обох сутностей, відповідні відношення об’єднуються в одне відношення.
- У випадку необов’язкової участі у зв’язку обох сутностей базове та підпорядковане відношення визначається довільним чином.
- Обовязкових чи необхідних атрибутів, що входять в зовнішній ключ, визначити виходячи з обов чи необов типу зв’язку.
- Зв'язок m:н вводиться зв’язуючи відношення, яке зв’язується з кожним вихідним відношенням зв’язком 1:n, атрибутами цього відношення є первинні ключі, що зв’язують при цьому кожен атрибут нового відношення є зовнішнім ключем. Разом вони утворюють первинний ключ нового звязуючого відношення.
- Проводиться декомпозиція складених зв’язків. Виявляється додаткова сутність. Складений зв'язок замінює необхідною кількістю двосторонніх зв’язків з новою сутністю.
- Рекурсивні зв’язки: певний тип сутності зв’язків сам з собою. Рекурсивний зв'язок 1:1 представляється як одне відношення з двома копіями первинного ключа, одна з копій відповідає зовнішньому ключу і повинна бути переіменована для вказування на той факт, що відношення відображує рекурсивний зв'язок. В разі м:н необхідно провести декомпозицію цього зв’язка для виявлення проміжної сутності.
Теорія відображень. Мова SQL
Теорія відображень.
- 1:1 – 1 екз-р 1 сутності може бути зв’язаний лише з 1 екз-ом ін. сутності.
- 1:n – 1 екз-р 1-ї сутності може бути зв’язаний з кількома екз-ами ін. сутності.
- m:n – 1 екз. 1 сутності може бути зв’язаний з кількома іншої, і 1 екз. ін. – з кількома екз. 1-ї.
- Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности
Кратність складного зв’язку – кільк. екз-ів сутності заданого типу в n-арному зв’язку, що визнач-ся після фіксації решти (n-1) знач. теория семантически значимых отображений (в дальнейшем – теории отображений)
В основе реляционные баз данных лежит теория отношений - математическая теория, оперирующаяя наборами кортежей.
Можно представить кортеж как строку в таблице. В реляционной теории, набор строк в таблице выражает отношение.
Отношение
Определение. Подмножество R декартового произведения множеств A1*A2*..*An называется отношением степени n (n-арным отношением).
Определение 7. Мощность множества кортежей, входящих в отношение R, называют мощностью отношения R.
Замечание. Понятие отношения является очень важным не только с математической точки зрения. Понятие отношения фактически лежит в основе всей реляционной теории баз данных. Как будет показано ниже, отношения являются математическим аналогом таблиц. Сам термин "реляционное представление данных", впервые введенный Коддом [43], происходит от термина relation, понимаемом именно в смысле этого определения.
Ключевыми здесь являются два момента:
Во-первых, все элементы отношения есть однотипные кортежи. Однотипность кортежей позволяет считать их аналогами строк в простой таблице, т.е. в такой таблице, в которой все строки состоят из одинакового числа ячеек и в соответствующих ячейках содержатся одинаковые типы данных.
Во-вторых. За исключением крайнего случая, когда отношение есть само декартово произведение A1*A2*..*An , отношение включает в себя не все возможные кортежи из декартового произведения. Это значит, что для каждого отношения имеется критерий,
позволяющий определить, какие кортежи входят в отношение, а какие - нет. Этот критерий, по существу, определяет для нас смысл (семантику) отношения.
Мова SQL на сьогоднішній день є найбільш поширеною мовою запитів СУБД реляційного типу і підтримується практично всіма програмними про дуктами, які представлені на ринку технологій, по в'язаних з базами даних та інформаційними сис темами.
Мова SEQUEL була задумана як мова функціо нального типу з відповідними засобами та техно логічними прийомами програмування. Під тиском користувачів, переважна більшість яких була зорі єнтована на процедурний стиль програмування, в наступній версії мови SEQUEL/2 [2] з'являються додаткові засоби, такі як GROUP BY та множинні функції типу SET. Пізніше, на початку 80-х років, мова SEQUEL/2 отримала нову назву SQL, а згодом у нових версіях цієї мови зникають можливості для множинного порівняння, що було зумовлено значною складніс тю алгоритмів порівняння множин, а відтак нама ганням розробників зорієнтувати користувачів на застосування більш ефективних схем запитів по шуку даних. Але, на нашу думку, деякі схеми за- питів класичного SEQUEL/2 більш зручні для ко ристувача (принаймні з логічної точки зору), бо мають стрункішу логічну структуру і чіткіше се мантичне тлумачення через теорію множин
теорію відображень у порівнянні з функціонально еквівалентними їм схемами запитів, що виражені засобами SQL-92.
Мова QBE
Query by Example (QBE) is a database query language for relational databases. It was devised by Moshé M. Zloof at IBM Research during the mid 1970s, in parallel to the development of SQL. It is the first graphical query language, using visual tables where the user would enter commands, example elements and conditions. Many graphical front-ends for databases use the ideas from QBE today.
Мова QBE
Query by Example (QBE) is a database query language for relational databases. It was devised by Moshé M. Zloof at IBM Research during the mid 1970s, in parallel to the development of SQL. It is the first graphical query language, using visual tables where the user would enter commands, example elements and conditions. Many graphical front-ends for databases use the ideas from QBE today.
Семантична основа мови –теорія відображень. QBE (Query by example) — способ создания запросов к базе данных, с использованием образцов в виде текстовой строки, названия документа или списка документов. Система QBE преобразует пользовательский ввод в формальный запрос к базе данных, что позволяет пользователю делать сложные запросы без необходимости изучать более сложные языки запросов таких как SQL.
Работа на языке SQL проста, но требует знания языка. Для пользователей, совершенно не знакомых с программированием, запрос может осуществляться одним из следующих способов:
1) через меню и экранные формы;
2) с помощью Язык QBEязыка Query By Example - QBE (запрос по примеру).
Первый способ зависит от варианта разработки, второй способ, предложенный Злуд М.М.М.М. Злудом и базирующийся на исчислении доменов, является универсальным и не требует знания программирования. В связи с этим рассмотрим его подробнее.
С помощью этого способа на экран вызывается одна или несколько таблиц. В первом столбце каждой из них указывается имя таблицы (файла). В столбцах, под именами полей могут быть указаны условия запроса. Переход от одной таблицы к другой осуществляется с помощью указания в соответствующих полях одинаковых подчеркнутых переменных, написанных большими буквами. Выводимые на печать поля указываются символом P (print), точкой и подчеркнутой переменной (например, P.A).
Приведем два примера запросов, базирующихся на примере 4.1.
Пример 5.2. Получить фамилии студентов 4-го курса кафедры ИиУС, имеющих балл не менее 4 (рис. 5.3).
Пример 5.3. Получить фамилии студентов, руководителем которых является профессор кафедры ИиУС (рис. 5.4).
Могут быть использованы (в первом столбце запроса) агрегатные функции (SUM, AVG, MAX, MIN, CNT-счетчик). Возможно создавать виды (View).
QBE поддерживает справочник таблиц ссылка на источники литературы, процедуры обновления.
В последнем случае в первом столбце запроса размещают операторы U. (или UPDATE), D. (DELETE), I. (INSERT) для модификации, уничтожения и вставки данных соответственно.
---
Базується на численні доменів, графічна мова. Синтаксис привабливий та простий для інтуїтивного сприйняття 1974 – IBM – Zloof 1977 – зміни і доповнення Формулювання запиту зводиться до наведення прикладу відповіді на такий запит. Табличний синтаксис дозволяє не формулювати запит у вигляді предикату.Зміні визначаються за допомогою підкреслення частини імені змінної. Деякі оператори:P. – printI. – insertD. – deleteU. – update Запити з критерієм вибору – булевий вираз. Допустимі терми порівняння змінних з константами. Логічна зв’язка «і» показується шляхом розташування конструкцій в одному рядку таблиці. «або» - в різних рядках. «не» - задається явно.Рамка, або блок, умов – спеціальна таблиця для запису складних умов на значення змінних. Кожен рядок в блоці є булеви добутком чи сумою елементарних термів.Зв'язки між відношеннями використовуються через спільну змінну з однаковим ім'ям. Вбудовані функції:ALL. – мультимножина значеньUN. - унікальніSUM.AVG.MAX.MIN.CNT. – рахівник Система QBE підтримує список, що називається довідником таблиць (містить усі імена таблиць, імена атрибутів, інформацію про атрибути)
Функціональні залежності. Перша, друга та третя нормальні форми реляцій
Нормальна форма – вимога, що ставиться перед структурою таблиць в теорії реляційних баз даних для вилучення з бази надлишкових функціональних залежностей між полями таблиць. Процес перетворення бази даних до вигляду, що відповідає нормальним формам, називається нормалізацією.
Коротко:
- 1NF
Таблиця перебуває в першій нормальній формі (1НФ) тоді й тільки тоді, коли жодна з її рядків не містить у будь-якому своєму полі більше одного значення й жодне з її ключових полів не порожнє.
- 2NF
Таблиця перебуває в другій нормальній формі (2НФ), якщо вона задовольняє визначенню 1НФ і всі її поля, що не входять у первинний ключ, зв'язані повною функціональною залежністю з первинним ключем.
- 3NF
Таблиця перебуває в третій нормальній формі (3НФ), якщо вона задовольняє визначенню 2НФ і жодне з її неключових полів не залежить функціонально від будь-якого іншого неключового поля.
Нормальна форма Бойса-Кодда (BCNF)
Таблиця перебуває в BCNF, якщо вона перебуває в третій нормальній формі, і при цьому відсутні функціональні залежності атрибутів (полів) первинного ключа від не-ключових атрибутів.
Дана нормальна форма - це модифікація третьої нормальної форми. Таблиця може перебувати в 3NF, але не в BCNF, тільки в одному випадку: якщо вона має, крім первинного ключа, ще принаймні один складений можливий ключ, і принаймні один з атрибутів таблиці входить й у первинний, і в можливий ключі. Таке буває досить рідко, в іншому 3NF й BCNF еквівалентні.
Аксіоми Армстронга
Нехай задана деяка схема відношень з множиною атрибутів U – універсальною множиною атрибутів та множина функціональних залежностей F, яка зв’язує лише атрибути що належать U.
- А1. (рефлексивність). Якщо Y
X
U, то X
Y. Це правило дає тривіальні залежності – залежності, права частина яких міститься в лівій частині. Його використання не залежить від множини функціональних залежностей.
- А2. Якщо X
Y, Z
U, то XZ
YZ. XZ – це умовне скорочення запису X
Z.
- А3. Якщо X
Y та Y
Z , то X
Z.
Лема 1. Аксіоми Армстронга є надійними. Тобто якщо залежність X
Y виведена з F в результаті використання цих аксіом, то вона справедлива в будь-якому відношенні, в якому справедливі залежності з F.
Доведення. Наведемо доведення аксіом А1 та А2.
А1. Ми не можемо мати відношення r з двома кортежами, які співпадають по X, але не співпадають по деякій підмножині X.
A2. Припустимо, що існує відношення r, яке задовільняє залежності X
Y. В ньому існує два кортежа t та u, які співпадають по атрибутам XZ, але не співпадають по YZ. Оскільки ці кортежи не можуть не співпадати по деякому атрибуту з Z, t та u повинні не співпадати по деякому атрибуту, який належить Y. Тоді t та u співпадають по X, але не співпадають по Y. Це суперечить припущенню, що залежність X
Y справедлива для r.
Лема 2
- 1.Правило обєднання. Якщо X
Y та X
Z , то X
YZ.
- 2.Правило псевдотранзитивності. Якщо X
Y та WY
Z , то XW
Z.
- 3.Правило декомпозиції. Якщо X
Y та Z
Y , то X
Z.
Мінімальна структура функціональних залежностей
Поняття та властивості транзакцій. Відновлення бази даних
Коротко:
Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостного состояния в другое целостное состояние. Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:
- (А) Атомарность. Транзакция выполняется как атомарная операция - либо выполняется вся транзакция целиком, либо она целиком не выполняется.
- (С) Согласованность. Транзакция переводит базу данных из одного согласованного (целостного) состояния в другое согласованное (целостное) состояние. Внутри транзакции согласованность базы данных может нарушаться.
- (И) Изоляция. Транзакции разных пользователей не должны мешать друг другу (например, как если бы они выполнялись строго по очереди).
- (Д) Долговечность. Если транзакция выполнена, то результаты ее работы должны сохраниться в базе данных, даже если в следующий момент произойдет сбой системы.
Транзакция обычно начинается автоматически с момента присоединения пользователя к СУБД и продолжается до тех пор, пока не произойдет одно из следующих событий:
- Подана команда COMMIT WORK (зафиксировать транзакцию).
- Подана команда ROLLBACK WORK (откатить транзакцию).
- Произошло отсоединение пользователя от СУБД.
- Произошел сбой системы.
Команда COMMIT WORK завершает текущую транзакцию и автоматически начинает новую транзакцию. При этом гарантируется, что результаты работы завершенной транзакции фиксируются, т.е. сохраняются в базе данных.
Команда ROLLBACK WORK приводит к тому, что все изменения, сделанные текущей транзакцией откатываются, т.е. отменяются так, как будто их вообще не было. При этом автоматически начинается новая транзакция
Відновлення бази даних. Транзакции также являются единицами восстановления данных после сбоев - восстанавливаясь, система ликвидирует следы транзакций, не успевших успешно завершиться в результате программного или аппаратного сбоя.
Інформаційна модель концептуального рівня “сутність-зв’язок”
(Entity Relation/ЄР-модель) 1976 була запропонована Ченом модель „сутність-зв’язок” або ЄР-модель.
- Осн. поняття:
- сутність
- зв’язок
- атрибут
- ключ
Сутність – баз. поняття, за доп. якого моделюється клас однотипних об’єктів. Тип сутності може бути:
- об’єктом фізичним або реальним існуванням (роб-к, постач-к, деталь)
- об’єктом з концепт-им або абстрактним існуванням (роб. стаж)
Екземпляр сутності – об’єкт, що відноситься до сутності даного типу та однозначно ідентифікується.
Атрибут – власт-ть типу сутності або типу зв’язку. А. містить значення, що опис-ть кожен екземпляр сутності.
Значення атр-ів є осн. частиною, що збер-ся в БД.
А. мають такі хар-ки:
- домен – набір допустимих значень 1 або кількох атр-ів
можуть бути простими(склад-ся з 1-ого компонента з незалежним існуванням) та складеними(склад-ся з кількох компонент, кожна з яких має незал. існування) : можуть бути однозначними(містить лише 1 значення для кожного екземпляру сутності певного типу) та багатозначними(містить кілька значень для кожного екз-ру сутності певного типу). Похідний а. – а., що представляє значення, похідне від зв’язаного з ним атр-ту або деякої мн-ни атр-ів, що належить певному типу сутності.
Ключ(потенційний) – 1 атр-т або мін-й набір атр-ів, який однозначно ідентифікує кожен екземпляр сутності.
Мін. набір – зі складу ключа не можна викинути жодний атр-т без втрати однозначності.
Складений ключ – потенц. к., який склад-ся з 2-х або більше атр-ів.
Первинний – потенц. к., який обрано для однознач. ідентиф. кожного екз-ру сутності певного типу. Зв’язок показує, яким чином сутності співвідносяться або взаємодіють між собою.
Тип зв’язку – набір асоціацій між сутностями різних типів. Кожному т. з. надається ім’я, яке має описувати призначення цього зв’язку.
Екземпляр зв’язку – асоціація, що включає по 1-ому екз-яру сутності з кожного типу сутності, який бере участь у зв’язку та який однозначно ідентифікується.
Степінь типу зв’язку – кільк. типів сутностей, що беруть участь у даному зв’язку (частіше викор-ся зв. степеня 2 – бінарні) Якщо степінь > 2, то зв’язок наз-ся складним.
Кратність – кільк-ть можливих екз-ів сутностей певного типу, які можуть бути зв’язані з 1-м екз-ом ін. типу за допом. зв’язку. Зал. від предмет. області.
- Серед двосторонніх виділяють такі типи:
1:1 – 1 екз-р 1 сутності може бути зв’язаний лише з 1 екз-ом ін. сутності. 1:n – 1 екз-р 1-ї сутності може бути зв’язаний з кількома екз-ами ін. сутності. m:n – 1 екз. 1 сутності може бути зв’язаний з кількома іншої, і 1 екз. ін. – з кількома екз. 1-ї. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности
Кратність складного зв’язку – кільк. екз-ів сутності заданого типу в n-арному зв’язку, що визнач-ся після фіксації решти (n-1) знач.

