
- •Базы данных
- •Введение
- •Часть 1. Проектирование баз данных
- •1.1. Некоторые понятия и определения
- •1. 2. Модели данных
- •1.2.1. Иерархическая модель данных
- •1.2.2. Сетевая модель данных
- •1.2.3. Реляционная модель данных Основные определения
- •Типы связей между отношениями
- •1.3. Классификация баз данных
- •1.4. Цели проектирования баз данных
- •1.5. Проектирование баз данных с использованием универсального отношения
- •1.5.1. Универсальное отношение
- •1.5.2. Проблемы, вызываемые использованием универсального отношения
- •Проблема вставки
- •Проблемы обновления
- •Проблемы удаления
- •1.5.3. Нормальная форма Бойса -Кодда
- •Функциональные зависимости
- •Возможный ключ и детерминант
- •Общий подход к декомпозиции
- •Анализ исходных аномалий
- •1.5.4. Возможные потери фз при декомпозиции
- •1.5.5. Избыточные функциональные зависимости
- •Приемы удаления избыточных фз
- •Минимальное покрытие
- •Модернизированный алгоритм проектирования бд
- •1.6. Метод er - проектирования
- •1.6.1. Сущности и связи
- •1.6.2. Степень связи
- •1.6.3. Переход от диаграмм er – типа к отношениям
- •Предварительные отношения для бинарных связей степени 1:1
- •Предварительные отношения для бинарных связей степени 1:n.
- •Предварительные отношения для бинарных связей степени n:m
- •1.6.4. Дополнительные конструкции, используемые в er - методе
- •Необходимость связей более высокого порядка
- •Предварительные отношения для трехсторонних связей
- •Использование ролей
- •1.6.5. Последовательность проектирования бд при использовании er- метода
- •1.6.6. Проверка отношений на завершающейся фазе проектирования
- •1.7. Другие нормальные формы
- •1.8. Контрольные вопросы
- •Часть 2. Специальные аспекты работы с базами данных
- •2.1. Защита данных в базе
- •2.2.1. Общие вопросы защиты данных
- •2.2.2. Реализация защиты данных в различных системах
- •Управление доступом в sql
- •Реализация системы защиты в ms sql Server
- •2.2. Обеспечение целостности данных
- •2.3. Организация параллельных процессов обработки данных
- •2.4. Восстановление бд
- •2.4.1. Уровни восстановления.
- •2.4.2. Восстановление и логический элемент работы
- •Требования к лэр
- •2.4.3. Промежуточное восстановление
- •2.4.4. Длительное восстановление
- •2.5. Математический аппарат, используемый при работе с реляционной базой данных
- •2.5.1. Теоретико-множественные операции реляционной алгебры
- •2.5.2. Специальные операции реляционной алгебры
- •2.6. Контрольные вопросы
- •Часть 3. Разработка приложений для работы с базами данных
- •3.1. Краткий обзор субд
- •3.2. Субд Access
- •3.2.1. Вводные замечания
- •3.2.2. Создание базы данных
- •3.2.3. Создание и работа с таблицами
- •3.2.4. Работа с запросами
- •3.2.5. Создание форм
- •3.2.6. Отчеты в Access
- •3.2.7. Макросы в Access
- •Преобразование макросов в программы на Visual Basic
- •3.2.8. Работа с внешними данными
- •3.3. Программирование в Access
- •3.3.1. Вводные замечания
- •3.3.2. Объявление переменных
- •3.3.3. Константы
- •3.3.4. Тип данных Variant
- •3.3.5. Пользовательские типы данных
- •3.3.5.Операторы, команды и выражения в vba
- •3.3.7. Процедуры vba
- •3.3.8. Управляющие структуры в vba
- •Работа с управляющими структурами
- •3.3.9. Объекты в Access
- •3.3.10. Классы в Access
- •3.3.11. Работа с ошибками в vba
- •3.4.Работа в ms sql –Server
- •3.4.1. Основные количественные показатели системы sql-сервер
- •3.4.2. Создание баз данных
- •3.4.3. Создание таблицы
- •3.4.4. Извлечение данных
- •3.4.5. Добавление данных
- •3.4.6. Изменение данных
- •3.4.7. Удаление данных
- •3.5. Контрольные вопросы
- •Цитированная литература
- •Оглавление
- •Часть 1. Проектирование баз данных 3
- •Часть 2. Специальные аспекты работы с базами данных 71
- •Часть 3. Разработка приложений для работы с базами данных 114
3.4.3. Создание таблицы
Создание таблицы выполняется при помощи команды CREATE TABLE. Данная команда имеет довольно сложный синтаксис:
CREAТЕ TABLE
[ database_name.[owner] | owner.] table_name
({<column_definition>
|column_name AS computed_column_expression
|< table_constraint >})
[ON { filegroup | DEFAULT }]
[TEXTIMAGE_ON { filegroup | DEFAULT } ]
Рассмотрим последовательно все ее параметры.
- database_name — название базы данных, в которой создается таблица. Если значение этого параметра опускается, то таблица создается в текущей базе данных. Прежде чем пользователь сможет создать таблицу, ему должны быть предоставлены соответствующие права в базе данных.
- owner — с помощью этого параметра указывается имя пользователя, который будет являться владельцем создаваемой таблицы. Этот пользователь уже должен существовать в базе данных, в которой создается таблица. По умолчанию владельцем таблицы является пользователь, который ее создал.
- table_name — имя создаваемой таблицы. При выборе имени для таблицы необходимо следовать стандартным правилам формирования идентификаторов объектов. Комбинация имени таблицы и ее владельца (owner.table_name) должна быть уникальной в пределах базы данных. Если таблица создается не в текущей базе данных, необходимо включить в описание имени таблицы ссылку на требуемую базу данных. Длина имени таблицы не должна превышать 128 символов. Если в начале имени указываются символы # или ##, то будут созданы соответственно локальная и глобальная временные таблицы. Длина имен временных таблиц, включая символы # и ##, не должна превышать 115 символов.
Временные таблицы предназначены для временного хранения информации. Они сохраняются не в текущей базе данных, а в системной базе данных tempdb.
Названия локальных временных таблиц начинается с символа # и существуют до тех пор, пока существует соединение с SQL Server, в котором эти таблицы были созданы, и автоматически уничтожаются при его закрытии. При следующем открытии соединения их нужно создавать заново
Название глобальной временной таблицы начинается с символов ##. Эта таблица существует до тех пор, пока не будет явно удалена с помощью команды Drop Table, либо пока не будет закрыто соединение, в контексте которого она была создана.
<column_definition> – с помощью этой конструкции определяются свойства столбца (тип данных, значение по умолчанию, столбец – счетчик, ограничения целостности и т.д.).
- column_name — название столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы.
- computed_column_expression — выражение, задающее значение для вычисляемого столбца. Вычисляемые столбцы являются виртуальными столбцами, то есть физически такие столбцы в таблице не хранятся. Они вычисляются с использованием значений столбцов той же самой таблицы. В выражении для вычисляемого столбца могут участвовать имена обычных столбцов, константы, функции, связанные одним или несколькими операторами. Подзапросы в таком выражении участвовать не могут.
Примечание. Вычисляемый столбец определяется следующим образом: имя_столбца AS выражение.
<table_constraint> - эта конструкция определяет ограничения целостности на уровне таблицы (столбец или список столбцов, на которые необходимы какие – либо ограничения целостности; метод упорядочивания данных в индексе; ключевое слово для создания индекса, внешний ключ и т.д.)
-ON (filegroup | DEFAULT} — обозначает группу файлов, в которой предполагается хранить таблицу. Данная файловая группа уже должна существовать для базы данных. Если указан идентификатор DEFAULT или описанный параметр не определяется вообще, таблица будет сохранена в файловой группе по умолчанию. Помимо собственно таблицы параметр ON {filegroup | DEFAULT} может быть указан и для ограничений целостности PRIMARY KEY и UNIQUE.
- TEXTIMAGE_ON — с помощью этих ключевых слов можно указать, что столбцы с типами данных text, ntext и image будут сохранены в специально определенной для них файловой группе. Эта возможность предусмотрена, поскольку такие столбцы могут достигать довольно больших размеров. Иначе при отсутствии этих ключевых слов в команде вышеназванные столбцы будут сохранены в той же самой группе файлов, что и остальные столбцы таблицы. Если же этих столбцов в таблице не существует, ключевые слова TEXTIMAGE_ON не используются.
Примечание. Тип данных text обеспечивает хранение блоков текста длиной до 231-1 (2 147 483 647) символов. Тип данных ntext служит для хранение текста в формате Unicode длиной до 230-1 (1 073 741 823) символов. Тип данных image используется для хранения длинных битовых полей длиной до 231-1.