Проектування баз і сховищ даних p>
Теорія баз даних - порівняно молода галузь знань Вік їїстановить трохи більше 30 років. Однак змінився ритм часу, воно вже небіжить, а летить, і ми змушені підкорятися йому в усьому. І дійсно,сучасний світ інформаційних технологій важко уявити собі безвикористання баз даних. Практично всі системи в тій чи іншій міріпов'язані з функціями довготривалого зберігання і обробки інформації.
Фактично інформація стає фактором, що визначає ефективність будь-якоїсфери діяльності. Збільшилися інформаційні потоки і підвищилисявимоги до швидкості обробки даних, і тепер уже більшість операційне може бути виконане вручну, вони вимагають застосування найбільшперспективних комп'ютерних технологій. Будь-які адміністративні рішеннявимагають чіткої і точної оцінки поточної ситуації та можливих перспектив їїзміни. І якщо раніше в оцінці ситуації брало участь кілька десятківфакторів, які могли бути обчислені вручну, то тепер таких факторівсотні і сотні тисяч, і ситуація змінюється не протягом року, а черезкілька хвилин, а обгрунтованість прийнятих рішень потрібна велика,тому що і реакція на неправильні рішення більш серйозна, більш швидкаі більш потужна, ніж раніше. І, звичайно, обійтися без інформаційної моделівиробництва, що зберігається в базі даних, в цьому випадку неможливо. p>
Тема 1. Введення. Історія розвитку баз даних p>
В історії обчислювальної техніки можна простежити розвиток двохосновних галузей її використання. Перша область - застосуванняобчислювальної техніки для виконання чисельних розрахунків, які занадтодовго або взагалі неможливо робити вручну. Розвиток цієї областісприяло інтенсифікації методів чисельного розв'язання складнихматематичних задач, появи мов програмування, орієнтованих назручний запис чисельних алгоритмів, становленню зворотного зв'язку зрозробниками нових архітектур ЕОМ. Характерною особливістю даноїобласті застосування обчислювальної техніки є наявність складнихалгоритмів обробки, які застосовуються до простих за структурою даними,обсяг яких порівняно невеликий. p>
Друга область - це використання засобів обчислювальної техніки вавтоматичних чи автоматизованих інформаційних системах.
Інформаційна система являє собою програмно-апаратний комплекс,забезпечує виконання наступних функцій: p>
. надійне зберігання інформації в пам'яті комп'ютера; p>
. виконання специфічних для даного застосування перетворень інформації і обчислень; p>
. надання користувачам зручного і легко освоюється інтерфейсу. p>
Зазвичай такі системи мають справу з великими обсягами інформації, що маєдосить складну структуру. Класичними прикладами інформаційних системє банківські системи, автоматизовані системи управлінняпідприємствами, системи резервування авіаційних та залізничнихквитків, місць у готелях і т.д. p>
Друга область використання обчислювальної техніки виникла кількапізніше першого. Це пов'язано з тим, що на зорі обчислювальної технікиможливості комп'ютерів зі зберігання інформації були дуже обмеженими.
Говорити про надійне і довгостроковому зберіганні інформації можна тільки принаявності запам'ятовуючих пристроїв, що зберігають інформацію після вимкненняелектричного живлення. Оперативна (основна) пам'ять комп'ютерів цимвластивістю зазвичай не володіє. У перших комп'ютерах використовувалися два видипристроїв зовнішньої пам'яті - магнітні стрічки і барабани. Ємність магнітнихстрічок була досить велика, але за своєю фізичною природою вонизабезпечували послідовний доступ до даних. Магнітні ж барабани (вонинайближче до сучасних магнітним дискам з фіксованими головками)давали можливість довільного доступу до даних, але мали обмеженийоб'єм інформації. p>
Ці обмеження не були дуже істотними для чисто чисельнихрозрахунків, Навіть якщо програма повинна обробити (або зробити) великийобсяг інформації, при програмуванні можна продумати розташування цієїінформації у зовнішній пам'яті (наприклад, на послідовній магнітноїстрічці), що забезпечує ефективне виконання цієї програми. Однак уінформаційних системах сукупність взаємопов'язаних інформаційнихоб'єктів фактично відображає модель об'єктів реального світу. А потребакористувачів в інформації, адекватно відображає стан реальнихоб'єктів, потребує порівняно швидкої реакції системи на їх запити. І вцьому випадку наявність порівняно повільних пристроїв зберігання даних, дояких належать магнітні стрічки і барабани, була недостатньою. p>
Можна припустити, що саме вимоги нечислових додатків викликалипоява знімних магнітних дисків з рухомими головками, що з'явилосяреволюцією в історії обчислювальної техніки. Ці пристрої зовнішньої пам'ятіволоділи істотно більшою ємністю, ніж магнітні барабани, забезпечувализадовільну швидкість доступу до даних у режимі довільної вибірки,а можливість зміни дискового пакета на пристрої дозволяла матипрактично необмежений архів даних. p>
З появою магнітних дисків почалася історія систем управлінняданими у зовнішній пам'яті. До цього кожна прикладна програма, якоюбуло потрібно зберігати дані у зовнішній пам'яті, сама визначала розташуваннякожній порції даних на магнітній стрічці або барабані і виконувала обміниміж оперативною пам'яттю і пристроями зовнішньої пам'яті за допомогоюпрограмно-апаратних засобів низького рівня (машинних команд чи викликіввідповідних програм операційної системи). Такий режим роботи недозволяє або дуже утрудняє підтримку на одному зовнішньому носіїдекількох архівів тривалий час зберігається. Крім того, кожнійприкладній програмі доводилося вирішувати проблеми іменування частин даних іструктуризації даних у зовнішній пам'яті. p>
Файли і файлові системи p>
Важливим кроком у розвитку саме інформаційних систем з'явився перехід довикористанню централізованих систем управління файлами. З точки зоруприкладної програми, файл - це іменована область зовнішньої пам'яті, іяку можна записувати і з якої можна зчитувати дані. Правиланайменування файлів, спосіб доступу до даних, що зберігаються у файлі, і структурацих даних залежать від конкретної системи управління файлами і, можливо,від типу файлу. Система управління файлами бере на себе розподілзовнішньої пам'яті, відображення імен файлів у відповідні адреси в зовнішнійпам'яті та забезпечення доступу до даних.
Такі системи іноді називаються файловими. Незважаючи на відноснупростоту організації, файлові системи мають ряд недоліків: p>
1. Надмірність даних. Файлові системи характеризуються значною надмірністю, оскільки нерідко для вирішення різних завдань управління використовуються одні й ті ж дані, розміщені в різних файлах. Через дублювання даних у різних файлах пам'ять на зовнішніх запам'ятовуючих пристроях використовується неекономно, інформація одного і того самого об'єкта управління розподіляється між багатьма файлами. При цьому досить важко уявити загальну інформаційну модель предметної області. P>
2. Неузгодженість даних. Враховуючи, що одна й та сама інформація може розміщуватися в різних файлах, технологічно важко прослідкувати за внесенням змін одночасно в усі файли. Через це може виникнути неузгодженість даних, коли одне й те саме поле в різних файлах може мати різні значення. P>
3. Залежність структур даних і прикладних програм. При файлової організації логічна і фізична структури файлу повинні відповідати їх опису в прикладній програмі. Прикладна програма повинна бути модифікована при будь-які зміни логічної чи фізичної структури файлу. Оскільки зміни в одній програмі часто вимагають внесення змін до інших інформаційно-пов'язані програми, то іноді простіше створити нову програму, ніж вносити зміни в стару. Тому цей недолік файлових систем призводить до значного збільшення вартості супроводу програмних засобів. Іноді вартість супроводу програмних засобів може сягати близько 70% вартості їх розроблення. P>
Користувачі бачать фото як лінійну послідовність записів і можутьвиконати над ним ряд стандартних операцій: p>
. створити файл (необхідного типу і розміру); p>
. відкрити раніше створений файл; p>
. прочитати з файлу деяку запис (поточну, наступну, попередню і перший, останню); p>
. записати у файл на місце поточного запису нову, додати новий запис у кінець файлу. p>
У різних файлових системах ці операції могли трохи відрізнятися, алезагальний зміст їх був саме таким. Головне, що слід відзначити, це те, щоструктура запису файлу була відома тільки програму, яка з нимпрацювала, система управління файлами не знала її. І тому для того, щоботримати деяку інформацію з файлу, необхідно було точно знатиструктуру запису файлу з точністю до біта. Кожна програма, що працює зфайлом, повинна була мати у себе всередині структуру даних, відповіднуструктурі цього файлу. Тому при зміні структури файлу було потрібнозмінювати структуру програми, а це вимагало нової компіляції, то єпроцесу перекладу програми в виконувані машинні коди. Така ситуаціїхарактеризувалася як залежність програм від даних. Для інформаційнихсистем характерним є наявність великої кількості різних користувачів
(програм), кожен з яких має свої специфічні алгоритми обробкиінформації, що зберігається в одних і тих же файлах. Зміна структури файлу,що було необхідно для однієї програми, вимагало виправлення таперекомпіляції і додаткової налагодження всіх інших програм, що працюютьз цим же файлом. Це було першим істотним недоліком файлових систем,який став поштовхом до створення нових систем зберігання та управлінняінформацією. p>
Для ілюстрації звернемося до прикладу, наведеному в книзі: У. Девіс,
Операційні системи, М., Мир, 1980:
«Кілька років тому поштове відомство (з кращих спонукань) прийшло дорішення, що всі адреси повинні обов'язково включати поштовий індекс. Підбагатьох обчислювальних центрах це, здавалося б, незначна змінапризвело до жахливих наслідків. Додавання до адресою нового поля,що містить шість символів, означало необхідність внесення змін докожну програму, що використовує дані цього завдання відповідно дозмінилася сумарною довжиною полів. Той факт, що якійсь програмі длявиконання її функцій не потрібно знання поштового індексу, до уваги неприймався: якщо в деякій програмі містилося звернення до нової, більшдовгою запису, то в таку програму вносилися зміни, що забезпечуютьдодаткове місце в пам'яті.
В умовах автоматизованого управління централізованою базою даних всетакі зміни пов'язані з функціями керуючої програми бази даних.
Програми, які не використовують значення поштового індексу, не потребуютьмодифікації - у них, як і раніше, відповідно до запитів надсилаються тіж елементи даних. У таких випадках внесені зміни невідчутно.
Змінити необхідно тільки ті програми, які користуються новимелементом даних ». p>
Далі, оскільки файлові системи є загальним сховищем файлів,належать, взагалі кажучи, різним користувачам, системи управлінняфайлами повинні забезпечувати авторизацію доступу до файлів. У загальному виглядіпідхід полягає в тому, що по відношенню до кожного зареєстрованогокористувачеві даної обчислювальної системи для кожного існуючого файлувказуються дії, які дозволені або заборонені даному користувачеві.
У більшості сучасних систем управління файлами застосовується підхід дозахисту файлів, вперше реалізований в ОС UNIX. У цій ОС кожномузареєстрованому користувачеві відповідає пара цілочисельнихідентифікаторів: ідентифікатор групи, до якої належить цейкористувач, і його власний ідентифікатор в групі. При кожному файлізберігається повний ідентифікатор користувача, який створив цей файл, іфіксується, які дії з файлом може виробляти його творець, якідії з файлом доступні для інших користувачів тієї ж групи і щоможуть робити з файлом користувачі інших груп. Адміністрування режимомдоступу до файлу в основному виконується його творцем-власником, Длябезлічі файлів, що відображають інформаційну модель однієї предметноїобласті, такий децентралізований принцип управління доступом викликавдодаткові труднощі. І відсутність централізованих методів управліннядоступом до інформації стало ще однією причиною розробки СУБД. p>
Наступною причиною стала необхідність забезпечення ефективноїпаралельної роботи багатьох користувачів з одними і тими ж файлами. Узагальному випадку системи управління файлами забезпечували режимбагатокористувацького доступу, Якщо операційна система підтримуєбагатокористувацький режим, цілком реальна ситуація, коли дві або більшекористувача одночасно намагаються працювати з одним і тим же файлом. Якщовсі користувачі збираються тільки читати файл, нічого страшного невідбудеться. Але якщо хоча б одна з них буде змінювати файл, для коректноїроботи цих користувачів потрібно взаємна синхронізація їхніх дій повідношенню до файлу. p>
У системах управління файлами зазвичай застосовувався наступний підхід. Уоперації відкриття файлу (перша та обов'язкової операції, з якою повиненпочинатися сеанс роботи з файлом) серед інших параметрів вказувався режимроботи (читання або зміна). Якщо до моменту виконання цієї операціїдеяким користувача процесом PR1 файл був вже відкритий іншимпроцесом PR2 в режимі зміни, то і залежно від особливостей системипроцесу PR1 або повідомлялися і неможливості відкриття файлу, або вінблокувався до тих пір, поки в процесі PR2 не виконувалася операціязакриття файлу. p>
При такому способі організації одночасна робота декількохкористувачів, пов'язана з модифікацією даних у файлі, або взагалі нереалізовувалася, або була дуже сповільнена. p>
Ці недоліки стали тим поштовхом, який змусив розробниківінформаційних систем запропонувати новий підхід до управління інформацією.
Цей підхід був реалізований в рамках нових програмних систем, названихзгодом Системами Управління Базами Даних (СУБД), а самі сховищаінформації, які працювали під управлінням даних систем, називалисябазами або банками даних (БД і БНД). p>
Перший етап - бази даних на великих ЕОМ p>
Історія розвитку СУБД налічує більше 30 років. У 1968 році булавведена в експлуатацію перша промислова СУБД система IMS фірми IBM. У
1975 з'явився перший стандарт асоціації за мовами систем обробкиданих - Conference of Data System Languages (CODASYL), який визначивряд фундаментальних понять в теорії систем баз даних, які і до цихпір є основоположними для мережної моделі даних. p>
У подальший розвиток теорії баз даних великий внесок був зробленийамериканським математиком Е. Ф. Коддом, який є творцемреляційної моделі даних. У 1981 році Е. Ф. Коддом отримав за створенняреляційної моделі і реляційної алгебри престижну премію Тьюрінга
Американської асоціації з обчислювальної техніки. P>
Менше двох десятків років пройшло з цього моменту, але стрімкийрозвиток обчислювальної техніки, зміна її принципової ролі в життісуспільства, що обрушився бум персональних ЕОМ і, нарешті, поява потужнихробочих станцій і мереж ЕОМ вплинуло також і на розвиток технології базданих. Можна виділити чотири етапи в розвитку даного напрямку вобробці даних. Однак необхідно зауважити, що все ж таки немає жорсткихтимчасових обмежень у цих етапах: вони плавно переходять один в інший інавіть співіснують паралельно, але, тим не менше, виділення цих етапівдозволить більш чітко охарактеризувати окремі стадії розвитку технологіїбаз даних, підкреслити особливості, специфічні для конкретного етапу. p>
Перший етап розвитку СУБД пов'язаний з організацією баз даних на великихмашинах типу IBM 360/370, ЄС-ЕОМ і міні-ЕОМ типу PDP11 (фірми Digital
Equipment Corporation - DEC), різних моделях HP (фірми Hewlett Packard). P>
Бази даних зберігалися у зовнішній пам?? ти центральної ЕОМ, користувачамицих баз даних були завдання, що запускаються в основному в пакетному режимі.
Інтерактивний режим доступу забезпечувався за допомогою консольних терміналів,які не володіли власними обчислювальними ресурсами (процесором,зовнішньої пам'яті) і служили тільки пристроями вводу-виводу для центральної
ЕОМ. Програми доступу до БД писалися на різних мовах і запускалися якзвичайні числові програми. Потужні операційні системи забезпечувалиможливість умовно паралельного виконання всього безлічі завдань. Цісистеми можна було віднести до систем розподіленого доступу, тому щобаза даних була централізованою, зберігалася на пристроях зовнішньої пам'ятіоднієї центральної ЕОМ, а доступ до неї підтримувався від багатьох користувачів -завдань. p>
Особливості цього етапу розвитку виражаються в наступному: p>
> Всі СУБД базуються на потужних мультипрограмному операційних системах (MVS, SVM, RTE, OSRV, RSX, UNIX), тому в основному підтримується робота з централізованою базою даних в режимі розподіленого доступу. p>
> Функції управління розподілом ресурсів в основному здійснюються операційною системою (ОС). p>
> Підтримуються мови низького рівня маніпулювання даними, орієнтовані на навігаційні методи доступу до даних. p>
> Значна роль відводиться адміністрування даних. p>
> Проводяться серйозні роботи з обгрунтування та формалізації реляційної моделі даних, і була створена перша система (System R), що реалізує ідеологію реляційної моделі даних. p>
> Проводяться теоретичні роботи з оптимізації запитів і управління розподіленим доступом до централізованої БД, було введено поняття транзакції. p>
> Результати наукових досліджень відкрито обговорюються в пресі, йде потужний потік загальнодоступних публікацій, що стосуються всіх аспектів теорії і практики баз даних, і результати теоретичних досліджень активно впроваджуються в комерційні СУБД. p>
З'являються перші мови високого рівня для роботи з реляційноїмоделлю даних. Однак відсутні стандарти для цих перших мов. P>
Другий етап - епоха персональних комп'ютерів p>
Персональні комп'ютери стрімко увірвалися в наше життя і буквальноперевернули наше уявлення про місце і роль обчислювальної техніки вжитті суспільства. Тепер комп'ютери стали ближче і доступніше кожномукористувачеві. Зник благоговійний страх рядових користувачів переднезрозумілими та складними мовами програмування. З'явилося безлічпрограм, призначених для роботи непідготовлених користувачів. Ціпрограми були прості у використанні та інтуїтивно зрозумілі: це, перш заза все, різні редактори текстів, електронні таблиці та інші. Простимиі зрозумілими стали операції копіювання файлів і перенесення інформації з одногокомп'ютера на інший, роздруківка текстів, таблиць та інших документів.
Системні програмісти були відсунуті на торою план. Кожен користувачміг відчути себе повним господарем цього потужного і зручного пристрою,що дозволяє автоматизувати багато аспектів діяльності. І, звичайно, цепозначилося і на роботі з базами даних. З'явилися програми, якіназивалися системами управління базами даних і дозволяли зберігатизначні обсяги інформації, вони мали зручний інтерфейс для заповненняданих, вбудовані засоби для створення різних звітів. Ці програмидозволяли автоматизувати багато облікові функції, які раніше велисявручну. Постійне зниження цін на персональні комп'ютери зробило їхдоступними не тільки для організацій та фірм, але і для окремихкористувачів. Комп'ютери стали інструментом для ведення документації тавласних облікових функцій. Це все зіграло як позитивну, так інегативну роль в галузі розвитку баз даних. Удавана простота ідоступність персональних комп'ютерів та їх програмного забезпечення породилабезліч дилетантів. Ці розробники, вважаючи себе знавцями, сталипроектувати недовговічні бази даних, які не враховували багатьохособливостей об'єктів реального світу. Багато було створено систем-одноденок,які не відповідали законам розвитку і взаємозв'язку реальних об'єктів.
Проте доступність персональних комп'ютерів змусила користувачів збагатьох галузей знань, які раніше не застосовували обчислювальну техніку всвоєї діяльності, звернутися до них. І попит на розвинені зручні програмиобробки даних змушував постачальників програмного забезпечення постачативсе нові системи, які прийнято називати настільними (desktop) СУБД.
Значна конкуренція серед постачальників змушувала вдосконалювати цісистеми, пропонуючи нові можливості, покращуючи інтерфейс і швидкодіюсистем, знижуючи їх вартість. Наявність на ринку великого числа СУБД,що виконують схожі функції, зажадало розробки методів експорту -імпорту даних для цих систем і відкриття форматів зберігання даних. p>
Але і в цей період з'являлися аматори, які всупереч здоровому глуздурозробляли власні СУБД, використовуючи стандартні мовипрограмування. Це був тупиковий варіант, тому що подальший розвитокпоказало, що перенести дані з нестандартних форматів у нові СУБД булонабагато важче, а в деяких випадках вимагало таких трудовитрат, щолегше було б все розробити заново, але дані все одно треба булопереносити на нову більш перспективну СУБД. І це теж було результатомнедооцінки тих функцій, які повинна була виконувати СУБД. p>
Особливості цього етапу такі: p>
> Всі СУБД були розраховані на створення БД в основному з монопольним доступом. І це зрозуміло. Комп'ютер персональний, він не був приєднаний до мережі, і база даних на ньому створювалася для роботи одного користувача. У рідкісних випадках передбачалася послідовна робота декількох користувачів, наприклад, спочатку оператор, який вводив бухгалтерські документи, а потім головбух, який визначав проводки, що відповідають первинним документам. P>
> Більшість СУБД мали розвинений і зручний користувальницький інтерфейс, У більшості існував інтерактивний режим роботи з p>
БД, як в рамках опису БД, так і в рамках проектування запитів. Крім того, більшість СУБД пропонували розвинений і зручний інструментарій для розробки готових додатків без програмування. Інструментальна середа складалася з готових елементів програми у вигляді шаблонів екранних форм, звітів, етикеток (Labels), графічних конструкторів запитів, які досить просто могли бути зібрані в єдиний комплекс. P>
> У всіх настільних СУБД підтримувався тільки зовнішній рівень подання реляційної моделі, то є тільки зовнішній вигляд табличний структур даних. p>
> При наявності високорівневих мов маніпулювання даними типу реляційної алгебри та SQL в настільних СУБД підтримувалися низькорівневі мови маніпулювання даними на рівні окремих рядків таблиць. p>
> У настільних СУБД були відсутні засоби підтримки посилальної і структурної цілісності бази даних. Ці функції повинні були виконувати додатки, однак убогість засобів розробки додатків іноді не дозволяла це зробити, і в цьому випадку ці функції повинні були виконуватися користувачем, вимагаючи від нього додаткового контролю при вводі та зміну інформації, що зберігається в БД. P>
> Наявність монопольного режиму роботи фактично призвело до виродження функцій адміністрування БД і в зв'язку з цим - до відсутності інструментальних засобів адміністрування БД. p>
> І, нарешті, остання і на даний момент досить позитивна особливість - це порівняно скромні вимоги до апаратного забезпечення з боку настільних СУБД. Цілком працездатні програми, розроблені, наприклад, на Clipper, працювали на PC 286. P>
В принципі, їх навіть важко назвати повноцінними СУБД. Яскравіпредставники цього сімейства це дуже широко використовувалися донедавнього часу СУБД dBase (dBase III +, dBase IV), FoxPro, Clipper,
Paradox. P>
Третій етап - розподілені бази даних p>
Добре відомо, що історія розвивається по спіралі, тому післяпроцесу «персоналізації» почався зворотний процес - інтеграція. Множитьсякількість локальних мереж, все більше інформації передасться міжкомп'ютерами, гостро постає завдання узгодженості даних, що зберігаються іобробляються в різних місцях, але логічно між собою пов'язані,виникають завдання, пов'язані з паралельною обробкою транзакцій --послідовностей операцій над БД, переводять її з одногонесуперечливого стану в інший несуперечливе стан. Успішнерішення цих завдань призводить до появи розподілених баз даних,зберігають всі переваги настільних СУБД і в той же час дозволяютьорганізувати паралельну обробку інформації і підтримку цілісності БД. p>
Особливості даного етапу: p>
> Практично всі сучасні СУБД забезпечують підтримку повної реляційної моделі, а саме: p>
. структурної цілісності - допустимими є тільки дані, представлені у вигляді відносин реляційної моделі; p>
. мовної цілісності, тобто мов маніпулювання даними високого рівня (в основному SQL); p>
. посилальної цілісності - контролю за дотриманням посилальної цілісності протягом усього часу функціонування системи, і гарантій неможливості з боку СУБД порушити ці обмеження. p>
> Більшість сучасних СУБД розраховані на багатоплатформенна архітектуру, тобто вони можуть працювати на комп'ютерах з різною архітектурою і під різними операційними системами, при цьому для користувачів доступ до даних, керованим СУБД, на різних платформах практично не видимий. p>
> Необхідність підтримки розрахованої на багато користувачів роботи з базою даних і можливість децентралізованого Величне даних зажадали розвитку засобів адміністрування БД з реалізацією загальної концепції засобів захисту даних. p>
> Потреба в нових реалізаціях викликала створення серйозних теоретичних праць з оптимізації реалізації розподілених БД і роботі з розподіленими транзакціями і запитами з впровадженням отриманих результатів в комерційні СУБД. p>
> Для того щоб не втратити клієнтів, які раніше працювали на настільних СУБД, практично всі сучасні СУБД мають засоби підключення клієнтських додатків, розроблених з використанням настільних СУБД, і засоби експорту даних з форматів настільних p>
СУБД другого етапу розвитку . p>
До цього етапу можна віднести розробку ряду стандартів у рамках мовопису та маніпулювання даними (SQL89, SQL92, SQL99) та технологій зобміну даними між різними СУБД, до яких можна віднести і протокол
ODBC (Open DataBase Connectivity), запропонований фірмою Microsoft. P>
Саме до цього етапу можна віднести початок робіт, пов'язаних з концепцієюоб'єктно-орієнтованих БД - ООБД. Представниками СУБД, що належать додругого етапу, можна вважати MS Access 97 і всі сучасні сервери базданих Огас1е7.3, 0гас1е 8.4, MS SQL 6.5, MS SQL 7.0, System 10, System 11,
Informix, DB2, SQL Base та інші сучасні сервери баз даних, яких узараз налічується кілька десятків. p>
Четвертий етап - перспективи розвитку систем керування базами даних p>
Цей етап характеризується появою нової технології доступу до даних
- Інтранет. Основна відмінність цього підходу від технології клієнт-серверполягає в тому, що відпадає необхідність використання спеціалізованогоклієнтського програмного забезпечення. Для роботи з віддаленою базою данихвикористовується стандартний броузер Internet, наприклад Microsoft Internet
Explorer або Netscape Navigator, і для кінцевого користувача процесзвернення до даних відбувається аналогічно ковзання по Всесвітній Павутині.
При цьому вбудований в завантажуються користувачем HTML-код сторінки,написаний зазвичай на мовах Java, Java-script, Perl та інших, відстежуєвсі дії користувача і транслює їх у низькорівневі SQL-запити добазі даних, виконуючи, таким чином, ту роботу, якої в технологіїклієнт-сервер займається клієнтська програма. Зручність даного підходупризвело до того, що він став використовуватися не тільки для віддаленого доступудо баз даних, але і для користувачів локальної мережі підприємства. Простізадачі обробки даних, не пов'язані зі складними алгоритмами, які вимагаютьузгодженої зміни даних в багатьох взаємопов'язаних об'єктах,досить просто і ефективно можуть бути побудовані за даною архітектурі.
У цьому випадку для підключення нового користувача до можливостівикористовувати цю задачу не потрібна установка додатковогоклієнтського програмного забезпечення. Однак алгоритмічно складні завданнярекомендується реалізовувати в архітектурі «клієнт-сервер» з розробкоюспеціального клієнтського програмного забезпечення. p>
У кожного з перерахованих вище підходів до роботи з даними є своїпереваги і свої недоліки, які й визначають область застосування тогочи іншого методу, і в даний час всі підходи широко використовуються. p>
Тема 2. Основні поняття і визначення p>
Сучасні автори часто вживають терміни - «банк даних» та «базаданих »як синоніми, проте в загальногалузевих керівних матеріалах застворення банків даних Державного комітету з науки і техніки (ДКНТ),виданих у 1982 р., ці поняття розрізняються. Там наводяться наступнівизначення банку даних, бази даних і СУБД: p>
Банк даних (БНД) - це система спеціальним образом організованихданих - баз даних, програмних, технічних, мовних, організаційно -методичних засобів, призначених для забезпечення централізованогонагромадження і колективного багатоцільового використання даних. p>
База даних (БД) - іменована сукупність даних, що відображаєстан об'єктів і їх відносин і розглянутої предметної області. p>
Під предметною областю розуміють один або декілька об'єктів управління
(або певні їх частини), інформація яких моделюється за допомогою БД івикористовується для вирішення різних функціональних завдань. p>
Система управління базами даних (СУБД) - сукупність мовних іпрограмних засобів, призначених для створення, ведення і спільноговикористання БД багатьма користувачами. У ній можна виділити:
- ядро СУБД, яке забезпечує організацію введення, обробки та зберігання даних,
- компоненти, які забезпечують налагодження системи, засоби тестування,
- утиліти, що забезпечують виконання допоміжних функцій p >
(наприклад, ведення журналу статистики роботи системи тощо).
Дуже важливим завданням СУБД є забезпечення незалежності даних.
Практично одна й та сама СУБД може бути використана для веденняабсолютно різних файлів, які використовуються для вирішення різнопланових, непов'язаних між собою задач управління. Всі функції СУБД можна об'єднати втакі групи: p>
1. Управління даними. Завданнями управління даних є підготовка даних та їх контроль, внесення даних в базу, структуризація даних, забезпечення цілісності, секретності даних. P>
2. Доступ до даних. Пошук та селекція даних, перетворення даних у форму, зручну для подальшого використання. P>
3. Організація і ведення зв'язку з користувачем. Ведення діалогу, видача діагностичних повідомлень про помилки в роботі з БД і т.д. p>
Для обробки запитів до БД розробляють програми, які становлятьприкладне програмне забезпечення. Програми, за допомогою якихкористувачі працюють з базою даних, називаються програмами. Загаломвипадку з однією базою даних можуть працювати безліч різних додатків.
Наприклад, якщо база даних моделює деякий підприємство, то для роботиз нею може бути створена програма, яка обслуговує підсистему облікукадрів, інша програма може бути присвячене роботі підсистеми розрахункузаробітної плати співробітників, третій додаток працює як підсистемаскладського обліку, четверте додаток присвячений плануваннювиробничого процесу. При розгляді додатків, що працюють з одногобазою даних, передбачається, що вони можуть працювати паралельно інезалежно один від одного, і саме СУБД покликана забезпечити роботубезлічі додатків з єдиною базою даних таким чином, щоб кожна зних виконувалося коректно, але враховував всі зміни в базі даних,внесені іншими додатками. p>
Мовні засоби банку даних p>
Мовні засоби СУБД, необхідні для опису даних, організаціїспілкування та виконання процедур пошуку і різних перетворень даних.
Класифікація мовних засобів БНД,показана на рис. 2.2, розробленаамериканським комітетом CODASYL з проектування і створення БД. p>
p>
Ріс.2.2. Схема класифікації мовних засобів БНД p>
Схема має загальний характер і орієнтована на різні СУБД. Однак некожна СУБД, яка зараз використовується на практиці і поширена наринку програмних продуктів, містить в собі всі зазначених мовних засобів. p>
Мова опису даних (DDL - Data Definition Language), призначений дляопису даних на різних рівнях абстракції: зовнішньому, логічному івнутрішньому. Виходячи з пропозицій CODASYL, мови опису даних налогічному (концептуальному) і внутрішньому рівнях незалежні і різні.
Однак у більшості промислових СУБД мови не ділиться на два окремихмови опису логічної і фізичної організації даних, а існуєєдина мова, яка ще називається мовою опису схем. У відомих ішироко використовуються на практиці СУБД сім'ї dBASE застосовується єдина моваопису даних. Він призначений для представлення даних на логічному іфізичному рівнях. Ця мова має свій синтаксис: наприклад, ім'я файлу неповинно перевищувати восьми символів, а ім'я поля - десяти; при цьому кожне ім'яможе починатися з літери, поля календарної дати позначаються символом D
(DATA), символьні поля - С (CHARACTER), числові - N (NUMERIC), логічні
- L (LOGICAL), приміток - М (MEMO). P>
Опис всіх імен, типів і розмірів полів зберігається в пам'яті разомз даними; ці структури в разі потреби можна переглянути івиправити. Якщо логічний і фізичний рівні відокремлені, то до складу СУБДможе входити мова опису збереження даних. В деяких СУБДвикористовується ще мова опису подсхем, який потрібний для опису частини
БД, яка відображає інформаційні потреби окремого користувача абоприкладної програми. У складі СУБД типу dBASE така мова не використовується. P>
Мова опису даних на зовнішньому рівні використовується для описувимог користувачів і прикладних програм і створення інфологіческоймоделі БД. Ця мова не має нічого спільного з мовами програмування.
Так, мовним засобом, що використовуються для інфологіческогомоделювання, є звичайний природний мову або його підмножина, атакож мова графів та матриць. p>
Мова маніпулювання даними (DML - Data Manipulation Language)використовується для обробки даних, їх перетворень і написання програм.
DML може бути базовим або автономним. P>
Базова мова DML - це один з традиційних мов програмування
(BASIC, C, FORTRAN та ін.) Системи, які використовують базова мова,називають відкритими. Використання базових мов як мов опису данихзвужує коло осіб, які можуть безпосередньо звертатися до БД, оскількидля цього потрібно знати мову програмування. У таких випадках для спрощенняспілкування кінцевих користувачів з БД передбачається мова ведення діалогу,що значно простіше для оволодіння, ніж мова програмування. p>
Автономний мова DML - це власну мову СУБД, який даєможливість виконувати різні операції з даними. Системи з собс