Аннотация: В лекции рассматриваются общие принципы организации программного обеспечения работы с реляционными базами данных, включающего: — создание и ведение базы данных; — создание пользовательских приложений, включающих разработку пользовательского интерфейса по работе с базой данных.
Цель лекции: дать общее представление об основных задачах программного обеспечения баз данных , существующих подходов к решению этих задач, в том числе и о структурированном языке запросов SQL .
11.1. Основные задачи программного обеспечения баз данных
При работе с реляционными базами данных можно условно выделить две основные задачи:
- собственно работа с базой данных , включающая создание и ведение базы данных (создание структур таблиц, добавление записи в таблицу, удаление записи, обновление, выборка нужной записи );
- создание пользовательских приложений, включающих разработку пользовательского интерфейса по работе с базой данных.
Для решения указанных задач современные СУБД в своем составе могут содержать следующие программные средства : языки процедурного пошагового программирования, средства визуального программирования (графический интерфейс , диспетчер проекта, мастера и построители), средства создания объектно-ориентированных приложений. Кроме этого, при разработке пользовательских программ во многих СУБД допускается использование других языков программирования, а также использование библиотек разного рода. Так, например, при работе с СУБД ACCESS можно использовать язык программирования ACCESS , мастер ACCESS и язык программирования VISUAL BASIC.
Занятие 1. Понятие базы данных. Первичный ключ. СУБД
При работе с клиент-серверными системами ситуация немного сложнее. Здесь в работе участвуют два типа компьютеров ( сервер и клиент) и, соответственно, различают клиентское и серверное программное обеспечение . Серверное программное обеспечение включает язык программирования , поддерживающий создание и ведение базы данных , также реализацию поступающих от клиентов запросов пользователей к базе данных. Пользовательские приложения создаются и работают на компьютерах-клиентах. Именно эти компьютеры должны иметь, наряду со средствами формирования запросов к базе данных, средства разработки интерфейса . В связи с этим, для клиент-серверных СУБД программное обеспечение разделяется на две части: программное обеспечение – клиент и программное обеспечение – сервер . Заметим, что наряду с программным обеспечением – клиент, при разработке пользовательских программ в конкретной СУБД могут использоваться другие языки программирования, специальные библиотеки, другие системы программирования (определенные для этой СУБД ). В качестве примера в таблице приводятся возможные варианты использования программного обеспечения для организации клиент-серверного взаимодействия в СУБД Microsoft SQL Server .
- Программное обеспечение клиента SQL-сервер (Transact SQL, SQL Server Query Analyzer и др.)
- MS Access (ODBC)
- MS Visual Basic
- MS Visual Studio
- MS Visual FoxPro
- Java (JDBC)
- Borland Delphi
- Borland C++Builder и др.
- Библиотеки функций (API, ODBC и др.)
Полное рассмотрение всего спектра программного обеспечения работы СУБД очень обширно и выходит за рамки данного пособия. Поэтому в данной работе будет рассмотрены только средства создания и ведения базы данных .
УРОК 13. Понятие базы данных. Система управления базами данных (10 класс)
11.2. Проблемы создания и ведения реляционных баз данных
При создании базы данных и организации работы с ней возникают три основные проблемы:
- собственно создание базы данных (создание таблиц, индексов, ограничений целостности);
- обеспечение безопасности и разграничения доступа;
- организация доступа к элементам таблицы (выборка, редактирование, удаление, добавление).
Первая проблема может быть решена посредством создания в каждой конкретной СУБД некоторой утилиты, позволяющей пользователю в определенный момент осуществлять все необходимые действия по созданию базы данных . Однако это не полностью решает проблему. Такая утилита не позволяет создать таблицу динамически во время работы прикладной программы, не позволяет, например, добавить в таблицу сформированнный во время работы пользовательской программы столбец. Необходимы средства, дающие возможность формирования во время работы прикладной программы запроса на изменение структуры и содержания базы данных . То же самое можно сказать и о решении второй проблемы.
Более подробно рассмотрим возможный путь решения третьей проблемы. Организация доступа к базе данных является важнейшей функцией информационной системы. Пользователи постоянно работают с данными. Рассмотрим простой пример. Пусть у нас есть таблица СТУДЕНТ, хранящая информацию следующего рода:
СТУДЕНТ (Код студента, Фамилия, Имя, Отчество, Дата поступления).
Теперь мы хотим выполнить некоторый запрос к базе данных, результатом которого должны стать те строки таблицы СТУДЕНТ, для которых дата поступления окажется больше 01.06.2006. Рассмотрим последовательность действий для реализации данного запроса.
- Получаем доступ к таблице СТУДЕНТ и устанавливаем указатель текущей строки на первую строку таблицы.
- Анализируем поле «Дата поступления » в текущей строке.
- Если значение «Дата поступления» > «01.06.2006», распечатываем на экране данные об абитуриенте.
- Если таблица не кончилась, перемещаем указатель текущей строки на следующую строку и переходим к шагу 2, иначе заканчиваем работу.
Любой человек, знакомый с программированием, легко представит себе реализацию подобного алгоритма на любом языке программирования высокого уровня. Вот, в частности, пример реализации на Object Pascal :
Table.First; while (not Table.Eof) do begin if FieldByName(«Дата поступления»).Value > «01.06.2006» then List.Add(FieldByName(«Фамилия»).AsString); Table.Next; end;
В этом случае разработчик приложения сам организует работу по выборке данных, программируя каждое движение по таблице (осуществляет навигацию по таблице).
Такой подход к обработке данных, ориентированный на последовательную работу с отдельными записями, называется навигационным. Здесь на конкретном языке программирования мы описываем процедуру — последовательность действий, необходимых для получения результата. Языки, в которых используется такой подход, называются процедурными. Очевидно, что с возрастанием сложности запроса существенно возрастает сложность процедуры и, соответственно, объем текста программы.
При работе с информационной системой пользователь реализует свои запросы к базе данных с помощью разработанных программистами прикладных программ. При навигационном подходе должны быть запрограммированы все возможные запросы. Очевидно, что заранее предугадать все запросы, потребность в которых может возникнуть и запрограммировать их, невозможно. С учетом того, что подавляющее большинство пользователей не владеет навыками программирования, это означает, что объем их действий будет ограничен рамками написанных программ, а именно, теми запросами, реализация которых предусмотрена заранее.
Кроме того, должен учитываться механизм взаимодействия в рамках архитектуры «клиент – сервер «. Пользовательская программа выполняется на компьютере–клиенте. Запрос к базе данных реализуется компьютером – сервером. Необходим механизм формирования в пользовательской программе клиента запроса к базе данных сервера. В этом случае навигационный подход неприемлем.
В связи с этим, для работы с базами данных разработан и используется другой подход, основанный на использовании так называемых языков запросов, которые задают не последовательность необходимых действий, а условия, которым должен удовлетворять результат (при добавлении столбца, выборке записи, добавлении записи и т. п.). Такой подход решает все три вышеперечисленные проблемы.
С этой целью разработан и активно используется во всех базах данных – специальный язык запросов SQL. Особо отметим, что основой языка являются операции реляционной алгебры .
Язык SQL (Structured Query Language – структурированный язык запросов) применяется для общения пользователя с реляционной базой данных и состоит из трех частей [ [ 11.2 ] ]:
- DDL ( Data Definition Language ) – язык определения данных. Предназначен для создания базы данных (таблиц, индексов и т.д.) и редактирования ее схемы.
- DCL (Data Control Language ) – язык управления данными. Содержит операторы для разграничения доступа пользователей к объектам базы данных.
- DML ( Data Manipulation Language ) – язык обработки данных . Содержит операторы для внесения изменений в содержимое таблиц базы данных.
Как видно из написанного выше, SQL решает все рассмотренные ранее вопросы, предоставляя пользователю достаточно простой и понятный механизм доступа к данным , не связанный с конструированием алгоритма и его описанием на языке программирования высокого уровня. Так, вместо указания того, как необходимо действовать, пользователь при помощи операторов SQL объясняет СУБД , что ему нужно сделать. Далее СУБД сама анализирует текст запроса и определяет, как именно его выполнять.
В архитектуре «клиент – сервер » язык SQL занимает очень важное место . Именно он используется как язык общения клиентского программного обеспечения с серверной СУБД , расположенной на удаленном компьютере. Так, клиент посылает серверу запрос на языке SQL , а сервер разбирает его, интерпретирует, выбирает план выполнения , выполняет запрос и отсылает клиенту результат.
Посмотрим, как выглядит запрос на языке SQL , решающий задачу о выборке студентов по дате поступления.
SELECT Фамилия FROM Студент WHERE Дата поступления > «01.06.2006»
Может сложиться ложное впечатление, что появление языка SQL является альтернативой языков программирования высокого уровня. Это не соответствует действительности. Выполнение запроса средствами SQL все равно сводится к работе с отдельными записями, и от этого никуда не уйти. Важно понимать, что появление языка SQL дало, по крайней мере, две новые возможности.
- Появился новый уровень абстракции между пользователем и СУБД. Этот уровень находится ближе к пользователю, чем уровень программирования на языке высокого уровня, что снижает требования к квалификации пользователей.
- Многие типовые задачи, возникающие при работе с базами данных, и ранее решаемые каждым программистом по-своему (зачастую дублируя действия другого программиста) решены реализацией языка SQL. Таким образом, отпала необходимость самостоятельного решения многих проблем, решенных в СУБД соответствующим образом. Язык SQL предоставляет средства для доступа к этим типовым возможностям СУБД.
Источник: intuit.ru
Контрольная работа 5
Хранение, поиск и сортировка информации в базах данных
Задание 1. Обведите в кружок номера правильных ответов на вопросы теста.
1. Определённым образом организованная совокупность данных некоторой предметной области, предназначенная для хранения во внешней памяти компьютера и постоянного применения, — это:
1) система счисления;
2) алфавитный указатель;
4) система управления базами данных.
2. Столбцы табличной базы данных называют:
3. Каждое поле в базе данных имеет:
4. Какое приложение является СУБД:
1) OpenOffice Base;
2) OpenOffice Impress;
3) Microsoft PowerPoint;
4) Microsoft Excel?
5. Как называется программа, обеспечивающая управление созданием и использованием базы данных:
2) электронная таблица;
6. С помощью какой программы можно создавать и редактировать однотабличные базы данных:
2) электронной таблицы;
3) графического редактора;
7. В СУБД формы предназначены для:
1) отбора и обработки данных базы;
2) ввода данных базы и их просмотра;
3) выполнения сложных программных действий;
4) хранения данных.
8. База данных СУБД не может существовать без:
9. Поиск данных (отбор записей по условию) в электронных таблицах осуществляется с помощью:
10. Как в электронных таблицах называется сортировка данных последовательно по нескольким полям:
Количество правильных ответов:_____________________
Количество неправильных ответов:___________________
Оценка за тестовую часть:__________________________
Источник: xn—-7sbbfb7a7aej.xn--p1ai
Как называется совокупность программных средств, которая обеспечивает управление созданием и использованием баз данных?
Как называется функция, которая вызывается над функцией, расширяя функциональность объекта?
Как называется проверка пользовательских данных на то, что они переданы в необходимом формате?
Как называется время «путешествия» сегмента данных от одного компьютера к другому и обратно?
Как называется периодический опрос сервера клиентом с целью получения новых данных?
Как называется схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, интерфейс и взаимодействие с пользователем разделены на три отдельных компонента?
Как по-другому называется сценарий регистрации пользователя?
Как называется язык разметки векторной графики?
Источник: bazaintuit.ru