Сервер баз даних виконує обслуговування та управління базою даних та відповідає за цілісність та збереження даних, а також забезпечує операції введення-виведення при доступі клієнта до інформації.
Архітектура клієнт-сервер складається з клієнтів та серверів. Основна ідея полягає в тому, щоб розміщувати сервери на потужних машинах, а додаткам, що використовують мовні компоненти СКБД, забезпечити доступ до них з менш потужних машин-клієнтів за допомогою зовнішніх інтерфейсів.
Мова SQL
Більшість СКБД використовують мову SQL (Structured Query Language — мова структурованих запитів), оскільки вона зручна для опису логічних підмножин БД. Призначення SQL:
- створення БД і таблиці з повним описом їх структури;
- виконання основних операцій маніпулювання даними (такі як вставка, модифікація та видалення даних з таблиць);
- виконання простих та складних запитів.
Одна з ключових особливостей мови SQL полягає в тому, що з її допомогою формуються запити, що описують яку інформацію з бази даних необхідно одержати, а шляхи вирішення цієї завдання програма визначає сама.
Збережені та приєднані процедури
Існують розширені версії мови SQL, які підтримують такі розширення, як збережені та розширені процедури, а також управління ходом програми через розгалуження та організацію циклів. Збережені процедури — це попередньо відкомпільовані оператори мови SQL, які зберігаються на сервері бази даних, що використовує мову SQL. Клієнт запускає збережену процедуру за допомогою команди EXECUTE <ім'я процедури>. Таким чином, по мережі передаються лише два слова. Оскільки ця процедура вже відкомпільована та оптимізована, серверу не потрібно витрачати час на компіляцію та оптимізацію.
Як збережені процедури зазвичай використовуються часто виконувані запити.
Приєднані процедури (тригери) подібні збереженим процедурам та виконуються у відповідь на події, що відбуваються в БД. Коли з деякими додатками мови SQL пов'язана приєднана процедура, виконання цього оператора завжди запускає цілу серію команд, що входять в цю процедуру. Приєднана процедура автоматично виконує одну чи більше операторів мови SQL, всякий раз, коли виконує оператори INSERT, UPDATE або DELETE. Найважливіше застосування приєднаних процедур полягає в забезпеченні посилальної цілісності.
Операційне середовище серверів
Приклади серверів БД:
- SQL SERVER (Microsoft),
- SQL BASE SERVER,
- Oracle SERVER (Oracle Corporation),
- IBM DB2,
- Informix.
Кожний сервер БД може працювати на певних типах комп'ютерів та мереж. Операційними системами серверів можуть бути MSDOS, (OS/2), Xenix, Unix, Dec VMS. Робочі станції користувачів зазвичай працюють під управління MSDOS, OS/2, Xenix, Unix. Існують можливості змішаного використання різних ОС. Велика частина SQL-серверів може зберігати опис БД в системному каталозі, який зазвичай буває доступний користувачам. Для звернення до цього каталогу використовуються SQL-запити. Реляційні СКБД можуть використовувати інформацію, що зберігається в системному каталозі для оптимізації SQL-запитів.
Посилальна цілісність реляційних БД
Більшість SQL-серверів підтримують посилальну цілісність реляційних БД, що складаються з окремих таблиць, які можуть бути об'єднані на основі загальної інформації.
Розглянемо на наступному прикладі: база даних містить таблицю клієнтів та таблицю замовлень, які пов'язані полем номера клієнта, що містяться в обох таблицях. Оскільки може бути більше одного замовлення від одного клієнта, співвідношення таблиць — «один-до-багатьох». Коли таблиці з'єднані, то таблиця клієнтів є батьківською, а таблиця замовлень — дочірньою. Якщо запис-батько стирається, а відповідні їй дочірні записи — ні, то кажуть, що дочірні записи «осиротіли». Посилальна цілісність означає, що ні в одній таблиці не припустимі записи-«сироти».
Запис може осиротіти трьома способами:
- Батьківський запис видалений;
- Батьківський запис змінений таким чином, що зв'язок між «батьком» та «нащадками» втрачений;
- Введений дочірній запис без відповідного батьківського.
Підтримання посилальної цілісності можливо кількома способами:
- Через ключі, що зберігаються в таблицях БД (батьківські таблиці містять первинні ключі, що представляють собою комбінації зовнішніх ключів, які можуть бути знайдені всередині кожної з дочірніх таблиць).
- Використання приєднаних процедур — процедурна посилальна цілісність. Приєднані програми забезпечують посилальну цілісність за рахунок автоматичного виконання операторів SQL всякий раз, коли зустрічається один з операторів UPDATE/INSERT або DELETE (або забороняється видалення батьківського запису, або стираються всі дочірні записи).
Транзакції та цілісність БД
Транзакція — сукупність логічно взаємопов'язаних запитів, спрямованих на узгоджену зміну деякої множини рядків в одній або декількох таблицях БД. Зазвичай при виконанні транзакцій оновлюється кілька таблиць та індексів, пов'язаних з цими таблицями. Для того щоб гарантувати синхронізацію поновлення та цілісність даних, в серверах зазвичай використовується принцип «все або нічого», що означає, що в БД вносяться або всі оновлення або жодне з них. З цією метою ведеться журнал транзакцій, в якому реєструється інформація про всі затребувані зміни. Цей журнал забезпечує можливість «прокрутити назад» здійснені транзакції та відновити попередній стан БД. Це стає важливо, коли зміни в БД, передбачені в одній транзакції, реалізовані лише частково, наприклад, через збій апаратури.
Узгодженість читання
Характерна для багатокористувацьких СКБД. Для її реалізації сервери володіють засобами автоматичного блокування. Рівні, на яких блокується таблиця під час оновлень:
- вся таблиця;
- сторінка (фізичний блок розміром від 1 до 4 Кбайт, що містить кілька записів).
Тупикові ситуації
Сервери БД повинні мати засоби визначення стану взаємоблокування (dead lock). При виникненні такої ситуації виконання однієї з транзакцій переривається, виводячи іншу транзакцію зі стану вічного очікування. Перервана транзакція після виключення можливості її блокування виконується спочатку.
Схеми оптимізації робіт на мові SQL
Мета оптимізації полягає у забезпеченні якомога більш швидкого отримання відповіді на запит з мінімальним числом звернень до БД Існує два типи оптимізації на мові SQL:
- Оптимізація по синтаксису;
- Оптимізація за витратами;
Оптимізація по синтаксису використовує той факт, що в мові SQL ефективність запиту залежить від того, як він сформульований. В цьому випадку оптимізація залежить від кваліфікації програміста.
При оптимізації за витратами відбувається збір відомостей про БД — числі таблиць, числі рядків, типі даних в кожному рядку, доступності індексування для конкретного стовпця, тощо. Оптимізатор використовує цю інформацію для вироблення найкращого плану обробки запитів.
Переваги методу оптимізації за витратами: завдання визначення найкращого способу виконання запиту перекладається з користувача на процесор БД. Недолік: знаходження оптимального методу само по собі може зайняти багато часу.
Ця стаття не містить . (грудень 2014) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Server baz danih vikonuye obslugovuvannya ta upravlinnya bazoyu danih ta vidpovidaye za cilisnist ta zberezhennya danih a takozh zabezpechuye operaciyi vvedennya vivedennya pri dostupi kliyenta do informaciyi Arhitektura kliyent server skladayetsya z kliyentiv ta serveriv Osnovna ideya polyagaye v tomu shob rozmishuvati serveri na potuzhnih mashinah a dodatkam sho vikoristovuyut movni komponenti SKBD zabezpechiti dostup do nih z mensh potuzhnih mashin kliyentiv za dopomogoyu zovnishnih interfejsiv Mova SQLBilshist SKBD vikoristovuyut movu SQL Structured Query Language mova strukturovanih zapitiv oskilki vona zruchna dlya opisu logichnih pidmnozhin BD Priznachennya SQL stvorennya BD i tablici z povnim opisom yih strukturi vikonannya osnovnih operacij manipulyuvannya danimi taki yak vstavka modifikaciya ta vidalennya danih z tablic vikonannya prostih ta skladnih zapitiv Odna z klyuchovih osoblivostej movi SQL polyagaye v tomu sho z yiyi dopomogoyu formuyutsya zapiti sho opisuyut yaku informaciyu z bazi danih neobhidno oderzhati a shlyahi virishennya ciyeyi zavdannya programa viznachaye sama Zberezheni ta priyednani proceduriIsnuyut rozshireni versiyi movi SQL yaki pidtrimuyut taki rozshirennya yak zberezheni ta rozshireni proceduri a takozh upravlinnya hodom programi cherez rozgaluzhennya ta organizaciyu cikliv Zberezheni proceduri ce poperedno vidkompilovani operatori movi SQL yaki zberigayutsya na serveri bazi danih sho vikoristovuye movu SQL Kliyent zapuskaye zberezhenu proceduru za dopomogoyu komandi EXECUTE lt im ya proceduri gt Takim chinom po merezhi peredayutsya lishe dva slova Oskilki cya procedura vzhe vidkompilovana ta optimizovana serveru ne potribno vitrachati chas na kompilyaciyu ta optimizaciyu Yak zberezheni proceduri zazvichaj vikoristovuyutsya chasto vikonuvani zapiti Priyednani proceduri trigeri podibni zberezhenim proceduram ta vikonuyutsya u vidpovid na podiyi sho vidbuvayutsya v BD Koli z deyakimi dodatkami movi SQL pov yazana priyednana procedura vikonannya cogo operatora zavzhdi zapuskaye cilu seriyu komand sho vhodyat v cyu proceduru Priyednana procedura avtomatichno vikonuye odnu chi bilshe operatoriv movi SQL vsyakij raz koli vikonuye operatori INSERT UPDATE abo DELETE Najvazhlivishe zastosuvannya priyednanih procedur polyagaye v zabezpechenni posilalnoyi cilisnosti Operacijne seredovishe serverivPrikladi serveriv BD SQL SERVER Microsoft SQL BASE SERVER Oracle SERVER Oracle Corporation IBM DB2 Informix Kozhnij server BD mozhe pracyuvati na pevnih tipah komp yuteriv ta merezh Operacijnimi sistemami serveriv mozhut buti MSDOS OS 2 Xenix Unix Dec VMS Robochi stanciyi koristuvachiv zazvichaj pracyuyut pid upravlinnya MSDOS OS 2 Xenix Unix Isnuyut mozhlivosti zmishanogo vikoristannya riznih OS Velika chastina SQL serveriv mozhe zberigati opis BD v sistemnomu katalozi yakij zazvichaj buvaye dostupnij koristuvacham Dlya zvernennya do cogo katalogu vikoristovuyutsya SQL zapiti Relyacijni SKBD mozhut vikoristovuvati informaciyu sho zberigayetsya v sistemnomu katalozi dlya optimizaciyi SQL zapitiv Posilalna cilisnist relyacijnih BDBilshist SQL serveriv pidtrimuyut posilalnu cilisnist relyacijnih BD sho skladayutsya z okremih tablic yaki mozhut buti ob yednani na osnovi zagalnoyi informaciyi Rozglyanemo na nastupnomu prikladi baza danih mistit tablicyu kliyentiv ta tablicyu zamovlen yaki pov yazani polem nomera kliyenta sho mistyatsya v oboh tablicyah Oskilki mozhe buti bilshe odnogo zamovlennya vid odnogo kliyenta spivvidnoshennya tablic odin do bagatoh Koli tablici z yednani to tablicya kliyentiv ye batkivskoyu a tablicya zamovlen dochirnoyu Yaksho zapis batko stirayetsya a vidpovidni yij dochirni zapisi ni to kazhut sho dochirni zapisi osirotili Posilalna cilisnist oznachaye sho ni v odnij tablici ne pripustimi zapisi siroti Zapis mozhe osirotiti troma sposobami Batkivskij zapis vidalenij Batkivskij zapis zminenij takim chinom sho zv yazok mizh batkom ta nashadkami vtrachenij Vvedenij dochirnij zapis bez vidpovidnogo batkivskogo Pidtrimannya posilalnoyi cilisnosti mozhlivo kilkoma sposobami Cherez klyuchi sho zberigayutsya v tablicyah BD batkivski tablici mistyat pervinni klyuchi sho predstavlyayut soboyu kombinaciyi zovnishnih klyuchiv yaki mozhut buti znajdeni vseredini kozhnoyi z dochirnih tablic Vikoristannya priyednanih procedur procedurna posilalna cilisnist Priyednani programi zabezpechuyut posilalnu cilisnist za rahunok avtomatichnogo vikonannya operatoriv SQL vsyakij raz koli zustrichayetsya odin z operatoriv UPDATE INSERT abo DELETE abo zaboronyayetsya vidalennya batkivskogo zapisu abo stirayutsya vsi dochirni zapisi Tranzakciyi ta cilisnist BDTranzakciya sukupnist logichno vzayemopov yazanih zapitiv spryamovanih na uzgodzhenu zminu deyakoyi mnozhini ryadkiv v odnij abo dekilkoh tablicyah BD Zazvichaj pri vikonanni tranzakcij onovlyuyetsya kilka tablic ta indeksiv pov yazanih z cimi tablicyami Dlya togo shob garantuvati sinhronizaciyu ponovlennya ta cilisnist danih v serverah zazvichaj vikoristovuyetsya princip vse abo nichogo sho oznachaye sho v BD vnosyatsya abo vsi onovlennya abo zhodne z nih Z ciyeyu metoyu vedetsya zhurnal tranzakcij v yakomu reyestruyetsya informaciya pro vsi zatrebuvani zmini Cej zhurnal zabezpechuye mozhlivist prokrutiti nazad zdijsneni tranzakciyi ta vidnoviti poperednij stan BD Ce staye vazhlivo koli zmini v BD peredbacheni v odnij tranzakciyi realizovani lishe chastkovo napriklad cherez zbij aparaturi Uzgodzhenist chitannyaHarakterna dlya bagatokoristuvackih SKBD Dlya yiyi realizaciyi serveri volodiyut zasobami avtomatichnogo blokuvannya Rivni na yakih blokuyetsya tablicya pid chas onovlen vsya tablicya storinka fizichnij blok rozmirom vid 1 do 4 Kbajt sho mistit kilka zapisiv Tupikovi situaciyiServeri BD povinni mati zasobi viznachennya stanu vzayemoblokuvannya dead lock Pri viniknenni takoyi situaciyi vikonannya odniyeyi z tranzakcij pererivayetsya vivodyachi inshu tranzakciyu zi stanu vichnogo ochikuvannya Perervana tranzakciya pislya viklyuchennya mozhlivosti yiyi blokuvannya vikonuyetsya spochatku Shemi optimizaciyi robit na movi SQLMeta optimizaciyi polyagaye u zabezpechenni yakomoga bilsh shvidkogo otrimannya vidpovidi na zapit z minimalnim chislom zvernen do BD Isnuye dva tipi optimizaciyi na movi SQL Optimizaciya po sintaksisu Optimizaciya za vitratami Optimizaciya po sintaksisu vikoristovuye toj fakt sho v movi SQL efektivnist zapitu zalezhit vid togo yak vin sformulovanij V comu vipadku optimizaciya zalezhit vid kvalifikaciyi programista Pri optimizaciyi za vitratami vidbuvayetsya zbir vidomostej pro BD chisli tablic chisli ryadkiv tipi danih v kozhnomu ryadku dostupnosti indeksuvannya dlya konkretnogo stovpcya tosho Optimizator vikoristovuye cyu informaciyu dlya viroblennya najkrashogo planu obrobki zapitiv Perevagi metodu optimizaciyi za vitratami zavdannya viznachennya najkrashogo sposobu vikonannya zapitu perekladayetsya z koristuvacha na procesor BD Nedolik znahodzhennya optimalnogo metodu samo po sobi mozhe zajnyati bagato chasu Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2014