|
Шпаргалка. шпоры. Информация это результат преобразования и анализа данных. Отличие информации от данных состоит в том, что данные это фиксированные сведения о событиях и явлениях,
33. Вложенные и связанные подзапросы. Операторы any, some, all
33) Вложенные подзапросы
SQL позволяет вкладывать запросы друг в друга. Обычно подзапрос возвращает одно значение, которое проверяется на предмет истинности предиката. Виды условий поиска:
• Сравнение с результатом вложенного запроса (=, <>, <, <=, >, >=)
Проверка на принадлежность результатам подзапроса (IN)
Проверка на существование (EXISTS)
Многократное (количественное) сравнение (ANY, ALL)
соединение таблиц JOIN.
2) Связанные подзапросы
В SQL можно создавать подзапросы со ссылкой на таблицу из внешнего запроса. В этом случае подзапрос выполняется многократно, по одному разу для каждой строки таблицы из внешнего запроса. Поэтому важно, чтобы подзапрос использовал индекс. Подзапрос может обращаться к той же таблице, чтоб и внешний. Если внешний запрос возвращает относительно небольшое число строк, то связанный подзапрос будет работать быстрее несвязанного. Если подзапрос возвращает небольшое число строк, то связанный запрос выполнится медленнее несвязанного.
СПЕЦИАЛЬНЫЕ ОПЕРАТОРЫ ANY или SOME
Операторы SOME и ANY - взаимозаменяемы везде и там где мы используем ANY, SOME будет работать точно так же. Различие в терминологии состоит в том чтобы позволить людям использовать тот термин который наиболее однозначен. Это может создать проблему; потому что, как мы это увидим, наша интуиция может иногда вводить в заблуждение. Имеется новый способ нахождения продавца с заказчиками размещенными в их городах ( вывод для этого запроса показывается в Рисунке 13.1 ): SELECT *
FROM Salespeople
WHERE city = ANY
(SELECT city
FROM Customers );
Оператор ANY берет все значения выведенные подзапросом, ( для этого случая - это все значения city в таблице Заказчиков ), и оценивает их как верные если любой(ANY) из их равняется значению города текущей строки внешнего запроса.
34. Объединение запросов
Объединение SQL запросов SELECT в базах данных SQLite реализуется при помощи клаузулы UNION, как и во многих других реляционных СУБД. Объединенные запросы SELECT можно считать подзапросами, но это будет не совсем верно. Так же не стоит путать объединение запросов с объединением таблиц. Ключевое слово JOIN выполняет операцию объединение таблиц, в то время как объединение запросов выполняется при помощи UNION.
Объединение запросов SELECT при помощи уточняющей фразы UNION нельзя считать подзапросом SELECT хотя бы по той причине, что обычно подзапросы выполняются для связанных таблиц, например, при помощи ограничения внешнего ключа FOREIGN KEY. А объединение таблиц предикатом UNION выполняется для таблиц никак не связанных, но со схожей структурой.
В базах данных SQLite3 реализовано два варианта объединения запросов: первый вариант заключается в использование ключевого слова UNION и в результирующей таблице мы получаем неповторяющиеся строки, второй вариант заключается в использование фразы UNION ALL, в этом случае SQLite составит результирующую таблицу с повторениями.
Первый вариант выполняется несколько медленнее, так как, выполняя запрос на объединение UNION, SQLite сравнивает значения строк. Поэтому важно помнить, что SQLite – это СУБД с динамической типизацией данных, в которой понятие тип заменено на класс данных, а столбцам мы можем задать аффинированный тип данных, который используется лишь для сравнения значений.
|
35. SQL: запрос выборки данных по нескольким таблицам, оператор join, левое, правое и внутреннее соединение
Объединение таблиц
Одна из наиболее важных особенностей запросов SQL — это их способность определять связи между различными таблицами и выводить информацию из них в терминах этих связей, всю внутри одной команды.
Этот вид операции называется — объединением, которое является одним из видов операций в реляционных базах данных. Как установлено в Главе 1, главное в реляционном подходе это связи, которые можно создавать между позициями данных в таблицах. Используя объединения, мы непосредственно связываем информацию с любым номером таблицы, и таким образом способны создавать связи между сравнимыми фрагментами данных.
При объединении, таблицы, представленные списком в предложении FROM запроса, отделяются запятыми. Предикат запроса может ссылаться к любому столбцу любой связанной таблицы и, следовательно, может использоваться для связи между ними. Обычно предикат сравнивает значения в столбцах различных таблиц, чтобы определить, удовлетворяет ли WHERE установленному условию.
Имена таблиц и столбцов
Полное имя столбца таблицы фактически состоит из имени таблицы, сопровождаемого точкой и затем именем столбца. Имеются несколько примеров имен :
Salespeople.snum Salespeople.city Orders.odate
До этого, вы могли опускать имена таблиц, потому что вы запрашивали только одну таблицу одновременно, а SQL достаточно интеллектуален, чтобы присвоить соответствующий префикс, имени таблицы. Даже когда вы делаете запрос из нескольких таблиц, вы еще можете опускать имена таблиц, если все столбцы имеют различные имена. Но так бывает не всегда. Например, мы имеем две типовые таблицы со столбцами называемыми city.
Если мы должны связать эти столбцы (кратковременно), мы будем должны указать их с именами Salespeople.city или Customers.city, чтобы SQL мог их различать.
|
36. Запросы обновления таблиц insert, update, delete.
Операторы SQL INSERT, UPDATE и DELETE предназначены соответственно для вставки, изменения и удаления данных из таблиц баз данных.
Оператор SQL INSERT
Оператор SQL INSERT предназначен для вставки новых данных в базу. В результате его применения в таблице базы данных появляется новая строка. Оператор INSERT имеет следующий синтаксис:
INSERT INTO ИМЯ_ТАБЛИЦЫ (ИМЕНА СТОЛБЦОВ)
VALUES (ВСТАВЛЯЕМЫЕ_ЗНАЧЕНИЯ)
Можно писать этот запрос и без имён столбцов:
INSERT INTO ИМЯ_ТАБЛИЦЫ
VALUES (ВСТАВЛЯЕМЫЕ_ЗНАЧЕНИЯ)
Оператор SQL UPDATE
Оператор SQL UPDATE предназначен для обновления (редактирования) данных в таблице. Он применяется, когда в той или иной строке таблицы уже записаны некоторые данные и нужно внести в них изменения. Оператор UPDATE имеет следующий синтаксис:
UPDATE ИМЯ_ТАБЛИЦЫ SET
ИМЯ_СТОЛБЦА_1=ЗНАЧЕНИЕ, ...,
ИМЯ_СТОЛБЦА_N=ЗНАЧЕНИЕ
WHERE УСЛОВИЕ
Оператор SQL DELETE
Оператор SQL DELETE предназначен для удаления данных из таблицы. Он имеет следующий синтаксис:
DELETE FROM ИМЯ_ТАБЛИЦЫ
WHERE УСЛОВИЕ
Если не указывать условие, из таблицы будут удалены все строки. Кроме того, следует помнить, что могут быть удалены лишь строки с первичными ключами, на которые не ссылаются внешние ключи в других таблицах (более подробно об ограничениях удаления 40. Определение прав доступа к данным.
Права подключающегося пользователя делятся на явные и неявные. Явные права имеются в случае, если они определены для учетной записи пользователя. Неявные права - это права той группы, в которую входит пользователь.
Типы прав доступа: Открытие/запуск (Open/Run), Чтение макета, Изменение макета, Чтение данных, Обновление данных, Вставка и удаление данных
,Admin: развешенные действия: Для баз данных — установка пароля базы данных, репликация базы данных и изменение параметров запуска. Для обьектов базы данных — все разрешения на объекты и данные, в том числе предоставление разрешений на доступ
|
37. Создание, модификация и уничтожение таблиц. Ограничения на множество допустимых значений данных. Значение по умолчанию
В теории практики баз данных всегда различают 2 понятия: язык манипулирования данными (ЯМД) и язык описания данных (ЯОД). К ЯМД относятся рассмотренные выше команды SQL, а к ЯОД относятся команды создания таблиц и связей между ними. Речь идёт не только об описании состава и формата полей, но и о значении по умолчанию и ограничении на множество допустимых значений. Всё это определяется не на уровне конкретных записей, а как свойство определяемых таблиц данных и совокупностей таблиц.
Создание таблиц может быть выполнено командой языка ЯМД на основе данных из уже существующих таблиц. Это типичная форма хранения промежуточных данных. Формат это команды имеет следующий вид:
SELECT список_полей INTO новая_таблица FROM источник;
Здесь список_полей – это имена полей исходных таблиц, из которых будет состоять новая таблица; новая_таблица – имя создаваемой таблицы; источник – таблица или подзапрос.
Другим способом создания таблиц является использование команд ЯОД. В MS Access эти команды определены в режиме SQL, но не имеют аналогов в конструкторе запросов. Это уменьшает гибкость использования SQL, т.к. требует предварительного определения всех временно создаваемых таблиц. Формат этой команды имеет следующий вид:
CREATE TABLE имя_таблицы (имя_поля тип_данных [(размер)], … имя_поля тип_данных [(размер)]);
Каждая таблица должна содержать хотя бы один столбец, т.к. пробелы используются для разделения параметров, а имена полей не могут содержать пробелы (в MS Acces пробелы возможны, но не рекомендуются).
Типы данных для различных программных средств значительно отличаются, однако в целях совместимости со стандартом всегда поддерживают стандартные ANSI типы данных. К ним относятся:
char (размер) – символьные данные (размер по умолчанию равен 1);
long – целое (4 байта);
real– с плавающей точкой (4 байта);
numeric, float - с плавающей точкой (8 байта);
|
41. Определение синонимов объектов. Понятие транзакций. Управление параллелизмом
Транзакция — это логическая единица работы, которая лежит в основе проблемы параллелизма.
Главная задача управления параллелизмом заключается в следующем:
• или все изменения, сделанные транзакцией, фиксируются и делаются постоянными (успешное завершение транзакции);
• или транзакция никак не влияет на состояние базы данных (ошибки при выполнении транзакции, откат транзакции). Транзакция имеет начало; оно может определяться неявно, например когда программа подсоединяется к БД, или явно.
Синоним есть другое имя для таблицы или представления. Синонимы используются для того, чтобы сделать базу данных более дружественной для пользователя. Это означает, что объектам базы данных, которые попадают в сферу внимания пользователей, назначаются альтернативные, длинные имена в терминах предметной области базы данных. Такие имена более понятны неподготовленным пользователям базы данных и не будут создавать дополнительных психологических препятствий в работе с базой данных. С другой стороны, если объекты базы данных носят длинные имена, то их неудобно использовать в часто выполняемых запросах, т.к. каждый раз приходится набирать длинную последовательность символов. Синоним позволяет ввести сокращенное имя. Задача назначения синонимов объектам базы данных является задачей администратора данных организации или администратора базы данных.
| 43. СУБД DB2. Иерархия объектов базы данных.
DB2 — это семейство систем управления реляционными базами данных, выпускаемых корпорацией IBM. Это одна из мировых СУБД, постоянный лидер в производительности, по уровню технической реализации, возможностям масштабирования и т.д.
DB2 имеет долгую историю. Это первая СУБД, которая стала использовать SQL. С 1975 по 1982 год прототип DB2 разрабатывался в IBM под названием System Relational, или System R.
BM DB2 - наиболее высокопроизводительная и мощная СУБД в мире. Ее основное уникальное конкурентное преимущество - возможность расширения (масштабирования) системы без проблем. Это означает, что любое приложение, написанное для DB2, будет работать с серверами данных DB2, работающими на любой распределенной платформе, поддерживаемой DB2 (Windows, HP-UX, Sun Solaris, Linux, Mac OS X и AIX®).
13. Построение таблиц в MS Access. В базе данных можно хранить данные в виде таблиц — тематических списков строк и столбцов. Например, вы можете создать таблицу "Контакты" для хранения имен, адресов и телефонных номеров или таблицу "Товары" для хранения сведений о товарах. В этой статье описано, как создать таблицу, добавить в нее поля, настроить первичный ключ и свойства таблицы и полей. Создание таблицы в новой базе данных 1. Щелкните Файл > Создать и выберите пункт Пустая база данных рабочего стола. 2. В поле Файл введите имя файла новой базы данных. 3. Чтобы сохранить базу данных в другом месте, щелкните значок папки. 4. Нажмите кнопку Создать. Откроется новая база данных, в которой будет создана и открыта в режиме таблицы новая таблица с именем "Таблица1".
| 10. Разработка приложений в среде MS Access
Процесс разработки конкретного программного приложения в среде Access в первую очередь определяется спецификой автоматизируемой предметной области. Однако для большинства из них можно выделить ряд типичных этапов. Это: - разработка и описание структур таблиц данных; - разработка схемы данных и задание системы взаимосвязей между таблицам - разработка системы запросов к таблицам базы данных и (при необходимости их интеграция в схему данных; - разработка экранных форм ввода/вывода данных; - разработка системы отчетов по данным; - разработка программных расширений для базы данных, решающих специфические задачи по обработке содержащейся в ней информации, с помощью иструментария макросов и модулей; - разработка системы защиты данных, прав и ограничений по доступу. Очевидно, что между перечисленными этапами существует большое количеств обратных связей, подразумевающих возврат к более ранним шагам, исходя из вновь открывшихся обстоятельств, которые невозможно было заранее учесть ил предвидеть. 12. Назначение объектов MS Access
шесть видов объектов, с которыми работает программа.
· Таблицы - основные объекты базы данных. С ними мы уже знакомы. В них хранятся данные. Реляционная база данных может иметь много взаимосвязанных таблиц.
· Запросы - это специальные структуры, предназначенные для обработки данных базы. С помощью запросов данные упорядочивают, фильтруют, отбирают, изменяют, объединяют, то есть обрабатывают.
· Формы - это объекты, с помощью которых в базу вводят новые данные или просматривают имеющиеся.
· Отчеты - это формы "наоборот". С их помощью данные выдают на принтер в удобном и наглядном виде.
· Макросы - это макрокоманды. Если какие-то операции с базой производятся особенно часто, имеет смысл сгруппировать несколько команд в один макрос и назначить его выделенной комбинации клавиш.
· Модули - это программные процедуры, написанные на языке Visual Basic. Если стандартных средств Access не хватает для удовлетворения требований заказчика, программист может расширить возможности системы, написав для этого необходимые модули или использовав готовые
| 11. Архитектура Microsoft Access.
Microsoft Access называет объектами все, что может иметь имя (в смысле Access). В базе данных Access основными объектами являются таблицы, запросы, формы, отчеты, макросы и модули.
Событие – любое изменение состояния объекта Microsoft Access. Например, событием является открытие формы, закрытие формы, ввод новой строки в форму, изменение содержимого текущей записи или элемента управления (объекта формы или отчета, который может содержать данные).
Таблица Объект, который вы определяете и используете для хранения данных. Каждая таблица включает информацию об объекте определенного типа, например о клиентах. Таблица содержит поля (столбцы), в которых хранятся различного рода данные, например фамилия или адрес клиента, и записи (которые называются также строками). В записи собрана вся информация о конкретном предмете (человеке, образце продукции). Для каждой таблицы вы можете определить первичный и один или несколько индексов с целью увеличения скорости доступа к данным.
Запрос Объект, который позволяет пользователю получить нужные данные из одной или нескольких таблиц. Для создания запроса вы можете использовать QBE (запрос по образцу) или инструкции SQL. Вы можете создать запросы на выбор, обновление, удаление или на добавление данных.
Форма Объект, предназначенный в основном для ввода данных, отображения их на экране или управления работой приложения.
Отчет Объект, предназначенный для создания документа, который впоследствии может быть распечатан или включен в документ другого приложения. Прежде чем выводить отчет на принтер, вы можете предварительно просмотреть его на экране.
Макрос Объект, представляющий собой структурированное описание одного или нескольких действий, которые, по вашему мнению, должен выполнить Access в ответ на определенное событие. Например, вы можете определить макрос, который в ответ на выбор некоторого элемента в основной форме открывает другую форму.
Модуль Объект, содержащий программы на Microsoft Access Basic,которые позволяют вам разбить процесс на более мелкие действия и обнаружить те ошибки, которые вы не могли бы найти с использованием макросов.
| |
|
|