- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Таблица A
- •Таблица A
- •Таблица A
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
Элементы языка SQL
Средства определения схемы БД
Ограничения целостности
Ограничения целостности бывают двух видов:
Накладываемые на отдельный столбец;
Накладываемые на всю таблицу.
При наложении на отдельный столбец :
TOVAR VARCHAR(20) NOT NULL PRIMARY KEY, …
При наложении ограничений на таблицу :
CREATE TABLE … (
TOVAR VARCHAR(20) NOT NULL
…
PRIMARY KEY (TOVAR) );
Элементы языка SQL
Средства определения схемы БД
Первичные и уникальные (альтернативные) ключи
На уровне столбцов:
CREATE TABLE VLADLIM (
KODVLAD INTEGER NOT NULL PRIMARY KEY, NAZVVLAD VARCHAR(50) NOT NULL UNIQUE
);
На уровне таблицы:
CREATE TABLE VLADLIM ( KODVLAD INTEGER NOT NULL,
NAZVVLAD VARCHAR(50) NOT NULL, PRIMARY KEY ( KODVLAD),
UNIQUE ()NAZVVLAD) );
Элементы языка SQL
Средства определения схемы БД
Внешний ключ и определение ссылочной целостности
Внешний ключ строится в дочерней таблице. Описание формата:
[CONSTRAINT <имя ссылочной целостности>] FOREIGN KEY ( <список столбцов внешнего ключа>) REFERENCES <имя родительской таблицы>
[ <список столбцов родительской таблицы > ]
[ON DELETE { NO ACTION | CACADE | SET DEFAULT | SET NULL}] [ON UPDATE { NO ACTION | CACADE | SET DEFAULT | SET NULL}]
Элементы языка SQL
Средства определения схемы БД
Внешний ключ и определение ссылочной целостности
Пример:
CREATE TABLE P (
PK_FIELD INTEGER NOT NULL, OTHER FIELD INTEGER,
PRIMARY KEY (PK_FIELD)
); |
|
CREATE TABLE F ( |
|
PK_FIELD1 |
INTEGER NOT NULL, |
PK_FIELD2 |
INTEGER NOT NULL, |
SOME_FIELD INTEGER,
PRIMARY KEY (PK_FIELD1,PK_FIELD2),
FOREIGN KEY (PK_FIELD1) REFERENCES P
ON UPDATE CASCADE
);
Элементы языка SQL
Средства определения схемы БД
Требования к значениям столбцов
Примеры фрагментов ограничений:
CREATE TABLE PERSON _PARAMS ( ID_INTEGER NOT NULL PRIMARY KEY, HEIGHT INTEGER NOT NULL,
WIEGHT INTEGER NOT NULL CHECK (HEIGHT > WIEGHT)
);
---------------------------------------------------------------------------------
CREATE TABLE RASHOD (
…
CONSTRAINT PO_DATE_RASH
CHECK (EXISTS (SELECT TOVAR FROM PRIHOD
WHERE PROHOD.TOVAR=RASHOD.TOVAR))
);
------------------------------------------------------------------------------
-Столбец должен содержать сочетание символов USD
….CHECK (STOLBEZ CONTAINING “USD”)
-Столбец должен начинаться с сочетания символов USD
…. CHECK (STOLBEZ STARTING WITH “USD”)
Элементы языка SQL
Средства определения схемы БД
Изменение объявлений таблицы
Оператор ALTER TABLE позволяет:
1.Добавить определение нового столбца
ALTER TABLE <имя таблицы> ADD <определение столбца>;
2.Удалить столбец из таблицы
ALTER TABLE <имя таблицы> DROP <имя столбца1> [,<имя столбца2>…
3 . Удалить атрибуты целостности таблицы или отдельного столбца
ALTER TABLE <имя таблицы> DROP <имя ограничения целостности>
4.Добавить новые ограничения целостности
ALTER TABLE <имя таблицы> ADD [CONSTRAINT <имя ограничения>] <определение целостности>;
Элементы языка SQL
Средства определения схемы БД
Удаление таблицы
Удаление таблицы целиком:
DROP TABLE <имя таблицы>
Элементы языка SQL
Работа с индексами
Логическое разделение на ключи индексы
Логический уровень
•Первичный ключ выполняет функцию однозначной идентификации записи в таблицы. Первичный и внешний ключи строятся для обеспечения ссылочной целостности реляцинно-связанных таблиц.
•Индексы служат для сортировок и оптимизации доступа к данным
Физический уровень
•Все ключи и индексы преобразуются в физические индексы - специальный механизм, обеспечивающий быстрый доступ к данным.
Элементы языка SQL
Необходимость создания индексов
Индексы необходимо создавать в случае, когда по столбцу или группе столбцов:
•Часто производится поиск в БД;
•Часто строятся объединения таблиц;
•Часто производится сортировка;
•Часто производится сортировка;
Не рекомендуется строить индексы по столбцам или группам столбцов, которые:
•Редко используются для поиска, объединения , сортировки результатов запроса
•Часто меняют значение, что приводит к необходимости часто обновлять индекс и способно существенно замедлить скорость работы с БД;
•Содержит небольшое число вариантов значения
Элементы языка SQL
Работа с индексами
Логическое разделение на ключи индексы
Пример:
CREATE TABLE SOTR (
ID_SOTR INTEGER NOT NULL,
OTDEL VARCHAR (10),
DOLGNOST CHAR (10),
FIO VARCHAR(25),
PRIMARY KEY (ID_SOTR));
CREATE INDEX DLJ ON SOTR (DOLGNOST);
Именоваться индексы будут так :
DLJ INDEX ON SOTR (DOLGNOST)
RDB$PRIMARY18 UNIQUE INDEX ON SOTR (ID_SOTR)