НАЧАЛО РАБОТЫ 1. Основные понятия. 1.1. Понятие и назначение банков данных. Банк данных – это система специальным образом организованных данных, предназначенная для их накопления и использования. В банке данных отображается определенная часть реального мира (так называемая предметная область). Поэтому банк данных обычно создается не для решения какой-то одной задачи, а для многоцелевого использования информации по определенной теме.
Традиционные системы накопления информации, такие как картотеки, требуют больших временных затрат на внесение и дальнейший поиск информации, особенно если хранимая информация не однотипна. При этом во избежание ошибок, одни и те же данные приходится дублировать. Анализ данных и подготовка необходимых отчетов занимает много времени и сил. А обнаружение одной ошибки, допущенной в начале, приводит к необходимости исправления всех результатов проделанной работы. Все это делает традиционную систему накопления информации сложной и негибкой в использовании.
Банк данных является простой и удобной, а главное лучшей, альтернативой любой картотеке. Он позволяет существенно облегчить и удешевить работу с большими объемами информации. При этом достигается полнота, непротиворечивость и достоверность отображения предметной области. В связи с этим, нет необходимости повсеместного дублирования информации.
1.2.Банк данных, база данных, записи, поля и значения. В данном руководстве используется традиционные термины, для описания банков данных: база данных, запись базы данных, поле записи, значение поля, – которые соответствуют иерархии составляющих банка данных от большего к меньшему. Работа с этими частями банка данных будет описана в соответствующих главах настоящего руководства. Но для того чтобы уже в начале работы, было ясно, о чем идет речь, определения этих понятий приведены в данном разделе.
Понятие базы данных. База данных – это некоторая, относительно самостоятельная часть банка данных. В ИСУБД «CronosPlus» данные хранятся в базах данных. Поэтому база данных это основа любого банка данных. Конкретный состав баз данных в банке и их связи1 между собой определяют структуру банка данных.
База данных содержит описание реальных объектов. Так, например, клиенты Вашей фирмы являются реальными объектами. Информация об объектах (в данном случае о клиентах) будет накапливаться в соответствии со структурой базы данных. То есть структура базы данных это структура накапливаемой информации.
Если бы использовалась традиционная система накопления информации, данные о клиентах, находились бы в отдельной картотеке, где одна карточка соответствовала бы одному клиенту. Причем все карточки были бы однотипными, т.е. данные хранились бы в соответствии с некоторым шаблоном. Каждая карточка содержала бы информацию о фамилии, имени, отчестве клиента, гражданстве, дате рождения клиента, контактном телефоне и т.д. В данном примере вся картотека соответствует базе данных. А структура шаблона карточки – структуре базы данных.
Можно привести другой, более абстрактный пример. Представим, что база данных это таблица (в ИСУБД «CronosPlus», таблица это одно из возможных представлений базы данных на экране). Таблицы состоят из строк и столбцов. Названия столбцов выделены в «шапку» таблицы. Вся таблица, в том числе ее содержимое, будет соответствовать базе данных, а «шапка» таблицы – структуре базы данных.
Запись базы данных. Базы данных состоят из записей, точно также как картотеки состоят из карточек. В картотеке каждому клиенту соответствует одна карточка. В базе данных каждому клиенту соответствует одна запись. Если у Вашей фирмы сто клиентов – в базе данных будет сто однотипных записей о клиентах, в соответствии со структурой базы данных. Возвращаясь к примеру с таблицей, можно сказать, что одна строка таблицы это одна запись базы данных, структура которой соответствует структуре «шапки» таблицы.
Следует отметить, что каждая запись в ИСУБД «CronosPlus» имеет системный номер. Он присваивается записи автоматически и предназначен, для того чтобы система могла различать записи между собой даже в тех случаях, когда они содержат одинаковые значения. Пользователь видит (и иногда использует) системный номер, присвоенный каждой записи, однако не может его изменять.
Поле записи. Значение поля. Поле записи – это структурная единица, т.е. составляющая записи. Каждая запись базы данных содержит один и тот же набор полей. Определить структуру базы данных, означает, в частности, решить, какие поля будут входить в запись базы данных. Если в базе данных накапливается, например, информация о клиентах Вашей фирмы, то, как уже говорилось, она будет содержать информацию о фамилии, имени, отчестве клиента, гражданстве, дате рождения клиента, контактном телефоне и т.д. Это означает, что каждая запись базы данных будет состоять из полей «Фамилия», «Имя», «Отчество», «Гражданство», «Дата рождения», «Контактный телефон» и т.д.
Значение поля – это конкретные данные, хранимые в каждом поле. Например, в базе данных по клиентам Вашей фирмы, каждая запись, среди прочих, содержит поле «Фамилия». Для каждой записи, это поле содержит свое значение, т.к. каждая запись соответствует некоторому конкретному клиенту. Для первой записи значение поля «Фамилия» – Иванов, для второй – Некрасов, для третьей – Смирнов и т.д.
Представив базу данных в виде таблицы, можно сказать, что, если записи базы данных это строки таблицы, а поля записей это столбцы таблицы, то точка пересечения строки и столбца – значение данного поля данной записи.
Важнейшие свойства полей. Следует отметить, что в ИСУБД «CronosPlus», поля имеют различные свойства. Некоторые из них (наиболее существенные) приведены в данной главе. Более подробно описание и назначение всех свойств полей приведено в главе 4 (см. раздел 4.3).
Главным из свойств поля является тип данных поля. В общем, можно сказать, что тип данных поля зависит от того, значения какого рода будут храниться в этом поле, а также от того какие операции будут выполняться над этими значениями. Наиболее часто используется тип данных Текстовый, который применяется, например, для хранения данных о фамилии, имени и отчестве. Для хранения информации о дате рождения клиента, применяется тип данных Дата. Количественные характеристики – это данные типа Числовой и т.д.
Разделение полей по типам нужно для того чтобы и пользователю, и системе было удобнее выполнять конкретные операции над значениями полей. Например, в Вашей базе данных накапливается информация по отгрузкам товара со склада, и Вы хотите узнать, какое количество данного товара отгружено за некоторый период (например, квартал). Для этого система сначала отберет только те записи, которые в поле «Дата отгрузки» содержат дату соответствующую выбранному периоду. Для этого система должна воспринимать значение поля «Дата отгрузки» именно как дату – обозначение конкретного дня месяца, а не как набор символов. Таким образом, поле «Дата отгрузки» должно иметь тип Дата. Затем система сложит значения поля «Отгружено» для всех отобранных записей. Операция сложения (и др. арифметические операции) может производиться только над полями типа Числовое, т.к. если провести операцию сложения или тем более операцию умножения над значениями текстовых полей (например, перемножить значения полей «Фамилия» и «Название товара»), результат может оказаться каким угодно. В частности, Вы можете просто потерять часть данных. Поэтому поле «Отгружено» должно иметь тип Числовое.
Еще одним существенным свойством поля является количество значений, которые могут одновременно храниться в этом поле. Поле может быть не множественным (не кратным), если оно может одновременно содержать только одно значение, или множественным (кратным), если таких значений может быть несколько. Например, в базе данных есть поле «Владение иностранными языками». Заполняя это поле, Вы можете столкнуться с тем, что кто-то владеет двумя иностранными языками, например, английским и французским. Встает вопрос, как вводить и хранить эти данные.
Можно создать две записи об одном человеке, одна из которых в поле «Владение иностранными языками» будет содержать значение «английский», а вторая «французский». Т.е. продублировать всю информацию о человеке только из-за значения одного поля. Это неудобно, особенно если запись содержит много других полей, и может Вас просто запутать (через некоторое время Вы можете забыть о том, зачем была введена вторая запись, и удалить ее или решить, что записи соответствуют двум разным людям).
Можно в поле «Владение иностранными языками» ввести значение «английский, французский». Но тогда поиск информации будет затруднен. Для того чтобы отобрать данные о тех, кто знает английский язык, Вам потребуется искать не только те записи, в которых поле «Владение иностранными языками» содержит значение «английский», но и содержащие «английский, французский», «французский, английский», «английский, французский, немецкий» и т.д. Это очень утомительно и занимает массу времени.
Лучшим выходом в такой ситуации будет определить поле «Владение иностранными языками» как множественное (кратное). Тогда, в случае со знанием нескольких иностранных языков, это поле будет содержать столько значений, сколько потребуется.
Следует отметить еще одно важное свойство поля, которое может определить пользователь. Это обязательным или необязательным для заполнения является данное поле. Дело в том, что если, например база данных содержит информацию о клиентах, запись, в которой не указана хотя бы фамилия клиента, является бессмысленной. Поэтому поля, имеющие важное значение, следует делать обязательными. А те поля, которые содержат дополнительную информацию, необязательными.
|