
- •Введение
- •Часть 1
- •Глава 1 модели данных
- •Уровни моделей данных
- •1 Инфологические модели данных
- •1.1 Диаграмма Бахмана
- •1.2 Модель «сущность-связь»(er)
- •Нотация Мартина
- •Нотация idef1x
- •Нотация Баркера
- •2. Даталогические модели
- •2.1. Документальные модели
- •2.1.1. Ориентированные на формат документа
- •2.1.2. Дескрипторные модели
- •2.1.3. Тезаурусные модели
- •2.2. Фактографические модели
- •2.2.1. Теоретико-графовая модель
- •2.2.1.1. Иерархическая модель
- •2.2.1.2. Сетевая модель
- •2.2.2. Теоретико-множественные модели
- •2.2.2.1. Реляционная модель
- •Правила Теда Кодда
- •2.2.2.2. Бинарных ассоциаций
- •2.2.3. Объектно-ориентированные модели
- •3. Физические модели
- •3.1. Модели, основанные на файловых структурах
- •3.2. Модели, основанные на странично-сегментной организации
- •Известные сетевые субд:
- •Глава 2. Проектирование баз данных
- •1.1. Избыточность данных и аномалии обновления
- •1.2. Функциональные зависимости
- •1.3. Нормальные формы и схемы выполнения нормализации
- •1) 1Нф.
- •2) 2Нф.
- •3) 3Нф.
- •4) Нфбк (нормальная форма Бойса-Кодда).
- •5) 4Нф.
- •6) 5Нф.
- •1.4 Синтез реляционных баз данных
- •1.5 Пример синтеза
- •1.6 Пример декомпозиции
- •Часть 2
- •Реляционная алгебра
- •Введение
- •Стандартные реляционные операции
- •Свойства стандартных операций
- •Специальные операции
- •Язык sql как стандартный язык баз данных
- •Введение в sql
- •2.1.1 Функциональные возможности sql
- •2.2 Создание баз данных
- •2.2.1 Оператор create database
- •2.3 Удаление баз данных
- •2.4.3 Размер поля
- •2.4.4 Тип поля
- •2.5 Удаление таблиц
- •2.5.1 Оператор drop table
- •2.6. Данные и записи данных
- •2.6.1 Оператор select
- •2.6.2 Оператор distinct
- •2.6.3 Оператор from { таблица [ псевдоним ] } [,...]
- •2.6.4 Оператор where (условие)
- •2.6.5 Оператор group by { поле | Integer } [,...]
- •2.6.6 Оператор having( условие)
- •2.6.7 Оператор order by { поле | Integer [ asc|desc ] } [,...]
- •2.6.8 Оператор union [all] select-команда
- •2.6.9 Оператор intersect [all] select-команда
- •2.6.10 Оператор except [all] select-команда
- •2.6.11 Into { temp | scratch } таблица
- •2.6.12 Insert - добавлять данные
- •2.6.13 Values ( константа [,...] )
- •2.6.18 Unload - выгрузить данные в текстовый файл
- •2.7 Операторы
- •2.7.3 Арифметические операторы
- •2.7.4 Приоритеты операторов
- •2.8 Функции
- •2.8.3 Текстовые функции
- •2.8.4 Функции работы с временем и датами
- •2.8.5 Вспомогательные функции
- •2.9 Виды на таблицы данных (Просмотры)
- •2.9.1Create view - создать новый вид на таблицу данных
- •2.9.2 Drop view - удалить вид на таблицу данных
- •2.10 Пользовательские процедуры
- •2.10.1 Create procedure - создать пользовательскую процедуру
- •2.10.2 Dba
- •2.10.3 References { byte | text }
- •2.10.4 Default { Wert | null }
- •2.10.5 Returning { Feldtyp | references { byte | text } }
- •2.10.6 Drop procedure - удалить процедуру
- •2.12.2 Нормальный текст
- •1999 - Sql-99, sql-3 (iso/iec 9075:1999(e) Information technology - Database languages - sql)
- •2003 - Sql-2003
- •4. Виды систем баз данных
- •4.1.Oracle
- •4.1.1 Типы данных
- •4.1.1.1.Символьные типы
- •4.1.1.2.Числовые типы
- •Даты, временные метки и интервалы
- •4.1.1.3.Логические типы
- •Двоичные данные
- •4.1.1.4.Типы данных для сети Интернет
- •4.1.1.5.Типы данных «Any»
- •4.2. Mysql
- •4.2.1 Типы данных.
- •4.2.1.1.Character String (строковый)
- •4.2.1.2.National Character String (национальный строковый)
- •4.2.1.3.Binary Large Object String (двоичный)
- •4.2.1.4.Numeric (числовой)
- •4.2.1.5.Datetime (дата/время)
- •4.2.1.6.Interval (интервальный)
- •4.2.1.7.Типы enum и set
- •4.2.2Использование типов столбцов их других систем управления базами данных
- •4.3. Postgresql
- •4.3.1 Типы данных
- •4.3.1.1Числовые типы
- •4.3.1.1.Целочисленные типы
- •4.3.1.2.Числа с заданной точностью
- •4.3.1.3.Типы с плавающей точкой
- •4.3.1.4.Серийные типы
- •4.3.1.5.Денежные типы
- •4.3.1.6.Символьные типы
- •4.3.1.7.Двоичные типы данных
- •4.3.1.8.Типы дата/времени
- •4.3.1.9.Логический тип
- •4.3.1.10.Перечисления
- •5. Использованные в пример таблицы данных
- •Символьные
- •Числовые типы данных
- •Двоичные типы данных
- •Типы данных времени, даты, интервалы
- •Логические типы данных
- •Список литературы
- •Оглавление
- •Часть 1………………………………………………………….…………………………….………… 4
- •Глава 1 модели данных………………………….………………….……………….…........…. 4
- •Глава 2 проектирование баз данных…………..……………………………………...… 40
- •1.4 Синтез реляционных баз …...………………………………………………………… 44
- •Часть 2……...…...………………………………………………………………………………….… 52
2.9.2 Drop view - удалить вид на таблицу данных
Синтаксис
DROP VIEW имя;
Описание
DROP VIEW удаляет вид на таблицы данных созданный до этого CREATE VIEW.
Пример:
DROP VIEW myorders;
Удаляет созданный до этого вид на таблицы данных с именем 'myorders'
2.10 Пользовательские процедуры
2.10.1 Create procedure - создать пользовательскую процедуру
Синтаксис
CREATE [ DBA ] PROCEDURE Prozedurname ( [ { Parametername { Feldtyp | REFERENCES { BYTE | TEXT } } [ DEFAULT { Wert | NULL } ] } [,...] ] ) [ RETURNING { Feldtyp | REFERENCES { BYTE | TEXT } } ; ] [ Statement ; ] [...] END PROCEDURE ;
Описание
CREATE PROCEDURE создает процедуру базы данных (подпрограмму/функцию) , которая может быть использована в командах SQL или в процедурах и программах.
Пример:
CREATE PROCEDURE table_drop ( )
DROP TABLE proc_test;
END PROCEDURE;
Создает процедуру 'table drop', которая удаляет при вызове таблицу 'proc_test'.
2.10.2 Dba
Указывает на то, что процедура имеет при исполнении привилегии администратора.
Пример:
CREATE DBA PROCEDURE table_create ( )
CREATE TABLE proc_test (
size smallint,
number smallint,
weight integer
);
END PROCEDURE;
Создает процедуру 'table_create' с привилегиями администратора, которая создает при вызове новую таблицу в базе данных 'proc_test'.
2.10.3 References { byte | text }
REFERENCES ...
Пример : under contsruction ...
Создает процедуру '...'.
2.10.4 Default { Wert | null }
DEFAULT специфицирует значение, которое используется, если в вызове процедуры опущен параметр.
Пример:
CREATE PROCEDURE square ( par INTEGER DEFAULT 0 )
RETURNING INTEGER;
DEFINE rez INTEGER;
LET rez = par * par;
RETURN rez;
END PROCEDURE;
Cоздает процедуру 'square', у которой единственный параметр 'par' не обязателен и по умолчанию равен нулю. Если эта процедура вызвана без параметров, то она возвращает 0*0 назад, иначе - par*par .
2.10.5 Returning { Feldtyp | references { byte | text } }
RETURNING указывает на количество и тип значений, которые возвращает процедура.
Пример:
CREATE PROCEDURE table_insert ( )
RETURNING INT;
DEFINE i INT;
INSERT INTO aam_proc_test (size, number, weight )
VALUES ( 1, 2, 3 );
INSERT INTO aam_proc_test (size, number, weight)
VALUES ( 0, 9, 9 );
LET i = SELECT COUNT(*) FROM proc_test;
RETURN i;
END PROCEDURE;
Здесь создается процедура 'table_insert', которая добавляет в таблицу 'proc_test' две новых строки данных и возвращает количество строк в этой таблице.
2.10.6 Drop procedure - удалить процедуру
Синтаксис
DROP PROCEDURE имя процедуры;
Описание:
DROP PROCEDURE удаляет процедуру из базы данных, создананную до этого с помощью команды CREATE PROCEDURE.
Пример:
DROP PROCEDURE table_show;
Удаляет процедуру 'table_show' из базы данных.
2.10.7 EXECUTE PROCEDURE - выполнить процедуру
Синтаксис
EXECUTE PROCEDURE имя процедуры;
Описание:
EXECUTE PROCEDURE запускает процедуру базы данных.
Пример:
EXECUTE PROCEDURE table_show;
Запускает процедуру 'table_show'.
2.11 ТРАНЗАКЦИИ
2.11.1 BEGIN WORK - начать транзакцию
Синтаксис
BEGIN WORK;
Описание:
Указывает на начало транзакции, на последовательность взаимосвязанных команд SQL, которые рассматриваются базой данных как единое целое, которое в случае ошибки может быть обращено вспять. Используется, как правило, в программах, которые имеют возможность опознования ошибок.
2.11.2 COMMIT WORK - закончить транзакцию
Синтаксис
COMMIT WORK;
Описание:
Указывает на конец транзакции, на последовательность взаимосвязанных команд SQL, которые рассматриваются базой данных как единое целое, которое в случае ошибки может быть обращено вспять. Используется, как правило, в программах, которые имеют возможность опознования ошибок.
2.11.3 ROLLBACK WORK - отменить транзакцию
Синтаксис
ROLLBACK WORK;
Описание:
Обращает все команды одной транзакции вспять. Используется, как правило, в программах, которые имеют возможность опознования ошибок.
Вспомогательные команды
Здесь вы найдете описание различных вспомогательных команд языка SQL.
2.11.4 SET ISOLATION TO - устанавливать уровень изоляции
Синтаксис
SET ISOLATION TO { DIRTY READ | COMMITTED READ | CURSOR STABILITY | REPEATABLE READ };
Описание:
SET ISOLATION TO DIRTY READ указывает базе данных не обращать внимания на поставленные другой командой, которая изменяет содержание базы данных, запреты доступа к данным.
2.11.5 SET PDQPRIORITY - устанавливать приоритет предоставления ресурсов
Синтаксис
SET PDQPRIORITY nn;
Описание:
Ставит приоритет обработки команд SQL на уровень nn. Приоритет ставится базой данных как правило на уровень 0 (без приоритета), если не указано другого.
Пример:
SET PDQPRIORITY 5
Устанавливает приоритет в 5 единиц (маленький приоритет).
2.11.6 SET LOCK MODE TO WAIT – таймоуты
Синтаксис
SET LOCK MODE TO WAIT nn;
Описание:
Устанавливает определенный таймоут (время, которое система ждет освобождения доступа к данным).
Пример:
SET LOCK MODE TO WAIT 60;
Ставит таймоут на 60 секунд.
2.12 ОБЩАЯ ИНФОРМАЦИЯ И ОПРЕДЕЛЕНИЯ
Общая информация о синтаксических диаграммах, символах и таблицах использованных в этой книге.
2.12.1 Синтаксические диаграммы, использованные в этом тексте
Вертикальная черта | указывает на то, что в команде SQL может быть использаван лишь один из элементов слева или справа от нее. Эту вертикальную черту не используют в тексте программы.
Все, что стоит внутри квадратных скобок, не является обязательным элементом языка SQL и может быть опущено. Эти скобки не используют в тексте программы.
Все, что стоит внутри фигурных скобок, рассматривается как один неделимый синтаксический элемент языка SQL. Эти скобки не используют в тексте программы здесь.
Элемент языка SQL- круглые скобки. Используется в том числе для указания размера полей данных, а так же в формулах и условиях. Эти скобки необходимы в тексте программы.