Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Поняття бази даних

РефератДопомога в написанніДізнатися вартістьмоєї роботи

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

Поняття бази даних (реферат, курсова, диплом, контрольна)

Базу даних (БД) можна визначити як уніфіковану сукупність даних, спільно використовувану різними завданнями в рамках деякої єдиної автоматизованої інформаційної системи (ІС).

Теорія управління базами даних як самостійна дисципліна почала розвиватися приблизно з початку 50-х років двадцятого століття. За цей час в ній склалася певна система фундаментальних понять. Наведемо деякі з них.

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

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

Атрибут — це інформаційне відображення властивостей об'єкта. Кожен об'єкт характеризується деяким набором атрибутів.

Ключовим елементом даних називаються такий атрибут (або група атрибутів), який дозволяє визначити Значення інших елементів-даних. Запис даних (англ, еквівалент запис) — це сукупність значень пов’язаних елементів даних.

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

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

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

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

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

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

Допустимою організацією даних;

Обмеженнями цілісності;

Безліччю допустимих операцій.

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

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

Типовим представником сімейства баз даних, заснованих на ієрархічній моделі, є Information Management System (IMS) фірми IBM, перша версія якої з’явилася в 1968 р Концепція мережевої моделі даних пов’язана з ім'ям Ч. Бахмана. Мережевий підхід до організації даних є розширенням ієрархічного. В ієрархічних структурах запис-нащадок повинна мати в точності одного предка; в мережевій структурі даних нащадок може мати будь-яке число предків (рис.2).

Схема мережевої моделі даних.

Рис. 2. Схема мережевої моделі даних

Мережева БД складається з набору записів і набору зв’язків між цими записами, точніше, з набору екземплярів записів заданих типів (з допустимого набору типів) і набору екземплярів із заданого набору типів зв’язку. Прикладом системи управління даними з мережевою організацією є Integrated Database Management System (IDMS) компанії Cullinet Software Inc., розроблена в середині 70-х років. Вона призначена для використання на «великих» обчислювальних машинах. Архітектура системи заснована на пропозиціях Data Base Task Group (DBTG), Conference on Data Systems Languages (CODASYL), організації, відповідальної за визначення стандартів мови програмування Кобол.

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

Реляційна модель даних Концепції реляційної моделі вперше були сформульовані в роботах американського вченого Е. Ф. Кодда. Звідки походить її друга назва — модель Кодда.

Схема реляційної моделі даних.

Рис. 3. Схема реляційної моделі даних

У реляційної моделі об'єкти і взаємозв'язки між ними представляються за допомогою таблиць (рис. 7.3). Для її формального визначення використовується фундаментальне поняття відносини. Власне кажучи, термін «реляційна» походить від англійського relation — відношення. Якщо задані довільні кінцеві безлічі D1, D2, …, Dn, то декартовим твором цих множин D1? D2? ??? Dn називають безліч всілякі наборів виду (d1, d2 …, dn), де.

d1 D1, d2 D2, …, dn Dn. Ставленням R визначеним на множинах D1, D2, …, Dn, називається підмножина декартова твори Dl x D2x … х Dn. При цьому безлічі D1? D2? ??? Dn називаються доменами відносини, а елементи декартова твори — кортежами відносини. Число я визначає ступінь відносини, а кількість кортежів — його потужність. Поряд з поняттями домену та кортежу при роботі з реляційними таблицями використовуються альтернативні ним поняття поля і записи.

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

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

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

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

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

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

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

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

Мова SQL.

