Языки описания данных
МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ Н. П. ОГАРЕВА
Экономический факультет
РЕФЕРАТ
на тему:
"Языки описания данных"
Выполнила:
Крылова С.Л.
Саранск 2010
Содержание.
Введение
Глава 1. Язык описания данных в реляционной модели 4
Глава 2. Язык описания данных в иерархической модели 9
Глава 3. Язык описания данных
в сетевой модели
Заключение
Список используемой литературы
Введение.
Базовым требованием к СУБД является наличие мощного и в тоже время простого языка, позволяющего выполнять все необходимые пользователям операции. В последние годы таким повсеместно принятым языком стал язык реляционных БД SQL – Structured Query Language (теперь все чаще название языка понимается как Standard Query Language) .
До появления SQL в СУБД (независимо от того, на какой модели они основывались) приходилось поддерживать по крайней мере три языка, которые обычно имели мало общего: язык определения данных (ЯОД), служащий для спецификации структур БД; язык манипулирования данными (ЯМД), позволяющий создавать прикладные программы, взаимодействующие с БД; и язык администрирования БД (ЯАДБ), с помощью которого можно было выполнять служебные действия (например, изменять структуру БД или производить ее настройку с целью повышения эффективности). Кроме того, если требовалось предоставить пользователям СУБД интерактивный доступ к БД, приходилось вводить еще один язык, операторы которого выполняются в диалоговом режиме. Язык SQL позволяет решать все эти задачи. Он состоит из двух частей: Языка описания (определения) данных - DDL (Data Definition Language) и Языка манипулирования данными - DML (Data Manipulation Language). Я подробней остановлюсь на языке описания данных DDL.
Актуальность моей темы обусловлена, с одной стороны, большим интересом к теме "Языки описания данных" в современной науке, с другой стороны, ее достаточной важностью. Рассмотрение вопросов связанных с данной темой носит как теоретическую, так и практическую значимость. Теоретическое значение изучения темы "Языки описания данных" заключается в том, что избранная для рассмотрения тема находится на стыке сразу нескольких научных дисциплин. Практическое значение изучения темы является ее анализ и применение на практике.
Целью моего исследования
является рассмотрение языков описания
данных. Для достижения поставленной
цели мной были поставлены следующие задачи:
1. Изучить теоретические аспекты, касающиеся
моей темы;
2. Сказать об актуальности проблемы заложенной
в моей работе «Языки описания данных»;
3. Изложить возможности решения этой проблемы;
Глава 1. Язык описания данных в реляционной модели.
Для создания и изменения структуры БД предназначены SQL-запросы, называемые языком описания данных, или DDL (Data Definition Language). С помощью DDL-запросов можно выполнить следующее:
- определить структуру нового домена и создать его;
- определить структуру новой таблицы и создать ее;
- изменить определение существующей таблицы;
- определить виртуальную таблицу (представление, курсор);
- создать индексы для ускорения доступа к таблицам.
Ядро языка определения данных образуют следующие четыре SQL-запроса:
- CREATE(создать), позволяющий определить и создать объект БД;
- DROP(удалить), служащий для удаления существующего объекта БД;
- ALTER(изменить), с помощью которого можно изменить определение объекта БД;
- RECREATE(заново создать), с помощью которого можно заново создать объект со старым именем.
Определение структуры нового домена и его создание:
Если в таблицах БД имеются столбцы, обладающие одними и теми же характеристиками, то можно предварительно определить с помощью домена тип данных и поведение таких столбцов, а затем поставить в соответствие каждому из однотипных столбцов имя соответствующего домена.
Доменом называется именованное множество скалярных значений одного типа. Цель доменов в SQL – обеспечить возможность один раз определить элементарную спецификацию типа данных, а затем использовать ее одновременно для нескольких столбцов в нескольких базовых таблицах.
Основной особенностью доменов является то, что домены ограничивают сравнения. Это значит, что сравнение атрибутов, определенных на основе одного домена, имеет смысл, а сравнение атрибутов, определенных на основе различных доменов, бессмысленно.
Синтаксис запроса определения домена имеет следующий вид:
CREATE DOMAIN имя_домена [AS] <тип_данных>
[DEFAULT { литерал | NULL | USER}]
[NOT NULL] [CHECK ( <ограничение_домена>)];, где
имя_домена – имя создаваемого домена; <тип_данных> – тип данных;
DEFAULT– ключевое слово, определяющее значение по умолчанию, применяемое к каждому столбцу как:
- литерал – константа строкового, числового типа или типа дата/время;
- NULL – значение NULL;
- USER – контекстная переменная, возвращающая имя пользователя, подключенного к БД.
Следующие предложения задают набор
ограничений целостности к
- NOT NULL – чтобы столбец не имел NULL-значения. Этот атрибут используется при определении домена, если требуется, чтобы все столбцы, создаваемые на основе этого домена, имели непустое значение.
- CHECK – определяет список
Определение существующего домена можно изменить с помощью запроса ALTER DOMAIN. Этот запрос позволяет:
- удалить существующее и определить новое значение по умолчанию (заменяя при этом старое значение, если оно было указано);
- удалить существующее и ввести новое ограничение целостности.
Существующий домен можно удалить с помощью запроса DROP DOMAIN.
Примечание. Домен не будет удален, если на него имеются какие-либо ссылки, т.е. существуют таблицы со столбцами, определенными на этом домене.
Определение структуры новой таблицы и ее создание:
В реляционной БД наиболее важным элементом ее структуры является таблица. Перед тем как перейти к созданию таблиц, необходимо выполнить проектирование базы данных и нормализацию таблиц.
Для создания базовой таблицы, ее столбцов и ограничений, налагаемых на каждый столбец, используется запрос CREATE TABLE, который имеет следующий формат: CREATE TABLE базовая_таблица (<определение_столбца1> [, <определение_столбца2>……] [,<тип_ограничения>……]);.
При ограничении столбца соответствующее ограничение объявляется индивидуально для каждого столбца непосредственно после определения имени и типа столбца. При этом используется конструкция <ограничение_столбца>.
При определении ограничений, накладываемых на всю таблицу, используется следующая синтаксическая конструкция: <тип_ограничения>::= [CONSTRAINT имя_ограничения] {{ PRIMARY KEY | UNIQUE} (<список_столбцов>) | FOREIGN KEY(<список_столбцов>).
Для удаления существующей таблицы используется запрос DROP TABLE, который имеет следующий формат: DROP TABLE базовая_таблица;.
Следует отметить, что нельзя удалить таблицу в следующих случаях:
- если на ее столбцы ссылаются внешние ключи других таблиц;
- если она используется другими объектами БД (например, представлением);
- если она определена в текущей транзакции, на момент удаления еще не завершенной.
Создание индексов для ускорения доступа к таблицам:
Одним из структурных элементов физической памяти, присутствующим в большинстве современных реляционных СУБД, является индекс. Индекс – это средство, обеспечивающее быстрый доступ к строкам таблицы на основе значений одного или нескольких ее столбцов. В индексе хранятся значения данных и указатели на строки, где эти данные встречаются. Использование индекса обычно требует меньшего количества обращений к диску, чем последовательное чтение строк в таблице. Оптимальный выбор состава и количества индексов зависит и от структуры БД, и от характера ее использования.
Рекомендуется создавать индекс для столбцов, которые часто используются в условиях поиска. В SQL индекс для таких столбцов создается запросом CREATE INDEX, который имеет следующий формат: CREATE [UNIQUE] [ASC | DESC] INDEX имя_индекса ON базовая_таблица {(<список_столбцов>)
| COMPUTED BY (<выражение>)};
Если требуется часто осуществлять поиск и сортировку по адресам абонентов, то можно создать составной индекс, т.е. индекс для нескольких столбцов в таблице. Запрос на создание такого индекса будет выглядеть следующим образом: CREATE INDEX Address_Index ON Abonent (StreetCD, HouseNO);.
Существует возможность проиндексировать выражения, часто применяемые в запросах. Индекс для выражения создается с помощью следующей конструкции: COMPUTED BY (<выражение>).
К недостаткам индекса относится то, что он занимает дополнительное дисковое пространство, и то, что индекс необходимо обновлять каждый раз, когда в таблицу добавляется строка или обновляется проиндексированный столбец таблицы.
При создании любой индекс (как по столбцам ограничений, так и по другим столбцам) автоматически активен.
Удаление индекса с заданным именем производится с помощью запроса DROP INDEX, который имеет следующий формат: DROP INDEX имя_индекса;.
Определение виртуальной таблицы (представление, курсор):
Представление – это виртуальная таблица, созданная на основе запроса из базовой таблицы. Представление, как и реальная (базовая) таблица, содержит строки и столбцы данных, но данные, видимые в представлении, на самом деле являются результатами запроса.
В SQL представления создаются запросом CREATE VIEW, который имеет следующий формат: CREATE VIEW представление [( столбец_представления[, столбец_представления…])] AS <табличный_подзапрос> [WITH CHECK OPTION];.
По виду запроса, виды представлений бывают:
Горизонтальные, вертикальные, смешанные, сгруппированные, соединенные. Горизонтальное представление представляет собой горизонтальное подмножество строк одиночной таблицы и предназначено для ограничения доступа к строкам таблицы. Вертикальное представление представляет собой вертикальное подмножество строк одиночной таблицы и предназначено для ограничения доступа к столбцам таблицы. Смешанное представление представляет собой подмножество строк и столбцов одиночной таблицы. Оно является представлением, разделяющим исходную таблицу, как в горизонтальном, так и в вертикальном направлениях. Сгруппированное представление основано на запросе, содержащем предложение GROUP BY. Соединенное представление - это подмножество строк и столбцов из нескольких таблиц. |
Преимуществами использования представлений являются следующие:
- обеспечение логической независимости
- прикладной взгляд на данные
- защита данных
- скрытие сложности данных.
Глава 2. Язык описания данных в иерархической модели.
В рамках иерархической модели выделяют языковые средства описания данных (DDL, Data Definition Language) и средства манипулирования данными (DML, Data Manipulation Language).
Каждая физическая база описывается набором операторов, определяющих как ее логическую структуру, так и структуру хранения БД. Описание начинается с оператора DBD (Data Base Definition):
DBD Name = < имя БД>, ACCESS = < способ доступа>
Способ доступа определяет способ организации взаимосвязи физических записей. Определено 5 способов доступа: HSAM (иерархически последовательный метод), HISAM (иерархически индексно-последовательный метод), HDAM (иерархически прямой метод), HIDAM (иерархически индексно-прямой метод), INDEX — индексный метод.
Далее идет описание наборов данных, предназначенных для хранения БД:
DATA SET DD1 = < имя оператора, определяющего хранимый набор данных>,
DEVICE =< устройство хранения БД>,
[OVFLW = < имя области переполнения>]
После описания всей физической БД идет описание типов сегментов, ее составляющих, в соответствии с иерархией. Описание сегментов всегда начинается с описания корневого сегмента. Общая схема описания типа сегмента такова:
SEGM NAME = < имя сегмента>,
BYTES =< размер в байтах>,
FREQ = <средняя частота реализаций сегмента под одним исходным>
PARENT = <имя родительского сегмента>
Параметр FREQ определяет среднее количество экземпляров данного сегмента, связанных с одним экземпляром родительского сегмента. Для корневого сегмента параметр PARENT равен 0.
Далее для каждого сегмента дается описание полей:
FIELD NAME = {(<имя поля> [, SEQ],{U | M}) | <имя поля> },
START = < номер байта, с которого начинается значения поля >,
BYTES = <размер поля в байтах>,
TYPE = {X | P | C}
Признак SEQ — задается
для ключевого поля, если экземпляры данного
сегмента физически упорядочены в соответствии
со значениями данного поля. Параметр U задается,
если значения ключевого поля уникальны
для всех экземпляров данного сегмента, M
— в противном случае. Параметр TYPE определяет
тип данных(X — шестнадцатеричный, P —
Заканчивается описание схемы вызовом процедуры генерации:
- DBDGEN — указывает на конец последовательности управляющих операторов описания БД;
- FINISH — устанавливает ненулевой код завершения при обнаружении ошибки;
- END — конец.
В системе может быть несколько физических БД, но каждая из них описывается отдельно своим DBD и ей присваивается уникальное имя.
Глава 3. Язык описания данных в сетевой модели.
Язык описания данных в сетевой модели имеет несколько разделов:
- описание базы данных — области размещения;
- описания записей — элементов и агрегатов;
- описания наборов.
SCHEMA IS <Имя БД>.
AREA NAME IS <Имя физической области>.
RECORD NAME IS <Имя записи (уникальное)>
Для каждой записи определяется способ размещения экземпляров записи данного типа:
LOCATION MODE IS {DIRECT (напрямую) |
CALC <Имя программы> USING <[Список пер.>]
DUPLICATE ARE [NOT] ALLOWED
VIA <Имя набора> SET (рядом с записями владельца)
SYSTEM (решать будет система)}
Каждый тип записи должен быть приписан к некоторой физической области размещения:
WITHIN <Имя области размещения> AREA
После описания записи в целом идет описание внутренней структуры:
<Имя уровня> <Имя данного> <Шаблон> <Тип>
Номер уровня определяет уровень вложенности при описании элементов и агрегатов данных. Первый уровень — сама запись. Поэтому элементы или агрегаты данных имеют уровень начиная со второго. Если данное соответствует агрегату, то любая его составляющая добавляет один уровень вложенности.
Если агрегат является вектором, то он описывается как
<Номер уровня> <Имя агрегата>.<Номер уровня>
<Имя 1-й сост.>
а если — повторяющейся группой, то следующим образом:
<Номер уровня> <Имя агрегата>.OCCURS <N> TIMES
где N — среднее количество элементов в группе.
Описание набора и порядка включения членов в него выглядит следующим образом:
SET NAME IS <Имя набора>;
OWNER IS (<Имя владельца> | SYSTEM).
Далее указывается порядок включения новых экземпляров члена данного набора в экземпляр набора:
ORDER PERMANENT INSERTION IS {SORTED | NEXT | PREV | LAST | FIRST}
После этого описывается член набора с указанием способа включения и способа исключения экземпляра — члена набора из экземпляра набора.
MEMBER IS <Имя члена набора>
{AUTOMATIC | MANUAL} {MANDATORY | OPTIONAL}
KEY IS (ACCENDING | DESCENDING) <Имя элемента данных>
При автоматическом включении каждый новый экземпляр члена набора автоматически попадает в текущий экземпляр набора в соответствии с заданным ранее порядком включения. При ручном способе экземпляр члена набора сначала попадает в БД, а только потом командой CONNECT может быть включен в конкретный экземпляр набора.
Если задан способ исключения MANDATORY, то экземпляр записи, исключаемый из набора, автоматически исключается и из базы данных. Иначе просто разрываются связи.
Заключение.
Из всего
сказанного можно сделать
Однако в большинстве промышленных СУБД
языки не делится на два отдельных языка
описания логической и физической организации
данных, а существует единый язык, который
еще называется языком описания схем.
В известных и широко используемых на
практике СУБД семьи dBASE применяется единый
язык описания данных. Он предназначен
для представления данных на логическом
и физическом уровнях.
В заключении хочу сказать, что моей теме посвящено много работ. Материал учебной литературы носит общий характер, а в монографиях по данной теме рассмотрены более узкие вопросы проблемы заключенной в работе «Языки описания данных». Я считаю, мне наиболее полно удалось раскрыть ряд проблем, имеющих отношение к рассматриваемой мной теме и полностью выполнить поставленные в начале работы задачи.
Список используемой литературы.
1. Когаловский М.Р.
Энциклопедия технологий баз данных. –
М.: Финансы и статистика, 2002.
2. Конноли Т., Бегг Л., Страчан
А. Базы данных. Проектирование, реализация
и сопровождение. Теория и практика. 3-е
издание. Вильямс 2003. – Таблицы, картинки.
Леонтьев В.П. ПК: универсальный справочник
пользователя - М.: 2003. – 251 с.
3. Корнеев В.В., Гареев А.Ф., Васютин
С.В., Райх В.В. Базы данных. Интеллектуальная
обработка информации. 2-е изд. – М.: Изд.
Молгачева С.В., 2001. – 494 с.
4. Мамаев Е. Microsoft SQL Server 2000 –
СПБ.: БХВ-Петербург, 2002.
5. Фаронов В.В. Основы
программирования в SQL. - М.: Издатель Молгачева
С.В., 2002. – 329 с.
6.
http://www.cent-sp.com/sql_t4.
7. http://www.intuit.ru/

- Языки ориентированные на разработку экспертных систем
- Языки програмирования
- Языки програмирования
- Языки програмирования
- Языки програмирования РНР
- Языки программирования
- Языки программирования
- Язык интернета
- Язык Интернет: характеристика, особенности и влияние
- Язык интонации, мимики и жестов как средство познания человека
- Язык и общение животных
- Язык и общество
- Язык и общество
- Язык и общество