
- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
12.2. Типы данных языка sql.
К наиболее часто используемым типам данных относятся символьные, числовые, тип DATE, двоичные и большие объекты.
Символьные типы данных представлены следующими типами:
CHAR(длина), VARCHAR2(длина) и LONG.
Тип данных CHAR представляет собой символьные строки фиксированной длины. Минимальная длина равна 1, максимальная – 2000 байт. Если значение, помещаемое в столбец данного типа, превосходит указанный размер, то выводится сообщение об ошибке; если длина помещаемого значения меньше указанной длины, то значение дополняется пробелами справа.
Тип данных VARCHAR2 представляет собой символьные строки переменной длины. Максимальный размер строки 4000 байт, минимальный – 1 байт. При помещении текста в столбец большего размера дополнение пробелами не производится.
Строки этих двух типов сравниваются по-разному. Строки типа CHAR – посимвольно с дополнением пробелами строки с меньшей длиной до размера строки с большей длиной. Строки VARCHAR2 – без дополнения пробелами до большей длины. Поэтому для двух в принципе одинаковых строк могут быть получены различные результаты при их сравнении.
Пример. Для двух строк “AB” и “AB ” (вторая строка содержит пробел, а первая нет) типа CHAR получим, что “AB” = “AB ”. Для этих же строк типа VARCHAR2 результатом сравнения будет “AB” < “AB ”.
Тип данных LONG представляет собой символьные данные переменной длины, величина которой может достигать 2 Гб. На использование переменных этого типа накладывается ряд ограничений: столбец такого типа должен быть единственным в таблице, его нельзя индексировать, использовать в качестве ключа упорядочения и в операциях группирования, а также для построения условий.
Числовые типы представлены типом NUMBER, который позволяет определить три различных типа данных:
NUMBER, NUMBER(p), NUMBER(p, s).
В первом случае определяются действительные числа, диапазон которых от 1.0*10–130 до 1.0*10126–1, мантисса содержит 38 знаков. Во втором случае считается, что определяется диапазон целых чисел, где p – количество цифр в числе (от 1 до 38). В третьем случае описываются числа с фиксированной точкой; p – общее количество цифр (от 1 до 38), s – масштаб (от –84 до 127) – определяет количество цифр после запятой. Если s > 0, то число округляется до указанного числа знаков справа от десятичной точки, если s < 0, то число округляется до указанного числа знаков слева от десятичной точки.
Пример. Значение 123.89, помещенное в переменную с типом NUMBER(5,1) будет округлено до значения 123.9, а при помещении в переменную с типом NUMBER(5, –1) будет округлено до 120.
Следует отметить, что язык SQL поддерживает типы данных стандарта ANSI SQL. Если такой тип данных (INTEGER, SMALLINT, DECIMAL, FLOAT и REAL и т. д.) встречаются при определении типа столбца таблицы, то имя типа сохраняется, но сами данные хранятся в виде, определяемом одним из типов базы данных Oracle.
Тип данных DATE представляет собой специальным образом организованный тип. Он хранит столетие, год, месяц, день, часы, минуты, секунды. Для выборки текущего дня и времени в стандартном формате используется функция SYSDATE. Стандартный формат даты, автоматически преобразуемый во внутреннее представление, записывается символьной строкой следующего вида: 'DD–MON–YY', где DD – день месяца, MON – краткое название месяца, а YY – значение года.
Пример. Строка символов '11–JAN–04' будет представлять дату 11 января 2004 года.
Над переменными типа DATE можно выполнить арифметическое действие – вычитание. Результат операции определяет количество дней между этими двумя датами. К дате можно прибавить или отнять числовую константу, рассматриваемую как количество дней или часть дня.
Пример. Для добавления месяца к текущей дате необходимо записать SYSDATE+30, а для добавления часа необходимо записать SYSDATE+1/24.
Двоичные типы данных. Данные этого типа используются для хранения двоичных неструктурированных данных (звуковые файлы, файлы изображений и т. д.), обработка которых не поддерживается системой ORACLE. К ним относятся типы RAW(длина) и LONGRAW. Максимальный размер строки типа RAW 2000 байт, минимальный – 1 байт. Длина переменных типа LONGRAW может достигать 2 Гб.
Большие объекты (LOB-объекты). К этим типам относятся CLOB, BLOB и BFILE и предназначены они для хранения неструктурированных данных большого объема – до 4 Гб. Тип CLOB хранит данные символьного типа, типы BLOB и BFILE используют для хранения двоичных данных. Столбцы типа LOB содержат не сами данные, а указатели на их местоположение. При этом, типы CLOB и BLOB хранятся в специальных сегментах БД, а тип BFILE, являющийся внешним двоичным файлом, хранится как обычный файл. На их использование наложен ряд ограничений.