четверг, 19 декабря 2024 г.

Урок 15-16. Многотабличные БД. Три типа связи между таблицами

Дата проведения занятия 26.12.24 теория, 9.01.25 практика

Теория
БД – компьютерная модель, построенная после проведения классификации объектов

Таблица описывает множество объектов с одинаковыми параметрами (число и названия параметров — одинаковы).
Каждая строка (запись) описывает один объект, т. е. содержит в полях значения параметров.
Поле имеет имя и определенный тип. Все поля с одним именем имеют одинаковый тип. Имя и Тип поля задаются при создании таблицы. Некоторые поля могут быть обязательны для заполнения, а другие нет.
Поле содержит данное определенного типа с определенными свойствами

Тип данных — определяет множество значений, которые может принимать данное поле в различных записях. Свойства поля — длина, формат, значение по умолчанию.
СУБД проверяет вводимое в поле данное на соответствие установленному типу и свойствам (целостность по данным).
В LibreOffice Base используются около 20 типов. Их можно разделить на 5 категорий:

  • числовой (число натуральное, целое, десятичное, двоичное и другие)
  • символьный (текст — одна строка или несколько) 
  • дата/время (дата, время)
  • логический
  • картинка

Записи о разных объектах должны обязательно чем-то отличаться, чтобы иметь возможность выбирать точно нужную запись. Для этого в каждой записи должно быть поле, которое имеет уникальное значение. Такое поле называют ключом или первичным ключом. (слайд 13 - Презентация)
В СУБД Base предлагается создать это поле, если разработчик не создал его сам — это поле ID. Ключ, который добавляется автоматически, называют суррогатным. Это поле обязательно имеет тип INTEGER и должно заполняться автоматически самой СУБД.

Многотабличные БД

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

Связывается ключевое поле главной таблицы и  поле подчиненной таблицы, которое называется внешним ключом  (слайды 23 - 25  презентации). 

Существует 3 типа связей между таблицами: 
  • один-ко-многим (1:N), 
  • один-к-одному (1:1), 
  • многие-ко-многим (N:M). 
Виды связей показаны на  слайдах 26-30 презентации

четверг, 12 декабря 2024 г.

Урок 13-14. Основные понятия об ИС и БД

Проблемный вопрос: как организовать хранение огромного количества данных так, чтобы можно было легко находить указанные данные. Пример - библиотека: множество книг стоят на полках …. Как найти нужную?
Можно ли для этого использовать компьютер?

Откуда и каким образом в интернете появились базы данных, в которых поисковые системы ищут ответы на наши вопросы?

Материалы по теме смотрите на странице

Дата проведения занятия 12.12.24

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

Информационная система (ИС) в широком смысле - это аппаратные и программные средства, предназначенные для того, чтобы своевременно обеспечить пользователей нужной информацией.
База данных (БД)  это специальным образом организованная совокупность данных о некоторой предметной области, хранящаяся во внешней памяти компьютера.
Система управления БД (СУБД) - это программные средства, которые позволяют выполнять все необходимые операции с БД 
В середине ХХ века  были предложены следующие принципы  проектирования табличных БД:
    ,
  • Каждая таблица описывает один класс объектов;
  • Порядок расположения полей в таблице не имеет значения;
  • Все значения одного поля относятся к одному типу данных;
  • В таблице нет двух одинаковых записей;
  • Порядок расположения  записей в таблице не имеет значения.
  1. Классификация ИС 
  2. Транзакция
Основные определения из предыдущих слайдов запишите в тетрадь.
Понятия БД тесно связаны с понятиями классификации объектов.
Классификация множества объектов помогает установить связи и закономерности внутри этого множества, построить модель, а следовательно изучить. 


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

Таблицы. Основные определения 


  • Поле  простейший объект БД, предназначенный для хранения значений параметра описываемого объекта.
  • Структура записи - совокупность логически связанных полей, характеризующих параметры реального объекта.
  • Запись – совокупность логически связанных полей, характеризующих свойства описываемого объекта
  • Таблица - совокупность записей одной структуры. В зависимости от структурирования данных в БД может быть несколько таблиц.
  • Ключ - поле или комбинация полей, однозначно определяющая запись.
    В СУБД Base
    в качестве ключа обычно используют тип «Целое [INTEGER]».

На практике работаем с  СУБД в приложении LibreOffice.org Base

четверг, 5 декабря 2024 г.

Урок 12. Поиск минимума , максимума

Дата проведения занятия 5.12.24
В программировании поиск - одна из наиболее часто встречающихся задач невычислительного характера.

Предположим, что мы хотим проанализировать результаты забега на 100 метров.
  • Необходимо выяснить, кто занял первое место.
  • Необходимо выяснить, кто занял 1, 2, 3 место
  • Необходимо выяснить, насколько победитель пробежал быстрее самого слабого участника 
Все эти задачи сводятся к поиску максимального или минимального значения элемента последовательности.
Компьютер не может сравнить разом весь ряд объектов. На каждом шаге он может сравнивать только два объекта. Поэтому в программе необходимо организовать последовательный просмотр элементов последовательности и сравнение значения очередного просматриваемого элемента с некоторым образцом. Самое большое значение в последовательности называется максимумом, самое маленькое - минимумом. Максимумов и минимумов может быть несколько. Значение, которое меньше максимума, но больше всех остальных элементов, называется вторым максимумом. Аналогично, значение, которое больше минимума, но меньше всех остальных элементов, называется вторым минимумом

Пример программы поиска первого максимума

print('Поиск максимума в последовательности из 10 сл чисел от 5 до 20')
from random import *
max_el= 3 # Принудительный макс, самое мин значение
for i in range (10):
    x = randint(5, 20)
    print(x, end=',')
    if x > max_el:
        max_el = x
print ('')
print ('max_el=', max_el)

Пример программы поиска последнего минимума  
print('Поиск минимума в последовательности из 10 сл чисел от 5 до 20')
from random import *
min_el= 25 # Принудительный min, самое max значение
for i in range (10):
    x = randint(5, 20)
    print(x, end=',')
    if x <= min_el:
        min_el = x
print ('')
print ('min_el=', min_el)  

Работа на ПК в классе по группам:

   Написать программу, которая выясняет, насколько максимальное значение больше минимального в последовательности из 15 случайных чисел от 5 до 20

Домашнее Задание (по желанию)

  1. Написать программу, которая считает, сколько максимумов находится в последовательности из 20 случайных чисел от 2 до 8
  2. Написать программу, которая считает, сколько вторых минимумов находится в последовательности из 20 случайных чисел от 10 до 15