Учебная работа. Курсовая работа: Структура языка SQL

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Курсовая работа: Структура языка SQL

Содержание

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

1.Типы данных языка SQL, определенные эталоном ISO………………………….5

1.1. Идентификаторы языка SQL…………………………………………………………………5

1.2. Скалярные типы данных языка SQL……………………………………………………..6

1.3 Четкие числовые данные (тип exact numeric)…………………………………………8

2. средства поддержки целостности данных………………………………………………12

2.1. Неотклонимые данные………………………………………………………………………….12

2.2. Ограничения для доменов…………………………………………………………………..13

2.3. Целостность сущностей………………………………………………………………………15

2.4. Ссылочная целостность………………………………………………………………………17

2.5. Требования данного компании……………………………………………………….19

3. Определение данных……………………………………………………………………………..22

3.1. Создание баз данных…………………………………………………………………………..23

3.2. Создание таблиц (оператор CREATE TABLE)……………………………………..25

3.3. Модификация определения таблицы (оператор ALTER TABLE)………….28

3.4. Удаление таблиц (оператор DROP TABLE)…………………………………………30

3.5. Создание индекса (оператор CREATE INDEX)……………………………………31

3.6. Удаление индекса (оператор DROP INDEX)………………………………………..32

4. Представления………………………………………………………………………………………34

5. Внедрение транзакций ……………………………………………………………………35

6. Управление доступом к данным…………………………………………………………….38

Заключение……………………………………………………………………………………………….41 Глоссарий…………………………………………………………………………………………..44

Библиографический перечень………………………………………………………………………45

приложение……………………………………………………………………46
Введение

Язык SQL является первым и пока единственным обычным языком работы с базами данных, который получил довольно обширное распространение. Еще есть один обычный язык работы с базами данных, NDL (Network Database Language), который построен на использовании сетевой модели CODASYL[1]
, но он применяется только в немногих разработках. Фактически все наикрупнейшие создатели СУБД в истинное время делают свои продукты с внедрением языка SQL или интерфейса SQL, и большая часть таковых компаний участвуют в работе, по наименьшей мере, одной организации, которая занимается разработкой эталонов этого языка. В SQL изготовлены большие Инвестиции как со стороны разрабов, так и со стороны юзеров. Он стал частью архитектуры приложений (к примеру, таковой как System Application Architecture (SAA) компании IBM), также является стратегическим выбором почти всех больших и влиятельных организаций (к примеру, консорциума Х/Open, занятого разработкой эталонов для среды unix), Язык SQL также принят в качестве федерального эталона обработки инфы (Federal Information Processing Standard — FIPS), который должен соблюдаться в СУБД для получения разрешения продавать ее на местности США (Соединённые Штаты Америки — язык SQL употребляется в остальных эталонах и даже оказывает воздействие на разработку почти всех эталонов как инструмент их определения. В качестве примера можно привести эталоны ISO «Information Resource Dictionary System» (IRDS) и «Remote Data Access» (RDA). Разработка языка вызвала определенную заинтригованность научных кругов, выразившуюся как в выработке нужных теоретических основ, так и в подготовке удачно реализованных технических решений. Это в особенности справедливо в отношении оптимизации запросов, способов распределения данных и реализации средств защиты. Начали появляться спец реализации языка SQL, созданные для новейших рынков, такие как Online Analytical Processing (OLAP[2]
).

1.
Типы данных языка SQL, определенные эталоном ISO

В реальном разделе описаны типы данных, определенные эталоном ISO SQL. Начнем с определения требований к допустимому идентификатору языка SQL.

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

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

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

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

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

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

1.2.Скалярные типы данных языка SQL

В табл. 1(смотрите приложение) перечислены скалярные типы данных языка SQL, которые определены эталоном ISO. В неких вариантах в целях упрощения манипулирования и преобразования, также из-за сходства главных параметров данные типов character
и bit
соединяются воединыжды под заглавием «строковые типы данных», а данные типов exact numeric
и approximate numeric —
под заглавием «числовые типы данных». В эталоне SQL3 определены также огромные символьные и двоичные объекты.

Логические данные (тип boolean)
состоят из различимых истинностных значений TRUE (настоящий) и FALSE (неверный). Логические данные поддерживают также истинностное значения данных логического типа и истинностные значения SQL могут вместе применяться в операторах сопоставления и присваивания. значения FALSE, а хоть какое сопоставление, в каком участвует

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

CHARACTER [VARYING] [length
]

CHARACTER (может
. быть сокращено до
СНАЕ.) и

CHARACTER VARYING (может быть- сокращено до
VARCHAR)

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

Символьная строчка быть может определена как имеющая фиксированную либо переменную (VARYING) длину. Если строчка определена с фиксированной длиной, то при вводе в нее наименьшего количества знаков строковое к примеру, столбец branchNo таблицы Branch с обозначением номера отделения имеет фиксированную длину четыре знака и быть может объявлен последующим образом:

branchNo CHAR(4)

Столбец address таблицы PrivateOwner имеет переменную длину значения {максимум до 30 знаков), потому он быть может объявлен последующим образом:

address VARCHAR(30)

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

OBIT IVARYING] {length].

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

bitString BIT(4)

1.3.Четкие числовые
данные (тип
exact numeric)

Тип четких числовых данных употребляется для определения чисел, которые имеют четкое представление в компе. Числа состоят из цифр и необязательных знаков (десятичной точки, знака «плюс» либо «минус»). Данные четкого числового типа определяются значностъю
(precision) и длиной, дробной части
(scale). Значность задает полное количество означающих десятичных цифр числа, в которое входят длина целой и дробной частей, но без учета самой десятичной точки. Дробная часть показывает количество дробных десятичных разрядов числа. к примеру, четкое число -12 .345 имеет значность, равную 5 цифрам, и дробную часть длиной 3. Особенной разновидностью четких чисел являются целые числа. Существует несколько методов определения данных четкого числового типа:

NUMERIC [ precision — [, scale] ]

DECIMAL [ precision [,
scale] ]

INTEGER

SMALLXNT

INTEGER . (
быть может сокращено до INT) и DECIMAL (до DEC)

Типы NUMERIC и DECIMAL предусмотрены для хранения чисел в десятичном формате. По дефлоту длина дробной части равна нулю, а принимаемая по дефлоту значность зависит от реализации. Тип INTEGER употребляется для хранения огромных положительных либо отрицательных целых чисел. Тип SMALLINT употребляется для хранения маленьких положительных либо отрицательных целых чисел. При использовании этого типа данных расход наружной памяти значительно сокращается. к примеру, наибольшее абсолютное 32
767. Для столбца rooms таблицы PropertyForRent, в каком сохраняются сведения о количестве комнат сдаваемого в аренду объекта, можно избрать тип SMALLINT и объявить его последующим образом:

rooms SMALLINT Столбец salary таблицы Staff быть может объявлен последующим образом:

salary DECIMAL(7,2)

В этом случае наибольшее значение зарплаты составит 99 999.99 фунтов стерлингов,

Округлые числовые данные (тип approximate numeric).
Тип округлых числовых данных употребляется для описания данных, которые недозволено буквально представить в компе, к примеру реальных чисел. Для представления округлых чисел либо чисел с плавающей точкой употребляется экспоненциальная система обозначений, в какой число записывается при помощи мантиссы, умноженной на определенную степень 10 (порядок), на пример: 10ЕЗ, +5.2Е6, -0.2Е-4. Существует несколько методов определения данных с типом округлых числовых данных:

FLOAT [precision]

REAL

DOUBLE PRECISION

Параметр precision
задает значность мантиссы. Значность определений типа REAL и DOUBLE PRECISION зависит от определенной реализации.

Дата и время (тип datetime).
Тип данных «дата/время» употребляется для определения моментов времени с некой установленной точностью. Примерами являются даты, отметки времени и время суток. Эталон 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. Если этот параметр опущен, по дефлоту его количество секунд), тогда как для полей типа TIMESTAMP он принимается равным 6 (т.е. отметки времени сохраняются с точностью до микросекунд). Наличие главного слова WITH TIME ZONE описывает внедрение полей TIMEZONE_HOUR и TIMEZONE_MINUTE. к примеру, столбец date таблицы Viewing, представляющий дату (денек, месяц и год) осмотра клиентом сдаваемого в аренду объекта, быть может определен последующим образом:

viewDate DATE

Интервальный тип данных interval.
Данные с интервальным типом употребляются для представления периодов времени. Хоть какой интервальный тип данных состоит из набора полей: 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 минут, о секунд до 99 часов, 59 минут 59.9999 секунды. (Число дробных десятичных символов для секунд установлено равным 4.)

Скалярные операторы.
язык SQL включает некое количество интегрированных скалярных операторов и функций, которые могут употребляться для построения скалярных выражений, т.е. выражений, вычисление которых дает скалярный итог. Кроме обыденных арифметических операторов (+, -, * и /) в языке определены и остальные операторы, выставленные в табл. 2.

2.средства поддержки целостности данных

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

• неотклонимые данные;

• ограничения для доменов;

• целостность сущностей;

• ссылочная целостность;

• требования определенного компании.

Эти ограничения могут быть определены в операторах CREATE TABLE и ALTER TABLE.

2.1.Неотклонимые
данные

Для неких столбцов требуется наличие в каждой строке таблицы определенного и допустимого значения NULL). Значение NULL не следует путать с пустыми строковыми значениями либо нулевыми числовыми значениями; оно служит для представления данных, которые в данный момент недосягаемы, отсутствуют либо не определены. к примеру, любой работник непременно занимает ту либо иную должность: Менеджер, заместитель и т.п. Для задания ограничений подобного типа эталон ISO предугадывает внедрение спецификатора NOT NULL, указываемого в операторах CREATE TABLE и ALTER TABLE. Если для столбца задан спецификатор NOT NULL, система отторгает любые пробы вставить в таковой столбец пустое согласовании со эталоном ISO по дефлоту применяется спецификатор NULL. к примеру, для указания того, что столбец position (Должность) в таблице Staff (Персонал) не может содержать пустых значений, следует найти его, как показано ниже. position VARCHAR(IO) NOT NULL

2.2.Ограничения
для доменов

Любой столбец имеет свой домен, т.е. некий набор допустимых значений. К примеру, для определения пола работника довольно всего 2-ух значений, потому домен для столбца sex (Пол) таблицы Staff можно найти как набор из 2-ух строк длиной в один знак со значением или ‘М’, или ‘ F ‘ . Эталон ISO предугадывает два разных механизма определения доменов в операторах CREATE TABLE и ALTER TABLE. 1-ый состоит в использовании конструкции CHECK, позволяющей задать требуемые ограничения для столбца либо таблицы в целом. Система CHECK имеет последующий формат:

CHECK {searchCandition}

При определении ограничений для отдельного столбца в конструкции CHECK можно ссылаться лишь на определяемый столбец. к примеру, для указания того, что столбец sex может содержать только два допустимых значения ( ‘ М ‘ и ‘F’), следует объявить его таковым образом:

Sех CHAR NOT NULL CHECK {sex IN CM1 , ‘ F 1 } )

Но эталон ISO дозволяет определять и наиболее сложные домены, для что предназначен 2-ой механизм — внедрение оператора CREATE Domain, имеющего последующий формат:

CREATE DOMAIN domainWame [AS] datatype

[DEFAULT defaultOption]

[CHECK (searcftCoriditicn)]

Любому создаваемому домену присваивается имя, задаваемое параметром domainName,
тип данных, определяемый параметром dataType
(см. раздел 6.1.2), необязательное defaulCOption,
и необязательный набор допустимых значений, определяемый в конструкции CHECK. Необходимо подчеркнуть, что приведенный формат оператора CREATE DOMAIN является неполным, но его довольно для демонстрации главных способностей. Таковым образом, в критериях предшествующего примера мы могли бы найти домен для столбца sex при помощи последующего оператора:

CREATE Domain SexType AS CHAR

DEFAULT ‘M’

CHECK (VALUE IN { ‘ M ‘ , ‘ F ‘ ) ) ;

В итоге обработки этого оператора в базе данных будет сотворен домен под именованием SexType, состоящий из 2-ух отдельных знаков, имеющих значения «М1 и ‘F’. Сейчас столбец sex в таблице Staff можно будет обрисовать, используя домен SexType заместо определителя типа данных CHAR:

sex SexType NOT NULL

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

CREATE Domain BranchNumber AS VARCHAR(4)

CHECK (VALUE IN (SELECT branchNo PROM Branch));

Удаление доменов из базы данных производится при помощи оператора DROP Domain, имеющего последующий формат:

DROP DOMAIN domainName [RESTRICT | CASCADE]

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

2.3.Целостность сущностей

Первичный ключ таблицы должен иметь неповторимое непустое значение в каждой ее строке. к примеру, любая строчка таблицы PropertyForRent обязана содержать неповторимое объект недвижимости, представленный данной строчкой таблицы. Эталон ISO дозволяет задавать подобные требования поддержки целостности данных при помощи конструкции PRIMARY KEY в операторах CREATE TABLE и ALTER TABLE. к примеру, для определения первичного ключа таблицы PropertyForRent можно употреблять последующую систему:

PRIMARY KEY(staffNo)

В случае составного первичного ключа, к примеру, первичного ключа таблицы Viewing, состоящего из 2-ух столбцов под именами clientNo и propertyNo, система определения первичного ключа PRIMARY KEY будет иметь вид

PRIMARY KEY(clientNo, propertyNo)

Система PRIMARY KEY может указываться в определении таблицы лишь один раз. Но существует возможность гарантировать неповторимость значений и для всех других ключей таблицы, для что предназначено ключевое слово UNIQUE. Не считая того, при определении столбцов других ключей рекомендуется употреблять и спецификаторы NOT NULL. В каждой таблице быть может определено случайное количество конструкций UNIQUE. База данных отторгает любые пробы выполнения операций INSERT либо UPDATE, которые манят за собой создание циклического значения в любом возможном ключе (под сиим предполагается первичный либо другой ключ). к примеру, определение таблицы Viewing можно переписать последующим образом:

clientNo VARCHAR{5) NOT NULL,

propertyNo VARCHAR(S) NOT NULL,

UNIQUE (clientNo, propertyNo)

2.4.Ссылочная
целостность

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

Эталон ISO предугадывает механизм определения наружных ключей при помощи конструкции FOREIGN KEY операторов CREATE TABLE и ALTER TABLE. к примеру, для определения наружного ключа branchNo в таблице PropertyForRent можно употреблять следующуюконструкцию:

FOREIGN KEY(branchNo) REFERENCES Branch

сейчас система отклонит выполнение всех операторов INSERT либо UPDATE, при помощи которых будет предпринята попытка сделать в дочерней таблице системы, выполняемые при поступлении операторов UPDATE либо DELETE, содержащих попытку обновить либо удалить одна либо несколько строк дочерней таблицы, зависят от правил поддержки ссылочной целостности, обозначенных в системах ON UPDATE и ON DELETE конструкции FOREIGN KEY. На тот вариант, если юзер решает попытку удалить из родительской таблицы строчку, на которую ссылается одна либо несколько строк дочерней таблицы, в языке SQL предусмотрены последующие четыре допустимых варианта действий.

•CASCADE. Удаление строчки из родительской таблицы сопровождается автоматическим удалением всех ссылающихся на нее строк дочерней таблицы. Так как удаляемые строчки дочерней таблицы также могут содержать некие потенциальные ключи, применяемые в качестве наружных ключей в остальных таблицах, анализируются и используются правила обработки наружных ключей этих таблиц, активируется проверка правил обработки наружных ключей и т.д. Таковой метод выполнения операции именуется каскадным,
так как он предугадывает переход с 1-го уровня иерархии на иной.

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

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

•NO ACTION. Операция удаления строчки из родительской таблицы отвергается. Конкретно это случае использования правила CASCADE в столбцы наружного ключа дочерней таблицы помещается новое, модифицированное к примеру, в таблице PropertyForRent столбец табельного номера работника staff No является наружным ключом, ссылающимся на таблицу staff. Для этого наружного ключа можно установить правило удаления, указывающее, что в случае удаления записи о работнике из таблицы staff соответственное

FOREIGN KEY (staffNo} REFERENCES Staff ON DELETE SET NULL

Аналогичным образом, столбец с номером обладателя объекта недвижимости ownerNo таблицы PropertyForRent является наружным ключом, связывающим ее с таблицей PrivateOwner. Можно установить правило обновления, указывающее, что в случае конфигурации номера обладателя в таблице PrivateOwner надлежащие значения в столбце ownerNo таблицы PropertyForRent также должны быть изменены новеньким значением:

FOREIGN KEY {ownerNo) REFERENCES PrivateOwner ON UPDATE CASCADE

2.5.Требования данного компании

Обновления данных в таблицах могут быть ограничены существующими в данной организации требованиями (которые принято также именовать деловым регламентом),
установленными в отношении выполнения вручную операций, связанных с внесением конфигураций в информацию. К примеру, в компании DreamHome
существует правило, ограничивающее количество сдаваемых в аренду объектов, за которые может отвечать один работник, при этом верхний предел установлен равным 100 объектам. Эталон ISO дозволяет воплотить деловой регламент компаний или при помощи конструкций CHECK и главного слова UNIQUE в операторах CREATE TABLE и ALTER TABLE, или при помощи оператора CREATE ASSERTION. Внедрение конструкции CHECK и главного слова UNIQUE уже дискуссировалось выше в этом разделе. Оператор CREATE ASSERTION предназначен для введения ограничений целостности данных, которые конкретно не соединены с определениями таблиц. Этот оператор имеет последующий формат:

CREATE ASSERTION ArsercicnNane

CHECK (searchCondion);

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

CHEATS ASSERTION Staff NotHandlingTooMuch

CHECK (NOT EXISTS (SELECT staff No

FROM PropertyForRent

GROUP BY staffNo

HAVING COUNT(*} > 100))

В последующем разделе показано, как употребляются эти средства обеспечения целостности в операторах CREATE TABLE и ALTER TABLE.

3.Определение данных

язык определения данных SQL DDL [3]
(Data Definition Language) дозволяет создавать и уничтожать такие объекты базы данных, как схемы, домены, таблицы, представления и индексы. В реальном разделе коротко рассматриваются методы сотворения и удаления схем, таблиц и индексов, а в последующем разделе показано, как создавать и удалять представления. Эталон ISO предугадывает также возможность сотворения наборов знаков, схем сортировки и преобразования. Но в истинной книжке эти объекты базы данных не рассматриваются. Ниже перечислены главные операторы языка определения данных SQL.

CREATE SCHEMA

CREATE DOMAIN

CREATE TABLE

CREATE VIEW

ALTER Domain

ALTER TABLE

DROP SCHEMA

DROP Domain

DROP TABLE

DROP VIEW

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

CREATE INDEX DROP INDEX

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

3.1.Создание баз данных

В разных СУБД процедура сотворения баз данных значительно различается. В многопользовательских системах Право сотворения баз данных обычно закрепляется лишь за админом базы данных (АБД). В однопользовательских системах предусмотренная по дефлоту база данных быть может сотворена конкретно в процессе установки и опции характеристик самой СУБД, а остальные базы данных создаются самим юзером при необходимости. Эталон ISO не описывает, как должны создаваться базы данных, потому в любом из диалектов языка SQL обычно употребляется свой подход. В согласовании со эталоном ISO, таблицы и остальные объекты базы данных есть в некой среде (environment). Кроме всего остального, любая среда состоит из 1-го либо нескольких каталогов (catalog), а любой каталог — из набора схем (schema). Схема представляет собой именованную коллекцию объектов базы данных, которые определенным образом соединены друг с другом (все объекты в базе данных должны быть описаны в той либо другой схеме). Объектами схемы могут быть таблиц, представления, домены, утверждения, сравнения, толкования и наборы знаков. Все объекты схемы имеют 1-го и такого же обладателя и огромное количество общих значений, используемых по дефлоту.

Этот эталон оставляет Право выбора определенного механизма сотворения и ликвидирования каталогов за разрабом СУБД, но регламентирует механизм сотворения и удаления схем. Оператор определения схемы имеет последующий формат (упрощенно):

CREATE. SCHEMA [nаше | AUTHORIZATION Creator-Identifier]

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

CREATE SCHEMA SqlTests AUTHORIZATION Smith;

В эталоне ISO также обозначено, что обязана существовать возможность найти в рамках данного оператора спектр средств, доступных юзерам создаваемой схемы. Но определенные методы определения схожих льгот в различных СУБД различаются. Схема удаляется при помощи оператора DROP SCHEMA, который имеет последующий формат:

DROP SCHEMA Name
[ RESTRICT | CASCADE]

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

В истинное время операторы CREATE SCHEMA и DROP SCHEMA реализованы в весьма немногих СУБД.

3.2. Создание таблиц
(оператор CREATE TABLE)

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

CREATE TABLED TableName

{ (columName
data Type [NOT NULL] [UNIQUE]

[DEFAULT defaultoption]
[CHSCK (searchCondition}:] [, …] }

[PRIMARY KEY (ListOfColumns) ]

{ [UNIQUE {listOfCoIumns) ] [,. . .] }

{ [FOREIGN KEY (listOfFdreignKeyColumns)

REFERENCES ParentTabl eName [(listOfCandidateKeyColuims)
],

[MATCH FULL

[ON UPDATE. referentialAction]

[ON DELETE referential Action] } [, ,
.-.] }

{[CHECK (
searchCondtitioa
)]
[, . , , ] } )

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

В итоге выполнения этого оператора будет сотворена таблица, имя которой определяется параметром TableName,
состоящая из 1-го либо нескольких столбцов типа dataType.
Набор доступных типов данных описан в разделе 1.2. Для задания значения, используемого по дефлоту при вставке данных в определенный столбец, предусмотрена необязательная система DEFAULT. В базе данных это в
тех вариантах, если в операторе INSERT не задано определения используемого по дефлоту значения defaultoption
может включать литералы. Конструкции КОТ NULL, UNIGUE и CHECK рассматривались в прошлом разделе. Другие конструкции известны под заглавием ограничений таблицы
и могут быть добавочно обозначены при помощи последующей конструкции:

CONSTRAINT ConstraintName

Эта система дозволяет в предстоящем удалить ограничение, указав его имя в операторе ALTER TABLE, как описано ниже. Система PRIMARY KEY описывает один либо несколько столбцов, которые образуют первичный ключ таблицы. Если эта система предусмотрена в диалекте SQL, реализованном в определенной базе данных, то она обязана применяться при разработке каждой таблицы. По дефлоту для всех столбцов, представляющих первичный ключ, предвидено применение ограничения NOT NULL. При разработке таблицы разрешено внедрение лишь одной конструкции PRIMARY KEY. База данных отторгает все пробы выполнения операций INSERT либо UPDATE, которые манят за собой создание строчки с циклическим значением в столбце (столбцах) PRIMARY KEY. Таковым образом, в базе данных гарантируется неповторимость значений первичного ключа. В конструкции FOREIGN KEY определяется наружный ключ (дочерней) таблицы и ее связь с иной (родительской) таблицей. Эта система дозволяет воплотить ограничения ссылочной целостности и состоит из последующих частей.

•Перечень UstOfForeignKeyColumns,
содержащий имена 1-го либо нескольких столбцов создаваемой таблицы, которые образуют наружный ключ.

•Вспомогательная система REFERENCES, указывающая на родительскую таблицу (т.е. таблицу, в какой определен соответственный возможный ключ). Если перечень UstOfCandidateKsyCalumns
опущен, предполагается, что определение наружного ключа совпадает с определением первичного ключа родительской таблицы. В таком случае родительская таблица обязана иметь в собственном операторе CREATE TABLE систему PRIMARY KEY.

•Необязательное правило обновления (ON UPDATE) для определения связи меж таблицами, которое показывает, какое действие (referentialAction) обязано производиться при обновлении в родительской таблице потенциального ключа, соответственного наружному ключу дочерней таблицы. В качестве парамйтра referentiaJAcCion можно указать CASCADE, SET NULL, SET DEFAULT ИЛИ NO ACTION. Если КОНСТРУКЦИЯ ON UPDATE опущена, то по дефлоту предполагается, что никакие деяния не производятся, в согласовании со значением NO ACTION.

•Необязательное правило удаления (ON DELETE) для определения связи меж таблицами, которое показывает, какое действие (referentialAction) обязано производиться при удалении строчки из родительской таблицы, которая содержит возможный ключ, соответственный наружному ключу дочерней таблицы. Определение параметра referentzalAction совпадает с определением такового же параметра для правила ON UPDATE.

•По дефлоту ограничение ссылочной целостности удовлетворяется, если хоть какой компонент наружного ключа имеет значения. А если задана функция MATCH PARTIAL, то или все составляющие наружного ключа должны быть пусты (NULL), или в родительской таблице обязана существовать хотя бы одна строчка, способная удовлетворить это ограничение, если все другие значения NULL были подставлены верно. Некие создатели говорят, что в ограничениях ссылочной целостности следует использовать лишь опцию MATCH FULL.

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

3.3.Модификация определения таблицы (оператор ALTER TABLE)

В эталоне ISO предвидено применение оператора ALTER TABLE для конфигурации структуры таблицы опосля ее сотворения. Определение оператора ALTER TABLE состоит из 6 опций, позволяющих выполнить последующие деяния:

•ввести новейший столбец в таблицу;

•удалить столбец из таблицы;

•ввести новое ограничение та(5лицы;

•удалить ограничение таблицы;

•задать для столбца
используемое по умолчанию;

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

Ниже приведен главный формат
этого оператора.

ALTER TABLE TableName

[ADD [COLUMN] columneName [RESTRICT | CASCADE]]

[DROP [COLUMN] columnName [RESTRICT | CASCADE]]

[ADD [CONSTRAINT [ConstreintName]] tableConstraintDefinition]

[DROP CONSTRAINT ConstraintName [RESTRICT | CASCADE]]

[ALTER [COLUMN] SET DEFULT defaultOption]

[ALTER [COLUMN] DROP DEFAULT]

Практически все характеристики данного оператора совпадают с параметрами оператора CREATE TABLE, описанного в прошлом разделе, В качестве параметра с определением ограничения таблицы CaJbleConstraintDefinition может применяться одна из конструкций PRIMARY KKY, UNIQUE, FOREIGN KEY либо CHECK. Система ADD COLUMN подобна конструкции определения столбца в операторе CREATE TABLE. В конструкции DROP COLUMN задается имя столбца, удаляемого из определения таблицы, и имеется необязательная функция, позволяющая указать, является ли действие операции DROP каскадным либо нет, как показано ниже.

•RESTRICT, Операция DROP отвергается, если на данный столбец имеется ссылка в другом объекте базы данных (к примеру, в определении представления). Это

•CASCADE. Выполнение операции DROP длится в любом случав и ссылки на столбец автоматом удаляются из всех объектов базы данных, где они имеются. Эта операция производится каскадно, потому если столбец удаляется из объекта, содержащего ссылку, то в базе данных производится проверка того, имеются ли ссылки на этот столбец я каком-либо ином объекте, такие ссылки уничтожаются и в этом объекте, и т.д.

3.4.Удаление таблиц (оператор DROP TABLE)

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

DROP TABLE.TableWame [RESTRICT I CASCADE]

к примеру, для удаления таблицы PropertyForRent можно употреблять последующий оператор:

DROP TABLE PropertyForRent;

Но необходимо подчеркнуть, что эта команда удалит не только лишь обозначенную таблицу, да и все входящие в нее строчки данных. Если требуется удалить из таблицы только строчки данных, сохранив в базе описание самой таблицы, то следует употреблять оператор DELETE. Оператор DROP TABLE добавочно дозволяет указывать, следует ли операцию удаления делать каскадно.

•RESTRICT. Операция DROP отвергается, если в базе данных имеются остальные объекты, существование которых зависит от того, существует ли в базе данных удаляемая таблица.

•CASCADE. Операция DROP длится, и из базы данных автоматом удаляются все зависимые объекты (и объекты, зависящие от этих объектов).

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

3.5.Создание индекса (оператор CREATE INDEX)

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

CREATE [UNIQUE] INDEX IndexName

ON TableName (columnName [ASC| DESC] [, ….])

Обозначенные в операторе столбцы составляют ключ индекса и должны быть перечислены в порядке уменьшения значимости. Индексы могут создаваться лишь для таблиц базы данных, но не для представлений. Если в операторе обозначено ключевое слово UNIQUE, неповторимость значений ключа индекса будет автоматом поддерживаться СУБД. Требование уникальности значений непременно для первичных ключей, также, может быть, и для остальных столбцов таблицы (к примеру, для других ключей). Хотя создание индексов осуществимо в хоть какой момент, при построении индекса для уже заполненной данными таблицы могут появиться задачи, связанные с дублированием данных в разных строчках. Как следует, имеет смысл создавать неповторимые индексы (по последней мере для первичного ключа) конкретно при разработке таблицы. В итоге система сходу же возьмет на себя контроль над уникальностью значений данных в соответственных столбцах.

Для таблиц Staff и PropertyForRent должны быть сделаны, по последней мере, последующие индексы:

CREATE UNIQUE INDEX ScaffNoInd ON Staff (staffNo);

CREATE UNIQUE INDEX PropertyNoInd ON PropertyForRent (propertyNo);

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

CREATE INDEX Rentlnd ON PropertyForRent (city, rent) ,-

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

3.6.Удаление индекса (оператор
DROP INDEX)

Если для таблицы базы данных был сотворен индекс, который потом оказался ненадобным, то его можно удалить при помощи оператора DROP INDEX. Этот оператор имеет последующий формат:

DROP INDEX JndexWame

При помощи приведенного ниже оператора будет удален индекс, сделанный в прошлом примере.

DROP INDEX Rentlnd;

4.Представления

Динамически сформированный итог одной либо нескольких реляционных операций, выполненных над отношениями базы данных с целью получения новейшего дела. запрос, лежащий в базе представления, в эквивалентный запрос к таблицам, использованным в определении представления, опосля что измененный запрос производится. Этот процесс слияния запросов, именуемый подменой представления
(под сиим предполагается подмена представления оператором SQL, который обращается к базисным таблицам). При втором подходе, который именуется материализацией представления,
готовое часть коммерческих реализаций языка SQL (но не все) поддерживает эту модель, которая в первый раз была реализована в СУБД DB2 компании IBM. Транзакцией
именуется логическая единица работы, состоящая из 1-го либо нескольких операторов SQL, которая исходя из убеждений восстановления данных будет рассматриваться и обрабатываться системой как единое неразделимое действие. В эталоне указывается, что в языке SQL транзакция автоматом запускается хоть каким инициализирующим транзакцию
оператором SQL, выполняемым юзером либо программкой (к примеру, SELECT, INSERT либо UPDATE). Конфигурации, внесенные в базу данных в процессе выполнения транзакции, не будут восприниматься хоть какими иными выполняющимися параллельно транзакциями до того времени, пока эта транзакция не будет очевидным образом завершена. Окончание транзакции быть может выполнено одним из последующих 4 методов.

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

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

•При внедрении операторов SQL в текст программки успешное окончание ее работы автоматом вызовет окончание крайней запущенной программкой транзакции, даже если оператор COMMIT для нее не был введен очевидно.

•При внедрении операторов SQL в текст программки аварийное окончание ее работы автоматом вызовет откат крайней транзакции, запущенной данной программкой.

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

SET’ TRANSACTION

[READ ONLY |
READ WRITS} |

[ISOLATION LEVEL READ UNCOMMITTED READ COMMITTED

REPEATABLE READ | SERIALIZABLE3]

Квалификаторы READ ONLY и READ WRITE указывают, что в транзакциях допускается выполнение лишь операций чтения либо чтения и записи. По дефлоту предполагается внедрение квалификатора READ WRITE (если лишь не избран уровень изоляции READ UNCOMMITTED). возможно, почти всех смутит тот факт, что в режиме READ ONLY в транзакциях допускается выдача операторов INSERT, UPDATE и DELETE для временных таблиц (но лишь для временных). Показатель уровня изоляции описывает ту степень взаимодействия с иными транзакциями, которая допускается при выполнении транзакции. Сведения о ограничениях в отношении сериализации (определения порядка следования) результатов выполнения транзакций для всякого из имеющихся уровней изоляции приведены в
табл. 3.

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

6.Управление доступом к данным

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


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

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

•SELECT — Право выбирать данные из таблицы;

•INSERT — Право вставлять в таблицу новейшие строчки;

•UPDATE — Право изменять данные в таблице;

•DELETE — право удалять строчки из таблицы;

•REFERENCES — Право ссылаться на столбцы обозначенной таблицы в описаниях требований поддержки целостности данных;

•USAGE — Право употреблять домены, проверки, наборы знаков и трансляции. Понятия проверок, наборов знаков и трансляций не рассматриваются в данной книжке. Привилегии INSERT и UPDATE могут ограничиваться только отдельными столбцами таблицы; в этом случае юзер может видоизменять значения обозначенных столбцов, но не изменять значения других столбцов таблицы. Аналогичным образом, преимущество REFERENCES может распространяться лишь на отдельные столбцы таблицы, что дозволит употреблять их имена в формулировках требований защиты целостности данных (к примеру, в системах CHECK и FOREIGN KEY), входящих в определения остальных таблиц, тогда как применение для схожих целей других столбцов будет запрещено.

Когда юзер при помощи оператора CREATE TABLE делает новейшую таблицу, он автоматом становится ее обладателем и получает по отношению к ней полный набор льгот. Другие юзеры сначало не имеют каких-то льгот в отношении вновь сделанной таблицы. Чтоб обеспечить доступ к ней, обладатель должен очевидным образом предоставить им нужные права, для что употребляется оператор GRANT.

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

Заключение

Эталон ISO предугадывает внедрение восьми базисных типов данных: логических, символьных и битовых строк, четких и округлых чисел, даты/времени и временного интервала, также символьных и двоичных огромных объектов.

Операторы языка SQL DDL разрешают создавать новейшие объекты базы данных. Операторы CREATE и DROP SCHEMA разрешают создавать и удалять схемы. Операторы CREATE, ALTER и DROP TABLE обеспечивают создание, модификацию и удаление таблиц базы данных. Операторы CREATE и DROP INDEX разрешают создавать и удалять индексы для обозначенной таблицы.

Эталон ISO языка SQL предугадывает внедрение в операторах CREATE TABLE и ALTER TABLE особых конструкций, созданных для определения требований поддержки целостности данных, к которым относятся условие обязательности наличия данных; ограничения для доменов атрибутов; требования поддержки целостности сущностей; требования поддержки ссылочной целостности данных и требования (бизнес-правила) данного компании. Обязательность наличия данных указывается при помощи главного слова NOT NULL. Ограничения для доменов атрибутов задаются или при помощи конструкций CHECK, или средством сотворения соответственных доменов при помощи операторов CREATE Domain. Первичные ключи определяются при помощи конструкции PRIMARY KEY, а другие ключи описываются при помощи композиции главных слов NOT NULL и описателей UNIQUE. Наружные ключи описываются при помощи конструкции FOREIGN KEY, также задания правил удаления и обновления с внедрением конструкций ON UPDATE и ON DELETE. бизнес-правила компании могут быть заданы при помощи конструкций CHECK и UNIQUE. Ограничения, определяемые самим предприятием, могут быть также сделаны при помощи оператора CREATE ASSERTION.

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

В языке SQL управление доступом к данным выстроено на базе концепций идентификаторов юзеров, прав владения и предоставления льгот. Идентификаторы юзеров назначаются всем юзерам базы данных ее админом (АБД) и предусмотрены для идентификации отдельных юзеров. Любой создаваемый в базе данных объект SQL имеет собственного обладателя. Обладатель объекта может предоставить остальным юзерам базы данных те либо другие привилегии доступа к данному объекту, для что употребляется оператор G^ANT. Предоставленные привилегии могут быть потом отменены при помощи оператора REVOKE. К предоставляемым привилегиям относятся USAGE, SELECT, DELETE, INSERT, UPDATE и REFERENCES, при этом три крайние могут быть ограничены отдельными столбцами таблицы либо представления. Юзеру быть может предоставлено Право передавать приобретенные им привилегии остальным юзерам базы данных по его собственному усмотрению, для что употребляется система WITH GRANT OPTION. Этот режим быть может отменен при помощи конструкции GRANT OPTION FOR оператора REVOKE.

Глоссарий

№ пп

Новое понятие

Содержание

1

SQL

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

2

SELECT

Право выбирать данные из таблицы

3

INSERT

Право вставлять в таблицу новейшие строчки

4

UPDATE

Право изменять данные в таблице

5

DELETE

право удалять строчки из таблицы

6

REFERENCES

Право ссылаться на столбцы обозначенной таблицы

7

USAGE

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

8

ISO

Интернациональная Организация по Стандартизации

9

СУБД

Система Управления Базами Данных

10

Базы данных

Набор инфы, организованной тем, либо другим методом

Библиографический перечень

1- Атре Ш. Структурный подход к организации баз данных – деньги и статистика, 2005.

2- Бойко В. В., Савинков В.М. Проектирование баз данных информационных систем. – М.: деньги и статистика, 2006.

3- Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. – М.: мир. 2007.

4- Дейт К. Управление по реляционной СУБД DB2. – М.: деньги и статистика, 2005.

5- Документация Microsoft SQL Server 2007.

6- Документация Microsoft Office Access 2007.

7- Когаловский М.Р. Энциклопедия технологий баз данных. – М.: деньги и статистика, 2005.

8- Конноли Т., Бегг Л., Страчан А. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. Вильямс 2003.

9- Мамаев Е. Microsoft SQL Server 2000 – СПБ.: БХВ-Петербург, 2004.

10- Материалы веб-сайта «Сервер информационных технологий» WEB: www.citforum.ru

приложение А

Тип данных

Объявления

boolean

(Логический)

BOOLEAN

character

(Символьный)

CHAR VARCHAR

bit

(Битовый)

BIT

BIT VARYING

exact numeric

(Четкие числа)

NUMERIC

DECIMAL

INTEGER

SMALLINT

approximate numeric

(Округлые числа)

FLOAT

REAL

DOUBLE

PRECISION

datetime

(Дата/время)

DATE

TIME

TIMESTAMP

interval

(Интервал)

INTERVAL

LOB

(большенный объект)

CHARACTER

LARGE

OBJECT

BINARY

приложение Б

Оператор Предназначение

Оператор Предназначение

BIT_LENGTH

Возвращает длину данной строчки в битах. к примеру, итог вычисления выражения BIT_LENGTH(X’FFFF’) равен 16

OCTET_LENGTH

Возвращает длину данной строчки в октетах (длина в битах, деленная на 8}. к примеру, итог вычисления выражения OCTET_LENGTH (X’FFFF’) равен 2

CHAR__LENGTH

Возвращает длину данной строчки в знаках(либо в октетах, если строчка является битовой). к примеру, итог вычисления выражения CHAR_LENGTH ( ‘ Beech’) равен 5

CAST

Конвертирует

| |

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

CURRENTJJSER ИЛИ USER

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

SESSION_User

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

SYSTEMJJSER

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

LOWER

Функция конвертирует в данной строке все строчные буковкы в строчные. к примеру, в итоге вычисления выражения

LOWER(SELECT fName FROM Staff WHERE staffNo = ‘SL21’) будет получено

UPPER

Функций конвертирует в данной строке все строчные буковкы в строчные. к примеру, в итоге вычисления выражения UPPER(SELECT fName FROM Staff WHERE staffNo = SL21′) будет получено

TRIM

Функция удаляет обозначенные ведущие (LEADING), конечные (TRAILING) либо те и остальные (BOTH) знаки из данной строчки. к примеру, вычисление выражения TRIM (BOTHactiveXFROM ‘ *** Hello World * * * ‘ ) даст итог ‘Hello World1

POSITION

Функция возвращает позицию одной строчки в иной строке. К примеру, в итоге вычисления выражения POSITION (‘ ее’ IN ‘Beech’) будет получено

SUBSTRING

Функция делает выделение подстроки из данной строчки. к примеру, в итоге вычисления выражения SUBSTRING!’Beech’ FROM 1 то з) будет получено

EXTRACT

Функция возвращает значения типа даты, времени либо интервала. В качестве примера можно указать Выражение EXTRACT(YEAR FROM Registration.dateJoined)

CASE

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

CASE type

WHEN ‘House’ THEN 1

WHEN ‘Flat’ THEN 2

ELSE 0

END

CURRENT_DATE

Функция вознращаеттекущую датутого часового пояса, в каком

находится юзер

CURRENTJTIME

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

CURRENT_TIME_STAMP

функция воз зращает текущую дату и время того часового пояса,

который в истинное время применяется по дефлоту для

текущего сеанса. к примеру, выражение CURRENT_TIMESTAMP(O)

вернет временную отметку с точностью до целых секунд

приложение В

Уровень изоляции

Чтение мусора

Не
повторяемость

чтения

Существование

фантомных значений

HEAD UNCOMMITTED

Да

Нет

Нет

READ COMMITTED

Нет

Да

Да

REPEATABLE READ

Нет

Нет

Да

SERIALISABLE

Да

Да

Нет

[1]
конференция по языкам систем обработки данных

[2]
особая разработка выпуска деловых отчетов

[3]
язык управления данными

]]>