Здравствуйте. Установлена RAD Studio 11.3, у которой отсутствует вкладка BDE и, соответственно, компонент Table, который обеспечивает доступ к таблице средствами механизма BDE.
|
Введение в базы данных
Базы Данных
Базы Данных – довольно большая и серьезная область программирования. Ни одно предприятие, фирма или организация сегодня не обходятся без программ, обеспечивающих работу с Базами Данных. Что же такое БД (База Данных)?
Представьте себе, например, библиотеку. В любой библиотеке ведется учет книг. Они регистрируются по автору, по содержанию, по издательству, по регистрационному номеру и так далее. Теперь представьте, что библиотекарю требуется создать отчет по количеству книг какого-то конкретного автора. Если вся регистрация хранится только в виде бумажных карточек, то перед библиотекарем стоит довольно непростая задача. Этот автор мог написать не одну книгу, а десяток, каждая книга в библиотеке может быть представлена в 5-10 экземплярах, и еще не факт, что все карточки лежат по порядку. Следовательно, библиотекарю придется перебрать все карточки, чтобы быть уверенным, что отчет правильный. А если этих карточек в библиотеке несколько миллионов?!
Здесь придут на помощь Базы Данных. База Данных – это механизм ввода, сохранения и выборки информации по различным параметрам. Допустим, сейчас библиотекарю велели создать отчет по количеству книг какого-то автора. Библиотекарь этот отчет создал. А на следующий день от него потребовали отчет по количеству книг какой-то тематики, например, отдельно по математике и по физике. Если книги не зарегистрированы в Базе Данных, то библиотекарю проще уволиться, чем делать такую непомерную работу. А вот если есть компьютер, и если установлена специальная программа с базами данных, то создать подобный отчет – дело нескольких минут.
В старых языках программирования и СУБД (Систем Управления Базами Данных) под термином База Данных понимался файл, в котором данные хранятся в табличном представлении. Такими СУБД, например, являются dBase, Clipper, FoxPro и т.п.
Сейчас под понятием База Данных понимают, как правило, папку, в которой может храниться большое количество таблиц. Причем эти таблицы обычно связаны друг с другом, и случайное удаление одной таблицы может привести к разрушению всей БД.
Базы Данных могут быть трех различных типов:
Локальные БД. Это приложения, использующие механизм работы с БД, которые находятся на этом же компьютере и не используемые другими компьютерами.
Сетевые БД. По своей сути, они похожи на локальные. Сама База Данных может лежать на общесетевом диске или папке. При этом различные компьютеры в организации работают с этой общей базой данных, то есть все сотрудники организации имеют доступ к этой БД, вносят в нее данные, делают выборку и т.п.
Клиент – Серверные приложения. Это самая "продвинутая" модель работы с БД, и обычно используется в крупных предприятиях, в которых требуется обрабатывать большое количество данных. Суть этой модели в следующем. На главном компьютере (сервере) хранится общая База Данных. Кроме того, на нем запущена специальная программа – серверная СУБД, которая получает запросы от пользователей (клиентов), обрабатывает их и возвращает результат. Такая модель БД резко снижает нагрузку на сеть и увеличивает надежность сохранения данных.
Ведь в случае сетевой БД каждый клиент загружает свою копию общей БД, изменяет ее и затем прописывает изменения в общую БД. А в это же время другой клиент может прописывать свои изменения в эту же БД. Если программист не очень хорошо разработал доступ к БД и индексацию, то эту Базу Данных очень легко разрушить. В клиент – серверной модели это исключено. Серверная СУБД обрабатывает запросы по очереди, и возвращает каждому клиенту свой результат. Причем клиенту возвращается не вся таблица, а именно то, что он запрашивал, то есть, в зависимости от запроса клиента сервером была сформирована выборка из базы данных, которая и передана клиенту.
Изначально среда Delphi не ориентирована на работу с Базами Данных, однако реализация механизмов для работы с БД настолько разнообразна, что делает Delphi одним из самых мощных и удобных сред разработки приложений БД. Среди этих механизмов можно назвать BDE, ODBC, ADO и множество других. Более того, сторонние разработчики также разрабатывают механизмы для доступа к БД, так что Delphi на сегодняшний день может работать почти со всеми существующими форматами БД. На сегодняшний день у Delphi нет сколь-либо серьезных конкурентов для разработки программного обеспечения, использующего базы данных.
Однако для начала разберемся с терминологией.
Поле. Это столбец таблицы, общий для всех записей. Например, поле "Фамилия".
Запись. Строка таблицы, описывающая какой то объект. Например, какой то автор, у которого в поле "Фамилия" записано "Иванов", а в других полях – другая информация, относящаяся к этому автору.
Таблица. Набор записей в Базе Данных.
База Данных. Одна или несколько таблиц, связанных друг с другом.
Теперь представим себе саму таблицу.
№ | Фамилия | Имя | Отчество | Год рождения |
---|---|---|---|---|
1 | Лермонтов | Михаил | Юрьевич | 1814 |
2 | Пушкин | Александр | Сергеевич | 1799 |
3 | Толстой | Алексей | Константинович | 1817 |
4 | Толстой | Лев | Николаевич | 1828 |
Здесь столбцы "№", "Фамилия" и так далее являются полями таблицы. Строки – "1", "2" и так далее – записями таблицы. Каждая запись соответствует информации об авторе. Причем обратите внимание, что строки под номером 3 и 4 имеют в поле "Фамилия" одинаковые данные, хотя они относятся к разным авторам. Для этого и было введено поле "№", чтобы однозначно идентифицировать автора. Такое поле называется первичным ключом, или просто ключевым, и именно по нему будет производится выборка данных. Таким образом, книги Л.Н. Толстого никогда не попадут в каталог автора А.К. Толстого.
Первичным ключом называется поле, которое позволяет однозначно идентифицировать запись.
Теперь представьте себе другую таблицу – каталог книг.
№ | Автор | Наименование | Кол-во экз. |
---|---|---|---|
1 | 4 | Детство, Отрочество, Юность | 20 |
2 | 4 | Война и мир | 15 |
3 | 4 | Два гусара | 14 |
4 | 3 | Сборник стихотворений | 5 |
Здесь поле "№" идентифицирует уже книгу, а не автора. А в поле "Автор" нет фамилии, имени и отчества, зато присутствует номер – идентификатор автора из первой таблицы. Теперь, если связать поле "Автор" этой таблицы с полем "№" предыдущей, мы можем в отчете получить полную информацию и о книге, и об авторе. Такие таблицы называются реляционными, то есть, связанными, и на сегодняшний день являются наиболее распространенными.
Индекс - это еще один способ отличить одну запись от другой. Но, в отличие от первичного ключа индекс не обязательно должен быть уникальным. Индексацию записей применяют для ускорения и облегчения таких действий с таблицей, как фильтрация записей, их сортировка и поиск нужной записи. Если мы сделаем поле "Фамилия" первой таблицы индексным, то сможем сортировать данные по этому полю, что обеспечивает более быстрый поиск данных. Например, если мы не знаем имени и отчества данных, то можем искать автора по фамилии. Указав в строке поиска "Толстой", мы получим книги всех авторов, носящих такую фамилию. Среди этого списка уже проще найти нужную информацию.