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

Различия между существующими диалектами SQL. Стандартизация языка SQL. Концепция баз данных. Эффективность организации данных. Структура языка SQL. Приближенные числовые типы. Интервальный тип данных. Обработка сложно структурированной информации.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.05.2014
Размер файла 50,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

Название дисциплины: Базы Данных

Тема: Структура языка SQL

Введение

На заре эпохи вычислительной техники при создании и использовании информационных систем проблема структуризации данных в каждом случае индивидуально. Придумывались различные надстройки дополнения и расширения для файловых систем. Но поскольку с ростом объемов обрабатываемой и хранимой информации в значительной степени увеличивалась, и сложность подобных решений они стали составлять значительную часть самих систем. И основы этих решений практически полностью повторялись от системы к системе. Поэтому стремление облегчить себе труд побудило искать общие принципы в частях ответственных за хранение и обработку сложно структурированной информации. Результатом этого стремления стали первые прототипы СУБД. В дальнейшем для ускорения и упрощения обращений к данным хранимым в базах данным были созданы специальные языки, наподобие языков программирования. Ярким примером такого языка служит SQL (Structured Query Language). Он получил широкое распространение во всем мире, многие компании специализирующиеся на создании СУБД используют его в своих продуктах. В его разработку, улучшение и расширение делают огромные денежные вливания, например корпорация IBM использовала его в своей системе System Application Architecture (SAA). США например в качестве федерального стандарта обработки информации (Federal Information Processing Standard - FIPS) избрали этот язык, поэтому чтобы получить разрешение на продажу СУБД на их территории, она должна удовлетворять требованиям федерального стандарта.

Стандартизация языка SQL началась практически сразу после появления первых коммерческих решений на его основе. В 1982 году комитету по базам данных Американского национального института стандартов (American National Standards Institute - ANSI) было поручено разработать спецификацию стандартного языка реляционных баз данных. Первый готовый документ был датирован 1985 годом. После ряда рассмотрений и согласований стандарт был принят ANSI в 1986 году и уже через год в 1987 был одобрен Международной организацией по стандартизации (International Standards Organization - ISO). Этот стандарт принято называть SQL/86. Также помимо официального стандарта SQL утвержденного Американским институтом национальных стандартов ANSI и Международной организацией по стандартам ISO. Существует множество других важных стандартов SQL например: SQL реализованный в системе DB2 компании IBM, X/OPEN для SQL в среде Unix. Стандарт X/OPEN незначительно пересмотренный в 1989 году, обычно называют SQL/89 или SQLI.

Различия между существующими диалектами SQL достаточно существенны и при переводе приложения под другую СУБД его очень часто приходится в значительной степени модифицировать. Эти проблемы в большинстве своем были устранены в стандарте SQL2. Язык SQL также оказывает значительно влияние на разработку других стандартов, например: Information Resource Dictionary - ISO и Remote Data Access - RDA. Также определенное влияние оказали научные круги, заинтересовавшие открывающими перспективами языка SQL выразившееся как в создании теоретических основ так и готовых практических решений. В результате всего этого начали появляться специализированные реализации языка SQL, например, такие как OnLine Aanalytical Processing (OLAP). Далее мы более подробно остановимся на структуре языка SQL.

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

1. Предметная область

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

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

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

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

Частенько класс объектов называют сущностью. Соответственно можно сказать что сущность обладает атрибутами. Атрибут - это свойство объекта характеризующее его экземпляр. Сущность «Рабочий» может иметь следующие атрибуты «Имя», «Пол», «Возраст» и т.п. Из этого следует что сущность можно охарактеризовать как множество индивидуальных объектов одного типа (экземпляров). При этом значения всех этих объектов различны а набор их атрибутов одинаков.

1.1 Концепция баз данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

АДРЕС,

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

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

ФИО_ДЕКАНА,

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

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

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

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

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

СТУДЕНТЫ :

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

СТУД_АДРЕС,

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

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

ГРУППЫ :

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

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

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

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

