Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Раздел 1. Основы теории проектирования баз данных





ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Государственное образовательное учреждение высшего профессионального образования

«Поволжский государственный университет телекоммуникаций и информатики»

КОЛЛЕДЖ СВЯЗИ

 

 

  УТВЕРЖДАЮ: Зам директора по УВР __________________Логвинов А.В. «____»_______________2011г.

 

 

КОНСПЕКТ ЛЕКЦИЙ

 

по учебной дисциплине«БАЗЫ ДАННЫХ»

 

для специальности: 230115 - «Программирование в компьютерных системах»

 

 

Курс 1, семестр 2 на базе среднего (полного) общего образования

 

Рабочая программа рассмотрено за заседании П(Ц)К

«Информационных систем и технологий»

Протокол №____ от «____»_________2011г.

Председатель П(Ц)К_____________Шомас Е.А.

 

 

Самара 2011

 

Содержание

Раздел 1. Основы теории проектирования баз данных

Тема 1.1.Определение и назначение баз данных. Типы взаимосвязей в моделях баз данных

Тема 1.2.Нормализация баз данных. Средства доступа к данным

Тема 1.3.Этапы проектирования баз данных. Системы управления базами данных

Раздел 2. Использование СУБД ACCESS для создания баз данных

Тема 2.1. Основные характеристики и возможности СУБД Access

Тема 2.2.Создание таблиц в СУБД Access

Тема 2.3.Индексирование: понятие индекса, типы индексных файлов. Создание, активация и удаление индекса. Переиндексирование

Тема 2.4.Обработка данных в базе

Раздел 3. Организация запросов SQL

Тема 3.1.Исторические аспекты. Структура и типы данных языка SQL

Тема 3.2.Операторы языка SQL

Раздел 4. Организации интерфейса с пользователем

Тема 4.1. Понятие объекта, свойства и характеристики объекта. Создание экранной формы: свойства, события и методы

Тема 4.2.Хранимые процедуры и триггеры. Обеспечение достоверности, целостности и непротиворечивости данных. Каскадные воздействия. Макросы



Тема 4.3. Формирование и вывод отчетов

РАЗДЕЛ 1. ОСНОВЫ ТЕОРИИ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ

ТИПЫ ВЗАИМОСВЯЗЕЙ В МОДЕЛИ

На практике часто используются связи, устанавливающие различные виды соответствия между объектами «связанных» типов, — это один к одному (1:1), один ко многим (1:М), многие ко многим (М: М).

Связь один к одному означает, что каждому экземпляру первого объекта (А) соответствует только один экземпляр второго объекта (В) и, наоборот, каждому экземпляру второго объекта (В) соответствует только один экземпляр первого объекта (А).

Связь один ко многим означает, что каждому экземпляру одного объекта (А) может соответствовать несколько экземпляров другого объекта (В), а каждому экземпляру второго объекта (В) может соответствовать только один экземпляр первого объекта (А).

Связь многие ко многим означает, что каждому экземпляру одного объекта (А) могут соответствовать несколько экземпляров второго объекта (В) и, наоборот, каждому экземпляру второго объекта (В) могут соответствовать тоже несколько экземпляров первого объекта (А).

Пример. Рассмотрим совокупность следующих информационных объектов:

СТУДЕНТ (Номер студента, ФИО, Дата рождения, Номер группы);

СТИПЕНДИЯ (Номер студента, Размер стипендии);

ГРУППА (Номер группы, Специальность);

ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность).

Здесь информационные объекты СТУДЕНТ и СТИПЕНДИЯ связаны отношением один к одному, так как каждый студент может иметь только одну стипендию и каждая стипендия может быть назначена только одному студенту.

Информационные объекты ГРУППА и СТУДЕНТ связаны отношением один ко многим, так как одна группа может включать в себя много студентов, в то время как каждый студент может обучаться только в одной группе.

