Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие по лабораторной работе 3

.pdf
Скачиваний:
61
Добавлен:
21.03.2016
Размер:
680.99 Кб
Скачать

Разработка базы данных в СУБД SQLite

Введение

Если рассмотреть движки баз данных не по рейтингу их популярности, а по их компактности. Тогда на первом месте будет стоять не монструозный Oracle и даже не MySQL, который позиционируется как довольно "легковесная" СУБД. Пальму первенства получит СУБД, название которой SQLite. Само название говорит о том, что это весьма облегчѐнный вариант SQL-движка (SQLite = SQL + Lite, от английского "light" - лѐгкий). Использование SQLite будет разумным во многих случаях. Например, если требуется написать очень компактную и не требовательную к ресурсам компьютера программу для работы с простыми базами данных.

Конечно до Oracle или даже до PostgreSQL SQLite далеко. Но движок SQLite почти полностью поддерживает стандарт SQL92, хотя и с некоторыми оговорками. Нет возможности производить вложенные транзакции, не полностью реализована поддержка триггеров, а также некоторые мелкие нюансы поддержки конструкций ALTER TABLE, FOREIGN KEY и некоторых других. Подробнее об этом можно прочитать на сайте проекта.

SQLite - однопользовательский движок, идеально подходящий для встраивания в различные программы, не требующие распределѐнной работы с базой данных. В связи с этим полностью отсутствует встроенная поддержка технологии клиент-сервер (именно поэтому используется термин SQL-движок, а не SQL-сервер). И, соответственно, нет возможности использовать стандартные для SQL92 операции для работы с правами пользователей - GRANT и REVOKE. Как говорят сами разработчики, отсутствие поддержки многопользовательской работы - достаточно важная часть идеологии проекта. Зато, как встроенный в приложение движок, SQLite не требует кропотливой начальной настройки, зачастую необходимой для подавляющего большинства серверных движков.

База данных SQLite физически размещается в одном-единственном файле, так же, как это делается, скажем, в Interbase/Firebird. При этом максимальный размер файла ограничивается двумя терабайтами, но нужно помнить, что не все файловые системы поддерживают размещение файлов такого размера. Хотя на практике вряд ли удастся "раскормить" базу до таких гигантских габаритов.

К удалению данных SQLite тоже подходит по-своему. Даже если удалить половину всех данных в базе, размер файла, в котором она содержится, не изменится ни на байт. Движок SQLite не очищает записи, а просто помечает их как удалѐнные. Поэтому разработчиками предусмотрена специальная команда VACUUM, которая приводит к тотальной очистке всей базы данных.

Не последним пунктом в пользу выбора того или иного движка для работы с базами данных является его скорость. На сайте разработчиков можно найти сравнительные характеристики быстродействия SQLite, MySQL и PostgreSQL. Версии там, правда, сравниваются не самые свежие. По результатам практически всех тестов SQLite делает своих клиент-серверных соперников "одной левой", причѐм разбежки в скорости иногда впечатляют: некоторые операции SQLite выполняет в 2-3 раза быстрее, чем MySQL, а для PostgreSQL эта цифра доходит до 20 раз. Впрочем, это и не удивительно, так как клиент-серверные движки просто

даже по определению более медлительны. Проигрывает же конкурентам SQLite только в двух "номинациях": при выполнении операций CREATE INDEX и DROP TABLE. Впрочем, разрыв в этих тестах не настолько значителен, а операции эти выполняются не так часто, чтобы говорить о критичности этих отличий в скоростях. В целом, SQLite показывает более высокую скорость, и это совсем не плохо.

Таким образом, использование SQLite в качестве встроенного SQL-движка куда более предпочтительно, чем использование в аналогичных целях MySQL или особенно PostgreSQL. Последний, к тому же, очень-очень сильно отличается от SQLite по своим размерам, хотя, конечно, значительно выигрывает по возможностям.

Последнее время, когда появились бесплатные версии даже гигантов рынка СУБД вроде Oracle, DB2 или Microsoft SQL Server, всѐ меньше коммерческих СУБД выдерживает борьбу с ними. Поэтому SQL-движки с открытым исходным кодом завоѐвывают всѐ большую популярность среди разработчиков и пользователей. SQLite в этом смысле не исключение - его исходный код открыт, и не просто открыт. Дело в том, что SQLite распространяется по лицензии public domain. Т.е. обычно программное обеспечение с открытым исходным кодом распространяется свободно, однако авторские права на сам продукт и на его исходный код сохраняются за его разработчиками. Для public domain-продуктов это правило не действует: и исходный код, и продукт не защищены авторскими правами и могут быть использованы кем угодно в каких угодно целях.

