среда, 29 апреля 2020 г.

Урок 53-54. Многотабличные базы данных

Дистанционное обучение. Дата занятия 30.04.20
Срок выполнения задания (решение двух задач) 22:00 час 30.04.20

Почему бы не собрать все данные в одной таблице?
У однотабличной модели есть недостатки:

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

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

В конце презентации находится задание, которое надо выполнить сегодня, до 22:00

среда, 22 апреля 2020 г.

Урок 51-52. БД как модель предметной области

Дистанционное обучение. Дата занятия 23.04.20
Срок выполнения задания (заполнение формы) не позднее 22:00 час 23.04.20

Информационные системы и БД

В настоящее время для хранения, поиска, выдачи информации по запросам пользователя используются различные информационные системы.
Примеры информационных систем:

  • Справочная адресная служба большого города
  • Транспортная информационная система, обеспечивающая также и покупку железнодорожных и авиабилетов
      
  • Информационно-поисковая система правового характера

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

В середине ХХ века  были предложены следующие принципы  проектирования табличных БД:
    ,
  • Каждая таблица описывает один класс объектов;
  • Порядок расположения полей в таблице не имеет значения;
  • Все значения одного поля относятся к одному типу данных;
  • В таблице нет двух одинаковых записей;
  • Порядок расположения  записей в таблице не имеет значения.

Поэтому можно дать следующее определение. 
Реляционная БД - это БД, которую можно представить в виде набора таблиц с установленными между ними связями.

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

Для проектирования БД средней сложности наиболее часто используются Microsoft Access, OpenOffice.org Base, LibreOffice Base.

Основными объектами СУБД являются:
  • Таблицы - это основной тип объектов. В таблицах хранятся данные.  
  • Формы - это вспомогательные объекты. Они обеспечивают удобную работу с данными в таблице.  
  • Запросы - это команды и результаты обращения пользователя к СУБД для поиска данных в таблицах, сортировки, добавления, удаления и обновления записей в таблицах.
  • Отчеты - это документы, сформированные на основе таблиц и запросов и предназначенные для вывода на печать.

Реляционные БД

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

Типы данных БД

Основные типы полей:
  • числовой - для полей, содержащих числовую информацию. Длина поля - стандартная
  • текстовый - для полей, содержащих произвольные последовательности символов. Длина поля - это максимальное количество символов, которые можно записать в это поле
  • логический - для полей, данные которых могут принимать только 2 значения: ДА/НЕТ или 1/0. Длина поля - стандартная
  • дата - для полей, содержащих календарные даты. Длина поля - стандартная
Посмотрим на уроке эту презентацию про БД
В срок до 22:00 23.04.20 заполните эту форму, ответьте на вопросы
Учтите, в 22:00 доступ к форме будет закрыт, ваши ответы приниматься не будут.

среда, 15 апреля 2020 г.

Урок 49-50. Цикл While. Решение задач

Дистанционное обучение. Дата занятия 16.04.20
Срок выполнения задания до 22:00 час 16.04.20
   Продолжаем решать задачи с использованием цикла While.
Давайте посмотрим, как по-разному решают одну и ту же задачу человек и компьютер.
   Задача: найти сумму пяти чисел:  5  15  7  12  3
Человек напишет так:
Sum = 5+15+7+12+3
Sum =42
Компьютер одновременно может работать только с двумя объектами.
Поэтому у него получится так:
Sum:=0;
Sum:=Sum+5;    // взять старое значение Sum:=0 и увеличить на 5
Sum:=Sum+15;  // взять старое значение Sum:=5 и увеличить на 15
Sum:=Sum+7;   //  взять старое значение Sum:=20 и увеличить на 7
Sum:=Sum+12;  // взять старое значение Sum:=27 и увеличить на 12
Sum:=Sum+13; //  взять старое значение Sum:=39 и увеличить на 3
Writeln (Sum);  //  вывести результат 42
Что же мы видим?
Компьютер несколько раз повторяет одни и те же действия:
"взять старое значение Sum и увеличить на Х"
Так это же цикл!
А теперь попробуем смоделировать работу кассира.
Каждый из нас ходит в магазин и расплачивается у кассы, вынимая один товар за другим.
А на индикаторе у кассира с каждой новой покупкой увеличивается значение суммы (она называется промежуточной или текущей суммой).
Когда все товары выложены из корзинки, кассир выбивает чек.