Информационные объекты СТУДЕНТ и ПРЕПОДАВАТЕЛЬ связаны отношением многие ко многим, так как один студент может обучаться у многих преподавателей и один преподаватель может обучать многих студентов.

Обеспечение непротиворечивости и целостности данных в базе

Для пользователей АИС важно, чтобы база данных отображала предметную область однозначно и непротиворечиво, т. е. чтобы она удовлетворяла условию целостности.

Выделяют два основных типа ограничений по условию целостности данных в базе.

1. Каждая строка таблицы должна отличаться от остальных ее строк значением хотя бы одного столбца.

Пример. Сотрудники одного отдела могут оказаться полными тезками, иметь одинаковые должность и телефон. Наличие в таблице столбца Номер пропуска превращает ее в отношение. Таким образом, первое ограничение по условию целостности данных в базе обеспечивается наличием в таблице-отношении первичного ключа.

2. Внешний ключ не может быть указателем на несуществующую строку той таблицы, на которую он ссылается. Это ограничение называется ограничением целостности данных в базе по ссылкам.

Пример. В столбце Название отдела таблицы СОТРУДНИК хранятся сведения о принадлежности сотрудников к отделу, т. е. этот столбец является внешним ключом для ссылки на таблицу ОТДЕЛ для обеспечения ограничения целостности данных по ссылкам каждое название отдела из таблицы СОТРУДНИК должно принадлежать конкретному столбцу из таблицы ОТДЕЛ.

В реальных базах данных названия не делают ключевыми из-за их длины, замедляющей процесс поиска, и возможности изменения, создающей сложности с сопровождением системы.

Основы реляционной алгебры

Поскольку каждая таблица в реляционной БД является отношением, действия над ними базируются на операциях реляционной алгебры. Исключение составляют лишь операции создания и заполнения таблиц данными (присваивания), а также операции описания и переименования столбцов таблицы.

В теории реляционной алгебры отношение рассматривается как множество, строки таблицы называются кортежами, столбцы — атрибутами. Над отношениями выполняются традиционные операции теории множеств.

Ограничение отношения (выборка) создание нового от ношения отбором в него строк отношения-операнда (исходного отношения), которые удовлетворяют условию ограничения.

Проекция отношения — создание нового отношения отбором в него определенных столбцов отношения—операнда.

Объединение отношений — создание нового отношения, со держащего все кортежи отношений-операндов. При этом операнды должны иметь одинаковые атрибуты.

Пример. Объединить поступающие из цехов отчеты о выпуске но вой продукции за прошедший месяц, содержащие следующие данные:

номер цеха, код продукции, дату выпуска и количество выпущенной продукции, с данными общей таблицы ВЫПУСК ПРОДУКЦИИ, имеющей ту же структуру. Для этого к кортежам

ВЫПУСК ПРОДУКЦИИ (Номер цеха, Код продукции, Дата выпуска, Количество)

добавляют кортежи

НОВАЯ ПРОДУКЦИЯ (Номер цеха, Код продукции, Дата выпуска, Количество).

Поскольку атрибуты приведенных операндов совпадают, таблица НОВАЯ ПРОДУКЦИЯ объединяется с исходной.

Пересечение отношений — создание нового отношения, содержащего строки, общие для сравниваемых операндов. При этом операнды должны иметь одинаковые атрибуты.

Пример. Рассмотрим пересечение отношений с выполнением операций ограничения и проекции.

Для экзаменационных ведомостей нужной группы сначала выполним ограничение исходных отношений, отобрав из каждого из них в новое отношение кортежи, удовлетворяющие следующему условию:

Оценка = Отлично.

В результате получим списки отличников группы по дисциплинам.

Теперь выполним проекцию полученных отношений, отобрав из каждого из них только атрибуты Номер зачетной книжки и ФИО студента. Получим новые списки отличников, в которых остались только номера зачетных книжек и фамилии студентов.

Таким образом, получим искомое отношение — СПИСОК ОТЛИЧНИКОВ, содержащее номера зачетных книжек и фамилии, общие для всех списков отличников.

Пример. Подготовить сведения о выпуске новых видов продукции за последний квартал.

Для решения этой задачи выполняем ограничение отношения ВЫПУСК ПРОДУКЦИИ по следующему условию: дата выпуска меньше последней даты прошлого квартала.

Результат такого ограничения поместим в исходную таблицу.

Затем выполним следующее ограничение для исходной таблицы: дата выпуска меньше первой даты прошлого квартала. Полученный результат занесем в конечную таблицу.

Разность отношений исходной и конечной таблиц даст искомые сведения.

Произведение отношений — создание нового отношения, в котором имеются все атрибуты 1-го и 2-го операндов, а строки получены по парным сцеплением строк их отношений. Число кортежей — мощность нового отношения — равна произведению мощностей 1-го и 2-го отношений. При этом множества атрибутов от ношений не должны пересекаться.

Произведение отношений используется при решении задач подбора пар из двух множеств, например поставщиков и потребителей. Для этого сначала составляют все возможные пары, а затем по конкретному критерию отбирают из них подходящие.

Пример. По двум заданным отношениям требуется найти произведение. деление отношений — создание нового отношения, содержащего атрибуты 1-го операнда, отсутствующие во 2-м операнде, и кортежи 1-го операнда, которые совпали с кортежами 2-го операнда. Для выполнения этой операции 2-й операнд должен содержать лишь атрибуты, совпадающие с атрибутами 1 -го.

Пример. Требуется отобрать студентов группы, получающих стипендию, используя список, содержащий следующие сведения: ФИО, дата рождения, шифр группы и признак наличия стипендии (да, нет).

Для решения задачи создадим вспомогательное отношение с атрибутами Шифр группы и Признак наличия стипендии. Затем заполним один кортеж этого отношения, поместив в него шифр заданной группы и отметку о получении стипендии (да).

В результате деления исходного списка на вспомогательное отношение получим искомый список с атрибутами ФИО и Дата рождения.

Соединение отношений — создание нового отношения, кортеж которого является результатом сцепления кортежей операндов (исходных отношений).

Различают соединения отношений двух видов: естественное и по условию.

При соединении отношений по условию производятся сцепление строк их операндов и проверка полученной строки на соответствие заданному условию. Если условие выполнено, то полученная строка включается в результирующее отношение.

При естественном соединении отношений производятся сцепление строк их операндов и включение полученной строки в результирующее отношение без проверки. Такое соединение используют, когда отношения-операнды обладают общими атрибутами.

Одни и те же данные могут группироваться в таблицы различными способами. Группировка атрибутов в отношениях должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления. Устранение избыточности данных, являющееся одной из важнейших задач при проектировании баз данных, обеспечивается нормализацией.

 

Контрольные вопросы

1. Назовите виды моделей баз данных. Отличия, достоинства, недостатки

2. Назовите виды взаимосвязей между объектами баз данных. Отличия, достоинства, недостатки

3. Что такое первичный ключ

4. Что такое внешний ключ, его отличие от первичного

 

СРЕДСТВА ДОСТУПА К ДАННЫМ

Чтобы пользователь чувствовал себя комфортно, время ожидания ответа на запрос к БД не должно превышать нескольких секунд. В связи с этим требованием специально разрабатываются методы ускорения выборки, позволяющие обойтись без полного перебора строк при выполнении реляционных операций модификации отношений и отбора данных.

Наиболее эффективны методы индексирования и хеширования значений ключей отношения.

Индексирование — логическая сортировка строк таблицы — заключается в создании вспомогательных файлов, содержащих упорядоченные списки значений ключей отношения со ссылками на строку отношения, в которой они находятся. Индексные файлы занимают дополнительную память, но резко ускоряют поиск благодаря применению метода половинного деления. Для одного от ношения может быть создано несколько индексов. Кроме того, можно создать индекс для нескольких отношений, если они содержат одинаковые атрибуты, что позволит ускорить выполнение операций соединения этих отношений.

