Структура языка SQL

Автор работы: Пользователь скрыл имя, 16 Февраля 2011 в 19:47, курсовая работа

Описание работы

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

Содержание работы

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

1 Понятие базы данных и СУБД…………………………………………………6

1.1 Предметная область…………………………………………………………..6

1.2 Концепция баз данных………………………………………………………..7

1.2.1 Независимость пpиложений от оpганизации данных во внешней памяти……………………...7

1.2.2 Эффективность организации данных……………………………………...9

1.2.3 Интеграция данных……………………………………..............................12

1.2.4 Что такое база данных……………………………………………………..13

2 Типы данных SQL…………………………………………………………….15

2.1 Таблицы SQL………………………………………………………………...16

2.2 Структура языка SQL………………………………………………………..17

2.3 Операторы SQL………………………………………………………………17

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

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

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

Файлы: 1 файл

Приложение.doc

— 164.00 Кб (Скачать файл)

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

     1.2.2 Эффективность организации данных 

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

     Допустим, мы решили создавать эту информационную систему используя некоторую  файловую систему, в которой пользователи представляют файл как последовательность записей. Каждая запись – это последовательность байтов постоянного или переменного размера. Записи можно читать или записывать последовательно, позиционировать файл на запись с указанным номером, структурировать на поля и объявлять некоторые поля ключами записи. Кроме того, имеется возможность выборки записи из файла по ее заданному ключу. Естественно, что в этом случае файловая система поддерживает в том же (или другом, служебном) базовом файле дополнительные, невидимые пользователю, служебные структуры данных. Распространенные способы организации ключевых файлов основываются на технике хеширования и B-деревьев.

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

     ФИО_СТУДЕНТА,

     АДРЕС,

     ДАТА_РОЖДЕНИЯ,

     НАИМНОВАНИЕ_ФАКУЛЬТЕА,

     ФИО_ДЕКАНА,

     НОМЕР_ГРУППЫ,

     ФИО_КУРАТОРА.

     Функции нашей информационной системы требуют, чтобы обеспечивалась возможность  многоключевого доступа к записям  этого файла по значениям уникального  ключа ФИО_СТУДЕНТА. Кроме того, должна обеспечиваться возможность выбора всех записей с общим значением НАИМЕНОВАНИЕ_ФАКУЛЬТЕТА и НОМЕР_ГРУППЫ т. е. доступ по неуникальному ключу.

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

     Анализ  предметной области показывает, что  можно выделить еще два класса объектов ФАКУЛЬТЕТЫ и ГРУППЫ с присущими только им свойствами (для факультетов – деканы, а для групп – кураторы). Естественно предположить, что информация о каждом объекте должна находиться в отдельном файле. Поэтому наша систем будет состоять из трех файлов СТУДЕНТЫ, ФАКУЛЬТЕТЫ, ГРУППЫ, со следующей организацией записей:

     СТУДЕНТЫ :

     СТУД_ФИО_СТУДЕНТА,

     СТУД_АДРЕС,

     СТУД_ДАТА_РОЖДЕНИЯ,

     СТУД_НОМЕР_ГРУППЫ.

     ГРУППЫ :

     ГРУП_НОМЕР_ГРУППЫ,

     ГРУП_ФИО_КУРАТОРА,

     ГРУП_ИДЕНТИФИКАТОР_ФАКУЛЬТЕА,

     ГРУП_КОЛИЧЕСТВО_СТУДЕНТОВ.

     ФАКУЛЬТЕТЫ :

     ФАК_ИДЕНТИФИКАТОР_ФАКУЛЬТЕА,

     ФАК_НАИМНОВАНИЕ_ФАКУЛЬТЕА,

     ФАК_ФИО_ДЕКАНА,

     ФАК_КОЛИЧЕСТВО_СТУДЕНТОВ;

     Поле  СТУД_НОМЕР_ГРУППЫ добавлено в файл СТУДЕНТЫ, а ГРУП_ИДЕНТИФИКАТОР_ФАКУЛЬТЕТА в файл ГРУППЫ для установки связей между файлами. Так например, по значению поля ГРУП_ИДЕНТИФИКАТОР_ФАКУЛЬТЕТА в файле ГРУППЫ можно определить к какому факультету относится та или иная группа. Иначе говоря, один файл ссылается на другой, поля же, использующееся для ссылок называются ключами.

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

     Однако  теперь система должна теперь "знать", что она работает с тремя информационно связанными файлами, должна знать структуру и смысл каждого поля (например, что ГРУП_ ДЕНТИФИКАТОР_ ФАКУЛЬТЕТА и ФАК_ ИДЕНТИФИКАТОР_ФАКУЛЬТЕТА означают одно и то же), а также понимать, что в ряде случаев изменение информации в одном файле должно автоматически вызывать модификацию в других, чтобы их общее содержимое было согласованным.

     Например, если на факультет принимается новый  студент, то необходимо добавить запись в файл СТУДЕНТ, а также соответствующим  образом изменить поля ФАК_КОЛИЧЕСТВО_СТУДЕНТОВ и ГРУП_КОЛИЧЕСТВО_СТУДЕНТОВ в файлах ФАКУЛЬТЕТЫ и ГРУППЫ. Иначе говоря данные во всех файлах должны быть согласованными.

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

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

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

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

     1.2.3 Интеграция данных 

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

     Рассмотрим  следующий пример для двух приложений "Учет кадров" и "Расчет заработной платы" для которых необходимы следующие сведения: 

     Учет  кадров Расчет заработной платы

     Табельный номер Табельный номер

     Ф. И. О. Сотрудника Ф. И. О. Сотрудника

     Отдел Отдел

     Должность Должностной оклад

     Стаж  работы Стаж работы

     Год рождения  

     По  правилам предметной области первоначально информация о переводе сотрудника на новую должность или в другой отдел, а так же об увольнении поступает в отдел кадров. Если же по каким-либо причинам об этом не будет своевременно известно в бухгалтерии, то в лучшем случае фамилия этого сотрудника окажется не в той ведомости или же возникнет совсем курьезное положение, когда уволенному сотруднику будет начислена заработная плата.

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

     1.2.4 Что такое база данных 

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

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

     поддержание логически согласованного набора файлов;

     обеспечение языка манипулирования данными;

     восстановление  информации после разного рода сбоев;

     параллельная  работа в режиме реального времени  нескольких пользователей.

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

      

     2 Типы данных SQL  

     В SQL используются следующие основные типы данных, форматы которых могут  несколько различаться для разных СУБД:

     INTEGER

     - целое число (обычно до 10 значащих  цифр и знак);

     SMALLINT

     - "короткое целое" (обычно до 5 значащих цифр и знак);

     DECIMAL(p,q)

     - десятичное число, имеющее p цифр (0 < p < 16) и знак; с помощью q задается  число цифр справа от десятичной точки (q < p, если q = 0, оно может быть опущено);

     FLOAT

     - вещественное число с 15 значащими  цифрами и целочисленным порядком, определяемым типом СУБД;

     CHAR(n)

     - символьная строка фиксированной  длины из n символов (0 < n < 256);

     VARCHAR(n)

     - символьная строка переменной длины, не превышающей n символов (n > 0 и разное в разных СУБД, но не меньше 4096);

     DATE

     - дата в формате, определяемом  специальной командой (по умолчанию  mm/dd/yy); поля даты могут содержать  только реальные даты, начинающиеся  за несколько тысячелетий до н.э. и ограниченные пятым-десятым тысячелетием н.э.;

     TIME

     - время в формате, определяемом  специальной командой, (по умолчанию  hh.mm.ss);

     DATETIME

     - комбинация даты и времени; 

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