- •Основные понятия
- •1.1.Состав субд
- •1.2. Классификация баз данных
- •1. 3. Архитектура баз данных
- •Глава 2 проектирование баз данных
- •2.1. Этапы проектирования базы данных
- •2.2. Моделирование локальных представлений
- •3.1 Иерархические модели
- •3.2. Сетевые модели
- •3.3. Реляционные базы данных
- •Реляционные основы концептуального проектирования
- •4.1. Нормализация отношений
- •4.2. Проектирование реляционных баз данных (рбд)
- •5. Агрегированные объекты могут быть сведены в одно реляционное отношение в том случае, если те объекты, с которыми связан каждый из них, полностью совпадают (рис.4.13).
- •Упражнения к главе 4
- •Операции над отношениями
- •5.1. Выполнение операций над отношениями
- •На рис.5.1 приведены примеры операций реляционной алгебры над отноше
- •Реляционные языки запросов
- •6.1. Язык sql (Structured Query Language)
- •6.2. Операторы манипулирования данными
- •Поставщики (s)Tаблица 6.1
- •6.3.Выборки
- •Результат: номер поставщикасостояние
- •Результат: номер_деталивес
- •Р6 Шайба Красный 19 Липецк
- •6.4.3Апросы, использующие соединения
- •6.5.Подзапросы
- •6.6. Подзапросы с несколькими уровнями вложения
- •6.7. Коррелированный подзапрос.
- •6.8. Квантор существования. Запрос, использующий exists
- •6.9. Стандартные функции
- •6.10. Использование группировок (group by)
- •6.11. Объединение с использованием union
- •6.12. Многоаспектный запрос
- •6.13. Операции обновления
- •6.14. Представления
- •Упражнения к главе 6
- •Субд foxpro 2.0
- •7.1. Системный интерфейс FoxPro, главное меню
- •7.2. Архитектура субд FoxPro 2.0
- •Типы и размеры полей (в байтах).
- •Поле дат 8.
- •7.3. Основные команды FoxPro 2.0
- •7.4. Создание и редактирование бд
- •Антонов 4
- •7.5. Команды просмотра и редактирования записей
- •7.6. Создание командных файлов
- •Сведения о сотрудниках
- •7.7. Команды управления
- •7.8. Циклы в FoxPro
- •7.9. Построение экранных форм
- •Карта ввода
- •Карта ввода
- •7.10. Работа с массивами
- •Фио Должность Оклад
- •7.11. Построение меню
- •Пример составления меню
- •7.12. Модульное программирование
- •7.13.Изобразительные средства субд
- •7.14. Функции в FoxPro
- •7.15. Работа с несколькими бд, связывание бд
- •7.16. Работа с окнами
- •Упражнения к главе 7
- •Создание базы данных в среде Microsoft Access
- •8.1. Создание и открытие базы данных
- •8.2. Конструирование форм в среде Microsoft Access
- •8.3. Связывание таблиц в Microsoft Access
- •8.4. Запросы к связанным таблицам
- •8.5. Отчеты
- •8.6. Рисунки и другие объекты в среде Microsoft Access
- •Приложение 1 База данных поставок
- •Приложение 2 Список вопросов для повторения учебного материала
- •Приложение 3 Задания для самостоятельного выполнения
- •Список литературы
- •Оглавление
- •Глава 7. Субд foxpro 2.0................................................…….........………… 54
- •Глава 8. Создание базы данных в среде Microsoft Access .........……................88
Сведения о сотрудниках
-
N
ФИО
Должность
ГР
4 20 10 8
Программа будет иметь следующий вид:
CLEAR
Cherta = replicate ('_', 46)
@ 1,10 SAY "СВЕДЕНИЯ О СОТРУДНИКАХ"
@ 2, 1 SAY Cherta
@ 3, 1 SAY "| N | ФИО | Должность| ГР |"
@ 4, 1 SAY Cherta
7.7. Команды управления
Условный оператор IF:
IF <условие>
Команды
ELSE
Команды
ENDIF
A,
X<0 Y=
B,
X0
Рис.7.4.Блок-схема оператора IF
IF X < 0
STORE A TO Y
ELSE X >= 0
STORE B TO Y
ENDIF
Пример:
Оператор IF может применятся и для выбора типа "один из множества". Например, если возраст работающих разбит на группы: до 18 лет, 18-28 лет, 29 - 60 лет и старше 60 лет, то
IF Vozrast<18
<команды> ELSE
IF Vozrast>=18.AND.<= 28
<команды>
ELSE
63
IF Vozrast > 28. AND. <=60
<команды>
ELSE
<команды>
ENDIF
ENDIF
ENDIF
Оператор DO CASE:
CASE <условие>
<команды>
CASE <условие>
<команды>
……………………..
[OTHERWISE]
Рис.7.5.
Блоксхема
оператора выбора DO
CASE
ENDCASE
Оператор выполняет проверку условий, заданных в операторах CASE. Они просматриваются последовательно сверху вниз до истинного условия.
DO CASE
CASE Vozrast< 18
<команды>
CASE Vozrast > = 18 .AND. Vozrast < = 28
<команды>
CASE Vozrast >28 .AND. Vozrast < = 60
<команды>
OTHERWISE <команды>
ENDCASE
7.8. Циклы в FoxPro
Циклы с условием: DO WHILE <условие>
<команды>
ENDDO
Организуется циклическое выполнение группы команд пока <условие> истинно. В цикле могут быть использованы операторы LOOP, EXIT. LOOP -обеспечивает внеочередную проверку условия цикла и передает управление на оператор следующий за ENDDO, если условие не выполняется. Второй оператор обеспечивает безусловный выход из цикла.
Цикл с параметром:
FOR<переменные>=<выражение Nl>TO<выражение N2>[STEP выражение N3>]
<команды>
ENDFOR 64
Цикл сканирования БД:
SCAN [<границы>] [FOR / WHILE <условие>]
<команды>
ENDSCAN
При отсутствии границ и условий сканируется вся БД.
Примеры:
1)USE kadr
LOCATE FOR NAME ='П'
DO WHILE .NOT. EOF()
2) USE kadr
SCAN
FOR NAME='П'
<обработка
записей>
ENDSCAN
CONTINUE
ENDDO
3)USE kadr INDEX kadrfio
SEEK 'П'
DO WHILE FIO = ‘П’
4) USE kadr INDEX kadrfio
SEEK
'П'
SCAN
WHILE FIO=’П’
<обработка
записей>
ENDSCAN
SKIP
ENDDO
Пример 7.1. Нахождение факториала.
STORE 1 TO F
STORE 1 TO К
К 1
2 3 … 10
F
1 1*2 1*2*3 … 1*2*…*10
DO WHILE K<=N
F=F*K
K-K+1
ENDDO
? F
Пример 7.2. Вычисление ряда до 100 или с точностью до 0.001
S=1/13+1/23+1/33+....+1/NЗ
S
STORE 1 TO S
DO WHILE i <= 100
A
= 1 / i 3
S
= S + A
S=S+A
IF A < 0.001
EXIT
EXIT
i = i + 1
E
i
= i + 1
?S
Рис.7.6. Блок-схема вычисления ряда
65
П
Рис.
7.7. Блок-схема вычисления Y
= X100
STORE 0 TO i
STORE 1 TO Y
DO WHILE i <= 100
Y = Y * X
i = i + 1
Y
= Y * X I
= i + 1
?Y
Пример 7.4. Вычислить ln2 с заданной точностью.
ln 2 = 1 1 / 2 + 1 / 3 1 / 4 + … 1 / N с точностью до
@ 1,1 GET EPS PICTURE ‘9.9999’
Рис.7.8.
Блоксхема
вычисления ln2 A
= 1 N
= 1 S
= 1
STORE 1 TO A
STORE 1 TO N
STORE 1 TO S
DO WHILE A > EPS
N = N + 1
N = N
+ 1 A
= 1 / N
R = N / 2 INT (N / 2 )
IF R > 0
S = S + A
ELSE
S = S A
S=S+A
S = S
A
ENDDO
?S