Опубликован: 11.09.2006 | Уровень: специалист | Доступ: свободно
Лекция 4:

Работа с данными

Аннотация: Что такое реляционная база данных? Элементы языка SQL. Агрегатные функции. Типы данных. Оператор сравнения like. Создание таблицы с помощью запросов. Команды изменения языка DML. Подключение к базе данных – технология ADO.NET. Модель объектов ADO.NET. Таблицы и поля (объекты DataTable и DataColumn). Объекты DataRelation. Строки (объект DataRow). DataAdapter. Объекты DBConnection и DBCommand. Использование визуальной среды для работы с ADO.NET. Server Explorer. Программирование объектов ADO.NET. CommandText. СonnectionString. Управление соединением. Объект Connection. Объект Command. Вывод связанных таблиц. Связывание элементов управления с данными. Перемещение по записям. Объект CurrencyManager. Изменение записей
Ключевые слова: базы данных, представление, реляционная база данных, поле, тип данных, СУБД, функции субд, определение, структуры баз данных, управление данными, операции, механизм "запрос-ответ", ПО, SQL, query language, значение, таблица, реальная таблица, информация, ID, связь, единица, отношение, один-ко-многим, параметр, первичный ключ, запись, SEQUEL, структурированный язык, поддержка, ANSI, ISO, стандарт языка, запрос, команда, память, объект, analyzer, server, Local, сервер, if, Windows, имя пользователя, пароль, пункт, меню, Object, browser, pane, model, база данных, execute, text, Grid, percent, процент, FROM, row, WHERE, операторы, выборка, AND, агрегатные функции, список, NULL, count, синтаксис, целое число, тип значения, поиск, C, LIKE, CDFS, DDL, имя таблицы, байт, DELETE, DML, ADO, net, Data, form, Wizard, visual, application, Solution Explorer, Add, new, item, NEXT, Connection, поставщик данных, OLE DB, provider, путь, admin, права доступа, available, дочерняя таблица, родительская таблица, parent, table, child, ALL, individual, control, finish, include, password, приложение, load, отмена изменений, Cancel, UPDATE, класс, отображение, передача данных, банк данных, точечная нотация, очередь, источник данных, адаптер, customer, dock, fill, Toolbox, procedure, generate, sql statement, INSERT, компонент, буфер, интерфейс, переменная, string, CMTS, листинг программы, изменение записей, строка соединения, пользователь, пространство, OPEN, связывание, адрес, окно предупреждения, additional, information

Для работы с данной лекцией используйте примеры.

Что такое реляционная база данных?

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

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

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

Любая СУБД позволяет выполнять следующие операции с данными:

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

Для выполнения этих операций используется механизм запросов. Результатом выполнения запросов является либо отобранное по определенным критериям множество записей, либо изменения в таблицах. Запросы к базе формируются на специально созданном для этого языке, который так и называется — язык структурированных запросов (SQL — Structured Query Language).

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

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

Простое занесение записей в таблицу

увеличить изображение
Рис. 4.1. Простое занесение записей в таблицу

Это и есть основа реляционной базы данных. Конечно же, реальная таблица будет содержать гораздо большее число записей и столбцов. Однако реляционные базы почти никогда не состоят из одной таблицы. Создав несколько таблиц, связанных между собой, мы сможем выполнить более сложные и мощные операции с данными. Но зачем связывать между собой таблицы? Один поставщик может предлагать большое количество различных товаров. В результате в нашей таблице будет большое количество повторяющихся однотипных записей. Если вынесем информацию о поставщике в отдельную таблицу, то в результате получим две таблицы: в одной будет информация о товаре, в другой — информация о поставщике. Связать две получившиеся таблицы мы сможем, вводя уникальный код поставщика (ID), который будет присутствовать в обеих таблицах. Схематическая связь таблиц, отображаемая в СУБД Microsoft Access ( входящая в комплект Microsoft Office) (рис. 4.2):

Связь таблиц по полю "Код поставщика"

Рис. 4.2. Связь таблиц по полю "Код поставщика"

Таблицы связаны по полю "Код поставщика", причем в таблице "Поставщики" на связи указана единица, а в таблице "Товары" — знак бесконечности. Эти символы и подтверждают нашу логику: один поставщик может предоставлять большое число товаров, а подобное отношение таблиц и называется "один-ко-многим".

Сами таблицы будут выглядеть так (рис. 4.3):

Связанные таблицы

увеличить изображение
Рис. 4.3. Связанные таблицы

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

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

На прилагаемом диске находится документ Microsoft Access RBProduct (Code\Glava4\ RBProduct.mdb), который содержит рассматриваемые выше примеры.

Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/