7596
Моделі даних. Загальні поняття
Лекция
Информатика, кибернетика и программирование
Моделі даних Загальні поняття. Термін база данихговорить про те, що йдеться про дані, тобто про інформацію, яка характеризує певний об’єкт, та, що ці дані є базовими, основними. З погляду користувача, який екс...
Украинкский
2013-01-26
105.5 KB
7 чел.
PAGE 7
Моделі даних
Загальні поняття. Термін “база даних” говорить про те, що йдеться про дані, тобто про інформацію, яка характеризує певний обєкт, та, що ці дані є базовими, основними. З погляду користувача, який експлуатує базу даних (БД), вона є моделлю предметної області (ПО), обєкта, наприклад, підприємства або його частини, підрозділу. Найважливішою вимогою, яка ставиться до моделі, є її адекватність, тобто вірне відображення звязків і відношень між елементами того обєкта, який вона описує. Як правило, кожний обєкт з плином часу розвивається, змінюється. Тому БД, як модель обєкта, являє собою живий організм, який перебуває в постійному русі, вона теж змінюється в часі.
В сучасних БД практично не існує обмежень на вигляд даних. Це можуть бути числа (облік кількості товарів, працівників, коштів), літерні або символьні дані (назва та опис властивостей товару, прізвище працівника), календарна дата протікання події, текст великого розміру (текст книги), малюнок, кіно та відеофільм, адреса мережі Internet, математичний або логічний вираз і т. д. Тобто даними є будь-яка інформація, яка відображає стан обєкта протягом заданого проміжка часу і яку можна зберігати в памяті компютера.
З погляду програміста, який будує нову або веде (забезпечує супровід у ході експлуатації) готову БД, і в межах цього посібника ми будемо її розглядати саме з цього погляду, БД являє собою сукупність даних та програм, призначених для їх обробки.
Обробка даних передбачає виконання таких робіт:
Моделі даних. Велика кількість даних затрудняє роботу з ними, тому з метою її спрощення дані слід якимось чином упорядкувати, як на логічному, смисловому рівні, так на рівні розташування їх у памяті обчислювальної машини. Зрозуміло, що спосіб цього впорядкування безпосередньо впливає на сам характер обробки даних. Розглянемо моделі даних, які в ході історичного розвитку БД застосовувалися для логічного впорядкування даних.
Ієрархічна модель найбільш придатна для впорядкування даних про предметну область (ПО), які мають ієрархічну структуру звязків між собою за своєю природою. Прикладом таких даних може бути схема підпорядкування один одному підрозділів підприємства, зміна в часі властивості обєкта, територіально-адміністративний устрій держави, будова машини, яка складається з вузлів, підвузлів та деталей і т.д.
Одиничним, елементарним значенням ієрархічної структури є поіменоване поле. Сукупність полів утворює сегмент, який є одиницею доступу до даних. На найвищому рівні ієрархічної схеми розташування даних знаходиться єдиний сегмент, який називається кореневим або батьківським. Він може бути звязаний з одним або декількома сегментами нижчого рівня, які називають дочірніми. Декілька дочірніх сегментів, які мають одного батька називаються близнюками. Сегменти, які не мають дочірніх, називаються листками.
Ця модель передбачає наявність лише строго вертикальних звязків між даними типу один до одного або один до багатьох (зверху вниз) та багато до одного (знизу вверх). Допускаються горизонтальні звязки типу один до одного лише між сегментами одного рівня підпорядкування, що дозволяє виконувати пошукові операції на цьому рівні без повернення до батьківського сегмента.
Однією із систем, що базувалася на ієрархічній моделі даних, була система IMS, яка використовувала мову DL/1.
До головних переваг ієрархічної моделі можна віднести такі:
Найбільш суттєвими недоліками цієї моделі є такі:
Мережна модель даних має практично ті ж переваги та недоліки, що й ієрархічна, проте дозволяє простіше відображати складніші звзки між даними, зокрема типу багато до багатьох, описувати цикли та петлі. Одиницею доступу до даних мережної структури є запис, який теж складається з полів. Запис є аналогом сегмента ієрархічної структури даних. Прикладом звязку типу багато до багатьох може бути мережа багатьох газопроводів, кожний з яких експлуатує декілька підприємств, причому кожне підприємство експлуатує декілька газопроводів. Циклом називається форма звязку, де предок одночасно є нащадком. Прикладом циклу може бути підприємство, яке одночасно є власником газопроводу, який експлуатує інше підприємство. У петлі підприємство є власником газопроводу, який же й експлуатує.
Ієрархічна і мережна моделі даних застосовувалися переважно в ранніх СУБД. Загальним їхнім недоліком є те, що вони залежать від фізичної організації БД і вимагають від програміста, який складає прикладні програми для її обслуговування, знань про цю організацію. Тому логіка маніпулювання даними стає, як правило, перевантаженою деталями про реалізацію способу доступу до даних.
Реляційну модель даних запропонував американський математик Едгар Кодд на початку 70-тих років ХХ століття. (У 1981 році Е. Ф. Кодд одержав за створення реляційної моделі і реляційної алгебри престижну премію Тюринга Американської асоціації з обчислювальної техніки). З часом ця модель набувала все більшої популярності й сьогодні стала найбільш поширеною. Вона має ряд переваг, з яких відзначимо такі:
Відповідно до понять реляційної моделі вся інформація про ПО зберігається у вигляді таблиць, які можна звязувати між собою за допомогою кодових (ключових) полів. Звідси й походить її назва: слово relation означає звязок.
Реляційна модель даних застосовується не тільки для обробки власне даних, але й знань, якими оперують системи штучного інтелекту, інформаційно-пошукові, експертні та інші системи. Але можливості її використання в цих системах обмежені, тому подальший розвиток моделювання даних відбувається саме в цьому напрямку. Найбільш поширеними моделями знань можна вважати такі, як формально-логічна, продукційна, фреймова та ін.
Кожна модель даних передбачає застосування певного математичного апарату та набору операцій над даними. Вони будуть показані нижче в прикладах робіт з обєктами БД реляційного типу.
Системи управління базами даних. Перші БД беруть свій початок з 50-х років ХХ століття. Це були файлові системи, в яких застосовувалися універсальні програмні засоби, такі як Фортран, Алгол, Кобол та ін. У 60-х роках появилися перші системи управління базами даних (СУБД) це сукупність спеціальних програм, призначених для побудови та обслуговування БД. Для прикладу можна назвати такі СУБД, як спочатку IMS, яка підтримувала ієрархічну модель даних, а пізніше dBASE, FoxPro, Delphi, Informix, Oracle, PostgreSQL, MS Access, MySQL, SyBase та ін. реляційного типу. СУБД розвиваються в напрямку взяття на себе все більшої кількості фукцій, але лише загальних, які стосуються всіх або більшості робіт. Вони не можуть враховувати специфіку конкретних потреб, тому виглядають стандартними. Таким чином, програмне забезпечення БД можна умовно поділити на стандартне, яке постачається разом із СУБД, та прикладне, виготовлене програмістами під час побудови та ведення БД за допомогою спеціальних програмних засобів, які має СУБД.
Таблиця 1 Порівняльна характеристика найбільш поширених СУБД
Сервер |
Переваги |
Недоліки |
|
IBM DB2 Universal Database |
Найбагатша мова запитів, добрий оптимізатор, можливість писати функції на різих мовах. |
Висока ціна. |
|
Oracle Database |
Дуже багато додаткових можливостей. Версійний сервер. |
Дуже висока вартість сервера і підтримки. |
|
Microsoft SQL Server |
Швидко розвивається, вже впритул наближається до своїх більш розвинених конкурентів. Середня вартість. |
Існує лише для однієї платформи (Win32). |
|
IBM Informix Dynamic Server |
Досить розвинений швидкий сервер. |
|
|
Sybase Adaptive Server Enterprise |
Досить розвинений сервер. Середня вартість. |
|
|
Sybase Adaptive Server Anywhere |
Використовується під багато платформ, включаючи экзотичні. Низька вартість. |
|
|
Borland InterBase |
Досить багатий набір можливостей. Версійний сервер. Безплатний. |
Відносно повільно працює. |
|
PostgreSQL |
Підтримує історичну модель. Можливість створювати власні типи даних. Безплатний. |
|
|
MySQL |
Швидко працює на простих запитах. Безплатний. |
Дуже бідна мова запитів. Ма-ло додаткових можливостей. |
Всі СУБД, як правило, мають власні програмні засоби для побудови та ведення БД. Універсальною і найбільш поширеною мовою, яка застосовується практично ними всіма, є SQL (Structured Query Lanquage структурна мова запитів), розроблена (започаткована) Е. Коддом, засновником реляційних БД. В таблиці 1 приведена характеристика найбільш поширених SQL-серверів.
Етапи розвитку СУБД. Історія розвитку СУБД налічує більше половини століття. У 1968 році була введена в експлуатацію перша промислова СУБД система IMS фірми IBM. У 1975 році зявився перший стандарт асоціації з мов систем обробки даних Conference of Data System Languages (CODASYL), який визначив ряд фундаментальних понять в теорії баз даних.
У подальший розвиток теорії баз даних великий внесок був зроблений американським математиком Едгаром Франком Коддом, який є творцем реляційної моделі даних. Прийнято вважати, що реляційний підхід до організації баз даних був закладений наприкінці 1960-х рр. Едгаром Коддом. В останні десятиліття цей підхід є найбільш поширеним.
Переваги реляційного підходу та розвиток методів і алгоритмів організації та управління реляційними базами даних спричинили те, що до кінця 80-х років реляційні системи на світовому ринку СУБД стали домінуючими. Виділяють такі етапи розвитку систем управління базами даних:
Коротка характеристика PostgreSQL. В межах цього конспекта лекцій ознайомимося з СУБД PostgreSQL. Вона порівняно проста в користуванні, тому вигідна на перших етапах вивчення організації БД, і належить до найбільш потужних сучасних СУБД, що забезпечує знакомство з практично всіма тонкощами, що стосуються побудови та адміністрування БД.
PostgreSQL обєктно-реляційна система управління базами даних (ОРСУБД), розробка якої у різних формах ведеться з 1977 року. Робота почалася з проекту Ingres в Каліфорнійському університеті (Берклі). Пізніше проект Ingres був переведений на комерційну розробку в корпорації Relational Technologies/Ingres.
У 1986 році інша група, яку очолював Майкл Стоунбрейкера (Michael Stonebraker) з Берклі, продовжила роботу над Ingres і створила обєктно-реляційну СУБД Postgres. У 1996 році через удосконалення пакета і переходу на поширення з відкритими вихідними текстами було прийнято нову назву PostgreSQL (протягом нетривалого часу використовувалася назва Postgres95). В даний час над проектом PostgreSQL активно працює група розробників зі всього світу.
PostgreSQL вважається найдосконалішою СУБД, в якій реалізовано багато можливостей, які традиційно зустрічалися тільки у потужних комерційних продуктах, таких, наприклад, як DВ2 та Oracle. Вона розповсюджується на умовах відкритих вихідних текстів, тобто користувач може взяти вихідний текст програми, використовувати його і вільно модифікувати без обмежень, які встановлюються для закритих програмних продуктів.
Спільнота PostgreSQL забезпечує активну підтримку продукта через списки розсилки. Існує декілька списків розсилки, на які можна підписатися, вони містять досить детальну інформацію від загальних питань до розробки програмних інтерфейсів PostgreSQL. Повний перелік списків розсилки з докладними описами наведено на сайті http://www.postgresql.org.
Проте доводиться враховувати час і зусилля, витрачені на вивчення пакета і подальший супровід БД, тому можна скористатися й послугами відповідних комерційних організацій.
Нижче перераховані основні можливості PostgreSQL:
PostgreSQL може одночасно надавати доступ до декількох баз даних, у кожної з яких є свій власник, свої таблиці, подання, індекси та функції.
Для створення таблиці, функції або іншого обєкта бази даних, слід підключитися до конкретної бази даних за допомогою клієнта PostgreSQL. Після підключення створюється обєкт, який належить цій базі даних і недоступний для всіх інших баз даних (хоча клієнт може одночасно відкрити кілька підключень до різних баз).
Жорстка ізоляція основних обєктів даних в різних базах даних знижує небезпеку виникнення конфліктів імен при виборі імені, раніше зарезервованого для іншої мети (наприклад, якщо два користувача захочуть створити таблицю з імям products для двох різних цілей). Це повязано з тим, що ні одна база даних не має інформації про компоненти інших баз і не намагається встановлювати з ними будь-які логічні звязки. Більш того, це правило поширюється й на обєкти даних обєктно-реляційних баз, тому створені користувачем функції та мовні визначення недоступні для інших користувачів, що підключаються до інших баз даних через PostgreSQL.
А также другие работы, которые могут Вас заинтересовать | |||
23739. | ОСТРЫЕ УГЛЫ МОЛОДЫХ СЕМЕЙ ИЛИ ШПАРГАЛКА ДЛЯ МОЛОДОЖЕНОВ | 3.83 MB | |
Книга Андрея Зберовского написана в традиционной для автора форме, где большая часть практических советов подана в увлекательной и живой форме, нередко с элементами юмора. Она адресована очень широкой читательской аудитории любых возрастных категорий, прежде всего – молодоженам! | |||
23740. | Степень числа | 42 KB | |
Сначала определяем значение степени а затем проходим произведение. Найдите значение выражения: 5 23 362 81 : 32 . 3 1 2 4 9 7 5 6 8 12 11 10 5 23 362 81 : 32 = 5 2 2 2 36 5 2 2 2 36 81 : 3 3 Проанализируйте каков порядок действий в нашем выражении Сначала находим значение степени в скобке затем значение произведения значение разности значение степени результата получившегося в скобках значение степени числа 3 значение... | |||
23741. | Степень числа | 44 KB | |
При выполнении каких заданий мы можем получить произведение одинаковых множителей При разложении чисел на простые множители. Что интересного вы можете сказать о полученном ряде чисел Все числа кратны 10. Найдите НОК и НОД чисел а и b если: а = 23 3 52 b = 22 32 7. Что необходимо сделать что бы выполнить задание Надо расписать степени чисел и применить известные алгоритмы А можно ли выполнить задание не расписывая степени Этот вопрос может вызвать затруднение. | |||
23742. | Высказывания | 228 KB | |
Назовите число из полученного ряда сумма цифр в котором равна 6. Какое число данного ряда может быть лишним Например число 50 двузначное а остальные трехзначные. На сколько 150 больше 50 во сколько раз 150 больше 50 на сколько 50 меньше 150 Придумайте числовые выражения частное в которых равно 3. Найдите число которого равны 21. | |||
23743. | Взаимно простые числа | 72.5 KB | |
2 Тренировать способности к использованию: а понятий простого и составного числа; б признаков делимости на 2 5 10 3 9; в различных способов нахождения НОД; г алгоритмов объединения и пересечения множеств. На доске остаются числа: 375 164 2310 171. Разложите получившиеся числа на простые множители. | |||
23744. | Делимость произведения | 48.5 KB | |
Делится ли на 37 число 555 555 555 555 − Сформулируйте в общем виде свойство делимости которое вы наблюдаете. Если первое число делится на второе число второе число делится на третье число то первое число делится на третье число. Докажите используя введение обозначений что если первое число делится на второе а второе делится на третье то и первое число делится на третье. Первое число a второе число b третье число c. | |||
23745. | Делимость произведения | 48.5 KB | |
Что означает что число а делится на число b Это означает что существует такое число с которое при умножении на b дает а. И что Можно заменить число 16 произведением 4 и 4 и получится произведение 4 4 а. Если ктолибо из учащихся по аналогии с предыдущим заданием верно найдет ответ последнего примера число 555 то учитель просит его обосновать как выполнены действия. А как можно разделить произведение на число Разделить один множитель а потом полученный результат умножить на второй множитель. | |||
23746. | Делимость произведения | 85.5 KB | |
Делится ли: на 13 на 5 на 2 на10 На 13 делится так как 39 делится на 13; на 5 не делится так как ни один из множителей не делится на 5; на 2 делится так как 356 кратно 2; на 10 не делится так как ни один из множителей не делится на 10. Делится ли 225 на 3 если известно что 225 делится на 15 Да делится т. 15 делится на3. Известно что: а 686 делится на 49. | |||
23747. | Делимость суммы и разности | 45.5 KB | |
Преобразуйте второе выражение используя распределительное свойство умножения. Для ответа на этот вопрос и для обоснования этого ответа учащиеся могут либо вычислить значения данных выражений либо воспользоваться распределительным свойством умножения. Всегда ли сумма и разность чисел кратных двум будут кратны двум А сумма и разность чисел кратных трем четырем пяти будут соответственно кратны трем четырем пяти Затем учитель предлагает учащимся обобщить наблюдаемое свойство: Сформулируйте гипотезу. Скажите с помощью... | |||