У розробленій Коддом реляційної моделі були визначені як вимоги до організації таблиць, що містять дані, так і мова, що дозволяє працювати з ними. Згодом ця мова отримав назву SQL (Structured Query Language — структурована мова запитів). SQL був вперше реалізований фірмою I на початку 70-х років двадцятого століття під назвою Structures English Query Language (SEQUEL). Він був орієнтований на управління прототипом реляційної бази даних IBM-System R. Надалі SQL став стандартом de facto мови роботи з реляційними базами даних. Цей його статус був вперше зафіксований в 1986 році Американським національним інститутом стандартів (ANSI). Іншими досить відомими стандартами SQL стали стандарти ANSI SQL-92 ISO SQL-92, X / Open. У складі SQL можуть бути виділені наступні групи інструкцій:

Мова опису даних — DDL (Data Definition Language);

Мова маніпулювання даними — DML (Data Manipulation Language);

Мова управління транзакціями.

Інструкції DDL призначені для створення, зміни та видалення об'єктів бази даних.

Інструкції мови визначення даних (DDL).

Інструкція.

Призначення.

CREATE.

Створення нових об'єктів (таблиць, полів, індексів).

DROP.

Видалення об'єктів.

ALTER.

Зміна об'єктів.

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

CREATE TABLE Фірми КодФірми TEXT (5),.

НазвФірми TEXT (30),.

АдресФірми TEXT (40),.

УстФонд (DOUBLE);

Відзначимо, що допустимі імена полів створюваної таблиці і типи містяться в них даних можуть варіюватися для різних версій і діалектів SQL Якщо нам знадобиться змінити структуру таблиці Фірми — припустимо, додасть! до неї ще одну колонку з прізвищем директора, то зробити це можна за допомогою SQL-інструкції:

ALTER TABLE Фірми ADD COLUMN Директор TEXT. (30);

а вираз, що дає Команду на знищення таблиці, буде виглядати так:

DROP TABLE Фірми;

Інструкції DML дозволяють вибирати дані з таблиць, а також додавати, видаляти і змінювати їх.

Інструкції мови маніпулювання даними (DML).

Інструкція.

Призначення.

SELECT.

Виконання запиту до бази даних з метою відбору записів, що задовольняють заданим критеріям.

INSERT.

Додавання записів в таблиці бази даних.

UPDATE.

Зміна значень окремих записів і полів.

DELETE.

Видалення записів з бази даних.

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

Основні пропозиції мови SQL.

Інструкція.

Призначення.

FROM.

Вказує ім'я таблиці, з якої повинні бути відібранідані.

WHERE.

Специфицируются умови, яким повинні задовольняти вибирані дані.

GROUP BY.

Визначає, що обрані записи повинні бути згруповані.

HAVING.

Задає умова, якому повинна задовольняти кожна група відібраних записів.

ORDER BY.

Специфицируются порядок сортування записів.

Прикладом найпростішого застосування інструкції SELECT може служити команда на вибірку всіх даних з таблиці Фірми:

SELECT * FROM Фірми;

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

SELECT Int ([УстФонд] / 500) * 500 AS Діапазон,.

Count (КодФірми) AS ЧіслоФірм.

FROM Фірми.

GROUP BY Int ([УстФонд] / 500) * 500;

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

Інструкції мови управління транзакціями.

Інструкція.

Призначення.

COMMIT.

Фіксація в базі даних всіх змін, зроблених поточної транзакцією.

SAVEPOINT.

Установка точки збереження (початку транзакції).

ROLLBACK.

Відкат змін, зроблених з моменту початку транзакції.

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

Програмні системи управління базами даних Коротко зупинимося на конкретних програмних продуктах, що відносяться до класу СУБД. На самому загальному рівні всі СУБД можна розділити:

  • — На професійні, або промислові;
  • — Персональні (настільні).

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

  • — Можливість організації спільної паралельної роботи великої кількості користувачів;
  • — Масштабованість, тобто можливість зростання системи пропорційно розширенню керованого об'єкта;
  • — Переносимість на різні апаратні і програмні платформи;
  • — Стійкість по відношенню до збоїв різного роду, в тому числі наявність багаторівневої системи резервування збереженої інформації;
  • — Забезпечення безпеки збережених даних і розвиненою структурованої системи доступу до них.