Задача While_kassa. Вычислить общую стоимость покупки, в которую входит 5 различных товаров. Стоимость очередного товара вводится командой read. Во время работы программы выводить промежуточные суммы. В конце работы вывести общую стоимость покупки
Блок-схема

Программа
program while_kassa;
var  sum: real;// общая стоимость покупки
var  num: real;// стоимость одного товара
var  j: integer;
begin
  writeln('Проходите на кассу');
  sum := 0; //вы еще ничего не купили
  j := 1;
  while j <= 5 do
  begin
    write('Введите стоимость товара:');
    readln(num);  // стоимость товара
    sum := sum + num; // это промежуточная стоимость покупки
    writeln(sum); // выводим промежуточную стоимость
    j := j + 1;  //
  end;
  writeln('стоимость покупки = ', sum );
end.




Задание на оценку 3: переписать и запустить задачу While_kassa, перерисовать блок-схему.
Прислать письмо с прикрепленными файлами: текста программы, скриншота экрана, фотографии блок-схемы
Задание на оценку 4-5: выполнить самостоятельную работу-ДОТ2

четверг, 9 апреля 2020 г.

Урок 47-48. Цикл с предусловием While

Дистанционное обучение. Дата занятия 9.04.20
Срок выполнения задания 9.04.20
   Мы рассмотрели алгоритмы, в которых действия выполняются последовательно.
Рассмотрели алгоритмы, в которых в зависимости от выполнения условия выполняется одна или другая ветвь программы (разветвляющиеся алгоритмы).
   Но есть много процессов, в которых некоторая последовательность действий повторяется раз за разом. Например, смена времен года. Работа нашего сердца. Трезвон будильника. Мерцание курсора на месте вставки символа...  Таким образом мы приходим к понятию цикла.
   Цикл - это многократно повторяющаяся последовательность действий. В программировании есть несколько видов циклов. Сегодня мы знакомимся с одним из них

Синтаксис цикла While 

Оператор цикла while имеет следующую форму:
while условие do
  
оператор
Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.
Если вместо одного оператора в теле цикла требуется выполнить несколько операторов, то используется блок команд begin...end.
Если условие всегда оказывается истинным, то может произойти зацикливание программы:
while 2>1 do
    write(1);

Чтобы прервать зациклившуюся программу, выполняющуюся из интегрированной среды в режиме связи с оболочкой, следует использовать комбинацию клавиш Ctrl-F2 или пункт меню Программа/Завершить
Изменение логического условия  внутри цикла должен обеспечить программист!

Пример. Программа While1Программа выводит на печать числа от 1 до 10. Числа нужно разделять пробелами.
Алгоритм:
1. Объявить целочисленную вспомогательную переменную i, которая будет принимать значения от 1 до 10.
2. Определить начальное значение переменной i, равное 1.
3. До тех пор пока значение переменной i будет меньше либо равно 10, выводить текущее значение i и переходить к следующему (увеличивать значение переменно i на 1).


  
//Вывести числа от 1 до 10 через пробел

program while1;
var i: integer;  //целое число
begin
writeln ('Вас приветствует программа Петрова П');
  i := 1;  //задать начальное значение переменной i
  while (i <= 10) do
  begin
      write (i, '   ');  //Вывод значений переменной i через пробелы          
      i := i + 1;       //Увеличение значения 
переменной i на 1
  end;
end.

Задание

1. Прочитали пост? Теперь напишите письмо учителю информатики.
Тема письма: 8 кл ДОТ 1 Цикл  Паскаль  <ваша фамилия>
 В письме ответьте на вопросы:
1.1. Что такое цикл?
1.2. Приведите пример двух циклических процессов (техника, природа, быт)
1.3. Сколько раз выполнится цикл? Сколько раз будет выведено Ok! ?
    while 2 > 2 do
       
writeln('Ok!')

2. Перепишите  программу While1 к себе в тетрадь и на ПК. Запустите ее.

3. Выполните эту   Самостоятельную работу

Самостоятельную работу выполнить сегодня 9.04.2020 до 23.00, результат выслать по школьной  эл почте
Тема письма: 8 кл ДОТ 1  Паскаль  <ваша фамилия>