
- •«Современные методы разработки программ». Этапы решения задачи
- •Постановка задачи.
- •Техническое задание
- •Разработка структуры базы данных
- •Написание кодов
- •Отладка и внедрение
- •База данных
- •Поля таблицы
- •Ключи и индексы.
- •Способы доступа к данным.
- •Связь между таблицами.
- •Создание базы данных
- •Псевдонимы базы данных
- •Создание таблицы
- •Задание полей
- •Задание свойств таблицы (Table properties)
- •Свойство Validity Checks – проверка правильности значений.
- •Свойство Table Lookup – таблица просмотра
- •Свойство Table Language – язык таблицы
- •Изменение структуры таблицы с помощью Database Desktop
- •Изменение в реестре для корректного отображения русского языка
- •О бзор компонентов Delphi, используемых для связи с бд.
- •Форма модуль данных Data Module
- •Компонент Database
- •Компонент Table
- •Свойства, которые доступны программным путем
- •Методы компонента tTable
- •События компонента tTable.
- •К омпонент Query
- •Свойство sql
- •Query и Параметры
- •К омпонент DataSource
- •Свойства
- •События
- •Компонент dbNavigator
- •Компоненты визуализации и управления данными со страницы Data Control Компонент dbGrid
- •События
- •Другие компоненты визуализации
- •П ример простейшего приложения с использованием компонента Table
- •Основы языка sql. Общие сведения.
- •Отбор данных из таблиц. Оператор выбора Select
- •Совокупные характеристики
- •Вложенные запросы.
- •Объединение таблиц.
- •Соединение union
- •Модификация записей Вставка записи
- •Values(‘Орлов’,’Александр’,’Иванович’,’м’,’23.04.1981’,’Гродно’)
- •Редактирование записи
- •Удаление записи
- •Операции с таблицами Создание таблицы
- •Изменение структуры таблицы
- •Удаление таблицы
- •Операции с индексами
- •Создание индекса
- •Удаление индекса
Способы доступа к данным.
При выполнении операций с таблицами используется один из следующих способов доступа к данным:
навигационный;
реляционный.
Навигационный способ доступа заключается в обработке каждой отдельной записи таблицы. Этот способ обычно используется в локальных БД или в удаленных БД небольшого размера. Если необходимо обработать несколько записей, то все они обрабатываются поочередно. Реляционных способ доступа основан на обработке сразу группы записей. Так как реляционный способ доступа основывается на SQL- запросах, то его также называют SQL-ориентированным. Этот способ ориентирован на выполнение операций с удаленными БД.
Связь между таблицами.
БД может состоять из одной таблицы, но обычно реляционная БД состоит из набора взаимосвязанных таблиц. Существуют следующие виды связи:
отношение один-к-одному;
отношение один-ко-многим;
отношение много-к-одному;
отношение много-ко-многим.
На практике используются два первых типа связи. При этом, одна таблица считается главной, а вторая подчиненной. Отношение один-к-одному означает, что одной записи главной таблицы соответствует одна запить в подчиненной таблице. Такое отношение обычно используется при разбиении таблицы с большим числом полей на несколько таблиц. Отношение один-ко-многим означает, что одной записи главной таблицы соответствует несколько записей в подчиненной таблице. Этот вид отношения встречается наиболее часто. Отношение много-к-одному отличается от отношения один-ко-многим только направлением. Отношение много-ко-многим на практике используется редко. Причинами являются сложность организации связи между таблицами и взаимодейтмвия между их записями. Кроме того, многие СУБД, в том числе и Paradox, не поддерживают организацию ссылосной целостности для подобного отношения. Отметим также, что для отношения «много-ко-многим» понятия главной и подчиненной таблицы лишаются смысла.
Пример структуры базы данных задачи «Платное обучение студентов и слушателей»
Основную таблицу, по которой можно будет однозначно идентифицировать слушателя, назовем OSNDAN с ключевым полем tn (уникально для каждого слушателя). В эту таблицу мы также включим (для упрощения) фамилию, имя и отчество слушателя (хотя, в действительности, лучше создать отдельную таблицу для фио, т. к. фамилия на протяжении учебного года может меняться (например, в связи с замужеством).
Таблица OSNDAN (основные данные) с полями tn (табельный номер слушателя, ключевое поле), fam (фамилия), im (имя), otch (отчество) , sex (пол), datar (дата рождения), mestor (место рождения).
Таблица PASP (паспорт) с полями kod_pasp (ключевое поле таблицы), tn (табельный номер слушателя), ln (личный номер), npasp (номер паспорта), datav (дата выдачи паспорта), datad (дата действия), kemv (кем выдан).
Т
аблица справочник VIDPRIK (вид приказа: о зачислении, об отчислении, о выпуске, о переводе на курс) с полями kod_vidprik (код вида приказа), name_vidprik(название вида приказа)
Таблица PRIK (приказ) с полями kod_prik (код приказа), nomerprik (номер приказа), dataprik(дата приказа).
Т
аблица SPRIK (записи приказов слушателя) с полями kod_sprik (код приказа), tn (табельный номер слушателя), kod_prik (код приказа), kod_vidprik (код вида приказа, textprik (текст приказа).
Таблица справочник FOB (форма обучения: дневная, заочная вечерняя) с полями kod_fob (код формы обучения), name_fob (название формы обучения)
Таблица - справочник SPEC (специальность) с полями kod_spec (код специальности), name_spec (название специальности)
Таблица OBUCH (обучение) с полями kod_obuch (ключевое поле таблицы), tn (табельный номер слушателя), kod_fob (код формы обучения) ), kod_spec (код специальности), kyrs (курс), ndata (начальная дата обучения), kod_sprik (записи приказов слушателя).
Таблица DOPL (начисления) с полями kod_dopl (ключевое поле таблицы), tn (табельный номер слушателя), syma (сумма начисления), ndata (начальная дата начисления), kdata (конечная дата начисления),data_dopl (дата, до которой необходимо оплатить за обучение), kod_sprik (записи приказов слушателя).
Таблица OPL (оплаты) с полями kod_opl (ключевое поле таблицы), tn (табельный номер слушателя), syma (сумма оплаты), data_opl (дата оплаты).
При разработке структуры базы данных необходимо продумать назначение каждой таблицы и связи между таблицами. При разработке структуры каждой таблицы необходимо продумать назначение каждого поля, его тип и размер. На рис.1 представлена схема базы данных по сформулированной выше задаче. На схеме размещены все таблицы базы данных, поля и тип поля каждой таблицы, а также связи между таблицами. Обратите внимание, что тип связи между таблицами «один ко многим». На рис.2 – представлено возможное содержание таблиц.
База данных обычно содержит не одну, а множество таблиц. И очень часто пользователю необходимы данные не из одной таблицы, а сразу из нескольких связанных между собой таблиц. Создают базы данных и обрабатывают запросы к ним системы управления базами данных – СУБД. Известно множество СУБД, различающихся своими возможностями или обладающих примерно равными возможностями и конкурирующих друг с другом: Paradox, dBase, Microsoft Access, FoxPro, Oracle, InterBase, Sybase и много других.
Разные СУБД по-разному организуют и хранят базы данных. Например, Paradox, dBase, FoxPro используют для каждой таблицы отдельный файл. В этом случае база данных – это каталог, в котором хранятся файлы таблиц. В Microsoft Access, InterBase несколько таблиц хранятся как отдельный файл. В этом случае база данных – это имя файла с путем доступа к нему.
Для нашей задачи мы используем базу данных Paradox, а программные коды будем писать в среде визуальной разработки Delphi.