Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Выбор СУБД






Решение данной проблемы является очень важным, так как именно от СУБД зависит процесс обработки данных, объём получаемой клиентом информации, загруженность трафика сети, защищённость данных и многое другое.

Существует два типа серверных СУБД:

· файл-серверные;

· клиент-серверные.

Файл-серверные СУБД. Они работают по следующему принципу: на машине-клиенте установлена данная СУБД, а на сервере хранятся все данные; клиент создаёт запрос, СУБД, принимая его, отправляет запрос серверу, получает по сети весь обрабатываемый файл, записывает его в оперативную память, а затем выполняет запрос пользователя.

Клиент-серверные СУБД. В отличие от файл-серверных, данные СУБД не скачивают весь обрабатываемый файл на клиентскую машину, а лишь посылают серверу запрос пользователя. СУБД, установленная теперь уже на сервере, обрабатывает полученный запрос, проверяет права пользователя на данные действия, а затем выполняет поставленную ей задачу. Назад возвращается лишь результат запроса, т.е. какая-то таблица или другая информация, будь то текст, графика, анимация или видео.

Безусловно, файл-серверные СУБД нам не подходят. Нам незачем записывать по несколько копий данных в пределах, например, одного данного компьютерного класса.

Теперь осталось выбрать конкретную СУБД. Здесь важными показателями являются такие, как стоимость, свободный доступ, уровень защиты и другие. Рассмотрим несколько различных СУБД. Экспертная оценка СУБД приведена в таблице 2.1.

Таблица 2.1. Экспертная оценка СУБД

Характеристики MySQL PostgreSQL MaxDB Firebird
Версия MySQL-5.0 PostgreSQL 8.x MaxDB Version 7.5 Firebird 1.5.x
Лицензия двойная: GPL и Commercial BSD двойная: GPL и Commercial IDPL & IPL
Совместим с Linux Да Да Да Да
Совместимость c SQL средняя высокая средняя высокая
Скорость высокая средняя средняя высокая
Стабильность очень высокая высокая средняя высокая
Целостность данных да да да да
Механизм обеспечения безопасности да да да да
Поддержка схем данных да да да нет
Поддержка вложенных запросов да да да да
Триггеры да да да да
Программные интерфейсы ODBC, JDBC, C/C++,.NET/Mono, ADO.Net, OLEDB, Delphi, Perl, Python, PHP, Embedded (C precompiler), Embeded in Java ODBC, JDBC, C/C++, Embeded SQL (in C), Tcl/Tk, Perl, Python, PHP ODBC, JDBC, C/C++, Precompiler (Embedded SQL), Perl, Python, PHP ODBC, JDBC, C/C++, PHP, Python, Perl, Kylix, Delphi,.NET/Mono, ADO
Транзакции да да да да
Ограничение по внешним ключам да да да да
Балансировка нагрузки да нет нет нет
Табличные пространства да нет нет нет
Поддержка режима работы 24/7 да да/нет да да

 

MySQL

MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях Hughes Technologies Mini SQL (mSQL).

Основные положительные стороны пакета MySQL.

· Многопоточность. Поддержка нескольких одновременных запросов.

· Оптимизация связей с присоединением многих данных за один проход.

· Записи фиксированной и переменной длины.

· ODBC драйвер в комплекте с исходником

· Гибкая система привилегий и паролей.

· До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.

· Поддержка ключевых полей и специальных полей в операторе CREATE.

· Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.

· Интерфейс с языками C и perl.

· Основанная на потоках, быстрая система памяти.

· Утилита проверки и ремонта таблицы (isamchk).

· Все данные хранятся в формате ISO8859_1.

· Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.

· Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.

· Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.

· Легкость управления таблицей, включая добавление и удаление ключей и полей.

Наиболее простой способ работы с MySQL сводится к использованию программы MySQL. Это клиентская часть СУБД MySQL. Можно выполнять команды SQL непосредственно из командной строки системы unix или из интерактивного режима MySQL. СУБД MySQL имеет библиотеку C API. Ее можно использовать для запросов к базе данных, вставки данных, создания таблиц и т.п. C API поддерживает все функции MySQL.

Язык perl поддерживается сразу двумя способами:

· Портирован интерфейс с perl из mini-SQL, разработанный Андреасом Коенигом

· Есть модуль perl DBD

Также доступен 32-битный ODBC драйвер для MySQL. Он позволяет запрашивать и получать данные из других источников с поддержкой ODBC.

СУБД MySQL предоставляет в Ваше распоряжение подмножество языка SQL, соответствующее спецификации ANSI SQL 92.

Основные цели MySQL - быстродействие и ошибкоустойчивость. Добавление транзакций принесет значительное быстродействие и повышение сложности. В настоящее время имеется проект, который должен дать подобные функциональные возможности. Это, вероятно, будет выполнено, с помощью введения атомарной модификации нескольких таблиц сразу.

Ядро, на котором сформирован MySQL - набор подпрограмм, которые использовались в высокотребовательном окружении много лет. В то время как MySQL все еще находится в разработке, это уже предоставляет богатый и полезный функциональный набор.

СУБД MySQL использует специальную базу данных для предоставления прав доступа к своим базам данных. Эти права могут базироваться на именах серверов и/или пользователей и предоставляться для одной или нескольких баз данных. Пользовательские аккаунты могут быть снабжены паролями. При обращении к базе данных, пароль шифруется. Поэтому он не может быть перехвачен и использован посторонним.

Зашифрованный пароль сохраняется в таблице пользователей ('user').

· При установлении соединения сервер посылает случайное число клиенту.

· Клиент шифрует пароль, чтобы получить то, что имеет сервер (он хранит пароли в зашифрованном виде) и вычисляет число из полученного с сервера случайного числа и зашифрованного пароля. Это число отсылается на сервер.

· Сервер вычисляет число из сохраненного в зашифрованном виде пароля и сгенерированного случайного числа. Если это число совпадет с тем, которое прислал клиент, связь устанавливается.

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

Кроме того, MySQL имеет довольно высокую надёжность и распространяется бесплатно. От PostgreSQL пришлось отказаться, т.к. предполагается, что на машинах, где будет работать наша программа, установлена операционная система Windows.

Включает в себя таблицы:

· Приходный документ;

· Поставщики;

· Договор с поставщиками;

· Поступление товара;

· Автотранспорт;

· Покупатели;

· Отпуск товара;

· Расходный документ;

· Транспортировка;

· МЦ;

· Карточка МЦ;

· Перемещение;

· Новое место;

· Место хранения;

· Габариты

В созданной базе данных вся информация хранится в 15 таблицах. Схема данных представлена на рисунке 2.4.

В таблице «Приходный документ» хранится информация о поступлении материалов, которая обращается к справочнику: «Поставщик» для выбора из списка поставщиков.

В таблице «Накладная на внутреннее перемещение» содержится информация о дате перемещения, старое место, код товара.

В таблице «Карточка МЦ» содержится информация о наименовании МЦ, дате составления, МОЛ, количестве товара, номере карточки, коде товара.

В таблице «Поставщики» содержится информация о поставщике, его адрес и номер договора.

В таблице «Расходный документ» содержится информация о дате продажи, покупателе, номере грузовика и номере накладной продажи.

В таблице «МЦ» содержится информация о коде товара, идентификационном номере, наименовании товара, технических характеристиках, единице измерения, сроке хранения, наименовании места хранения.


 

Рис. 2.4 Даталогическая модель







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.