|
Программирование >> Программный интерфейс приложений
таблице на соответствие записей в другой таблице. Мощь реляционных СУБД заключается в их способности выбирать соответствующие данные из этих таблиц и создавать ответы на вопросы, которые нельзя получить только из одной такой таблицы. Приведем пример того, как реляционная база данных объединяет данные в таблицы и связывает данные из одной таблицы с данными из другой таблицы. Предположим, что вы сопровождаете Web-узел, представляющий сервис размещения баннеров. Вы поддерживаете контакт с компаниями, которые хотят разместить свою рекламу. Эта реклама будет появляться при каждом посещении ващего Web-узла. Всякий раз, когда посетитель ващего узла попадает на одну из ващих страниц, вы вместе с ней посылаете встроенную рекламу на броузер посетителя и получаете с рекламируемой компании небольшой гонорар. Для отображения этой информации воспользуемся тремя таблицами (рис. 1.1). Первая таблица company содержит столбцы с именами компаний, номером, адресом и телефонным номером. Вторая таблица ad содержит номера реклам, компаний, которым принадлежат эти рекламы, сумму, которую вы берете с них за один доступ к их рекламе. Третья таблица hits регистрирует количество обращений к рекламе и дату, когда это произошло. Ответы на некоторые вопросы можно получить, пользуясь информацией из одной таблицы. Для определения количества компаний, с которыми у вас имеются контракты, достаточно посчитать строки в таблице company. Аналогично, для подсчета количества обращений за определенный период времени достаточно таблицы hit. Другие вопросы посложнее и, для получения ответов на них, необходимо опросить не одну, а несколько таблиц. Например, для определения, сколько раз было сделано обращение ко всем рекламам компании Pickles, Inc. 14 июля вам потребуется просмотреть три таблицы. 1. По названию компании (Pickles, Inc.) в таблице company определить номер компании (14). 2. По номеру компании найти соответствующие ему записи в таблице ad, содержащие номера рекламы. В нашем примере мы видим две такие записи 48 и 101. 3. С помощью номера рекламы для всех HaitaeHHbix в таблице ad записей определить соответствующие записи в таблице hit, попадающие в нужный диапазон дат, а затем подсчитать количество совпадений. Найдено три совпадения для рекламы номер 48 и два совпадения для рекламы номер 101. На первый взгляд, непросто. Но это лишь основа, на которой зиждется совершенство реляционных баз данных. Здесь сложность несколько иллюзорна. Ибо каждый только что описанный шаг содержит нечто большее, чем простые операции выборки: вы связываете одну таблицу с другой с подбором значений из строк одной таблицы со строками другой таблицы. Эта простая операция может быть использована различными способами для получения ответов на следующие вопросы. Сколько различных реклам имеет каждая компания? Рекламы какой компании наиболее популярны? Сколько дохода приносит каждая реклама? Каков полный гонорар от каждой компании за текущий период? Таблица company
Таблица ad company num 14 23 17 13 23 23 23 13 23 14 13 ad num C31>n 49 52 55 62 63 64 77 99 102 119 hit fee 0.01 0.02 0.01 0.03 0.02 0.01 0.02 0.03 0.03 0.01 0.01 0.02 Таблица hit
Рис. 1.1. Таблицы учета баннерной рекламы Теперь вы достаточно знаете теорию реляционных баз данных, чтобы понять оставшийся материал, изложенный в этой книге. Здесь мы не будем углубляться в изучение третьей нормализованной формы, диаграмм Сущность-связь и других высоконаучных проблем. Если вы и вправду хотите вникнуть в эти вопросы, что само по себе уже страшно, я могу предложить вам обратиться к трудам таких столпов науки о базах данных, как Кодд или Дейт. Терминология языка запросов SQL Для общения с СУБД MySQL применяется язык, называемый SQL (Stuctured Query Language - Язык структурированных запросов). В настоящее время SQL является стандартом работы с базами данных. Все основные СУБД понимают его. SQL включает много разных типов операторов, разработанных для взаимодействия с базами данных. Как и в случае с другими языками, SQL при первом знакомстве может показаться несколько странным. Например, создавая таблицу, необходимо указать СУБД MySQL, какую структуру она должна иметь. Вы и я можем представить себе таблицу в виде диафаммы или рисунка, но СУБД MySQL этого не может. Таким образом, создать таблицу можно, только сказав СУБД MySQL что-то вроде следующего. CREATE TABLE company ( company name CHRR(30) , company num INT, address CHAR(30) , phone CHAR(12) Новичку такой оператор может показаться странным, но совсем не надо быть программистом, чтобы научиться эффективно применять его с SQL. Познакомившись с этим языком ближе, вы будете смотреть на оператор create table в другом свете: как на союзника, помогающего описывать информацию, а не как на колдовскую головоломку, состоящую из битов. Терминология архитектуры СУБД MySQL СУБД MySQL использует фадиционную архитектуру клиент/сервер, поэтому, работая с СУБД MySQL, пользователь реально работает с двумя профаммами. Профаммой сервера базы данных, расположенной на компьютере, где хранится база данных. Она прослушивает запросы клиентов, поступающие по сети, и осуществляет доступ к содержимому базы данных для предоставления информации, которую запрашивают клиенты.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |