
- •Вторая часть лекций по базам данных. Модели Данных.
- •2.1. Базы данных, субд, банк данных.
- •1. Определение структуры создаваемой базы данных, ее инициализация и проведение начальной загрузки.
- •2. Предоставление пользователям возможности манипулирования данными (выполнение вычислений, разработка интерфейса ввода/вывода, визуализация).
- •3. Обеспечение логической и физической независимости данных.
- •4. Защита логической целостности базы данных.
- •5. Защита физической целостности.
- •6. Управление полномочиями пользователей на доступ к базе данных.
- •7. Синхронизация работы нескольких пользователей.
- •8. Управление ресурсами среды хранения.
- •9. Поддержка деятельности системного персонала.
- •2.2. Различные модели организации работы пользователей с базой данных
- •2.2.1. Модель с централизованной архитектурой
- •2.2.2. Модель с автономными персональными эвм
- •2.2.3. Модель вычислений с сетью и файловым сервером (архитектура «файл-сервер»)
- •2.2.4. Распределенная модель вычислений (архитектура «клиент – сервер»)
- •2.2.5. Распределенная модель вычислений (Клиент – сервер. Трехзвенная (многозвенная) архитектура)
- •2.3. Концептуальное моделирование базы данных
- •2.3.1. Сложный пример предметной области
- •2.3.2. Способы описания предметной области
- •2.3.3. Описание информационного представления предметной области
- •2.3.4. Описание информационных потребностей пользователя
- •2.3.5. Различные представления о данных в базах данных
- •2.3.6. Построение концептуальной модели
- •2.3.7. Средства автоматизированного проектирования концептуальной модели
- •2.4. Модели данных субд как инструмент представления концептуальной модели
- •2.4.1. Общие представления о модели данных
- •2.4.2. Сетевая модель данных
- •2.4.3. Иерархическая модель данных
- •2.4.4. Реляционная модель данных
- •2.5. Базовые понятия реляционной модели данных
- •2.5.1. Общая характеристика реляционной модели данных
- •1. Типы данных
- •2. Домены
- •3. Отношения, атрибуты, кортежи отношения
- •3. Свойства отношений
- •4. Первая нормальная форма
- •2.5.2. Манипулирование данными в реляционной модели
- •1. Объединение
- •2. Пересечение
- •3. Вычитание
- •4. Декартово произведение
- •5. Выборка (ограничение, селекция)
- •6. Проекция
- •7. Соединение
- •8. Деление
- •3.2.2. 1Нф (Первая Нормальная Форма)
- •3.2.3. Функциональные зависимости
- •3.2.4. 2Нф (Вторая Нормальная Форма)
- •3.2.5. 3Нф (Третья Нормальная Форма)
- •3.2.6. Алгоритм нормализации (приведение к 3нф)
- •3.2.7. Сравнение нормализованных и ненормализованных моделей
- •3.2.8. Нфбк (Нормальная Форма Бойса-Кодда)
- •3.2.9. 4Нф (Четвертая Нормальная Форма)
- •3.2.10. 5Нф (Пятая Нормальная Форма)
- •3.2.11. Продолжение алгоритма нормализации (приведение к 5нф)
- •3.3. Элементы модели "сущность-связь"
- •3.3.1. Основные понятия er-диаграмм
- •3.3.2. Пример разработки простой er-модели
- •3.3.2. Концептуальные и физические er-модели
- •Типы данных
- •Константы
- •Выражения
- •Встроенные функции
- •Отсутствующие значения
- •3.1.2. Простые запросы на выборку
- •Инструкция select
- •Простые запросы
- •Повторяющиеся строки (предикат distinct)
- •Отбор строк (предложение where)
- •Условие отбора
- •Составные условия отбора (операторы or, and, not)
- •Сортировка результатов запроса (предложение order by)
- •Объединение результатов нескольких запросов (оператор union)
- •3.1.3. Многотабличные запросы на выборку (объединения) Простое объединение таблиц (объединение по равенству)
- •Объединение таблиц по неравенству
- •Особенности многотабличных запросов
- •Внутренняя структура объединения таблиц
- •Внешнее объединение таблиц
Встроенные функции
Хотя встроенные функции не были определены в стандарте SQL1, в большинстве СУБД такие функции реализованы. Многие из них выполняют различные преобразования типов данных.
В общем случае встроенную функцию разрешается использовать в любом месте инструкции SQL, в котором можно использовать константу того же типа данных. Невозможно перечислить все встроенные функции, поддерживаемые распространенными диалектами поскольку их слишком много. В стандарт SQL2 вошли наиболее полезные функции из различных СУБД. Эти функции перечислены в таблице.
Функция |
Что возвращает
|
BIT_LENGTH (строка) |
количество битов в цепочке
|
САSТ (значение АS тип данных) |
значение, преобразованное в указанный тип данных (например, дата, преобразованная в строку) |
CHAR_LENGTH (строка) |
длина строки символов
|
CONVERT(строка USING функция) |
строка, преобразованная в соответствии с указанной функцией |
CURRENT_DATE |
текущая дата
|
CURRENT_TIME (точность) |
текущее время с указанной точностью
|
CURRENT_TIMESTAMP (точность) |
текущие дата и время с указанной точностью
|
EXTRACT (часть FRОМ значение) |
указанная часть (DAY, HOUR и т.д.) из значения типа DАТЕТIМЕ |
LOWER (строка) |
строка, переведенная в нижний регистр
|
POSITION (подстрока IN строка) |
позиция, с которой начинается вхождение подстроки в строку |
SUBSTRING (строка FROM n FOR длина) |
часть строки, начинающаяся с n-го символа и имеющая указанную длину |
TRANSLATE (строка USING функция ) |
строка, транслированная с помощью указанной функции
|
TRIM (ВОТН символ FRОМ строка) |
строка, из которой удалены ведущие и хвостовые указанные символы |
TRIM (LEADING символ FRОМ строка) |
строка, из которой удалены ведущие указанные символы
|
TRIM (TRAILING символ FRОМ строка) |
строка, из которой удалены хвостовые указанные символы
|
UPPER (строка) |
строка, переведенная в верхний регистр
|
Отсутствующие значения
Поскольку база данных представляет собой модель реального мира, отдельные элементы данных в ней неминуемо будут отсутствовать или подходить не для всех сущностей
SQL поддерживает обработку отсутствующих данных с помощью понятия отсутствующее значение. Это значение показывает, что в конкретной строке определенный элемент данных отсутствует или что столбец вообще не подходит для этой строки. Говорят, что значение такого элемента данных равно NULL. Однако NULL не является значением данных, напротив, это признак, показывающий, что точное значение данных неизвестно или отсутствует
Во многих ситуациях значения NULL требуют от СУБД отдельной обработки Например, если пользователь просит вычислить сумму по столбцу, что СУБД должна делать со значениями NULL. при вычислении суммы? Ответ на подобные вопросы дает набор правил обработки значений NULL в различных инструкциях и предложениях SQL. Из-за необходимости включения таких правил в синтаксис языка SQL многие теоретики реляционньх баз данных считают, что значения NULL не следует использовать другие, в том числе доктор Кодд, отстаивают использование значений NULL двух видов, означающих “неизвестно” и “неприменимо”
Независимо от теоретических споров, значения NULL стали частью стандарта ANSI/ISO и реализованы почти во всех коммерческих СУБД.