Скачать 1.91 Mb.
|
Контрольные вопросы.
Лабораторная работа 10-11 Сортировка, поиск и фильтрация данных. Цель работы: ознакомиться с сортировкой записей в базе данных; поиск полей с помощью методов Locate и Lookup . Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Сортировка Порядок расположения записей в таблице БД может быть неопределенным. По умолчанию записи не отсортированы или сортируются, например, для таблиц Paradox по ключевым полям, а для таблиц dBase в порядке их поступления в файл таблицы. С отсортированными записями набора данных работать более удобно. Сортировка заключается в упорядочивании записей по определенному полю в порядке возрастания или убывания содержащихся в нем записей. Сортировка набора данных TTable выполняется автоматически по текущему индексу. При смене индекса происходит переупорядочивание записей. Таким образом, возможна по полям, для которых создан индекс. Для сортировки по нескольким полям нужно создать индекс, включающий эти поля. Задать индекс, по которому выполняется сортировка записей, можно с помощью свойств: · IndexName – указывается имя индекса, установленное при его создании; · IndexFieldName – указываются имена полей, образующий соответствующий индекс. Поиск Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая запись найдена, делает ее текущей. В этом случае в качестве результата возвращается значение True . Если запись не найдена, возвращается значение False и курсор не меняет своего положения. Формат метода: function Locate (const KeyFields: String ; const KeyValues: Variant; Options: TLocateOptions): Boolean; Список полей, по которым ведется поиск, задается в параметре KeyFields , поля разделяются точкой с запятой. Параметр KeyValues типа Variant указывает значение полей для поиска. Если поиск ведется по одному полю, то параметр содержит одно значение, соответствующие типу поля, заданного для поиска. Параметр Options позволяет задать значение, которое обычно используется при поиске строк. Этот параметр принадлежит к множественному типу TLocateOptions и принимает комбинации следующих значений: · LoCaseInsensitive –регистр букв не учитывается; · LoPartialKey – допускается частичное совпадение. На форму добавить компоненту Edit . Текст процедуры для события OnChange компоненты Edit на форме Студенты : begin table1.Locate('SFio',Edit1.Text,[loPartialKey]); end; Поиск записи по фамилии организован. Регистр букв не учитывается. Метод Lookup находит запись, удовлетворяющую условию поиска, но не делает ее текущей, а возвращает значения некоторых ее полей. Независимо от результата поиска записи указатель текущей записи в НД не изменяется. В отличие от метода Locate , метод Lookup осуществляет поиск только на точное соответствие критерию поиска значения поля поиска записи. Формат метода: function Lookup (const KeyFields: String; const KeyValues: Variant; const ResultFields: String ): Variant; В параметре ResultFields перечисляются поля, значения которых требуется получить в случае успешного поиска. Тип результата – Variant или вариантный массив. Фильтрация Фильтрацию можно отнести к одному из методов поиска. Потому что фильтрация – выбор из набора данных только тех записей, которые удовлетворяют конкретным условиям. Существуют различные методы фильтрации набора данных: ApplyRange, CancelRange, EditRangeStsrt, EditRangeEnd и Filtered. Метод Filtered осуществляет фильтрацию набора данных по значениям любого поля, метод ApplyRange выполняет фильтрацию НД по полю (или полям) текущего индекса, т.е. в отсортированном наборе данных. Метод Filtered имеет два свойства – Filtered типа Boolean и Filter типа String. Используя метод Filtered, можно указать отображение только записей, в которых поле «Фамилия » содержит значение «Иванов ». Применение фильтра к набору данных определяется свойством Filtered логического типа. Значение True определяет применение в качестве фильтра выражения, указанного в свойстве Filter : Поле [Оператор сравнения] ‘Значение’ Например, если отобразить все записи, в которых поле «Фамилия » равно значению «Сидоров», то нужно указать: Table1.Filter:=’Фамилия=’’Сидоров’’’; Задание 1. Выполнить сортировку по полю Фамилия
Условия сортировки задаются вторичными индексами. То есть сортировка по фамилии происходит по вторичному ключу IDFio так как в него первым входит поле SFio . Для того, чтобы сортировка проходила по выбранным параметрам необходимо вхождение соответствующих полей в разные вторичные ключи.
begin Case ComboBox1.ItemIndex of 0: Table1.IndexFieldNames:='SFio'; // при выборе строки « Фамилия » //сортировка идет по вторичному индексу IDFio 1: Table1.IndexFieldNames:='SSpec'; 2: Table1.IndexFieldNames:='SKurs'; 3: Table1.IndexFieldNames:='SData'; 4: Table1.IndexFieldNames:='SNom'; end; end; Замечание: во вторичный индекс IDFio входят поля: SFio , SKurs , SSpec . То есть при совпадении фамилии сортировка идет уже по курсу и т.д. Пример: Задание 2. Выполните поиск записи по полю Фамилия. 1) Добавить на главную форму новую кнопку «Поиск». 2) Открыть новую форму и ввести компоненты как показано на рисунке. Эта форма вызывается нажатием кнопки поиска на главной форме. 3) Поиск будет происходить по фамилии введенной в компоненте Edit1 после нажатия кнопки на форме «Поиск методом Lookup». procedure TForm5.Button1Click(Sender: TObject); var LookupResult: Variant; begin LookupResult:=Form1.Table1.Lookup('SFio', Edit1.Text, 'SData; SOsn; SNom; SSpec; SKurs'); // ищемполя ' Дата рождения ' //’ Основание ’, ’ Номер зачетки ’, ’ Специальность ’, ’ Курс ’ if VarIsArray (LookupResult) then begin Edit2.Text:=LookupResult[0]; // записывает значения Edit3.Text:=LookupResult[1]; // в искомых полях в Edit4.Text:=LookupResult[2]; // соответствующие Edit5.Text:=LookupResult[3]; // компоненты if Edit5.Text='False' then Edit5.Text:=' Физика ' // поиск полей логического типа else Edit5.Text:='Математика'; Edit6.Text:=LookupResult[4]; end ; end ; Задание 3. Выполните фильтрацию по числовому полю Номер зачетки и текстовому полю Фамилия 1) Добавить на форму компоненту TEdit . 2) Текст процедуры для события OnChange : begin Table1.Filtered:=true; // включение фильтрации Table1.Filter:='SNom = ‘+Edit2.Text; // задает критерий фильтрации end; 3) Этот способ фильтрации пригоден только для числовых полей. 4) При применении фильтра можно указать свойства: a. foCaseInsensitive – нечувствительность к регистру букв; b. foNoPartialCompare – поиск на точное соответствие. 5) Для фильтрации текстовых полей, например по полю «Фамилия» необходимо изменить текст процедуры. procedure TForm1.Edit2Change(Sender: TObject); begin Table1.Filtered:=true; Table1.Filter:='SFio='+#39+Edit2.Text+'*'+#39; end;
Контрольные вопросы.
Лабораторная работа 12 Определение условий ссылочной целостности Цель работы: Ознакомиться с установкой связи между таблицами Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Для связывания таблиц необходимо определить условия ссылочной целостности, то есть установить между таблицами жесткие связи. Наиболее популярны связи «один-к-одному» и «один-ко-многим». Понятие ссылочной целостности определяет допустимые операции над связанными между собой таблицами. Главное требование ссылочной целостности заключается в том, чтобы записи дочерней таблицы имели ссылки на записи родительской таблицы. Связь между двумя таблицами устанавливается по ключевым полям. Внешний ключ из дочерней таблицы соединятся с первичным ключом родительской таблицы. Для обеспечения установления связи между таблицами необходимо, чтобы первичный ключ родительской таблицы и внешний ключ дочерней таблицы имели одинаковое имя, а также состав (количество), тип и размер полей, входящих в оба ключа. При необходимости можно изменить характеристики ранее созданной связи. Задание 1 Создайте таблицу успеваемости студентов Успеваемость. В нее должны войти поля: учебный год, сессия (зима или лето), предмет, ФИО преподавателя, дата аттестации по предмету, дата сдачи, оценка.
В таблице Успеваемость надо ввести дополнительно числовое поле и определить его вторичным ключом. 2) Разместите таблицу успеваемости на форме Студенты . 3) В свойстве компоненты Table 2 Master Source написать Data Source 1. Это означает, что вторая таблица станет дочерней для первой. 4) Двойным щелчком по свойству Master Fields вызвать окно FieldLinkDesigner (Дизайнер поля связи): 5) Выбрать в списке Available Index ( Доступные индексы ) из окна Field Link Designer индекс IDGod (это вторичный индекс второй таблицы). 6) В левом списке Detail Field выделить IdU , а в правом списке Master Field (Основа) выделить Ind . 7) Нажать на кнопку Add (Добавить) и закрыть окно. 8) Таким образом между таблицами установилась связь. Она называется связь один ко многим . 9) К дочерней таблице добавить кнопки для ввода и редактирования данных также как и для таблицы Студенты. Контрольные вопросы.
Лабораторная работа 13-14 Создание объектов баз данных (отчетов) Цель работы: Ознакомиться с возможностью создания отчета. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Создание отчетов: Отчет — это печатный документ, содержащий записи БД. В Delphi для создания отчетов служит генератор отчетов QuickReport , содержащий обширный набор компонентов. Компоненты, предназначенные для создания отчетов, находятся на закладке QReport палитры компонентов. Главным элементом отчета является компонент-отчет QuickRep , представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета. Свойства компоненты QuickRep : · Bands – здесь указываются компоненты размещаемые в QuickRep . · DataSet – здесь указывается набор данных из которой отчет будет брать данные. · Frame – здесь указывается параметры рамки. · Options – здесь доступны три параметра. Если FirstPageHeader равно true , то заголовок печатается только на первой странице отчета. Если LastPageFooter равен true , то нижний колонтитул печатается только на последней странице отчета. Если установить свойство Compression в true , то отчет будет сохраняться в сжатом виде. · ReportTitle – здесь находится заголовок печатаемого документа. · SnapToGrid – нужно ли выравнивать компоненты по установленной сетке. · Zoom – масштаб отображения данных. Настройку параметров отчета можно выполнить с помощью окна Report Settings , вызываемый двойным щелчком мыши по компоненте QuckRep . Предпочтительно пользоваться именно этим окном, так как здесь всегда можно просмотреть будущий результат.
Перейти в главный модуль и по нажатию кнопки “Печать” написать следующий код. procedure TForm1.SpeedButton5Click(Sender: TObject); begin Form4.QuickRep1.Preview; // вызывается метод Preview // компонента QuickRep . Этот метод показывает окно // предварительного просмотра созданного документа. е nd ; Запустить программу, выделить какую-нибудь строку и нажать кнопку печати. Откроется окно предварительного просмотра.
Контрольные вопросы.
Лабораторная работа 15-16 Построение концептуальной модели базы данных Цель работы: научить проектировать базы данных на основе концептуальной модели; Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Этапы проектирования базы данных Процесс проектирования включает в себя следующие этапы:
Цель инфологического (концептуального) моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). Основными задачами концептуального проектирования являются определение предметной области системы и формирование взгляда на ПО с позиций сообщества будущих пользователей БД, т.е. инфологической модели ПО. Концептуальная модель ПО представляет собой описание структуры и динамики ПО, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов ПО и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое. Существуют следующие подходы к созданию концептуальной модели предметной области:
Метод "сущность–связь" (entity–relation, ER–method) является комбинацией двух предыдущих и обладает достоинствами обоих. Этап инфологического проектирования начинается с моделирования ПО. Проектировщик разбивает её на ряд локальных областей, каждая из которых (в идеале) включает в себя информацию, достаточную для обеспечения запросов отдельной группы будущих пользователей или решения отдельной задачи (подзадачи). Каждое локальное представление моделируется отдельно, затем они объединяются. Выбор локального представления зависит от масштабов ПО. Обычно она разбивается на локальные области таким образом, чтобы каждая из них соответствовала отдельному внешнему приложению и содержала 6-7 сущностей. Сущность – это объект, о котором в системе будет накапливаться информация. Сущности бывают как физически существующие (например, СОТРУДНИК или АВТОМОБИЛЬ), так и абстрактные (например, ЭКЗАМЕН или ДИАГНОЗ). Для сущностей различают тип сущности и экземпляр. Тип характеризуется именем и списком свойств, а экземпляр – конкретными значениями свойств. Типы сущностей можно классифицировать как сильные и слабые. Сильные сущности существуют сами по себе, а существование слабых сущностей зависит от существования сильных. Например, читатель библиотеки – сильная сущность, а абонемент этого читателя – слабая, которая зависит от наличия соответствующего читателя. Слабые сущности называют подчинёнными (дочерними), а сильные – базовыми (основными, родительскими). Для каждой сущности выбираются свойства (атрибуты). Различают: идентифицирующие и описательные атрибуты. Идентифицирующие атрибуты имеют уникальное значение для сущностей данного типа и являются потенциальными ключами. Они позволяют однозначно распознавать экземпляры сущности. Из потенциальных ключей выбирается один первичный ключ (ПК). В качестве ПК обычно выбирается потенциальный ключ, по которому чаще происходит обращение к экземплярам записи. Кроме того, ПК должен включать в свой состав минимально необходимое для идентификации количество атрибутов. Остальные атрибуты называются описательными и заключают в себе интересующие свойства сущности. Составные и простые атрибуты. Простой атрибут состоит из одного компонента, его значение неделимо. Составной атрибут является комбинацией нескольких компонентов, возможно, принадлежащих разным типам данных (например, ФИО или адрес). Решение о том, использовать составной атрибут или разбивать его на компоненты, зависит от характера его обработки и формата пользовательского представления этого атрибута. Однозначные и многозначные атрибуты (могут иметь соответственно одно или много значений для каждого экземпляра сущности). Основные и производные атрибуты. Значение основного атрибута не зависит от других атрибутов. Значение производного атрибута вычисляется на основе значений других атрибутов (например, возраст студента вычисляется на основе даты его рождения и текущей даты). Далее осуществляется спецификация связей внутри локального представления. Связи могут иметь различный содержательный смысл (семантику). Различают связи типа "сущность-сущность", "сущность-атрибут" и "атрибут-атрибут" для отношений между атрибутами, которые характеризуют одну и ту же сущность или одну и ту же связь типа "сущность-сущность". Каждая связь характеризуется именем, обязательностью, типом и степенью. Различают факультативные и обязательные связи. Если вновь порождённый объект одного типа оказывается по необходимости связанным с объектом другого типа, то между этими типами объектов существует обязательная связь (обозначается двойной линией). Иначе связь является факультативной. По типу различают множественные связи "один к одному" (1:1), "один ко многим" (1:N) и "многие ко многим" (M:N). Степень связи определяется количеством сущностей, которые охвачены данной связью. Пример бинарной связи – связь между отделом и сотрудниками, которые в нём работают. Примером тернарной связи является связь типа экзамен между сущностями ДИСЦИПЛИНА, СТУДЕНТ, ПРЕПОДАВАТЕЛЬ. Из последнего примера видно, что связь также может иметь атрибуты (в данном случае это Дата проведения и Оценка). Пример ER–диаграммы с указанием сущностей, их атрибутов и связей приведен на рис. 1 . Рисунок 1 - Пример ER–диаграммы с однозначными и многозначными атрибутами ПРИМЕР ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ Анализ предметной области В качестве примера возьмем базу данных компании, которая занимается издательской деятельностью. База данных создаётся для информационного обслуживания редакторов, менеджеров и других сотрудников компании. БД должна содержать данные о сотрудниках компании, книгах, авторах, финансовом состоянии компании и предоставлять возможность получать разнообразные отчёты. В соответствии с предметной областью система строится с учётом следующих особенностей:
Выделим базовые сущности этой предметной области:
Для отражения финансового положения компании в системе нужно учитывать заказы на книги. Для заказа необходимо хранить номер заказа, заказчика, адрес заказчика, дату поступления заказа, дату его выполнения, список заказанных книг с указанием количества экземпляров. ER–диаграмма издательской компании приведена на рис. 2 (базовые сущности на рисунках выделены полужирным шрифтом). Рисунок 2 - ER–диаграмма издательской компании Задание по работе: По заданному описанию предметной области построить концептуальную модель базы данных : Выделите типы сущностей; Выделите типы связей и определите для них показатели кардинальности и степень участия сторон; Выделите атрибуты и свяжите их типами сущностей и связей; Определите потенциальные и первичные ключи сущностей; Нарисуйте ER-диаграмму. и проанализируйте информационные задачи и группы Предметная область: «Итоги сессии» База данных должна содержать информацию о двух последних сессиях студентов. Источником информации являются экзаменационные ведомости. Необходимо проводить анализ успеваемости по специальностям, формам обучения, курсам, группам, предметам, вычислять средний балл по указанным критериям, а также число каждых оценок. Контрольные вопросы.
Лабораторная работа 17-18 Создание логической модели данных с помощью утилиты автоматизированного проектирования базы данных Цель работы: 1. овладение навыками работы в Erwin; 2. построение логической модели заданной предметной области Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы ERwin - средство разработки структуры базы данных (БД). ERwin сочетает графический интерфейс Windows, инструменты для построения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных СУБД и настольных баз данных. С помощью ERwin можно создавать или проводить обратное проектирование (реинжиниринг) баз данных. Сущность – это множество реальных или абстрактных объектов, например: (людей, мест, ситуаций и т.д), обладающих общими характеристиками. Первичный ключ - это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области. Альтернативный ключ- это ключ, не являющийся первичным ключом сущности. Атрибуты – характеристики сущностей, изображаемые именами внутри блоков. Связь – это отношение между двумя или более сущностями. Отношение показывает, как эти типы данных связанны друг с другом. Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой. Связь называется не идентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав не ключевых атрибутов дочерней сущности. Задание: Построить логическую информационную модель поставки товаров в соответствии с договорами средствами Erwin. Последовательность выполнения работы
Erwin имеет два уровня моделирования: логический и физический. На логическом уровне данные представляются так, как они выглядят в реальном мире. Объектами логического уровня являются сущности и атрибуты. На физическом уровне модель зависит от конкретной реализации базы данных, выбираемой пользователем. При переходе модели на физический уровень производится трансформация сущностей в таблицы, а атрибутов в поля, поэтому все имена и описания физической модели должны соответствовать принятым для выбранной СУБД соглашениям.
В верхней части окна находится титульная строка, в которой указано название программы, наименование модели, наименование подмножества (Subject Area) и хранимого отображения (Stored Display). Основную часть пространства программы занимает рабочая область, в которой создается ER-диаграмма. Для переключения между логическим и физическим уровнями на панели инструментов имеется список (рис 1.1). Рис. 1.1. Помимо этого списка, на панели инструментов имеются кнопки (см. табл. 1.1). Таблица 1.1. Кнопки, расположенные на панели инструментов программы Erwin
Для непосредственной работы с элементами модели в программе имеется палитра инструментов (Erwin Toolbox), представляющая собой «плавающее окошко» (рис. 1.2). При необходимости палитру инструментов можно убирать с экрана и вызывать нажатием комбинации клавиш «CTRL-T». |
Республики башкортостан Государственное бюджетное образовательное учреждение среднего профессионального образования |
Республики башкортостан Государственное бюджетное образовательное учреждение среднего профессионального образования |
||
Республики Мордовия Государственное бюджетное образовательное учреждение... Федерации от 22 июня 2010 года №678. Организация – разработчик Государственное бюджетное образовательное учреждение Республики Мордовия... |
Республики Татарстан Государственное бюджетное образовательное учреждение... Государственное бюджетное образовательное учреждение среднего профессионального образования |
||
Областное государственное бюджетное образовательное учреждение среднего... Областное государственное бюджетное образовательное учреждение среднего профессионального образования |
Отчет о результатах самообследования государственное бюджетное образовательное... Полное наименование образовательного учреждения в соответствии с Уставом Государственное бюджетное образовательное учреждение среднего... |
||
Отчет о результатах самообследования государственное бюджетное образовательное... Полное наименование образовательного учреждения в соответствии с Уставом Государственное бюджетное образовательное учреждение среднего... |
Образовательное государственное бюджетное учреждение среднего профессионального... Министерство здравоохранения иркутской области образовательное государственное бюджетное учреждение |
||
Республики Татарстан Государственное автономное образовательное учреждение... Государственное автономное образовательное учреждение среднего профессионального образования |
Республики Татарстан Государственное автономное образовательное учреждение... Государственное автономное образовательное учреждение среднего профессионального образования |
||
Республики Башкортостан Государственное автономное образовательное... Городская студенческая научно-практическая конференция «Наука. Фантазия. Реальность», посвященная Году экологии |
Республики Мордовия Государственное бюджетное образовательное учреждение... Разработка проекта основной профессиональной образовательной программы в соответствии с фгос-3: опыт, проблемы, перспективы |
||
Данные учреждения среднего профессионального образования Государственное бюджетное образовательное учреждение среднего профессионального образования Колледж декоративно-прикладного искусства... |
Среднего профессионального образования «государственный медицинский... Областное государственное образовательное бюджетное учреждение среднего профессионального образования |
||
Программам Государственное бюджетное образовательное учреждение среднего... Государственное бюджетное образовательное учреждение среднего профессионального образования |
Отчет о результатах самообследования (по состоянию на 01 апреля 2014г.) Полное наименование образовательного учреждения в соответствии с Уставом: государственное бюджетное образовательное учреждение начального... |
Поиск |