Рис. 1.1. База данных
Реляционная база данных- это база данных, разделенная на логически цельные сегменты, называемые таблицами, и внутри базы данных эти таблицы связаны между собой. Реляционная база данных позволяет разделить данные на логичные более мелкие и более управляемые сегменты, что обеспечивает оптимальное представление данных и возможность организации нескольких уровней доступа к данным. На рис. 1.2 вы можете увидеть, как таблицы в реляционной базе данных связываются одна с другой посредством общего ключевого поля.
Рис. 1.2. Реляционная база данных Итак, таблицы в реляционной базе данных оказываются связанными, что позволяет извлечь только нужные данные с помощью одного запроса (хотя при этом сами требуемые данные могут извлекаться из нескольких таблиц). Вследствие наличия у таблиц общих ключей или, иначе, ключевых полей, оказывается возможным объединить данные из нескольких таблиц в одно результирующее множество. По мере углубления в материал данной книги, вы обнаружите и другие преимущества реляционных баз данных, среди которых будут и ускорение работы с данными, и более быстрый доступ к ним.
Реляционная база данных - это база данных, состоящая из связанных объектов, главным образом таблиц. Таблицы являются основной формой хранения данных в базе данных.
В прошлом компьютерная индустрия основывалась на использовании мэйнфреймов - больших и мощных компьютеров со значительными возможностями для хранения и обработки данных. Пользователи имели возможность общения с мэйнфреймами посредством "тупых" терминалов. Эти терминалы не имели своих собственных "интеллектуальных" возможностей и полагались исключительно на вычислительные возможности, память и носители информации мэйнфрейма. Каждый терминал имел свою линию обмена данными с мэйнфреймом. Оборудование мэйнфреймов вполне справлялось со своими задачами и соответствовало требованиям бизнеса того времени, но пришло время для новой, значительно более прогрессивной технологии - модели клиент/сервер.
В системе клиент/сервер главный компьютер, называемый сервером, обычно доступен через сеть, как правило, это локальная сеть (LAN - Local area network) или глобальная сеть (WAN - Wide area network). Доступ к такому серверу теперь обеспечивается не посредством "тупых" терминалов, а персональных компьютеров (ПК) или других серверов. В этом случае персональный компьютер называется клиентом и должен иметь доступ к сети, чтобы между клиентом и сервером имелась возможность обмена данными. Главное различие между системой клиент/сервер и системой, основанной на использовании мэйнфрейма, заключается в том, что пользователь ПК в системе клиент/сервер может использовать вычислительные возможности своего собственного компьютера для обработки данных и выполнения других процессов непосредственно в памяти своего компьютера, но в то же время и сервер оказывается всегда доступным для пользователя через сеть. На сегодня в большинстве случаев система клиент/сервер удовлетворяет всем требованиям современного бизнеса, оказывается более гибкой и в конце концов более предпочтительной.
Реляционные базы данных размещаются как на мэйнфреймах, так и на платформах клиент/сервер. Хотя система клиент/сервер и более предпочтительна, для многих компаний по различным причинам оказывается все еще оправданным использование мэйнфреймов. Но достаточно высок процент тех компаний, которые в последнее время оставили свои мэйнфреймы в прошлом и перевели все свои данные на платформу клиент/сервер, чтобы не остаться в стороне от современных технологий, обеспечить себе и своему бизнесу большую гибкость, а своим системам - независимость от проблемы 2000 года.
Рис. 1.3. Модель клиент/сервер
Для одних компаний переход на использование технологии клиент/сервер оказался оправданным, для других же внедрение этой технологии обернулось неудачей и, как следствие, выброшенными на ветер миллионами долларов. В результате некоторым пришлось даже вернуться к своим старым мэйнфреймам, поэтому не все решаются проводить такие потенциально опасные изменения. Причиной таких неудач являются недостаточно тщательная экспертиза необходимости изменений - следствие новизны технологии в совокупности с недостаточной квалификацией персонала в соответствующей области деятельности. Тем не менее понимание технологии клиент/сервер является необходимым в свете растущих (и иногда неадекватно высоких) требований современного бизнеса и развития технологий Internet и компьютерных сетей. Технология клиент/сервер показана на рис. 1.3.
Среди доминирующих производителей систем управления базами данных следует назвать Oracle, Microsoft, Informix, Sybase и IBM. И хотя в мире существует их значительно больше, именно представленные здесь имена вы чаще всего встречаете в книгах, газетах, журналах и в World Wide Web.
Так же как человек, имеющий только ему присущие индивидуальные черты, конкретные реализации SQL разных производителей имеют определенные особенности. Серверы базы данных, подобно любому другому продукту на рынке, изготавливаются широким спектром производителей. Соответствие производимой реализации текущему стандарту ANSI в целях совместимости и удобства пользователя остается на совести самого производителя. Например, при переходе компании от одного сервера баз данных к другому, большим неудобством для пользователей оказалась бы необходимость изучения нового языка, с помощью которого приходится осуществлять поддержку новой системы.
В каждой реализации SQL производители предлагают различные усовершенствования с целью упрощения работы с производимыми ими серверами баз данных. Эти усовершенствования или, расширения, представляют собой команды и опции, предлагаемые в дополнение к стандартному набору команд SQL и доступные в рамках каждой конкретной реализации.
Сеанс SQL - это период взаимодействия пользователя с реляционной базой данных посредством использования команд SQL. Начинается сеанс с момента подключения пользователя к базе данных. В рамках сеанса пользователь имеет возможность вводить допустимые команды SQL для осуществления запросов, управления данными, создания новых структур базы данных (например, таблиц).
Сеанс SQL начинается в момент подключения пользователя к базе данных. Для этого используется команда CONNECT. С помощью команды CONNECT можно либо осуществлять подключения к базе данных, либо менять характер уже установленных подключений. Например, подключившись к базе данных под именем USER1, вы можете затем использовать команду CONNECT, чтобы подключиться к той же базе данных под именем USER2. При этом неявно прекращается сеанс SQL для пользователя USER1.
CONNECT user@database
При попытке подключиться к базе данных вы автоматически получите запрос на введение пароля, соответствующего введенному вами имени пользователя.
Сеанс SQL прекращается при отключении пользователя от базы данных. Для отключения пользователя от базы данных используется команда DISCONNECT. После отключения от базы данных вы еще можете пользоваться программными средствами связи с базой данных, но сама связь с базой данных будет прекращена. При использовании для разрыва связи оператора EXIT прекращается не только ваш сеанс SQL, но и закрывается программа, с помощью которой осуществлялся доступ к базе данных.
DISCONNECT
В следующих разделах мы обсудим основные категории команд, реализующих в SQL выполнение различных функций. Среди таких функций - построение объектов базы данных, управление объектами, пополнение таблиц базы данных новыми данными, обновление данных, уже имеющихся в таблицах, выполнение запросов, управление доступом пользователей к базе данных, а также осуществление общего администрирования базы данных.