Главная страница
Навигация по странице:

  • Алфавитный указатель Символы () (скобки), оценка условий, 73+ (конкатенация), оператор, 127, 133’ (апострофы), 124A, C, D, G

  • изучаем SQL. Она позволяет решать многошаговые задачи одним выражением


    Скачать 1.6 Mb.
    НазваниеОна позволяет решать многошаговые задачи одним выражением
    Дата09.02.2018
    Размер1.6 Mb.
    Формат файлаpdf
    Имя файлаизучаем SQL.pdf
    ТипДокументы
    #36127
    страница30 из 31
    1   ...   23   24   25   26   27   28   29   30   31

    Oracle University (http://education.oracle.com)

    Learning Tree International (http://www.learningtree.com)

    Microsoft Learning (learning)

    MySQL Training (training)
    Проектирование БД
    Если вы новичок в SQL (а я предполагаю, что это так), то скорее всего будете работать с имеющимися БД, по крайней мере, поначалу. Одна ко если вы также отвечаете за разработку БД для своего проекта, реко мендую не просто ознакомиться с кратким обзором проектирования и нормализации БД, приведенным в главе 2, а рассмотреть этот вопрос более внимательно. На самом деле есть несколько разновидностей мо делей БД, каждая из которых имеет специальное назначение:
    Логические модели
    Обычно это представление высокого уровня детализации организа ции и среды, в которой осуществляется деятельность.
    Функциональные модели
    Обычно это представление среднего уровня детализации отдельного сегмента деятельности организации; как правило, используется в до полнение к спецификации проекта.
    Физические модели
    Обычно используются для формирования БД.
    Администратора БД, возможно, интересуют только физические моде ли, тогда как логические модели часто являются сферой интересов кор поративных архитекторов (если организации посчастливилось иметь команду разработки корпоративной архитекторы).
    1
    Аллигатор Декарт и Тим Банс «Программирование на Perl DBI», Символ
    Плюс, 2000.
    2
    С. Фейерштейн, Б. Прибыл «Oracle PL/SQL для профессионалов», Питер,
    2003.
    3
    Кен Хендерсон «Профессиональное руководство по Transact SQL», Питер,
    2005.

    Дополнительные источники
    295
    Как бы то ни было, прежде чем браться за выражения create table, не обходимо серьезно подумать об использовании инструмента моделиро вания для построения визуальных моделей. При создании моделей БД
    обычно используется одна из двух методик:
    Моделирование сущностей и связей (Entity relationship, ER)
    Используется практически исключительно для моделирования БД.
    Моделирование с использованием Унифицированного языка моделиро
    вания (Unified Modeling Language, UML)
    Универсальный инструмент моделирования для разработки объ ектно ориентированного программного обеспечения.
    Если БД проектируется как часть проекта по разработке объектно ори ентированного программного обеспечения, команда разработки может приобрести инструмент моделирования UML для объектного модели рования, чтобы использовать его и для проектирования БД. Если вы вольны в выборе инструментария, более полезным может оказаться один из следующих ER инструментов, способных формировать полно функциональные схемы БД (включая таблицы, ограничения, индек сы, представления и т. д.) по одному нажатию клавиши:

    ERwin Data Modeler (ER моделирование)

    Computer Associates (http://www.ca.com)

    ER/Studio (ER моделирование)

    Embarcadero Technologies (http://www.embarcadero.com)

    Rational Rose (UML моделирование)

    IBM (http://www.ibm.com)

    Visio (и ER моделирование, и UML моделирование)

    Microsoft (http://www.microsoft.com)
    Ниже приведены две хорошие книги по проектированию БД:
    Майкл Дж. Хернандес (Michael J. Hernandez) «Database Design for
    Mere Mortals: A Hands on Guide to Relational Database Design», Se cond Edition (Проектирование баз данных для простых смертных.
    Практическое руководство по проектированию реляционных баз данных), Addison Wesley, 2003.
    Эрик Дж. Нейбург (Eric J. Naiburg) и Роберт А. Максимчук (Robert
    A. Maksimchuk) «UML for Database Design», Addison Wesley, 2001.
    1 1
    Эрик Дж. Нейбург и Роберт А. Максимчук «Проектирование баз данных с помощью UML», Вильямс, 2002.

    296
    Приложение D
    Настройка баз данных
    Настройка БД – это, по сути, искусство и наука выявления и устране ния узких мест производительности в:

    Приложениях, организующих доступ к БД (SQL, блокировки, тран закции)

    Схемах БД (проектирование, индексация, сегментирование таблиц)

    Серверах БД (конфигурация серверов, журналирование, управле ние соединением)

    Дисковых массивах, на которых хранятся файлы БД (конфигура ции RAID, определение «горячих» точек)

    Компьютерах, на которых располагаются серверы БД (конфигура ция операционной системы, файловые системы)

    Сетях, распространяющих данные на/с серверов БД
    Выявление и устранение узких мест в оборудовании и программном обеспечении такой широкой номенклатуры может показаться пугающе сложной задачей, но большая часть работы обычно сосредоточена на схеме БД и языке SQL, который используется приложениями для дос тупа к БД. Это никак не преуменьшает значимости конфигурирования операционной системы, установки и конфигурирования сервера БД,
    а также компоновки ресурсов данных в дисковом массиве, но схемы БД
    и используемый для доступа к ним SQL – гораздо более динамичные компоненты системы, т. е. чреваты большим количеством проблем.
    Будь вы штатный специалист по вопросам производительности, про граммист БД или администратор БД, в круг вашей основной деятель ности по настройке войдут:

    Просмотр плана выполнения SQL выражений для поиска неэффек тивных моментов

    Разработка стратегий индексации для обеспечения эффективного доступа

    Доработка или переписывание SQL выражений с целью повлиять на выбор плана выполнения
    Как упоминалось в главе 3, каждая БД включает компонент под на званием оптимизатор запросов, задачей которого является вычисле ние SQL выражений и выбор эффективного пути доступа к информа ционным ресурсам для достижения желаемых результатов. Результат работы оптимизатора – план выполнения, показывающий, какие ре сурсы в каком порядке используются. Каждая из трех БД, обсуждае мых в книге, включает инструменты получения и просмотра плана выполнения SQL выражения. Вам понадобится научиться генериро вать и расшифровывать планы выполнения для своей БД.
    Просто чтобы дать вам понять, о чем идет речь, привожу созданный
    MySQL план выполнения для запроса, организующего доступ к двум таблицам:

    Дополнительные источники
    297
    mysql>
    EXPLAIN SELECT c.fed_id, a.account_id, a.avail_balance
    > FROM account a INNER JOIN customer c
    > ON a.cust_id = c.cust_id
    > WHERE c.cust_type_cd = 'I' \G
    ***************************
    1.
    row
    ***************************
    id:
    1
    select_type:
    SIMPLE
    table:
    c type:
    ALL
    possible_keys:
    PRIMARY
    key:
    NULL
    key_len:
    NULL
    ref:
    NULL
    rows:
    13
    Extra:
    Using where
    ***************************
    2.
    row
    ***************************
    id:
    1
    select_type:
    SIMPLE
    table:
    a type:
    ref possible_keys:
    fk_a_cust_id key:
    fk_a_cust_id key_len:
    4
    ref:
    bank.c.cust_id rows:
    1
    Extra:
    2
    rows in set
    (0.00
    sec)
    Чтобы увидеть план выполнения этого запроса, я просто поставил пе ред выражением select ключевое слово explain (объяснить), т. е. сервер получил команду показать план выполнения, а не результирующий набор запроса. План включает два этапа. Первый показывает, как бу дет осуществляться доступ к таблице customer (выполняется доступ ко всем строкам, поскольку столбец cust_type_cd не имеет индекса). Вто рой показывает, как будет организован доступ к таблице account (по средством внешнего ключа fk_a_cust_id). Формирование и расшифров ка планов выполнения не является предметом рассмотрения для ввод ной книги по SQL, поэтому в конце данного раздела приведены имею щиеся источники (книги и учебные курсы). Также в продаже есть несколько замечательных инструментов, которые помогут строить,
    вычислять и настраивать SQL выражения. Вот некоторые из них:

    Quest Central for Oracle и Quest Central for SQL Server

    Quest Software (http://www.quest.com)

    Embarcadero SQL Profiler

    Embarcadero Technologies (http://www.embarcadero.com)

    Oracle Enterprise Manager Tuning Pack

    298
    Приложение D

    Oracle Corporation (http://www.oracle.com)
    Можно порекомендовать несколько хороших книг по настройке про изводительности SQL:
    Томас Кайт (Thomas Kyte) «Effective Oracle by Design», McGraw
    Hill Osborne Media, 2003.
    1
    Кэри Миллсап (Cary Millsap) и Джефф Хольт (Jeff Holt) «Optimiz ing Oracle Performance», O’Reilly, 2003.
    2
    Джереми Заводный (Jeremy Zawodny) и Дерек Баллинг (Derek Ball ing) «High Performance MySQL» (Высокопроизводительный MySQL),
    O’Reilly, 2004.
    Кен Ингланд (Ken England) «Microsoft SQL Server 2000 Perform ance Optimization and Tuning Handbook» (Справочник по оптимиза ции производительности и настройке Microsoft SQL Server 2000),
    Digital Press, 2001.
    Также есть много курсов по настройке производительности, предос тавляемых следующими учебными центрами:

    Oracle University (http://education.oracle.com)

    Learning Tree International (http://www.learningtree.com)

    Microsoft Learning (learning)

    MySQL Training (training)
    Администрирование баз данных
    Администрирование БД, на самом деле, – многогранная задача, кото рая может включать что угодно или все из перечисленного ниже:

    Установка и конфигурирование сервера БД

    Проектирование БД

    Программирование БД, особенно хранимых процедур, функций и триггеров

    Система безопасности БД

    Резервное копирование и восстановление

    Настройка производительности
    Организации покрупнее могут нанять одного или нескольких специа листов в каждой из вышеупомянутых областей, а более мелкие часто ожидают, что со всем этим справится один администратор БД. Если вы будете заниматься проектированием, программированием и настрой кой, пожалуйста, ознакомьтесь со списками источников, приведенны
    1
    Томас Кайт «Эффективное проектирование приложений Oracle», Лори,
    2006.
    2
    Кэри Миллсап «Oracle. Оптимизация производительности», Символ Плюс,
    2006.

    Дополнительные источники
    299
    ми в предыдущих разделах. Однако все администраторы БД должны прочитать общие книги по администрированию или пройти курсы, что бы профессионально овладеть базовыми навыками администратора, та кими как установка и конфигурирование БД, создание пользователей и назначение привилегий, стратегии резервного копирования и восста новления, формирование схем. Еще один основной источник для адми нистраторов – справочное руководство по SQL для используемого сер вера БД, где приведен синтаксис SQL выражений управления схемой,
    таких как create index и alter table. Самые популярные справочники:
    Кевин Лоуни (Kevin Loney), Боб Брила (Bob Bryla) «Oracle Database
    10g DBA Handbook» (Справочник администратора Oracle Database
    10g), McGraw Hill Osborne Media, 2004.
    «MySQL Administrator’s Guide», MySQL Press, 2004.
    1
    Энтони Секвейра (Anthony Sequeira), Брайан Алдерман (Brian Al derman) «The SQL Server 2000 Book», Paraglyph, 2003.
    Также есть масса курсов по администрированию, предоставляемых следующими учебными центрами:

    Oracle University (http://education.oracle.com)

    Learning Tree International (http://www.learningtree.com)

    Microsoft Learning (learning)

    MySQL Training (training)
    Формирование отчетов
    Если вы отвечаете за разработку и формирование отчетов для своей ор ганизации, вот два самых важных навыка, которые стоит приобрести:

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

    Владение в совершенстве реализацией SQL, используемого вашим сервером БД
    Хотя большинство инструментов создания отчетов претендует на фор мирование SQL на базе визуального представления отчета, настоятель но рекомендую игнорировать эту возможность и самостоятельно соз давать SQL выражения для всех нетривиальных отчетов. В этом слу чае вы точно будете знать, что отправляется серверу БД, и впоследст вии сможете лучше поддерживать и настраивать отчеты.
    Некоторые механизмы создания отчетов достаточно гибки в отноше нии получения данных для отчета, но многие инструменты требуют,
    чтобы все данные одного отчета были сформированы посредством одно го запроса. Глубокое понимание SQL, особенно подзапросов (глава 9),
    1
    «MySQL. Руководство администратора», Вильямс, 2005.

    300
    Приложение D
    операций работы с множествами (глава 6) и условной логики (глава 11),
    позволит создавать гораздо более изощренные отчеты.
    Среди хороших книг по составлению отчетов можно назвать:
    Питер Блэкберн (Peter Blackburn), Уильям Вон (William Vaughn)
    «Hitchhiker’s Guide to SQL Server 2000 Reporting Services» (Руко водство по службам отчетов SQL Server 2000), Addison Wesley,
    2004.
    Синди Хаусон (Cindi Howson) «Business Objects: The Complete Refe rence» (Business Objects. Полное руководство), McGraw Hill Osbor ne Media, 2003.
    Нейл Фитцджеральд (Neil FitzGerald) и др. «Special Edition Using
    Crystal Reports 10» (Использование Crystal Reports 10. Специаль ное издание), Pearson Education, 2004.

    Алфавитный указатель
    Символы
    () (скобки), оценка условий, 73
    + (конкатенация), оператор, 127, 133
    ’ (апострофы), 124
    A, C, D, G
    ANSI (Национальный институт стандартизации США), 19
    синтаксис соединения, 95
    CLOB (Character Large Object – большой символьный объект), тип данных, 32
    Configuration Wizard, запуск, 28
    Daylight Savings Time, декретное время,
    140
    GMT (время по Гринвичу), 140
    M
    MySQL
    установка, 27
    выражение select блок into outfile, 263
    индексы, вставка, 241
    описание, 24
    упорядоченные обновления и удаления, 267–268
    часовые пояса, 142
    N, O, S, U
    NULL, значения агрегатные функции, 160
    выражения case, 228
    описание, 40
    фильтрация, 86–89
    Oracle Text, инструмент, 247
    SQL, описание, 19–24
    UTC (универсальное глобальное время),
    141
    А
    автоприращение, 43
    агрегатные функции, 154–161
    count(), 155
    агрегация, селективная, 222
    администрирование БД, 298
    аргументы больше нуля, 133
    одноаргументные числовые функции,
    135
    функция truncate(), 138
    арифметические операторы, 135
    атомные часы, 141
    Б
    базы данных
    ER диаграммы, 257
    MySQL, 25, 27
    администрирование, 298
    доступ, 292
    естественные соединения, 212–214
    индексы, 240–251
    многопользовательские, 230
    настройка, 296
    нереляционные системы, 14
    ограничения, 251–256
    определение, 13
    программирование, 292
    проектирование, 294
    реляционные модели, 16
    терминология, 18
    транзакции, 232–239
    хранение, 14
    языки программирования, 292
    банковская схема, 49
    беззнаковые данные, 33
    безопасность, инструмент командной строки mysql, 28
    безопасные ошибки, 48
    битовые индексы, 246
    блоки from, 59–63
    group by, 65
    having, 65
    into outfile, 263
    limit, 259

    302
    Алфавитный указатель order by, 45
    сочетание с limit, 260
    select, агрегатные функции, 154
    where, 63–65
    условия групповой фильтрации,
    165
    условия, оценка, 72–75
    запросы, 54–59
    выполнение без блоков, 29
    блокирование, 231
    блокировка, 230
    взаимоблокировки, 235
    записи и чтения, 231
    большой символьный объект (clob), 32
    В
    взаимоблокировки, 235
    високосные годы, 149
    внешние ключи, 17, 19
    ER диаграммы, 257
    несуществующие, 47
    ограничения, 41, 251
    рекурсивные, 102
    внешние объединения, 94
    внешние соединения, 195–205
    рекурсивные, 203
    сравнение левосторонних и правосторонних, 199
    трехсторонние, 201
    условная логика, 216
    внутренние объединения, 90
    внутренние соединения, 93
    возвращение даты, 147
    одного столбца, подзапросы, 171
    строки, 149
    числа, 150
    временные данные, 34–36
    применение, 140–142
    работа с, 147–151
    создание, 142–147
    время всемирное, 141
    конфигурация часовых поясов, 140
    по Гринвичу (GMT), 140
    вставка данных в таблицы, 42
    индексы, 241
    интервалы, 147
    ключевые слова, 58
    псевдонимы столбцов, 56
    встроенные функции, 135
    выражения select, 56
    строки, 127
    числовые, 135
    выбор механизмы хранения, 237
    текстовые типы, 32
    выполнение запросы, 51–53
    без блоков, 29
    транзакции, 232–239
    условная логика, 216
    выражение case, 218–229
    выражения case, 218–229
    create table, 39
    insert, 43
    update, сочетание с, 265
    значения, 44
    select, 55
    блоки запроса, 54–59
    расширения, 259–265
    update, сочетание с insert, 265
    агрегатные функции, 159
    группировка, 163
    для работы с данными, 9
    классы, 20
    обзор, 9
    область видимости, 168
    подзапросы, 168
    как генераторы, 190
    несвязанные, 170–179
    применение, 183–193
    связанные, 179–183
    типы, 169
    поиск, 83
    устранение неполадок и, 46
    регулярные, применение, 85
    сортировка, 69
    схемы, создание, 38
    условия, создание, 75
    Г
    группировка, 153–155
    агрегатные функции, 156–161
    выражения, 163
    обобщения, 163
    по нескольким столбцам, 162
    по одному столбцу, 161
    подзапросы, 188
    сравнение неявных и явных групп,
    156
    фильтрация, 165
    группы формирование, 161–165
    Д
    данные с большим и малым кардинальным числом, 246–247

    Алфавитный указатель
    303
    данные со знаком, 139
    дата и время, 34
    даты, 35
    возвращение, 147
    компоненты, 142–143
    недействительные преобразования, 48
    преобразования строки в дату, 144
    создание, 145
    форматирование, 35
    декартовы произведения, 92
    перекрестные соединения, 205–212
    декретное время, 140
    десятичные точки (числовые типы данных), 34
    диаграммы ER (сущностей и связей), 257
    диапазоны строки, 80
    условия, 77
    доступ базы данных, 292
    транзакции, 232–239
    дублирующие значения операторы объединения, 113
    строки, уничтожение, 57
    1   ...   23   24   25   26   27   28   29   30   31


    написать администратору сайта