Индексы позволяют находить строки, в которых значения ключевых полей совпадают с заданным значением или принадлежат заданному интервалу.

Хеширование— использование хэш-функций, которые вычисляют вес строки таблицы по значению ее ключевых атрибутов. Результат вычисления хэш-функции — целое число в диапазоне физических номеров строк таблицы.

Для организации доступа к данным при хешировании создается таблица с пустыми строками, которая заполняется следующим образом:

• по первичному ключу новой строки вычисляется значение хэш-функции и результат трактуется как номер строки в созданной таблице;

• если строка уже занята, производится проверка следующих строк по специальному алгоритму до тех пор, пока не будет обнаружено свободное место.

Аналогично производится поиск нужной строки:

• если после вычисления на месте в таблице, которое соответствует вычисленному значению, оказывается пустая строка, значит, искомой строки просто нет;

• если значение ключа совпало с искомым, поиск заканчивается;

• если же значение ключа не совпало с искомым, проверяются следующие строки таблицы до обнаружения строки с нужным ключом (в этом случае искомая строка найдена) или пустой строки (в этом случае искомая строка отсутствует).

Если таблица заполнена не более чем на 60 %, то для размещения новой или поиска существующей строки необходимо проверить в среднем не более двух ячеек. Хеширование используют для поиска строк по точному совпадению значения ключевого атрибута кортежа с нужным значением ключа.

Контрольные вопросы

1. Что такое нормализация таблиц, для какой цели проводят процедуру нормализации?

2. Какие формы нормализации вы знаете

3. Что такое индексирование? Достоинства, недостатки

4. Что такое хеширование? Достоинства, недостатки

Задания

1. Выделить необходимый набор сущностей, отражающих предметную область и информационные потребности пользователей.

2. Определить необходимый набор атрибутов каждой сущности, выделив идентифицирующие атрибуты.

3. Классифицировать атрибуты каждой сущности (описательные, указывающие, вспомогательные).

4. Определить сущности вида подтип/супертип, где это необходимо.

5. Определить связи между сущностями.

6. Проанализировав структуру связей, исключить избыточные.

7. Определить множественность и условность связей.

8. Дать формулировку связей с точки зрения каждой участвующей сущности.

9. Формализовать связи вида 1:1, 1:M, M:N.

10. Классифицировать сущности, разделив их на стержневые, ассоциативные, характеристические, обозначающие.

11. Построить ER-диаграмму модели базы данных.

12. Описать модель базы данных на языке инфологического проектирования.

 

Мастера Ассеss

Ассеss позволяет даже мало подготовленному пользователю создать свою БД, обрабатывать данные с помощью форм, запросов и отчетов, проводить анализ таблиц БД и выполнять ряд дру- гих работ. Практически для любых работ с БД в Ассеss имеется свой мастер, который помогает их выполнять.

Мастер по анализу таблиц позволяет повысить эффективность базы данных за счет нормализации данных. Он разделяет ненормализованную таблицу на две или несколько таблиц меньшего размера, в которых данные сохраняются без повторения.

Мастера по созданию форм и отчетов упрощают и ускоряют процесс создания многотабличных форм и отчетов. Новые форма и отчет могут наследовать примененный к таблице-источнику записей фильтр.. Мастера по разработке форм и отчетов автоматически создают инструкцию SQL, определяющую источник записей для формы или отчета, поэтому отпадает необходимость в создании запроса

Для изменения вида формы, отчета или отдельных элементов может быть использован мастер, вызываемый кнопкой (Автоформат).

Мастер подстановок создает в поле таблицы раскрывающийся список значений из другой таблицы для выбора и ввода нужного значения. для создания такого поля со списком достаточно в режиме конструктора таблицы выбрать тип данных этого поля — Мастер подстановок. Мастер подстановок можно вызвать в режиме таблицы командой меню Вставка/ Столбец подстановок. Созданный в данном поле таблицы список наследуется при включении этого поля в форму.

Мастера по импорту/экспорту позволяют просматривать данные при импорте/экспорте текста или электронных таблиц, а также при экспорте данных Мiсгоsoft Ассеss в текстовые файлы.

Мастер защиты при необходимости эвакуирует данные, для чего создает новую базу данных, копирует в нее все объекты из исходной базы данных, снимает все права, присвоенные членам группы пользователей, и шифрует новую базу данных. После завершения работы мастера администратор может присвоить новые права доступа пользователям и группам пользователей.

Мастер по разделению базы данных позволяет разделить ее на два файла, в первый из которых помещаются таблицы, а во второй запросы, формы, отчеты, макросы и модули. При этом пользователи, работающие в сети, имея общий источник данных, смогут устраивать формы, отчеты и другие объекты, используемые для обработки данных, по своему усмотрению.

Типы данных СУБД Access

Для каждого поля таблиц базы данных необходимо указывать тип данных. Тип данных определяет вид и диапазон допустимых значений, которые могут быть введены в поле, а также объем памяти, выделяющийся для этого поля. Перечень типов данных полей и описание значений, сохраняемых в таких полях.

 

Тип данных Описание
Текстовый (Значение по умолчанию) Текст или числа, не требующие проведения расчетов, например номера телефонов (до 255 знаков)
Числовой Числовые данные различных форматов, используемые для проведения расчетов
Дата/время Для хранения информации о дате и времени с 100 по 9999 год включительно
Денежный Денежные значения и числовые данные, используемые в математических расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков в дробной части
Поле MEMO Для хранения комментариев; до 65535 символов
Счетчик Специальное числовое поле, в котором Access автоматически присваивает уникальный порядковый номер каждой записи. Значения полей типа счетчика обновлять нельзя
Логический Может иметь только одно из двух возможных значений (TrueFalse, Да/Нет)
Поле объекта OLE Объект (например, электронная таблица Microsoft Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу Access
Гиперссылка Строка, состоящая из букв и цифр и представляющая адрес гиперссылки. Адрес гиперссылки может состоять максимум из трех частей: текст, выводимый в поле или в элементе управления; путь к файлу (в формате пути UNC) или к странице (адрес URL). Чтобы вставить адрес гиперссылки в поле или в элемент управления, выполните команду Вставка, Гиперссылка
Мастер подстановок Создает поле, в котором предлагается выбор значений из списка или из поля со списком, содержащего набор постоянных значений или значений из другой таблицы. Это в действительности не тип поля, а способ хранения поля

Примечание: Microsoft Access обеспечивает возможность хранения в полях таблиц специального значения Null, называемого пустым значением, для обозначения некоторого неизвестного значения. При этом очень важно различать строки со значением Null и пустые строки (“”). Пустое значение имеет особые свойства. Оно не может быть равно никакому другому значению, в том числе и другому пустому значению, т.е. нельзя связать две таблицы по пустому значению. Кроме того, значения Null не учитываются в групповых операциях.

 

Контрольные вопросы

1. Перечислите основные характеристики и возможности

2. Какие компоненты входят в состав СУБД Access?

3. Какие виды мастеров, входящих в, вы знаете?

4. Какие типы данных используются при работе с СУБД Access?

 

Задание

1.Создайте таблицу следующего вида:

Поле Тип данных Описание
Счетчик  
Персонаж Текстовый  
Профессия Текстовый  
Особые приметы Текстовый  
Герой Логический Положительный или отрицательный герой

2.Заполните таблицу по образцу:

Поле Тип данных Описание
Счетчик  
Персонаж Текстовый  
Профессия Текстовый  
Особые приметы Текстовый  
Герой Логический Положительный или отрицательный герой

3. Введите в таблицу следующие данные:

Персонаж Профессия особые приметы герой
Буратино деревянный человечек длинный нос Да
Папа Карло Шарманщик   Да
Карабас Барабас директор кукольного театра длинная борода, достающая до пола Нет
Лиса Алиса Мошенница хромая на одну ногу Нет
Кот Базилио Мошенник слепой на оба глаза Нет
Мальвина артистка театра девочка с голубыми волосами Да
Дуремар Фармацевт характерный запах тины Нет
Тортилла хранительница золотого ключика черепаха Да

Схема данных в Access

Структура реляционной базы данных в Access задается схемой данных, которая имеет иерархическую структуру и называется канонической реляционной моделью предметной области.

Схема данных графически отображается в отдельном окне, в котором таблицы представлены списками полей, а связи - лини­ями между полями разных таблиц.

При построении схемы данных Access автоматически определя­ет по выбранному полю тип связи между таблицами. Если поле, по которому нужно установить связь, является уникальным ключом как в главной таблице, так и в подчиненной, Access устанавливает связь типа один к одному. Если поле связи является уникальным ключом в главной таблице, а в подчиненной таблице является не ключевым или входит в составной ключ, Access устанавливает связь типа один ко многим от главной таблицы к подчиненной.

Кроме указанных типов связей в Access существуют связи-объе­динения, обеспечивающие объединение записей таблиц не по ключевому полю, а в следующих случаях:

• связываемые записи в обеих таблицах совпадают (связи уста­навливаются по умолчанию);

• для всех записей первой таблицы, для которых отсутствуют связи со второй таблицей, устанавливаются связи с пустой запи­сью второй таблицы;

• для всех записей второй таблицы, для которых отсутствуют связи с первой таблицей, устанавливаются связи с пустой запи­сью первой таблицы.

ТИПЫ ИНДЕКСНЫХ ФАЙЛОВ

Основное назначение индексов состоит в обеспечении эффективного прямого доступа к записи таблицы по ключу. Различают индексированный файл и индексный файл. Индексированный файл - это основной файл, содержащий данные отношения, для которого создан индексный файл.

Индексный файл - это файл особого типа, в котором каждая запись состоит из двух значений: данных и указателя. Данные представляют поле, по которому производится индексирование, а указатель осуществляет связывание. соответствующим кортежем индексированного файла. Если индексирование осуществляется по ключевому полю, то индекс называется первичным. Такой индекс к тому же обладает свойством уникальности, т. е. не содержит дубликатов ключа.

Обычно индекс определяется для одного отношения, и ключом являете: значение простого или составного атрибута.

Основное преимущество использования индексов заключается в значительном ускорении процесса выборки данных, а основной недостаток - в замедлении процесса обновления данных. Действительно, при каждом добавлении новой записи в индексированный файл потребуется также добавит Новый индекс (а это дополнительное время) в индексный файл. Поэтом: При выборе поля индексирования всегда важно уточнить, который из двух показателей важнее: скорость выборки или скорость обновления.

Индексы позволяют:

1) осуществлять последовательный доступ к индексированному файлу в со­ответствии со значениями индексного поля для составления запросов на поиск наборов записей;

2) осуществлять прямой доступ к отдельным записям индексированного файла на основе заданного значения индексного поля для составления запросов для заданных значений индекса;

3) организовать запросы, не требующие обращения к индексированному файлу, а лишь приводящие к проверке наличия данного значения в ин­дексном файле.

Поскольку при выполнении многих операций языкового уровня требуется сортировка отношений в соответствии со значениями некоторых атрибутов, полезным свойством индекса является обеспечение последовательного Про­смотра кортежей отношения в диапазоне значений ключа в порядке возрас­тания или убывания значений ключа.

В зависимости от организации индексной и основной областей различают два типа файлов: индексно-прямые файлы и индексно-последовательные файлы. При рассмотрении определенной технологии будем, прежде всего, обращать внимание на ее достоинства и слабые места, а также на поддержи­ваемые ею способы поиска информации, вставки и удаления записи.

Индексно-прямые файлы

В индексно-прямых файлах основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке, а ин­дексная запись содержит значение первичного ключа и порядковый номер записи в основной области, которая имеет данное значение первичного ключа.

Так как индексные файлы строятся для первичных ключей, однозначно оп­ределяющих запись, то в индексно-прямых файлах для каждой записи в ос­новной области существует только одна запись из индексной области. Такой индекс называется плотным. Все записи в индексной области упорядоченный по значению ключа, поэтому можно применить более эффективные спосо­бы поиска в упорядоченном пространстве.

