ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.11.2019
Просмотров: 934
Скачиваний: 2
Основні пропозиції мови 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 можна використовувати всі переваги СУБД на будь яких пристроях, від ПК до Телевізорів та телефонів.