Сравнительный анализ языка SQL в СУБД ACCESS и SQL Server

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: SQL Server
  • 2323 страницы
  • 32 + 32 источника
  • Добавлена 28.12.2009
800 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Введение
1 Основные поянтия баз данных
Перед тем как перейти к изучению вопроса кратко остановимся на используемом поянтийном аппарате.
2. Типы данных
2.1 Встроенные типы данных MS SQL serve и MS Access
2.2 Пользовательские типы данных
3. Создание таблиц данных в среде MS Access и MS SQL server.
4. Ограничение целостности
4.1 Ограничение целостности в SQL Sever
4.2Ограничение целостности в MS Access
5.Создание клиентов для работы с БД
Рисунок 6. создание клиентов для работы с БД средствами Access
6.Индексы и оптимизация произвордительности
6.1Особенности индексов в SQL Server
6.2Особенности индексов в MS Access
7.Работа с представлениями
Заключение
Список литературы

Фрагмент для ознакомления

Кластеризованный индекс - данные, вставляемые пользователями в таблицы [5].
Некластеризованный индекс - самостоятельный объект базы данных, который хранится отдельно от самих данных, но тесно связан с ними [24].
Таблица дифференциальных изменений– набор страниц, применяемый для  отслеживания всех экстентов, изменившихся со времени создания последней резервной копии базы данных [4].


Особенности индексов в SQL Server


В SQL Server предусмотрено два типа индексов: кластерные и некластерные.
Кластерный индекс в таблице может быть только один [1]. Проще всего сравнить таблицу, на которую наложен такой индекс, с телефонным справочником: все записи в данной таблице упорядочены по кластерному индексу (рис.7). Относиться к выбору поля для кластерного индекса следует очень осторожно - например, если в эту таблицу часто производится вставка данных, а кластерный индекс наложен не на поле с автоприращением, то вполне может получиться так, что нам часто придется вставлять новые записи в середину таблицы. Результат - большое количество операций page split, фрагментация таблицы и, как следствие, серьезное падение производительности (за счет фрагментации и за счет того, что само по себе page split - достаточно ресурсоемкая операция. По умолчанию кластерный индекс создается для поля первичного ключа, и, учитывая это, лучше делать первичный ключ числовым полем с автоприращением.
Некластерный индекс больше всего похож на указатель в конце книги [2]. Для таблицы можно создавать таких индексов очень много (можно даже по нескольку для каждого столбца, но большой пользы это не приносит) (рис.6).
Получить информацию об индексах, которые созданы для данной таблицы, можно при помощи команды SP_HELP имя_таблицы. (Лучше выполнять ее в режиме Results in Grid) или SP_HELPINDEX. Другой вариант - Enterprise Manager, контекстное меню для таблицы, All Tasks -> Manage Indexes.
Создание и удаление индексов - командами CREATE INDEX/DROP INDEX или из того же окна Enterprise Manager (альтернативный вариант - мастер CREATE INDEX)

.
Рисунок 7. –Кластерные индексы


Рисунок 8. – Использование некластерных индексов

В реальных рабочих системах часто возникает необходимость настроить систему индексов для достижения максимальной производительности исходя из реальных задач, которые выполняют пользователи[3,26]. Для этой цели очень удобно использовать Index Tuning Wizard. Работа с ним выглядит так:
1) собираем протокол действий пользователя в базе данных. Обычно в качестве такого протокола выступает файл или таблица профилировки, но можно воспользоваться и просто запросом, выделив его в окне Query Analyzer и запустив Index tuning Wizard для него;
2) запускаем Index Tuning Wizard и передаем ему информацию о запросах, которые выполнялись пользователями. На основании этой информации Index Tuning Wizard выдает рекомендации о наилучшей системе индексов и рассчитывает увеличение производительности для проанализированных запросов.
3) полученные рекомендации можно:
·воплотить в жизнь немедленно;
· запланировать для реализации в другое время (когда пользователи не работают с базой данных);
· записать команды на создание/удаление/изменение индексов в скрипт для дальнейшего анализа и реализации вручную.
Для того, чтобы оценить степень фрагментации индекса, используется команда
DBCC SHOWCONTIG (имя_таблицы, имя_индекса), например:
dbcc showcontig (customers, PK_Customers)
Главная информация - в строках Logical Scan Fragmentation и Extent Scan Fragmentation. Если значения в них приближаются к 50 %, а индекс используется достаточно активно, то, возможно, после дефрагментации произойдет увеличение производительности.
Дефрагментировать индексы можно двумя способами
·        DBCC REINDEX - эта команда полностью перестраивает отдельный индекс или все индексы для таблицы, фактически пересоздавая их. Пользователи во время работы этой команды обращаться к таблице не могут;
·        DBCC INDEXDEFRAG - более мягкий вариант, пользователи могут продолжать работать с таблицей, однако полностью индексы не дефрагментируются (только конечный уровень).
Переиндексация для больших таблиц может занимать много времени. На многих предприятиях она проводится на регулярной основе (раз в несколько месяцев), поскольку позволяет также избавляться от появившихся в индексах ошибок.


Особенности индексов в MS Access


В Microsoft Access возможностей работы с индексами намного меньше. Автоматически создаются индексы для полей, на которые назначены ограничение первичного или вторичного ключа. Для остальных столбцов индексы можно создать явно в режиме конструктора для таблицы: свойства поля, строка "Индексированное поле". Для этого поля предусмотрено три варианта: Нет (по умолчанию), Да (допускаются совпадения) и Нет (Совпадения не допускаются).
Аналог Index Tuning Wizard в Access - это Анализатор быстродействия (меню Сервис -> Анализ -> Быстродействие). Дефрагментация индексов производится вместе с дефрагментацией всей базы данных при ее сжатии (меню Сервис -> Служебные программы -> Сжать и восстановить базу данных).


Работа с представлениями


Представление - это запрос, который сохранен как отдельный объект в базе данных. К нему можно обращаться, как к обычной таблице на чтение, а в некоторых ситуациях - и для изменения данных. Применение представлений дает большие преимущества:
– от пользователя (и клиентских приложений) скрывается система таблиц в базе данных. В результате если структура БД меняется (в таблицы добавлены новые поля, таблицы разбиты на текущие и архивные и т.п.) достаточно исправить только определение представления - нет необходимости править каждое клиентское приложение по отдельности;
·– упрощается синтаксис запросов (особенно с большим количеством джойнов);
– упрощается система предоставления разрешений;
– вычисляемые поля можно помещать в представление и их индексировать - вычисление будет происходить в момент помещения данных в подчиненную таблицу, а не во время запроса;
– представления могут обращаться одновременно к нескольким таблицам, размещенным на разных серверах - секционирование больших баз данных.
Создание представления в SQL Server - командой CREATE VIEW (рис.9) или из графического интерфейса Enterprise Manager (контейнер Views в базе данных или мастер Create View Wizard).

Рисунок 9 – Созданиес представлениями в MS SQL Server

В Microsoft Access представление называется запросом (рис.10) и создается из соответствующего контейнера. Возможностей, конечно, намного меньше, чем при работе в SQL Server, зато в MS Access вы при помощи мастера можете создавать не только обычные запросы, но также и перекрестный запрос (есть еще два специальных шаблона - на поиск повторяющихся записей и на поиск записей, которым ничего не соответствует в подчиненных таблицах, например, заказчиков, которые ничего не покупали).



Рисунок 10 – Создание запроса в MS Access

Хранимые процедуры - это сохраненные как объекты баз данных блоки кода на языке SQL. В важных базах хранимые процедуры используются очень активно. Часто на них реализуют всю бизнес-логику приложений и практически любое внесение изменений в базы данных должно производиться только при помощи хранимых процедур. Что дают нам хранимые процедуры:
·        модульность разработки приложений;
·        так же, как и представления, позволяют защитить клиентские приложения от изменений в структуре таблиц в базах данных;
·        позволяют реализовывать дополнительную логику проверок, протоколирования действий пользователей и т.п.;
·        позволяют производить каскадные обновления;
·        в отличие от представлений, хранимые процедуры могут принимать и возвращать параметры;
·        обеспечивают очень мощные механизмы обеспечения безопасности;
·        позволяют повысить производительность - за счет использования откомпилированных планов хранимых процедур из кэша и за счет сокращения сетевого трафика при отправке больших наборов команд;
·        при помощи хранимых процедур можно реализовывать изощренные схемы обработки ошибок на сервере.
Создание хранимых процедур производится на SQL Server командой CREATE PROC или - на графическом интерфейсе - в Enterprise Manager из контейнера Stored Procedures или при помощи мастера Create Stored Procedure Wizard.
В MS Access как таковых хранимых процедур нет, но их роль могут выполнять:
·        макросы (типа "Запуск запроса SQL")
·        модули VBA.





