Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 11:12, дипломная работа
Пояснительная записка на 47 страниц, 9 рисунков, 5 приложений.
БАЗА ДАННЫХ, INTERBASE, ГРАФИЧЕСКИЙ ИНТЕРФЕЙС, BORLAND C++ BUILDER.
В ходе проделанной работы были рассмотрены реляционные базы данных InterBase. Была изучена история их возникновения и кратко рассмотрены основы создания баз данных в программе IBAdmin.
Также была рассмотрена история возникновения объектно-ориентированного языка С++. На основе платформы Borland C++ Builder 6.0 был разработан графический интерфейс, который позволяет сцепляться с базами данных Inter Base, просматривать их содержимое, выполнять запросы, представлять данные в виде дерева (только для баз данных, содержащих таблицу с административным делением территориальных типов).
Данную работу можно использовать в качестве учебно-методического пособия для изучения реляционных баз данных IBAdmin и написания интерфейса для доступа к ним. Написанную программу можно использовать в качестве наглядного примера.
ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 5
ВВЕДЕНИЕ 6
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
Историческая справка по базам данных 8
Реляционная база данных 11
Базы данных в IBAdmin 12
1.3.1. InterBase и область его применения 13
1.3.2. СУБД InterBase 14
1.3.3. Несколько слов о языке SQL 15
1.3.4. Типы данных, поддерживаемые Interbase 16
1.3.5. Домены 17
1.3.6. Генераторы, триггеры 17
1.3.7. Исключения 18
1.3.8. Управление доступом к данным в InterBase 19
Историческая справка по С++ 20
Основы визуального программирования интерфейса 22
2. ПРАКТИЧЕСКАЯ ЧАСТЬ 27
ЗАКЛЮЧЕНИЕ 39
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 41
ПРИЛОЖЕНИЕ А 42
Классическая реляционная модель данных предполагает, что данные хранились в так называемых плоских таблицах. Фактически данные могут быть организованы и иначе, но пользователи и приложения, обращающиеся к данным, должны работать с данными так, как если бы они размещались в таких таблицах. В упрощенном виде плоская таблица – это таблица, каждая ячейка которой может быть однозначно идентифицирована указанием строки и столбца таблицы. Кроме того, в одном столбце все ячейки должны содержать данные одного простого типа.
Реляционная
модель основана на теории множеств и
математической логике. Такой фундамент
обеспечивает математическую строгость
реляционной модели данных.
Основным направлением в разработке автоматизированных информационных систем в настоящее время является ориентация на использование СУБД, базирующихся на SQL-серверах. В чем же состоят преимущества разработки информационных систем на их основе?
1.
SQL-серверы прямо
2.
Средства разработки для этих
СУБД оптимизированы в
3.
Развитый механизм обработки
транзакций позволяет
4. Использование единого языка доступа к данным (SQL) позволяет упростить переход от одной СУБД к другой.
5.
Обеспечивается
6.
Поддерживается возможность
Рассматриваемая
здесь СУБД InterBase в полной мере удовлетворяет
всем перечисленным требованиям.
InterBase
представляет собой
Сервер баз данных - это программный процесс, который выполняется на узле сети, где расположен главный компьютер и физически расположена сама база данных. Процесс сервера - единственный процесс на любом узле, который может исполнять прямые операции ввода-вывода для файлов базы данных.
Клиенты
посылают запросы серверному процессу,
чтобы выполнить различные
• поиск в базе данных по заданным условиям;
• сравнение, сортировку и предоставление данных в табличном виде;
• изменение хранимых данных;
• добавление новых данных в базу;
• удаление данных из базы данных;
• создание новых базы данных и структур данных;
• выполнение программного кода на сервере;
• передачу сообщения другим клиентам, подключенным в данный момент к серверу.
Серверный процесс является полностью сетевым, он поддерживает запросы на подключение от других узлов сети и тот же самый протокол InterBase прикладной программы, что и клиентские процессы. Несколько клиентов могут быть связаны с многопоточным процессом сервера одновременно.
Сервер регулирует доступ к отдельным записям данных в пределах базы данных и обеспечивает монопольный доступ к записям, когда клиенты выдают запросы на изменение данных в записях.
Отличительными качествами InterBase являются:
•высокая производительность и надежность сервера при минимальных требованиях к техническим средствам;
•поддержка стандарта SQL-92, обеспечивающая переносимость приложений;
•относительно низкая стоимость продукта;
•простота установки и поддержки сервера;
•удобный и не требующий специальной подготовки механизм администрирования базой данных.
Все
это делает InterBase прекрасным выбором
для реализации корпоративных систем
малого и среднего масштаба (с количеством
пользователей в несколько десятков).
При реализации очень крупных проектов
(с сотнями или более пользователей) стоит,
наверное, рассмотреть более мощные серверы
- типа Oracle или Informix.
Базы
данных Interbase, как, впрочем, и остальные
БД в формате SQL, очень сильно отличаются
от локальных БД (локальная база данных
- база данных, размещенная на одном или
нескольких носителях на одном компьютере).
Первое, что бросается в глаза: база данных
Interbase хранится в одном файле, в котором
содержатся все таблицы, индексы и другие
объекты. Рекомендуется, хотя и не обязательно,
использовать для файлов БД Interbase расширение
gdb.
Так как Interbase — это сервер SQL, то понятно, что создавать, удалять и модифицировать как саму БД, так и ее объекты следует при помощи запросов SQL.
Interbase
поддерживает три диалекта SQL (1, 2 и 3): диалект
1 совместим с вариантом языка SQL, поддерживаемым
Interbase 5.6 и более ранними версиями. Диалект
3 совместим со стандартом SQL-92 и обеспечивает
ряд новых возможностей. Диалект 2 — отладочный:
при его использовании выдаются предупреждающие
сообщения, если встречаются возможности,
характерные только для диалекта 3.
Interbase поддерживает десять типов данных. Ниже приведены их краткие характеристики и описание.
Blob. Сокращение от Binary Large Object (большой двоичный объект). Этот тип предназначен для хранения больших объемов текстовой информации, графических данных, видеоклипов, оцифрованного звука и тому подобных данных. Какие именно данные хранятся в объекте Blob, можно узнать, проверив его подтип. Подтип объекта типа Blob может иметь одно из шести значений: 0 (неструктурированные данные или данные неопределенного типа), 1 (текст), 2 (двоичное языковое представление), 3 (список управления доступом), 4 (зарезервировано), 5 (закодированное описание метаданных таблицы), 6 (описание транзакций, в которых используется обращение к нескольким БД, и которые закончились неудачей). Подтипы от 2 до 6 — экзотические, обычно используются только подтипы 0 и 1. Можно определить и свои собственные подтипы.
В этом случае подтип должен иметь отрицательное значение (в пределах от -32 678 до -1). Все положительные значения подтипа зарезервированы для Interbase.
Данные типа Blob имеют переменный размер, но не более 64 Кб, так как они хранятся в сегментах. В самой таблице в соответствующем поле хранится 64-битовое значение, ссылающееся на конкретное значение типа Blob (Blob ID). Кроме того, Blob ID может ссылаться на таблицу указателей, каждый из которых в свою очередь ссылается на значение типа Blob.
CHAR(n) или CHARACTER(n). Строка фиксированной длины в n символов. Длина строки может быть от 1 до 32 767 байтов.
DATE. Может содержать значение даты в диапазоне от 1 января 100 года нашей эры до 29 февраля 32 768 года. Размер — 32 бита.
DECIMAL (точность, размер). Число с десятичной точкой. Общее количество цифр числа задается значением аргумента точность (десятичная точка в этом значении не учитывается), а количество цифр после десятичной точки указывается аргументом размер. Например, объявление DECIMAL(5,2) задает значение в формате ddd.dd. В данных сохраняется как минимум количество знаков, указанных аргументом точность. Если значение имеет меньшее количество знаков, сохраняется столько знаков, сколько указано. Аргумент точность может принимать значение от 1 до 18, в то время как аргумент размер может принимать значение от 0 до 18. Понятно, что значение аргумента размер должно быть меньше значения аргумента точность. В зависимости от конкретных значений объекты этого типа могут занимать в памяти 16, 32 или 64 бита.
DOUBLE PRECISION. Число с плавающей точкой двойной точности, состоящее из 15 цифр. Диапазон возможных значений (по модулю): от 2.225х10-308 до 1.797х10308. Размер — 64 бита.
FLOAT. Число с плавающей точкой , состоящее из 7 цифр. Диапазон возможных значений (по модулю): от 1.175х10-38 до 3.402х1038. Размер — 32 бита.
INTEGER. Целое со знаком, занимающее в памяти 32 бита (длинное целое). Диапазон представляемых значений: от -2 147 483 648 до 2 147 483 647.
NUMERIC (точность, размер). Соответствует типу DECIMAL, за исключением того, что в базе данных будет храниться столько цифр, сколько указано аргументом точность.
SMALLINT. Целое со знаком, занимающее в памяти 16 бит. Диапазон представляемых значений: от -32 768 до 32 767.
TIME. Значения этого типа представляют время от 00:00:00.0000 до 23:59:59.9999. Размер значений этого типа — 32 бита.
TIMESTAMP. Достаточно распространенный тип данных в БД разных типов, представляющий одновременно и дату, и время. Размер — 64 бита. Диапазоны значений времени и даты соответствуют типам DATE и TIME, описанным ранее.
VARCHAR(n),
или CHAR VARYING(n), или
CHARACTER VARYING(n). Строка переменной длины.
В памяти будет сохранено ровно столько
символов, сколько содержит текущее значение.
Аргумент n может принимать значения от
1 до 32 765.
Если
база данных содержит много таблиц,
в которых часто используются одинаковые
определения полей, можно воспользоваться
доменами. Домен (Domain) — это глобальное
в рамках данной БД определение поля, которое
может применяться в операторах создания
и модификации таблиц вместо типа данных
для поля.
Генератор (Generator) — это механизм, формирующий уникальное число, после чего это число вставляется (например, при помощи триггера) в указанное поле при операциях вставки или обновления записей
Использование генератора гарантирует, что вы всегда получите уникальное значение, независимо от количества клиентов и порядка их доступа к БД.
В базе данных Interbase можно создать любое количество генераторов.
Кроме прочего, генераторы могут применяться и в триггерах. Триггер (Trigger) — это специальным образом заданная процедура, связанная с определенной таблицей. Триггер выполняет указанные действия с записью - вставляемой, обновляемой или удаляемой. Триггер никогда не вызывается явно. Вместо этого в указанных при создании триггера ситуациях автоматически выполняются заданные действия.
Триггеры позволяют:
• Контролировать входные данные, обеспечивая повышение достоверности информации и ее логическую непротиворечивость.
• Повысить независимость прикладного программного обеспечения. Изменение схемы контроля в триггере автоматически отражается во всех приложениях, не требуя ни внесения в них каких-либо изменений, ни их перетрансляции.
• Обеспечить автоматическую регистрацию изменений в таблицах. Приложение может хранить полный протокол изменений, используя триггеры, которые включаются при каждом изменении таблицы.
• Выполнять синхронные изменения в нескольких таблицах, обеспечивая как логическую целостность данных, так и автоматическое поддержание соответствия первичных и агрегированных данных.
•
Автоматически уведомлять об изменениях
в базе данных, используя события,
создаваемые триггерами.
Для обработки ошибок в триггерах используются исключения.
Исключение (Exceptions) — это объект базы данных Interbase, представляющий собой именованное сообщение об ошибке. Исключения используются для отображения сообщения об ошибке, происшедшей в теле триггера.
Как
и остальные объекты БД, исключения
хранятся на стороне сервера. Это
позволяет организовать систему обработки
ошибок, минимально затрагивая клиентские
приложения.
Выборка данных. Команда SELECT. Команда SELECT предназначена для выборки данных из базы. С ее помощью можно получить данные, удовлетворяющие заданным условием из одного или нескольких связанных объектов базы. Такими объектами являются, прежде всего, таблицы базы данных. Выбранные данные могут быть агрегированы, отсортированы, с ними можно произвести ряд предварительных вычислений.
Возможна выборка таблицы целиком, выборка заданного списка полей таблицы.
В ряде случаев уже выбранные данные нуждаются в дополнительной обработке. Часть такой обработки можно выполнить в рамках SQL запросов.
Прежде всего, это упорядочение данных. Полученные данные могут быть отсортированы по значениям одного или нескольких столбцов запроса. Сортировка задается конструкцией ORDER BY.
Информация о работе Организация интерфейса для работы с базами данных