У вас вопросы?
У нас ответы:) SamZan.net

Лекция 1- Введение в базы данных

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 3.2.2025

PAGE   \* MERGEFORMAT1

Лекция 1: 

Введение в базы данных. Общая характеристика основных понятий

1.1. Развитие основных понятий представления данных

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

Соотношение сложности представления обрабатываемых данных и алгоритма вычислений определяет два класса задач:

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

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

Рассмотрим простейший пример вычисления по формуле:

Y=X2+5X,

где X и Y – определенные числа, которые являются здесь элементарными единицами данных ( элементами данных ).

При программировании алгоритма решения этой задачи (программирование формулы) используется простейший вид данных – простая переменная ( X и Y представляются в программе простыми переменными). Заметим, что простая переменная в системах программирования характеризуется определенным типом ее значений, которые должны выбираться при программировании. Даже в этом простейшем случае необходимо правильно выбрать тип переменной, причем от этого выбора может зависеть возможность или невозможность решения конкретной прикладной задачи (например, для представления конкретных данных не хватит отведенных разрядов).

Рассмотрим другой пример:

S=a1+a2+...+aN.

Решение этой задачи в общем случае невозможно получить используя только простые переменные. Здесь обрабатывается не отдельное число, а последовательность чисел. В этом случае при программировании используется такой вид данных, как массив – совокупность элементов, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Все элементы должны иметь одинаковый тип их значений, который и будет типом массива. В этом случае числа a1, a2,..., aN представляются в программе массивом A(1), A(2),..., A(N).

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

Ранние языки программирования (ФОРТРАН, АЛГОЛ-60) были предназначены для решения научно-технических вычислительных задач. В этих языках использовались только вышеуказанные виды данных (простые переменные и массивы) что было вполне достаточно.

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

Задача 1. Начисление заработной платы.

Рассматриваем задачу при двух упрощающих предположениях:

  •  сотруднику начисляется заработная плата на основе его оклада;
  •  никакие налоги и вычеты не учитываются.

Необходимые для решения этой задачи сведения о сотруднике представлены в следующей карточке НАЧИСЛЕНИЕ:

Фамилия, имя, отчество

Оклад

Количество отработанных дней в месяц

Начисленная сумма

FIO

O

Ko

S

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

S=KoO/Kr,

где Kr – количество рабочих дней в данном месяце.

Для каждого сотрудника соответствующие данные имеют конкретное значение, например:

Иванов Иван Иванович

1800

24

1800

Эти значения имеют смысл только во взаимосвязи друг с другом. Отдельно выбранное число 1800 теряет свой содержательный смысл, поэтому использовать такой вид данных, как простая переменная, здесь нельзя. В то же время набор соответствующих значений, характеризующих конкретного сотрудника, имеет разные типы (символьный и числовой), т.е. использовать для его представления такой вид данных, как массив, также нельзя. Таким образом, понятий "простая переменная" и "массив" недостаточно, чтобы представить соответствующую карточку.

Для описания аналогичных представлений данных в предметной области невычислительных задач вводится ряд новых понятий [ [ 1.1 ] ].

Элемент данных (поле) – наименьшая единица поименованных данных.

Для данного примера элементами данных являются FIO, O, Ko, S.

Для описания карточки сотрудника используется понятие " Логическая запись ".

Логическая запись – поименованная совокупность элементов данных (полей).

Экземпляр логической записи – текущее значение элементов записи.

Для представления всего набора карточек сотрудников используется понятие " Логический файл "

Логический файл - поименованная совокупность всех экземпляров записей заданного типа.

Пример логического файла НАЧИСЛЕНИЕ:

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

В алгоритмическом языке Паскаль вводится такой вид данных, как запись (RECORD) – сложная переменная с несколькими компонентами, которые могут иметь разные типы. Кроме того, доступ к компонентам записи (полям) осуществляется не по индексу, а по имени. При программировании задачи 1 на языке Паскаль логическая запись НАЧИСЛЕНИЕ представляется видом данных RECORD, набор экземпляров логических записей сотрудников (логический файл) представляется "физическим" файлом, формируемым средствами языка Паскаль и операционной системы.

