Основы программирования в Linux - Мэтью Нейл
Приложение для работы с базой данных компакт-дисков
Сейчас мы покажем, как вы можете создать простую базу данных для хранения информации о ваших компакт-дисках и затем разработать программу для доступа к этим данным. Для простоты вы ограничитесь тремя таблицами в базе данных с очень простыми связями между ними.
Начните с создания новой базы данных и затем сделайте ее текущей базой данных.
mysql> <b>create database blpcd;</b>Query OK, 1 row affected (0.00 sec)mysql><b> use blpcd</b>Connection id: 10Current database: blpcdmysql>Теперь вы готовы к проектированию и созданию необходимых вам таблиц.
Эта версия немного сложнее предыдущей, потому что вы выделите три отдельных элемента компакт-диска: исполнителя (или группу), элемент главного каталога и дорожки. Если вы подумаете о коллекции компакт-дисков и компонентах, ее составляющих, то поймете, что каждый компакт-диск состоит из ряда разных дорожек, но различные компакт-диски связаны друг с другом многими параметрами: исполнителем или группой, компанией, производящей их, представленным музыкальным стилем и т.д.
Вы могли бы сделать базу данных очень сложной, попытавшись сохранить все эти разные параметры, но в данном примере ограничьте себя только двумя самыми важными связями.
Во-первых, каждый компакт-диск состоит из переменного количества дорожек, поэтому вы будете хранить данные о дорожке в таблице, отделенной от остальных данных компакт-диска. Во-вторых, у каждого исполнителя (или группы) часто несколько альбомов, поэтому было бы удобно сохранять сведения об исполнителе один раз, а затем отдельно извлекать все компакт-диски, записанные этим исполнителем. Вы не будете пытаться разбить группы на разных исполнителей, которые, возможно, выпустили сольные альбомы, или работать со сборными компакт-дисками — вы будете стараться сохранять структуру вашей коллекции простой!
Связи тоже сохраняйте очень простыми — каждый исполнитель (им может быть название группы) выпустил один или несколько компакт-дисков и каждый компакт-диск состоит из одной или нескольких дорожек. Связи или отношения в вашей базе данных представлены на рис. 8.8.

Рис. 8.8
Создание таблиц
Сейчас вы должны определить реальную структуру таблиц. Начните с основной таблицы — таблицы компакт-дисков (
cdidТаблица исполнителей (
artisttrackСначала таблица компакт-диска:
CREATE TABLE cd ( id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(70) NOT NULL, artist_id INTEGER NOT NULL, catalogue VARCHAR(30) NOT NULL, notes VARCHAR(100));Приведенный программный код создает таблицу с именем
cd□ столбец
id□ столбец
title□ столбец
artist_idartist□ столбец
catalogue□ столбец
notesУчтите, что только столбец
notesNULLТеперь таблица
artistCREATE TABLE artist ( id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(100) NOT NULL);И снова у вас столбец
idИ наконец, таблица
trackCREATE TABLE track ( cd_id INTEGER NOT NULL, track_id INTEGER NOT NULL, title VARCHAR(70), PRIMARY KEY(cd_id, track_id));Обратите внимание на то, что на этот раз вы объявили первичный ключ несколько иначе. Таблица
trackСохраните эти SQL-операторы в текущем каталоге, в файле, названном create_tables.sql, и затем двигайтесь дальше и создайте базу данных и таблицы в ней. Готовый пример сценария содержит дополнительные строки, по умолчанию помеченные как комментарий, в них удаляются эти таблицы, если они уже существуют.
$ <b>mysql -u rick -р</b>Enter password:Welcome to the MySQL monitor. Commands end with ; or g.mysql> <b>use blpcd;</b>Database changedmysql> <b>. create_tables.sql</b>Query OK, 0 rows affected (6.04 sec)Query OK, 0 rows affected (0.10 sec)Query OK, 0 rows affected (0.00. sec)mysql>Обратите внимание на применение команды
.Вы могли бы создать таблицы, выполнив операторы SQL или просто набирая данные с помощью обозревателя запросов MySQL Query Browser.
После того как таблицы созданы, их можно просмотреть, используя MySQL Administrator (рис. 8.9), в котором вы проверяете таблицу индексов базы данных
blpcd