Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ПП1 (C++ БД).doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
5 Мб
Скачать
☆

Работа 2.1. Начальное создание базы данных

[1], с.555-579; [2], с.134-146; [3], с.588-609

Цель: Изучение приемов работы с утилитой DBD.

Результат: Студент должен получить интерфейс, аналогичный рис. 85.

Вспомогательное средство: Утилита DataBaseDesktop (DBD).

Вспомогательный теоретический материал Общие сведения о базах данных

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

В рамках данной дисциплины мы будем рассматривать БД наиболее распространённого типа – реляционную (от английского relation–отношение). С другими типами БД студент знакомится в рамках других курсов. Базу данных следует рассматривать с двух точек зрения: абстрактно, не привязываясь к её физической реализации, и физически, когда данные размещены на компьютере.

Абстрактная база данных – это набор логически связанных таблиц, отражающих реальные отношения данных той предметной области, для которой база построена.

Физическая база данных – это набор файлов, связанных программным путём, причём обычно одной таблице абстрактной БД соответствует один физический файл (хотя и существуют варианты, когда все таблицы БД хранятся в одном неоднородном физическом файле, например система Access).

В литературе часто понятие «таблица базы данных» и «файл базы данных» употребляются как синонимы, хотя с инженерной точки зрения это различные категории.

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

Ниже приведён пример таблицы (рис. 85) с именем «список», содержащей сведения о студентах некоторой группы. Эта таблица будет в дальнейшем использоваться в примерах по работе с базами данных.

ФИО

Год поступления

Год рождения

Средний балл

Петров А.И.

2007

1987

4.2

Сидоров Н.С.

2006

1987

3.3

Иванов К.М.

2007

1984

4.6

Рис. 85. Таблица «Список» базы данных

Этой таблице соответствует файл «Spisok.db», состоящий из записей фиксированной длины и имеющий такую же структуру полей каждой записи (рис. 86), но имена полей должны быть записаны по правилам составления имен идентификаторов. Количество записей в файле равно количеству строк в таблице.

FIO

GodPostupl

GodRojd

SredBall

Петров А.И.

2007

1987

4.2

Сидоров Н.С.

2006

1987

3.3

Иванов К.М.

2007

1984

4.6

Рис. 86. Файл «Spisok.db», соответсвующий таблице «Список»

Обратите внимание на расширение имени файла – db (от англ. data base– база данных). Обычно расширение имени автоматически создаёт та СУБД(см.ниже), с которой вы работаете.

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

Создают базы данных и обрабатывают запросы к ним системы управления базами данных – СУБД. Существует множество СУБД, различающихся своими возможностями: Paradox, dBase, Microsoft Access, FoxPro, Oracle, InterBase, Sybase и много других. Студент должен самостоятельно ознакомиться с их особенностями.

Каждая таблица БД отражает различные аспекты предметной области, например, таблица «Список» – список студентов, таблица «Экзамен» –перечень оценок каждого студента, то есть его зачётную книжку, а таблица «Паспорт» – паспортные данные студента. Любая пара связанных таблиц характеризуется характером их связи или отношением, при этом одна таблиц является ведущей или главной, а другая – ведомой или вторичной. Можно выделить различные типы отношений между такими таблицами. По смыслу ясно, что одному студенту соответствует один паспорт; тогда говорят, что таблица «Паспорт» находится с таблицей «Список» в отношении 1:1 или «один к одному». В таблице «Экзамен» одному студенту соответствует несколько записей, так как разные студенты сдали различное число экзаменов. Такое отношение называют «один ко многим» или 1:N. Существует и отношение N:1 «многие к одному» которое возникает, когда например, существовала бы таблица «Город» – тогда многим студентам ведущей таблицы соответствовал бы только один город.

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

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

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

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