Структурированный язык запросов SQL

Автор работы: Пользователь скрыл имя, 16 Ноября 2013 в 16:44, контрольная работа

Краткое описание

SQL язык структурированных запросов»— универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей.
В начале 1970-х годов в одной из исследовательских лабораторий компании IBMбыла разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД.

Вложенные файлы: 1 файл

Контрольная по информатике.docx

— 1.26 Мб (Скачать файл)

Теоретических вопрос: Структурированный  язык запросов SQL.

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

В начале 1970-х годов в одной из исследовательских лабораторий компании IBMбыла разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД.

Целью разработки было создание простого непроцедурного языка, которым  мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

 

 

Год

Название

Иное название

Изменения

1986

SQL-86

SQL-87

Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году.

1989

SQL-89

FIPS 127-1

Доработанный вариант.

1992

SQL-92

SQL2, FIPS 127-2

Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2.

1999

SQL:1999

SQL3

Добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности.

2003

SQL:2003

 

Введены расширения для работы с XML-данными, оконные функции (применяемые для работы сOLAP-базами данных), генераторы последовательностей и основанные на них типы данных.

2006

SQL:2006

 

Функциональность работы с XML-данными значительно расширена. Появилась возможность совместно  использовать в запросах SQL и XQuery.

2008

SQL:2008

 

Улучшены возможности  оконных функций, устранены некоторые  неоднозначности стандарта SQL:2003[4]


 

Язык SQL предназначен для  выполнения: 
а) операций над таблицами (создание, удаление, изменение структуры); 
б) над данными таблиц (выборка, изменение, добавление и удаление) 
в) некоторых сопутствующих операций (управление доступом, управление индексами, управление транзакциями и др.).

SQL является непроцедурным  языком и не содержит операторов  управления, организации подпрограмм,  ввода-вывода и т.п. В связи  с этим SQL автономно не используется, обычно он погружен в среду  встроенного языка программирования  СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

В современных СУБД с интерактивным  интерфейсом можно создавать  запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность  обработки данных в базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным  оператором SQL. Подготовку нового запроса  путем редактирования уже имеющегося в ряде случае проще выполнить  путем изменения оператора SQL. В  различных СУБД состав операторов SQL может несколько отличаться.

Язык SQL не обладает функциями  полноценного языка разработки, а  ориентирован на доступ к данным, поэтому  его включают в состав средств  разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные  реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.

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

Различают два основных метода использования встроенного SQL: статический  и динамический.

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

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

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

Для удобства работы с представлениями  в язык SQL введено понятие курсора. Курсор представляет собой своеобразный указатель на набор записей в  представлении, обеспечивающий в каждый момент доступ лишь к некоторой небольшой  части строк представления. С  помощью операторов перемещения  курсора по записям можно получить доступ ко всем строкам таблицы.

 

Практическое  задание №1.

1.Описать историю движения по базе данных охотничьего ружья марки ИЖ 27 с серийным номером 933178,  составив список ее владельцев (бывших и настоящих).

  1. Определить количество единиц оружия, имеющего статус «сдано»

3.Найти владельцев оружия с номерами, заканчивающимися на 679. Отразить в запросе ФИО, номер оружия, марку и модель оружия.

 

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

 

5.Определить в какой день недели родился владелец разрешения с номером 6852676.

6.Подсчитать количество выданных лицензий на приобретение одной единицы охотничьего пневматического оружия (более 7,5 Дж) (ЛПА) за весь период ведения базы данных

7.Установить владельца охотничьего ружья марки ИЖ 27 с серийным номером 933178 по состоянию на 1-10 августа 2008 года. 

 

8.Найти владельца разрешения с номером 2073960.

9.Определить количество единиц «свободного» оружия.

10.Установить владельца охотничьего ружья марки МР с серийным номером 933178 по состоянию на 1-10 августа 2008 года.

 

Под данным серийным номером  было выявлена марка оружия иж 27 , марки  МР не было выявлено.

 

Практическое  задание № 2

Установить номер абонента, которому 15 сентября 2011 года было сделано  наибольшее количество звонков, подсчитать количество таких звонков.

Установить номер абонента, от которого 23 сентября 2011 года поступило  наибольшее количество звонков, подсчитать количество таких звонков.

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

Определить номер абонента, которому 12 сентября 2011 года было отправлено наибольшее количество SMS-сообщений (исходящие  сообщения);

Составить таблицу, проранжировав  в ней номера абонентов в порядке  убывания количества входящих SMS-сообщений; первый столбец таблицы должен содержать  номер абонента, второй – количество полученных от него SMS-сообщений.

Установить номер абонента, с которым 24 сентября 2011 года была зафиксирована  наибольшая продолжительность телефонных разговоров.

Составить таблицу, проранжировав  в ней в ней номера абонентов  в порядке убывания общей продолжительности  телефонных разговоров; первый столбец  таблицы должен содержать номер  абонента, второй – продолжительность  телефонных разговоров с данным абонентом.

Определить на какой час  суток приходится больше всего (по продолжительности) телефонных разговоров; например, с 20:00 до 21:00.

Составить таблицу, отразив  в ней количество исходящих телефонных звонков абонента 22 сентября 2011 года в зависимости от времени суток; первый столбец таблицы должен содержать час суток (число от 0 до 24), второй – количество исходящих звонков за этот период.

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

 

 

 

 

 

 

 

 

Список используемой литературы.

  1. Источник: Айтхожаева Е.Ж. Структурированный язык запросов SQL.
  2. Введение в язык структурированных запросов SQL / Учебное пособие. – Кемерово, Кемеровский госуниверситет, 2001
  3. Структурированный язык запросов (SQL), Учебное пособие, В.В. Кириллов, Г.Ю.Громов, Октябрь, 1998.

 

 


Информация о работе Структурированный язык запросов SQL