Кригель, Трухнов: SQL. Библия пользователя
sql server по умолчанию: select 1 + null = null, null1 != null2 is null -- проверка значения concat_null_yealds_null off -- игнорировать пустое значение в выражении ansi nulls -- будет ли null1 = null2
- Модель схемы 1 - избегать чрезмерной сложности 2 - тшательно выбирать ключи 3 - следить за необязательными данными 4 - использовать некоторый уровень абстракции
- Использование пакетных запросов быстрее, чем однострочных Методика Задача - Лучшее решение Сложная бизнес-логика - запросы, позапросы, CTE Динамическое генерирование DDL - Курсоры Перестройка списка - Переменные или курсор Прохождение по иерархии - Пользовательская ф-ия или CTE Накопительные суммы - Курсор
- Индексация - является мостом между запросами и данными, и одновременно ключевой стратегией
- Конкуренция Блокировка - сложная проблема, чем вынуждает понижать уровень изоляции транзакции до nolock Осторожнее с логикой в триггерах, т.к. все равно задействована в транзакциях
- Расширенная масштабируемость 1 - изоляция мгновенных снимков 2 - разделение таблиц 3 - индексированне представления 4 - брокер служб Резюме: 7 правил организации хранилиш данных
- Простота
- Полезность
- Целостность данных
- Производительность
- Доступность
- Масштабируемость
- Безопасность
- Исследование и сбор данных
- Логическое представление реальности
- Идентификация и прокетирование видимых сущностей
- Разработка схемы
- Проектирвание структуры приложения Физическая модель лучше строится, после продуманной логической модели. Цель логической модели - документирование сущностей и из взаимосвязей. Реляционная БД - все однородные или связанные данные сведены в одну сущность. Хорошо спроектированные сущности имеют массу однотипных элементов. Первичный ключ - уникальный атрибут Разработка логической модели требует наличия множества сущностей
- Множество объектов
- один объект может являться списком множетсва других
- Отношения между объектами
- Организация и группировка объектов
- Целостность значений
- вхождение в определённый диапазон значений
- Сложные объекты Реляционные шаблоны
- Отношения между сущностями с помощю ключей Вторичные сущности и внешние ключи
- Отношение "один ко многим": внешние ключ вторичной сущности связан с первичным главной. Строгость отношения
- первичный ключ допускает наличие одного объекта
- внешний ключ допускает наличие множества объектов Варианты строгости
- Один к одному - применяется при создании конфиденциальной информации
- Один ко многим
- Многие ко многим - включает стыковочную таблицу "один ко многим" Таблица классификаторов Вовзвратные отношения (рекурсивные)
- Сокращение аномалий обновления. Подходит для оперативных данных. Преимущества нормализованной фомы
- Повышенная целостность делает невозможным двойное хранение данных
- Сокращение споров за блокировку ресурсов и улучшенная многопользовательская конкуренция
- Меньшие размеры файлов 1НФ (первая нормальная форма)
- данные объединены в сущности и увовлетворяют условиям
- Каждая еденица данных представленная в скалярном атрибуте
- Все данные должны быть представленны уникальными атрбибутами
- Все данные должны содержаться в уникальных элементах