Базові поняття реляційних баз даних. Базові поняття реляційної моделі даних. Особливості, структура та терміни, пов'язані з реляційною моделлю

Добридень! У мене ноутбук Dell inspiron з вин7.
був збій при завантаженні після цього входив через аварійне завантаження, але не було точки відновлення, на щастя після перезавантаження ноутбук запрацював, але тепер тачпад погано працює тобто. іноді не реагує. допоможіть у чому може бути справа та як виправити?

  • long_klong

    Вітаю. У мене ноутбук DELL із Windows8. Не працює тачпад, тобто взагалі не реагує. Пробувала натискати Fn+F5. Йн(Звичайної миші теж немає і виходить що комп'ютер у неробочому стані. Що робити?

  • котюха

  • Андрій

    Добридень. В мене ноутбук Toshiba satellite l500d-16Q не працює тачпад. Оновлював драйвера з оф сайту, пробував включати через гарячі клавіші не ефекту. У БІОС немає налаштувань на включення тачпада. Мучуся 2 дні весь інет перерив ефекту 0. Навіть розкрутив і шлейф перевірив, все гаразд. Допоможіть дуже прошу.

  • Андрій

    Добридень. Ще раз із проханням про допомогу. Завантажив ноут у безпечному режимі, не допомогло. Перевірив Диспетчер все працює. Synaptics PS/2 Port TouchPad пише пристрій працює нормально. На самому тачпаді немає жодних заглиблень для вкл. Може ще є якісь варіанти7 Через програмне забезпечення?
    Допоможіть немає сил боротися.

  • Андрій

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

  • Катя

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

  • Олег

    Вітаю. Підкажіть, будь ласка, що можна зробити. Встановив віндовс 10 та перестав працювати тайчпад на ноуті Асус. Пробував кнопки fn+f9 та жодного результату. Вінда перевстановилася сама

  • Олена

    Доброго дня, після переустановки ОС не працює прокрутка і жести на тачпаді, в панелі управління немає тачпада взагалі, тільки миша і все. Перевстановлювала драйвери нічого не змінилося, раніше було також допомогло відновлення системи. Підкажіть, що робити, ноутбук Dell vostro 3500.

  • Polinka148

    Здрастуйте.
    Спочатку ноутбук Samsung перестав бачити будь-яку мишку, і бездротову та провідну. Перевірила їх на стаціонарному комп'ютері-обидві працюють. А потім і не стала працювати сенсорна панель, але не скрізь, а тільки в користувачеві «Адміністратор», а користувачеві «Гість»-функціонує лише сенсорна панель.
    Допоможіть, що робити????(((((

  • Олександр

    У мене на ASUS після встановлення Windows 10 тачпад увімкнувся тільки з панелі керування. Там за умовчанням стояла функція відключення за наявності мишки USB порту. Тож не дивуйтеся. При цьому функціональна клавіша fn+F9 не працює, оскільки пристрій вимкнено програмно.

  • Наталя

    Доброго дня, у мене на нетбуку асус стояла windows7, перестав працювати тач пед, коли викликаєш диспетчер завдань (alt+Ctrl+Del) працює, як тільки виходити на робочий стіл знову не працює. Дротової мишки немає, терміново потрібен комп'ютер, що робити?

  • artem2104

    Дітей послухайте якщо у когось виникла проблема з тим, що ви встановили 10 Вінду і у вас перестав працювати тачпад, то це дуже легко виправити (заходьте в деспетчер пристроїв далі «миші та інші пристрої та правою кнопкою миші натискаєте на «Asus tach pad» дивлячись яка модель у вас ноута, і наймаєте Видалити видаляєте і у вас перезавантажиться ваш ноут і все працюватиме як годинник ...) Удачі)

  • KseniaLo

  • Aleksa

    Добридень. На ноуті ASER 5552G перестав працювати тачпад, перепробувала все вище вказане не допомогло. Підкажіть, де можна скачати драйвера для мого ноутбука, щоб тачпад знову запрацював. Дякую.

  • Кулька

    Вітаю. Після оновлення win8 -> win10 перестала працювати кнопка вкл/вимк тачпада (поглиблення) на ноутбуці HP 250. Розуму не докладу, як зробити, що працювало, як і раніше. Дякую.

  • Альбіна.

    Здрастуйте, скажіть будь ласка що робити якщо перестав працювати тачпад, клавіатура працює, включаю чи вимикаю F6 тачпад все одно не працює, якщо перезавантажити ноутбук то тачпад працює. Lenovo, вин-8.

  • віктор

    Вітаю! така проблема: включаю ноутбук acer extensa 5620G все завантажується і після завантаження з'являється ромашка а під ромашкою запитує пароль для входу натискання на клавіші не друкує, курсор тачпад(ом) не рухається??? не можу увійти до системи для скидання пароля. ноутбук можна вимкнути лише кнопкою включення. сиджу вже 5-ту добу в інтернеті шукаю свою проблему, але на жаль не чого не знайшов

  • Ольга

    Здрастуйте, у мене ноутбук Acer E1-522. Перестає працювати тачпад. Раніше я чистила систему програмою CCleaner, і після перезавантаження він починав працювати. Тепер ця прога показує помилки в опері та не чистить повністю. Тачпад так і не вмикається. Кнопки увімкнення-вимкнення не спрацьовують. У біос за запропонованими сполученнями клавіш увійти не вдалося. На панелі керування при відкритті «пристрою та принтери» вмикається не центр керування, а властивості. Не знаю, що вже й робити.

  • Ганна

  • Лера

  • Alex

  • Євген

  • Анастасія

    Вітаю. Після встановлення windows 10 став підвисати тачпад, саме після роботи з клавіатурою. Зависає секунд на 5, але вже почав дратувати. Ноутбук - HP Pavilion g6. Підкажіть, що можна зробити.

  • TIR

    Вітаю! проблема така. ноут ASUS X554S. було встановлено Windows 10, усе працювало. перевстановлена ​​на Windows 7 - не працює тачпад. які тільки дрова не ставив, не бачить устрою навіть у невідомих.

  • TIR

    так саме вже в процесі установки, на етапі розбивки дисків тачпада немає і навіть usb миша не працює. впорався клавіатурою в надії, що далі поставиться. але немає. драйвера під мою модель на сайті тільки під windows 10. що зміг поставив з Інтернету шукав. зрештою картина — як написав у попередньому повідомленні. тачпадом ніде не пахне. usb миша працює, у пристроях «Миші та інші указ. уст-ва» - HID-сумісна миша. витягаєш мишу, пропадає цей пункт. у мене ось думка — може на цьому ноуті реалізована якийсь програмний тачпад, а не апаратний? що можна встановити?

  • Альбіна.

  • Ірина

    Ноутбук HP ProBook4730, відключається тачпад та мишка. Після включення ноутбука вони працюють і за кілька секунд, хвилин перестають реагувати. Якщо через диспетчер завдань виходиш на зміну користувачів, мишка та тачпад реагує і працює. як тільки заново заходиш у систему вони перестають працювати. перезавантажуєш ноутбук знову, трохи попрацює та перестає. Вирішувала один раз проблему таким чином: зняла з близнюка ноутбука образ і поставила на цей ноутбук все добре працювало і через півроку знову та сама проблема. Допоможіть розібратися із проблемою. Що робити?

  • Михайло

  • валек

  • marahovarita

    привіт,не знаю що робити заходила в біос там немає такого пункту,потім дивилася в пристроях там тільки миша стоїть а як встановити драйвер не знаю,ноутбук acer extensa 2510G

  • Гіз

    Вітаю. У мене ноутбук соні вайо. Нещодавно купив нову мишку бездротову, після кількох днів на екрані мишка почала сама ходити і натискати. Перевстановив драйвера допомогло, але потім через 2 дні знову почалося так само, тоді змінив мушку думав через драйвери миші б'ються з тачпадом. Але немає. Тачпад гірше бігати і натискати, переустановка драйвера не допомогла, переустановка вінди теж, розбір і чистка всередині теж, навіть танець з бубном... Є такий момент після перезавантаження мишка не відразу біситься, але якщо палець поставиш над тачпадом сантиметрів 3-4, то він як би відчуває і починає біситися ... Не зрозумію в чому проблема. Тачпад не бив, не вдаряв, над ним не їв, не пив… Все було добре, а потім просто раз і все… Не знаю що робити, в сервіс чи якось можна заощадити? Відпишіть будь ласка на травень. Дякую.

  • Серж

    Доброго вам дня. Раптом, несподівано, тачпад став підгальмовувати, то реагував з 2-го або більшого натискання, то при виклику «чарівних кнопок» взагалі вмирав. А зараз, при завантаженні ноуту, спочатку сяк-так подає знаки життя, через хвилин 10-15 не працює взагалі, але може іноді включатися. До появи проблеми оновлював драйвери (DriverPack Solution). Дякую. Ноутбук Lenovo 80E3, Windows 8.1

  • Nasteel

  • Серж

    Дякую, частково допомогло (хоча, ноут завжди тримаю в чистоті і протираю часто, сухою віскозною ганчірочкою), мабуть поверхня тачпада вкрилася жировою плівкою від пальця. Але в деяких випадках все одно не працює, наприклад, якщо викликати «чарівні кнопки», то, як і раніше, вмирає, коли вони зникають, знову працює. Не думав, що з цим тачпадом буде така марока. Заздалегідь дякую.

  • KASPER89

    Ноутбук Dell Inspiron 3551, після переустановки з Win8.1 на Win7x64 перестав працювати тачпад, драйвер з оф сайту не встановлюється. Після маніпуляцій з драйверами пропадає клавіатура, але вирішується автоматичним оновленням драйверів, якщо теж робити з мишкою (тачпадом) вискакує помилка. У властивостях обладнання "помилка 10". Кнопку включення тачпада знайти не можу, може її і немає.

  • Роман

    Добридень! Змінював термопасту в ноутбуці Dell Inspiron N5110 (розбирав і збирав корпус, звичайно). Після цього перестала працювати ліва кнопка тачпада і функція кліка (як лівою кнопкою миші) на сенсорній панелі. Права кнопка працює, рух курсору за допомогою сенсорної кнопки працює. Драйвера встановлював- не допомогло. Кнопки протискаються, все гаразд. В чому може бути проблема?

  • Олег

    Вітаю! Після ввімкнення Sony Vaio sve 1712t1rb вертикальне прокручування працює кілька хвилин поки не згасне робочий стіл і відразу ж після відновлення робочого стола прокручування вже не працює. Після перезавантаження комп'ютера знову все працює доки не вимкнеться робочий стіл.

  • Марися

    Велике дякую! Півроку просиділа прив'язана мишею до ноуту packard bell, доки не знайшла Вашу статтю. Перепробувала все! Але це була F6, а я лох)
    Дякую ще раз!

  • Павло

  • Олена

    Здрастуйте, у мене на ноутбуці aser aspire 5730 не працює тачпад. Сам собою бігає по екрану, відкриває всякі вікна. Підкажіть будь ласка. що робити (((

  • Алексій

    Здрастуйте, ноутбук ASUS, різко перестав працювати тачпад. Працює лише лівий «клік». Рухи не сприймаються. Підкажіть, будь ласка, що робити?

  • Валерія

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

  • Lni

    У мене є hp elitebook 8470p. Несподівано припинив працювати тачпад, хоч ще вранці все було нормально. Тобто, не працює сенсорна панель та клавіші знизу, при цьому верхні клавіші та джойстик працюють (якщо в налаштуваннях відключити, то все не працює). Драйвера перевіряла, біос теж, тачпад включала/виключала, нічого не допомогло.

  • raic

    Packard bell ts11sb/ другу добу не можу перемогти тач. За словами господині помер коли віддала перевстановити вінду. поставив свою 7-64. тач не працює взагалі. біос порожній. на тач налаштувань немає. все драйвера з офсайту.встановилося все крім тач. Вінда бачить тач у прихованих пристроях. позначений знаком оклику. пише наступне Пристрій відсутній, працює неправильно, або для нього встановлені не всі драйвери. (Код 24).. так скільки драйверів для нього треба? все перепробував.

  • Alena

    Вітаю. Є проблема з непрацюючим тачпадом (не дивно). Ноутбук Lenovo, нещодавно змінювався термопастом, після чого перестав працювати тачпад. У диспетчері механізмів немає у принципі, тобто. є тільки підключена до ноутбука миша (при її відключенні параметр «миша» відсутня зовсім). До цього все працювало справно. Чи може бути проблема через випадкове пошкодження приєднань до мат. платі, хоча все перевірялося і як підключено?

    • SMARTRONIX

    • Alena

    • SMARTRONIX

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

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

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


    • Структурна частина.

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

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

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

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

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

    ^ Типи даних

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

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

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


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

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

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

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


    • Логічний.

    • Рядковий.

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

    • Цілий.

    • Речовий.

    • Дата.

    • Час.

    • Грошовий.

    • Перелічуваний.

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

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

    ^

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


    • Масиви

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

    Називається безліччю індексів. Відображення

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

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

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

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

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

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

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

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

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

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

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

    Домени

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

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


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

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

    • Домен може мати деяке логічна умовадозволяє описати підмножина даних, допустимих для даного домену.

    • Домен несе певну смислове навантаження.
    Наприклад, домен , що має сенс "вік співробітника" можна описати як наступне підмножина безлічі натуральних чисел:

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

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

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

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

    Зауваження. Не завжди очевидно, як задати логічну умову, що обмежує можливі значення домену. Я буду вдячний тому, хто приведе мені умову на рядковий тип даних, що задає домен "Прізвище співробітника". Ясно, що рядки, що є прізвищами, не повинні починатися з цифр, службових символів, з м'якого знака і т.д. Але чи є допустимим прізвище "Ггггггыыыыыи"? Чому б ні? Очевидно, ні! А може, хтось на зло так себе назве. Проблеми такого роду виникають тому, що сенс реальних явищ далеко не завжди можна формально описати. Просто ми, як усі люди, інтуїтивно розуміємо, що таке прізвище, але ніхто не може дати таке формальне визначення, яке відрізняло б прізвища від рядків, які не є прізвищами. Вихід із цієї ситуації простий - покластися на розум співробітника, який вводить прізвища в комп'ютер.

    ^ Відносини, атрибути, кортежі відносини

    Визначення та приклади

    Фундаментальним поняттям реляційної моделі даних є поняття відносини . У визначенні поняття відносини слідуватимемо книзі К. Дейта.

    Визначення 1. Атрибут відносини є пара виду<Имя_атрибута: Имя_домена>.

    Імена атрибутів мають бути унікальними в межах відношення. Часто імена атрибутів відносини збігаються з іменами відповідних доменів.

    Визначення 2. Ставлення , визначений на безлічі доменів (не обов'язково різних), містить дві частини: заголовок і тіло.

    Заголовок відносини містить фіксовану кількість атрибутів відношення:

    Тіло відносини містить безліч кортежів відношення. Кожен кортеж відносини є безліч пар виду<Имя_атрибута: Значение_атрибута>:

    Таких значення атрибуту належить домену

    Ставлення зазвичай записується як:

    Або коротше

    ,

    Або просто

    Число атрибутів щодо називають ступенем (або -Арність ) відносини.

    Потужність безлічі кортежів відносини називають потужністю відносини.

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

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

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

    Приклад 1 . Розглянемо ставлення "Співробітники", задане на доменах "Номер_співробітника", "Прізвище", "Зарплата", "Номер_відділу". Т.к. всі домени різні, імена атрибутів відношення зручно назвати так само, як і відповідні домени. Заголовок відносини має вигляд:

    Співробітники (Номер_співробітника, Прізвище, Зарплата, Номер_відділу)

    Нехай на даний момент відношення містить три кортежі:

    (1, Іванов, 1000, 1)

    (2, Петров, 2000, 2)

    (3, Сидоров, 3000, 1)

    Таке відношення природно представляється у вигляді таблиці:

    ^ Таблиця 1 Відношення "Співробітники"

    Визначення 3. Реляційною базою даних називається набір відносин.

    Визначення 4. Схема реляційної бази

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

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


    ^ Реляційний термін

    Відповідний "табличний" термін

    База даних

    Набір таблиць

    Схема бази даних

    Набір заголовків таблиць

    Ставлення

    Таблиця

    Заголовок відносини

    Заголовок таблиці

    Тіло відносини

    Тіло таблиці

    Атрибут відносини

    Найменування стовпця таблиці

    Кортеж відносин

    Рядок таблиці

    Ступінь (-арність) відносини

    Кількість стовпців таблиці

    Потужність відносин

    Кількість рядків таблиці

    Домени та типи даних

    Типи даних у осередках таблиці

    ^ Властивості відносин

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


    1. ^ Щодо немає однакових кортежів . Справді, тіло відношення є безлічкортежів і, як і безліч, неспроможна містити нерозрізні елементи (див. поняття безлічі в гл.1.). Таблиці на відміну відносин можуть містити однакові рядки.

    2. ^ Кортежі не впорядковані (згори донизу) . Дійсно, незважаючи на те, що ми зобразили ставлення "Співробітники" у вигляді таблиці, не можна сказати, що співробітник Іванов "передує" Петрову. Причина та сама - тіло відносини є безліч, а безліч не впорядковане. Це друга причина, через яку не можна ототожнити відносини та таблиці - рядки в таблицях упорядковані. Одне й те саме ставлення може бути зображенорізними таблицями, в яких рядки йдуть у різному порядку.

    3. ^ Атрибути не впорядковані (зліва направо) . Т.к. кожен атрибут має унікальне ім'я у межах відношення, то порядок атрибутів не має значення. Ця властивість дещо відрізняє відношення від математичного визначення відношення (див. гл.1 - компоненти кортежів там упорядковані). Це також третя причина, через яку не можна ототожнити відносини та таблиці - стовпці в таблиці впорядковані. Одне й те саме ставлення може бути зображенорізними таблицями, в яких стовпці йдуть у різному порядку.

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

    Зауваження. Кожне ставлення вважатимуться класом еквівалентності таблиць , Для яких виконуються такі умови:


    • Таблиці мають однакову кількість стовпців.

    • Таблиці містять стовпці з однаковими найменуваннями.

    • Стовпці з однаковими найменуваннями містять дані з тих самих доменів.

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

    ^ Перша нормальна форма

    Найважче дати визначення речей, які всім зрозумілі. Якщо давати не суворе, описове визначення, завжди залишається можливість неправильної його трактування. Якщо дати суворе формальне визначення, воно, зазвичай, або тривіально, або занадто громіздко. Саме така ситуація з визначенням відносин у Першої Нормальної Форми (1НФ ). Зовсім говорити звідси не можна, т.к. на основі 1НФ будуються вищі нормальні форми, які розглядаються далі в гол. 6 і 7. Дати визначення 1НФ складно через його тривіальність. Тому дамо просто кілька пояснень.

    Пояснення 1. Кажуть, що ставлення перебуває у 1НФ, якщо воно задовольняє визначення 2.

    Це, власне, тавтологія, адже з визначення 2 випливає, що інших відносин немає. Дійсно, визначення 2 описує, що є ставленням, а що – ні, отже, стосунків у непершій нормальній формі просто немає.

    Пояснення 2. Говорять, що відношення знаходиться в 1НФ, якщо його атрибути містять лише скалярні (атомарні) значення.

    Знову ж таки, визначення 2 спирається на поняття домену, а домени визначені на простих типах даних.

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

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

    Таким чином з'являється третє пояснення Першої Нормальної Форми:

    Пояснення 3. Відношення знаходиться в 1НФ, якщо воно є плоскою таблицею.

    Ми свідомо обмежуємося розглядом лише класичної реляційної теорії, в якій усі відносини мають лише атомарні атрибути та свідомо перебувають у 1НФ.

    Висновки

    Реляційна модель даних складається із трьох частин:


    • Структурна частина.

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

    • Маніпуляційної частини.
    У класичній реляційній моделі використовуються тільки прості (атомарні) типи даних . Прості типи даних не мають внутрішньої структури.

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

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

    Ставлення має такі властивості:


    • Щодо немає однакових кортежів.

    • Кортежі не впорядковані (згори донизу).

    • Атрибути не впорядковані (зліва направо).

    • Усі значення атрибутів атомарні.
    Реляційною базою даних називається набір відносин.

    Схема реляційної бази даних називається набір заголовків відносин, що входять до бази даних.

    Відношення знаходиться в Першої Нормальної Форми (1НФ ), якщо воно містить лише скалярні (атомарні) значення.

    Головна > Лекція

    Лекція БД Розділ 2 РЕЛЯЦІЙНІ БАЗИ ДАНИХ 2.1. терміни та визначенняРозвиток реляційних баз даних почалося наприкінці 1960-х рр., коли з'явилися перші роботи, в яких обговорювалися можливості використання звичних для фахівця способів формалізованого представлення даних у вигляді таблиць. Деякі фахівці такий спосіб подання інформації називали таблицями рішень, інші – табличними алгоритмами. Теоретики реляційних баз даних табличний спосіб подання інформації називали датологічними моделями. Основоположником теорії реляційних баз даних вважається співробітник фірми IВМ доктор Е. Ф. Кодд, який опублікував 6 червня 1970 статтю «Реляційна модель даних для великих колективних банків даних» «A Relational Model of Data for Large Shared Data Banks». У цій статті вперше і був використаний термін «реляційна модель даних», що і започаткувало реляційні бази даних. Теорія реляційних баз даних, розроблена в 1970-х роках. США доктором Еге. Ф. Коддом, спиралася на математичний апарат теорії множин. Він довів, що будь-який набір даних МОЖНА подати у вигляді двовимірних таблиць особливого виду, відомих у математиці як відносини. Від англійського слова "relation" "відношення") і походить назва "реляційна модель даних". В даний час теоретичну основу проектування баз даних (БД) становить математичний апарат реляційної алгебри (див. підрозд. 1.2). Таким чином, реляційна БД є інформацією (дані) про об'єкти, представлену у вигляді двовимірних масивів - таблиць, об'єднаних певними зв'язками. База даних може і з однієї таблиці. Перш ніж приступити до подальшого вивчення реляційних баз даних, розглянемо застосовувані в теорії та практиці терміни та визначення. Таблиця бази даних- двомірний масив, що містить інформацію про один клас об'єктів. Теоретично реляційної ал-гебри двовимірний масив (таблицю) називають ставленням.Таблиця складається з наступних елементів: поле, осередок, запис (рис. 2.1). Полемістить значення однієї з ознак, що характеризують об'єкти БД. Число полів у таблиці відповідає числу ознак, що характеризують об'єкти БД. 22 Коміркамістить конкретне значення відповідного поля (ознака одного об'єкта). Запис- Рядок таблиці. Вона містить значення всіх ознак, що характеризують один об'єкт. Число записів (рядків) відповідає числу об'єктів, дані про які містяться в таблиці. Теоретично баз даних терміну записвідповідає поняття кор-теж- Послідовність атрибутів, пов'язаних між собою відношенням AND (І). Теоретично графів кортежозначає просту гілка орієнтованого графа – дерева. У табл. 2.1 наведені терміни, що застосовуються в теорії та практиці розробки реляційних баз даних. Однією з важливих понять, необхідні побудови оптимальної структури реляційних баз даних, є поняття ключа, чи ключового поля. Ключемвважається поле, значення якого однозначно визначають значення всіх інших полів у таблиці. Наприклад, поле «Номер паспорта», або «Ідентифікаційний номер платника податків (ІПН)», однозначно визначає характеристики будь-якої фізичної особи (при складанні відповідних таблиць баз даних для відділів кадрів або бухгалтерії підприємства).
    23

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

    Унікальністьключа означає, що в будь-який момент часу таблиця бази даних не може містити жодних двох різних записів, що мають однакові значення ключових полів. Виконання умови унікальності є обов'язковим. Умова мінімальностіключових полів означає, що тільки поєднання значень вибраних полів відповідає вимогам унікальності записів таблиці бази даних. Це означає також, що жодна з полів, що входять до ключа, не може бути виключена з нього без порушення унікальності. При формуванні ключа таблиці бази даних, що складається з декількох полів, необхідно керуватися такими положеннями: не слід включати до складу ключа поля таблиці, значення яких самі по собі однозначно ідентифікують записи в таблиці. Наприклад, не варто створювати ключ, що містить одночасно поля «номер паспорта» і «ідентифікаційний номер платника податків», оскільки кожен з цих атрибутів може однозначно ідентифікувати записи в таблиці; не можна включати до складу ключа неунікальне поле, тобто поле, значення якого можуть повторюватися в таблиці. Кожна таблиця повинна мати, принаймні, один можливий ключ, який вибирається як первинний ключ.Якщо в таблиці існують поля, значення кожного з яких однозначно визначають записи, то ці поля можуть бути прийняті як альтернативні ключі.Наприклад, якщо як первинний ключ обрати ідентифікаційний номер платника податків, то номер паспорта буде альтернативним ключем. 2.2. Нормалізація таблиць реляційної бази данихРеляційна база даних є деякою множиною таблиць, пов'язаних між собою. Число таблиць в одному файлі або одній базі даних залежить від багатьох факторів, основними з яких є: склад користувачів бази даних, забезпечення цілісності інформації (особливо важливо в багатокористувацьких інформаційних системах), забезпечення найменшого обсягу необхідної пам'яті та мінімального часу обробки даних 24

    Облік даних факторів при проектуванні реляційних баз даних здійснюється методами нормалізації таблиць і уста-HoBлеHіeM зв'язків між ними.

    Нормалізація таблицьє способи поділу однієї таблиці бази даних на кілька таблиць, в цілому відповідають перерахованим вище вимогам. Нормалізація таблиці є послідовне зміна структури таблиці до того часу, доки вона буде задовольняти вимогам останньої форми нормалізації. Усього існує шість форм нормалізації:
      перша нормальна форма (First Normal Form – 1NF); друга нормальна форма (Second Normal Form – 2NF); третя нормальна форма (Third Normal Form – ЗNF); нормальна форма Бойса – Кодда (Brice – Codd Normal Form – BCNF); четверта нормальна форма (Foіrth Normal Form - 4NF); п'ята нормальна форма, або нормальна форма проекції-з'єднання (Fifth Normal Form - 5NF, або PJ/NF ).
    При описі нормальних форм використовуються такі поняття: «функціональна залежність між полями»; "повна функціональна залежність між полями"; «багатозначна функціональна залежність між полями»; «транзитивна функціональна залежність між полями»; "взаємна незалежність між полями". Функціональною залежністюміж полями А і В називається залежність, при якій кожному значенню А в будь-який момент часу відповідає єдине значення з усіх можливих. Прикладом функціональної залежності може бути зв'язок між ідентифікаційним номером платника податків та но-міром його паспорта. Повна функціональна залежністьміж складовим полем А і полем називається залежність, при якій поле залежить функціонально від поля А і не залежить функціонально від будь-якого підмножини поля А. Багатозначна функціональна залежністьміж полями визначається таким чином. Поле А багатозначно визначає поле В, якщо для кожного значення поля А існує «добре певна множина» відповідних значень поля В. Напри-Мер, якщо розглядати таблицю успішності учнів у школі, що включає поля «Предмет» (поле А ) і «Оцінка» (поле В), то поле В має «добре певну множину» допустимих значень: 1, 2, 3, 4, 5, тобто для кожного значення поля «Предмет» існує багатозначне «добре певне множина» значень поля «Оцінка». Транзитивна функціональна залежністьміж полями А і С Існує в тому випадку, якщо поле функціонально залежить від 25 поля В, а поле функціонально залежить від поля А; при цьому немає функціональної залежності поля А від поля В. Взаємна незалежність між полямивизначається в такий спосіб. Декілька полів взаємно незалежні, якщо жодне з них не є функціонально залежним від іншого. Перша нормальна форма.Таблиця знаходиться в першій нормальній формі тоді і тільки тоді, коли жодне з полів не містить більше одного значення і будь-яке ключове поле не порожнє. Перша нормальна форма є основою реляційної моделі даних. Будь-яка таблиця в реляційній базі даних автоматично знаходиться в першій нормальній формі, інше просто неможливе за визначенням. У такій таблиці не повинно міститися полів (ознак), які можна було б розділити на кілька полів (ознак). Ненормалізованими, зазвичай, бувають таблиці, спочатку не призначені для комп'ютерної обробки що міститься у яких інформації. Наприклад, у табл. 2.2 показаний фрагмент таблиці з довідника «Універсальні металорізальні верстати», виданого Експериментальним науково-дослідним інститутом металорізальних верстатів (ЕНІМС). Ця таблиця є ненормалізованою з таких причин. 1. Вона містить рядки, що мають в одному осередку кілька значень одного поля: «Найбільший діаметр обробки, мм» та «Частота обертання шпинделя, об/хв». 2. Одне поле - «Габаритні розміри (довжина х ширина х висота), мм» може бути поділено на три поля: «Довжина, мм», «Ширина, мм» і «Висота, мм». Доцільність такого поділу може бути обґрунтована необхідністю подальших розрахунків площ або об'ємів, що займають. Вихідна таблиця має бути перетворена на першу нормальну форму. Для цього необхідно: поля «Найбільший діаметр обробки, мм» і «Частота обертання шпинделя, об/хв» розділити на кілька полів відповідно до числа значень, що містяться в одному осередку;
    26

    Поле "Габаритні розміри (довжина х ширина х висота), мм", розділити на три поля: "Довжина, мм", "Ширина, мм", "Висота, мм". Ключовим полем даної таблиці може бути поле "Модель верстата" або "№ п/п" Вид нормальної форми має табл. 2.3. Розглянемо ще один приклад. На рис. 2.2 показаний фрагмент бланка заліково-екзаменаційної відомості, який, як і в попередньому прикладі, не призначався для комп'ютерної обробки. Нехай ми хочемо створити базу даних для автоматизованої обробки результатів заліково-екзаменаційної сесії відповідно
    27

    із змістом заліково-екзаменаційної відомості. І тому перетворимо зміст бланка в таблиці бази даних. Виходячи з необхідності дотримання умов функціональної залежності між полями необхідно сформувати, як міні-мум, дві таблиці (рис. 2.3) (ключові поля в кожній таблиці виділені напівжирним шрифтом). У першій таблиці містяться результати складання заліку (іспиту) кожним студентом по конк-ретному предмету. У другій таблиці містяться результуючі підсумки складання заліку (іспиту) конкретної групи студентів з конкретного предмета. У першій таблиці ключовим є поле «ПІБ студента», а в другій таблиці – поле «Дисципліна». Таблиці повинні бути пов'язані між собою по полях «Дисципліна» та «Шифр групи».

    Подані структури таблиць повністю відповідає вимогам першої нормальної форми, але характеризується наступними недоліками: додавання нових даних в таблиці вимагає введення значень для всіх полів; у кожний рядок кожної таблиці необхідно вводити значення полів «Дисципліна», «ПІБ викладача», «Шифр групи». Отже, при такому складі таблиць і їх структурі є явна надмірність інформації, що, природно, потребує додаткових обсягів пам'яті. Щоб уникнути перерахованих недоліків, необхідно привести таблиці до другої або третьої нормальної форми. Друга нормальна форма.Таблиця знаходиться в другій нормальній формі, якщо вона задовольняє вимогам першої нормальної форми і всі її поля, що не входять до первинного ключа, пов'язані повною функціональною залежністю з первинним ключем. 28

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

    Якщо ж первинний ключ складовий, то таблиця необов'язково знаходиться у другій нормальній формі. Тоді її необхідно розділити на дві або більше таблиць таким чином, щоб первинний ключ однозначно ідентифікував значення в будь-якому полі. Якщо в таблиці є хоча б одне поле, що не залежить від первинного ключа, то в первинний ключ необхідно включити додаткові колонки. Якщо таких колонок немає, необхідно додати нову колонку. Виходячи з даних умов, що визначають другу нормальну форму, можна зробити такі висновки за характеристикою складених таблиць (див. рис. 2.3). У першій таблиці немає прямого зв'язку між ключовим полем та полем «ПІБ викладача», оскільки залік чи іспит з одного предмета можуть приймати різні викладачі. У таблиці існує повна функціональна залежність тільки між усіма іншими полями та ключовим полем «Дисципліна». Аналогічно в другій таблиці немає прямого зв'язку між ключовим полем і полем «ПІБ викладача». Для оптимізації бази даних, зокрема зменшення необхідного обсягу пам'яті через необхідність повторення у кожному запису значень полів «Дисципліна» і «ПІБ викладача», необхідно змінити структуру бази даних - переутворити вихідні таблиці на другу нормальну форму. Склад таблиць зміненої структури бази даних показано на рис. 2.4. Перетворена структура бази даних складається з шести таблиць, дві з яких пов'язані між собою (ключові поля в кожній таблиці виділені напівжирним шрифтом). Усі таблиці задовольняють вимогам другої нормальної форми. П'ята і шоста таблиці мають у полях значення, що повторюються, але, враховуючи, що ці значення являють собою цілі числа замість текстових даних, загальний обсяг необхідної пам'яті для зберігання інформації значно менше, ніж у вихідних таблицях (див. рис. 2.1). Крім того, нова структура бази даних забезпечить можливість заповнення таблиць різними фахівцями (підрозділами управлінських служб). Подальша оптимізація таблиць баз даних зводиться до приведення їх до третьої нормальної форми. Третя нормальна форма.Таблиця знаходиться в третій нормальній формі, якщо вона задовольняє визначенню другої нормальної форми і жодне з її не ключових полів не залежить функціонально від будь-якого іншого не ключового поля. 29

    Можна також сказати, що таблиця знаходиться в третій нормальній формі, якщо вона знаходиться в другій нормальній формі і кожне не ключове поле не транзитивно залежить від первинного ключа. Вимога третьої нормальної форми зводиться до того що, щоб усі ключові поля залежали тільки від первинного ключа і залежали друг від друга. Відповідно до цих вимог у складі таблиць бази даних (див. рис. 2.3) до третьої нормальної форми відносяться перша, друга, третя та четверта таблиці. Для приведення п'ятої та шостої таблиць до третьої нормальної форми створимо нову таблицю, що містить інформацію про склад предметів, по яких проводяться іспити або заліки в групах студентів. Як ключ створимо поле «Лічильник», що встановлює номер запису в таблиці, так як кожен запис повинен бути унікальним. 30

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

    Нормальна форма Бойса – Кодда.Таблиця знаходиться в нормальній формі Бойса - Кодда тільки в тому випадку, якщо будь-яка функціональна залежність між її полями зводиться до повної функціональної залежності від можливого ключа. Згідно з цим визначенням у структурі бази даних (рис. 2.4) всі таблиці відповідають вимогам нормальної форми Бойса – Кодда. Подальша оптимізація таблиць баз даних повинна зводитися до повної декомпозиції таблиць. Повною декомпозицією таблиціназивають таку сукупність довільного числа її проекцій, з'єднання яких повністю збігається з вмістом таблиці. Проекцією називають копію таблиці, куди не включені одна чи кілька колонок нової таблиці. Четверта нормальна форма.Четверта нормальна форма є окремим випадком п'ятої нормальної форми, коли повна декомпозиція повинна бути з'єднанням двох проекцій.
    31

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

    П'ята нормальна форма.Таблиця знаходиться в п'ятій нормальній формі тоді і тільки тоді, коли в кожній її повній декомпозиції всі проекції містять можливий ключ. Таблиця, яка має жодної повної декомпозиції, також у п'ятої нормальної формі. Насправді оптимізація таблиць бази даних закінчується третьої нормальної формою. Приведення таблиць до четвертої та п'ятої нормальних форм представляє, на нашу думку, суто теоретичний інтерес. Практично ця проблема вирішується розробкою запитів на створення нової таблиці. 2.3. Проектування зв'язків між таблицямиПроцес нормалізації вихідних таблиць баз даних дозволяє створити оптимальну структуру інформаційної системи - розробити базу даних, що вимагає найменших ресурсів пам'яті і, як наслідок, що забезпечує найменший час доступу до інформації. У той же час поділ однієї вихідної таблиці на кілька вимагає виконання однієї з найважливіших умов проектування інформаційних систем - забезпечення цілісності інформації в процесі експлуатації бази даних. У наведеному вище прикладі нормалізації вихідних таблиць (див. рис. 2.3) з двох таблиць зрештою ми отримали сім таблиць, наведених до третьої та четвертої нормальних форм. Як показує практика, у реальному виробництві та бізнесі бази даних являють собою розраховані на багато користувачів системи. Це відноситься як до створення та підтримки даних у окремих таблицях, так і до використання інформації для прийняття рішень. У розглянутому вище прикладі, в реально функціонуючій системі управління навчальним процесом у вузі або коледжі, початкове формування навчальних груп проводиться приймальними комісіями при зарахуванні абітурієнтів за результатами вступних іспитів. Подальша підтримка інформації про склад студентів у групах у вишах покладається на деканати, а в коледжах - на навчальні відділення або відповідні структури. Склад навчальних дисциплін за групами визначається іншими службами або фахівцями. Інформація про викладацький склад формується у відділах кадрів. Результати залікових та екзаменаційних сесій необхідні керівникам деканату та відділень, у тому числі і для прийняття рішень про надання 32 студентам, що встигають, стипендії або «зняття зі стипен-дію» студентів, які не встигають. Будь-яка зміна в будь-якій з таблиць бази даних повинна знаходити адекватну зміну у всіх інших таблицях. Це і становить сутність забезпечення цілісності бази даних. Практично це завдання здійснюється встановленням зв'язків між таблицями бази даних. Сформулюємо основні правила встановлення зв'язків між таблицями. 1. Вибрати із двох зв'язуваних таблиць головну і підлеглу. 2. У кожній таблиці виберіть ключове поле. Ключове поле головної таблиці називають первинним ключем.Ключове поле підпорядкованої таблиці називають зовнішнім ключем. 3. Пов'язані поля таблиць повинні мати один тип даних. 4. Між таблицями встановлюються такі типи зв'язків: один до одного; "один до багатьох"; "багато хто до багатьох": зв'язок "один до одного" встановлюється у випадках, коли конкретний рядок головної таблиці в будь-який момент часу пов'язана тільки з одним рядком підпорядкованої таблиці; зв'язок «один до багатьох» встановлюється у випадках, коли конкретний рядок головної таблиці у будь-який момент часу
    33 пов'язана з кількома рядками підпорядкованої таблиці; при цьому будь-який рядок підпорядкованої таблиці пов'язана тільки з одним рядком головної таблиці; зв'язок «багато до багатьох» встановлюється у випадках, коли конкретний рядок головної таблиці в будь-який момент часу пов'язаний з кількома рядками підпорядкованої таблиці і в той же час один рядок підпорядкованої таблиці пов'язаний з кількома рядками головної таблиці. При зміні значення первинного ключа головної таблиці можливі такі варіанти поведінки залежної таблиці. Каскадування (Cascading).При зміні даних первинного ключа в головній таблиці відбувається зміна відповідних даних зовнішнього ключа в залежній таблиці. Усі наявні зв'язки зберігаються. Обмеження (Restrict).При спробі змінити значення первинного ключа, з яким пов'язані рядки в залежній таблиці, зміни відкидаються. Допускається зміна лише тих значень первинного ключа, для яких не встановлена ​​зв'язок із залежною таблицею. Встановлення (Relation).При зміні даних первинного ключа зовнішній ключ встановлюється у невизначене значення (NULL). Інформація про належність рядків залежної таблиці втрачається. Якщо змінити кілька значень первинного ключа, то залежній таблиці утворюється кілька груп рядків, які раніше були пов'язані зі зміненими ключами. Після цього неможливо визначити, який рядок з яким первинним ключем була пов'язана. На рис. 2.6 показані схеми зв'язків між таблицями бази даних, представленої на рис. 2.5. Контрольні питання 1. Дайте визначення наступним елементам таблиці баз даних: поле, комірка, запис. 2. Що означають поняття «ключ», «ключове поле»? 3. Яке ключове поле називають первинним ключем, а яке – зовнішнім ключем? 4. У чому полягає процес нормалізації таблиць бази даних? 5. Які п'ять нормальних форм таблиць баз даних ви знаєте? 6. Дайте визначення наступним типам зв'язків між таблицями бази даних: один до одного; "один до багатьох"; «багато хто до багатьох».

    Вступ

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

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

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

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

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

    Основними поняттями властивими для реляційних даних є тип даних, домен, атрибут, кортеж, первинний ключ ставлення. Спочатку відзначимо зміст цих поняття на прикладі відносини «СПІВРОБІТНИКИ», що містить інформацію щодо співробітників певної організації

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

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

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

    Наприклад, домен "Імена" у нашому випадку на базовому типі термін символів він визначений, але число його значень увійдуть лише ті терміни, які здатні зображати ім'я) такі терміни не можуть починатися з м'якого знака). Також необхідно відзначити семантичне навантаження поняття домену: тільки в тому випадку дані будуть порівнянними, коли матимуть відношення до домену, але тільки одному

    У нашому випадку значення доменів "Номери перепусток" і "Номери груп", які мають відношення до типу цілих числа, не може бути порівнянним. Зазначимо, що у деяких випадках у реляційних СУБД саме поняття «домена» не знаходить застосування, т.к. вже підтримується у Oracle V.7.

    Схема відношення є іменною безліччю пар: що включає: ім'я атрибута, тип, але тільки в тому випадку, коли поняття домену не підтримується. Ступінь «артність» є схемою відношення - це певна потужність цієї множини.

    При цьому відносини «Співробітники» дорівнюватимуть чотирьом і вважатимуться 4-арним. А якщо всі атрибути одного відношення визначені на відносно різних доменах, використовувати осмислено для іменування атрибутів імена відповідних доменів, не забуваючи при цьому, про те, що це вважається лише одним із зручних способів іменування і не дає можливість для усунення відмінностей щодо поняття домену та атрибут. Схема бази даних – це певний набір схем відносин.

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

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

    Кортеж – це набір іменних значень заданого типу.

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

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

    Типовим уявленням відносини вважається таблиця, заголовком якої вважається схема відносини, а рядками - кортежі відносини-примірника, у разі імена атрибутів називають стовпцями цієї таблиці. У зв'язку з цим іноді говорять " стовпець таблиці " , маючи на увазі " атрибут відносини " . Як видно, основні структурні поняття реляційної моделі даних (якщо не брати до уваги поняття домену) мають дуже просту інтуїтивну інтерпретацію, хоча в теорії реляційних БД всі вони визначаються абсолютно формально і точно.

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

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

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

    Первинний ключ.Первинним ключем називається поле або набір полів, що однозначно ідентифікують запис.

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

    Вимоги до первинного ключа:

      унікальність – тобто у таблиці має існувати двох чи більше записів з однаковим значенням первинного ключа;

      первинний ключ повинен містити порожніх значень.

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

    По полях, які часто використовуються при пошуку та сортуванні даних встановлюються вторинні ключі: вони допоможуть системі значно швидше знайти потрібні дані На відміну від первинних ключів поля індексів (вторинні ключі) можуть містити неунікальні значення.

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

    Зв'язки між таблицями. Записи в таблиці можуть залежати від одного чи кількох записів іншої таблиці. Такі відносини між таблицями називаються зв'язками.Зв'язок визначається так: поле або кілька полів однієї таблиці, зване зовнішнім ключем,посилається на первинний ключ іншої таблиці. Розглянемо приклад. Так як кожне замовлення має виходити від певного клієнта, кожен запис таблиці Orders(замовлення) має посилатися на відповідний запис таблиці Customers(Клієнти). Це і є зв'язок між таблицями Ordersі Customers. В таблиці Ordersмає бути поле, де зберігаються посилання на ті чи інші записи таблиці Customers.

    Типи зв'язків. Існує три типи зв'язків між таблицями.

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

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

    Багато хто до багатьох -кілька записів однієї таблиці пов'язані з кількома записами інший. Наприклад, один автор може написати кілька книг і кілька авторів – одну книгу. У разі такого зв'язку в загальному випадку неможливо визначити, який запис однієї таблиці відповідає обраному запису іншої таблиці, що робить нездійсненною фізичну (на рівні індексів та тригерів) реалізацію такого зв'язку між відповідними таблицями. Тому перед переходом до фізичної моделі всі зв'язки "багато до багатьох" повинні бути перевизначені (деякі CASE-кошти, якщо такі використовуються при проектуванні даних, роблять це автоматично). Подібний зв'язок між двома таблицями реалізується шляхом створення третьої таблиці та реалізації зв'язку типу «один до багатьох» кожної з таблиць з проміжною таблицею.