Скачать презентацию Информатика и програмирование MS Access MS Access Скачать презентацию Информатика и програмирование MS Access MS Access

Access.pptx

  • Количество слайдов: 38

Информатика и програмирование MS Access Информатика и програмирование MS Access

MS Access Учебный вопрос № 1. Реляционная БД и реляционные таблицы. Концепции и терминология MS Access Учебный вопрос № 1. Реляционная БД и реляционные таблицы. Концепции и терминология 2

MS Access Учебный вопрос № 1. Реляционная БД и реляционные таблицы. Концепции и терминология MS Access Учебный вопрос № 1. Реляционная БД и реляционные таблицы. Концепции и терминология 3

Пример реляционной таблицы NT, X, Y – поля таблицы Точка. Обозначена значением 1, координаты Пример реляционной таблицы NT, X, Y – поля таблицы Точка. Обозначена значением 1, координаты (0, 0) Поле NT - ключ. Его значение идентифицирует запись Типы значений полей X, Y – Long 4

Конструирование описания РТ 5 Конструирование описания РТ 5

Особенности РТ и термины • Значения в ее ячейках неделимы (Таблица находится в 1 Особенности РТ и термины • Значения в ее ячейках неделимы (Таблица находится в 1 НФ). • Описание поля включает его имя, указание типа, атрибуты «ключ» и т. п. • Описание таблицы включает имя таблицы, описания полей и индексов. • Описание таблицы хранится вместе с таблицей во внешней памяти. 6

Особенности РТ и термины • Индекс – это механизм адресации записей РТ. Множество значений Особенности РТ и термины • Индекс – это механизм адресации записей РТ. Множество значений индекса упорядочено, что обеспечивает быстрый поиск записи РТ по заданному значению индекса. • РБД – это множество РТ. РТ могут связываться друг с другом по значениям ключевых полей. 7

Пример связывания двух РТ: Л и Л 1 Условие связывания Л. NT+1=Л 1. NT Пример связывания двух РТ: Л и Л 1 Условие связывания Л. NT+1=Л 1. NT 8

Результат связывания двух РТ: Из двух таблиц точек получили таблицу отрезков 9 Результат связывания двух РТ: Из двух таблиц точек получили таблицу отрезков 9

Два подхода к работе с РБД 1. Реляционный: В виде алгебраической формулы задается построение Два подхода к работе с РБД 1. Реляционный: В виде алгебраической формулы задается построение РТ T из комплекта РТ T 1, …, Tn 2. Навигационный: Имеем объект (виртуальную РТ). Можем обрабатывать поля текущей записи РТ и перемещаться от записи к записи. 10

Истоки РМД (концепция РБД) • • РМД разработана Э. Коддом (E. Codd) в начале Истоки РМД (концепция РБД) • • РМД разработана Э. Коддом (E. Codd) в начале 70 -х прошлого века. РМД включает: понятия РТ и РБД, алгебраический язык запросов (ныне SQL) и теорему о реляционной полноте. Изложение теоремы: если РТ T выводима из РТ T 1, …, Tn, то существует реляционный запрос F такой, что T =F(T 1, …, Tn). За разработку РМД E. Codd стал лауреатом премии А. Тьюринга 11

MS Access Учебный вопрос № 2. Навигационный подход к обработке РТ 12 MS Access Учебный вопрос № 2. Навигационный подход к обработке РТ 12

Объект «Module 1» обеспечивает расчет длины ломаной, заданной реляционной таблицей Ломаная 1 13 Объект «Module 1» обеспечивает расчет длины ломаной, заданной реляционной таблицей Ломаная 1 13

Обзор модуля Option Compare Database Dim dbs As Database, rst As Recordset Dim X, Обзор модуля Option Compare Database Dim dbs As Database, rst As Recordset Dim X, Y As Long Dim l As Single Sub Pusk() ‘ Подготовка к работе и запуск ф-ции Len. Sgm() End Sub Function Len. Sgm() ‘ вычисление длины ломаной End Function Sub Get. XY() ‘ Извлечение полей РТ в переменные X, Y End Sub 14

Обзор модуля Option Compare Database Dim dbs As Database, rst As Recordset Dim X, Обзор модуля Option Compare Database Dim dbs As Database, rst As Recordset Dim X, Y As Long Dim l As Single Sub Pusk() ‘ Подготовка к работе и запуск ф-ции Len. Sgm() End Sub Function Len. Sgm() ‘ вычисление длины ломаной End Function Sub Get. XY() ‘ Извлечение полей РТ в переменные X, Y End Sub Часть General (Описание глобальных величин) Database – ссылка на объект РБД, Recordset – ссылка на РТ, X, Y – переменные под координаты текущей точки 15

Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Recordset("SELECT * FROM Ломаная 1; ") Msg. Box (Len. Sgm()) End Sub 16

Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Recordset("SELECT * FROM Ломаная 1; ") Msg. Box (Len. Sgm()) End Sub Установили ссылку на открытую в Access РБД. Current. Db – метод объекта Application 17

Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Recordset("SELECT * FROM Ломаная 1; ") Msg. Box (Len. Sgm()) End Sub Создали ВРТ, выполнив SQLзапрос. В запросе задана безусловная выборка всех полей и всех строк из РТ Ломаная 1 18

Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Процедура Pusk() Sub Pusk() Set dbs = Current. Db Set rst = dbs. Open. Recordset("SELECT * FROM Ломаная 1; ") Msg. Box (Len. Sgm()) Запуск функции вычисления End Sub длины ломаной 19

Функция вычисления длины ломаной Function Len. Sgm() rst. Move. First : l = 0 Функция вычисления длины ломаной Function Len. Sgm() rst. Move. First : l = 0 : Get. XY Do While (Not rst. EOF()) rst. Move. Next If Not rst. EOF() Then l = l + Sqr((rst. Fields("X"). Value - X) ^ 2 +_ (rst. Fields("Y"). Value - Y) ^ 2) Get. XY End If Loop Len. Sgm = l End Function 20

Функция вычисления длины ломаной Function Len. Sgm() Позиционировались на rst. Move. First : l Функция вычисления длины ломаной Function Len. Sgm() Позиционировались на rst. Move. First : l = 0 : Get. XY первую строку РТ, Do While (Not rst. EOF()) обнулили I, извлекли из строки РТ rst. Move. Next значения координат If Not rst. EOF() Then l = l + Sqr((rst. Fields("X"). Value - X) ^ 2 +_ (rst. Fields("Y"). Value - Y) ^ 2) Get. XY End If Перебираем строки РТ, Loop Считаем длину отрезка, Len. Sgm = l Наращиваем сумму. End Function Зафиксировали вычисленное значение как значение функции 21

Функция вычисления длины ломаной Function Len. Sgm() rst. Move. First : l = 0 Функция вычисления длины ломаной Function Len. Sgm() rst. Move. First : l = 0 : Get. XY Do While (Not rst. EOF()) Сместились на rst. Move. Next следующую строку If Not rst. EOF() Then l = l + Sqr((rst. Fields("X"). Value - X) ^ 2 +_ (rst. Fields("Y"). Value - Y) ^ 2) Get. XY End If Посчитали длину отрезка и Loop Извлекли поля нарастили длину ломаной. X, Y текущей Len. Sgm = l Аргументы – поля X, Y текущей строки в строки и переменные X, Y End Function переменные X, Y (извлечены из предыдущей строки) 22

Процедура Get. XY Sub Get. XY() If Not rst. EOF() Then X = rst. Процедура Get. XY Sub Get. XY() If Not rst. EOF() Then X = rst. Fields("X"). Value Y = rst. Fields("Y"). Value End If End Sub Значения полей текущей строки сгруппированы в коллекцию. Имя поля – идентификатор элемента коллекции 23

Испытания 24 Испытания 24

ОМ: Выводы • Database – класс для работы с БД. БД комплект таблиц. Одно ОМ: Выводы • Database – класс для работы с БД. БД комплект таблиц. Одно из действий – создание виртуальной реляционной таблицы вычислением запроса • Recordset - ВРТ. Действия: движение по записям таблицы, контроль смещения УТЗ за пределы таблицы • Коллекция полей Fields: извлечение значения по имени, извлечение имени по порядковому номеру

MS Access Учебный вопрос № 3 Реляционная алгебра 26 MS Access Учебный вопрос № 3 Реляционная алгебра 26

РА. Основное множество - таблицы • Таблица – множество однотипных строк. • Строка (кортеж) РА. Основное множество - таблицы • Таблица – множество однотипных строк. • Строка (кортеж) – комплект значений полей • Значение поля неделимо

Операции РА • Вычислительная обработка • Теоретико-множественные (объединение, пересечение, разность) • Декартово произведение • Операции РА • Вычислительная обработка • Теоретико-множественные (объединение, пересечение, разность) • Декартово произведение • Ограничение

Вычислительная обработка в строках Вычислительная обработка в строках

Вычислительная обработка групп строк Вычислительная обработка групп строк

Декартово произведение и ограничение Декартово произведение и ограничение

MS Access Учебный вопрос № 3 Реляционный подход обработке БД (запросы) 32 MS Access Учебный вопрос № 3 Реляционный подход обработке БД (запросы) 32

MS Access Учебный вопрос № 3 Реляционный подход обработке БД (запросы) 33 MS Access Учебный вопрос № 3 Реляционный подход обработке БД (запросы) 33

Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y, SQR((Л. XЛ 1. X)^2+(Л. Y-Л 1. Y)^2) AS DL FROM Л, Л 1 WHERE Л. NT+1=Л 1. NT ORDER BY Л. NT; 34

Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y, SQR((Л. XЛ 1. X)^2+(Л. Y-Л 1. Y)^2) AS DL FROM Л, Л 1 WHERE Л. NT+1=Л 1. NT ORDER BY Л. NT; Выборка из таблиц Л и Л 1 (в примере Л 1 – копия Л) 35

Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y, SQR((Л. XЛ 1. X)^2+(Л. Y-Л 1. Y)^2) AS DL FROM Л, Л 1 WHERE Л. NT+1=Л 1. NT ORDER BY Л. NT; Выбираем только те пары записей из таблиц Л и Л 1, для которых выполнено условие 36

Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y, SQR((Л. XЛ 1. X)^2+(Л. Y-Л 1. Y)^2) AS DL FROM Л, Л 1 WHERE Л. NT+1=Л 1. NT ORDER BY Л. NT; Выбранные записи упорядочиваем по возрастанию значения поля Л. NT 37

Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Пример запроса SELECT Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y, SQR((Л. XЛ 1. X)^2+(Л. Y-Л 1. Y)^2) AS DL FROM Л, Л 1 WHERE Л. NT+1=Л 1. NT ORDER BY Л. NT; В таблицу результат помещаем поля Л. NT, Л. X, Л. Y, Л 1. X, Л 1. Y и DL. Значение нового поля DL рассчитываем по формуле 38