Содержание
Введение3
Основная часть5
1. Технико-экономическая характеристика предметной области и предприятия5
2. Основные системы автоматизации для банков10
Заключение23
Глоссарий24
Список использованных источников25
Приложения26
Выдержка из текста работы
2.Практическая часть: создать базу данных (предметная область — нотариальная контора) из связанных таблиц, разработать клиентское приложение для работы с созданной базой. В качестве среды разработки использовать Borland Delphi. Приложение должно обладать следующими возможностями: просмотр текущих записей, добавление/удаление, поиск и сортировка данных.
Сроки выполнения работы по графику:
1. Теоретическая часть — 15% к 9 неделе.
2. Практическая часть — 85% к 14 неделе.
3. Защита — 100% к 17 неделе.
Требования к оформлению:
1. Расчетно-пояснительная записка курсового проекта должна быть представлена электронной и твердой копиях.
2. Объем отчета должен быть не менее 20 машинописных страниц без учета приложений.
3. РПЗ подписывается у ответственного за нормоконтроль.
Руководитель работы _________________
Исполнитель____________________
Дата выдачи «_____» ___________ 2011 г.
РЕФЕРАТ
база данные delphi
КУН Е.В. СОЗДАНИЕ БАЗЫ ДАННЫХ ДЛЯ ПРЕДМЕТНОЙ ОБЛАСТИ «НОТАРИАЛЬНАЯ КОНТОРА»: Курсовой проект/ ДИТИ, №230105.65-07 Димитровград, 2011.—43 стр., рис. 11, табл. 0, библ. назв.8, приложений 1.
Ключевые слова: БАЗА ДАННЫХ, SQL-ЗАПРОСЫ, DELPHI, ПРЕДМЕТНАЯ ОБЛАСТЬ.
Объект исследования — базы данных.
Цель проекта — приобретение практических навыков по разработке баз данных и построению их моделей, практическое освоение методов разработки приложений — базы данных в среде визуального проектирования Borland Delphi 7.
Вывод: мной проявлена способность решения задач автоматизации по организации информационных процессов с целью повышения эффективности работы предприятия. Создан интерфейс для добавления, удаления, сортировки и поиска данных.
Эффективность деятельности любого предприятия во многом зависит от объема реализуемой ею продукции, работ и услуг. При осуществлении деятельности на предприятии производится обработка и хранение большого количества информации, связанной не только с продажами, заказами реализуемой продукции, но и с учетом персонала предприятия. В связи с этим для надежного функционирования организации, необходимо вести систематический и непрерывный учет, как реализацией продукции, так и персонала организации.
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения. Такая система должна: обеспечивать получение общих и/или детализированных отчетов по итогам работы, позволять легко определять тенденции изменения важнейших показателей; обеспечивать получение информации, критической по времени, без существенных задержек также выполнять точный и полный анализ данных.
Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать возможности персональной ЭВМ. Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер».
Проблема обеспечения защиты информации является одной из важнейших при построении надежной информационной структуры учреждения на базе ЭВМ. Эта проблема охватывает как физическую защиту данных и системных программ, так и защиту от несанкционированного доступа к данным, передаваемым по линиям связи и находящимся на накопителях, являющегося результатом деятельности как посторонних лиц, так и специальных программ-вирусов. Таким образом, в понятие защиты данных включаются вопросы сохранения целостности данных и управления доступа к данным (санкционированность).
Технологический аспект данного вопроса связан с различными видами ограничений, которые поддерживаются структурой СУБД и должны быть доступны пользователю. К ним относятся: ограничение обновления определенных атрибутов с целью сохранения требуемых пропорций между их старыми и новыми значениями, ограничения, требующие сохранение значений поля показателя в некотором диапазоне, ограничения, связанные с заданными функциональными зависимостями.
Целью разработки системы управления организацией, является упрощение процедуры поиска, добавления, удаления, изменения информации о сотрудниках.
Сложность организации и структуры данных обусловила появление баз данных и систем управления базами данных (СУБД).
Первые СУБД появились в конце 60-х годов, а в настоящее время на рынке информационных технологий насчитывается большое множество таких программ для разных типов компьютеров и операционных систем. Одна из идей современных информационных технологий носит название «концепция баз данных» и формулируется следующим образом: данные должны быть организованы в базы данных с целью адекватного отражения реального объекта и обеспечения информационных нужд пользователей. Само понятие база данных (database) формулируется как «поименованная и организованная (структурированная) совокупность взаимосвязанных данных, которые отражают состояние объектов конкретной предметной области и находятся под центральным программным управлением». База данных удерживает такой минимальный излишек информации, который позволяет удовлетворить запросы каждого из многочисленных пользователей. Данные представлены совокупностью файлов (таблиц). В широком же смысле база данных есть любая упорядоченная совокупность данных.
Сам термин «база данных» был введен неизвестным автором в 1963 г. в англоязычной литературе (data base). В 70 — х годах этот термин стали писать через дефис (data-base), а потом одним словом (database).
Свойства базы данных были сформулированы Дж. Мартином:
1. многоразовое использование: одни и те же данные могут использоваться многими пользователями;
2. простота обновления (возможность внесения изменений в базу с минимальными затратами);
3. быстрый поиск и получение необходимой информации по запросу;
4. уменьшение избыточности (новые задачи должны получать данные из существующей базы, а не путем их повторного ввода);
5. защита от несанкционированного доступа к данным.
6. максимальная независимость от прикладных программ: изменения в структуре базы данных не должны по возможности приводить к перезаписи пакета программ.
7. защита от уничтожения и искажения информации (некомпетентного пользователя, злоумышленных действий, сбоев и конфликтных ситуаций).
Рассмотрим еще одно понятие, которое ввел в 1970 году Кодд — модель данных — отражение связи между объектами. Более точное определение этого понятия звучит следующим образом: «модель данных (data model) — это система взаимосвязанных типов объектов, операторов и правил обеспечения целостности, создающая абстрактную структуру, которую поддерживает система управления базой данных; это совокупность правил прохождения структур данных в базе данных, операций над ними, а также ограничений целостности, которая определяет допустимые связи и значения данных, последовательность их изменения.
Выражаясь проще, это формализованное описание информационных структур и операций над ними программными и математическими средствами. Создание базы данных должно начинаться с построения информационной модели. Сущность построения такой модели заключается в структурировании данных и выявлении взаимосвязей между ними без учета особенностей их реализации. Далее строится концептуальная модель, т.е. модель решаемых задач на объекте, после чего концептуальная модель преображается в модель данных для выбранной СУБД. В одной СУБД могут применяться различные структуры и модели данных. Логическая модель отражается в физической памяти. Превращением концептуальной структуры в форму, удобную для запоминания или поиска, занимается компьютер. Такая внутренняя структура данных называется физической структурой. Она определяет размещение данных, методы доступа и технику индексирования.
Различают иерархическую, сетевую и реляционную логические модели данных в зависимости от способа представления взаимосвязей между объектами.
В 60-х годах, когда еще не было персональных компьютеров, применяли иерархическую и сетевую модели данных, а в начале 70-х годов появилась реляционная модель.
В иерархической модели взаимосвязи между объектами отражаются по принципу иерархии типов объекта в виде связанного графа, вершины которого размещены на разных иерархических уровнях. Самая высокая вершина называется корнем, а остальные, находящиеся на нижних уровнях — подчиненными. Корень не подчиняется ни одной вершине. Все остальные вершины связаны с одной, и только одной вершиной, которая размещена на более высоком уровне.
В сетевой модели понятие главного и подчиненных объектов иное, чем в иерархической модели: любой объект здесь может быть и главным, и подчиненным; каждый объект может участвовать в любом количестве взаимосвязей. Данные этой модели представляются при помощи записей и связей.
Реляционная модель представляет данные в виде двухмерной таблицы. Табличная структура данных отражает отношения между реальными объектами и их характеристиками. Поиск и обработка записей не зависят от организации хранения данных в памяти компьютера. Основной принцип, на котором основана реляционная структура, — получение из таблицы необходимых отношений и формирование новых. На основе первичной таблицы при помощи логических операций формируется новая таблица соответствующей структуры.
В реляционных моделях выделяют следующие типы объектов: таблицы (отношения), атрибуты (столбцы) и домены (допустимые значения атрибутов). Объекты и взаимосвязи между ними представлены при помощи таблиц. Одна таблица представляет один объект и состоит из столбцов и строк. Каждая строка таблицы представляет собой одну запись, а каждый столбец — одно поле записей. Информация в реляционных базах данных сохраняется в таблицах, связь между которыми осуществляется путем совладения значений одного или нескольких полей. Понятие «файл» в обработке данных можно ассоциировать с одной таблицей, а базу данных можно рассматривать как набор таблиц. Файлы (т.е. таблицы) подвергаются классической обработке — обновлению основного файла.
Итак, управление базами данных в компьютере осуществляют программные средства (СУБД (database management system)) [1].
СУБД представляют собой совокупность программных и языковых средств общего или специализированного назначения, необходимых для создания баз данных на машинных носителях, поддержания их в актуальном состоянии и организации доступа к ним различных пользователей в условиях принятой технологии обработки данных.
СУБД — это управляющие программы, которые обеспечивают все манипуляции с базами данных: создание базы, ее ведение, ее использование многими пользователями и др., т.е. реализуют сложный комплекс функций по централизованному управлению базой данных и обслуживают интересы пользователей.
СУБД — это обычная программная оболочка, которая осуществляет связь между базой данных и пользователем. Она обеспечивает контроль защиты и целостности данных, доступ к данным, обработку, формирование отчетов, запросов и др. Каждая СУБД функционирует в своей языковой среде. Именно с помощью языковых средств реализуются заложенные функциональные возможности СУБД и удовлетворяются потребности как программистов, так и обычных пользователей. В современном интерфейсе в СУБД языковые средства применяются в неявном виде, т.е. команды в классическом виде не отображаются.
Современные СУБД состоят из трех основных частей: диалоговые средства пользователя для работы с базой данных; средства для разработки приложений пользователя; дополнительные средства для разработки приложений. В настоящее время имеется более 50 типов СУБД. Одной из наиболее популярных является Microsoft Access, которая входит в комплект MS Office.
MS Access — это реляционная СУБД, основанная на технологии организации и обработки данных в системе по типу «клиент-сервер» для корпоративных баз данных. Ее можно применять также в сети и локально.
Архитектура клиент-сервер обладает рядом преимуществ:
1. обеспечивается более широкий доступ к существующим базам данных;
2. повышается общая производительность системы: поскольку клиенты и серверы находятся на разных компьютерах, их процессоры способны выполнять приложения параллельно. Настройка производительности компьютера с сервером упрощается, если на нем выполняется только работа с базой данных;
3. снижается стоимость аппаратного обеспечения; достаточно мощный компьютер с большим устройством хранения нужен только серверу — для хранения и управления базой данных;
4. сокращаются коммуникационные расходы. Приложения выполняют часть операций на клиентских компьютерах и посылают через сеть только запросы к базам данных, что позволяет значительно сократить объем пересылаемых по сети данных;
5. повышается уровень непротиворечивости данных. Сервер может самостоятельно управлять проверкой целостности данных, поскольку лишь на нем определяются и проверяются все ограничения. При этом каждому приложению не придется выполнять собственную проверку;
Реляционная модель этой СУБД ориентирована на 32-разрядные микропроцессоры. Access может выступать в качестве клиента или сервера по отношению к другим приложениям, например, MS Word, MS Excel и др. В этой системе можно пользоваться практически всеми средствами операционной системы Windows. Применяется интерфейс MDI (Multiple Document Interface — «многооконность»). Эта СУБД имеет все необходимые средства для выполнения трех основных типов функций: определение данных; обработка данных; управление данными. Access воспринимает множество различных форматов данных включая файловые структуры других СУБД — dBASE, FoxPro, Paradox и др. Имеется поддержка стандарта ODBC. В Access входят специальные программы: «Конструктор», «Мастер», «Построитель выражений», «Маска ввода», что позволяет неопытному пользователю с легкостью создавать различные базы данных.
Если в базе нет никаких данных (пустая база), то это все равно полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все-таки есть — это структура базы. Она определяет методы занесения данных и хранения их в базе. Простейший «некомпьютерный» вариант базы данных — деловой ежедневник, в котором каждому календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от записных книжек, рабочих тетрадей и прочей писчебумажной продукции. Базы данных могут содержать различные объекты. Основными объектами любой базы данных являются ее таблицы. Простейшая база данных имеет хотя бы одну таблицу. Соответственно, структура простейшей базы данных тождественно равна структуре ее таблицы.
Классификация баз данных:
По технологии обработки данных базы данных подразделяются на централизованные и распределенные.
Централизованная база данных хранится в памяти одной вычислительной системы. Эта вычислительная система может быть мэйнфреймом — тогда доступ к ней организуется с использованием терминалов — или файловым сервером локальной сети ПК.
Распределенная база данных состоит из нескольких, возможно, пересекающихся или даже дублирующих друг друга частей, которые хранятся в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).
По способу доступа к данным базы данных разделяются на базы данных с локальным доступом и базы данных с сетевым доступом.
Для всех современных баз данных можно организовать сетевой доступ с многопользовательским режимом работы.
Централизованные базы данных с сетевым доступом могут иметь следующую архитектуру:
1. файл-сервер;
2. клиент-сервер базы данных;
3. «тонкий клиент» — сервер приложений — сервер базы данных (трехуровневая архитектура).
Файл-сервер. Архитектура систем БД с сетевым доступом предполагает выделение одной из машин сети в качестве центральной (файловый сервер). На этот компьютер устанавливается операционная система (ОС) для выделенного сервера (например, Microsoft Windows Server 2003). На нем же хранится совместно используемая централизованная БД в виде одного или группы файлов. Все другие компьютеры сети выполняют функции рабочих станций (могут работать в ОС Microsoft Windows 2000 Professional или Microsoft Windows 98). Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где и производится обработка информации . При большой интенсивности доступа к одним и тем же данным производительность информационной системы падает. Пользователи могут создавать также локальные БД на рабочих станциях.
Клиент-сервер. В этой архитектуре на выделенном сервере, работающем под управлением серверной операционной системы, устанавливается специальное программное обеспечение (ПО) — сервер БД, например, Microsoft®SQL Server™или Oracle. СУБД подразделяется на две части: клиентскую и серверную. Основа работы сервера БД — использование языка запросов (SQL). Запрос на языке SQL, передаваемый клиентом (рабочей станцией) серверу БД, порождает поиск и извлечение данных на сервере. Извлеченные данные транспортируются по сети от сервера к клиенту . Тем самым, количество передаваемой по сети информации уменьшается во много раз.
Трехуровневая архитектура функционирует в Интранет- и Интернет-сетях. Клиентская часть («тонкий клиент»), взаимодействующая с пользователем, представляет собой HTML-страницу в Web-браузере либо Windows-приложение, взаимодействующее с Web-сервисами. Вся программная логика вынесена на сервер приложений, который обеспечивает формирование запросов к базе данных, передаваемых на выполнение серверу баз данных. Сервер приложений может быть Web-сервером или специализированной программой (например, Oracle Forms Server).
Информационная система (ИС) — программно-аппаратный комплекс, предназначенный для хранения и обработки информации какой-либо предметной области. База данных — важнейший компонент любой информационной системы. Хорошо структурированная информация в базе данных позволяет не только беспроблемно эксплуатировать систему и выполнять ее текущее обслуживание, но и модифицировать и развивать ее при модернизации предприятия и изменении информационных потоков, законодательства и форм отчетности.
В настоящее время в эксплуатации на крупных предприятиях находятся комплексные ИС управления предприятиями (КИС, корпоративные системы, ERP-системы), такие как R/3 фирмы SAP, Oracle E-Business Suite, BaanERP. Среди российских разработок приближаются по функциональности к системам класса ERP «Галактика», «Флагман», «Парус».
При описании информационной системы предполагается, что она содержит два типа сущностей:
1. операционные сущности, которые выполняют какую-либо обработку (некоторый аналог программы);
2. пассивные сущности, которые хранят информацию, доступную для пополнения, изменения, поиска, чтения (база данных).
При проектировании сложных информационных систем используется метод декомпозиции — система разбивается на составные части, которые связаны, взаимодействуют друг с другом и образуют иерархическую структуру. Иерархический характер сложных систем хорошо согласуется с принципом групповой разработки. В этом случае деятельность каждого участника проекта ограничивается соответствующим иерархическим уровнем.
При создании проекта информационной системы для проектирования ее базы данных следует определить:
1. объекты информационной системы (сущности в концептуальной модели);
2. их свойства (атрибуты);
3. взаимодействие объектов (связи) и информационные потоки внутри и между ними.
При этом очень важен анализ существующей практики реализации информационных процессов и нормативной информации (законов, постановлений правительства, отраслевых стандартов), определяющих необходимый объем и формат хранения и передачи информации. Если радикальной перестройки сложившегося информационного процесса не предвидится, следует учитывать имеющиеся формы хранения и обработки информации в виде журналов, ведомостей, таблиц и т.п. бумажных носителей.
Однако предварительно необходимо выполнить анализ возможности перехода на новые системы учета, хранения и обработки информации, возможно, исходя из имеющихся на рынке программных продуктов-аналогов, разработанных крупными информационными компаниями и частично или полностью соответствующими поставленной задаче.
Изначально создаваемый как инструмент для выборки и представления данных, содержащихся в базе данных, SQL сегодня представляет собой нечто гораздо большее. Несмотря на то, что выборка данных по — прежнему остается одной из наиболее важных функций SQL, сейчас этот язык используется для реализации всех функциональных возможностей, необходимых для управления БД, в том числе и для:
1. организации данных — SQL позволяет определять и изменять структуру представления данных, а также устанавливать отношения;
2. обработки данных — SQL позволяет изменять содержимое базы данных: добавлять новые данные, удалять или обновлять уже имеющиеся в ней данные;
3. управления доступом — SQL позволяет ограничивать возможности пользователя по чтению и изменению данных (зашита данных от несанкционированного доступа) и координировать их совместное использование пользователями, работающими параллельно.
На сегодняшний день язык SQL является единственным признанным стандартом языка БД, поддерживаемым всеми основными поставщиками СУБД. С годами язык развивается и усложняется. Хорошее владение языком SQL является обязательным для профессиональных разработчиков приложений баз данных и их администраторов.
Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью единственного предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица. К этой новой (рабочей) таблице может быть снова применена операция SELECT и т.д., т.е. такие операции могут быть вложены друг в друга. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структуризированный» в названии языка SQL.
Предложение SELECT может использоваться как:
1. самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений);
2. элемент WHERE- или HAVING-условия (сокращенный вариант предложения, называемый «вложенный запрос»);
3. фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT;
4. средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).
В синтаксических конструкциях используются следующие обозначения:
1. звездочка (*) для обозначения «все» — употребляется в обычном для программирования смысле, т.е. «все случаи, удовлетворяющие определению»;
2. квадратные скобки ([]) — означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);
3. фигурные скобки ({}) — означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
4. многоточие(…) — указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;
5. прямая черта (|) — означает наличие выбора из двух или более возможностей. Например, обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);
6. точка с запятой (;) — завершающий элемент предложений SQL;
7. запятая (,) — используется для разделения элементов списков;
8. пробелы ( ) — могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
9. прописные латинские буквы и символы — используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано.
Оператор SELECT — один из наиболее важных и самых распространенных операторов SQL. Он позволяет производить выборки данных из таблиц и преобразовывать к нужному виду полученные результаты. Будучи очень мощным, он способен выполнять действия, эквивалентные операторам реляционной алгебры, причем в пределах единственной выполняемой команды. При его помощи можно реализовать сложные и громоздкие условия отбора данных из различных таблиц.
Обработка элементов оператора SELECT выполняется в следующей последовательности:
1. FROM — определяются имена используемых таблиц;
2. WHERE — выполняется фильтрация строк объекта в соответствии с заданными условиями, при формирования запроса можно использовать <, >, and, nod, or;
3. GROUP BY — образуются группы строк , имеющих одно и то же значение в указанном столбце;
4. HAVING — фильтруются группы строк объекта в соответствии с указанным условием, определят условие по которому группы включаются в выходные данные, применяется только с GROUP BY;
5. SELECT — устанавливается, какие столбцы должны присутствовать в выходных данных;
6. ORDER BY — определяется упорядоченность результатов выполнения операторов. сортировка). Сортировать можно по нескольким полям. ASC возрастающий он принят по умолчанию, DESC убывающий;
Порядок предложений и фраз в операторе SELECT не может быть изменен. Только два предложения SELECT и FROM являются обязательными, все остальные могут быть опущены.
Предложение FROM задает имена таблиц и просмотров, которые содержат поля, перечисленные в операторе SELECT. Необязательный параметр псевдонима — это сокращение, устанавливаемое для имени таблицы.
С помощью WHERE — параметра пользователь определяет, какие блоки данных из приведенных в списке FROM таблиц появятся в результате запроса. За ключевым словом WHERE! следует перечень условий поиска, определяющих те строки, которые должны быть выбраны при выполнении запроса. Существует пять основных типов условий поиска (или предикатов):
1. сравнение: сравниваются результаты вычисления одного выражения с результатами вычисления другого;
2. диапазон: проверяется, попадает ли результат вычисления выражения в заданный диапазон значений;
3. принадлежность множеству: проверяется, принадлежит ли результат вычислений выражения заданному множеству значений;
4. соответствие шаблону: проверяется, отвечает ли некоторое строковое значение заданному шаблону.
5. значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение).
В языке SQL можно использовать следующие операторы сравнения: = — равенство; < — меньше; > — больше; <= — меньше или равно; >= — больше или равно; <> — не равно.
Более сложные предикаты могут быть построены с помощью логических операторов AND, OR или NOT, а также скобок, используемых для определения порядка вычисления выражения. Вычисление выражения в условиях выполняется по следующим правилам:
1. выражение вычисляется слева направо;
2. первыми вычисляются подвыражения в скобках;
3. операторы NOT выполняются до выполнения операторов AND и OR;
4. операторы AND выполняются до выполнения операторов OR.
Для устранения любой возможной неоднозначности рекомендуется использовать скобки.
Оператор BETWEEN используется для поиска значения внутри некоторого интервала, определяемого своими минимальным и максимальным значениями. При этом указанные значения включаются в условие поиска.
Оператор IN используется для сравнения некоторого значения со списком заданных значений, при этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке. При помощи оператора IN может быть достигнут тот же результат, что и в случае применения оператора OR, однако оператор IN выполняется быстрее.
Оператор IS NULL используется для сравнения текущего значения со значением NULL — специальным значением, указывающим на отсутствие любого значения. NULL — это не то же самое, что знак пробела (пробел — допустимый символ) или ноль (0 — допустимое число). NULL отличается и от строки нулевой длины (пустой строки).
В общем случае строки в результирующей таблице SQL — запроса никак не упорядочены. Однако их можно требуемым образом отсортировать, для чего в оператор SELECT помещается фраза ORDER BY, которая сортирует данные выходного набора в заданной последовательности. Сортировка может выполняться по нескольким полям, в этом случае они перечисляются за ключевым словом ORDER BY через запятую. Способ сортировки задается ключевым словом, указываемым в рамках параметра ORDER BY следом за названием поля, по которому выполняется сортировка. По умолчанию реализуется сортировка по возрастанию. Явно ога задается ключевым словом ASC. Для выполнения сортировки в обратной последовательности необходимо после имени поля, по которому она выполняется, указать ключевое слово DESC. Фраза ORDER BY позволяет упорядочить выбранные записи в порядке возрастания или убывания значений любого столбца или комбинации столбцов, независимо от того, присутствуют эти столбцы в таблице результата или нет. Фраза ORDER BY всегда должна быть последним элементом в операторе SELECT.
С помощью итоговых (агрегатных) функций в рамках SQL — запроса можно получить ряд обобщающих статистических сведений о множестве отобранных значений выходного набора.
Пользователю доступны следующие основные итоговые функции:
1. Count (Выражение) — определяет количество записей в выходном наборе SQL-запроса;
2. Min/Max (Выражение) — определяют наименьшее и наибольшее из множества значение в некотором поле запроса;
3. Avg (Выражение) — эта функция позволяет рассчитать среднее значение множества значений, хранящихся в определенном поле отобранных запросом записей. Оно является арифметическим средним значением, т.е. суммой значений, деленной на их количество.
4. Sum (Выражение) — вычисляет сумму множества значений, содержащихся в определенном поле отобранных запросом записей.
Чаще всего в качестве выражения выступают имена столбцов. Выражение может вычисляться и по значениям нескольких таблиц.
Все эти функции оперируют со значениями в единственном столбце таблицы или с арифметическим выражением и возвращают единственное значение. Функции COUNT, MIN и МАХ применимы как к числовым, так и к нечисловым полям, тогда как функции SUM и AVG могут использоваться только в случае числовых полей, за исключением COUNTY*. При вычислении результатов любых функций сначала исключаются все пустые значения, после чего требуемая операция применяется только к оставшимся конкретным значениям столбца. Вариант COUNT(*) — особый случай использования функции COUNT, его назначение состоит в подсчете всех строк в результирующей таблице, независимо от того, содержатся там пустые, дублирующиеся или любые другие значения.
Если до применения обобщающей функции необходимо исключить дублирующиеся значения, следует перед именем столбца в определении функции поместить ключевое слово DISTINCT. Оно не имеет смысла для функций MIN и МАХ, однако его использование может повлиять на результаты выполнения функций SUM и AVG, поэтому необходимо заранее обдумать, должно ли оно присутствовать в каждом конкретном случае. Кроме того, ключевое слово DISTINCT может быть указано в любом запросе не более одного раза.
Очень важно отметить, что итоговые функции могут использоваться только в списке предложения SELECT и в составе предложения HAVING. Во всех других случаях это недопустимо. Если список в предложении SELECT содержит итоговые функции, а в тексте запроса отсутствует фраза GROUP BY, обеспечивающая объединение данных в группы, то ни один из элементов списка предложения SELECT не может включать каких — либо ссылок на поля, за исключением ситуации, когда поля выступают в качестве аргументов итоговых функций.
Часто в запросах требуется формировать промежуточные итоги, что обычно отображается появлением в запросе фразы «для каждого…». Для этой цели в операторе SELECT используется предложение GROUP BY. Запрос, в котором присутствует GROUP BY, называется группирующим запросом, поскольку в нем группируются данные, полученные в результате выполнения операции SELECT, после чего для каждой отдельной группы создается единственная суммарная строка. Стандарт SQL требует, чтобы предложение SELECT и фраза GROUP BY были тесно связаны между собой. При наличии в операторе SELECT фразы GROUP BY каждый элемент списка в предложении SELECT должен иметь единственное значение для всей группы. Более того, предложение SELECT может включать только следующие типы элементов: имена полей, итоговые функции, константы и выражения, включающие комбинации перечисленных выше элементов.
Все имена полей, приведенные в списке предложения SELECT, должны присутствовать и во фразе GROUP BY — за исключением случаев, когда имя столбца используется в итоговой функции. Обратное правило не является справедливым — во фразе GROUP BY могут быть имена столбцов, отсутствующие в списке предложения SELECT.
Если совместно с GROUP BY используется предложение WHERE, то оно обрабатывается первым, а группированию подвергаются только те строки, которые удовлетворяют условию поиска.
Стандартом SQL определено, что при проведении группирования все отсутствующие значения рассматриваются как равные. Если две строки таблицы в одном и том же группируемом столбце содержат значение NULL и идентичные значения во всех остальных непустых группируемых столбцах, они помещаются в одну и ту же группу.
При помощи HAVING отражаются все предварительно сгруппированные посредством GROUP BY блоки данных, удовлетворяющие заданным в HAVING условиям. Это дополнительная возможность «профильтровать» выходной набор.
Условия в HAVING отличаются от условий в WHERE:
1. HAVING исключает из результирующего набора данных группы с результатами агрегированных значений;
2. WHERE исключает из расчета агрегатных значений по группировке записи, не удовлетворяющие условию;
3. в условии поиска WHERE нельзя задавать агрегатные функции.
До появления SQL в СУБД (независимо от того, на какой модели они основывались) приходилось поддерживать, по крайней мере, три языка, которые обычно имели мало общего: язык определения данных (ЯОД), служащий для спецификации структур БД (обычно общую структуру БД называют схемой БД); язык манипулирования данными (ЯМД), позволяющий создавать прикладные программы, взаимодействующие с БД; и язык администрирования БД (ЯАДБ), с помощью которого можно было выполнять служебные действия (например, изменять структуру БД или производить ее настройку с целью повышения эффективности). Кроме того, если требовалось предоставить пользователям СУБД интерактивный доступ к БД, приходилось вводить еще один язык, операторы которого выполняются в диалоговом режиме. Язык SQL позволяет решать все эти задачи.
При решении поставленной задачи оптимально использовать для представления информационных материалов язык Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения.
Delphi — это продукт Borland International для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ [6].
Прежде всего Delphi предназначен для профессиональных разработчиков, желающих очень быстро разрабатывать приложения в архитектуре клиент-сервер.
Преимущества Delphi по сравнению с аналогичными программными продуктами:
1. быстрота разработки приложения;
2. высокая производительность разработанного приложения;
3. низкие требования разработанного приложения к ресурсам компьютера;
4. наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;
5. возможность разработки новых компонентов и инструментов собственными средствами Delphi;
6. удачная проработка иерархии объектов.
Система программирования Delphi рассчитана на программирование различных приложений и предоставляет большое количество компонентов для этого [7].
Разработка приложений баз данных является одной из наиболее востребованных возможностей среды программирования Delphi. Эта среда программирования предоставляет разработчику поистине великолепный набор простых в использовании инструментов, позволяющих быстро разрабатывать сложные проекты, создавая приятный и удобный пользовательский интерфейс. В этой среде очень просто работать с любым современным сервером баз данных, для которого есть соответствующий драйвер. Благодаря сумме технологий DataSnap, ADO и СОМ очень легко разрабатывать распределенные двух- и трехзвенные приложения баз данных. Связь с базой данных вDelphi устанавливается настройкой всего нескольких свойств и заданием пары тройки дополнительных параметров.
Данная программа предназначена для отслеживания финансовой стороны работы компании.
В программе хранятся все сведения о клиентах: код клиента, название, вид деятельности, адрес и телефон. Также имеется информация об услугах, предлагаемых нотариальной конторой: код услуги в общей базе, название, описание. Кроме того, программа содержит информацию о том, кто из клиентов заключил какую сделку и какой вид услуги ему понадобился от нотариальной конторы.
Данное клиентское приложение позволяет производить различные действия с базой данных студентов:
1. Просмотр информации о сделках, клиентах и услугах.
2. Добавление новых записей в базу данных.
3. Удаление уже существующих записей.
4. Сортировка записей базы данных.
Данное клиентское приложение является очень удобным в применении и незаменимым при отслеживании финансовой стороны работы компании.
Перед началом разработки базы данных и клиентского приложения необходимо спроектировать архитектуру БД. Для этого создадим несколько таблиц: «Клиенты», «Сделки», «Услуги».
Таблица «Клиенты» содержит всю необходимую информацию о клиентах: код клиента, название, вид деятельности, адрес и телефон. Код запроса на создание таблицы «Клиенты » представлен ниже:
CREATE TABLE Клиенты(
Код_клиента counter not null primary key,
Название char(20),
Вид_деятельности char(20),
Адрес char(20),
Телефон char(20));
Таблица «Клиенты» представлена на рисунке 2.1- Таблица «Клиенты»
Рисунок 2.1- Таблица «Клиенты»
Таблица «Услуги» содержит информацию об услугах: код услуги, название, описание. Код запроса на создание таблицы «Услуги» представлен ниже:
CREATE TABLE Услуги(
Код_услуги counter not null primary key,
Название char(20),
Описание char(200));
Таблица «Услуги» представлена на рисунке 2.2- Таблица «Услуги».
Рисунок 2.2- Таблица «Услуги»
Таблица «Сделки» содержит информацию о сделках клиентов и нужных им услугах: код сделки, код клиента, код услуги, сумма, комиссионные, описание. Код запроса на создание таблицы «Сделки» представлен ниже:
CREATE TABLE Клиенты(
Код_клиента counter not null primary key,
Название char(20),
Вид_деятельности char(20),
Адрес char(20),
Телефон char(20));
Таблица «Сделки» представлена на рисунке 2.3- Таблица «Сделки».
Рисунок 2.3- Таблица «Сделки»
Заполнение таблиц происходит с помощью оператора INSERT INTO.
Код запроса на заполнение таблицы «Клиенты» представлен ниже:
INSERT INTO Клиенты ( Код_клиента, Название, Вид_деятельности, Адрес, Телефон )
VALUES (3, «Балаева», «финансы», «Ростов», «35232»);
Связывание таблиц между собой происходит при помощи ключевых элементов и оператора Foreign key (…) References (…).Полученная схема базы данных отображена на рисунке 2.4- Схема данных.
Рисунок 2.4- Схема данных
Для создания клиентского приложения необходимо сначала связать базу данных с формой Borland Delphi. Для этого используется элемент ADOConnection. В свойствах добавленного ADOConnection зададим поставщика данных Microsoft Jet 4.0 OLE DB Provider, как наиболее подходящего для работы с БД MS Access, и укажем путь к созданной базе данных Курсовая.mdb. Также выставим свойство LoginPrompt в False, чтобы программа при открытии не запрашивала пароль доступа к БД. У компонента ADOTable необходимо в свойстве Connection указать созданный компонент ADOConnection, а у компонента DataSource в свойстве DataSet указать ADOTable. В свойствах DataSource компонента DBGrid указать DataSource1.
Для добавления данных необходимо выбрать соответствующую таблицу и нажать кнопку «Добавить» на форме.
При нажатии кнопки появляется форма для добавления. Она содержит поля , в которые нужно вписывать данные. Рядом с полями написано, какого рода информация должна вводиться в соответствующее поле.
Разберем добавление данных на примере таблицы «Клиенты».
При выборе таблицы «Клиенты» и нажатии на кнопку «Добавить» появляется форма для добавления. Заполним эту форму. Заполненная форма представлена на рисунке 2.5- Форма для добавления.
Рисунок 2.5- Форма для добавления.
При нажатии на клавишу Добавить происходит добавление данных. В этой процедуре сначала проверяется, все ли поля для добавления заполнены. Если заполнены не все поля, появляется сообщение «Заполните все поля». Если все поля заполнены, происходит его добавление. Код процедуры добавления для таблицы «Клиенты» представлен ниже:
procedure TForm2.Button1Click(Sender: TObject);
begin
if (Edit1.Text=») or (Edit2.Text=») or (Edit3.Text=») or (Edit4.Text=») then ShowMessage(‘Заполните все поля!’) else
begin
form1.ADOQuery1.SQL.Add(‘INSERT INTO Клиенты ( Название, Вид_деятельности, Адрес, Телефон ) VALUES ‘);
form1.ADOQuery1.SQL.Add(‘(»’+Edit1.Text+»»);
form1.ADOQuery1.SQL.Add(‘,»’+Edit2.Text+»»);
form1.ADOQuery1.SQL.Add(‘,»’+Edit3.Text+»»);
form1.ADOQuery1.SQL.Add(‘,»’+Edit4.Text+»»);
form1.ADOQuery1.SQL.Add(‘);’);
form1.ADOQuery1.ExecSQL;
form1.ADODataSet2.Active:=false;
form1.ADODataSet2.Active:=true;
form4.ADODataSet1.Active:=false;
form4.ADODataSet1.Active:=true;
form1.ADOQuery1.SQL.Clear;
form2.Close();
end;
end;
Результат добавления в таблицу «Клиенты» представлен на рисунке 2.6- Добавление данных.
Рисунок 2.6- Добавление данных
Для удаления данных необходимо выбрать соответствующую таблицу и строку, требующую удаления, нажать кнопку «Удалить» на форме.
Разберем удаление данных на примере таблицы «Клиенты». Откроем таблицу и выберем строку, требующую удаления. При нажатии на кнопку Удалить происходит процедура удаления. Код процедуры удаления представлен ниже:
procedure TForm1.Button5Click(Sender: TObject);
begin
if DBGrid1.SelectedField.AsString<>» then
begin
if button1.Enabled=false then
begin
ADOQuery1.SQL.Add(‘DELETE cascade FROM Клиенты where Код_клиента=’);
ADOQuery1.SQL.Add(DBGrid1.SelectedField.AsString);
ADOQuery1.ExecSQL;
ADODataSet2.Active:=false;
ADODataSet2.Active:=true;
Form4.ADODataSet1.Active:=false;
Form4.ADODataSet1.Active:=true;
ADOQuery1.SQL.Clear;
Button5.Enabled:=false;
end;
Таблица «Клиенты» до удаления записи и после представлена соответственно на рисунке 2.7- Таблица «Клиенты» и на рисунке 2.8- Удаление записи.
Рисунок 2.7- Таблица «Клиенты»
Рисунок 2.8- Удаление записи
Для сортировки данных необходимо выбрать просмотр.
В просмотре нужно выбрать по какому полю сортировать и по какому признаку, то есть по убыванию или возрастанию.
Процедура сортировки происходит с помощью свойства элемента ADODataSet1. Свойство называется ADODataSet1.Sort. Ниже представлен код процедуры сортировки:
procedure TForm1.cbb1Change(Sender: TObject);
begin
ADOdataset1.Active:=false;
ADOdataset1.CommandText:=’select Сделки.Код_сделки, Клиенты.Название, Клиенты.Вид_деятельности, Клиенты.Адрес, Клиенты.Телефон, Услуги.Название, Услуги.Описание, Сделки.Комиссионные, Сделки.Описание, Сделки.Сумма ‘;
ADOdataset1.CommandText:=ADOdataset1.CommandText+’from Сделки, Услуги, Клиенты WHERE (Сделки.Код_услуги=Услуги.Код_услуги)AND(Сделки.Код_клиента=Клиенты.Код_клиента) ORDER BY ‘;
ADOdataset1.CommandText:=ADOdataset1.CommandText+cbb1.Text;
If combobox1.ItemIndex=1 then ADOdataset1.CommandText:=ADOdataset1.CommandText+’ DESC’;
ADOdataset1.Active:=true;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ADOdataset1.Active:=false;
ADOdataset1.CommandText:=’select Сделки.Код_сделки, Клиенты.Название, Клиенты.Вид_деятельности, Клиенты.Адрес, Клиенты.Телефон, Услуги.Название, Услуги.Описание, Сделки.Комиссионные, Сделки.Описание, Сделки.Сумма ‘;
ADOdataset1.CommandText:=ADOdataset1.CommandText+’from Сделки, Услуги, Клиенты WHERE (Сделки.Код_услуги=Услуги.Код_услуги)AND(Сделки.Код_клиента=Клиенты.Код_клиента) ORDER BY ‘;
ADOdataset1.CommandText:=ADOdataset1.CommandText+cbb1.Text;
If combobox1.ItemIndex=1 then ADOdataset1.CommandText:=ADOdataset1.CommandText+’ DESC’;
ADOdataset1.Active:=true;
end;
Разберем процедуру сортировки на примере. Выберем параметры сортировки. Выберем поле «Клиенты.Название», по убыванию. Отсортированная таблица представлена на рисунке 2.9 — Отсортированная таблица.
Рисунок 2.9- Отсортированная таблица
При запуске программы появляется форма, представленная на рисунке 2.10- Программа.
Рисунок 2.10- Программа
В появившейся форме необходимо выбрать таблицу, с которой предполагается работать. Сделать это нужно следующим образом: нажать на кнопочку с соответствующим названием таблицы. После выбора появится выбранная таблица. Нажимая на кнопки Добавить или Удалить, можно производить эти действия с таблицей. Выберем, например, таблицу «Сделки». Результат представлен на рисунке 2.11 — Таблица «Сделки». Полный код программы представлен в приложении А.
Рисунок 2.11 — Таблица «Сделки»
Данная программа может использоваться для отслеживания сделок нотариальной конторы. Программа позволяет любому пользователю с легкостью создавать большие объемы информации, добавлять, удалять данные, сортировать. Использование такой программы в современном мире значительно облегчает деятельность человека.