Наиболее эффективным алгоритмом поиска на упорядоченном массиве яв­ляется бинарный поиск. При этом все пространство поиска разбивается пополам, и так как оно строго упорядочено, то сначала определяется, не является ли срединный элемент искомым, а если нет, то дается оценка в какой половине его надо искать. Далее установленная половина также де­лится пополам и производятся аналогичные действия, и так до тех пор, пока не будет обнаружен искомый элемент.

В данном случае двоичный алгоритм поиска при меняется к индексному файлу, а потом путем прямой адресации происходит обращение к основной области уже по конкретному номеру записи.

Операция добавления осуществляет запись в конец основной области. В индексной области при этом производится занесение информации так, чтобы не нарушать упорядоченности. Поэтому вся индексная область файла разбивается на блоки и при начальном заполнении в каждом блоке остается свободная область (процент расширения).

Блок, в который должен быть занесен индекс, копируется в оперативную память, где производится вставка новой записи, и измененный блок записывается обратно на диск.

Естественно, в процессе добавления новых записей процент расширения постоянно уменьшается. Когда исчезает свободная область, возникает переполнение индексной области. В этом случае возможны два решения: либо перестроить заново индексную область, либо организовать область переполнения для индексной области, в которой будут храниться не поместившиеся в основную область записи. Однако первый способ потребует дополнительного времени на перестройку индексной области, а второй увеличит время на доступ к произвольной записи и потребует организации дополнительных ссылок в блоках на область переполнения.

Именно поэтому при проектировании физической базы данных так важно заранее как можно точнее определить объемы хранимой информации, спрог­нозировать ее рост и предусмотреть соответствующее расширение области хранения.

При удалении записи возникает следующая последовательность действий: запись в основной области помечается как удаленная, в индексной области соответствующий индекс уничтожается физически, то есть записи индекс­ного файла, следующие за удаленной записью, перемещаются на ее место, и блок, в котором хранился данный индекс, заново записывается на диск. При этом количество обращений к диску для этой операции такое же, как и при добавлении новой записи.

Сортировка и поиск данных

В Microsoft Access имеется возможность сортировать данные в режиме таблицы. Самая простая сортировка может быть произведена при помощи двух кнопок на панели инструментов - сортировка таблицы в порядке возрастания или убывания значений какого-либо столбца.

Сортировка по нескольким полям может выполняться с помощью фильтра. Фильтр позволяет, также, задавать условия отбора данных из таблицы. При этом в качестве операторов для задания условий отбора можно использовать любые из описанных выше для задания Условия на значение поля таблицы.

Каждый раз, когда закрывается окно режима таблицы, введенные для фильтра параметры удаляются. Если необходимо сохранить построенный фильтр, то его можно сохранить как запрос.

 

Вычисляемые поля

Можно задать вычисления над любыми полями таблицы и сделать вычисляемое значение новым полем в наборе записей. При этом можно использовать арифметические операции над полями таблиц, создавать символьные константы как результат конкатенации (склеивания) текстовых полей и символьных констант и пользоваться более специфическими встроенными в Access функциями.

 

Групповые операции

Иногда интерес представляет не каждая строка таблицы, а итоговые значения по группам данных (например, сумма значений одного из полей). Для вычисления в запросе итоговых значений необходимо нажать на панели инструментов кнопку Групповые операции, чтобы в бланке QBE появилась соответствующая строка.

