Литмир - Электронная Библиотека
Содержание  
A
A

Приложение для работы с базой данных компакт-дисков

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

Начните с создания новой базы данных и затем сделайте ее текущей базой данных.

mysql&gt; <b>create database blpcd;</b>

Query OK, 1 row affected (0.00 sec)

mysql&gt;<b> use blpcd</b>

Connection id: 10

Current database: blpcd

mysql&gt;

Теперь вы готовы к проектированию и созданию необходимых вам таблиц.

Эта версия немного сложнее предыдущей, потому что вы выделите три отдельных элемента компакт-диска: исполнителя (или группу), элемент главного каталога и дорожки. Если вы подумаете о коллекции компакт-дисков и компонентах, ее составляющих, то поймете, что каждый компакт-диск состоит из ряда разных дорожек, но различные компакт-диски связаны друг с другом многими параметрами: исполнителем или группой, компанией, производящей их, представленным музыкальным стилем и т.д.

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

Во-первых, каждый компакт-диск состоит из переменного количества дорожек, поэтому вы будете хранить данные о дорожке в таблице, отделенной от остальных данных компакт-диска. Во-вторых, у каждого исполнителя (или группы) часто несколько альбомов, поэтому было бы удобно сохранять сведения об исполнителе один раз, а затем отдельно извлекать все компакт-диски, записанные этим исполнителем. Вы не будете пытаться разбить группы на разных исполнителей, которые, возможно, выпустили сольные альбомы, или работать со сборными компакт-дисками — вы будете стараться сохранять структуру вашей коллекции простой!

Связи тоже сохраняйте очень простыми — каждый исполнитель (им может быть название группы) выпустил один или несколько компакт-дисков и каждый компакт-диск состоит из одной или нескольких дорожек. Связи или отношения в вашей базе данных представлены на рис. 8.8.

Основы программирования в Linux - image030.jpg

Рис. 8.8

Создание таблиц

Сейчас вы должны определить реальную структуру таблиц. Начните с основной таблицы — таблицы компакт-дисков (

cd
), в которой хранится большая часть информации. Вам нужно сохранять идентификационный номер (
id
) компакт-диска, номер каталога, название и, возможно, ваши собственные заметки. Вам также понадобится ID-номер из таблицы исполнителей, чтобы знать, какой исполнитель выпустил альбом.

Таблица исполнителей (

artist
) очень проста; сохраните в ней только имя исполнителя и уникальный идентификационный номер (id) исполнителя. Таблица дорожек (
track
) также чрезвычайно проста; вам нужен только ID компакт-диска, чтобы знать, к какому CD относится дорожка, номер дорожки и название дорожки.

Сначала таблица компакт-диска:

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
длиной до 70 символов;

□ столбец

artist_id
— целое число, которое будет использоваться в таблице
artist
;

□ столбец

catalogue
— номер длиной до 30 символов;

□ столбец

notes
до 100 символов.

Учтите, что только столбец

notes
может быть
NULL
; у всех остальных должны быть значения.

Теперь таблица

artist
:

CREATE TABLE artist (

 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,

 name VARCHAR(100) NOT NULL

);

И снова у вас столбец

id
и еще один для имени исполнителя.

И наконец, таблица

track
:

CREATE TABLE track (

 cd_id INTEGER NOT NULL,

 track_id INTEGER NOT NULL,

 title VARCHAR(70),

 PRIMARY KEY(cd_id, track_id)

);

Обратите внимание на то, что на этот раз вы объявили первичный ключ несколько иначе. Таблица

track
необычна тем, что ID каждого компакт-диска будет появляться несколько раз, ID любой заданной дорожки, скажем, дорожки 1, также будет появляться несколько раз в разных компакт-дисках. Но их комбинация всегда будет уникальной, поэтому объявите ваш первичный ключ как комбинацию двух столбцов. Такой ключ называют составным, поскольку он состоит из нескольких столбцов, участвующих в комбинации.

Сохраните эти SQL-операторы в текущем каталоге, в файле, названном create_tables.sql, и затем двигайтесь дальше и создайте базу данных и таблицы в ней. Готовый пример сценария содержит дополнительные строки, по умолчанию помеченные как комментарий, в них удаляются эти таблицы, если они уже существуют.

$ <b>mysql -u rick -р</b>

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql&gt; <b>use blpcd;</b>

Database changed

mysql&gt; <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&gt;

Обратите внимание на применение команды

\.
для получения ввода из файла create_tables.sql.

Вы могли бы создать таблицы, выполнив операторы SQL или просто набирая данные с помощью обозревателя запросов MySQL Query Browser.

После того как таблицы созданы, их можно просмотреть, используя MySQL Administrator (рис. 8.9), в котором вы проверяете таблицу индексов базы данных

blpcd
(или схему, если вы предпочитаете этот термин).

156
{"b":"285844","o":1}