ФАКУЛЬТЕТЫ :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отдел № Отдела

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

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

Год рождения Год рождения

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

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

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

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

В широком аспекте понятие истории баз данных обобщается до истории любых средств, с помощью которых человечество хранило и обрабатывало данные. В таком контексте упоминаются, например, средства учёта царской казны и налогов в древнем Шумере (4000 г. до н. э.). Узелковая письменность инков -- кипу. Клинописи, содержащие документы Ассирийского царства и т. п. Следует помнить, что недостатком этого подхода является размывание понятия «база данных» и фактическое его слияние с понятиями «архив» и даже «письменность».

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

Оперативные сетевые базы данных появились в середине 1960-х. Операции над оперативными базами данных обрабатывались в интерактивном режиме с помощью терминалов. Простые индексно-последовательные организации записей быстро развились к более мощной модели записей, ориентированной на наборы. За руководство работой DBTG (Data Base Task Group), разработавшей стандартный язык определения данных и манипулирования данными, Чарльз Бахман получил Тьюринговскую премию.

В это же время в сообществе баз данных COBOL была проработана концепция схем баз данных и концепция независимости данных.

Следующий важный этап связан с появлением в начале 1970-х реляционной модели данных, благодаря работам Эдгара Ф. Кодда. Работы Кодда открыли путь к тесной связи прикладной технологии баз данных с математикой и логикой. За свой вклад в теорию и практику Эдгар Ф. Кодд также получил премию Тьюринга.

Сам термин database (база данных) появился в начале 1960-х гг., и был введён в употребление на симпозиумах, организованных фирмой SDC (System Development Corporation) в 1964 и 1965 гг.

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

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

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

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

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

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

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

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

Соответствие языка SQL последним стандартам SQL:2003, SQL:1999 (и даже SQL/92), дарует ему богатейшие возможности, ввиду этого он труден для понимания и осознания целиком. Ввиду этого язык разбивают на уровни, или слои, такие, что каждый уровень языка включает все конструкции, входящие в более низкие уровни, это обеспечивает лучшее понимание. В стандарте определяется несколько способов разбиения языка на уровни. В одной из классификаций, язык разбивается на несколько уровней: базовый (entry), промежуточный (intermediate), и полный (full). Эта классификация ориентирована, прежде всего, на производителей СУБД, в которых поддерживается SQL. Реализация базового уровня языка является обязательным условием хотя бы какого-то соответствия стандарту. Реализация промежуточного уровня желательна, и обычно именно такой уровень языка поддерживается ведущими компаниями-производителями SQL-ориентированных СУБД. Наконец, полный уровень языка является целью, к достижению которой следует стремиться. В данной классификации критерием отнесения той или иной возможности языка к некоторому уровню является оцениваемая создателями стандарта SQL (большая часть которых является сотрудниками ведущих компаний, производящих SQL-ориентированные СУБД) техническая сложность реализации этой возможности. Конечно, такая классификация важна и для программистов приложений баз данных, но только для того, чтобы оценить реальные возможности конкретной СУБД. Для понимания языка SQL это разбиение на уровни несущественно.

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

2.1 Идентификаторы языка SQL

Идентификаторы языка SQL предназначены для обозначения объектов в базе данных и являются именами таблиц, представлений и столбцов. Символы, которые могут использоваться в создаваемых пользователем идентификаторах языка SQL, должны быть определены как набор символов. Стандарт ISO задает набор символов, который должен использоваться по умолчанию; он включает строчные и прописные буквы латинского алфавита (A-Z, a-z), цифры (0-9) и символ подчеркивания (_). Допускается использование и альтернативного набора символов.

На формат идентификаторов накладываются следующие ограничения:

* может иметь длину до 128 символов (большинство диалектов предусматривает более жесткие ограничения);

* должен начинаться с буквы;

* не может содержать пробелов

2.2 Типы данных

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

* точные числовые типы (exact numerics);

* приближенные числовые типы (approximate numerics);

* типы символьных строк (character strings);