Salary = RECORD

     FIO: string;

     O: real;

     Ko: real;

     S: real;

END;

Отметим важную специфику таких невычислительных задач. Для этих задач характерны большие объемы данных (большое количество сотрудников, большое количество производимых изделий и т. п.). Указанные данные, как правило, используются для решения задачи многократно (зарплата начисляется постоянно каждый месяц), поэтому данные должны достаточно долго храниться в памяти ЭВМ. Для длительного хранения всегда используется внешняя память.

В связи с этим решение задачи 1 состоит из двух этапов.

1. Ввод исходных данных и занесение их во внешнюю память.

type

Salary = RECORD

FIO: string;

O: real;

Ko: real;

S: real;

END;

FSalary = File of Salary;

var

 F: FSalary;

...

{ Ввод исходных данных }

repeat

  write('Введите количество сотрудников (не более',

        MaxN,' ): ');

  readln(N);

until (N>0) AND (N<=MaxN);

For I := 1 to N do

Begin

 Write('Введите фамилию сотрудника с номером ',I,': ');

 ReadLn(Sotr[i].FIO);

 Write('Введите оклад сотрудника с номером ', I, ': ');

 ReadLn(Sotr[i].O);

 Write('Введите кол-во отработанных дней сотрудника с

       номером ', I, ': ');

 ReadLn(Sotr[i].Ko);

End;

{ Занесение данных во внешнюю память }

Assign(F, 'MyFile.fsf');

Rewrite(F);

For I := 1 to N do

 Write(F, Sotr[i]);

Close(F);

...

2. Чтение исходных данных из внешней памяти, расчет начисленных сумм и вывод на печать.

...

{ Чтение данных из внешней памяти }

Assign(F, 'MyFile.fsf');

Reset(F);

For I := 1 to N do

 Read(F, Sotr[i]);

Close(F);

{ Расчет и печать начисленных сумм }

For I := 1 to N do

Begin

 Sotr[i].S := Sotr[i].O * Sotr[i].Ko / Kr;

 WriteLn(Sotr[i].FIO, ': ', Sotr[i].S);

End;

...

Представленные программы решают поставленную задачу при сделанных предположениях. Необходимые для этого данные хранятся в файле MyFile.fsf, предназначенном только для решения этой задачи. Отметим, что в этом случае описание данных включено в прикладную программу. При изменении формата записей файла необходимо изменение прикладной программы. Таким образом, программная система, решающая поставленную задачу, определяет свои собственные данные и управляет ими. Такие программные системы называются файловыми системами [ [ 1.2 ] ], [ [ 1.3 ] ].

Задача 2. Учет кадрового состава.

Здесь обрабатываются сведения о сотруднике, представленные в карточке СОТРУДНИК:

Фамилия, имя, отчество

Должность

Год рождения

Оклад

Место жительства

FIO

D

G

O

M

Решение задачи состоит из следующих этапов:

Ввод исходных данных и занесение их во внешнюю память.

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

...

{ Чтение данных из внешней памяти }

Assign(F, 'MyFile.fsf');

Reset(F);

IsFound := False;

For I := 1 to N do

Begin

Read(F, Sotr);

If Sotr.FIO = KeyFio Then

Begin

 IsFound := True;

 Sotr.D := 'Начальник отдела';

 Seek(F, FilePos(F)-1);

 Write(F, Sotr);

 Break;

End;

If IsFound Then

WriteLn('Корректировка успешно произведена')

Else WriteLn('Сотрудника ', KeyFio, 'не обнаружено');

Close(F);

...

В рассматриваемом случае задача 2 решается независимо от задачи 1.

Задача 3. Учет экономии фонда оплаты труда (ФОТ) в связи с болезнью сотрудников.

Обрабатываются сведения, представленные записями ЭКОНОМИЯ ФОТ:

Фамилия, имя, отчество

Оклад

Количество дней на больничном листе

Невыплаченная сумма

FIO

O

Kдв

SN

SN=KдвO/Kr.

Программа решения задачи 3 аналогична программе решения задачи 1.

Рассмотрим типичный случай, когда все три вышеуказанные программные системы функционируют в одной организации. Отметим следующие принципиальные эксплуатационные недостатки:

Информация дублируется. В трех файлах присутствуют поля FIO, O, что приводит к существенному перерасходу памяти. При внесении изменений (например, изменении фамилии) приходится вносить одно и то же значение несколько раз в разные файлы, что приводит к увеличению затрат машинного времени. Существует потенциальная возможность противоречивости данных (в одинфайл изменения внесены, в другой – нет).

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

FIO

D

O

G

Ko

M

Kдв

S

SN

Дублирование информации полностью убрано. Расход памяти минимален. Недостатки устранены. Рассмотрим, как в этом случае изменится время решения задач 1–3. Время решения задачи прямо пропорционально объему считываемых из внешней памяти данных.

Обозначим Ti, li, Ni соответственно время решения, длину записи, число записей i -й задачи ( i = 1, 2, 3) при использовании отдельных файлов для каждой задачи:

где C – некоторый коэффициент пропорциональности.

Обозначим Ri, d, N соответственно время решения i -й задачи ( i = 1, 2, 3) при использовании файла объединенных записей, длину записи, число записей:

Заметим, что N1 = N2 = N, N3 << N.

Тогда время решения i -й задачи ( i = 1, 2) при использовании объединенного файла увеличится в  раз. Для нашего примера время решения задач в зависимости от выбранной длины полей может изменяться в 2–3 раза. Таким образом, платой за исключение дублирования информации является увеличение времени решаемых задач. Заметим, что такое увеличение, как правило, допустимо.

Время решения задачи 3 увеличится в  раз. Так как для данного примера N3 << N, тоR3 >> T3. Время решения задачи 3 может увеличиться на несколько порядков, что совершенно недопустимо.

Рассмотрим другой вариант построения единой информационной базы. Объединим записи задач 1 и 2, запись задачи 3 оставим отдельно. Получим два типа записей:

FIO

D

O

G

Ko

S

M

FIO

O

Kдв

SN

В этом случае дублирование остается (дублируются поля FIO, O ). Но так как N3<<N, то общий объем дублирования незначителен. Время решения задачи 1 и 2 в этом случае незначительно возрастет по сравнению с вариантом отдельных файловых систем, время решения задачи 3 такое же, как и в начальном варианте отдельного файла. Такое объединение позволяет значительно уменьшить влияние недостатков и в то же время существенно увеличивает время решения всех задач. Все три задачи можно решать, используя общую информационную базу из двух типов записей. Отметим, что два приведенных типа записей связаны друг с другом по полю FIO (находятся в некотором отношении). Отметим, что приведенные варианты интеграции не исчерпывают все возможные способы интеграции данных для приведенных задач и к вопросу выбора наилучшего варианта вернемся в последующих лекциях.

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

Для описания этого вида данных вводится новое понятие " База данных " [ [ 1.1 ] ].

База данных – совокупность экземпляров различных типов записей и отношений между записями и элементами.

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

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

Краткие итоги. Рассмотрено развитие основных понятий представления данных. Описаны классические понятия программирования, связанные с данными (переменнаямассив) и появление новых понятий программирования (полезапись,файл) как следствие расширения круга решаемых задач и их отражения в системах программирования. Поставлена задача интегрирования данных при использовании несколькими задачами общих данных. Определено понятие базы данных.




1. Общий обзор развития искусства Облик искусства Франции в XVII веке был образован взамиодействием двух течен
2. один з найважливіших методів вилучення цільови- продуктів з нативних розчинів
3. тематика дипломных проектов для специальности 080507 Менеджмент организации 1
4. Реферат на Тему- Национальная космическая система дистанционного зондирования Земли Выполн
5. Почти 70 Посвящается тебе
6. CLICK HERE Борт 12785ваш курс 120высота 8000
7. первых обстановкой которая окружала его в России а вовторых необычной для ученого биографией
8. Причинение умышленного вреда здоровью, повлекшее по неосторожности смерть потерпевшего
9. На тему- Конституция Российской Федерации 1993 года Выполнила- Студентка 3 курса группа 2 юриди
10. Улыбка муз. Шаинского сл