КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Индексы. Теоретические сведения
Таблицы (Tables) Теоретические сведения Используемые программы Исходные данные Цель работы Лабораторная работа №3. Контрольные вопросы Отчет о выполнении работы Отчет о выполнении лабораторной работы №2 необходимо оформить на листах формата A4. Отчет должен содержать описание и результаты работы, представляемые в следующей последовательности: 1. Распечатка сценария создания базы данных с комментариями, которые должны содержать сведения об авторе, дате создания, всех выполняемых действиях и пояснения к доменам. 2. Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, файл с отчетом).
1. Дать определение термина "Домен". 2. Где в InterBase используются домены? 3. Какова максимальная длина имени домена? 4. Какие из имеющихся типов данных не приведены в табл. 1. 5. Перечислить числовые типы данных InterBase. 6. Перечислить целые типы данных в порядке возрастания их размера. 7. Перечислить строковые типы данных. 8. Сколько различных типов данных можно использовать при создании доменов в диалоговом режиме? 9. Чем отличается тип данных DATE в диалектах 1 и 3. 10. Какие дополнительные новые типы добавились в диалекте 3? 11. В чем отличие типа данных VARCHAR от CHAR? 12. Чему равно наибольшее целое число, которое можно сохранить в типе BIGINT? 13. Что означает аббревиатура BLOB? 14. Какие существуют способы изменения домена? 15. В какой системной таблице хранятся метаданные о доменах?
Таблицы Изучить способы создания, изменения и удаления таблиц. Получить навыки использования приложения "IB Expert" для создания, удаления и изменения структуры таблиц. Изучить SQL-операторы для работы с таблицами и индексами.
Исходными данными является индивидуальное задание и результат предыдущих лабораторных работ. 1. Программа "IB Expert". 2. Редактор "Microsoft Word" для создания отчета. InterBase – реляционная СУБД, поэтому все данные в InterBase хранятся в виде двумерных таблиц со строками и столбцами. Строки называются кортежами или записями, а столбцы – доменами или полями. В этой лабораторной работе рассматриваются не правилами проектирования правильного набора таблиц для хранения данных о некоторой предметной области, а только способы реального создания необходимых таблиц. Основные ограничения, которым должны удовлетворять таблицы: 1. Каждый столбец в таблице имеет уникальное имя. 2. Все данные в столбце должны быть одного типа. 3. Порядок строк и столбцов в таблице не имеет значения. 4. В таблице не может быть двух одинаковых строк.
Часть языка SQL, которая управляет метаданными, называется Data Definition Language (DDL). К DDL относятся операторы для определения любых содержащихся в базе данных объектов, в том числе и таблиц. Операторы, определяющие структуру таблиц в InterBase, соответствуют стандарту SQL, и поэтому без изменений будут работать и во многих других СУБД. Для создания таблиц используется оператор " CREATE TABLE ", который приводит к созданию пустой таблицы без строк. При создании таблиц задается имя таблицы, описание набора столбцов с их именами, типами и размерами, а также ограничения на хранящуюся в таблице информацию. Максимальная длина названий таблиц, полей и ограничений – 31 символ. Имена таблиц в пределах базы данных должны быть уникальны. Каждый столбец в таблице должен иметь имя, уникальное в пределах таблицы, а также либо тип данных, либо выражение для вычисления значения столбца, либо ссылку на домен. Упрощенный синтаксис оператора создания таблицы:
CREATE TABLE Имя_Таблицы ( <описание колонки> [, <описание колонки> | <ограничение>...] );
В этом операторе элемент <ограничение> означает ограничение, которое задается на уровне таблицы без одновременного описания колонки.
<описание колонки> = Колонка { <тип данных> | COMPUTED [ BY ] (<вычисляемое выражение>) | Имя_Домена } [ DEFAULT { Literal | NULL | USER} ] [ NOT NULL ] [<ограничение поля>];
Здесь элемент <вычисляемое выражение> означает выражение, которое будет вычисляться каждый раз при необходимости вернуть значение этого вычисляемого поля. Элемент <ограничение поля> означает ограничение, которое задается при одновременном определении поля (функционально полностью аналогично варианту описания ограничения отдельной строкой при создании таблицы). Остальные элементы были описаны в предыдущей лабораторной работе.
Пример создания таблицы "Человек" (домены ID и Name описаны ранее):
CREATE TABLE Person ( Pr_ID ID, -- номер человека Pr_LastName Name, -- фамилия Pr_FirstName Name, -- имя Pr_Patronymic CHAR( 30 ), -- отчество Pr_FIO COMPUTED BY ( -- фамилия и инициалы Pr_LastName || ' ' || SUBSTRING( Pr_FirstName FROM 1 FOR 1) || '.' || SUBSTRING( Pr_Patronymic FROM 1 FOR 1) || '.'));
Первые три поля заданы с использованием доменов, тип поля Pr_Patronymic задан непосредственно при создании таблицы, а поле Pr_FIO является вычислимым. В этом операторе || означает операцию конкатенации (соединения) строк, SUBSTRING() – функция, возвращающая подстроку (в приведенном примере – первую букву полей "Pr_FirstName" и "Pr_Patronymic"). Если при описании поля не использовать домен, то Firebird все равно создает домен специально для этого поля. Имя таких доменов состоит из символов " RDB$ " и порядкового номера. С такими системными доменами можно выполнять такие же операции, как и с обычными доменами. Для удаления таблицы используется оператор DROP TABLE. DROP TABLE Person; -- Пример удаления таблицы Оператор ALTER TABLE предназначен для изменения структуры таб-лицы вместо ее удаления и повторного создания. С его помощью можно из-менять названия полей, добавлять новые и удалять имеющиеся поля, а также добавлять и удалять ограничения. Примеры операторов ALTER TABLE: -- добавление поля "День рождения": ALTER TABLE Person ADD Birthday DATE; -- удаление поля "Отчество": ALTER TABLE Person DROP Pr_Patronymic; -- переименование поля "День рождения": ALTER TABLE Person ALTER COLUMN Birthday TO Pr_Birthday; Если требуется изменить тип поля, например, увеличить число симво-лов, хранимых в поле, то необходимо изменять домен этого поля оператором ALTER DOMAIN или выполнить изменения в системных таблицах. InterBase (как и другие реляционные СУБД) хранит записи в таблицах в неупорядоченном виде. Записи, добавляемые в таблицу одна за другой, не обязательно окажутся "рядом". Данные, извлекаемые из таблицы, также не имеют какого-либо порядка, кроме того, который явно указан в запросе на выборку информации. Индекс – это упорядоченный указатель на записи таблицы. Индекс состоит из пар значений "значение поля" – "физическое расположение записи", поэтому по значению поля (или полей), входящего в индекс, при помощи индекса можно быстро найти место в таблице, где располагается запись, содержащая это значение. Создание индексов может привести к значительному ускорению процессов поиска и сортировки. Не следует создавать индекс на поля с ограниченным набором значений – например, на поле, хранящие пол человека, которое содержит только два значения – "м" и "ж". Использование индексов имеет два отрицательных последствия:
1. Для индексов дополнительно тратится дисковое пространство. 2. Наличие индексов замедляет модификацию данных в таблице.
Индексы создаются при помощи команды CREATE INDEX. Синтаксис оператора создания индекса:
CREATE [ UNIQUE ] [ ASC [ ENDING ] | DESC [ ENGING ]] INDEX Имя_Индекса ON Таблица ( Поле [, Поле...] );
Индекс может быть либо возрастающим (ASC[ENDING]), либо убывающим (DESC[ENGING]). Если при создании индекса указать UNIQUE, то можно будет заносить в таблицу только уникальные значения индексированных полей. Пример создания индекса: -- индекс по фамилии человека: CREATE INDEX Index_Person_Name ON Person ( Pr_LastName ); По мере изменения данных в таблице производительность индекса уменьшается. Периодически требуется пересоздавать индекс, чтобы восстановить его производительность. Чтобы пересоздать индекс, можно использовать следующие способы: 1. Перестроить индекс с помощью команды ALTER INDEX. Для этого надо последовательно выполнить две команды: ALTER INDEX Имя_Индекса INACTIVE; ALTER INDEX Имя_Индекса ACTIVE; 2. Удалить индекс (командой DROP INDEX), а затем повторно создать его. 3. Выполнить резервное копирование и восстановление базы данных. Индекс характеризуется числом в пределах от 0 до 1, которое называется статистикой. Это число зависит от числа различных значений поля в таблице. Оптимизатор запросов InterBase использует это число для определения эффективности применения индекса в запросе. Статистика определяется при создании и перестройке индекса, а также по команде пересчета статистики. Когда число записей в таблице изменяется, пересчет статистики может улучшить производительность. Пересчет статистики не перестраивает индекс, а только определяет статистику. Команда пересчета статистики индекса:
SET STATISTICS INDEX Имя_Индекса;
Дата добавления: 2015-04-29; Просмотров: 668; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |