Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Основные команды языка запросов SQL. Типы запросов (команды Select) с примерами.

Читайте также:
  1. For, to, step, next - команды цикла
  2. I Кислотно-основные свойства.
  3. I Кислотные и основные свойства
  4. I. Нормы современного русского литературного языка. Орфоэпические нормы. Лексические нормы.
  5. I. Определить основные критерии качества атмосферного воздуха.
  6. I. Основные богословские положения
  7. I. Основные задачи и направления работы библиотеки
  8. I. Основные парадигмы классической социологической теории.
  9. I. Основные положения
  10. I. ОСНОВНЫЕ ПОЛОЖЕНИЯ УЧЕБНОЙ ПРАКТИКИ

· Имеются развитые средства администрирования, коллек­тив­ного использования распределенных баз данных, защиты и вос­становления баз данных.

· Наличие мощного языка запросов PL/SQL и средств разработки при­­ло­жений.

 

Достоинства FoxPro. Наличие собственного развитого, простого и удобного языка программирования, мастеров, конструкторов, обработка несколькихбаз данных с различными СУБД, возможность создания исполняемых EXE‑файлов.

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

FoxPro рекомендуется использовать для разработки достаточно сложных приложений с ограниченным объемом (не более миллиона запи­сей) обрабатываемой информации для небольших и средних предприятий.

Достоинства Access. Простота, гибкость, русификация, наличие раз­нообразных масте­ров, конструкторов, надежная работа.

Недостатки Access. Слабые средства защиты и восстановления ин­фор­мации, огра­ни­че­ния на объем информации, отсутствие собственного языка програм­миро­вания, низкая скорость при работе с большими объемами информации.

Access рекомендуется использовать для разработки простых прило­же­ний и персональных баз данных с ограниченным объемом (несколько сотен тысяч записей) информации для неболь­ших

Достоинства SQL Server. Имеются гибкие и мощные средста администрирования и языка запросов Transact-SQL, надежность, эффективная работа, ориентация на коллективное использование.

Недостатки SQL Server. Отсутствуют средства визуальной раз­ра­ботки приложений.

SQL Server рекомендуется использовать для создания очень больших централизованных или распределенных баз данных (хранилищ данных) коллективного использования для средних и крупных предприятий.

Достоинства Oracle. Достоинства аналогичны достоинствам SQL Server плюс наличие развитых средств загрузки/разгрузки данных, раз­работ­ки приложений и оперативного анализа данных.

Недостатки Oracle. Сложность и высокая стоимость приобретения.

Oracle рекомендуется использовать для очень больших центра­ли­зованных или распределенных баз данных (хранилищ данных) коллектив­ного использования для крупных предприятий.

 

 

Вопрос 5 – Механизм транзакций и блокировок…