* типы битовых строк (bit strings);

* типы даты и времени (datetimes);

* типы временных интервалов (intervals);

* булевский тип (Booleans);

* типы коллекций (collection types);

* анонимные строчные типы (anonymous row types);

* типы, определяемые пользователем (user-defined types);

* ссылочные типы (reference types).

В столбцах таблиц, определенных на любых типах данных, наряду со значениями этих типов, допускается сохранение неопределенного значения, которое обозначается ключевым словом NULL. В языке определено, что результатом выражений вида x a_op NULL, NULL a_op x, NULL a_op NULL является NULL для всех арифметических операций a_op (+, - и т. д.), допустимых для типа данных выражения x (выражение NULL a_op NULL является допустимым для любой арифметической операции a_op). Также по определению полагается, что значением выражений x comp_op NULL, NULL comp_op x, NULL comp_op NULL для всех операций сравнения (=, , >, < и т. д.), определенных для типа выражения x, является третье логическое значение unknown (выражение NULL comp_op NULL является допустимым для любой операции сравнения comp_op).

Точные числовые типы

К категории точных числовых типов в SQL относятся те типы, значения которых точно представляют числа. Типы данных этой категории распадаются на две части: истинно целые типы (INTEGER и SMALLINT) и типы, допускающие наличие дробной части (NUMERIC и DECIMAL). Охарактеризуем эти типы данных более подробно.

Истинно целые типы

* Тип INTEGER служит для представления целых чисел. Точность чисел (число сохраняемых бит) определяется в реализации. При определении столбца данного типа достаточно указать просто INTEGER.

* Тип SMALLINT также служит для представления целых чисел. Точность определяется в реализации, но она не должна быть больше точности типа INTEGER. При определении столбца указывается просто SMALLINT.

* Литералы типов целых чисел представляются в виде строк символов, изображающих десятичные числа; в начале строки могут присутствовать символы «+» или «-» (если символ знака отсутствует, подразумевается «+»). Примеры литералов типов INTEGER и SMALLINT: 1826545, 876.

Точные типы, допускающие наличие дробной части

* Тип NUMERIC. На самом деле, это не просто тип данных, а параметризуемый тип. При определении столбца можно указать спецификацию NUMERIC (p, s), где p и s - литералы истинно целого типа, и p задает точность значений (число сохраняемых бит), а s - шкалу (число десятичных цифр в дробной части). Задаваемая шкала не должна быть отрицательной и не должна превышать значение точности. При определении столбца можно использовать сокращенные формы спецификации типа - NUMERIC и NUMERIC (p). Первая форма предполагает использование точности, определяемое по умолчанию в реализации, и шкалы, равной нулю, а вторая - использование заданной точности и шкалы, равной нулю. Допустимые диапазоны значений p и s определяются в реализации.

* Тип DECIMAL. Этот тип аналогичен типу NUMERIC. Отличие состоит в том, что если при определении столбца типа DECIMAL задается точность p, то на самом деле используется точность m, определяемая в реализации, такая, что m > p. Шкала всегда устанавливается такой, как явно или неявно (по умолчанию) задается. При указании типа столбца можно использовать спецификации DECIMAL, DECIMAL (p) и DECIMAL (p, s).

* Литералы типов точных чисел, допускающих наличие дробной части, представляются в виде строк символов, изображающих десятичные числа, в начале которых могут присутствовать символы «+» или «-» (если символ знака отсутствует, подразумевается «+»), а внутри последовательности цифр может присутствовать символ «.». Примеры литералов типов NUMERIC и DECIMAL: 125, 26.36.

Приближенные числовые типы

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

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

* Тип DOUBLE PRECISION. Точность значений этого типа определяется в реализации, но она должна быть больше точности типа REAL. Обычно приближенным числам SQL с двойной точностью соответствуют поддерживаемые аппаратурой числа с плавающей точкой двойной точности. При определении столбца указывается просто DOUBLE PRECISION.

