Оптимизация запросов SQL

Автор: Николай Рогозин, 16 Сентября 2010 в 00:01, курсовая работа

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

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

Оглавление

Введение………………………………….……………………......……………….…......3
1. Краткая история языка SQL……………………….…….....................................…....5
2. Основные определения и состав языка SQL…….……....................................…….10
2.1. Основные определения языка SQL…………………………........………….……..10
2.2.Состав языка SQL……………………………………….…............…………….…..11
3. Основные команды языка SQL....................................................................................13
3.1. Запросы в языке SQL…………………………………....................……………......17
3.1.1. Создание запроса. Что такое зарос........................................................................17
3.1.2. Где применяются запросы….…………………………..…………………...........17
Заключение………………………...……………............……………….…………..…...18
Глоссарий………………………………………………………………………………...20
Список использованных источников…….…………..........………….…...………........22
Приложение А Архитектура СУБД: однозвенная, двухзвенная, трехзвенная ……...23

Файлы: 1 файл

Оптимизация запросов SQL.doc

— 190.00 Кб (Скачать)

     Основные данные о работе

Версия  шаблона 1.1
Филиал  
Вид работы Курсовая работа
Название  дисциплины База данных
Тема Оптимизация запросов SQL
Фамилия студента  
Имя студента  
Отчество  студента  
№ контракта  

 

     Содержание

 

Введение………………………………….……………………......……………….…......3

1.  Краткая  история языка SQL……………………….…….....................................…....5

2. Основные  определения  и состав языка  SQL…….……....................................…….10

2.1. Основные  определения языка SQL…………………………........………….……..10

2.2.Состав  языка SQL……………………………………….…............…………….…..11

3. Основные  команды языка SQL....................................................................................13

3.1. Запросы в языке SQL…………………………………....................……………......17

3.1.1. Создание запроса. Что такое зарос........................................................................17

3.1.2. Где применяются  запросы….…………………………..…………………...........17

Заключение………………………...……………............……………….…………..…...18

Глоссарий………………………………………………………………………………...20

Список  использованных источников…….…………..........………….…...………........22

Приложение А Архитектура СУБД: однозвенная, двухзвенная, трехзвенная ……...23

     Введение

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

      В настоящее время термины база данных и система управления базами данных используются исключительно как относящиеся к компьютерам.

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

      По  своей архитектуре СУБД делятся  на одно-, двух-, и трехзвенные, которые представлены в Приложении А.

      В зависимости от местоположения отдельных  частей СУБД различают локальные  и сетевые СУБД.

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

      К сетевым относятся файл-серверные, клиент-серверные и распределенные СУБД. Непременным атрибутом этих систем является сеть, обеспечивающая аппаратную связь компьютеров и делающая возможной корпоративную работу множества пользователей с одними и теми же данными.

      В файл-серверных СУБД все данные обычно размещаются в одном или нескольких каталогах достаточно мощной машины, специально выделенной для этих целей и постоянно подключенной к сети. Такой компьютер называется файл-сервером  — отсюда название СУБД. Безусловным достоинством СУБД этого типа является относительная простота ее создания и обслуживания — фактически все сводится лишь к развертыванию локальной сети и установке на подключенных к ней компьютерах сетевых операционных систем. По счастью, Delphi «умеет» использовать сетевые средства самой популярной в мире ОС — Windows для создания соответствующих клиентских мест, то есть специального программного обеспечения компьютеров пользователей. Нетрудно заметить, что между локальными и файл-серверными вариантами СУБД нет особых различий, так как в них все части собственно СУБД (кроме данных) находятся на компьютере клиента. По архитектуре они обычно являются однозвенными, но в некоторых случаях могут использовать сервер приложений. Недостатком файл-серверных систем является значительная нагрузка на сеть.1

     Основная  часть

     1. Краткая история языка SQL

 

      Язык  SQL, предназначенный для взаимодействия с базами данных, появился в середине 70-х гг. (первые публикации датируются 1974 г.) и был разработан в компании IBM в рамках проекта экспериментальной реляционной СУБД System R. Исходное название языка SEQUEL (Structured English Query Language) только частично отражало суть этого языка. Язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционным БД. Но, в действительности, он почти с самого начала являлся полным языком БД, обеспечивающим помимо средств формулирования запросов и манипулирования БД следующие возможности:

  • средства определения и манипулирования схемой БД;
  • средства определения ограничений целостности и триггеров;
  • средства определения представлений БД;
  • средства определения структур физического уровня, поддерживающих эффективное выполнение запросов;
  • средства авторизации доступа к отношениям и их полям;
  • средства определения точек сохранения транзакции, и выполнения фиксации и откатов транзакций. 2

      В языке отсутствовали средства явной  синхронизации доступа к объектам БД со стороны параллельно выполняемых  транзакций: с самого начала предполагалось, что необходимую синхронизацию  неявно выполняет СУБД.

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

      Наиболее  близки к System R были две системы компании IBM – SQL/DS и DB2. Разработчики обеих систем использовали опыт проекта System R, а СУБД SQL/DS напрямую основывалась на программном коде System R. Отсюда предельная близость диалектов SQL, реализованных в этих системах, к SQL  System R. Из SQL  System R были удалены только те части, которые были недостаточно проработаны (например, точки сохранения) или реализация которых вызывала слишком большие технические трудности (например, ограничения целостности и триггеры).

      Другой  подход применялся в таких системах, как Oracle, Informix и Sybase. Несмотря на различие в способах разработки систем, реализация SQL везде происходила «снизу вверх». В первых выпущенных на рынок версиях этих систем использовалось ограниченное подмножество SQL  System R. В частности, в первой известной реализации SQL в СУБД Oracle в операторах выборки не допускалось использование вложенных подзапросов и отсутствовала возможность формулировки запросов с соединениями нескольких отношений.

      Несмотря  на эти ограничения и на очень  слабую, на первых порах, эффективность  СУБД, ориентация компаний на поддержку  разных аппаратных платформ и заинтересованность пользователей в переходе к реляционным системам позволили компаниям добиться коммерческого успеха и приступить к совершенствованию своих реализаций. В текущих версиях Oracle, Informix, Sybase и Microsoft SQL Server поддерживаются достаточно мощные диалекты SQL, хотя реализация иногда вызывает сомнения.

      Деятельность  по стандартизации языка SQL началась практически одновременно с появлением его первых коммерческих реализаций. В 1982 г. комитету по базам данных Американского национального института стандартов (ANSI) было поручено разработать спецификацию стандартного языка реляционных баз данных. Первый документ из числа имеющихся у автора проектов стандарта датирован октябрем 1985 г. и является уже не первым проектом стандарта ANSI. Стандарт был принят ANSI в 1986 г., а в 1987 г. одобрен Международной организацией по стандартизации (ISO). Этот стандарт принято называть SQL/86.

      В качестве основы стандарта нельзя было использовать SQL  System R. Во-первых, этот вариант языка не был должным образом технически проработан. Во-вторых, его слишком сложно было бы реализовать (кто знает, как бы сложилась судьба SQL, если бы все идеи проекта System R были реализованы полностью). Поэтому за основу был взят диалект языка SQL, сложившийся в IBM к началу 1980-х гг. В сущности, этот диалект представлял собой технически проработанное подмножество SQL  System R.

      К 1989 г. стандарт SQL/86 был несколько расширен, и был подготовлен и принят следующий стандарт, получивший название ANSI/ISO SQL/89. В результате SQL/89 во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование. В этом стандарте полностью отсутствуют такие важные разделы, как манипулирование схемой БД и динамический SQL. Многие важные аспекты языка в соответствии со стандартом определяются в реализации.

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

      В 1995 г. стандарт был  дополнен спецификацией интерфейса уровня вызова (Call-Level Interface – SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически задаваемые операторы SQL. По сути дела, SQL/CLI представляет собой альтернативу динамическому SQL. Интерфейсы процедур определены для всех основных языков программирования: С, Ada, Pascal, PL/1 и т. д. Стандарт SQL/CLI послужил основой для создания повсеместно распространенных сегодня интерфейсов ODBC (Open Database Connectivity) и JDBC (Java Database Connectivity).

      В 1996 г. к стандарту  SQL/92 был добавлен еще один компонент – SQL/PSM (Persistent Stored Modules). Основная цель этой спецификации состоит в том, чтобы стандартизировать способы определения и использования хранимых процедур, т. е. специальным образом оформленных программ, включающих операторы SQL, которые сохраняются в базе данных, могут вызываться приложениями и выполняются внутри СУБД.

      Незадолго до завершения работ по определению  стандарта SQL2 была начата разработка стандарта SQL3. Первоначально планировалось завершить проект в 1995 г. и включить в язык некоторые объектные возможности: определяемые пользователями типы данных, поддержку триггеров, поддержку темпоральных свойств данных и т. д. Реально работу над новым стандартом удалось частично завершить только в 1999 г., и по этой причине (а также в связи с проблемой 2000 года) стандарт получил название SQL:1999.

      Вторая  часть SQL:1999 (SQL/Foundation) образует базис стандарта. Вводится система типов языка, формулируются правила определения функциональных зависимостей и возможных ключей, определяются синтаксис и семантика основных операторов SQL:

  • операторов определения и манипулирования схемой базы данных;
  • операторов манипулирования данными;
  • операторов управления транзакциями;
  • операторов управления подключениями к базе данных и т. д.

      Третью  часть занимает уточненная по сравнению  с SQL/92 спецификация SQL/CLI. В четвертой части специфицируется SQL/PSM – синтаксис и семантика языка определения хранимых процедур. Наконец, в пятой части – SQL/Bindings – определяются правила связывания SQL для стандартных версий языков программирования FORTRAN, COBOL, PL/1, Pascal, Ada, C и MUMPS.

      В стандарт SQL:1999 должны были войти еще несколько частей. Среди них спецификации следующих средств:

  • управление распределенными транзакциями (SQL/Transaction);
  • поддержка темпоральных свойств данных (SQL/Temporal);
  • управление внешними данными (SQL/MED);
  • связывание с объектно-ориентированными языками программирования (SQL/OLB);
  • поддержка оперативной аналитической обработки (SQL/OLAP).

Информация о работе Оптимизация запросов SQL