Базы данных. Поиск данных в базе данных

Базы данных. Поиск данных в базе данных

Код ОГЭ по информатике:
2.3.2. Базы данных. Поиск данных в готовой базе. Создание записей в базе данных

[divider height=»15″ style=»default» line=»0″ themecolor=»1″][divider height=»15″ style=»default» line=»narrow» themecolor=»1″]

 

1. Понятие базы данных и СУБД

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

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

Для создания БД и манипулирования их данными используют системы управления базой данных (СУБД). Они представляют собой совокупность языковых и программных средств, предназначенных для создания, ведения и использования БД. Языковые средства — языки описания и манипулирования данными, языки запросов к БД. Программные средства — прикладные программы для обработки данных, содержащихся в БД.

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

Основные функции СУБД:

  • создание структуры БД;
  • ввод данных в БД и их хранение;
  • изменение (редактирование) структуры БД и данных;
  • поиск данных в БД;
  • сортировка и группировка данных;
  • защита БД;
  • проверка целостности данных БД.

Примеры современных СУБД: Oracle, Firebird, Interbase, MS SQL Server, MySQL, MS Access.

2. Классификация баз данных

1) В зависимости от характера данных различают фактографические и документальные базы данных.

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

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

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

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

3) В зависимости от вида организации данных различают следующие основные модели представления данных в базе:

  • иерархическую;
  • сетевую;
  • реляционную.

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

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

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

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

Реляционная модель представляет собой совокупность таблиц, которые также называют отношениями (отсюда и название: англ. relation — отношение). Эта модель была предложена в 70–х годах XX века сотрудником фирмы IBM Эдгаром Коддом. Она основана на теории множеств и математической логике.

Доказано, что любую структуру данных можно свести к табличной форме.

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

В реляционной БД эффективно реализуются следующие операции:

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

Таблицы реляционной БД

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

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

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

Любая таблица в реляционной БД обладает следующими свойствами:

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

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

Поля символьного типа предназначены для последовательностей символов (тексты, коды и т. д.). Поля даты содержат даты вида «день/месяц/год». числовые поля могут сохранять только числа. Логические поля сохраняют данные, которые могут принимать только одно из двух значений: «да» или «нет» («истина» или «ложь»).

Пример 1

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

Решение. Перечисленные данные будут составлять поля таблицы. Таким образом, в таблице могут быть определены поля (столбцы) Код автомобиля, Модель, Мощность двигателя, Цвет, Год выпуска.

Поле Код автомобиля — ключевое: оно однозначно определяет любую запись таблицы.

Типы всех полей, кроме Год выпуска, — символьные; Год выпуска — числовое. Поле Код автомобиля содержит текстовые символы, поэтому имеет символьный тип. Поле Год выпуска содержит не дату, а число, поэтому имеет тип числовой.

Записи таблицы содержат данные о конкретных автомобилях.

 

Пример 2

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

Решение. Каждый столбец таблицы содержит некоторую характеристику объекта (клиента). Эти столбцы являются полями таблицы: Номер клиента, Фамилия, Имя, Город, Телефон.

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

Каждая строка таблицы содержит сведения об одном объекте (клиенте), поэтому строки таблицы — записи.

 

3. Связи между таблицами БД

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

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

Существуют следующие виды связей между таблицами:

  • отношение «один–к–одному»;
  • отношения «один–ко–многим» и «много–к–одному»;
  • отношение «много–ко–многим».

Отношение «один–к–одному» означает, что одной записи в главной таблице соответствует не более одной записи в подчиненной таблице. Полями связи в таком случае являются ключевые поля обеих таблиц.

Отношение «один–к–одному» обычно используют, чтобы разбить таблицу с большим числом полей на несколько таблиц. В этом случае в первой таблице остаются поля с наиболее важной и часто используемой информацией, а остальные поля переносятся в другую таблицу. Например, в базе данных библиотеки в первой таблице — поля с названием книги, фамилией ее автора, годом издания, а во второй — поля с датой приобретения книги, местом ее хранения и т. д.

Отношение «один–ко–многим» означает, что одной записи главной таблицы может соответствовать несколько записей подчиненной таблицы, а каждой записи подчиненной — только одна запись главной таблицы. Это наиболее часто встречающийся вид отношений.

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

Отношение «много–к–одному» отличается от отношения «один–ко–многим» только направлением. Если на отношение «один–ко–многим» посмотреть со стороны подчиненной таблицы, а не главной, то оно превращается в отношение «много–к–одному».

Отношение «много–ко–многим» означает, что каждой записи одной таблицы может соответствовать несколько записей другой таблицы, и в то же время каждой записи второй таблицы — несколько записей первой.

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

Для отношения «много–ко–многим» сложно организовывать связи между таблицами и взаимодействие между их записями. Многие СУБД, в том числе MS Access, не поддерживают организацию подобного отношения. В таких случаях его реализуют через отношение «один–ко–многим». Например, отношением «один–ко–многим» связаны таблица книг и таблица выдачи книг читателям, и таким же отношением связаны таблица читателей и таблица выдачи книг читателям.

 

4. Добавление и удаление записей таблицы БД

Информация БД постоянно обновляется. Способы добавления и удаления записей в ее таблицах зависят от возможностей, предоставляемых СУБД.

Наиболее просто это осуществляется в тех СУБД, которые имеют графический интерфейс. Например, для добавления записи в таблицу MS Access достаточно установить курсор в последнюю строку таблицы и ввести данные в поля. Эта последняя строка всегда пустая и помечена слева символом *. Чтобы быстро попасть в нее, можно воспользоваться кнопкой Новая (пустая) запись в строке состояния таблицы.

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

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

5. Способы поиска данных в БД

К способам поиска данных в базе данных можно отнести:
1) Использование команды Поиск,
2) Фильтрация таблицы,
3) Сортировка записей,
4) Создание и использование запросов.

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

В MS Access для поиска значения достаточно ввести фрагмент искомого значения в поле Поиск строки состояния таблицы. Уже в процессе ввода курсор переместится в соответствующую запись. Для перехода к следующему результату надо нажать клавишу Enter.

Рассмотрим некоторые способы поиска данных в базе данных подробнее.

Сортировка записей в таблице БД

Сортировка данных в таблице — это упорядочение ее записей. Для сортировки надо указать поля сортировки и порядок (по возрастанию или по убыванию значений). Записи в таблице сортируются целиком.

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

В MS Access для сортировки служат команды «По возрастанию» и «По убыванию» в заголовке каждого поля таблицы и на вкладке ленты Главная.

Сортировка полей типа «дата» учитывает календарную последовательность.

Порядок сортировки полей символьного типа (строк) определяется таблицей кодировки символов. Строки сравниваются посимвольно слева направо до первого несовпадающего символа. Символ, имеющий меньший код, определит меньшее значение всего поля. Например, значение строки «март» больше значения «май», т. к. код символа «р» больше кода символа «й». Короткое значение считается меньше длинного, если короткое полностью совпадает с началом длинного. Так, значение «компьютер» меньше значения «компьютерный».

Если строки имеют одинаковую длину и содержат одну и ту же последовательность символов, то они равны.

Пример 3

Сравнить значения полей «Полевой» и «поле».

Решение. При сравнении первых же символов обнаруживаем, что код символа «П» меньше кода «п». Следовательно, вся строка «Полевой» меньше, чем «поле» (несмотря на то что слово «поле» короче, строки полностью не совпадают).

Пример 4

Указать порядок записей в таблице после сортировки ее по полю Класс.

№ по списку Фамилия Имя Класс
1 чепраков николай
2 Кротов Аркадий
3 Крылов Павел
4 незнамов андрей
5 чернова мария 10а
6 Шепелева татьяна

Решение. Учитывая, что в поле Класс значения содержат буквы, — это поле символьного типа. Тогда при сравнении его значений сначала будут располагаться те, у которых меньше код первого символа. Первым будет значение «10а» (код его первого символа «1» — наименьший из всех). За ним следует значение «5а», затем «5б» (первые символы «5» у них одинаковы, у вторых код «а» меньше кода «б»). Следующий первый символ — «7» — у значения «7а». И наконец, последними будут значения «9а» и «9б».

В соответствии с этим порядком будут перемещены записи таблицы в результирующем наборе: сначала 5–я, затем 6–я, 2–я, 1–я, 3–я, 4–я.

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

Ответ: Порядок записей — 5, 6, 2, 1, 3, 4.

 

Фильтрация таблицы БД

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

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

И в том и в другом случае условие отбора должно быть записано в виде логического выражения. Логическое выражение — выражение, содержащее логические и арифметические операции, а также операции сравнения. Результатом логического выражения является логическая величина («истина» либо «ложь»). К логическим выражениям применяются все правила вычисления результатов логических операций.

Простейшая форма логического выражения в условии отбора — указание имени какого–либо поля логического типа. Поскольку такие поля имеют значения «истина» или «ложь», то результат выражения совпадет со значением поля.

Простые логические выражения могут содержать операции сравнения (их еще называют отношениями): больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), равно (=), не равно (≠ или <>). Сравнение данных производится по тем же правилам, что и при сортировке.

Операции сравнения накладывают требования на значения поля. Например, выражение Количество <= 100 требует найти все записи таблицы, в которых значение поля Количество не превышает 100.

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

Пример 5

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

Решение.

A) В результате будут отобраны записи, содержащие в поле Отправление значение «Женева». Это строки с номерами поездок 12, 460, 108.

Б) В этом логическом выражении участвует только название логического поля Доставка. Результатом отбора будут все записи, у которых это поле содержит значение «истина» («да»), т. е. записи о поездках с номерами 12, 3, 23.

B) Требуется найти значения в поле Назначение, которые больше значения «С». Это должны быть строки, которые начинаются с символа «С», но длиннее; или строки, которые начинаются с символа, код которого больше кода «С» (т. е. следующие по алфавиту). Из всех строк в поле Назначение подходит только значение «Стамбул» — все остальные начинаются с символов, предшествующих «С» в алфавите. Результатом будет запись о поездке с номером 460.

Ответ: результаты отбора — записи о поездках с номерами: А) 12, 460, 108; Б) 12, 3, 23; В) 460.

 

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

Результат применения операции И (логическое умножение) равен «истина» только тогда, когда обе части выражения истинны.

Результат применения операции ИЛИ (логическое сложение) равен «истина» только тогда, когда хотя бы одна из частей выражения истинна.

Результат применения операции НЕ (логическое отрицание) к какому–либо логическому выражению — «истина» тогда, когда исходное выражение ложно, и «ложь» — когда оно истинно.

Пример 6

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

  • A) (Отправление = «Женева») И Расстояние > 1000
  • Б) (Отправление = «Женева») И Доставка
  • B) (Отправление = «Женева» ИЛИ Отправление = «Киев») И (Назначение = «Амстердам» ИЛИ Назначение =»Берлин»)

Решение.

A) Сначала отбираются строки, удовлетворяющие первой части выражения (записи о поездках из Женевы — с номерами 12, 460, 108). Затем из них отбираются строки, которые удовлетворяют второй части выражения (записи о поездках с расстоянием свыше 1000 — с номерами 12 и 460).

Б) Сначала отбираются записи таблицы, удовлетворяющие первой части условия (о поездках с номерами 12, 460, 108). Затем из них отбираются те, в которых поле Доставка имеет значение «истина». Из отобранных строк только запись о поездке с номером 12 имеет значение поля Доставка «да» («истина»).

B) В соответствии со скобками сначала отбираются записи, удовлетворяющие первой части логического выражения. Затем — второй его части, после чего из них отбираются записи, удовлетворяющие обоим частям выражения (попавшие и в один, и в другой результаты отбора).

Первой части условия удовлетворяют записи с номерами поездок 12, 16, 460, 108. Второй части условия — записи с номерами поездок 12, 168, 3, 23, 16. Записи, попавшие в оба результата отбора, имеют номера 12, 16.

Ответ: результаты отбора — записи о поездках с номерами: А) 12, 460; Б) 12; В) 12, 16.

 

Пример 7

Для таблицы, приведенной в примере 5, записать условие отбора записей о поездках:
А) в пункт назначения Стамбул на расстояние не свыше 1000;
Б) из Женевы или Брюсселя на расстояние от 1000 до 2000.

Решение.

А) Условие о пункте назначения представляет логическое выражение Назначение =»Стамбул».

Условие об ограничении расстояния: Расстояние <= 1000.

По условию оба эти ограничения должны выполняться одновременно, поэтому для объединения следует использовать операцию логического умножения:
(Назначение =»Стамбул») И (Расстояние <= 1000).

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

Б) для отбора поездок из Женевы или Брюсселя должно быть записано условие Отправление = «Женева» ИЛИ Отправление = «Брюссель».

Для ограничения расстояния: Расстояние >= 1000 И Расстояние <= 2000.

Затем оба этих условия надо объединить логической операцией И, так как они должны быть выполнены одновременно:
(Отправление = «Женева» ИЛИ Отправление = «Брюссель») И Расстояние >= 1000 И Расстояние <= 2000.

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

 


Конспект урока по информатике «Базы данных. Поиск данных в базе данных«.

Вернуться к Списку конспектов по информатике.