
- •Рецензент
- •Лекция 1. Базы данных и системы управления базами данных
- •Понятие базы данных
- •Понятие системы управления базами данных
- •Обобщенная архитектура субд
- •Трехуровневая архитектура ansi-sparc
- •Достоинства и недостатки субд
- •Архитектура многопользовательских субд
- •Технология «клиент/сервер»
- •Лекция 3. Администрирование баз данных. Системный каталог Понятие независимости данных
- •Общая классификация пользователей бд
- •Администратор базы данных
- •Разделение функций администрирования
- •Лекция 4. Проектирование бд
- •Некоторые термины и определения, используемые при работе с базами данных
- •Принципы проектирования информационных систем
- •Жизненный цикл информационной системы
- •Этапы проектирования баз данных
- •Лекция 5. Семантическое моделирование
- •Лекция 6. Логическое проектирование субд Выбор субд
- •Метод ранжировки
- •Метод непосредственных оценок
- •Метод последовательных предпочтений
- •Оценка результатов экспертного анализа
- •Лекция 7. Даталогические модели данных
- •Иерархическая модель
- •Сетевая модель
- •Реляционная модель
- •Достоинства и недостатки даталогических моделей
- •Лекция 8. Нормализация бд. Часть1 Понятие функциональной зависимости[2]
- •Аксиомы вывода функциональных зависимостей
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормализация через декомпозицию
- •Лекция 9. Нормализация бд. Часть 2 Недостатки нормализации посредством декомпозиции
- •Нормальная форма Бойса–Кодда (нфбк)
- •Многозначные зависимости
- •Аксиомы вывода многозначных зависимостей
- •Четвертая нормальная форма
- •Зависимости соединения
- •Пятая нормальная форма
- •Обобщение этапов нормализации
- •Лекция 10. Физическая организация данных в субд Списковые структурых [2]
- •Последовательное распределение памяти
- •Связанное распределение памяти
- •Модель внешней памяти
- •Лекция 11. Методы поиска и индексирования данных Последовательный поиск [2]
- •Бинарный поиск
- •Индекс - «бинарное дерево»
- •Неплотный индекс
- •Плотный индекс
- •Инвертированный файл
- •Лекция 12. Реляционная модель данных Понятие отношениях
- •Формы представления отношений
- •Теоретические языки запросов
- •Определение реляционной полноты
- •Лекция 13. Распределенные базы данных и субд
- •Основные определения, классификация распределенных систем
- •Преимущества и недостатки распределенных субд
- •Функции распределенных субд
- •Архитектура распределенных субд
- •Лекция 15. Общее введение в sql, типы данных и средства определения доменов Часть 1. Введение
- •Краткая история языка sq [12]
- •Структура языка sql
- •Типы данных sql
- •Tочные числовые типы
- •Истинно целые типы
- •Точные типы, допускающие наличие дробной части
- •Приближенные числовые типы
- •Типы символьных строк
- •Типы битовых строк
- •Лекция 16. Общее введение в sql, типы данных и средства определения доменов Часть 2. Типы даты и времени
- •Тип даты
- •Типы времени
- •Типы временной метки
- •Типы времени и временной метки с временной зоной
- •Типы временных интервалов
- •Булевский тип
- •Типы коллекций
- •Типы массивов
- •Типы мультимножеств
- •Анонимные строчные типы
- •Типы, определяемые пользователем
- •Ссылочные типы
- •Средства определения, изменения определения и отмены определения доменов
- •Определение домена
- •Примеры определений доменов
- •Изменение определения домена
- •Примеры изменения определения домена
- •Отмена определения домена
- •Неявные и явные преобразования типа или домена
- •Неявные преобразования типов в sql
- •Явные преобразования типов или доменов и оператор cast
- •Заключение
- •Тезаурус
- •12. Кузнецов с. Д. Базы данных. Вводный курс. Http://citforum.Ru/database/advanced_intro/
Явные преобразования типов или доменов и оператор cast
Неявные преобразования типов не всегда удобны, недостаточно гибки и иногда могут вызывать ошибки. Поэтому, как показывает предыдущий подраздел, число допустимых неявных преобразований типов в SQL весьма ограничено. Однако в SQL существует специальный оператор CAST, с помощью которого можно явно преобразовывать типы или домены в более широких пределах допускаемых преобразований. Конструкция имеет следующий синтаксис:
CAST ({scalar-expression | NULL } AS
{data_type | domain_name})
Оператор преобразует значение заданного скалярного выражения к указанному типу или к базовому типу указанного домена. Результатом применения оператора CAST к неопределенному значению является неопределенное значение. Для значений, отличных от неопределенных, в стандарте приводятся подробные правила выполнения преобразований, которые интуитивно понятны.
Поясним действие оператора CAST в наиболее важных случаях. Примем следующие обозначения типов данных:
EN – точные числовые типы (Exact Numeric)
AN – приблизительные числовые типы (Approximate Numeric)
C – типы символьных строк (Character)
FC – типы символьных строк постоянной длины (Fixed-length Character)
VC – типы символьных строк переменной длины (Variable-length Character)
B – типы битовых строк (Bit String)
FB – типы битовых строк постоянной длины (Fixed-length Bit String)
VB – типы битовых строк переменной длины (Variable-length Bit String)
D – тип Date
T – типы Time
TS – типы Timestamp
YM – типы Interval Year-Month
DT – типы Interval Day-Time
Пусть TD – это тип данных, к которому производится преобразование, а SD – тип данных операнда. Тогда допустимы следующие комбинации («да» означает безусловную допустимость, «нет» – безусловную недопустимость и «?» – допустимость с оговорками).
SD |
TD |
|||||||||||
|
EN |
AN |
VC |
FC |
VB |
FB |
D |
T |
TS |
YM |
DT |
|
EN |
Да |
Да |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
? |
? |
|
AN |
Да |
Да |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
|
C |
Да |
Да |
? |
? |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
|
B |
Нет |
Нет |
Да |
Да |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
|
D |
Нет |
Нет |
Да |
Да |
Нет |
Нет |
Да |
Нет |
Да |
Нет |
Нет |
|
T |
Нет |
Нет |
Да |
Да |
Нет |
Нет |
Нет |
Да |
Да |
Нет |
Нет |
|
TS |
Нет |
Нет |
Да |
Да |
Нет |
Нет |
Да |
Да |
Да |
Нет |
Нет |
|
YM |
? |
Нет |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
Да |
Нет |
|
DT |
? |
Нет |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Да |
По поводу ячеек таблицы, содержащих знак вопроса, необходимо сделать несколько оговорок:
если TD – интервал и SD – тип точных чисел, то TD должен содержать единственное поле даты-времени;
если TD – тип точных чисел и SD – интервал, то SD должен содержать единственное поле даты-времени;
если SD – тип символьных строк и TD – тип символьных строк постоянной или переменной длины, то набор символов SD и TD должен быть одним и тем же.