Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными
Скачать 0.55 Mb.
|
Создание БД в среде MS SQL Server Организуется БД (раширение *.mdf), затем принадлежащий ей журнал транзакций (*.ldf). Создание БД - команда CREATE DATABASE. <определение_базы_данных> ::= CREATE DATABASE имя_базы_данных [ON [PRIMARY] [ <определение_файла> [,...n] ] [,<определение_группы> [,...n] ] ] [ LOG ON {<определение_файла>[,...n] } ] [ FOR LOAD | FOR ATTACH ] PRIMARY - первичный файл, вторичный файл БД *.ndf. Параметр LOG ON определяет список файлов на диске для размещения журнала транзакций (имя файла на основе имени БД, в конце символы _log). Определение набора файлов: <определение_файла>::= ([ NAME=логическое_имя_файла,] FILENAME='физическое_имя_файла' [,SIZE=размер_файла ] [,MAXSIZE={max_размер_файла |UNLIMITED } ] [, FILEGROWTH=величина_прироста ] )[,...n] Дополнительные файлы могут быть включены в группу: <определение_группы>::=FILEGROUP имя_группы_файлов <определение_файла>[,...n] Изменение БД. Конструкция: <изменение_базы_данных> ::= ALTER DATABASE имя_базы_данных { ADD FILE <определение_файла>[,...n] [TO FILEGROUP имя_группы_файлов ] | ADD LOG FILE <определение_файла>[,...n] | REMOVE FILE логическое_имя_файла | ADD FILEGROUP имя_группы_файлов | REMOVE FILEGROUP имя_группы_файлов | MODIFY FILE <определение_файла> | MODIFY FILEGROUP имя_группы_файлов <свойства_группы_файлов>} Свойства группы файлов: READONLY - только для чтения, READWRITE - разрешаются изменения, DEFAUL - группа файлов принимается по умолчанию. Удаление БД. Команда: DROP DATABASE имя_базы_данных [,...n] Таблица. Сщздание таблицы. Поле (столбец) явл. частью таблицы, за от. закреплен определенный тип данных. Строка данных - запись в таблице БД, включает поля, содержащие данные из одной записи таблицы. Базовый синтаксис оператора создания таблицы: <определение_таблицы> ::= CREATE TABLE имя_таблицы (имя_столбца тип_данных [NULL | NOT NULL ] [,...n]) Пример (для хранения данных о товарах - столбцы:название, тип товара, цена,сорт и город где произв.): CREATE TABLE Товар (Название VARCHAR(50) NOT NULL, Цена MONEY NOT NULL, Тип VARCHAR(50) NOT NULL, Сорт VARCHAR(50), ГородТовара VARCHAR(50)) Изменение таблицы. Может быть модифицирована с помощью команды ALTER TABLE: ALTER TABLE имя_таблицы {[ADD [COLUMN] имя_столбца тип_данных [ NULL | NOT NULL ]] | [DROP [COLUMN] имя_столбца]} ALTER TABLE в MS SQL Server: ALTER TABLE имя_таблицы {[ALTER COLUMN имя_столбца {новый_тип_данных [(точность[,масштаб])] [ NULL | NOT NULL ]}] | ADD { [имя_столбца тип_данных] | имя_столбца AS выражение } [,...n] | DROP {COLUMN имя_столбца}[,...n] } Когда в таблице уже содержатся данные, добавляемый столбец не может быть определен с атрибутом NOT NULL. => Добавить столбец с атрибутом NULL -> ввести значения для каждой строки -> изменить структуру таблицы, заменив атрибут столбца на NOT NULL. Пример (добавить в таб. клиент поле для номера расчетного счета): ALTER TABLE Клиент ADD Рас_счет CHAR(20) Удаление таблицы. Оператор: DROP TABLE имя_таблицы [RESTRICT | CASCADE] RESTRICT - при наличии в БД хотя бы одного объекта, существование кот. зависит от удаляемой таблицы, выполение будет отменено. CASCADE - автоматически удаляются и все прочие объекты БД, чье существование зависит от удаляемой таблицы, а также другие объекты, зависящие от удаляемых объектов. Индексы - структура, позволяющая выполнять ускоренный доступ к строкам таблицы на основе значений одного или более ее столбцов. Индекс - это набор ссылок, упорядоченных по определенному столбцу таблицы, который в данном случае будет называться индексированным столбцом. Оператор: CREATE [ UNIQUE ] INDEX имя_индекса ON имя_таблицы(имя_столбца[ASC|DESC][,...n]) Столбцы в операторе составляют ключ индекса. UNIQUE - уникальность значений ключа индекса автоматически поддерживается системой. Оператор удаления: DROP INDEX имя_индекса Индексы в среде MS SQL Server. Создание индекса. Типы индексов: Кластерные индексы. При его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса. Может включать несколько столбцов. Некластерные индексы. Не перестраивают физическую структуру таблицы, а лишь организуют ссылки на соответствующие строки. Уникальные индексы. Гарантируют уникальность значений в индексируемом столбце. Способы определения индекса: - автоматическое создание индекса при создании первичного ключа; - автоматическое создание индекса при определении ограничения целостности UNIQUE; - создание индекса с помощью команды CREATE INDEX. Формат команды CREATE INDEX: <создание_индекса>::= CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX имя_индекса ON имя_таблицы(имя_столбца [ASC|DESC][,...n]) [WITH [PAD_INDEX] [[,] FILLFACTOR=фактор_заполнения] [[,] IGNORE_DUP_KEY] [[,] DROP_EXISTING] [[,] STATISTICS_NORECOMPUTE] ] [ON имя_группы_файлов ] Имя индекса должно быть уникальным в пределах таблицы. Параметр UNIQUE - при необходимости ввода в определенное поле только уникальных значений (будет создан уникальный индекс). В индексируемом столбце желательно запретить хранение значений NULL, чтобы избежать проблем, связанных с уникальностью значений. Параметр CLUSTERED использует возможность физического индексирования данных и позволяет произвести кластерное индексирование. Только один кластерный индекс в таблице. Параметр NONCLASTERED позв. созд. некластерные индексы. Параметр FILLFACTOR осуществляет настройку разбиения индекса на страницы и оптимизирует работу SQL-сервера. Коэффициент FILLFACTOR определяет в процентном соотношении размер создаваемых индексных страниц. Параметр PAD_INDEX определяет заполнение внутреннего пространства индекса и применяется совместно с FILLFACTOR. Параметр DROP_EXISTING при использовании кластерного индекса определяет его повторное создание. Параметр STATISTICS_NORECOMPUTE определяет функции автоматического обновления статистики для таблицы. Удаление индекса. Команда: DROP INDEX 'имя_индекса'[,...n] Создание ограничений Средства задания ограничений вводятся с целью защиты БД от нарушения согласованности сохраняемых в ней данных. Базовый формат оператора создания таблицы: <определение_таблицы> ::= CREATE TABLE имя_таблицы {(имя_столбца тип_данных [ NOT NULL ][ UNIQUE] [DEFAULT <значение>] [ CHECK (<условие_выбора>)][,...n]} [CONSTRAINT имя_ограничения] [PRIMARY KEY (имя_столбца [,...n]) {[UNIQUE (имя_столбца [,...n])} [FOREIGN KEY (имя_столбца_внешнего_ключа [,...n]) REFERENCES имя_род_таблицы [(имя_столбца_род_таблицы [,...n])], [MATCH {PARTIAL | FULL} [ON UPDATE {CASCADE| SET NULL |SET DEFAULT |NO ACTION}] [ON DELETE {CASCADE| SET NULL |SET DEFAULT |NO ACTION}] {[CHECK(<условие_выбора>)][,...n]}) Типы ограничений: Обязательные данные (NOT NULL). Ограничения для доменов полей. Каждый столбец имеет свой домен (некоторый набор допустимых значений). Определение доменов: предложение CHECK и оператор CREATE DOMAIN. Целостность сущностей. PRIMARY KEY. Первичный ключ таблицы должен иметь уникальное непустое значение в каждой строке. Для альтернативных ключей: UNIQUE, рекомендуется исп. NOT NULL. Ссылочная целостность. Механизм определения внешних ключей - предложение FOREIGN KEY, фраза REFERENCES опред. имя родительской таблицы. Система отклонит INSERT или UPDATE (если будет попытка создать в дочер. таблице значение внешнего ключа, не соот. одному из уже сущ. значений потенциального ключа родительской таблицы). Обновление или удаление значений потенц. ключа в родит. таблице, которому соот. одна или более строк дочерней, зависят от правил поддержки ссылочной целостности, указанных во фраза ON UPDATE и ON DELETE предложения FOREIGN KEY. Если пользователь пытается удалить из род. таблицы строку, на кот. ссылается одна или более строк дочерней таб., язык предоставляет следующие возможности: CASCADE - удаление строки из родительской таблицы, с автоматическим удалением всех ссылающихся на нее строк дочерней таблицы; SET NULL - удаление строки из родительской таблицы, во внешние ключи всех ссылающихся на нее строк дочерней таблицы записывается значение NULL; SET DEFAULT - удаление строки из родительской таблицы, во внешние ключи всех ссылающихся на нее строк дочерней таблицы заносится значение, принимаемое по умолчанию; NO ACTION - операция удаления строки из родительской таблицы отменяется (используется по умолчанию когда в описании внешнего ключа фраза ON DELETE опущена. Те же самые правила для обновления потенциального ключа родительской таблицы. Определитель MATCH позволяет уточнить способ обработки значения NULL во внешнем ключе.В операторе CREATE TABLE необязательная фраза DEFAULT - предназначена для задания принимаемого по умолчанию значения, когда в операторе INSERT значение в данном столбце будет отсутствовать. Фраза COSTRAIN позволяет задать имя ограничению, что позволит отменить то или иное ограничение с помощью оператора ALTER TABLE. Требования конкретного предприятия. Обновления данных ограничены существующими в организации требованиями (бизнес-правилами). Бизнес-правила реализуются с помощью предложенияCHECK и ключевого слова UNIQUE. |