- •Понятия «данные», «информация», «база данных», «субд», «банк данных». Классификация субд
- •Функции субд.
- •Архитектура субд: централизованная архитектура, архитектура «файл-сервер»
- •Архитектура субд: архитектура «клиент-сервер», трехзвенная архитектура
- •Уровни представления баз данных
- •Модели данных субд: иерархическая модель
- •Модели данных субд: сетевая модель
- •Модели данных субд: реляционная модель
- •Реляционная модель данных
- •Модели данных субд: постреляционная модель
- •Модели данных. Инфологические модели: семантическая сеть, графовые модели, модель «сущность-связь».
- •«Сущность-связь»
- •Инфологическая модель «Сущность-связь»: сущность, связь, типы связей, атрибут, уникальный идентификатор, полная и неполная идентификация, возможный ключ сущности.
- •Методология проектирования idef1x: зависимые и независимые сущности, степень связи, типы связи, внешние ключи, правила построения диаграмм
- •Реляционная модель данных: классы отношений, типы связей между отношениями
- •Манипулирование реляционными данными: базовые теоретико-множественные операции реляционной алгебры (объединение, разность, пересечение, произведение).
- •Манипулирование реляционными данными: специальные операции реляционной алгебры (селекция, проекция, соединение, деление)
- •Реляционная модель данных: аномалии обновления, нормализация, первая нормальная форма
- •Реляционная модель данных: функциональные зависимости, вторая нормальная форма
- •Реляционная модель данных: третья нормальная форма, алгоритм нормализации
- •Реляционная модель данных: сравнение нормализованных и ненормализованных моделей
- •Целостность реляционных данных: Null-значения, потенциальные ключи, простой ключ, составной ключ, первичный ключ, альтернативный ключ
- •Целостность реляционных данных: целостность сущностей, внешний ключ, целостность внешних ключей
- •Целостность реляционных данных: операции, которые могут нарушить ссылочную целостность
- •Целостность реляционных данных: стратегии поддержания ссылочной целостности.
- •Основы языка sql: синтаксис операторов определения объектов базы данных (create table, alter table, drop table) create table - создать таблицу
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Операторы drop
- •Основы языка sql: синтаксис операторов манипулирования данными (select, order by, встроенные функции, group by)
- •Сортировка результатов
- •Встроенные функции sql
- •Основы языка sql: чтение данных из нескольких таблиц с применением вложенных запросов
- •Основы языка sql: чтение данных из нескольких таблиц с помощью операции соединения
- •Основы языка sql: средства модификации данных языка sql
- •Представления. Применение представлений. Обновление представлений.
- •Обновление представлений
- •Триггеры. Типы триггеров. Применение.
- •Применения триггеров
- •Хранимые процедуры. Преимущества использования хранимых процедур
- •Преимущества хранимых процедур
- •Большая безопасность и меньший сетевой трафик.
- •Sql можно оптимизировать
- •Совместное использование кода:
- •Физическая организация бд: структура памяти эвм, представление экземпляра логической записи в памяти эвм
- •Структура памяти эвм
- •Представление экземпляра логической записи
- •Физическая организация бд: организация обмена между оперативной и внешней памятью
- •Физическая организация бд: размещение физических записей в виде списковой структуры (реализация операций поиска, чтения, редактирования, удаления и добавления логических записей)
- •Физическая организация бд: использование индексов (реализация операций поиска, чтения, редактирования, удаления и добавления логических записей)
- •Физическая организация бд: использование сбалансированного дерева (реализация операций поиска, чтения, редактирования, удаления и добавления логических записей)
- •Физическая организация бд: использование хеширования (реализация операций поиска, чтения, редактирования, удаления и добавления логических записей)
- •Параллельная обработка данных: необходимость в атомарных транзакциях
- •Параллельная обработка данных: проблема потерянного обновления, проблема несогласованного чтения
- •Блокировка ресурсов. Неявные и явные блокировки. Глубина детализации блокировки. Монопольная и коллективная блокировки
- •Блокировка ресурсов: сериализуемые транзакции
- •Блокировка ресурсов: взаимная блокировка
- •Блокировка ресурсов: оптимистическая и пессимистическая блокировки
- •Блокировка ресурсов: объявление характеристик блокировки
- •Свойства транзакций: атомарность, долговечность, согласованность
- •Свойства транзакций: изолированность транзакции, уровни изоляции
- •Курсор. Типы курсоров
- •Управление параллельной обработкой в ms sql Server
- •Xml как язык разметки. Общие черты и различия html и xml. Разделение между структурой документа, его содержимым и материализацией
- •Описание содержимого xml-документа с помощью dtd.
- •Описание содержимого xml-документа с помощью xml-схемы.
- •Материализация хмl-документов с помощью xslt.
- •Плоские и структурированные xml-схемы. Глобальные элементы
- •Создание хмl-документов на основе информации из базы данных
- •Select...For xml для нескольких таблиц
- •Понятие и архитектура системы поддержки принятия решений
- •Понятие хранилища данных
- •Физические и виртуальные хранилища данных
- •Проблематика построения хранилищ данных
- •Витрины данных
- •Понятие olap. Категории данных в хд. Информационные потоки в хд
- •Категории данных в хд
- •Информационные потоки в хд
- •Структура olap-куба. Иерархия измерений olap-кубов
- •Иерархия измерений olap-кубов
- •Операции, выполняемые над гиперкубом
- •Архитектура olap-систем
- •Слой извлечения, преобразования и загрузки данных
- •Слой хранения данных
- •Слой анализа данных
- •Клиентские и серверные olap-средства
- •Клиентские olap-средства
- •Серверные olap-средства
- •Технические аспекты многомерного хранения данных: molap, holap
- •Технические аспекты многомерного хранения данных: rolap, схема «звезда», схема «снежинка»
- •Основные характеристики системы Notes. Инфраструктура Lotus Domino. Типы клиентов. Основные характеристики системы No
- •Основные характеристики системы Notes [1]:
- •Инфраструктура Lotus Domino
- •Клиенты
- •Структура баз данных Lotus Domino. Типы документов Структура баз данных Lotus Domino
- •Типы документов
- •Механизм репликации в Lotus Domino.
- •Что происходит во время репликации
- •Некоторые соображения по поводу репликации
-
Основы языка sql: синтаксис операторов определения объектов базы данных (create table, alter table, drop table) create table - создать таблицу
Оператор CREATE TABLE служит для создания отношений.
Иногда вместе с оператором CREATE TABLE используется оператор ALTER для указания первичных и вторичных ключей.
Листинг 1
CREATE TABLE ПРОЕКТ
(ИдПроекта Integer Primary Key.
Название Char(25) Unique Not Null,
Отдел VarChar(lOO) Null,
МаксТрудозатраты Numeric(6,l) Default 100);
Каждый столбец описывается тремя характеристиками: именем, типом данных и необязательными ограничениями. Есть пять типов ограничений:
-
PRIMARY KEY,
-
UNIQUE,
-
NULL/NOT NULL (по умолчанию подразумевается ограничение NULL),
-
FOREIGN KEY,
-
CHECK.
Первичные ключи ни при каких условиях не могут иметь пустых значений, и ограничение PRIMARY KEY включает в себя ограничение NOT NULL.
Столбцы с ограничением UNIQUE могут иметь пустые значения. Если столбец должен быть и уникальным, но непустым, необходимо явно указывать оба ограничения.
Стандартными типами данных являются Char, VarChar, Integer и Numeric; кроме них, существуют другие типы данных, специфичные для конкретных СУБД. Тип VarChar позволяет хранить строки переменной длины, но они требуют дополнительной обработки по сравнению со строками фиксированной длины (тип Char).
Для задания значения по умолчанию используется оператор Default «значение по умолчанию».
В таблице 4 перечислены некоторые дополнительные типы данных, используемые в Microsoft SQ1 Server.
Определение первичных и альтернативных ключей с помощью оператора alter
После того как таблица определена, ее структуру, свойства и ограничения можно изменить, используя оператор ALTER. В частности, с помощью этого оператора можно создавать первичные и альтернативные ключи.
Листинг 2. Добавление ограничений с помощью оператора ALTER
ALTER TABLE СОТРУДНИК
ADD CONSTRAINT СотрудникПК PRIMARY KEY (ТабельныйНомер);
ALTER TABLE НАЗНАЧЕНИЕ
ADD CONSTRAINT СотрудникВК
FOREIGN KEY (НомерСотрудника) REFERENCES СОТРУДНИК(ТабельныйНомер)
ON UPDATE CASCADE
ON DELETE NO ACTION;
Ограничения можно определять в теле оператора CREATE TABLE или добавлять после создания таблицы при помощи оператора ALTER. Некоторые формы определения ограничений позволяют разработчику давать ограничениям имена, а некоторые — нет. В последнем случае имя ограничению присваивает СУБД, и, как правило, это имя является длинным и не особенно осмысленным. Разработчику рекомендуется использовать те формы операторов CREATE TABLE и ALTER, которые всегда позволяют присваивать имена ограничениям. Кроме того, по возможности, ограничения будут определяться внутри оператора CREATE TABLE.
Также обратите внимание, что композитный ключ определяется путем перечисления имен атрибутов в скобках. Первичный ключ таблицы НАЗНАЧЕНИЕ представляет собой сочетание {ИдПроекта, НомерСотрудника}. Композитный первичный ключ не может быть определен с помощью того метода, который мы использовали для таблицы ПРОЕКТ.
Посредством оператора ALTER можно также определять внешние ключи (см. листинг 2). В предпоследнем операторе определено ограничение СотрудникВК. Это ограничение указывает, что столбец НомерСотрудника является внешним ключом, который указывает на столбец СОТРУДНИК.ТабельныйНомер. Имена первичного и внешнего ключей не обязательно должны совпадать.
В определении внешнего ключа можно указывать процедуры обеспечения ссылочной целостности при обновлении и удалении. По по умолчанию изменение первичного ключа строки не допускается, если у нее имеются потомки, и при тех же условиях не допускается удаление строки.
Процедуры обеспечения ссылочной целостности определяются с помощью выражений ON UPDATE (при обновлении) и ON DELETE (при удалении). Например, Для ограничения СотрудникВК в листинге 2 предписывается при обновлении родителя выполнить каскадное обновление (ON UPDATE CASCADE), а при удалении — не предпринимать никаких действий (ON DELETE NO ACTION). Последнее указывать не обязательно, поскольку по умолчанию задается как раз NO ACTION. Но режим существует и его можно использовать для целей документирования.
Листинг 3. Еще один способ определения ограничений
CREATE TABLE ПРОЕКТ
(ИдПроекта Integer Primary Key,
Название Char(25) Unique Not Null,
Отдел VarChar(lOO) Null,
МаксТрудозатраты Numeric(6.1) Default 100);
CREATE TABLE СОТРУДНИК
(ТабельныйНомер Integer Not Null,
Имя Char(25)
Телефон Char(8),
Отдел VarChar(100)
CONSTRANT СотрудникПК Primary Key(ТабельныйНомер));
CREATE TABLE НАЗНАЧЕНИЕ
(ИдПроекта Integer Not Null,
FOREIGN KEY REFERENCES ПРОЕКТ(ИдПроекта),
НомерСотрудника Integer Not Null,
ФактТрудозатраты Numeric(5,2) Default 10,
CONSTRAINT НазначениеПК PRIMARY KEY (ИдПроекта, НомерСотрудника)
FOREIGN KEY (НомерСотрудника) REFERENCES
СОТРУДНИК(ТабельныйНомер));