Главная » C# » Реляционные базы данных в Visual C# (Sharp)

0

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

Основной целью этой главы является демонстрация обращения к реляционным бам данных с помощью ADO.NET и Visual Studio Dataset Designer. Также, т. к. нам будет нужна база данных для работы, мы научимся создавать базу данных в Visual С# Express.

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

Организация реляционных баз данных

Для начинающих разработчиков управление данными в реляционной базе данных является одной из самых трудных задач. По сути, концепция реляционной базы данных является довольно старой технологией. Реляционная модель, лежащая в ее основе, была разработана  приблизительно в 1969 г. (согласно записи для реляцнной модели в английской версии Википедии — http://en.wikipedia.org/wiki/ Relational_model) . В то й ж е Википеди и (http://en.wikipedia.org/wiki/ReIational _ database) приводится следующее определение реляционной базы данных: "Строго говоря, реляционная база данных — это всего лишь коллекция отношений’ (котые часто называются таблицами). Другие элементы также часто считаются частью базы данных, т. к. они применяются для организации и структурирования данных, а также для обеспечения соответствия базы данных определенным требованиям".

1  По-английски relation, откуда и часть "реляционная". — Пер.

Таблицы реляционных баз данных

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

2000.05.31 5 6 13 23 25 37 43 2000.06.03 7 10 11 18 32 41 5 2000.06.07 15 23 24 28 38 39 45

2000.06.10 1 3 12 23 29 33 27

2000.06.14 2 4 13 19 39 45 26

2000.06.17 3 8 17 19 21 25 35

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

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

2000.05.31 никто 5 6 13 23 25 37 43 2С00.06.03 никто 7 10 11 18 32 41 5 2000.06.07 никто 15 23 24 28 38 39 45

2000.06.10 Джек 1 3 12 23 29 33 27

2000.06.14 никто 2 4 13 19 39 45 26

2000.06.17 никто 3 8 17 19 21 25 35

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

Следует ли поместить всю информацию о Джеке в таблицу, содержащую выиышные лотерейные номера, или же создать для нее отдельную таблицу? Правилым решением будет создать отдельную таблицу. Но т. к. мы работаем с файлами, то создадим файл, а не таблицу. Поскольку имя выигравшего джек-пот — Джек, то и файл назовем jack.txt. Информация, содержащаяся в этом файле, может быть слующей:

Джек Смит Адрес Город Страна

Между информацией в файле jack.txt и информацией в файле лотерейных номеров существует отношение, которым является человек, выигравший джек-пот. В этом и заключается суть реляционных баз данных. На практике вместо файлов, содержих перекрестные ссылки друг на друга, применяются реляционные базы данных, т. к. они являются чрезвычайно эффективным инструментом для управления таицами и отношениями. Эффективность методов управления данными, продемотрированных в главе 10, не идет ни в какое сравнение с эффективностью методов реляционных баз данных, которые могут работать с терабайтами данных. Кроме этого, реляционные базы данных позволяют создавать эффективные отношения между данными больших объемов, порядка тех же терабайтов.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии