Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-Основные понятия реляционной модели.doc
Скачиваний:
5
Добавлен:
14.04.2019
Размер:
191.49 Кб
Скачать

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

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

Пример БД. Таблица «Установочные сведения на студента»

Табл.1.

Фамилия, имя,отчество

Номер группы

Домашний адрес

Телефон

Дата рождения

Афонин C. Н.

ПМ-21

Гончарова, 10-25

241-12-76

30.09.93

Иванова Е.И.

ПМ-22

Нариманова,1-12

null

15.07.92

Логическая структура данных.

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

Рассмотрим подробнее структуру таблицы: логической единицей данных таблиц является строка данных или запись. Каждая запись состоит из отдельных элементов, называемых полями. Каждое поле записи содержит элемент информации об некотором объекте, в нашем примере, студенте. Таким образом, каждое поле записи характеризует отдельные качества объекта, а в целом, таблица характеризует данные о совокупности однотипных объектов. Разбиение БД на отдельные таблицы, записи и поля называется логической структурой БД.

Хранение данных. Физическая организация (структура) данных.

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

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

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

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

Запись 1

Запись 2

Запись 3

...

Запись n

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

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

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

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

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

Типы пользовательских запросов.

Ранее мы уже говорили о составе и задачах систем управления БД. Рассмотрим их здесь более подробно:

1. Основная задача СУБД – обеспечить эффективное хранение данных и осуществление легкого доступа к ним. Для выполнения этой задачи современные СУБД (например, Access, входящий в систему Windows) имеют развитую среду пользователя. К ее задачам относятся обеспечение процедуры ввода данных. Данные вводятся в виде простой таблицы или с помощью специальных форм. Форма-это специальный бланк, выводимый на экран компьютера, в котором имеются окна для ввода данных. Имеется стандартный набор форм (ленточный, в столбик и т.п.), который может быть дополнен пользователем своими собственными формами, привязанными к конкретной таблице. Здесь пользователь может проявить талант дизайнера, размещая поля ввода по экрану, расцвечивая области ввода, расставляя управляющие кнопки, скрытые МЕНЮ, всплывающие подсказки, прокрутки и т.д.При вводе данных можно указывать ключевое поле или их совокупность, и тогда данные будут сортироваться по этим полям.

2. Следующая задача СУБД- это выполнение запросов пользователя. Пользователь может запрашивать данные разного типа. Все пользовательские запросы делятся на три основных типа:

  • Получить единичную запись

  • Получить выборку записей

  • Получить пакет записей

Рассмотрим каждый из них по отдельности:

  1. При поиске единичной записи указывается номер записи или какой-нибудь отличительный признак искомой записи, например, фамилию сотруднику. Атрибут, по которому осуществляется поиск, называется ключом поиска. Ключом поиска в таблице “Сотрудники предприятия” может быть, например, ФИО сотрудника, его табельный номер или совокупность атрибутов, позволяющая однозначно идентифицировать запись. Рассмотрим в качестве примера таблицу “Телефонный справочник”, содержащую 2 поля : ФИО и номер телефона. Основной тип запроса в этом случае состоит в том, чтобы по заданным ФИО найти нужный номер телефона. Если данные в таблице заполнялись произвольным образом, то для данного вида поиска требуется просматривать всю таблицу, пока не встретится требуемая фамилия. Такой поиск неэффективен, поэтому желательно данные в таблицах сортировать, например, по алфавиту. В этом случае, вместо последовательного сканирования всего файла, достаточно производить выборочные проверки и методом деления пополам выйти на искомую запись. Число операций считывания при этом равно log_2 n, где n-число записей в таблице. Предположим теперь, что нам требуется решить обратную задачу: найти фамилию по номеру телефона. В этом случае упорядочение таблицы по фамилиям ничего нам не даст, и опять придется просматривать всю таблицу. Значит, для ускорения поиска надо создать копию таблицы, где данные будут сортированы уже по номерам телефонам.

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

2. Второй тип пользовательского запроса называется поиском по шаблону, когда указывается отличительный признак, которому удовлетворяют несколько записей, например, запрос “найти данные о сотрудниках отдела Х”. Здесь ключом поиска является номер или название отдела, не позволяющий однозначно идентифицировать отдельную запись. Опять же для выполнения такого запроса желательно иметь таблицу, сортированную по номерам отдела. Поскольку записей, соответствующих одному и тому же отделу, будет несколько, то можно дополнительно их отсортировать по другому полю, например, фамилиям. Список студентов КФУ можно например, отсортировать по факультетам, курсам, группам и фамилиям.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]