Заключение



В курсовой работе согласно заданию были сравнены реализации SQL языков MS SQL Server2000 и MS Access. Как показано в тексте реферата реализации SQL языков имеют ряд особенностей, которые касаются реализации типов данных, формированию представлений, созданию таблиц данных, описании и создании клиент серверных приложений. Проиведенное исследование позволило акцентировать особенности языков, создать рекомендации, которые могут быть основой для разработки программного обеспечения, способного трансформировать разрабатываемые и существующие базы данных в рассматриваемыйх форматах.
Рассуждение в реферате велись согласно разработанного плана, который в свою очередь, был создан на основе ментальной карты, разработанной программе MindManager 6.0 Pro. Ментальная карта содержала темы, подтемы, связи между ними, коментарии и иллюстрации. Применение метода составления ментальной карыт позволило логично и структурированно представить знания о заданной предметной области.

Список литературы

Comparison of different SQL implementations. / Хабрахабр –«К» –(http://troels.arvin.dk/db/rdbms/)
Eisenberg Andrew, Melton Jim, Kulkarni Krishna, Jan-Eike Michels, Fred Zemke. SQL:2003 Has Been Published. ACM SIGMOD Record 33, No. 1 (March 2004).
Астахова И. Ф. SQL в примерах и задачах/ И. Ф. Астахова, А. П. Толстобров, В.М. Мельников.– М.: Новое знание, 2002.– 176 с.
Виейра Р. Программирование баз данных Microsoft SQL Server 2005 для профессионалов.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2008. – 1072 с.: ил.
Гандерлой М., Джорден Д., Чанц Д.. Освоение Microsoft SQL Server 2005.: Пер. С англ. – М.: ООО «И.Д. Вильямс», 2007. 1104 с.: ил.
Грабер М. SQL. Описание SQL92, SQL99 и SQLJ.–М.: Лори, 2001.– 644 с.
Грабер М. SQL. Справочное руководство.– М.: Лори, 2001.–354 с.
Грабер М. Понимание SQL.– М.: Лори, 1993.–420 с.
Грабер М. Справочное руководство по SQL.– М.: Лори, 1997.– 291 с.
Грофф Дж., Вайнберг Пол Н. SQL: Полное руководство.–Киев: Издательская группа BHV, McGraw–Hill Companies, 2001.–816 с.
Грофф Дж., Вайнберг Пол Н. SQL: Полное руководство.– Киев: Издательская группа BHV, 1998.– 608 с.
Грофф Дж. Энциклопедия SQL.– 3-е изд.– СПб: Питер, 2003.–896 с.
Дворжецкий А. SQL: Structured Query Language. Руководство пользователя.–М.: Познавательная Книга Плюс, 2001.–416 с.
Дейт, К. Введение в системы баз данных, 7-е издание.: Пер. с англ. — М. : Издательский дом "Вильяме", 2001. — 1072 с. : ил. — Парал. тит. англ..
Кириллов В.В,. Громов Г.Ю. Структуризированный язык запросов / Кузнецов С.Д. // Санкт-Петербургский Государственный институт точной механики и оптики (технический университет) Кафедра вычислительной техники – “К”. – (http://www.citforum.ru/database/sql_kg/index.shtml)
Кириллов В.В. Структурированный язык запросов (SQL).– СПб.: ИТМО, 1994.– 80 с.
Коннолли, Томас, Бегг, Каролин. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. – М.: Издательский дом «Вильяме», 2003. – 1440 с.: с ил. – Парал. Тит. Англ.
Костюк А..И.. Базы данных и знаний. Таганрог: Изд-во ТРТУ, 1999. – 177 с.
Кузнецов С. SQL. Язык реляционных баз данных.– М.: Майор, 2001.– 192 с.
Кузнецов С.Д. / Введение в стандарты языка баз данных SQL/ Кузнецов С.Д. // Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/sqlbook/index.shtml)
Кузнецов С.Д. / Язык реляционных баз данных SQL и его стандарты / Кузнецов С.// Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/articles/art_18.shtml)
Кузнецов С.Д.. Три манифеста баз данных: ретроспектива и перспективы. http://www.citforum.ru/database/articles/manifests/
Кузнецов С.Д./ Наиболее интересные новшества в стандарте SQL:2003/ Кузнецов С.Д.// Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/sql/sql2003/)
Мамаев Е.В. Microsoft SQL Server 2000. Спб.: БХВ-Петербург, 2001. – 1280 с.
Нильсен П. MS SQL Server 2005. Библия пользователя.: Пер. с англ. М.: ООО «И.Д.Вильямс», 2008. – 1232 с.
Работа с базами данных для пользователей./ Академия специальных курсов по компьютерным технологиям – «К» – (http://www.askit.ru/custom/db_basics/db_basics_plan.htm)
Райордан Р. Основы реляционных баз данных/Пер, с англ. — М.: Издательско-торговый дом «Русская Редакция», 2001. — 384 с.:
Сичкаренко В. А. SQL–99. Руководство разработчика баз данных.– М.: ДиаСофтЮП, 2002.–816 с.
Сравнение языков запросов microsoft access SQL и ansi SQL/ microsoft office acces// – «К». – (http://office.microsoft.com/ru-ru/access/HA012314361049.aspx).
Федоров А., Елманова Н. / Введение в язык SQL / Федоров А.// Введение в базы данных – “К”. – (http://www.lib.csu.ru/dl/bases/prg/kompress/articles/2000_10_DBMS6/)
Хичкок Б. Настольная книга администратора. – М.: ЛОРИ, 2000.
Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных.: Учебник для ВУЗов/ Под ред. проф. А.Д. Хомоненко. – 4-е изд., доп и перераб. – СПб.: КОРОНАпринт, 2004. – 736 с.












4

Список литературы

1.Comparison of different SQL implementations. / Хабрахабр –«К» –(http://troels.arvin.dk/db/rdbms/)
2.Eisenberg Andrew, Melton Jim, Kulkarni Krishna, Jan-Eike Michels, Fred Zemke. SQL:2003 Has Been Published. ACM SIGMOD Record 33, No. 1 (March 2004).
3.Астахова И. Ф. SQL в примерах и задачах/ И. Ф. Астахова, А. П. Толстобров, В.М. Мельников.– М.: Новое знание, 2002.– 176 с.
4.Виейра Р. Программирование баз данных Microsoft SQL Server 2005 для профессионалов.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2008. – 1072 с.: ил.
5.Гандерлой М., Джорден Д., Чанц Д.. Освоение Microsoft SQL Server 2005.: Пер. С англ. – М.: ООО «И.Д. Вильямс», 2007. 1104 с.: ил.
6.Грабер М. SQL. Описание SQL92, SQL99 и SQLJ.–М.: Лори, 2001.– 644 с.
7.Грабер М. SQL. Справочное руководство.– М.: Лори, 2001.–354 с.
8.Грабер М. Понимание SQL.– М.: Лори, 1993.–420 с.
9.Грабер М. Справочное руководство по SQL.– М.: Лори, 1997.– 291 с.
10.Грофф Дж., Вайнберг Пол Н. SQL: Полное руководство.–Киев: Издательская группа BHV, McGraw–Hill Companies, 2001.–816 с.
11.Грофф Дж., Вайнберг Пол Н. SQL: Полное руководство.– Киев: Издательская группа BHV, 1998.– 608 с.
12.Грофф Дж. Энциклопедия SQL.– 3-е изд.– СПб: Питер, 2003.–896 с.
13.Дворжецкий А. SQL: Structured Query Language. Руководство пользователя.–М.: Познавательная Книга Плюс, 2001.–416 с.
14.Дейт, К. Введение в системы баз данных, 7-е издание.: Пер. с англ. — М. : Издательский дом "Вильяме", 2001. — 1072 с. : ил. — Парал. тит. англ..
15.Кириллов В.В,. Громов Г.Ю. Структуризированный язык запросов / Кузнецов С.Д. // Санкт-Петербургский Государственный институт точной механики и оптики (технический университет) Кафедра вычислительной техники – “К”. – (http://www.citforum.ru/database/sql_kg/index.shtml)
16.Кириллов В.В. Структурированный язык запросов (SQL).– СПб.: ИТМО, 1994.– 80 с.
17.Коннолли, Томас, Бегг, Каролин. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. – М.: Издательский дом «Вильяме», 2003. – 1440 с.: с ил. – Парал. Тит. Англ.
18.Костюк А..И.. Базы данных и знаний. Таганрог: Изд-во ТРТУ, 1999. – 177 с.
19.Кузнецов С. SQL. Язык реляционных баз данных.– М.: Майор, 2001.– 192 с.
20.Кузнецов С.Д. / Введение в стандарты языка баз данных SQL/ Кузнецов С.Д. // Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/sqlbook/index.shtml)
21.Кузнецов С.Д. / Язык реляционных баз данных SQL и его стандарты / Кузнецов С.// Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/articles/art_18.shtml)
22.Кузнецов С.Д.. Три манифеста баз данных: ретроспектива и перспективы. http://www.citforum.ru/database/articles/manifests/
23.Кузнецов С.Д./ Наиболее интересные новшества в стандарте SQL:2003/ Кузнецов С.Д.// Центр Информационных Технологий – “К”. – (http://www.citforum.ru/database/sql/sql2003/)
24.Мамаев Е.В. Microsoft SQL Server 2000. Спб.: БХВ-Петербург, 2001. – 1280 с.
25.Нильсен П. MS SQL Server 2005. Библия пользователя.: Пер. с англ. М.: ООО «И.Д.Вильямс», 2008. – 1232 с.
26.Работа с базами данных для пользователей./ Академия специальных курсов по компьютерным технологиям – «К» – (http://www.askit.ru/custom/db_basics/db_basics_plan.htm)
27.Райордан Р. Основы реляционных баз данных/Пер, с англ. — М.: Издательско-торговый дом «Русская Редакция», 2001. — 384 с.:
28.Сичкаренко В. А. SQL–99. Руководство разработчика баз данных.– М.: ДиаСофтЮП, 2002.–816 с.
29.Сравнение языков запросов microsoft access SQL и ansi SQL/ microsoft office acces// – «К». – (http://office.microsoft.com/ru-ru/access/HA012314361049.aspx).
30.Федоров А., Елманова Н. / Введение в язык SQL / Федоров А.// Введение в базы данных – “К”. – (http://www.lib.csu.ru/dl/bases/prg/kompress/articles/2000_10_DBMS6/)
31.Хичкок Б. Настольная книга администратора. – М.: ЛОРИ, 2000.
32.Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных.: Учебник для ВУЗов/ Под ред. проф. А.Д. Хомоненко. – 4-е изд., доп и перераб. – СПб.: КОРОНАпринт, 2004. – 736 с.

Вопрос-ответ:

Какие типы данных есть в языке SQL?

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

Какие типы данных являются встроенными в MS SQL Server и MS Access?

В MS SQL Server и MS Access есть множество встроенных типов данных. Некоторые из них включают в себя integer, varchar, datetime и другие.

Что такое ограничение целостности в языке SQL?

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

Какие ограничения целостности присутствуют в SQL Server?

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

Какие клиенты можно использовать для работы с базами данных?

Для работы с базами данных можно использовать различные клиентские программы, такие как Microsoft Access, SQL Server Management Studio, MySQL Workbench и другие. Они предоставляют удобный интерфейс для выполнения запросов к базе данных и управления ее структурой.

Какие типы данных можно использовать в СУБД ACCESS и SQL Server?

В СУБД ACCESS и SQL Server можно использовать различные типы данных, такие как целые числа, десятичные числа, строки, даты, булевы значения и т.д. Каждая СУБД имеет свой набор встроенных типов данных.

Какие ограничения целостности можно использовать в SQL Server?

В SQL Server можно использовать различные ограничения целостности, такие как ограничение NOT NULL для задания обязательности заполнения поля, ограничение UNIQUE для уникальности значений в поле, ограничение PRIMARY KEY для задания первичного ключа, ограничение FOREIGN KEY для задания внешнего ключа и т.д.

Какие ограничения целостности можно использовать в MS Access?

В MS Access можно использовать такие ограничения целостности, как ограничение NOT NULL для задания обязательности заполнения поля, ограничение INDEX для создания индекса, ограничение PRIMARY KEY для задания первичного ключа и т.д. Однако, возможности по ограничениям целостности в MS Access ограничены по сравнению с SQL Server.

Какие клиенты можно использовать для работы с базами данных в SQL Server и MS Access?

Для работы с базами данных в SQL Server можно использовать такие клиенты, как Microsoft SQL Server Management Studio, Microsoft Visual Studio и другие инструменты для разработки и администрирования баз данных. В случае с MS Access можно использовать нативное приложение Microsoft Access для создания и управления базами данных.