Промислові СУБД до справжнього моменту мають вже досить багату історію розвитку. Зокрема, можна відзначити, що наприкінці 70-х — початку 80-х років в автоматизованих системах, побудованих на базі великих обчислювальних машин, активно використовувалася СУБД Adabas. В даний час характерними представниками професійних СУБД є такі програмні продукти, як Oracle, DB2, Sybase, Informix, Ingres, Progress.

Основоположниками СУБД Oracle стала група американських розробників (Ларрі Еллісбн, Роберт Майнер і Едвард Оутс), які більше двадцяти років тому створили фірму Relational Software Inc. і поставили перед собою завдання створити систему, на практиці реалізує ідеї, викладені в роботах Е. Ф. Кодда І К. Дж. Дейта. Результатом їх діяльності стала реалізація переносимої реляційної системи управління базами даних з базовим мовою обробки SQL. У 1979 р замовникам була представлена версія Oracle для міні-комп'ютерів PDP-11 фірми Digital Equipment Corporation відразу для декількох операційних систем: RSX- 11, IAS, RSTS і UNIX. Трохи пізніше Oracle був перенесений на комп’ютери VAX під управлінням VAX VMS. Значна частина коду була написана на асемблері, і тому процес перенесення системи на нову платформу вимагав значних зусиль. Основною відмінністю Oracle черговий, третій версії було те, що вона була повністю написана на мові С. Таке рішення забезпечувало переносимість системи на багато нові платформи, зокрема, на різні клони UNIX. Другою важливою особливістю нової (1983 р) версії була підтримка концепції транзакції. Приблизно в цей же час фірма отримала нове ім'я — Oracle Corporation — і зайняла лідируюче місце на ринку виробників СУБД. Четверта версія Oracle характеризувалася розширенням переліку підтримуваних платформ і операційних систем. Oracle був перенесений як на великі ЕОМ фірми IBM (мейнфрейми), так і на персональні комп’ютери, що працюють під управлінням MS DOS. Саме в четвертій версії був зроблений важливий крок у розвитку технології підтримки цілісності баз даних. Для багатокористувацьких систем було запропоновано оригінальне рішення Oracle підтримки «несуперечності читання». У п’ятій версії була вперше реалізована СУБД з архітектурою «клієнт-сервер». Подальші версії СУБД Oracle були орієнтовані на побудову великомасштабних систем обробки транзакцій, зміна методів реалізації систем введення / виводу, буферизації, підсистем управління паралельним доступом, резервування і відновлення. Також була реалізована підтримка симетричних мультипроцесорних архітектур.

Проект і експериментальний варіант СУБД Ingres були розроблені в університеті Берклі під керівництвом одного з найбільш відомих у світі вчених і фахівців в області баз даних Майкла Стоунбрейкера. З самого початку СУБД Ingres розроблялася як мобільна система, що функціонує в середовищі ОС UNIX. Перша версія Ingres була розрахована на 16-розрядні комп’ютери і працювала головним чином на машинах серії PDP. Це була перша СУБД, поширювана безкоштовно для використання в університетах. Згодом група Стоунбрейкера перенесла Ingres в середу ОС UNIX BSD, яка також була розроблена в університеті Берклі. Сімейство СУБД Ingres з університету Берклі прийнято називати університетської Ingres. На початку 80-х була утворена компанія RTI (Relational Technology Inc.), яка розробила і стала просувати комерційну версію СУБД Ingres. В даний час комерційна Ingres підтримується, розвивається і продається компанією Computer Associates. Зараз це одна з найбільш розвинених комерційних реляційних СУБД. В той же час, з приводу університетської Ingres є багато високоякісних публікацій. Більш того, університетську Ingres можна випробувати на практиці і навіть подивитися її вихідні тексти.

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

