Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Ледовских Ирина Анатольевна ПРОГРАММА И УЧЕБНЫЕ МАТЕРИАЛЫ ЭЛЕКТИВНОГО КУРСА ПО ИНФОРМАТИКЕ ДЛЯ УЧАЩИХСЯ 10-11 КЛАССОВ «РАБОТА С БАЗАМИ ДАННЫХ DELPHI» ПОЯСНИТЕЛЬНАЯ ЗАПИСКА ............................................................................................................................................... 1 ТЕМАТИЧЕСКОЕ ПЛАНИРОВАНИЕ ...................................................................................................................................... 2 ТЕКСТ ПОСОБИЯ ................................................................................................................................................................. 4 БАЗЫ ДАННЫХ .................................................................................................................................................................... 4 НАЗНАЧЕНИЕ И ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ СИСТЕМЫ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ DELPHI .............. 6 ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ В DELPHI. СОЗДАНИЕ ТАБЛИЦ ........................................................................................ 8 СОЗДАНИЕ ПРИЛОЖЕНИЙ. РАБОТА С ФОРМАМИ .............................................................................................................. 13 КНОПКА ............................................................................................................................................................................ 15 ВЫБОР ИНФОРМАЦИИ ИЗ БАЗЫ ДАННЫХ. СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ В DELPHI ................................................. 18 РАБОТА СО СВЯЗАННЫМИ ТАБЛИЦАМИ. СОЗДАНИЕ СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ ......................................................... 22 Пояснительная записка В настоящее время информацию рассматривают как один из основных ресурсов развития общества, а информационные системы и технологии как средство повышения производительности и эффективности работы людей. Информационные системы и базы данных стали неотъемлемой частью нашей повседневной жизни: покупка в супермаркете, расчеты с использованием кредитной карты, заказ путевки в туристическом агентстве, работа в Internet, обучение в университете и пр. Большинство отраслей человеческой деятельности связано с внедрением и использованием баз данных, которые обеспечивают хранение информации, представление данных для пользователей, что повышает эффективность работы. Наиболее широко информационные системы и базы данных используются в производственной, управленческой и финансовой деятельности. Система визуального программирования Delphi позволяет быстро и эффективно разрабатывать самые разнообразные приложения, включая и приложения для работы с базами данных. Цель курса: познакомить слушателей с основными понятиями, связанными с проектированием баз данных, программированием приложений для них в Delphi и организацией взаимодействия прикладной программы с базой данных. Задачи программы: Рассмотреть основной понятийный аппарат реляционных баз данных. Научить проектировать реляционные базы данных и приложения. Показать технологию создания информационных систем Дать понятие языка структурированных запросов SQL как средства реляционного способа доступа к данным. Познакомить слушателей с основными средствами для работы с базами данных в Delphi. Показать возможность применения системы Delphi для быстрой разработки приложений для работы с базами данных. Хабаровск, 2006 1 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Требования к уровню усвоения содержания курса В результате освоения программы курса слушатели должны знать: понятие информационной системы, базы данных, системы управления базами данных; формулировки основных понятий реляционных баз данных: отношение, атрибут, ключи и индексы, транзакции; основы теории проектирования баз данных утилиты для работы с базами данных в Delphi (утилита Database Desktop, BDE Administrator, SQL Explorer) компоненты доступа к данным, визуальные компоненты для работы с данными; основные функции языка структурированных запросов SQL (определение данных, отбор данных из таблиц, модификация записей); характеристики проекта в среде Delphi (состав проекта, файл проекта, файлы формы, файлы модулей, файл ресурсов, параметры проекта). В процессе изучения курса слушатели должны пробрести умения: создавать локальные базы данных в Delphi создавать приложения в Delphi, позволяющие просматривать записи, перемещаться по записям, выполнять поиск, устанавливать фильтр конструировать и использовать запросы в приложении, конструировать и использовать запросы на изменение базы данных создавать связи между таблицами реляционной базы данных средствами Delphi; решать различные модельные задачи создания баз данных в среде Delphi. Программа рассчитана на слушателей, которые работают на компьютере в той или иной области и имеют представление об объектно-ориентированном программировании. Объем курса: предлагаемый курс рассчитан на 20 часов Тематическое планирование № п Темы занятий /п 1. Базы данных реляционного типа. Основные 1. понятия и определения. Типы данных. Разработка баз данных: общие подходы. 2. Задачи 1. Познакомить с понятиями информационная система, система управления базами данных, база данных, таблица, атрибут, ключи и индексы, транзакции. 2. Научить создавать структуру базовых таблиц базы данных. Язык реляционных баз 1. Познакомить Хабаровск, 2006 с основными Л ек. Л /з 2 3 2 2 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 2. 3. 4. 5. данных SQL: история возникновения; стандарты языков баз данных; основные операторы 2. языка SQL. функциями языка структурированных запросов SQL (определение данных, отбор данных из таблиц, модификация записей). Научить формировать SQLзапросы с использованием операторы SELECT 1. Познакомить с основными характеристиками проекта в среде Delphi (состав проекта, файл проекта, файлы формы, Проектирование баз файлы модулей, файл данных. Проектирование 3. ресурсов, параметры проекта). приложений управления 2. Научить использовать базами данных: инструментальные средства создание баз данных для обслуживания БД, для средствами Delphi и SQL; выполнения вспомогательных создание таблиц. действий при разработке приложений (например, для создания таблиц и отладки SQL-запросов). Создание приложения в среде визуального программирования Delphi для работы с базами данных: 4. выбор системы управления базами данных; утилита Database Desktop; стандартные компоненты для работы с базами данных. Проектирование запросов. Формулировка и 5. 5 реализация запросов к многотабличной базе данных в SQL и Delphi. Решение модельных задач. Хабаровск, 2006 1. Научить использовать программу Database Desktop для создания и редактирования таблиц, а также для выполнения действий с псевдонимами БД. 2. Познакомить с компонентами доступа к данным, с визуальными компонентами для работы с данными. 3. Научить создавать приложения в Delphi, позволяющие просматривать записи, перемещаться по записям, выполнять поиск, устанавливать фильтр. 1. Научить использовать программу Database Desktop для создания визуальных запросов и SQL-запросов. 2. Научить конструировать и использовать запросы к многотабличной базе данных в приложении. 3. Научить создавать связи между таблицами 1 2 2 3 1 4 3 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 реляционной базы данных средствами Delphi. 4. Научить решать модельные задачи. итого 9 1 1 Текст пособия Базы данных C точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную. С точки зрения программиста, база данных — это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных. В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, InfomLx, Microsoft SQL Server) базы данных. В состав Delphi входят компоненты, позволяющие писать программы работы с файлами данных различных систем: от dBASE до Informix и Oracle. Кроме того, Delphi предоставляет утилиту Borland Database Desktop, позволяющую программисту создавать файлы баз данных в различных форматах. Классификация баз данных В зависимости от расположения программы, использующей данные, и самих данных, а также способа разделения между несколькими пользователями различают локальные и удаленные базы данных. Локальные базы данных Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск. Для обеспечения разделения данных (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, Хабаровск, 2006 4 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 работающие на одном или нескольких компьютерах, в локальных базах данных используется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может использовать эти данные, т.е. данные для него закрыты, заблокированы. Paradox, dBase, FoxPro и Access до 2000 года – это локальные базы данных. Удаленные базы данных Данные (файлы) удаленной базы данных находятся на удаленном компьютере. Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удаленный компьютер, обеспечивает доступ к данным. Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structure Query Language) – языке структурированных запросов. Примечание: Разработка удаленной базы данных – довольно сложная и трудоёмкая задача. Её решение предполагает наличие у разработчика глубоких знаний и достаточно большого опыта. Поэтому в данном пособии задача разработки удаленных баз данных не рассматривается. Структура базы данных База данных – это набор однородной, как правило, упорядоченной по некоторому критерию информации. База данных может быть представлена в «бумажном» или в компьютерном виде. Типичным примером «бумажной» базы данных является каталог библиотеки – набор бумажных карточек, содержащих информацию о книгах. Информация в этой базе однородная (содержит сведения только о книгах) и упорядоченная (карточки расставлены, например, в соответствии с алфавитным порядком фамилий авторов). Другими примерами «бумажной» базы данных являются телефонный справочник и расписание движения поездов. Хабаровск, 2006 5 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Компьютерная база данных представляет собой файл (или набор файлов), содержащий информацию. База данных состоит из записей. Каждая запись содержит информацию об одном экземпляре. Записи состоят из полей. Каждое поле содержит информацию об одной характеристике экземпляра. Каждая запись состоит из одинаковых полей. Некоторые поля могут быть не заполнены, однако они всё равно присутствуют в записи. Назначение и функциональные возможности системы визуального программирования Delphi Система программирования Delphi как среда визуальной разработки приложений обладает широкими возможностями для работы с базами данных. Начальный период работы с системой программирования Delphi заключается в запуске данной программы. Запуск программ группы Borland Delphi осуществляется с помощью команды Пуск→ Программы → Borland Delphi. В состав Delphi входят следующие утилиты (программы, разработанные для администратора базы данных и используемые им при решении административных задач), обеспечивающие работу с базами данных (БД): BDE Administrator – утилита, позволяющая создать псевдоним БД (Alias). Database Desktop – утилита, обеспечивающая создание, просмотр, модификацию таблиц БД. SQL Explorer – утилита, позволяющая наполнять базу данных конкретным содержанием, формировать запросы к базе данных. Хабаровск, 2006 6 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Система программирования Delphi состоит из нескольких частей: главного окна Delphi, инспектора объектов (Object Inspector), визуального проектировщика рабочих форм, проводника и окна редактора программы. Компоненты главного окна системы Delphi приведены на рис.1. Каждый компонент имеет свое назначение: Главное окно Delphi – в состав главного окна входят главное меню и панели инструментов: стандартная, панель просмотра форм и исходного текста, панель отладки, панель выбора настройки среды, пользовательская, а также палитра компонентов, которые можно располагать на форме, как основном объекте представления информации. Инспектор объектов (Object Inspector) – позволяет осуществлять доступ к свойствам и событиям компонентов. Проектировщик форм – позволяет создавать внешний вид формы в визуальном режиме, а также добавлять в форму различные невидимые элементы. Проводник – позволяет осуществлять быстрый переход между частями редактируемого текста в Редакторе. Редактор исходного текста – предназначен для создания и коррекции программного кода, обладает возможностями подсветки синтаксиса и ускорения ввода текста. Панели компонентов – содержат основные элементы интерфейса программы, а также неотображаемые компоненты. Палитра компонентов включает 28 панелей. В пределах отдельной панели объединены компоненты, ориентированные на конкретную область применения. Каждый компонент представлен на палитре своим значком. Для работы с базами данных в среде Delphi служат следующие панели компонентов: Standard, Additional, Data Access, Data Controls, BDE. Запомните назначение указанных элементов среды Delphi 6! Хабаровск, 2006 7 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Главное окно системы Delphi Визуальный проектировщик рабочих форм Окно редактора программ Инспектор объектов Редактор исходного текста Рис. 1. Основные компоненты среды разработчика Delphi Проектирование баз данных в Delphi. Создание таблиц Процесс создания файла базы данных рассмотрим на примере. Создадим базу данных «Список учеников Хабаровской краевой летней физико- математической школы» Процесс создания новой базы данных представляет собой последовательность следующих шагов: Хабаровск, 2006 8 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 1. Создание каталога (папки). База данных состоит из нескольких таблиц, которые размещаются в одном каталоге. Каталог для новой БД можно создать при помощи программы Проводник (в меню Файл/ Создать/ Папку). 2. Создание псевдонима (Alias). Проблема передачи в программу информации о месте нахождения файлов БД решается путем использования псевдонима БД. Псевдоним (Alias) – это короткое имя, поставленное в соответствие полному имени каталога БД, т.е. каталога, в котором находятся файлы БД. Например, псевдонимом БД «Список учеников ХКЛФМШ» может быть имя School. Псевдоним БД создается при помощи утилиты BDE Administrator, которая запускается следующим образом Пуск/Программы /Borland Delphi/ BDE Administrator. На вкладке Databases перечислены псевдонимы (dBase Files, DBDEMOS, DefaultDD т.д.). Чтобы создать новый псевдоним, необходимо в главном меню Objeсt выбрать команду New. В открывшемся диалоговом окне New Database Alias (Новый псевдоним базы данных) в раскрывшемся списке Database Driver Name следует выбрать драйвер доступа к данным создаваемой БД. По умолчанию предлагается драйвер STANDARD, который обеспечивает доступ к таблицам в формате Paradox. Нажать кнопку ОК. Чтобы изменить имя псевдонима с STANDARD на Schoor нужно щелкнуть правой кнопкой мыши по имени псевдонима (на вкладке Databases), в Хабаровск, 2006 9 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 появившемся контекстном меню выбрать команду Rename (переименовать) и в открывшемся окне ввести новое имя (School). Путь доступа к файлам БД можно ввести на вкладке Definition в поле Path щелчком кнопки с тремя точками, находящейся в конце поля Path Чтобы псевдоним был зарегистрирован в файле конфигурации, необходимо в меню Object выбрать команду Apply (Применить). В открывшемся окне Confirm следует подтвердить необходимость сохранения изменений в файле конфигурации. 3. Создание таблицы Основной объект БД – таблица. На основе таблиц строятся формы, запросы, отчеты, страницы. Таблицы создаются посредством выбора утилиты Database Desktop, которая запускается следующим образом Пуск/Программы/ BorlandDelphi/ DatabaseDesktop. В открывшемся окне Database Desktop в меню File выбрать команду New и в появившемся списке выбрать тип создаваемого файла – Table. В открывшемся окне Create Table следует выбрать тип создаваемой таблицы Paradox 7. Нажать кнопку ОК. Откроется окно Create Table, в котором можно определить структуру записей таблицы (задать имя, тип, размер полей см. Таблицу 1). Хабаровск, 2006 10 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Таблица 1. Структура таблицы Список полей (Field Name) Тип поля (Type) Размер(Size) Пояснение Личный номер Id + Syname A 30 Фамилия Name A 15 Имя Birthday D Дата рождения Class S Класс Adress A 40 Домашний адрес Tel A 11 Телефон Имя поля вводится в колонку Field name. Тип поля задается вводом в колонку Type символьной константы путем щелчка на правой кнопке мыши в колонке Type. Типы полей Константа Содержимое поля + Целое число – счетчик. Alpha A Строка символов. Максимальная длина строки определяется характеристикой Size, значения которой находятся в диапазоне 1..2555 Number N Числа из диапазона 10-307.. 10308 с 15-ю значащими цифрами Money $ Число в денежном формате. Short S Целое число из диапазона –32767..32767 Date D Дата Time T Время Memo М Строка символов произвольной длины Logical L Логическое значение «истина» (True) или «ложь» (False) Autoincrement Определить ключевое поле. Для того, чтобы пометить поле как ключевое, необходимо выполнить двойной щелчок в колонке Key. Ключевые поля должны быть сгруппированы в верхней части таблицы. Если данные, для хранения которых предназначено поле, должны обязательно присутствовать в записи, то следует установить флажок Required Field. Хабаровск, 2006 11 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 После того как определена структура записей, таблицу следует сохранить. Для этого нажать кнопку Save as в окне Create Table. Выбрать каталог в списке Alias, в котором перечислены все псевдонимы БД. Указать в списке Имя файла: pupil. Нажать кнопку Сохранить. Примечание: Чтобы внести новые данные в таблицу, необходимо сначала открыть таблицу командой Open в меню File, а затем в меню Table выбрать команду Edit Data. Хабаровск, 2006 12 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Чтобы заполнить таблицу конкретным содержанием нужно осуществить следующие операции: Пуск/ Программы /Borland Delphi/ SQL Explorer. Выбрать созданный псевдоним БД School, открыть Tables, найти вкладку Data (в правой части окна). Заполнить таблицу конкретным содержанием. Создание приложений. Работа с формами Теоретический аспект 1. Доступ к таблице (файлу данных) обеспечивается компонентами Table и Database, значки которых расположены на вкладке Data Access. Название компонента Table Database Хабаровск, 2006 Назначение одна из таблиц БД совокупность таблиц 13 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 источник данных, обеспечивает связь таблиц БД с компонентами просмотра и редактирования содержимого полей БД. Примечание: Если БД представляет собой одну таблицу, следовательно, DataSource приложение работы с БД должно содержать один компонент Table и один компонент DataSource. Свойства (Properties) компонента Table Обозначение Name DatabaseName TableName Active Свойство Имя компонента. Используется для доступа к свойствам компонента. Имя БД, составной частью которой является файл данных, для доступа к которому используется компонент. В качестве значения свойства следует использовать псевдоним БД. Имя файла данных (таблицы), для доступа к которому используется компонент. Признак активации таблицы. В результате присваивания свойству значения True, происходит открытие файла таблицы. Свойства компонента DataSource Обозначение Name DataSet Свойство Имя компонента. Используется для доступа к свойствам компонента. Имя компонента, представляющего собой входные данные. 2. Отображение (просмотр) данных обеспечивается компонентами, находящимися на вкладке Data Controls. Название Назначение компонента DBMemo просмотр и редактирование таблицы DBText компонент для просмотра содержимого полей DBEdit просмотр и редактирование содержимого полей DBNavigator набор кнопок Свойства компонентов просмотра и редактирования содержимого полей Обозначение Name DataSource DataField Свойство Имя компонента. Используется для доступа к свойсвам компонента. Имя компонента, являющегося источником данных. Имя поля, для отображения содержимого которого используется компонент. Кнопки компонента DBNavigator Хабаровск, 2006 14 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Обозначение Кнопка К первой Действие Указатель текущей записи перемещается к первой записи таблицы К предыдущей nbPrior Указатель текущей записи перемещается к предыдущей записи таблицы К следующей nbNext Указатель текущей записи перемещается к следующей записи таблицы К последней nbLast Указатель текущей записи перемещается к последней записи таблицы Добавить nbInsert В таблицу добавляется новая запись Удалить nbDelete Удаляется текущая запись таблицы Редактирование nbEdit Устанавливается режим редактирования текущей записи Сохранить nbPost Изменения, внесенные в текущую запись, записываются в таблицу Отменить Cancel Отменяет внесенные в текущую запись изменения Обновить nbRefresh Записывает внесенные изменения в файл Просмотр БД возможен в режиме формы и в режиме таблицы. nbFist Практическая реализация (создание приложения в режиме формы) 1. Пуск/Программы/Borland Delphi 6/ Delphi 6. 2. Добавить в форму Form1 компоненты доступа к таблице Table и DataSource. 3. Изменить значения свойств (Properties в Инспекторе Объектов) компонентов Table и DataSource. Значения свойств компонента Table Значения свойств компонента DataSource Свойство Значение Name DataSource1 DataSet Table1 Свойство Значение Name Table1 DatabaseName School TableName Pupil.db Active True 4. Добавить в форму компоненты просмотра и редактирования содержимого полей: Шесть компонентов DBEdit для просмотра и редактирование полей Syname, Name, Birthday, Class, Adress, Tel. Хабаровск, 2006 15 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Изменить значения свойств компонентов DBEdit. Значения свойств компонентов просмотра и редактирования содержимого полей Компонент Значение свойства Значение свойства (Name) DataSource DataField DBEdit1 DataSource1 Syname DBEdit2 DataSource1 Name DBEdit3 DataSource1 Birthday DBEdit4 DataSource1 Class DBEdit5 DataSource1 Adress DBEdit6 DataSource1 Tel Шесть компонентов Label для вывода текста, поясняющего назначение полей ввода. На вкладке Standard выбрать компонент TLabel (Object Inspector/ Properties/ Caption) , в заголовке этого объекта указать следующие значения: Caption Label1 Label2 Label3 Хабаровск, 2006 Фамилия Имя Дата рождения 16 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Label4 Label5 Label6 Изменить название формы Класс Адрес Телефон с Form1 на «Список учеников летней физико- математической школы», для этого в Object Inspector/ Properties изменить свойство Caption с Form1 на «Список учеников летней физико-математической школы». 3. Чтобы просматривать не только содержимое первой записи таблицы, но и другие записи добавим в форму компонент DBNavigator на вкладке DataControls. DBNavigator – это набор кнопок, при щелчке которых во время работы программы происходит перемещение указателя. Выделить компонент DBNavigator на форме и изменить в свойствах (Properties) значение свойства DataSource на DataSource1. 4. Откомпилировать и запустить программу. Компиляция программы: - В главном меню выбрать Tools/Environment Options/Preferences включить флажок Show compiler progress (Сервис/Настройки среды/Предпочтения разработчика включить флажок Отображать ход компиляции) - Компиляция программы выполняется командой Project/Compile Project (Проект/Компилировать проект). Активизировать кнопку ОК. Хабаровск, 2006 17 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Запуск программы: в главном меню выбрать Run. Исполнимый файл представляется в следующем виде: 7. Сохранение проекта БД. Создаваемая в среде Delphi программа состоит из нескольких файлов. Это файлы с исходными текстами на Паскале и файлы описаний форм, Имя проекта Число откомпилированных строк Число ошибок Число предупреждений составляющие проект. Все они связаны друг с другом. Число советов Для того чтобы сохранить проект, необходимо выбрать в главном меню File команду Save All(Сохранить все): - Сначала будет предложено сохранить файл с исходным текстом (Unit1.pas), a затем – файл проекта Project1 с расширением .DPR. Выбор информации из базы данных. Создание запроса на выборку в Delphi Пользователя при работе с базой данных, как правило, интересует не всё её содержимое, а некоторая конкретная информация. Большинство систем управления базами данных позволяют выполнять выборку нужной информации путем выполнения запросов. Пользователь в соответствии с определенными правилами Хабаровск, 2006 18 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 формулирует запрос, указывая, каким критериям должна удовлетворять интересующая его информация, а система выводит записи, удовлетворяющие запросу. Результат выполнения запроса, на основании которого отбираются записи, называют выборкой. Данные можно выбирать из одной или нескольких таблиц с помощью оператора SELECT. Оператор SELECT – важнейший оператор языка SQL (Structured Query Language) – языка структурированных запросов. Он используется для отбора записей, удовлетворяющих сложным критериям поиска, и имеет следующий формат: SELECT [DISTINCT] { * | <Список полей> } FROM <Список таблиц> [WHERE <Условия отбора>] [ORDER BY <Список полей для сортировки>] [GROUP BY <Список полей для группирования>] [HAVING <Условия группирования>] [UNION <Вложенный оператор SELECT>] где: SELECT – команда выбрать из таблицы записи и вывести содержимое полей, имена которых указаны в списке. Оператор SELECT обязательно включает список полей и операнд FROM, остальные операнды могут отсутствовать; FROM – параметр команды, который определяет имена таблиц, из которых нужно сделать выборку. Список должен содержать как минимум одну таблицу; WHERE – параметр, который задает критерий выбора. В простейшем случае критерий – это инструкция сравнения содержимого поля с константой; ORDER BY - параметр, который задает условие, в соответствии с которым будут упорядочены записи, удовлетворяющие критерию запроса; GROUP BY – позволяет выделять группы записей в результирующем наборе данных. Группой являются записи с одинаковыми значениями в полях, перечисленных за операндом GROUP BY. Выделение групп нужно для выполнения групповых операций над записями, например, для определения количества какоголибо товара на складе; Хабаровск, 2006 19 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 HAVING – действует совместно с операндом GROUP BY и используется для отбора записей внутри групп. Правила записи условий группирования аналогичны правилам формирования условий отбора в операнде WHERE; Операторы SELECT могут иметь сложную структуру и быть вложенными друг в друга. Для объединения операторов используется операнд UNION, в котором располагается вложенный оператор SELECT, называемый также подзапросом. Теоретический аспект 1. Для выборки из БД записей, удовлетворяющих некоторому критерию, предназначен компонент Query, значок которого находится на вкладке Data Access. Компонент Query во многом похож на компонент Table, но в отличие от последнего, он представляет не всю базу данных (все записи), а только её часть – записи, удовлетворяющие запросу. В таблице перечислены некоторые свойства компонента Query. Свойства компонента Query Свойство Name SQL Active Назначение свойства Имя компонента. Используется компонентом DataSource для связи результата выполнения запроса с компонентом, обеспечивающим просмотр записей, например DBGrid Записанный на языке SQL запрос к БД При присвоении свойству значения True активизирует выполнение запроса Практическая реализация (создание запросов на выборку с помощью визуальных компонентов) 1. Добавить новую форму (NewForm – Form2), на которую поместить компоненты Table, Query, располагающиеся на вкладке BDE и компонент DataSource, располагающийся на вкладке Data Access. 2. Изменить значения свойств (Properties в Инспекторе Объектов) компонентов Table, DataSource, Query. 3. Добавить в форму компонент DBGrid, располагающийся на вкладке Data Controls, где будут отражаться результаты запроса. 4. Изменить значение свойства DataSource компонента DBGrid на DataSource1. 5. Откомпилировать и запустить программу. Хабаровск, 2006 20 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Сохранить проект, выбрав в главном меню File команду Save All(Сохранить все): - будет предложено сохранить файл с исходным текстом (Unit2.pas). Значения свойств компонентов: Table Свойство Name DatabaseName TableName MasterSource Active Query Свойство Name DatabaseName SQL Значение Table1 School Pupil.db DataSource1 True Свойство Name DataSet DataSource Значение DataSource1 Query1 Значение Query1 School Активизировать кнопку с тремя точками в открывшемся окне String list editor сформировать текст запроса: Select SYNAME, NAME From pupil Where Class = ‘9’ Order by SYNAME Активизировать кнопку ОК Active Хабаровск, 2006 True 21 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Работа со связанными таблицами. Создание связей между таблицами Чаще всего база данных состоит не из одной, а из нескольких связанных между собой таблиц. Связь между отдельными таблицами БД организуется через поля связи таблиц. Связь таблиц осуществляется по полю с одинаковым именем, входящему в состав обоих таблиц. Поля связи обязательно должны иметь одинаковы тип и быть индексированными. Связь между таблицами определяет отношение подчинённости, при котором одна таблица является главной, а вторая – подчинённой. Обычно используется связь один ко многим, когда одной записи в главной таблице может соответствовать несколько записей в подчинённой таблице. Для организации связи между таблицами в подчинённой таблице используются следующие свойства, указывающие: MasterSourse – источник данных главной таблицы; IndexName – текущий индекс подчинённой таблицы; IndexFieldNames – поле или поля связи текущего индекса подчинённой таблицы; MasterFields – поле или поля связи индекса главной таблицы. Работа со связанными таблицами имеет определённые особенности. Хабаровск, 2006 22 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 o При изменении (редактировании) поля связи может нарушиться связь между записями двух таблиц. Поэтому при редактировании поля связи записи главной таблицы нужно соответственно изменять и значения поля связи всех подчинённых записей. o При удалее записи главной таблицы нужно удалять и соответствующие ей записи в подчинённой таблице (каскадное удаление). o При добавлении записи в подчинённую таблицу значение поля связи формируется автоматически по значению поля связи главной таблицы. Рассмотрим пример установления связи между двумя таблицами. Примером может служить связь между списком учеников ХКЗФМШ (таблица pupil.db) и оценками (таблица marks.db). Каждая из таблиц имеет (числовое) поле id (id_pupil в таблице marks.db), однозначно идентифицирующее ученика (для таблицы учеников - уникальное). Конечная цель проекта – получение информации об оценках (из таблицы marks.db) конкретного ученика (соответствующего выбранной записи в таблице pupil.db). Для создания связи необходимо выполнить следующие действия. Запустить программу Пуск/ Программы/ Borland Delphi6/ Delphi6 (если она не запущена). В главном меню выбрать File/New, в открывшемся окне выбрать компонент Data Module. Активизировать кнопку OK. В окне Data Module поместить два компонента Table, два компонента Data Source, располагающихся на вкладке Data Access. Изменить значение свойств (Properties в Инспекторе объектов) двух компонентов Table и Data Source. В окне Data Module выделить первую таблицу. Активизировать правую кнопку мыши, вызвав контекстное меню, в котором выбрать компонент Add Fields (выбор полей из таблицы). Table 1 Свойство Name Database Name Хабаровск, 2006 Значения свойств компонентов DataSource1 Значение Свойство Table1 Name School (Название Dataset созданного псевдонима) Значение DataSource1 Table1 23 Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 1 Table Name Active Pupil.db (Название первой таблицы) True Значения свойств компонентов DataSource2 Table 2 Свойство Name Database Name Table Name Active Значение Свойство Table2 Name School (Название Dataset созданного псевдонима) Marks.db (Название второй таблицы) True Значение DataSource2 Table2 Не закрывая окно Data Module, перейти в основную форму Form1 и на вкладке Standard выбрать компонент Panel1, разместив его на форме. В меню File/Use Unit выбрать в открывшемся диалоговом окне Unit 2, активизировать кнопку OK. C Data Module перенести поля с помощью мыши на Panel1, располагающийся на форме. Поместить DBNavigator1 на форму из вкладки DataControls и поменять свойство Data Source на Data Source1. Поместить DBGrid1 на форму из вкладки DataControls и поменять свойство Data Source на Data Source2. В окне Data Module выделить Table2 и изменить значения свойств (Properties в Инспекторе объектов): Значения свойств компонента Table2 Свойство Name Master Source Master Fields IndexName Значение Table2 Data Source1 Id (Название поля связи главной таблицы) Id_pupil (Название Secondary Indexes во второй (подчинённой) таблице) Active True Откомпилировать, запустить программу и сохранить (File/Save all). Запуск программы: в главном меню выбрать Run. Хабаровск, 2006 24