Microsoft Access использует установку Группировка в строке Групповая операция для любого поля, которое уже занесено в бланк QBE. Это означает, что записи группируются, но итоговые значения не подводятся. Для получения итогов необходимо поменять установку Группировка на одну из групповых функций:

 

Функция Итог
Sum Вычисляет сумму всех значений заданного поля в каждой группе.
Avg Вычисляет среднее арифметическое всех значений данного поля в каждой группе.
Min Возвращает наименьшее значение, найденное в этом поле внутри каждой группы.
Max Возвращает наибольшее значение, найденное в этом поле внутри каждой группы.
Count Возвращает число записей, в которых значения данного поля отличны от Null.
StDev Подсчитывает статистическое стандартное отклонение для всех значений данного поля в каждой группе. Если в группе меньше двух строк, то результат - Null.
Var Подсчитывает статистическую дисперсию для всех значений данного поля в каждой группе. Если в группе меньше двух строк, то результат - Null.
First Возвращает первое значение этого поля в группе.
Last Возвращает последнее значение этого поля в группе.

 

Имеется также установка Выражение. Ее можно использовать, когда в строке Поле вводится выражение, в котором используется одна или несколько групповых операций.

 

Использование параметров

Не всегда можно решить на этапе создания запроса, какие именно значения должен отыскать Access. Вместо этого можно включить в запрос параметр, и в этом случае перед выполнением запроса Access каждый раз будет запрашивать конкретные условия отбора.

Чтобы установить параметр, вместо того чтобы вводить конкретное значение в строку Условие отбора, необходимо ввести в нее имя параметра, заключенное в квадратные скобки ([ ]). Это имя выводится в диалоговом окне при выполнении запроса, поэтому разумно в качестве имени параметра использовать содержательную фразу.

По умолчанию Access присваивает параметрам запроса текстовый тип данных. При необходимости можно изменить тип данных параметра при помощи диалогового окна Параметры запроса.

 

Перекрестные запросы

Access поддерживает специальный тип итоговых запросов, называемый перекрестным запросом. Такой запрос позволяет увидеть вычисляемые значения в виде перекрестной таблицы, напоминающей электронную. Для этого типа запросов Access добавляет в бланк QBE строку Перекрестная таблица. В этой строке для каждого поля перекрестного запроса может быть выбрана одна из четырех установок: Заголовки строк, Заголовки столбцов, Значение (выводимое в сетке перекрестного запроса) и не выводить. Для перекрестного запроса необходимо определить одно поле в качестве заголовка строки, одно поле в качестве заголовка столбца и одно поле значений. Поля, являющиеся заголовком строки или столбца, должны иметь в строке Групповая операция установку Группировка, поле значение - одну из групповых функций.

 

 

История создания SQL

Причиной появления SQL является то, что в начале 70-х годов фирме IBIV потребовался метод, с помощью которого простые пользователи могли извлекать из базы данных и выводить нужную им информацию. Языки, которые могут применять пользователи, назвали языками четвертого поколения (4GL) или структурированным английским. Первым коммерческим результатом является язык QBE (запрос по образцу), разработанный в IBM. Начиная с конца 70-х годов, QBE используется на терминалах, подключенных к большим машинам IBM/370. При этом можно достичь требуемого результата, введя не более 80 символов, что соответствовало 100 или более строкам в COBOL или другом языке третьего поколения. В Access, dBase IV, dBase 5 и Paradox язык QBE используется для вывода требуемой информации из таблиц.

Программисты филиала IBM в Сан-Хосе, Калифорния, разработали систему System R, прототипа SQL/DS и реляционной базы данных DB2. В середине семидесятых служащий IBM доктор Е.Ф. Кодд предложил SQL (называвшийся тогда SEQUEL — Structured English Query Language) как средство извлечения информации из реляционной базы данных, модель которой он разработал в 1970 году. Разработанные на основе модели Кодда реляционные базы данных, использовавшие для извлечения и обновления информации язык SQL, стали, как и QBE, стандартами в компьютерной индустрии.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.