MySQL 5.0. Библиотека программиста - [2]

Шрифт
Интервал

• MySQL имеет развитую систему обеспечения безопасности и разграничения доступа на основе системы привилегий (гл. 5).

MySQL представляет собой реляционную СУБД, то есть систему управления реляционными базами данных. Поэтому для построения базы данных в MySQL нам потребуются базовые понятия теории реляционных баз данных. Этим понятиям посвящается следующий раздел.

1.2. Основные сведения о реляционных базах данных

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

Таблицы

Реляционная база данных существует в виде таблиц, имеющих свои имена. На пересечении каждого столбца и каждой строки располагается одно значение.

Рассмотрим таблицу, содержащую сведения о клиентах компании (табл. 1.1).

Таблица 1.1.

Customers (Клиенты)

Строки таблицы могут храниться в произвольной последовательности и не должны повторяться.

Каждый столбец таблицы имеет имя и тип данных, которому соответствуют все значения в столбце. Так, в нашем примере столбцы с именами id и rating – числовые, а с именами name, phone и address – символьные.

По существу, таблица реляционной базы данных представляет собой набор информации об однотипных объектах. При этом каждая строка содержит сведения об одном объекте, а каждый столбец – значения некоторого атрибута этих объектов. Например, строка с идентификационным номером 533 содержит информацию об объекте, у которого атрибут name (имя) имеет значение ООО «Кускус», атрибут phone (телефон) – значение 313-48-48 и т. д.

Далее мы рассмотрим специальные столбцы таблицы – первичный и внешний ключи.

Первичный ключ

Строки таблицы неупорядочены и не имеют номеров, поэтому различить их можно только по содержащимся значениям. В связи с этим возникает необходимость рассмотреть понятие первичного ключа (primary key).

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

На практике первичным ключом служит специальный столбец, значения которого автоматически задает СУБД. Например, в таблице Customers (Клиенты) (см. табл 1.1) это столбец id (идентификатор). Использовать такой искусственный первичный ключ значительно проще, чем естественный (основанный на атрибутах объекта). Например, в таблице Customers столбец name (имя) не может быть первичным ключом, так как имена клиентов могут совпадать; а первичный ключ из столбцов name (имя) и phone (телефон) был бы слишком громоздким. Дополнительными преимуществами искусственного ключа являются гарантированная уникальность значений (ее обеспечивает СУБД), постоянство значений (может меняться значение атрибута, но не значение искусственного ключа), а также числовой тип данных (поиск по числовым значениям выполняется намного быстрее, чем по символьным).

Еще одна функция первичного ключа – организация связей между таблицами.

Связи между таблицами. Внешний ключ

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

Рассмотрим на примере, что такое связь между таблицами. Допустим, у нас есть таблицы A и B, и мы хотим их связать. Для этого в каждую строку таблицы A мы должны поместить некую информацию, позволяющую идентифицировать связанную с ней строку таблицы B. Эта информация называется ссылкой, а поля таблицы A, содержащие эту ссылку, – внешними ключами. Наверное, вы уже сами догадались, что в качестве ссылки используется первичный ключ таблицы B, поскольку именно его значения позволят однозначно идентифицировать нужную строку таблицы B. После того как мы во все строки таблицы A поместим ссылки на строки таблицы B, эти таблицы будут связаны. При этом таблица A будет называться дочерней, а таблица B – родительской.

Существует три типа связей, устанавливаемых между таблицами в базе данных.

• Связь «один ко многим».

Этот тип связи используется чаще всего. В этом случае одна или несколько строк таблицы A ссылаются на одну из строк таблицы B.

Для установки связи между таблицами в дочернюю таблицу добавляется внешний ключ (foreign key) – один или несколько столбцов, содержащих значения первичного ключа родительской таблицы (иными словами, во внешнем ключе хранятся ссылки на строки родительской таблицы).

Рассмотрим таблицу, которая содержит сведения о заказах, сделанных клиентами, и является дочерней по отношению к таблице Customers (Клиенты) (табл. 1.2).


Еще от автора Виктор Иосифович Гольцман
Ноутбук: секреты эффективного использования

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


Skype: бесплатные звонки через Интернет. Начали!

Из этой книги вы узнаете о программе Skype – популярнейшем средстве общения в Интернете, которое превратит ваш компьютер в очень удобный и эффективный видеотелефон. С его помощью вы найдете новых друзей, общаясь в аудио– и видеочатах. Если вы захотите позвонить в любое место земного шара, вам больше не потребуется нести непомерные затраты: программа Skype свяжет вас – бесплатно! – с любым другим пользователем Skype и даже позволит позвонить на обычный телефон. Если вам необходимо обсудить какую-то тему с несколькими людьми, причем находящимися в разных странах мира, Skype тоже придет вам на помощь, предложив средства для организации конференции.Все эти и другие темы изложены в популярной и доступной форме.


Компьютер + TV: телевидение на ПК

Казалось бы, что общего между персональным компьютером и телевизором, помимо экрана? Один предназначен для работы, игр, серфинга по Интернету, второй – для просмотра любимых фильмов, телепередач, спортивных трансляций. Однако не все так просто, как может показаться на первый взгляд. Сегодняшний ПК с легкостью выполняет функции телевизора, ведь он способен принимать телевизионный сигнал (как эфирный, так и спутниковый), вещающие в Интернете теле– и радиостанции. Кроме того, именно при взаимодействии ПК и Интернета родилась относительно новая, но тем не менее уже успевшая зарекомендовать себя схема работы ТВ – интерактивное телевидение.Итак, если вы хотите овладеть современными телевизионными технологиями, а также превратить свой ПК в «комбайн», способный выполнять не только привычные для компьютера функции, но и массу других, то эта книга – для вас.


Компьютер + мобильник: эффективное взаимодействие

Мобильный телефон давно перестал быть просто средством связи, и при его выборе мы в основном обращаем внимание не на «телефонные», а скорее на «компьютерные» функции: поддержку мультимедийных сообщений, музыкальные возможности, объем и удобство использования записной книжки и органайзера, наличие игр и других Java-приложений.Данная книга расскажет вам, как повысить эффективность мобильного телефона и компьютера, реализовав широкие возможности такого тандема. Это практическое руководство, которое поможет вам разобраться с многочисленным инструментарием, объединяющим ПК и мобильный телефон, – от загрузки мелодий до создания GPRS-соединения.


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


MFC и OpenGL

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


Как функции, не являющиеся методами, улучшают инкапсуляцию

Когда приходится инкапсулировать, то иногда лучше меньше, чем большеЯ начну со следующего утверждения: Если вы пишете функцию, которая может быть выполнена или как метод класса, или быть внешней по отношению к классу, Вы должны предпочесть ее реализацию без использования метода. Такое решение увеличивает инкапсуляцию класса. Когда Вы думаете об использовании инкапсуляции, Вы должны думать том, чтобы не использовать методы.Удивлены? Читайте дальше.


Обработка событий в С++

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


Программное обеспечение встроенных систем. Общие требования к разработке и документированию

Embedded system software. General requirements for development and documentationСтандарт подготовлен в развитие ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» с целью учета специфики разработки и документирования программного обеспечения встроенных систем реального времени.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.