* Тип FLOAT. Это параметризуемый тип, значение параметра p которого задает необходимую точность значений. Требуется, чтобы реально обеспечиваемая реализацией точность значений была не меньше p. Допустимый диапазон значений параметра p определяется в реализации. При определении столбца можно указать либо FLOAT (p), либо просто FLOAT. В последнем случае подразумевается точность, определяемая реализацией по умолчанию.

* Литералы приближенных числовых типов представляются в виде литерала точного числового типа, за которым могут следовать символ «E» и литерал целого числового типа. Примеры литералов приближенных числовых типов: 123, 123.12, 123E12, 123.12E12. Литеральное выражение xEy представляет значение x*(10y).

Типы символьных строк

В SQL определены три параметризуемых типа символьных строк: CHARACTER (или CHAR), CHARACTER VARYING (или CHAR VARYING, или VARCHAR) и CHARACTER LARGE OBJECT (или CLOB).

* Тип CHARACTER. Значениями типа являются символьные строки. Конкретный набор допустимых символов определяется в реализации, но, как правило, включает набор символов ASCII. При определении столбца допускается использование спецификаций CHARACTER (x) и просто CHARACTER. Последний вариант эквивалентен заданию CHARACTER (1). После определения столбца типа CHARACTER (x) СУБД будет резервировать место для хранения x символов этого столбца во всех строках соответствующей таблицы. Если, например, определен столбец типа CHARACTER (8), и в некоторой строке таблицы в него заносится символьная строка длиной пять символов, то реально будут храниться восемь символов, последние три из которых будут пробелами79).

* Тип CHARACTER VARYING. При определении столбца допускается использование спецификаций CHARACTER VARYING (x) и просто CHARACTER VARYING. Последний вариант эквивалентен заданию CHARACTER VARYING (1). Если в некоторой таблице определяется столбец типа CHARACTER VARYING (x), то в каждой строке этой таблицы значения данного столбца будут занимать ровно столько места, сколько требуется для сохранения соответствующей символьной строки (но ни одна такая строка не может состоять более чем из x символов).

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

* Операция конкатенации (обозначается в виде «||») возвращает символьную строку, произведенную путем соединения строк-операндов в том порядке, в каком они заданы.

* Функция выделения подстроки (SUBSTRING) принимает три аргумента - строку, номер начальной позиции и длину - и возвращает строку, выделенную из строки-аргумента в соответствии со значениями двух последних параметров.

* Функция UPPER возвращает строку, в которой все строчные буквы строки-аргумента заменяются прописными. Функция LOWER, наоборот, заменяет в заданной строке все прописные буквы строчными.

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

* Функция определения позиции (POSITION) определяет первую позицию в строке S, с которой в нее входит заданная строка S1 (если не входит, то возвращается значение нуль).

* Тип CHARACTER LARGE OBJECT. Этот тип данных предназначен для определения столбцов, хранящих большие и разные по размеру группы символов. При определении столбца задается спецификация CLOB (z), где z задает максимальный размер соответствующей группы символов. Максимально возможное значение параметра z определяется в реализации, но, очевидно, что оно должно быть существенно больше максимально возможного значения параметра x, присутствующего в типах CHAR и CHAR VARYING.

* Литералы типов символьных строк представляются в виде последовательностей символов, заключенных в одинарные или двойные кавычки. В первом случае среди набора символов литерала допускается наличие символов двойной кавычки, а во втором - символов одинарной кавычки. Примеры литералов символьных строк: 'ABCDEF', 'Ab"Ctd', "Fbcdef", "ab'cdtF".

Типы битовых строк

В SQL определены три параметризуемых типа битовых строк: BIT, BIT VARYING и BINARY LARGE OBJECT (или BLOB).

* Тип BIT. Значениями типа являются битовые строки. При определении столбца допускается использование спецификаций BIT (x) и просто BIT. Последний вариант эквивалентен заданию BIT (1). После определения столбца типа BIT (x) СУБД будет резервировать место для хранения x бит этого столбца во всех строках соответствующей таблицы.

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

Над битовыми строками определен ряд операций. Некоторые из них приведены ниже.

* Битовая конкатенация (обозначается в виде ||), которая возвращает результирующую битовую строку, полученную путем конкатенации строк-аргументов в том порядке, в котором они заданы.

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

* Функция определения длины (OCTET_LENGTH, BIT_LENGTH) возвращает длину заданной битовой строки в октетах или битах в зависимости от выбранной функции.

* Функция определения позиции (POSITION) определяет первую позицию в битовой строке S, с которой в нее входит строка S1. Если строка S1 не входит в строку S, возвращается значение нуль.

* Тип BINARY LARGE OBJECT. Этот тип данных предназначен для определения столбцов, хранящих большие и разные по размеру группы байтов. При определении столбца задается спецификация BLOB (z), где z задает максимальный размер соответствующей группы байтов. С технической точки зрения типы CLOB и BLOB очень похожи. Их разделение требуется для того, чтобы подчеркнуть, что значения типа CLOB состоят из символов (в частности, в них может осмысленно производиться текстовый поиск), а значения типа BLOB состоят из произвольных байтов, не обязательно кодирующих символы.

* Литералы типов битовых строк представляются как заключенные в одинарные кавычки последовательности символов «0» и «1», предваряемые символом «B»; или предваряемые символом «X» последовательности символов, которые изображают шестнадцатеричные цифры (за цифрой «9» следуют «A», «B», «C», «D», «E» и «F»). Примеры литералов типов битовых строк: B'0111001111000111111111', X'78FBCD0012FFFFA'.

Дата и время

Тип данных "дата/время" используется для определения моментов времени с некоторой установленной точностью. Примерами являются даты, отметки времени и время суток. Стандарт ISO разделяет тип данных "дата/время" на подтипы YEAR (Год), MONTH (Месяц), DAY (День), HOUR (Час), MINUTE (Минута), SECOND (Секунда), TIMEZONE_HOUR (Зональный час) и TIMEZONE_MINUTE (Зональная минута). Два последних типа определяют час и минуты сдвига зонального времени по отношению к всеобщему скоординированному времени (прежнее название -- гринвичское время). Поддерживаются три типа полей даты/времени.

язык данные числовой информация

DATE

TIME [timePrecision] [WITH TIME 2ONS]

TIMESTAMP [timePrecision] [WITH TIME ZONE]

Тип данных DATE используется для хранения календарных дат, включающих поля YEAR, MONTH и DAY. Тип данных TIME используется для хранения отметок времени, включающих поля HOUR, MINUTE и SECOND. Тип данных TIMESTAMP служит для совместного хранения даты и времени. Параметр timePrecision задает количество дробных десятичных знаков, определяющих точность представления значений в поле SECOND. Если этот параметр опущен, по умолчанию его значение для столбцов типа TIME принимается равным нулю (т.е. сохраняется целое количество секунд), тогда как для полей типа TIMESTAMP он принимается равным 6 (т.е. отметки времени сохраняются с точностью до микросекунд). Наличие ключевого слова WITH TIME ZONE определяет использование полей TIMEZONE_HOUR и TIMEZONE_MINUTE. Например, столбец date таблицы Viewing, представляющий дату (день, месяц и год) осмотра клиентом сдаваемого в аренду объекта, может быть определен следующим образом: viewDate DATE.

Интервальный тип данных

Данные с интервальным типом используются для представления периодов времени. Любой интервальный тип данных состоит из набора полей: YEAR, MONTH, DAY, HOUR, MINUTE и SECOND. Существуют два класса данных с интервальным типом: интервалы год-месяц и интерналы сутки-время суток. В первом случае данные включают только два поля -- YEAR и/или MONTH. Данные второго типа могут состоять из произвольной последовательности полей DAY, HOUR, MINUTE, SECOND.

Данные интервального типа определяются следующим образом:

INTERVAL -{{startField TQ.endField} singleDatetimeField}

StartField = YEAR MONTH | DAY j HOUR | MINUTE

