
- •Принципы построение бд. Понятие бд
- •Классификация бд
- •Понятие правильной базы данных
- •Этапы разработки бд
- •Этапы разработки бд. Определение типа информации, которая должна быть учтена в базе данных
- •Этапы разработки бд. Разбиение информации на объекты (сущности) и атрибуты
- •Этапы разработки бд. Отображение системы объектов (сущности) и их атрибутов на таблицы и столбцы.
- •Этапы разработки бд. Определение атрибутов, однозначно идентифицирующих каждый объект.
- •Создание и редактирование таблиц с помощью Database Desktop
- •DataBase Desktop. Описание полей. Задание индексов.
- •Использование механизма bde.
- •16. Преимущества и недостатки использования в приложениях механизма bde.
- •17. Варианты архитектуры для bde. Локальная архитектура. Архитектура «Файл-сервер».
- •1. Локальная архитектура
- •2. Архитектура «Файл-сервер».
- •18. Варианты архитектуры для bde. Архитектура «Клиент-сервер» (толстый клиент).
- •19. Варианты архитектуры для bde. Архитектура «Клиент-сервер» (тонкий клиент).
- •20. Использование компонента Ттаble. Свойства компонента Таblе.
- •21. Режимы наборов данных.
- •22. Создание таблицы утилитой Database Desktop. Создание.
- •23. Связывание таблиц Paradox (Items и Category).
- •24. Навигация по набору данных.
- •25. Поля в таблице базы данных. Объекты поля (Fields).
- •31.Способ фильтрации набора данных с использованием свойств Filter, Filtered и FilterOptions.
- •32. Поиск информации методами SetKey (или EditKey) и GotoKey.
- •34.Поиск информации методом Locate и Lookup.
- •35. Поиск информации методами FindFirst, FindPrior, FindNext и Find.
- •36. Способы сортировки.
- •37. Методы, используемые для изменения данных.
- •38. Состояние набора данных. Свойство State.
- •39. Свойства компонента tDataSource.
- •40. События DataSource.
- •41. Свойства класса tField.
- •43. Организация связи между таблица. Главная/подчиненная.
- •44. Режим кэширования изменений.
- •45. Основные сведения о языке sql.
- •46. Основные операции над таблицами в sql.
- •47. Основы синтаксиса языка sql.
- •48. Основные правила языка sql.
- •49. Оператор выбора Select.
- •50. Операции с записями в sql.
- •51. Операции с таблицами в sql.
- •52. Операции с индексами в sql.
- •53. Компонент Query. Общие сведения.
- •54. Статические и динамические запросы.
- •55. Основные свойства Query, связывание таблиц.
- •56. Основные методы компонента Query.
- •57. Формирование произвольных запросов sql.
- •58. Транзакции и проблемы многопользовательского режима работы.
- •59. Управление транзакциями, компонент Database.
- •60. Сервер InterBase. Организация данных.
- •61. Хранимые на сервере процедуры. Создание и изменение хранимых процедур.
- •62. Сервер InterBase. Виды хранимых процедур.
57. Формирование произвольных запросов sql.
//Архангельский стр.661
Приложение позволяет пользователю сформировать различные запросы Select к таблице Pers. Выпадающий список Поля (типа TComboBox, в программе назван CBFilds) заполнен именами полей, которые пользователь может выбирать из него при формировании запроса. Выпадающий список Операции, знаки (типа TComboBox, в программе назван СВОр) заполнен символами допустимых операций, функций и знаков, которые пользователь также может выбирать при формировании запроса. Окно, расположенное ниже кнопок, является компонентом типа ТМето (в программе названо MSQL). Это окно служит для отображения формируемого запроса SQL. Ниже расположена таблица DBGridl типа TDBGrid, которая через компонент DataSource связана с компонентом Query типа TQuery. Этот компонент и выполняет сформированные пользователем запросы.
58. Транзакции и проблемы многопользовательского режима работы.
При работе в сети, когда к одной и той же базе данных одновременно может обращаться несколько пользователей, может возникать множество проблем. Например, вы прочитали какую-то запись из таблицы и редактируете ее. Но, пока вы редактируете, другой пользователь может изменить эту запись или вообще удалить ее. Что тогда будет при попытке сохранить ваши изменения в этой уже отредактированной или вообще удаленной записи? Эта и множество других аналогичных проблем разрешаются с помощью механизма транзакций (transaction). Транзакция — это групповая операция, связанная с передачей сообщения. С точки зрения приложения транзакция — это группа логически связанных операторов SQL, причем только успешное выполнение всех операторов должно приводить к изменению данных сервером. Пока все операторы транзакции не выполнены, сохраняется возможность отменить их и не фиксировать результаты в базе данных. Подобный механизм необходим для надежной работы с удаленным сервером и в многопользовательском режиме.
Проблемы, возникающие при совместном доступе пользователей к одной и той же таблице можно систематизироватьследующим образом:
• Чтение незафиксированных изменений происходит, если одна транзакция прочла изменения, сделанные другой транзакцией, но еще не зафиксированные в базе данных. Если эти изменения будут отменены вносившей их транзакцией, то окажется, что прочитавшая их транзакция будет работать с ошибочными данными.
• Неповторяемое чтение данных происходит, если в момент чтения данных одной транзакцией другая транзакция изменяет эти данные. В этом случае повторное чтение тех же данных невозможно.
• Фантомные записи возникают, если одна транзакция прочла незафиксированные новые записи, созданные другой транзакцией (может быть эти записи и не будут вставлены в базу данных), или прочла записи, которые к моменту ее завершения уже удалены из таблицы другой транзакцией. В обоих случаях первая транзакция оперирует с фантомами, которых в таблице нет.
• Потерянные изменения возникают, если одна транзакция модифицирует изменения, сделанные другой транзакцией.
• Вторичные эффекты модификации могут происходить в базах данных, в которых значения одних записей зависят от значений других записей. Тогда наложения результатов одновременной работы нескольких транзакций возможны даже в случае, если транзакции оперируют с разными записями.