КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Finally
bmp.Free; jpg.Free; end; end; Листинг 1. Примерный текст программы для занесения графических изображений в таблицу базы данных. Реализуется ввод файлов формата *.bmp и * jpg.
Содержание отчёта. 1) Номер, название, цель и задачи лабораторной работы. 2) Графические изображения и описания оборудования СТЭ по заданному варианту. 3) Образ формы приложения баз данных, в среде разработчика с подробными пояснениями элементов интерфейса: визуальных и невизуальных компонентов. 4) Образ формы приложения баз данных при запуске приложения (с результатами запросов), с подробными пояснениями элементов интерфейса. 5) Тексты подпрограмм-обработчиков событий. 6) Выводы по работе и проблемы, возникшие при выполнении лабораторной работы. Таблица 1. Варианты заданий.
Условные обозначения, принятые в таблице 1. È – операция объединение, C=AÈB; W – операция пересечение, C=AWB; – – операция разность, C=A-B; – операция проекция на множество атрибутов х; – операция селекция по предикату F; – операция декартово произведение C=A*B; – операция соединение C=A B; условие соединения , где – условная операция: =, >, < и т.д., – атрибуты отношений.
Теоретические сведения к работе. Большинство визуальных компонентов для работы с данными похожи на соответствующие компоненты для обычных приложений. Основное отличие заключается в том, что компоненты для работы с базами данных содержат свойства, позволяющие указать источник данных (DataSource) и поле, из которого компонент получает данные (DataField). Таблица 2. Визуальные компоненты для работы с данными со страницы Data Controls.
Таблица 3. Общие свойства визуальных компонентов
Основы языка SQL.
SQL – это язык, который обеспечивает доступ к информации и позволяет управлять реляционными базами данных. Язык SQL – Structured Query Language– структурированный язык запросов, обычно произносится как СИКВЭЛ или ЭСКЮЭЛЬ. Язык SQL определяет набор операторов (команд), типы данных, набор встроенных функций. Так как язык SQL предназначен для манипулирования данными в реляционных базах данных и определения структуры баз данных то в него в качестве составных частей входят: язык манипулирования данными; язык определения данных;
Язык манипулирования данными состоит из четырёх основных команд: SELECT (выбрать) – извлечь данные из одной или нескольких таблиц; INSERT (вставить) – добавить строки в таблицу; UPDATE (обновить) – изменить значения полей в таблице; DELETE (удалить) – удалить строки из таблицы.
Язык определения данных используется для создания (CREATE ), изменения (ALTER), удаления (DROP) структуры базы данных и её составных частей. Основные команды языка определения данных: CREATE TABLE – создать таблицу; ALTER TABLE – модифицировать таблицу; DROP TABLE – удалить таблицу;
Примеры использования языка SQL. Например, вывести все строки таблицы Трансформаторы: SELECT * FROM Трансформаторы
Операция селекции (выборки– ) – это построение горизонтального подмножества, т.е. получение части строк, обладающих заданными свойствами. Операция выборки работает с одной таблицей и позволяет получить либо все, либо те строки таблицы, которые удовлетворяют заданному условию. Рисунок 1. Графическое изображение операции селекция.
Например, вывести все строки таблицы Трансформаторы, в которых мощность трансформаторов превышает 10000кВА:
SELECT * FROM Трансформаторы Where Sном > 10000
Операция проекции – это построение вертикального подмножества отношения, т.е. выделение подмножества столбцов таблицы. Операция проекции применяется к одной таблице и в качестве результата выдаёт таблицу, у которой оставлена только часть атрибутов и исключены строки-дубликаты.
Рисунок 2. Графическое изображение операции проекция.
Например, вывести типы трансформаторов и напряжения короткого замыкания из таблицы Трансформаторы: SELECT Тип_трансформатора, uкз FROM Трансформаторы
На практике очень часто требуется получить подмножество столбцов и строк таблицы – выполнить комбинацию селекции и проекции. Для этого достаточно перечислить столбцы таблицы и наложить ограничения на строки.
Например, получить информацию о типах трансформаторов и напряжения короткого замыкания только для трансформаторов, имеющих мощность свыше 10000кВА SELECT Тип_трансформатора, uкз FROM Трансформаторы Where Sном > 10000
Декартово произведение R*S двух отношений (двух таблиц) определяет новое отношение, представляющее из себя совокупность всевозможных конкатенаций кортежей отношений, участвующих в операции декартово произведение ( результат сцепления каждой записи из отношения R с каждой записью из отношения S). Рисунок 3. Иллюстрация операции декартово произведение.
Например, Выполнить операцию декартово произведение над двумя таблицами, содержащими информацию об электрических и механических характеристиках трансформаторов тяговых подстанций.
SELECT Трансформаторы_Эл.*, Трансформаторы_Мех.* FROM Трансформаторы_Эл, Трансформаторы_Мех Если в предложении FROM указано более одной таблицы, то эти таблицы соединяются. По умолчанию результирующая таблица представляет собой перекрёстное соединение (Cross Join) или декартово произведение.
Таблица 4. Электрические характеристики трансформаторов тяговых подстанций. Имя таблицы «Трансформаторы_Эл».
Таблица 5. Механические характеристики трансформаторов тяговых подстанций. Имя таблицы «Трансформаторы_Мех».
Таблица 6. Результат операции декартово произведение над таблицами 5 и 6.
Как правило, специалиста интересует только та часть записей декартова произведения, которая удовлетворяет некоторому условию, поэтому на основе декартова произведения строится одна из самых важных операций реляционной алгебры – операция соединения– . Например, Выполнить операцию соединение по эквивалентности над двумя таблицами, содержащими информацию об электрических и механических характеристиках трансформаторов тяговых подстанций при условии равенства ключевых полей (типов трансформаторов).
SELECT Трансформаторы_Эл.*, Трансформаторы_Мех.* FROM Трансформаторы_Эл, Трансформаторы_Мех Where Трансформаторы_Эл. Тип_трансформатора = Трансформаторы_Мех. Тип_трансформатора
Таблица 7. Результат операции соединенея по эквивалентности над таблицами 5 и 6.
Операция объединения (UNION). Результатом операции объединения двух отношений R1 и R1 является отношение, представляющее собой множество кортежей (строк), принадлежащих или отношению R1 или отношению R2. Таким образом, предложение UNION объединяет вывод двух или более SQL запросов в единый набор строк и столбцов. При этом результаты запросов должны быть совместимы, т. е. иметь одинаковое количество полей с совпадающими типами данных (быть совместимыми по объединению).
Рисунок 4. Графическое изображение операции объединение.
Например, Выполнить операцию объединение над двумя таблицами (8 и 9), содержащими информацию об электрических характеристиках трансформаторов тяговых подстанций.
SELECT .* FROM Трансформаторы_Эл1 Union SELECT .* FROM Трансформаторы_Эл2 Таблица 8. Электрические характеристики трансформаторов тяговых подстанций. Имя таблицы «Трансформаторы_Эл1».
Таблица 9. Электрические характеристики трансформаторов тяговых подстанций. Имя таблицы «Трансформаторы_Эл2».
Таблица 10. Результат операции объединение над таблицами 8 и 9.
Операция пересечение отношений R и S определяет отношение (таблицу), которое содержит записи, присутствующие как в R, так и в S. Отношения R и S должны быть совместимы по объединению. Таким образом, пересечением двух таблиц – R и S является таблица, содержащая все строки, присутствующие в обеих исходных таблицах одновременно.
Рисунок 5. Графическое изображение операции пересечение.
Например, Выполнить операцию пересечение над двумя таблицами (8 и 9), содержащими информацию об электрических характеристиках трансформаторов тяговых подстанций. SELECT .* FROM Трансформаторы_Эл1 Where Exists (SELECT .* FROM Трансформаторы_Эл2 Where Трансформаторы_Эл2. Тип_трансформатора = Трансформаторы_Эл1. Тип_трансформатора)
Пояснение. Текст запроса представляет собой структуру – запрос с подзапросом. Подзапрос подключается к внешнему запросу при помощи так называемого «квантора существования» – Exists (существует). В данном примере, в подзапросе проверяется существование совпадения значений ключевых полей.
Таблица 11. Результат операции пересечение над таблицами 8 и 9.
Разность двух отношений R и S состоит из записей, которые имеются в отношении R, но отсутствуют в отношении S. Причём отношения R и S должны быть совместимы по объединению. Таким образом, разностью двух таблиц R и S является таблица, содержащая все строки, которые присутствуют в таблице R, но отсутствуют в таблице S.
Рисунок 6. Графическое изображение операции разность.
Например, Выполнить операцию разность над двумя таблицами (8 и 9), содержащими информацию об электрических характеристиках трансформаторов тяговых подстанций.
SELECT .* FROM Трансформаторы_Эл1 Where Not Exists (SELECT .* FROM Трансформаторы_Эл2 Where Трансформаторы_Эл2. Тип_трансформатора = Трансформаторы_Эл1. Тип_трансформатора)
Пояснение. Текст запроса представляет собой структуру – запрос с подзапросом. Подзапрос подключается к внешнему запросу при помощи выражения–Not Exists (не существует). В данном примере, в подзапросе проверяется условие противоположное условию в операции пересечение.
Таблица 12. Результат операции разность над таблицами 8 и 9.
Деление Пусть отношение R, называемое делимым, содержит атрибуты (A1,A2,...,An). Отношение S - делитель содержит подмножество атрибутов A: (A1,A2,...,Ak) (k<n). Результирующее отношение C определено на атрибутах отношения R, которых нет в S, т.е. Ak+1,Ak+2,...,An. Кортежи включаются в результирующее отношение C только в том случае, если его декартово произведение с отношением S содержится в делимом R.
Рисунок 7. Графическое изображение операции деление.
Операция деления может быть выражена через выше описанные операции реляционной алгебры при помощи формулы: Например, Имеются таблицы R - «Остановки поездов на станциях» и S – «Номера поездов». Таблица 13. Остановки поездов на станциях. Таблица 14. Номера поездов.
Требуется определить имена станций из таблицы 13, на которых останавливаются все поезда из таблицы 14. Задача может быть решена применением реляционной операции деления и представлена в виде одного запроса с подзапросами на языке SQL.
Select Distinct R.Название_станции From R Where NOT Exists (Select * From S Where NOT Exists (Select * From R R1 Where R1.Название_станции = R.Название_станции and 'R1.Номер_поезда = S.Номер_поезда))
Пояснение запроса. Определить те станции из таблицы R, для которых не существует тех номеров поездов из таблицы R, для которых не существует записей об остановках в таблице R для этой станции и этого номера поезда. Это выражение дословно переводится на язык SQL. При переводе выражения на язык SQL нужно учесть, что во внутреннем подзапросе таблица R должна быть переименована, для того чтобы отличать её от экземпляра этой же таблицы, используемой во внешнем запросе. Директива Distinct (несовпадающий) необходима для исключения дублирования строк в результирующем отношении.
Содержание отчёта. 1) Номер, название, цель и задача лабораторной работы. 2) Графические изображения и описания оборудования системы тягового электроснабжения по заданному варианту. 3) Распечатки текстов подпрограмм – обработчиков событий. 4) Вид интерфейса приложения баз данных в интегрированной среде разработчика с подробным описанием элементов интерфейса (примерный вид интерфейса приведён на рисунке 7). 5) Вид интерфейса приложения баз данных при выполнении статического запроса (примерный вид интерфейса приведён на рисунке 8). 6) Вид интерфейса приложения баз данных при выполнении динамического запроса (примерный вид интерфейса приведён на рисунке 9). 7) Выводы по работе и проблемы, возникшие при выполнении лабораторной работы.
Рисунок 8. Интерфейс с отображением данных в режиме сетки и в режиме формы в процессе разработки. Для отображения в режиме сетки используется компонент DBGrid, а режиме формы компоненты DBImage и DBMemo. Для формирования динамического запроса используется компонент Memo.
Рисунок 9. Интерфейс с отображением данных в режиме сетки и в режиме формы при выполнении приложения баз данных. Выполнен статический запрос для визуализации данных из таблицы «Трансформаторы».
Рисунок 10. Интерфейс с отображением данных в режиме сетки и в режиме формы при выполнении приложения баз данных. Выполнен динамический запрос на основе операции селекция для визуализации данных из таблицы «Трансформаторы».
Контрольные вопромы и задачи. 1) В чём принципиальное отличие отображения данных в режиме сетки и в режиме формы. 2) Какими дополнительными свойствами обладает компонент DBImage в сравнении с компонентом Image. 3) Какими дополнительными свойствами обладает компонент DBMemo в сравнении с компонентом Memo. 4) Каким образом можно занести иллюстрацию (фото, рисунок, схему и т.п.) в базу данных. 5) Каким образом можно занести объёмный текст (подробное описание технических характеристик оборудования системы тягового электроснабжения) в базу данных. 6) В чём принципиальное отличие статического запроса от динамического. 7) Какие компоненты страницы dbGo предназначены для формирования и выполнения запросов к базе данных на языке SQL. 8) Какие компоненты страницы dbGo способны выполнять запросы на языке SQL с возвращением набора данных клиенту. 9) Какие компоненты страницы dbGo не возвращают результаты запроса клиенту. 10) В чём отличие операции объединения от операции соединения. 11) Какие по смыслу запросы реализуются операцией деление.
Лабораторная работа №3 (№10). Создание приложения баз данных по системе клиент/сервер. Цель работы. Освоение технологии создания трёхуровневой системы базы данных: «Тонкий клиент» – «Сервер приложений» – «Сервер баз данных». Постановка задачи. Создать в Delphi приложения «Тонкий клиент»и «Сервер приложений» для организации статических и динамических запросов к базе данных, содержащей информацию об оборудовании системы тягового электроснабжения и расположенной на сервере баз данных MS Access. Теоретические сведения к работе. Технология MIDAS (Multi-tier Distributed Application Services Suite – сервис для создания многоуровневых распределённых приложений) была предложена фирмой Borland. И с тех пор практически все приложения для работы с базами данных создаются именно на основе MIDAS. О преимуществах. Даже простое разделение приложения на две части, одна из которых работает с базой данных (сервер приложений), а другая обеспечивает интерфейс пользователя, создает значительные удобства как при разработке приложения, так и при его использовании. Чаще всего создается трехзвенное приложение, в котором сервер приложений просто соединяет сервер БД с клиентской частью, просто абстрагируя работу с базой данных. С одной стороны, это даёт некоторое преимущество при переходе с двухуровневой технологии (клиент-сервер) на трехуровневую, для чего компоненты доступа к базе данных из клиентской части переносятся в сервер приложений. С другой стороны, хочется большего, а именно переноса на сервер не только работы с таблицами базы данных, но и основной логики приложения, оставляя клиентской части только задачу взаимодействия с пользователем. В лабораторной работе рассматривается очень простое приложение для работы с сервером баз данных MS Access. Два других уровня – тонкий клиент и сервер приложений строятся на основе Delphi. С его помощью демонстрируются некоторые способы создания полноценного сервера приложений, обеспечивающего полную обработку данных.
Порядок выполнения работы. I. Разработка сервера приложений. 1. Создать обычное приложение Delphi. 2. На форму приложения добавить одну кнопку, предназначенную для завершения работы сервера приложений (рисунок 1). 3. Добавить в приложение модуль с именем «Remote Data Module» - удалённый модуль данных. Путь к модулю: File\New\Other\Delphi Projects\Multitier\Remote Data Module (рисунок 2). 4. В появившемся диалоговом окне следует заполнить поле с именем «CoClass Name». Например, AppServer_TCE_111_Ivanov (рисунок 3). В дальнейшем под этим именем будет выполнена регистрация сервера приложений на удалённом компьютере. Остальные поля следует оставить без изменений. Нажать кнопку Ок. Рисунок 1. Пример интерфейса сервера приложений.
Рисунок 2. Включение в проект Delphi удалённого модуля данных – Remote Data Module. 5. Сделать активной страницу с удалённым модулем данных (рисунок 4). 6. Добавить на форму модуля компоненты для работы с базами данных по технологии ADO: TADOConnection, TADOTable, TADOQuery. Количество компонентов определяется разработчиком. 7. Добавить на форму модуля компоненты TDataSetProvider, находящиеся в разделе Data Access (рисунок 5). 8. Задать значения свойств указанным компонентам, необходимые для организации доступа к таблицам расположенным на сервере баз данных. 9. В главном меню Delphi выбрать Run\Parameters и в появившемся окне ввести значение – «/RegServer» в строку с именем «Parametrs». 10. Откомпилировать и запустить приложение. Это необходимо для регистрации сервера приложений в системе.
Рисунок 3. Задание имени серверу приложений. В примере CoClass Name = AppServer_TCE_111_Ivanov. Рисунок 4. Задание параметра «/RegServer», необходимого для регистрации сервера приложений в системе. Рисунок 5. Расположение компонента провайдера – TDataSetProvider в палитре компонентов Delphi. II. Разработка приложения «Тонкий клиент». 1. Создать обычное приложение Delphi. 2. На форму приложения добавить компонент TDCOMConnection (рисунок 6), который находится в разделе DataSnap Client. Рисунок 6. Расположение компонента TDCOMConnection в палитре компонентов Delphi. 3. Произвести настройку соединения этого компонента с удалённым модулем данных на сервере приложений. В первую очередь задать значение свойства ServerName из выпадающего списка. После этого автоматически создастся глобальный уникальный идентификатор в поле ServerGUID. И, наконец, свойство Connected переключить в true (рисунок 7). Рисунок 7. Настройка свойств компонента TDCOMConnection, обеспечивающего связь с удалённым модулем данных Remote Data Module. 4. Перенести на форму компонент TClientDataSet, расположенный в разделе Data Access палитры компонентов (рисунок 8). Настроить его свойства (рисунок 9). В первую очередь задать значение свойства RemoteServer – в нашем примере это DCOMConnection1. Затем выбрать провайдера – свойство ProviderName – в нашем примере DataSetProvider1. И, наконец, устанавить свойство Active в true. 5. Добавить на форму компоненты, необходимыми для отображения набора данных, как в режиме сетки, так и в режиме формы (рисунок 10). Настроить все необходимые свойства. Рисунок 8. Расположение компонента TClientDataSet в палитре компонентов Delphi – страница Data Access. Рисунок 9. Настройка свойств компонента TClientDataSet, предназначенного для формирования запросов через провайдера – DataSetProvider1 к базам данных, расположенным на сервере баз данных. Рисунок 10. Пример интерфейса приложения «Тонкий клиент» в среде разработчика Delphi. Таблица базы данных отображается как в режиме сетки, так и в режиме формы. III. Программирование статических и динамических запросов к базам данных, расположенных на сервере баз данных. Некоторые примеры программного кода подпрограмм - обработчиков событий в приложении «Тонкий клиент».
1. Удаление таблицы из базы данных. Листинг 1. procedure TForm2.Button1Click(Sender: TObject);
Дата добавления: 2014-12-25; Просмотров: 930; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |