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

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

Версия шаблона

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. Краткая история языка SQL



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

средства определения и манипулирования схемой БД; 

средства определения ограничений целостности и триггеров; 

средства определения представлений БД; 

средства определения структур физического уровня, поддерживающих эффективное выполнение запросов; 

средства авторизации доступа к отношениям и их полям; 

средства определения точек сохранения транзакции, и выполнения фиксации и откатов транзакций. 

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

В настоящее время язык 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, но формулировка на основе понятия внешнего ключа более проста и понятна.

В 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).

В конце 2003 г. был принят и опубликован новый вариант международного стандарта SQL:2003. Многие специалисты считали, что в варианте стандарта, следующем за SQL:1999, будут всего лишь исправлены неточности SQL:1999. Но на самом деле, в SQL:2003 специфицирован ряд новых и важных свойств, часть из которых мы затронем в этом курсе. 

Претерпела некоторые изменения общая организация стандарта. Стандарт SQL:2003 состоит из следующих частей:

9075-1, SQL/Framework; 

9075-2, SQL/Foundation; 

9075-3, SQL/CLI; 

9075-4, SQL/PSM; 

9075-9, SQL/MED; 

9075-10, SQL/OLB; 

9075-11, SQL/Schemata; 

9075-13, SQL/JRT; 

9075-14, SQL/XML.

Части 1-4 и 9-10 с необходимыми изменениями остались такими же, как и в SQL:1999 (разд. 7.4). Часть 5 (SQL/Bindings) перестала существовать; соответствующие спецификации включены в часть 2. Раздел части 2 SQL:1999, посвященный информационной схеме, выделен в отдельную часть 11. Появились две новые части – 13 и 14. Часть 13 полностью называется «SQL Routines and Types Using the Java Programming Language» («Использование подпрограмм и типов SQL в языке программирования Java»). Появление такой части стандарта оправдано повышенным вниманием к языку Java со стороны ведущих производителей SQL-ориентированных СУБД. Наконец, последняя часть SQL:2003 посвящена спецификациям языковых средств, позволяющих работать с XML-документами в среде SQL. 

Текущее состояние процесса стандартизации языка SQL отражает текущее состояние технологии SQL-ориентированных баз данных. Ведущие поставщики соответствующих СУБД (сегодня это компании IBM, Oracle и Microsoft) стараются максимально быстро реагировать на потребности и конъюнктуру рынка и расширяют свои продукты все новыми и новыми возможностями. Очевидна потребность в стандартизации соответствующих языковых средств, но процесс стандартизации явно не поспевает за происходящими изменениями.




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

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

SQL (обычно произносимый как "СИКВЭЛ" или "ЭСКЮЭЛЬ") символизирует собой Структурированный Язык Запросов. Это - язык, который дает возможность создавать и работать в реляционных базах данных, являющихся наборами связанной информации, сохраняемой в таблицах. Информационное пространство становится более унифицированным. Это привело к необходимости создания стандартного языка, который мог бы использоваться в большом количестве различных видов компьютерных сред. 

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

  Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации). 

Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя различные особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.

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

Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде. Поэтому, в язык SQL в качестве составных частей входят:

		язык манипулирования данными (Data Manipulation Language, DML)

		язык определения данных (Data Definition Language, DDL)

		язык управления данными (Data Control Language, DCL).

Это не отдельные языки, а различные команды одного языка. 

Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд:

SELECT       (выбрать)

INSERT       (вставить)

UPDATE       (обновить)

DELETE       (удалить).

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

CREATE DATABASE       (создать базу данных)  

CREATE TABLE       (создать таблицу)  

CREATE VIEW       (создать виртуальную таблицу)  

CREATE INDEX       (создать индекс)  

CREATE TRIGGER      (создать триггер)

CREATE PROCEDURE      (создать сохраненную процедуру)  

ALTER DATABASE       (модифицировать базу данных)  

ALTER TABLE       (модифицировать таблицу)  

ALTER VIEW       (модифицировать виртуальную таблицу)  

ALTER INDEX       (модифицировать индекс)  

ALTER TRIGGER      (модифицировать триггер)  

ALTER PROCEDURE      (модифицировать сохраненную процедуру)  

DROP DATABASE       (удалить базу данных)  

DROP TABLE       (удалить таблицу)  

DROP VIEW       (удалить виртуальную таблицу)  

DROP INDEX       (удалить индекс)  

DROP TRIGGER      (удалить триггер)  

DROP PROCEDURE      (удалить сохраненную процедуру).  

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать "язык управления доступом". Он состоит из двух основных команд:

GRANT       (дать права)

REVOKE       (забрать права)



С точки зрения прикладного интерфейса существуют две разновидности команд SQL:

интерактивный SQL

встроенный SQL

Интерактивный SQL используется в специальных утилитах (типа WISQL или DBD), позволяющих в интерактивном режиме вводить запросы с использованием команд SQL, посылать их для выполнения на сервер и получать результаты в предназначенном для этого окне. 

Встроенный SQL используется в прикладных программах, позволяя им посылать запросы к серверу и обрабатывать полученные результаты, в том числе комбинируя set-ориентированный и record-ориентированный подходы.




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



В самой простой форме команда SELECT просто инструктирует БД, чтобы извлечь информацию из таблицы. Пример команды:

 SELECT список столбцов таблицы

 FROM  имя таблицы

Другими словами, эта команда просто выводит все данные из таблицы. Вот объяснение каждой части этой команды:

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

Дальше идет список столбцов из таблицы, которые выбираются запросом. Любые столбцы, не перечисленные здесь, не будут включены в вывод команды. Это, конечно, не значит, что они будут удалены или их информация будет стёрта из таблиц, ведь запрос не воздействует на информацию в таблицах; он только показывает данные. 

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

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

С тех пор как SQL использует точку с запятой, чтобы указывать конец команды, большинство программ SQL обрабатывают возврат каретки (через нажатие Возврат или клавиши ENTER ) как пробел. 

Если необходимо вывести все столбцы таблицы, не обязательно писать все имена столбцов, звёздочка (*) может применяться для вывода полного списка столбцов следующим образом:       SELECT *  FROM Sales;

INSERT INTO имя таблицы

 [( имя столбца.,..)]  выражение запроса

 | конструктор значений таблицы

 | {DEFAULT VALUES};

Данный оператор вносит одну или более строк в таблицу, имя которой указано в операторе. Вставляемые строки являются результатом исполнения запроса (выражение для которого определено в операторе) или представляют собой конструкторы значений строк из списка конструкторов значений таблицы. Эти строки должны относиться к тому же типу данных, что и столбцы, в которые они вносятся. Если в один из столбцов нельзя записать значение по умолчанию (например, когда установлено ограничение NOT NULL, но не определено никаких других значений), то выполнение оператора INSERT будет прервано. Если же не будет указан список имен столбцов, то во все столбцы таблицы должны быть занесены значения, предусмотренные в операторе INSERT. Количество и порядок имен столбцов в списке должны соответствовать количеству и порядку имен столбцов, полученных в результате запроса. 

В качестве таблицы может выступать представление. В этом случае представление должно быть обновляемым, а новые строки вставляются в базовую таблицу, содержащую данные, на основе которых построено представление (так называемую основную "таблицу-лист'). Для представления может быть определено предложение WITH CHECK OPTION, которое будет ограничивать заносимые значения. В действительности может быть несколько уровней представлений "на пути" к базовой таблице, и если они помечены как WITH CASCADED CHECK OPTION, то оператор INSERT может быть отвергнут при нарушении условий какого-то из них

Если текущий тип транзакции (TRANSACTION MODE) определен как READ ONLY (только чтение), таблица должна быть временной, иначе оператор INSERT будет отвергнут.

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

 Пример:

Данный оператор заносит строку в таблицу people, используя конструктор значений таблицы. 

INSERT INTO people (ID_num. Iname, fname, city)

VALUES (1023, 'Blanco', Mercedes', 'Barcelona')



UPDATE [DatabaseName1!]TableName1 
          SET Column_Name1 = eExpression1 
          [, Column_Name2 = eExpression2 ...] 
          WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] 

Где UPDATE  задает таблицу, в которой необходимо обновить записи. 

Аргумент DatabaseName1! задает имя содержащей таблицу базы данных, отличной от текущей. Это имя необходимо указывать, когда база данных, которой принадлежит таблица, не является текущей. Восклицательный знак (!) служит разделителем между  именем базы и именем таблицы базы данных.

	SET Column_Name1 = eExpression1 	
[, Column_Name2 = eExpression2 

Задает обновляемые столбцы и их новые значения. Если предложение WHERE опущено, каждая строка одного столбца обновляется одним и тем же значением. WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] 

Определяет, какие записи следует обновлять. Условие FilterCondition задает критерий, которому должны удовлетворять обновляемые записи. Можно включить сколько угодно условий фильтрования, объединяя их операторами AND и OR. Можно также использовать оператор NOT, инвертирующий значение логического выражения, и функцию EMPTY(), проверяющую, является ли поле пустым. 

Команда UPDATE в SQL запросах  может обновлять записи только в одной таблице. 

																

																DELETE FROM [DatabaseName!]TableName

																[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]

	FROM [DatabaseName!]TableName задает таблицу, в которой записи помечаются на удаление. Аргумент DatabaseName! задает имя содержащей таблицу базы данных, отличной от текущей. Это имя необходимо задавать, когда база данных, содержащая таблицу, не является текущей. 

	WHERE FilterCondition1 [AND | OR FilterCondition2 ...] Указывает, что команда помечает на удаление только определенные записи. Условие FilterCondition устанавливает критерий, которому должны удовлетворять записи, помечаемые на удаление. Можно задать сколько угодно условий фильтрования, объединяя их с помощью операторов AND и OR. Можно также пользоваться оператором NOT, инвертирующим значение логического выражения, и функцией EMPTY(), проверяющей, является ли поле пустым.

	Записи, помечаемые на удаление, физически не удаляются из таблицы до тех пор, пока не будет выдана команда PACK. Записи, помеченные на удаление, можно возвратить (снять пометку на удаление) командой RECALL. Если установка SET DELETED имеет значение ON, записи, помеченные на удаление, игнорируются всеми командами, использующими опцию диапазона.

	

Запросы в языке SQL



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

Запросы обычно рассматриваются как часть языка DML. Эти запросы не меняют информацию в таблицах, а просто показывает её пользователю. Любой запрос SQL имеет в своём составе одну команду. Структура этой команды обманчиво проста, её можно расширить так, чтобы выполнить сложные оценки и обработку данных. Эта команда называется SELECT (ВЫБРАТЬ).









Заключение

  Быстрое развитие потребностей применений БД выдвигает новые требования к СУБД:

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

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

 - поддержка непротиворечивости данных и реализация дедуктивных БД;
 - обеспечение целостности БД в широком диапазоне разнообразных предметных областей и операционных обстановок;

-  управление распределенными БД, интеграция неоднородных баз данных;

 - существенное повышение надежности функционирования БД.

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

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

 - многоуровневое и сложное программное обеспечение СУБД снижает эффективность и надежность функционирования БД;

	- универсальная ЭВМ оказывается перегруженной функциями управлениями базами данных, что снижает эффективность функционирования собственно прикладных систем;

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

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

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

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



Глоссарий

№ п/п

Понятие

Определение

1)

База данных

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

2)

Система управления базами данных (СУБД)

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

3)

SQL (Structured Query Language— «язык структурированных запросов»)

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

4)

Данные

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

5)

Файл

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

6)

Информация

Любые сведения о каком-либо событии, процессе и т.п., являющиеся объектом некоторых операций: восприятия, передачи, преобразования, хранения или использования

7)

Реляционная база данных

Набор нормализованных отношений

8)

Архитектура фон Неймана

Подразумевает физическое отделение процессорного модуля от устройств хранения программ и данных

9)

Транзакция

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

10)

Informix

семейство систем управления реляционными базами данных (СУБД), выпускаемых компанией IBM. Informix позиционируется как флагман среди СУБД IBM, предназначенный для онлайновой обработки транзакций (OLTP), а также как СУБД для интегрированных решений

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

1)

Базиян, Менахем и др. Использование Visual FoxPro 6. Специальное издание: Пер. с англ – М.: Вильямс, 2001 – 928 с.

2)

Глушаков С.В., Ломотько. Базы данных. – М.: АСТ, 2001.- 504 с.

3)

Каратыгин С.А., Тихонов А.Ф., Тихонова Л.Н. Visual FoxPro «К вершинам мастерства» - М.: ЗАО «Издательство БИНОМ», 1999. 1462 с.

4)

Кириллов В.В. Структурированный язык запросов SQL. – СПб.: ИТМО, 1994. 80 с.

5)

Малыхина М.П. Базы данных: основы, проектирование, использование.- СПб.: БХВ - Петербург, 2006. 512 с.

6)

Селько Дж. Программирование на SQL для профессионалов. –М.: Лори, 2004. 424 с

7)

	Ф.Фаронов. «Программирование баз данных в Delphi». – СПб.: «Питер». 2004. 457 с.

8)

	Федоров А., Елманова Н. Базы данных для всех. – М.: Компьютер-пресс, 2001. 256 с.

9)

	Хомоненко А. Базы данных: Учеб. для вузов. – 2-е изд. – СПб., 2000. 672 с.

10)

Марков, А. С. Базы данных: Введение в теорию и методологию [Текст]/А.С.Марков, К. Ю. Лисовский. – М. : Финансы и статистика, 2006. 512 с.



Приложения

А





24