Персональні системи управління даними — це програмне забезпечення, орієнтоване на вирішення завдань локального користувача або компактної групи користувачів і призначене для використання на мікроЕОМ (персональному комп’ютері). Це пояснює і їх друга назва — настільні. Визначальними характеристиками настільних систем є:

  • — Відносна простота експлуатації, що дозволяє створювати на їх основі працездатні додатки як «просунутим» користувачам, так і тим, чия кваліфікація невисока;
  • — Відносно обмежені вимоги до апаратних ресурсів.

Історично першою серед персональних СУБД, які отримали масове поширення, стала Dbase фірми Ashton-Tate (згодом права на неї перейшли до фірми Borland, а з 1999 р дана програма підтримується фірмою dBASE Inc.). Надалі серія реляційних персональних СУБД поповнилася такими продуктами, як FoxBase / FoxPRO (Fox Software, надалі - Microsoft), Clipper (Nantucket, потім — Computer Associates), R: base (Microrim), Paradox (Borland, на даний момент правами володіє фірма Corel), Access (Microsoft), Approach (Lotus).

Що завоювали широку популярність в Росії системи Dbase, FoxPRO і Clipper працювали з таблицями даних, які розміщувалися в файлах, що мали розширення * .dbf (термін dbf-формат став загальноприйнятим). Згодом сімейство цих баз даних отримало інтегроване найменування Xbase.

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

  • — Наявність візуального інтерфейсу, що автоматизує процес створення засобів маніпуляції даними, — екранних форм, шаблонів звітів, запитів і т. П .;
  • — Наявність інструментів створення об'єктів бази даних в режимі діалогу: Experts в Paradox, Wizards в Access, Assistants в Approach;
  • — Наявність розвиненого інструментарію створення програмних розширень в рамках єдиного середовища СУБД: мова розробки додатків PAL в Paradox, VBA (Visual Basic for Applications) в Access, Lotus Script в Approach;
  • — Вбудована підтримка універсальних мов управління даними, наприклад SQL або QBE (Query By Example).

Серед СУБД, які, умовно кажучи, займають проміжне положення між настільними і промисловими системами, можуть бути названі SQLWindows / SQLBase фірми Centura (до 1996 р Gupta), InterBase (Borland), нарешті, Microsoft SQL Server.

СУБД SQLite.

SQLite — полегшена реляційна система керування базами даних. Втілена у вигляді бібліотеки, де реалізовано багато зі стандарту SQL-92. Сирцевий код SQLite поширюється як суспільне надбання, тобто може використовуватися без обмежень та безоплатно з будь-якою метою.

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

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

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

Завдяки архітектурі рушія можливо використовувати SQlite як на вбудовуваних (embedded) системах, так і на виділених машинах з гігабайтними масивами даних.

транзакції атомарні, послідовні, ізольовані, і міцні (ACID) навіть після збоїв системи і збоїв живлення Встановлення без конфігурації — не потребує ані установки, ані адміністрування Реалізує значну частину стандарту SQL92.

База даних зберігається в одному крос-платформовому файлі на диску Підтримка терабайтних розмірів баз даних і гігабайтного розміру рядків і BLOBів Малий розмір коду: менше ніж 350KB повністю налаштований, і менш 200KB з опущеними додатковими функціями Швидший за популярні рушії клієнт-серверних баз даних для найпоширеніших операцій Простий, легкий у використанні API.

Написана в ANSI C, включена прив’язка до TCL; доступні також прив’язки для десятків інших мов Добре прокоментований сирцевий код зі 100% тестовий покриттям гілок Доступний як єдиний файл сирцевого коду на ANSI C, який можна легко вставити в інший проект Автономність: немає зовнішніх залежностей Крос-платформовість: з коробки підтримується Unix (Linux і Mac OS X), OS/2, Windows (Win32 і WinCE). Легко переноситься на інші системи Сирці перебувають в суспільному надбанні.

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

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

Показати весь текст
Заповнити форму поточною роботою