С помощью транзакций и блокировок СУБД обеспечивает согласованность и целостность БД, несмотря на возникающие в системе ошибки. Транзакция – это последовательность действий с базой данных (например, вставка новых записей, изменение записей или их удаление), в которой либо все действия выполняются успешно, либо не выполняются ни в одном из них, т.е. транзакция должна выполняться ка единое целое. Транзакции обладают следующими свойствами: атомарность – транзакция должна представлять собой единую неделимую работу; согласованность – по завершении транзакции все данные должны остаться в согласованном состоянии (т.е. если происходит списание некоторой суммы с одного счета на другой, то после проведения транзакции изменения должны коснуться обоих счетов); изоляция – во время выполнения транзакции параллельные транзакции не должны оказывать влияние на ее результат; устойчивость – по завершении транзакции ее результат должен сохраниться в системе, несмотря на, те или иные возникающие сбои системы. Механизм транзакций обеспечивается с помощью журнала транзакций, управлением параллельным выполнением и блокировками. В журнале транзакций регистрируются все транзакции и модификации БД, выполняемые каждой транзакцией, что позволяет при различных сбоях в системе восстанавливать отдельные транзакции, восстановить все незавершенные транзакции при запуске СУБД и восстановление БД путем повтора всех зарегистрированных до момента аварии действий. Управление параллельным выполнением представлен двумя типами: пессимистическое управление параллельным выполнением – не разрешает пользователям выполнять модификации, влияющие на других пользователей (если пользователь выполнил какое-либо действие, в результате которого установлена блокировка, то другим пользователям не удастся выполнить действия, конфликтующие с установленной блокировкой, пока владелец не освободит ее; оптимистическое управление параллельным выполнением – при этом управлении пользователи не блокируют данные при чтении (во время обновления система следит, не изменил ли другой пользователь данные после их прочтения. если изменил, то генерируется ошибка и происходит откат транзакции и операция повторяется снова). С помощью блокировок СУБД реализует механизм управления параллельным выполнением при работе множества пользователей. Блокировки управляются внутрисистемным механизмом, т.е. они устанавливаются и снимаются в зависимости от действий пользователя. Это гарантирует, что блокировки, действующие на одном уровне, не нарушат блокировок, установленных на другом уровне. Блокировки в БД применяются на разных уровнях. Они могут останавливаться для строк, страниц, ключей, индексов, таблиц.

Хранимые процедуры – это объект БД, который позволяет повысить производительность, расширяет возможности программирования и поддерживает функции безопасности. Производительность обеспечивается следующим: хранимая процедура создается и хранится локально в БД, компилируется и при ее вызове СУБД сразу же ее выполняет, что позволяет избежать пересылки через сеть сотен команд, которые бы приводили к тому, что СУБД должна была бы проверить у отправителя права на исполнение этих команд и допустимы ли сами команды. После этого СУБД должна построить план исполнения запроса (выбор оптимального индекса, выборка результатов, сортировка и группировка полученной информации).

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

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

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

Триггеры – это особый класс хранимых процедур, автоматически исполняемых во время модификации данных или после нее. Триггеры привязываются к таблицами или представлениям и срабатывают при исполнении трех команд: INSERT, UPDATE и DELETE. Они позволяют реализовать в БД сложные процедурные методы поддержания целостности данных.

Вопрос 6 – Нормализация отношений с примерами…

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

Исходная таблица “Выпуск изделия”

Код изделия Наименование изделия Код типа изделия Наименование типа изделия Количество Список ТМЦ
  Рама   Сборочная единица   Кронштейн Планка упорная Проволока сварочная
  Балка боковая   Деталь   Смесь газовая Полка Стенка

 

1НФ Таблица находится в первой нормальной форме, если в каждой ее ячейке находится не более одного значения.

“Выпуск изделия”

Код изделия Наименование изделия Код типа изделия Наименование типа изделия Количество Код ТМЦ Наименование ТМЦ
  Рама   Сборочная единица     Кронштейн
  Рама   Сборочная единица     Планка упорная
  Рама   Сборочная единица     Проволока сварочная
  Балка боковая   Деталь     Смесь газовая
  Балка боковая   Деталь     Полка
  Балка боковая   Деталь     Стенка

Недостатки: избыточное дублирование данных (наименование изделия дублируются в каждой строке); если наименование изделия меняется, то необходимо будет его менять во всех строках

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

Из предыдущей таблицы видно, что “Наименование изделия” зависит только от “Кода изделия”, а “Наименование ТМЦ” зависит только от “Кода ТМЦ”.

“Изделия”

Код изделия Наименование изделия Код типа изделия Наименование типа изделия
  Рама   Сборочная единица
  Балка боковая   Деталь

 

“ТМЦ”

Код ТМЦ Наименование ТМЦ
  Кронштейн
  Планка упорная
  Проволока сварочная
  Смесь газовая
  Полка
  Стенка

 

“Выпуск изделия”

Код изделия Количество Код ТМЦ
     
     
     
     
     
     

 

3НФ Таблица находится в третьей нормальной форме, если она уже находится во второй нормальной форме и все неключевые атрибуты взаимно функционально независимы.

Из таблицы “Изделия” видно, что “Наименование типа изделия” зависит от неключевого атрибута “Код типа изделия”, поэтому его следует удалить.

 

 

“Изделия”

Код изделия Наименование изделия Код типа изделия
  Рама  
  Балка боковая  

 

“Типы изделий”

Код типа изделия Наименование типа изделия
  Сборочная единица
  Деталь

Вопрос 7 – История возникновения и этапы развития баз данных…

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

База данных – совокупность взаимосвязанных данных (таблиц, индексов, ограничений, триггеров, хранимых процедур).

Система управления базами данных (СУБД) – комплекс программных средств, предназначенный для создания, ведения и использования баз данных. По своим возможностям СУБД можно разделить на две группы: полнофункциональные СУБД –наиболее мощные, многопользовательские, с системами защиты, копирования и восстановления данных (Oracle, Microsoft SQL Server, DB/2); персональные СУБД – с ограниченными возможностями, но более простые в использовании (Access, Visual FoxPro, Clipper), но персональные СУБД постоянно совершенствуются.

Банк данных – совокупность баз данных, СУБД и комплекса технических средств (компьютеры, внешние устройства и устройства связи).

Предметная область – организация, подразделение, для которого создается БД.

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

Атрибут – отдельная характеристика объекта.

Экземпляр объекта (кортеж, запись) – единичное значение объекта.

Ключ – атрибут или группа атрибутов, однозначно определяющая экземпляр объекта (запись или строку таблицы).

Словарь базы данных – централизованное хранилище сведений об объектах, взаимосвязях, источниках, значениях, форматах.

Администрирование баз данных – совокупность тех или иных мероприятий, направленных на проектирование и эффективное использование баз данных.

Основные функции администратора баз данных заключаются в следующем:

- определение архитектуры и проектирование БД

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

- обеспечение целостности БД (разработать план для копирования и восстановления данных)

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

- отслеживание трафика загрузки БД, сбоев, характеристик (время доступа, общее время обработки запросов)

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

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

Вопрос 8 – Основные команды языка запросов SQL…

К основным командам языка запросов SQL относятся операторы для выборки, добавления, обновления и удаления данных.

Оператор SELECT позволяет осуществлять выборку одной или нескольких строк из одной или нескольких таблиц.

Пример 1: Команда выбирает всех поставщиков из таблицы Поставщики, которые из Московской области и сортирует полученные данные по поставщику.

SELECT поставщик, регион FROM Поставщики WHERE регион=’Московская’ ORDER BY поставщик

Оператор INSERT добавляет в таблицу новую строку.

Пример 1: Команда добавляет в таблицу Книги новую строку.

INSERT INTO Книги (название_книги, наименование_издателя, год_издания) VALUES (‘Международные финансы’,’Юрайт’,2014)

Оператор UPDATE служит для изменения данных в таблицах.

Пример1: Команда изменяет наименование издательства только в тех строках, которые соответствуют условию поиска

UPDATE Книги SET наименование_издателя=’Юрайт Пресс’ WHERE наименование_издателя=’Юрайт’

Оператор DELETE удаляет строки из таблицы.

Пример 1: Команда удаляет запись с идентификатором 98101 из таблицы Книги.

DELETE FROM Книги WHERE идентификатор_книги=98101

Типы запросов:

Точечный запрос – возвращает не более одной записи на основе выборки равенства.

Пример: запрос возвращает значения полей фамилия_сотрудника, имя_сотрудника и отчество_сотрудника записи единственного сотрудника с идентификационным номером 8478.

SELECT фамилия_сотрудника, имя_сотрудника, отчество_сотрудника FROM Сотрудники WHERE идентификатор сотрудника=8478

Многоточечный запрос – это запрос, который на основе выборки равенства может вернуть несколько записей

Пример: запрос возвращает всех сотрудников отдела Маркетинг

SELECT фамилия_сотрудника, имя_сотрудника, отчество_сотрудника FROM Сотрудники WHERE отдел=’Маркетинг’

Запрос диапазона – возвращает множество записей, значения которых лежат в заданном интервале.

Пример: запрос возвращает всех сотрудников, у которых заработная плата входит в указанный диапазон.

SELECT фамилия_сотрудника, имя_сотрудника, отчество_сотрудника, FROM Сотрудники WHERE заработная_плата>=35000 AND заработная плата<=60000

Запрос соответствия префиксу по атрибуту или последовательности атрибутов.

Пример: запрос выбирает все города, которые начинаются с буквы П.

SELECT наименование_города FROM Города WHERE наименование_города=LIKE ‘П%’

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

Пример: запрос возвращает всех сотрудников, получающих самую высокую заработную плату

SELECT фамилия_сотрудника, имя_сотрудника, отчество_сотрудника, FROM Сотрудники WHERE заработная_плата=MAX(SELECT заработная плата FROM Сотрудники)

Запрос упорядочения – запрос осуществляет вывод множества записей в порядке, определяемом значениями некоторого атрибута или группы атрибутов.

Пример: запрос выбирает все столбцы из таблицы Сотрудники, где сотрудники упорядочены по отделам.

SELECT * FROM Сотрудники ORDER BY Отдел

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

Пример: запрос рассчитывает среднюю заработную плату в каждом отделе.

SELECT наименование_отдела, AVG(заработная_плата) FROM Сотрудники GROUP BY наименование_отдела

Запрос соединения связывает две или большее количество таблиц.

Пример: запрос возвращает всех авторов и издательства, которые расположены в тех городах, где проживают авторы.

SELECT фамилия_автора, имя_автора, отчество_автора, наименование_издательства FROM Авторы LEFT OUTER JOIN Издательства ON Авторы.город=Издательства.город

 

Основные команды языка запросов SQL. Типы запросов (команды Select) с примерами.

Запрос представляет собой требование, определяющее выборку нуж­ных данных из одной или нескольких таблиц базы, удаление или из­ме­нение данных, создание новых таблиц. Существуют два типа языков опи­сания запросов: язык запросов по образцу QBE (Query By Example) и структурированный язык запросов SQL (Structured Query Language).

Язык QBE предполагает использование визуальных средств пост­рое­ния результирующей таблицы из первоначально пустой таблицы путем вы­­борки и связывания нужных исходных таблиц и запросов, пе­ре­тас­кива­ния мышкой нужных колонок, формирования мастерами расчетных коло­нок и условий отбора записей, сортировки, группировки и аг­ре­ги­ро­ва­ния данных. Примером использования QBE является запросная форма СУБД Access.

Язык SQL (стандарт SQL‑92) предполагает использование коман­д­ных средств. Хотя синтаксис команд языка SQL и достаточно унифици­ро­ван для различных СУБД, но есть некоторые отличия в деталях. Суще­ствуют статический SQL (команды SQL включаются в выполняемый модуль после компиляции) и динамический SQL (команды SQL форми­руют­ся в процессе выполнения программы и выпол­няют­ся в интер­пре­ти­рую­щем режиме). В результате выполнения запро­са на выборку фор­ми­рует­ся но­вая таблица, называемая представлением (View), к которой уста­нав­­ли­вает­ся со­ответствующий указатель, называемый курсо­ром (Cursor). Курсор слу­жит для ссылки на нужное представление в командах открытия, пере­ме­щения по записями и закрытия нужного представления (п. 4.3.6).




Дата добавления: 2014-12-20; просмотров: 127 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.015 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав