Дипломная (вкр): Разработка и внедрение системы анализа и статистики данных

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Реляционный способ доступа основан на обработке группы записей. Если необходимо обработать одну запись, все равно обрабатывается группа, которая рассматривается как одна. Реляционный способ основан на SQL - запросах и называется SQL ориентированным. Используется для работы с удаленной БД.

Компонент ТTable представляет набор данных, который может быть связан с одной таблицей БД. Используется для локальных БД и основан на навигационном способе доступа.

В наборе данных Table возможно указать текущий индекс, который нужен для следующих операций:

сортировка записей

поиск записей

установка связей между таблицами.

Установить текущий индекс можно с помощью свойств Index Name или Index Fieldnames muna String.

Текущий индекс выбирается из списка индексов, которые были заданы при создании таблицы.

Оба свойства Index Name и IndexFieldNames похожи и используются одинаково, но значением IndexName является имя индекса, заданное при создании таблицы, а значением свойства IndexFieldNames - имя поля, для которого был создан индекс. Если используется индекс, состоящий из нескольких полей, то для свойства IndexName по-прежнему задается имя этого индекса, а для свойства IndexFieldNames перечисляются (через точку с запятой) имена полей, которые входят в этот индекс.

Таблица хранит сведения по конкретному вопросу, например, таблица "Cards", содержит данные только о ID номере карточки и фамилия, имя владельца, а таблица "Продажи" содержит данные только о денежных операциях клиента. Для того, чтобы данные не дублировались и не происходило ошибок при их выдаче, необходимо распределить данные разного рода по разным таблицам. Данные в таблице организованны в столбцы (называемые полями) и в строки (называемые записями).

Каждое поле в таблице "Товары" (рисунок 2.5) содержит данные определенного рода о каждом товаре. Каждая запись в таблице "Товары" содержит все сведения об одном товаре, такие как название на английском и русском языках, ID позиции товара и т.д.

Таблицы БД располагаются на диске. Они являются физическими объектами. Для операции с данными, содержащимися в таблицах, используются наборы данных.

Уникальная метка, называемая ключом, используется для определения каждой записи таблицы. Подобно тому, как номерной знак однозначно определяет автомобиль, ключ определяет запись. Ключевые поля в таблицах используются для создания межтабличных связей. Например, поле "Лицевой счет" из таблицы "Реквизиты" используется для объединения сведений о товарах и заказах из разных таблиц для их вывода на печать.

Чтобы определить ключ, выделите строку с описанием нужного поля и необходимо нажать кнопку Ключ на панели инструментов.

Каждое поле имеет свойства, изменяя которые, можно управлять сохранением, обработкой и отображением данных поля.

В общем случае БД может находиться на определенном компьютере, носителе и в директории.

В качестве, которого может быть: автономный компьютер самого пользователя, сервер сети или любой другой компьютер сети.

Это можно сделать путем выделения директории (или путем создания папки) для компонентов БД.

Директорию можно создать на своем компьютере, на сервере. Кроме того, директория может быть в корневом каталоге или в подкаталоге, например:

) C: \Primer;

) C: \SYSTEMA\STUDENT\…. \Primer.

Обычно в режиме локальных баз данных работают БД (или таблицы БД), созданные в формате СУБД Paradox, dBase и FoxPro.

Присвоение БД псевдонима. Как было отмечено, что БД состоит из совокупности компонентов. Поэтому они должны имеет общее название. В технологии СУБД принято в качестве названия БД присвоить к ней псевдоним (или еще называют: алиас, alias) и тогда обращение из утилит и программы СУБД к БД будет осуществляться через ее псевдоним.

В связи с отмеченным, в утилите BDE Administrator Delphi должен быть:

зарегистрирован псевдоним БД и

указан адрес (путь) к БД.

Создание БД в Delphi или для работы в Delphi начинается с задания места расположения и хранения.

Каждая строка таблицы соответствует полю. Назначения столбцов:Name - имя поля;

Type - тип поля;

Size - размер поля (для строковых полей, поскольку иные поля подразумевают размер, определяемый типом поля);

Key - содержит звездочку '*', если поле входит в состав первичного ключа. Если в первичный ключ входит несколько полей, они должны определяться в той последовательности, в которой они присутствуют в первичном ключе. Кроме того, все поля, входящие в состав первичного индекса, должны определяться перед иными полями, то есть быть в списке полей наверху.

Определим поля, входящие в таблицу "Материалы". Введем Material в столбец Field Name. Для того, чтобы определить тип поля, щелкните по столбцу Type и нажмите клавишу пробела. В ответ на это будет выдан список типов полей, из которых необходимо произвести выбор нужного типа (рис.7).

Рис. 7. Выбор типа поля

Для того чтобы определить тип поля Namerus, нужно выбрать Alpha и затем в столбце Size указывается длина поля в символах. В столбце Key поместим звездочку, означающую, что данное поле входит в состав первичного ключа. Для этого нажмем любой символ на клавиатуре. Повторное нажатие любого символа снимает отметку звездочкой в столбце Key.

Мастер таблица по первичному ключу индексируется.

После конструирования структуры таблицы в Database Desktop можно заполнить таблицу. Отметим, что заполнение таблицы в русском алфавите может не удастся, тогда следует использовать латинский алфавит.

Чтобы запомнить сохраненную таблицу на диске, следует нажать кнопку Save As. Затем в появившемся окне следует указать имя таблицы (рис.10) При желании можно указать каталог или псевдоним, отличные от принятых по умолчанию. Напомним, что по умолчанию принимается рабочий каталог или каталог, определяемый рабочим псевдонимом

2.6.3 Запросы и их применение

С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчетов.

Наиболее часто используется запрос на выборку. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или нескольких таблиц и выводятся в определенном порядке.

Запрос можно создать с помощью мастера или самостоятельно. Во втором случае в режиме конструктора следует выбрать таблицы или запросы, содержащие нужные данные, и заполнить бланк запроса.

2.6.4 Взаимосвязи таблиц

При создании в Access схемы данных в ней определяются и запоминаются связи между таблицами. Это позволяет системе автоматически использовать связи, один раз определенные в схеме данных, при создании форм, запросов, отчетов на основе взаимосвязанных таблиц, а пользователь освобождается от необходимости указывать эти связи при конструировании этих объектов. Схема данных базы графически отображается в своем окне, где таблицы представлены списками полей, а связи - линиями между полями разных таблиц.

Одно-многозначные (1: М) или одно-однозначные (1:

) связи. Схема данных прежде всего ориентирована на работу с таблицами, отвечающими требованиям нормализации, между которыми могут быть установлены одно-многозначные (1: М) или одно-однозначные (1:

) связи, для которых может автоматически поддерживаться связная целостность. Поэтому схему данных целесообразно строить в соответствии с информационно-логической моделью.

При построении схемы данных Access автоматически определяет по выбранному полю связи тип отношения между таблицами. Если поле, по которому нужно установить связь, является уникальным ключом как в одной таблице, так и в другой, Access выявляет отношение один-к-одному. Если поле связи является уникальным ключом в одной таблице (главной таблицы связи), а в другой таблице (подчиненной таблице связи) является не ключевым или входит в составной ключ, то есть значения его могут повторяться, Access выявляет отношение один-ко-многим между записями главной таблицы к подчиненной. В этом случае можно задать автоматическое поддержание целостности связей.

Отношение многие-ко-многим. Отношение многие-ко-многим предполагает, что каждой записи в одной таблице соответствует несколько записей в другой. При этом каждая сторона отношения выглядит как отношение один-ко-многим.

Однако если рассматривать взаимосвязь таблиц с двух сторон, становится очевидным, что ни одна из таблиц не может быть главной и для их связывания необходима третья таблица.

Связующая таблица представляет собой промежуточную таблицу, которая служит мостом между двумя таблицами в отношении многие-ко-многим. Ее ключ состоит из ключевых полей этих таблиц, с каждой из которых она связана отношением один-ко-многим. Помимо ключевых полей, связующая таблица должна содержать хотя бы одно поле, которого нет в связываемых таблицах, но которое имеет значение для каждой из них. Таким образом, отношение многие-ко-многим складывается из отношений многие-к-одному и один-ко-многим.

Связи-объединения. Между двумя таблицами может быть установлена связь-объединение по некоторому полю связи. Для связи-объединения может быть выбран один из трех способов объединения записей:

а) способ 1 - объединение только тех записей, в которых связанные поля обеих таблиц совпадают (производится по умолчанию);

б) способ 2 - объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связанных во второй, с пустой записью второй таблицы;

в) способ 3 - объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой, с пустой записью первой таблицы.

Такой тип связи может быть определен, если связь характеризуется отношением 1: 1 или 1: М, а также если тип отношения не может быть определен системой, то есть если не выполняются условия для этих отношений. Например, при выборе в главной таблице в качестве поля связи неключевого поля или поля, входящего в составной ключ, Access сообщает, что тип отношения не может быть определен. В этом случае между таблицами возможно установление только связи-объединения.

