|
Программирование >> Создание клиентов mysql
1) Каждая запись таблицы саr сравнивается с каждой записью таблицы carcolor. 2) Если поле ColorCode таблицы саr совпадает с полем ColorCode таблицы car color (объединение по равенству), создается итоговая запись, состоящая из полей первой таблицы, к которым присоединены поля второй таблицы. 3) Для каждой записи таблицы саr, полю ColorCode которой не найдено соответствие в таблице car color, создается итоговая запись, состоящая из полей первой таблицы, к которым вместо полей второй таблицы присоединены значения NULL (левое объединение). 4) Из объединенной таблицы отбираются записи, соответствующие условию WHERE. 5) В результаты запроса включаются поля, заданные в предложении SELECT. Между таблицами саr и car color нет отношения один к одному , так как может быть несколько автомобилей одинакового цвета. Подробнее о составлении такого рода объединений речь пойдет в последующих главах. В листинге 1.11 несложно заметить одну особенность многотабличных запросов: при ссылке на поля таблиц следует избегать неоднозначности. Например, обе таблицы содержат поле ColorCode. Чтобы явно указать, к какой таблице относится поле, нужно задать полное имя поля. Синтаксис полного имени таков: имя таблицы..имя поля. Преимущества баз данных Для постоянного хранения информации в компьютерах используются жесткие диски. Данные на них записываются в виде файлов, которые являются аналогами документов, хранящихся в папках и картотеках большинства офисов. Необходимо понять, при каких обстоятельствах выгоднее содержать информацию в базах данных, а не просто в файлах. Традиционные подходы к управлению данными Когда объем данных невелик и составлять по ним отчеты практически не требуется, подойдет и бумажная система регистрации документов. Представьте себе картотечный шкаф с тремя ящиками по 10 папок в каждом. Надпись на папке определяет тип содержащихся в ней документов. Если, к примеру, нужно найти прошлогодние счета за электроэнергию, необходимо поискать в первом ящике папку с надписью Счета за электроэнергию , просмотреть содержащиеся в ней документы и отобрать среди них 12 прошлогодних счетов. Этот процесс относительно прост, но если он повторяется многократно или появляются сложные формы отчетности, возникает желание его автоматизировать. Бумажные документы превращаются в файлы на диске, а для работы с ними пишутся программы на таком языке, как С или Perl. Файлы группируются в каталоги на основании определенных логических принципов. Содержимое файлов структурируется таким образом, чтобы программы могли быстро извлекать из них нужные данные. Для каждого типа файлов необходимо написать набор подпрограмм, манипулирующих этими файлами, включая чтение, запись и об- Преимущества баз данных 27 новление данных. Для каждого отчета тоже требуется специальная подпрограмма, собирающая соответствующие данные и представляющая их в требуемом виде. Все это приводит к немалым затратам времени и усилий. В домашних условиях можно все оставить в бумажном виде, но с точки зрения ведения делопроизводства компьютерная автоматизация процессов очень важна. Ведь чем больше информации накапливается, тем более обоснованные решения можно принимать. В бизнесе существует тенденция постоянного усложнения отчетов. Важно знать о своем бизнесе больше, чем конкуренты - о своем. Однако высокая стоимость получения отчетов может свести на нет все их преимущества. Более того, если задержка между определением потребности в отчете и составлением самого отчета будет слишком большой, может оказаться, что к моменту получения отчет устареет и станет бесполезным. Базы данных были разработаны как раз с целью решения проблем, возникающих при создании специализированных подпрограмм для обработки данных и построения отчетов. Унификация средств доступа Первое преимущество баз данных - это наличие унифицированного интерфейса. Не нужно изобретать колесо и постоянно создавать новые модули манипулирования данными. Все обращения к базе данных централизуются на уровне СУБД. В базе данных информация представлена единообразно. Сведения о том, как структурированы данные и как они связаны друг с другом, хранятся в самой базе в виде метаданных. Это позволяет СУБД иметь в своем распоряжении универсальные подпрограммы. Работа с обычными ( плоскими ) файлами, которая ведется на языках третьего поколения, требует профессиональных навыков программирования. Такие файлы не имеют единого интерфейса. Каждая подпрограмма трактует файл по-своему в зависимости от его атрибутов. Следствием подобной адаптации является то, что любое изменение структуры данных вызывает каскадные изменения программ, зависящих от этой структуры. Представьте, что поле, содержавшее пятизначный почтовый код, должно теперь содержать девятизначный код. Во-первых, существующие данные придется преобразовать в новый формат с помощью специальной программы. Во-вторых, потребуется переписать любую программу, работающую с файлом такого формата. Особенностью подобного подхода является то, что в программах делаются явные предположения о структуре данных. Базы данных более гибки в использовании. Они позволяют приложениям работать с данными на логическом уровне, игнорируя их физическую структуру. Изменение формата данных может не вызвать никаких изменений в интерфейсе взаимодействия с ними, а следовательно - в самих приложениях. Наконец, современные базы данных поддерживают специальный язык запросов, позволяющий создавать произвольные выборки данных. Наличие языка запросов упрощает рядовым пользователям задачу формулирования инструкций для построения отчетов. Повышение производительности Базы данных повышают производительность обработки информации за счет концентрации функций манипулирования данными в одном модуле, который можно оптимизировать. Базы данных берут на себя ответственность за управление информацией наиболее эффективным способом. Детали того, как это происходит на физическом уровне, скрыты от пользователя, который видит лишь логическую модель данных. Благодаря тому что функции обработки данных сконцентрированы в одном модуле, этот модуль можно применять для доступа ко всем базам данных. А это, в свою очередь, означает, что улучшение работы такого модуля приводит к ускорению всех приложений, обращающихся через него к базам данным. Другой источник повышения производительности - это возможность многопользовательской работы. Базы данных контролируют все обращения к хранимой информации и могут выполнять несколькозапросов одновременно. Сравните с обычными файлами, которые в конкретный момент времени могут быть открыты для записи (а зачастую и для чтения) только одним процессом. Централизация средств управления данными ведет также к усилению их безопасности. СУБД может назначать аутентифицированным пользователям определенные права. Она, к тому же, способна выполнять резервное копирование данных, не прерывая работу пользователей. Усиление целостности Базы данных упрощают задачу структурирования данных, позволяя избегать ненужного дублирования. Например, благодаря операции объединения таблиц появляется возможность сосредоточивать однотипную информацию в одной таблице, ссылаясь на нее в других таблицах по уникальным ключам. Это помогает устранять конфликты, возникающие в результате неполных обновлений. Например, если бы адрес клиента хранился в двух разных местах, его можно было бы изменить в каком-то одном месте и забыть это сделать в другом. В реляционной базе данных можно хранить все адреса в одной таблице, ссылаясь на нее из других таблиц в случае необходимости. СУБД контролирует целостность данных на основании формальных определений, хранимых в самой базе. Например, если при создании таблицы б1ло указано, что такое-то поле хранит даты, то СУБД откажется записывать в это поле значения других типов. С точки зрения физического хранения данных в поле даты можно записать и целочисленное значение, но СУБД будет следовать логическим правилам, которые были заданы пользователем. MySQL, если это возможно, выполняет операцию приведения типов в случае несовпадения или же просто подставляет значение по умолчанию. СУБД способна также контролировать отношения между таблицами. Можно, например, задать правило, по которому поля двух таблиц станут связанными. СУБД гарантирует, что значения подчиненного поля всегда будут попадать в диапазон значений главного поля.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |