(Реляційні бази даних.) p>
Великі корпоративні обчислювальні центри використовуютьскладні програмні продукти для роботи з базами даних. Але єкористувачі, кото -рие підтримують інформаційні масиви середніх розмірів. І тим і іншимнеобхідні програмні продукти, які б допомагали орієнтуватися в со -Відповідаю базах даних. Почнемо з введення в реляційні бази даних іпроектування додатків в реляційному світі. p>
База даних - це організоване зібрання даних, де данізберігаютьсяз деяким призначенням. Простим прикладом неелектронні бази даних є -ється звичайна бібліотека, в якій зберігаються книги, періодичні видання таінші документи. p>
Відповідно до нашого визначення, база даних єорганізованимзборами даних. Реляційна ж база даних організовує дані в таблиці -ци і забезпечує операції добування, які створюють нові таблиці з уженаявних. В результаті користувач бачить всю базу даних у вигляді таблиць.
Нам необхідний якийсь спосіб взаємодії з базою даних. Треба визначатитаблиці, а також отримувати, додавати і видаляти дані. SQL (Structure
Query Language - мова структурованих запитів) є комп'ютерниммовою, які використовуються для вираження операцій з базою даних, організованоїв реляційної формі. SQL є прийнятим в галузі стандартом мови, наякий говорить більшість програмістів баз даних. Взагалі, бази данихіснують для того, щоб люди могли з ними взаємодіяти. У разіелектронних баз даних взаємодія відбувається не безпосередньо з базоюданих, а опосередковано - за допомогою програмного забезпечення. p>
Область, в якій розвиток баз даних мало особливо вибуховоюхарактер - це розробка додатків для Інтернет. База даних сервераможе підтримувати багато важливі функції в Інтернеті. Фактично, будь-якезміст веб - сторінок може управлятися базою данних.Вот як веб --сторінка зазвичай взаємодіє з базою даних. База даних знаходиться нанашому веб - сервер або іншій машині, з якою наш сервер можеобмінюватися даними. Ми розміщуємо на веб - сторінку форму, в якукористувач вводить свій запит або дані, які потрібно передати. Післяпередачі форми на сервер останній запускає написану нами програму,яка витягує передані користувачем дані. Ці програми роблятьсянайчастіше у вигляді CGI - сценаріїв або серверних додатків на Java. Теперпрограма знає, які дані потрібні користувачеві або що він хоче внести вбазу даних. Програма формує команду SQL для вибірки або зміниданих, а база даних робить все інше. Результати, одержані від базиданих, програма може оформити у вигляді нової HTML - сторінки і відправитиназад користувачеві. p>
Проектування баз даних p>
Проектування баз даних - серйозне питання. І тутнеобхідно визначити такі терміни:
- сутність це важлива річ або об'єкт зведення про який потрібно зберегти. p>
Сутність - це відмітні об'єкт, де об'єкт, про який йдеться, може бути настільки конкретним або абстрактним, наскільки нам подобається. p>
Відомості про сутності мають вигляд атрибутів і/або зв'язків. Якщо якийсь кандитат на те, щоб бути сутністю, не має атрибутів або зв'язків, то насправді він не є суттю.
- Зв'язком називається асоціювання двох чи більш сутностей. Прикладами зв'язків є зарахування службовців у відділи (зв'язок "багато - до однієї") і постачання деталей постачальникам (зв'язок "багато - до багатьох").
- Атрибут (властивість) - це однозначний факт про деяку суті, тоє дані про сутність, які потрібно зберегти. Укаждой суті нульабо більше атрібутов.І кожен атрибут описує в точності одну сутність.
Кожен екземпляр сутності (рядок таблиці) має в точності однезначення, можливо, рівне NULL. Термін "проектування баз даних"використовується у сенсі логічного проектування. Це не означає, щофізичне проектування не вважається настільки важливим. Справа в тому, що воноявляє собою самостійну задачу, якою можна і потрібно займатисяокремо після того, як виконано логічне проектування. p>
Будемо розрізняти суті трьох основних класів: стрижневі,асоціативні і характеристичні. Стрижнева сутність - це незалежнасутність (їй властиво незалежне існування). Асоціативнасутність розглядається як зв'язок між двома або більше іншими сутностямивиду "багато - до - багатьом". Характеристична - це така, мета якоїполягає в описі чи уточнення деякої іншої сутності. Асоціації тахарактеристики не є незалежними, так як вони припускаютьіснування деякої іншої сутності або сутностей, які будутьасоціюватися або "характеризуватися". Основою наведеної вищекласифікаційної схеми служить той факт, що зв'язки між сутностями можнаєдиним чином розділити на дві різні категорії, а саме: зв'язкивиду "багато - до - багатьох", які ми називаємо асоціаціями, і зв'язки виду
"Багато - до - одного", які ми називаємо позначеннями. Асоціаціїрозглядаються як повноправні суті: вони можуть мати властивості,можуть брати участь в інших асоціаціях і так далі, так само, якстрижневі сутності. Замість цього властивості позначення в більшостівипадків вважаються властивостями позначається сутності. p>
Існують такі поняття, як первинні та зовнішні ключі, атакож таке поняття як нормалізація. Для більшого розуміння розглянемоконкретну базу даних. У нашому прикладі база даних буде посилатися на рядоб'єктів - компакт диски (CD), назва CD, назва групи і назвафірми звукозапису. На цьому прикладі стане ясно, що є сутність, а що --атрибут. Ми визначаємо кілька видів даних, що відносяться до кожного CD, ібез яких неможливо описати CD. Тому CD є одним з тихоб'єктів, які ми хочемо описати, і, отже, є суттю.
За загальноприйнятою угодою про іменуванні сутностей ім'я суті повиннобути в однині. Тому таблицю назвемо "CD", а не "CDs".
| CD |
| | P>
Нижче - таблиця з атрибутами CD, які описують CD: p>
| CD |
| CD Title |
| Band Name |
| Record name |
| Songs | p>
Ця діаграма проста, але ще не закінчена. А саме - метою моделюванняє усунення надмірності за допомогою прийому, що зветьсянормалізацією. Необхідно нормалізувати нашу базу даних. Завданнянормалізації - усунути з бази даних деякі небажаніхарактеристики. Зокрема, ставиться завдання усунути деякі видинадмірності даних і завдяки цьому уникнути аномалій при змініданих. Аномалії зміни даних - це складності при операціях вставки,зміни та видалення даних, що виникають через структуру бази даних. Урезультаті нормалізації модель даних стає більш ясною. p>
Перша нормальна форма. p>
Загальне поняття нормалізації підрозділяється на кілька
"Нормальних" форм ". Кажуть, що сутність знаходиться в першій нормальнійформі, коли всі її атрибути мають єдине значення. Якщо в якому-небудьатрибуті є повторюване значення, то суть не знаходиться в першійнормальній формі (1NF). У нашому випадку в атрибуті Song є повторюванізначення. Отже, Song - це ще один об'єкт, про який ми збираємодані, і, можливо, він є суттю.
| CD |
| CD Title |
| Record Label |
| Band Name |
| Song |
| Song Name |
| Song Length | p>
Тепер у нас з'явилася модель даних з двома сутностями в 1NF. Але у нас щене вказані способи зв'язку для CD і Song. Перш ніж обговорити зв'язку, миповинні застосувати до сутностей ще одне правило. У кожної суті повиненбути однозначний ідентифікатор ID. Це такий атрибут суті, до якогозастосовані наступні правила:
- він унікальний для кожного екземпляра сутності
- для кожного екземпляра сутності він має значення, відмінне від NULL протягом усього терміну існування примірника
- його значення не змінюється протягом всього терміну існування примірника < br> Вибір ідентифікатора суттєвий, оскільки він використовується для модеоірованія зв'язків.
Нижче до кожної з нашої сутностей доданий унікальний ідентифікатор: p>
| CD |
| CD_ID |
| CD Title |
| Record Label |
| Band name |
| Song |
| Song_ID |
| Song Name |
| Song Length | p>
Ідентифікатори наших сутностей дозволяють моделювати їх связі.Связьописує бінарне відношення між двома сутностями. Зв'язок може такожіснувати всередині однієї сутності. Такий зв'язок називається рекурсивної.
Кожна сутність, що бере участь в зв'язку, описує іншу і описується нею.
Кожен рядок зв'язку має дві складових - ім'я та ступінь. Ступінь,звана також кардинальним числом, показує, скільки примірниківописуваної суті повинні описувати один примірник описуваної сутності.
Ступінь виражається за допомогою двох різних значень - "один - до - одному" і
"Один - до - багатьом". Для нашого прикладу це буде: p>
| CD |
| CD_ID |
| CD Title |
| Record Label |
| Band Name | p>
| Song |
| Song_ID |
| Song Name |
| Song Length | p>
Друга нормальна форма. P>
Тепер скажемо про другу нормальної форми. Кажуть, що сутністьзнаходиться в другій нормальній формі, якщо вона вже знаходиться в першійнормальної форми, і кожен неідентіфіцірующій атрибут залежить від усьогоунікального ідентифікатора сутності. Якщо якийсь атрибут не залежитьповністю від унікального ідентифікатора суті, значить, він внесенийпомилково і повинен бути знищений. Нормалізувати такий атрибут можна або знайшовшисутність, до якої він належить, або створивши нову сутність, на яку вінповинен бути поміщений. Для нашого прикладу маємо наступне. Назва групи -
Band Name - може бути для двох різних CD. Отже, Band Name НЕповністю залежить від ідентифікатора CD_ID. Отже, Band Name повиннобути частиною нової сутності, пов'язаної з CD. У нас буде тоді нова модель:
| Song |
| Song_ID |
| Song Name |
| Song Length | p>
| Artist |
| Artist_ID |
| Artist Name |
| CD |
| CD_ID |
| CD Title |
| Record Label | p>
Але краще, якщо буде такий вигляд:
| Song |
| Song_ID |
| Song Name |
| Song Length | p>
| Artist |
| Artist_ID |
| Artist Name |
| CD |
| CD_ID |
| CD Title |
| Record Label | p>
Ця модель краще, тому що у кожного Artist є один або багато Song, акожна Song виконується одним і лише одним Artist. p>
p>