Программирование >>  Руководство по sql 

1 2 3 [ 4 ] 5 6 7 ... 105


Глава 6. Группировка данных и построение отчетов. Оператор SELECT также предоставляет вам возможности по группировке данных и генерации отчетов, используя для этого агрегирующие функции, описанные в предыдущих главах. В этой главе также ведется дискуссия о том, как в системах реляционных баз данных должны обрабатываться нулевые значения (пропуски информации).

Глава 7. Объединение таблиц и сложный анализ данных. Оператор объединения - один из китов реляционной модели. В этой главе рассказывается, как использовать этот оператор для выборки данных из одной или нескольких таблиц. Усложненный вариант простого оператора выбора, оператор объединения, требует от пользователей повыщенного внимания к анализу и проверке получаемых данных.

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

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

Глава 10. Безопасность, транзакции, производительность и целостность. Эта глава посвящена характерным вопросам управления реальными базами данных. В ней описываются команды для установления полномочий пользователей, кроме того, мы вернемся к теме индексирования с позиций повышения производительности системы, а также рассмотрим механизмы управления транзакциями. В этой главе также рассматриваются расширения языка SQL, обеспечивающие непротиворечивость и целостность данных. Некоторые из них характерны исключительно для реализации Sybase SQL.

Глава 11. Разрешение проблем. В этой главе на основе нашей базы bookbiz мы ответим на вопросы, заданные пользователями через Internet. Здесь вы столкнетесь с реальными проблемами - представлением результатов, поиском данных, многотабличными запросами и предложением GROUP BY. Эта глава напоминает кулинарную книгу, напичканную полезными советами, которыми вы можете воспользоваться в своей работе.

Глава 12. Ошибки, и как их избежать. Эта глава также наполнена примерами, взятыми из Internet и сформулированными в терминах базы bookbiz, но имеющими несколько другой оттенок. Это примеры наиболее характерных ошибок. Здесь вы найдете описание типичных ошибок при использовании конструкций GROUP BY, HAVING, WHERE и DISTINCT. Эта глава поможет вам избежать классических ошибок.

Приложение А. Краткое описание синтаксиса SQL.

Приложение Б. Аналогии между ключевыми словами разных диалектов SQL. Приложение В. Словарь терминов.

Приложение Г. Описание базы данных bookbiz. Это приложение содержит таблицы данных, описание структуры и код для создания самой базы. Приложение Д. Список литературы.



Глава 1

SQL и управление реляционными базами данных

УПРАВЛЕНИЕ РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ

SQL - это язык, на котором можно разговаривать с реляционными базами данных. Минуточку! А что такое система управления реляционными базами данных?

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

С. Дейт дает следующее неформальное определение системе управления реляционными базами данных (СУБД).

Вся информация в базе данных представлена в виде таблиц.

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

Д-р. И.Ф. Кода, автор реляционной модели, разработал целый список критериев, которым должна удовлетворять реляционная модель. Описание этого списка, часто называемого правилами Кодда , требует введения сложной терминологии и теоретических выкладок, что выходит за рамки данной книги. Тем не менее в следующих главах мы опищем состоящий из 12 правил тест Кодда для реляционных систем и будем использовать его совместно с более общим определением Дейта. Чтобы считаться реляционной, система управления базами данных должна:

представлять всю информацию в виде таблиц,

поддерживать логическую структуру данных, независимо от их физического представления,

использовать язык высокого уровня для структурирования, выполнения запросов и изменения информации в базах данных (теоретически это может быть любой язык баз данных, практически для этого используется язык SQL),

поддерживать основные реляционные операции (выбор, проектирование и объединение), а также теоретико-множественные операции, такие как объединение, пересечение и дополнение,

поддерживать виртуальные таблицы, обеспечивая пользователям альтернативный способ просмотра данных в таблицах,

различать в таблицах неизвестные значения (nulls), нулевые значения и пропуски в данных,

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



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

Реляционная модель: одни таблицы

Первое правило Кодда гласит, что вся информация в реляционных базах данных представляется значениями в таблицах (table). В реляционных системах таблицы состоят из горизонтальных строк (row) и вертикальных столбцов (column) (рис. 1.1). Все данные представляются в табличном формате - другого способа просмотреть информацию в базе данных не существует.

Несколько замечаний по терминологии. Поскольку такие понятия как таблица, строка и столбец являются общепринятыми в коммерческих системах управления реляционными базами данных, мы будем стараться использовать их в этой книге. Однако иногда вы можете встретиться и с такими понятиями, как отношение (relation), кортеж (tuple) и атрибут (attribute). Это соответственно синонимы понятий таблица, строка и столбец, так же, как и файл (file), запись (record) и поле (field). Первые три считаются академическими терминами, последние - взяты из общего лексикона, используемого в области обработки данных.

Набор связанных таблиц образует базу данных (database). Таблицы в реляционной базе разделены, но полностью равноправны. Между ними не существует никакой иерархии и, вообще говоря, они не обязательно даже физически связаны друг с другом.

Name

Address

Jane Doe

127 Elm St.

Richard Roe

10 Trenholm Place

Edgar Рое

1533 User House

Строки

Столбцы

Рис. 1.1. Таблица personnel

Каждая таблица состоит из строк и столбцов. Каждая строка описывает отдельный объект или сущность (entity) - человека, компанию, торговую сделку или что-нибудь другое. Каждый столбец описывает одну характеристику объекта - имя человека или его адрес, телефонный номер компании или ее президента, лоты распродажи или дату.

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

Предположим, вы хотите узнать адрес Richard Roe. Чтобы добраться до этой информации, вы приказываете системе извлечь этот адрес из таблицы под названием personnel из столбца address. При этом имя Richard Roe является значением первичного ключа, идентифицирующим эту строку (рис. 1.2).

В реляционных базах данных существует два типа таблиц - пользовательские таблицы (user table) и системные таблицы (system tables). Пользовательские таблицы содержат информацию, для поддержки которой собственно и создавались системы реляционных баз данных - данные по сделкам, заказам, персоналу и т.д. Системные таблгщы, известные также под названием системные каталоги (system catalog), содержат описание базы данных. Системные таблицы обычно поддерживаются самой СУБД, однако доступ к ним можно получить так же, как и к любым другим таблицам. Возможность получения доступа к системным таблицам, по аналогии с любыми другими таблицами, составляет основу другого правила Кодда для реляционных систем.



1 2 3 [ 4 ] 5 6 7 ... 105

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика