ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.04.2021
Просмотров: 1516
Скачиваний: 4
11
Из
э тих
св ойств
отношения
в ытека ют
след ующ ие
в а жные
след ств ия
.
•
Из
уника льности
кортежей
след ует
,
ч то
в
отношении
в сегд а
имеется
а тр ибут
или
на бор
а трибутов
,
п оз в оляющ их
и д ент и ф и ци р о в а т ь
кортеж
,
д ругими
слов а ми
в
отношении
в сегда
есть
п ер в ич ный
ключ
.
•
Из
неуп оряд оч енности
кортежей
след ует
,
в о
-
п ерв ых
,
ч то
в
отношении
не
сущ еств ует
д ругого
сп особа
а д реса ции
кортежей
,
кроме
а д реса ции
по
ключу
,
в о
-
в торых
,
ч то
в
отношении
не
сущ еств ует
та ких
п онятий
ка к
п ерв ый
кортеж
,
п ослед ний
,
п ред ыд ущ ий
,
след ующ ий
и
т
.
д
.
•
Из
неуп оряд оч енности
а трибутов
след ует
,
ч то
ед инств енным
сп особом
их
а д реса ции
в
з а п роса х
яв ляется
исп ользов а ние
на именов а ния
а тр ибута
.
О тносительно
св ойств а
реляционного
отношения
,
ка са ющ егося
отсутств ия
кортежей
-
д ублика тов
,
след ует
сд ела ть
в а жное
з а меч а ние
.
В
э том
п ункте
SQL
не
п олностью
соотв етств ует
реляционной
мод ели
.
А
именно
,
в
отношениях
,
яв ляющ ихся
рез ульта та ми
з а п росов
, SQL
д о пуска ет
на лич ие
од ина ков ых
строк
.
Д ля
их
устранения
в
з а п росе
исп ользуется
ключ ев ое
слов о
DISTINCT
(
см
.
ниже
).
Информа ция
в
реляционных
ба з а х
д а нных
,
ка к
п ра в ило
,
хранится
не
в
од ной
та блице
-
отношении
,
а
в
нескольких
.
При
соз д а нии
нескольких
та блиц
в з а имосв яз а нной
информа ции
п ояв ляется
в оз можность
в ып олнения
более
сложных
оп ераций
с
д а нными
,
то
есть
более
сложной
обработки
д а нных
.
Д ля
работы
со
св яз а нными
д а нными
из
нескольких
та бл иц
в а жным
яв ляется
п онятие
та к
на з ыв а емых
в неш ни х
ключей
.
Внеш ни м
ключо м
та блицы
на з ыв а ется
а трибут
или
на бор
а трибутов
э той
та блицы
,
ка жд ое
з на ч ение
которых
в
текущ ем
состоянии
та блицы
в сегд а
сов п а д а ет
со
з на ч ением
а трибутов
,
яв л яющ ихся
ключ ом
,
в
д ругой
та блице
.
Внешние
ключ и
исп ользуются
д ля
св яз ыв а ния
з на ч ений
а трибутов
из
раз ных
та блиц
.
С
п омощ ью
в нешних
ключ ей
обесп еч ив а ется
та к
на з ыв а ема я
ссылоч на я
целостность
ба з ы
д а нных
,
то
есть
согла сов а нность
д а нных
,
оп исыв а ющ их
од ни
и
те
же
объекты
,
но
хр а нящ ихся
в
раз ных
та блица х
.
12
1.2.
О т л ичие
SQL
от
проц едурны х
я з ы ков
програм м ирования
Я з ык
SQL
относится
к
кла ссу
неп роцед урных
яз ыков
п рогра ммиров а ния
.
В
отлич ие
от
унив ерса льных
п роцед урных
яз ыков
,
которые
та кже
могут
быть
исп ользов а ны
д ля
работы
с
ба з а ми
д а нных
,
яз ык
SQL
ориентиров а н
не
на
за пи си
,
а
на
м но ж ест в а
.
Э то
оз на ч а ет
след ующ ее
.
В
ка ч еств е
в ход ной
информа ции
д ля
формулируемого
на
яз ыке
SQL
з а п роса
к
ба з е
д а нных
исп ользуется
м но ж ест в о
ко р т еж ей
-
за пи сей
од ной
или
нескольких
та блиц
-
отношений
.
В
результа те
в ып олнения
з а п роса
та кже
образ уется
м но ж ест в о
ко р т еж ей
результирующ ей
та блицы
-
отношения
.
Д ругими
слов а ми
,
в
SQL
р езульта том
любой
оп ера ции
на д
отношениями
та кже
яв ляется
отношение
.
За п рос
SQL
з а д а ет
не
п р оцед уру
,
то
есть
п ослед ов а тельность
д ейств ий
,
необход имых
д ля
п олуч ения
рез ульта та
,
а
услов ия
,
которым
д олжны
уд ов летв орять
кортежи
результирующ его
отношения
,
сформулиров а нные
в
термина х
в ход ного
(
или
в ход ных
)
отношений
.
1.3.
И нт еракт ивны й
и
встроенны й
SQL
Сущ еств уют
и
исп ользуются
д в е
формы
яз ыка
SQL:
и нт ер а кт и в ны й
SQL
и
в ст р о енны й
SQL
.
Инт ер а кт и в ны й
SQL
исп ользуется
д ля
неп осред ств енного
в в од а
SQL-
з а п росов
п ользов а телем
и
п олуч ения
результа та
в
интер а ктив ном
режиме
.
Вст р о енны й
SQL
состоит
из
кома нд
SQL,
в стр оенных
в нутрь
п рограмм
,
которые
обыч но
на п иса ны
на
некотором
д ругом
яз ыке
(
Па ска ль
,
С
,
С
++
и
д р
.).
Э то
д ела ет
п рогра ммы
,
на п иса нные
на
та ких
яз ыка х
,
более
мощ ными
,
гибкими
и
э ффектив ными
,
обесп еч ив а я
их
п р именение
д ля
работы
с
д а нными
,
хранящ имися
в
реляционных
ба з а х
.
Пр и
э том
,
од на ко
,
требуются
д оп олнительные
сред ств а
обесп еч ения
интер фейса
SQL
с
яз ыком
,
в
который
он
в страив а ется
.
Д а нна я
книга
п осв ящ ена
интера ктив ному
SQL,
п оэ тому
в
ней
не
обсужд а ются
в оп росы
п остроения
интерфейса
,
п оз в оляющ его
св яз а ть
SQL
с
д ругими
яз ыка ми
п рограммиров а ния
.
13
1.4.
С оставны е
части
SQL
И
интерактив ный
,
и
в строенный
SQL
п од раз д еляются
на
след ующ ие
соста в ные
ч а сти
.
Язы к
О пр ед елени я
Д а нны х
–
DDL
(Data Definition Language),
д а ет
в оз можность
соз д а ния
,
из менения
и
уд а ления
раз лич ных
объектов
ба з ы
д а нных
(
та блиц
,
инд ексов
,
п ользов а телей
,
п рив илегий
и
т
.
д
.).
К
ч ислу
д оп олнительных
функций
яз ыка
оп ред еления
д а нных
DDL
могут
быть
в ключ ены
сред ств а
оп ред еления
огранич ений
целостности
д а нных
,
оп ред еления
п оряд ка
структур
хранения
д а нных
,
оп иса ния
э лементов
физ ич еского
уров ня
хра нения
д а нных
.
Язы к
О бр а бо т ки
Д а нны х
–
DML (Data Manipulation Language),
п ред оста в ляет
в оз можность
в ыборки
информа ции
из
ба з ы
д а нных
и
ее
п реобра з ов а ния
.
Тем
не
менее
,
э то
не
д в а
р а з лич ных
яз ыка
,
а
комп оненты
ед иного
SQL.
14
1.5.
Т ипы
данны х
SQL
В
яз ыке
SQL
имеются
сред ств а
,
п оз в ол яющ ие
д ля
ка жд ого
а трибута
ука з ыв а ть
тип
д а нных
,
которому
д олжны
соотв етств ов а ть
в се
з на ч ения
э того
а трибута
.
След ует
отметить
,
ч то
оп ред еление
тип ов
д а нных
яв ляется
той
ч а стью
,
в
которой
коммерч еские
реа лиз а ции
яз ыка
не
п олностью
согла суются
с
требов а ниями
официа льного
ста нд а р та
SQL.
Э то
объясняется
,
в
ч а стности
,
жела нием
сд ела ть
SQL
сов местимым
с
д ругими
яз ыка ми
п рогра ммиров а ния
.
1.5.1.
Т ип
данны х
“строка
сим вол ов”
Ста нд а р т
п од д ержив а ет
только
од ин
тип
д ля
п ред ста в ления
текста
:
CHARACTER(CHAR)
.
Э тот
тип
д а нных
п ред ста в ляет
собой
симв ольные
строки
фиксиров а нной
д лины
.
Е го
синта ксис
имеет
в ид
:
CHARACTER
[(
д ли на
)]
или
CHAR
[(
д ли на
)].
Текстов ые
з на ч ения
п оля
та блицы
,
д ля
которого
оп ред елен
тип
CHAR
,
имеют
ф и кси р о в а нную
д лину
,
которая
оп ред еляется
п а р а метром
д ли на
.
Э тот
п а р а метр
может
п ринима ть
з на ч ения
от
1
д о
255,
то
есть
строка
может
сод ержа ть
д о
255
симв олов
.
Е сли
в о
в в од имой
в
п оле
текстов ой
конста нте
фа ктич еское
ч исло
симв олов
меньше
ч исла
,
оп ред еленного
п а р а метром
д ли на
,
то
э та
конста нта
а в тома тич ески
д оп олняется
сп ра в а
п робела ми
д о
з а д а нного
ч исла
симв олов
.
Н екоторые
реа лиз а ции
яз ыка
SQL
п од д ер жив а ют
в
ка ч еств е
тип а
д а нных
строки
п еременной
д лины
.
Э тот
тип
может
обоз на ч а ться
ключ ев ыми
слов а ми
VARCHAR()
,
CHARACTER
VARYING
или
CHAR
VARYING()
.
О н
оп исыв а ет
текстов ую
строку
,
которая
может
иметь
пр о и зв о льную
д лину
д о
оп ред еленного
конкретной
реа лиз а цией
SQL
ма ксимума
(
в
Oracle
д о
2000
симв олов
).
В
отлич ие
от
тип а
CHAR
в
э том
случ а е
п ри
в в од е
текстов ой
конста нты
,
фа ктич еска я
д лина
которой
меньше
з а д а нной
,
не
п роиз в од ится
ее
д оп олнения
п робела ми
д о
з а д а нного
ма ксима льного
з на ч ения
.
К онста нты
,
имеющ ие
тип
CHARACTER
и
VARCHAR
,
в
в ыр а жениях
SQL
з а ключ а ются
в
од иноч ные
ка в ыч ки
,
на п ример
‘
т екст
’
.
15
След ующ ие
п ред ложения
э кв ив а лентны
:
VARCHAR
[(
д ли на
)],
CHAR
VARYING
[(
д ли на
)],
CHARACTER
VARYING
[(
д ли на
)]
Е сли
д лина
строки
не
ука з а на
яв но
,
она
п ола га ется
рав ной
од ному
симв олу
в о
в сех
случ а ях
.
По
ср а в нению
с
тип ом
CHAR
тип
д а нных
VARCHAR
п оз в оляет
более
э кономно
исп ользов а ть
п а мять
,
в ыд еляемую
д л я
хранения
текстов ых
з на ч ений
,
и
ока з ыв а ется
более
уд обным
п ри
в ып олнении
оп ераций
св яз а нных
со
срав нением
текстов ых
конста нт
.
1.5.2.
Числ овы е
т ипы
данны х
Ста нд а р тными
ч ислов ыми
тип а ми
д а нных
SQL
яв ляются
:
•
INTEGER
–
исп ользуется
д ля
п ред ста в ления
целых
ч исел
в
д иа п а з оне
от
–
2
31
д о
+2
31
.
•
SMOLLINT
–
исп ользуется
д ля
п р ед ста в ления
целых
ч исел
в
д иа п а з оне
меньшем
,
ч ем
д ля
INTEGER
,
а
именно
–
от
–
2
15
д о
+2
15
.
•
DECIMAL
(
т о чно ст ь
[,
м а сш т а б
])
–
д есятич ное
ч исло
с
фиксиров а нной
точ кой
,
точ ность
ука з ыв а ет
,
сколько
з на ч а щ их
цифр
имеет
ч исло
.
М а сшта б
ука з ыв а ет
ма ксима льное
ч исло
цифр
сп рав а
от
точ ки
•
NUMERIC
(
т о чно ст ь
[,
м а сш т а б
])
–
д есятич ное
ч исло
с
фиксир ов а нной
точ кой
,
та кое
же
,
ка к
и
DECIMAL
.
•
FLOAT
[(
т о чно ст ь
)]
–
ч исло
с
п ла в а ющ ей
точ кой
и
ука з а нной
минима льной
точ ностью
.
•
REAL
–
ч исло
та кое
же
,
ка к
п р и
тип е
FLOAT
,
з а
исключ ением
того
,
ч то
точ ность
уста на в лив а ется
п о
умолч а нию
в
з а в исимости
от
конкр етной
реа лиз а ции
SQL
.
•
DOUBLE PRECISION
–
ч исло
та кое
же
,
ка к
и
REAL
,
но
точ ность
в
д в а
раз а
п рев ыша ет
точ ность
д ля
REAL
.
СУ Б Д
Oracle
исп ользует
д оп олнительно
тип
д а нных
NUMBER
д ля
п ред ста в ления
в сех
ч ислов ых
д а нных
,
целых
,
с
фиксиров а нной
или