Связь-объединение обеспечивает объединение записей таблиц, имеющих одинаковые значения в поле связи. Причем производится объединение каждой записи из одной таблицы с каждой записью из другой таблицы при условии равенства значений в поле связи. Кроме того, если выбран второй или третий вариант в результат объединения могут быть добавлены записи из таблицы, для которых нет логически связанных записей в другой таблице. Последние два варианта часто необходимы при решении практических задач. Примером такой задачи может быть формирование записей студентов с результатами успеваемости как в случае полученной оценки по предмету, так и при отсутствии оценки. При отсутствии оценки соответствующее поле будет пустым.

2.6.5 Создание схемы данных

Создание схемы данных начинается в окне Базы данных (Database) с выполнения команды Сервис|Схема данных (Tools|Relationships) или нажатия кнопки Схема данных (Relationships) на панели инструментов базы данных.

Включение таблиц в схему данных. После нажатия кнопки Схема данных (Relationships) открывается окно Добавление таблицы (Show Table), в котором можно выбрать таблицы и запросы, включаемые в схему данных. Для размещения таблицы в окне Схема данных (Relationships) надо выделить ее в окне Добавление таблицы (Show Table) и нажать кнопку. Добавить (Add). Для выделения нескольких таблиц надо, удерживая клавишу, щелкнуть мышью на каждой из этих таблиц. Включив все нужные таблицы в схему данных, нажать кнопку. Закрыть (Close).

В результате в окне Схема данных (Relationships) будут представлены все включенные таблицы со списком своих полей. Далее можно приступать к определению связей между ними.

Создание связей между таблицами. При определении связей в схеме данных удобно использовать информационно-логическую модель в каноническом виде, по которой легко определить главную и подчиненную таблицу каждой одно-многозначной связи, поскольку в такой модели главные объекты всегда размещены выше подчиненных. Эти связи являются основными в реляционных базах данных, т.к. одно-однозначные связи используются лишь в редких случаях, когда приходится разделять большое количество полей, определяемых одним и тем же ключом, по разным таблицам, имеющим разный регламент обслуживания.

Устанавливая в окне схемы данных связи типа 1: М между парой таблиц, надо выделить в главной таблице уникальное ключевое поле, по которому устанавливается связь. Далее, при нажатой кнопке мыши, протащить курсор в соответствующее поле подчиненной таблицы.

При создании связи по составному ключу необходимо выделить все поля, входящие в ключ главной таблицы, и перетащить их на одно из полей связи в подчиненной таблице. Для выделения всех полей, входящих в составной уникальный ключ, необходимо отмечать поля при нажатой клавише. После создания связи откроется окно Изменение связей (Edit Relationships). При этом в строке Тип отношения (Relationship Type) автоматически установится тип один-ко-многим (One-To-Many).

При составном ключе связи в окне Изменение связей (Edit Relationships) необходимо для каждого поля ключа в главной таблице таблица/запрос (Table/Query) выбрать соответствующее поле подчиненной таблицы, названной связанная таблица/запрос (Related Table/Query).

2.6.6 Создание контейнера TDataModule

Связь экранной формы с БД обеспечивается специальными компонентами, которые называются невизуальными компонентами. Эти элементы видны только в режиме конструирования, а в режиме работы системы на экране невидимы.

Если СУБД состоит из одной экранной формы, то не нужно специального хранилища в виде контейнера для хранения невизуальных компонентов. В этом случае невизуальные компоненты можно расположить на той же экранной форме, которая является единственной. В случае множества экранных форм, каждая из которых должна иметь доступ к БД, доступ организовывается следующим образом.

Для всех экранных и отчетных форм необходим доступ (связь) к БД. Причем когда СУБД имеет несколько экранных форм их доступ к БД можно осуществить двумя способами.

. Доступ каждой формы (и ее компонентов) к БД можно осуществить автономно, независимо от остальных форм.

. Второй способ предполагает не повторять для каждой формы организацию доступа к БД, а для всех экранных и отчетных форм организовать единый доступ через специальный компонент типа TDataModule. Компонент типа TDataModule представляет собой контейнер, в который можно помещать невизуальные компоненты TTable, TQuery, DataSource, которые необходимы для доступа к БД и т.д. Тогда все те формы, для которых потребуется доступ к БД, доступ получат через компонент TdataModule. Поэтому при создании СУБД для каждой экранной формы необходимо установить связь с компонентой типа TdataModule.

Таким образом, для работы СУБД необходимо создать компонент типа TDataModule.

Создание экземпляра TDataModule в среде Delphi осуществляется через пункт меню File|New Data Module.

Компонент TDataModule служит контейнером компонентов для работы с базами данных. В палитре компонентов Delphi на странице Data Access выберем мышью невизуальный компонент ТТаblе (рис. 20), щелкнем на нем мышью и затем щелкнем мышью в контейнере. После этого, изображение компоненты останется в контейнере.

Рис. 20. Палитра компонентов Delphi