[(intervaiLeadingFieldPrecisicm)]

endField = YEAR | MONTH | DAY j HOUR | MINUTE | SECOND

[(fractionalSecondsPrecision)]

singleDatetimeField = startPield |;SECONB

[(intervejlbeadingFie.IdPrecis.icm [,fractionalSecondsRrecision])]

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

Например: INTERVAL YEAR(2) ТО MONTH. Это объявление описывает интервал времени, значение которого может находиться между 0 годом, 0 месяцем и 99 годом, 11 месяцем. Еще один пример: INTERVAL HOUR TO SECOND(4). Это объявление описывает интервал времени, значение которого может изменяться от 0 часов, 0 минут, 0 секунд до 99 часов, 59 минут 59.9999 секунды. (Число дробных десятичных знаков для секунд установлено равным 4.)

2.3 Структура запросов SQL

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

В синтаксических конструкциях для обращения к БД используются следующие обозначения:

1) (*) для обозначения «все» - употребляется в обычном для программирования смысле, т.е. «все случаи, удовлетворяющие определению»;

2) ([]) - означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);

3) ({}) - означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;

4) (…) - указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;

5) (|) - означает наличие выбора из двух или более возможностей. Например, обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);

6) (;) - завершающий элемент предложений SQL;

7) (,) - используется для разделения элементов списков;

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

9) жирные прописные латинские буквы и символы - используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано-……..;

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

11) термины «таблица» и «столбец» заменяют (с целью сокращения текста синтаксических конструкций) на термины «имя_таблицы», «имя_столбца», …, соответственно;

12) термин «таблица» - используется для обобщения таких видов таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления).

Оператор SELECT осуществляет выборку из базы данных и имеет наиболее сложную структуру среди всех операторов языка SQL. Простейший оператор SELECT выглядит: SELECT * FROM Table1; Он осуществляет выборку всех записей из объекта БД табличного типа с именем Table1. При этом столбцы и строки результирующего набора не упорядочены. Чтобы упорядочить поля результирующего набора, их следует перечислить через запятую в нужном порядке после слова SELECT:

SELECT name, twoname, family, otdel, oklad, id

FROM Table1;

В таблице 1 приводится результат выполнения этого запроса.

Таблица 1 - Запрос SELECT

Name

twoname

family

otdel

oklad

id

Ivan

Sidorov

Petrov

3

5800

1

Stepan

Stepanov

Stepanovich

3

5500

2

Petr

Ivanov

Sidorovich

5

3200

3

Stepan

Stepanov

Stepanovich

5

5400

4

Stepan

Stepanov

Stepanovich

5

5800

5

Fedor

Petrov

Igorevich

5

6800

6

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

SELECT name, otdel FROM Table1;

который вернет следующие данные:

Таблица 2 - Запрос SELECT name

name

otdel

Ivan

3

Petr

5

Stepan

3

Stepan

5

Stepan

5

Fedor

5

Следует отметить, что вертикальная выборка может содержать дубликаты строк в том случае, если она не содержит потенциального ключа, однозначно определяющего запись. В таблице Table1 потенциальным ключом является поле id, которое выбрано в качестве первичного ключа таблицы. Поскольку это поле отсутствует в запросе, в приведенном выше результирующем наборе имеются дубликаты строк (например, строки 1 и 3). Если требуется получить уникальные строки (скажем, нас интересуют только различные комбинации скорости процессора и объема памяти, а не характеристики всех имеющихся компьютеров), то можно использовать ключевое слово DISTINCT:

SELECT DISTINCT name, otdel FROM Table1;

что даст такой результат:

Таблица 3 - 1-й результат запроса SELECT DISTINCT name

name

otdel

Fedor

5

Ivan

3

Petr

5

Stepan

3

Stepan

5

Помимо DISTINCT может применяться также ключевое слово ALL (все строки), которое принимается по умолчанию.

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

SELECT DISTINCT name, otdel

FROM Table1

ORDER BY otdel DESC

или

SELECT DISTINCT name, otdel

FROM Table1

ORDER BY 2 DESC

Результат, приведенный ниже, будет одним и тем же.

Таблица 4 - 2-й результат запроса SELECT DISTINCT name

name

otdel

Petr

5

Stepan

5

Fedor

5

Ivan

3

Stepan

3

Сортировку можно проводить по возрастанию (параметр ASC принимается по умолчанию) или по убыванию (параметр DESC). Сортировка по двум полям:

SELECT DISTINCT speed, ram

FROM Pc

ORDER BY ram DESC, speed DESC

даст следующий результат:

Таблица 5 - 3-й результат запроса SELECT DISTINCT name

name

otdel

Fedor

5

Petr

5

Stepan

5

Ivan

3

Stepan

3

Горизонтальную выборку реализует предложение WHERE , которое записывается после предложения FROM. При этом в результирующий набор попадут только те строки из источника записей, для каждой из которых значение предиката равно TRUE. То есть предикат проверяется для каждой записи. Предикаты представляют собой выражения, принимающие истинностное значение. Они могут представлять собой как одно выражение, так и любую комбинацию из неограниченного количества выражений, построенную с помощью булевых операторов AND, OR или NOT. Кроме того, в этих комбинациях может использоваться SQL-оператор IS, а также круглые скобки для конкретизации порядка выполнения операций [3, с.209]. Предикат в языке SQL может принимать одно из трех значений TRUE (истина), FALSE (ложь) или UNKNOWN (неизвестно). Исключение составляют следующие предикаты: NULL (отсутствие значения), EXISTS (существование), UNIQUE (уникальность) и MATCH (совпадение), которые не могут принимать значение UNKNOWN. Правила комбинирования всех трех истинностных значений легче запомнить, обозначив TRUE как 1, FALSE как 0 и UNKNOWN как 1/2 (где то между истинным и ложным). AND с двумя истинностными значениями дает минимум этих значений. Например, TRUE AND UNKNOWN будет равно UNKNOWN. OR с двумя истинностными значениями дает максимум этих значений. Например, FALSE OR UNKNOWN будет равно UNKNOWN.

Отрицание истинностного значения равно 1 минус данное истинностное значение. Например, NOT UNKNOWN будет равно UNKNOWN. Помимо этого используются предикаты сравнения. Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.

* Данные типа NUMERIC (числа) сравниваются в соответствии с их алгебраическим значением.

* Данные типа CHARACTER STRING (символьные строки) сравниваются в соответствии с их алфавитной последовательностью. Если a1a2…an и b1b2…bn - две последовательности символов, то первая "меньше" второй, если а1<b1, или а1=b1 и а2<b2 и т.д. Считается также, что а1а2…аn<b1b2…bm, если n<m и а1а2…аn=b1b2…bn, т.е. если первая строка является префиксом второй. Например, 'folder'<'for', т.к. первые две буквы этих строк совпадают, а третья буква строки 'folder' предшествует третьей букве строки 'for'. Также справедливо неравенство 'bar' < 'barber', поскольку первая строка является префиксом второй.

* Данные типа DATETIME (дата/время) сравниваются в хронологическом порядке.

* Данные типа INTERVAL (временной интервал) преобразуются в соответствующие типы, а затем сравниваются как обычные числовые значения типа NUMERIC.

Пример. Получить информацию о компьютерах, имеющих частоту процессора не менее 500 Мгц и цену ниже $800:

SELECT * FROM Pc

WHERE otdel = 5 AND oklad < 3000;

Запрос возвращает следующие данные:

Таблица 6 - Пример информационного запроса

code

model

speed

ram

hd

cd

price

1

1232

500

64

5

12x

600.0

3

1233

500

64

5

12x

600.0

7

1232

500

32

10

12x

400.0

10

1260

500

32

10

12x

350.0

Существуют так же и другие предикаты, например BETWEEN, IN, LIKE … Имена столбцов, указанные в предложении SELECT, можно переименовать. Это делает результаты более читабельными, поскольку имена полей в таблицах часто сокращают с целью упрощения набора. Ключевое слово AS, используемое для переименования, согласно стандарту можно и опустить, т.к. оно неявно подразумевается.

Например, запрос:

SELECT ram AS Mb, hd Gb

FROM Pc

WHERE cd = '24x';

переименует столбец ram в Mb (мегабайты), а столбец hd в Gb (гигабайты). Этот запрос возвратит объемы оперативной памяти и жесткого диска для тех компьютеров, которые имеют 24-скоростной CD-ROM:

Таблица 7 - Пример запроса SELECT AS

Mb

Gb

64

8

32

10

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

Таблица 8 - Описание (агрегатных) функции

Функция

Описание

COUNT(*)

Возвращает количество строк источника записей.

COUNT()

Возвращает количество значений в указанном столбце.

SUM()

Возвращает сумму значений в указанном столбце.

AVG()

Возвращает среднее значение в указанном столбце.

MIN()

Возвращает минимальное значение в указанном столбце.

MAX()

Возвращает максимальное значение в указанном столбце.

Все эти функции возвращают единственное значение. При этом функции COUNT, MIN и MAX применимы к любым типам данных, в то время как SUM и AVG используются только для числовых полей. Разница между функцией COUNT(*) и COUNT() состоит в том, что вторая при подсчете не учитывает NULL-значения.

Пример. Найти минимальную и максимальную цену на персональные компьютеры:

SELECT MIN(price) AS Min_price, MAX(price) AS Max_price

FROM PC;

Результатом будет единственная строка, содержащая агрегатные значения:

Таблица 8 - Строка содержащая (агрегатные) значения

Min_price

Max_price

350.0

980.0

Для просмотра данных наиболее удобно использовать совместно значения оператора COUNT - счетчик (позволяет узнать количество записей в запросе), и оператора CURSOR - позволяет принимать не все записи сразу а по одной (указанной пользователем).

Заключение

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

Глоссарий

№ п/п

Понятие

Определение

1

Реляционная алгебра

формальная система манипулирования отношениями, основными операциями которой являются: проекция, соединение, пересечение и объединение.

2

Информационная система

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

3

База данных (БД)

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


Подобные документы

  • Понятие и концепция базы данных и СУБД. Независимость приложений от организации данных во внешней памяти. Типы данных SQL, таблицы, структура языка и операторы. Преимущества модели реляционного подхода к организации баз данных и ее эффективность.

    курсовая работа [69,6 K], добавлен 30.11.2009

  • Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.

    реферат [98,7 K], добавлен 29.03.2012

  • Типы данных языка SQL, определенные стандартом ISO. Средства поддержки целостности данных. Введение ограничений для доменов. Разработка рабочего проекта для автосалона. Построение информационной схемы базы. Создание форм для занесения данных в таблицы.

    курсовая работа [2,5 M], добавлен 29.01.2012

  • Объекты модели хранения данных базы данных ORACLE. Взаимосвязь между логическими структурами. Средства манипулирования данными языка SQL, данными языка SQL. Структура выполнения простейших запросов. Формирование критерия отбора. Сортировка данных.

    презентация [120,1 K], добавлен 14.02.2014

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

    реферат [146,5 K], добавлен 06.02.2015

  • Классификация моделей построения баз данных. Работа с реляционными базами данных: нормализация таблиц, преобразование отношений полей, преобразование функциональной модели в реляционную. Понятие языка определения данных и языка манипуляции данными.

    реферат [123,0 K], добавлен 22.06.2011

  • Изучение и анализ функциональных возможностей СУБД. Структура языка реляционных БД SQL (Structured Query Language). Типы данных SQL. Операторы DDL - операторы определения объектов базы данных. Примеры использования операторов манипулирования данными.

    курсовая работа [39,6 K], добавлен 21.07.2012

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

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

    реферат [65,2 K], добавлен 26.11.2011

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

    контрольная работа [104,1 K], добавлен 22.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.