Помимо открытости (и отчасти вследствие еѐ), достоинством SQLite является надѐжность: разработчики утверждают, что протестировано на работоспособность и устойчивость более 95% кода SQLite.

Система управления базами данных "SQLite" является программой предоставляемой на условиях "открытого исходного кода" и доступна на сайте www.sqlite.org.

"SQLite" отличает от большинства других двигателей баз данных - простота. Простота системы дает следующие преимущества:

Простота администрирования Легкость в работе

Система проста во внедрении в ваши программы Простота в настройке и поддержке

Простота системы не является единственным достоинством системы, "SQLite" также очень надежная система, стойкая к ошибкам, дающая меньшее количество ошибок при аппаратных сбоях. Вместе с тем "SQLite" очень быстрая система работы с базой данных.

Основные характеристики системы:

Поддержка языка запросов версии SQL92 (без особенностей типа процедур)

База данных сохраняется в одиночном файле на диске Файл базы данных можно свободно разделить между процессами

Поддерживает базы данных размером до 2-х терабайт (241 байт) Размеры строковых данных и BLOB данных ограничены только памятью Минимальный код на С/С++ Простая и удобная библиотека на С/С++

Нет никакой внешней зависимости от других библиотек

2

Поддержка операционных систем WINDOWS (практически все версии начиная с WIN95), *unix

Однако простота системы имеет и обратную сторону, приходится жертвовать некоторыми характеристиками: высоким параллелизмом процессов, богатством встроенных библиотечных функций, ограниченность языка SQL и другие. Система "SQLite" не предназначена, чтобы быть двигателем базы данных предприятия, она не разработана, чтобы конкурировать с Oracle или PostgreSQL или аналогичными системами управления баз данных.

Такие характеристики системы накладывают ограничения на область применения "SQLite". Наиболее вероятным использование программы представляется в следующих областях:

прикладные программы с небольшими базами данных, и приложений не требующих администрирования базы данных

для обучения языку SQL

использование "SQLite" как двигатель базы данных небольших и средних по объему и посещаемости интернет сайтов.

для создания временной базы данных в программах имеющих множество данных, если эти данные требуется сортировать, или делать выборки по условиям, что проще сделать это с помощью SQL.

3

Инструкция по работе с программой

1. Создание новой базы данных

На рисунке 1 показано окно программы SQLite. Для создания новой базы данных необходимо выбрать File->Create Database, или нажать крайнюю левую кнопку на панели.

Рисунок 1 – Окно программы

В появившемся окне (рисунок 2) нужно ввести путь и имя файла, и псевдоним базы данных.

4

Рисунок 2 – Создание БД

2. Создание таблиц

Создать новую таблицу можно: выбрав в меню соответствующий пункт, нажав кнопку на панели, или в выпадающем списке по правой клавише мыши на названии текущей базы данных (рисунок 3).

Рисунок 3 – Создание новой таблицы

5

Создание атрибутов (столбцов) таблицы осуществляется кнопкой «Add» (рисунки 4, 5). Для столбца обязательно указать его имя и тип.

Рисунок 4 – Создание атрибутов таблицы

Рисунок 5 – Определение таблицы

6

Первичный ключ для таблицы указывается на вкладке «Indexes» (рисунок 6). После нажатия кнопки «Add» в появившемся окне нужно проставить галочку «Primary» и выбрать нужный атрибут. Для удобства заполнения рекомендуется поставить галочку «AutoIncrement» - автоматическое заполнение ключевого поля.

Рисунок 6 – Определение первичного ключа

Необходимо указать имя таблицы и нажать «Apply».

Таблицу со всеми полями так же можно создать, написав SQL код во вкладке «SQL». Как выглядит такой код для созданных таблиц можно увидеть на вкладке «DDL» (рисунок 7).

7

Рисунок 7 – SQL код создания таблицы

3. Создание связей

Поместить таблицу на поле «Main» можно перетащив ее из списка справа (рисунок 8).

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

8

Рисунок 8 – Поле «Main»

Рисунок 9 – Создание связи

Данные в таблицу вносятся на вкладке «Date» (рисунок 10). Для добавления строки необходимо нажать на «+».

9

Рисунок 10 – Данные в таблице

4. SQL-запросы

Вкладка «SQL» позволяет создавать различные запросы SQL. Здесь можно и обращаться к существующим таблицам (рисунок 11), и создавать новые (рисунок

12).

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]