Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных. Учебно-методический комплекс
.pdf
Рис. 5. Образец базы данных, полученный с использованием Wizard
Выберем кнопку New file для создания собственной базы данных.
После этого нужно задать папку на диске, где мы будем сохранять все
компоненты, относящиеся к разрабатываемому проекту, и задать
название базы данных (расширение файла указывать не надо - система
допишет его сама). Пусть папка и имя базы данных будут Students.
Рис. 6. Диалог для сохранения базы данных на диске
После нажатия на кнопку Save (Сохранить) будут созданы
файлы базы данных (students.dbc, students.dct и students.dcx) и
откроется пустое окно модификации структуры базы данных
(Database Designer), показанное на рис. 4.7
. Следует отметить, что
очень многие команды, задаваемые нами с использованием меню
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
81

системы, отображаются в виде текстовых команд в окне Command
(создается протокол команд, который сохраняется), и это может быть
использовано для повторного выполнения использованных команд
или для включения их в текст программы, а также может быть полезно начинающим пользователям для изучения языка системы VFP. После
команды Save в окне Command появятся 2 строки
команд: CREATE
DATABASE и MODIFY DATABASE, как показано на рис. 4.8.
Поместив курсор мыши в окно Database Designer, щелкнем в
нем правой кнопкой мыши и в контекстном меню выберем команду
New table:.
Далее выбираем New table, а не Wizard, который нам опять предложил бы американские образцы таблиц за основу, выбираем папку и
задаем имя главной таблицы базы -
Spisok, после чего открывается окно
описания структуры таблицы базы данных (Table Designer) (рис. 4.9).
Рис. 7. Окно Конструктора базы данных Рис. 4.8. Окно Command системы VFP
Рис. 9. Окно Конструктора таблиц
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
82

В окне Table Designer описываем все поля таблицы Spisok.dbfимя поля (Name), тип (Type), ширину (Width), количество деся-
тичных знаков для действительных чисел (Decimal), наличие прос-
того индекса (Index) и задаем заголовок поля таблицы (Caption).
Имена полей лучше писать латинскими буквами.
Для индекса NZ на странице Indexes окна Table Designer
следует задать тип индекса - Primary (первичный), т.к. номер зачетки
- уникальный для каждого студента, однозначно его идентифицирует
и поэтому может служить первичным ключом (в таблице обозначения
A (Ascending) - индекс в порядке возрастания, P (Primary).
Структура главной таблицы базы данных приведена в табл. 4.3
.
Для таблицы, входящей в состав базы данных, в окне Table
Designer присутствуют разделы Display, Map field type to classes,
Field validation, Field comment, эта информация сохраняется в фай-
ле базы данных и поэтому отсутствует при описании структуры
свободных таблиц (файлы
*
.dbf, не входящие в состав базы данных).
Таблицу можно удалить из базы, но оставить в виде свободной таблицы на диске; в таком случае информация этих разделов теряется.
Задание заголовков (Caption) для полей при описании струк-
туры таблицы облегчает разработку экранных форм и отчетов - эти
названия появятся как подписи для полей (
если Caption отсутствует,
подписью будет имя поля).
Таблица 4.3. Структура таблицы Spisok.dbf
Name Type Width Decimal Index Caption
Nz C 7 A,P Номер зачетки
Fio C 45 Фамилия, имя, отчество
data_p D 8 Дата поступления
n_fclt N 2 A Факультет
n_spect C 7 A Специальность
kurs N 1 Курс
n_grup С 10 Группа
n_pasp С 10 Номер паспорта
Далее создаем следующую таблицу в базе - справочник факультетов с именем файла Fclt.dbf. Для этого следует снова поместить
курсор на пустое место окна Database Designer, щелкнуть правой
кнопкой мыши и в контекстном меню выбрать команду New table. В
окне Table Designer описываем структуру таблицы (табл. 4.4).
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
83

Таблица 4.4. Структура таблицы Fclt.dbf
Name Type Width Decimal Index Caption
n_fclt N 2 A,P Номер факультета
name_f C 120 Название факультета
Название ключевого поля справочника, его тип и ширину
желательно оставить такими же, как и в главной таблице, для
облегчения установления связей при разработке экранных форм и
отчетов с помощью Мастера.
Точно так же создаем в базе данных следующие таблицы и
индексы для табл. 4.5, табл. 4.6, табл. 4.7.
Таблица 4.5. Структура таблицы Spect.dbf
Name Type Width Decimal Index Caption
n_spect C 7 A,P Код специальности
name_s C 120 Название специальности
Таблица 4.6. Структура таблицы Ocenki.dbf
Name Type Width Decimal Index Caption
nz C 7 A Номер зачетки
semestr N 1 Семестр
n_predm N 2 A Предмет
ball С 1 Оценка
data_b D 8 Дата
prepod C 45 Преподаватель
Таблица 4.7. Структура таблицы Predmets.dbf
Name Type Width Decimal Index Caption
n_predm N 2 A,P Номер предмета
name_p С 120 Название предмета
Далее в окне Database Designer задаем постоянные связи между
таблицами в базе, перетаскивая мышкой название первичного
индекса к обычному (Regular) индексу (внешний ключ). В резуль-
тате получаем схему базы данных (рис. 4.10
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
).
84

Рис. 10. Окно базы данных STUDENTS
Для связей можно задать условия соблюдения ссылочной
целостности: каскадное обновление в операциях удаления и вставки и
контроль с запретом ввода записей с неверными ключевыми
значениями в операциях вставки (см. рис. 4.11). Для заданных
условий будет сгенерирован программный код, занесенный в базу
данных как хранимые процедуры - триггеры. Эти программы при
желании можно просмотреть
, изучить механизм их действия или
модифицировать, если такая необходимость возникнет. Текст
триггеров может представлять значительный интерес для
программистов, т.к. он написан в наиболее универсальном виде для
работы с различными режимами и базами с использованием стиля
оформления, принятого в фирме-разработчике системы VFP.
Рис. 11. Задание условий соблюдения ссылочной целостности
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
85

Лекция 14. Обеспечение ссылочной ценности.
Создание отчетов и запросов.
Разработка отчетов
Для разработки отчетов - печатных документов, отражающих
информацию базы данных, в системе VFP существует Конструктор
отчетов (Report Designer) и Мастер отчетов (Report Wizard).
Важным свойством отчетов является возможность группировки
данных и получения итоговых данных для групп и всего отчета. При
формировании отчетов можно задавать
фильтр отбора необходимых
данных либо формировать отчет на основе данных SQL-запроса или
представления данных (View).
Наиболее просто для разработки основы отчета воспользоваться
Мастером отчетов с последующей модификацией и дополнением
отчета в Конструкторе.
Существует 2 типа Мастера отчетов:
One-to-Many Report Wizard - Мастер отчета, в котором для
одной записи главной таблицы существует множество записей
связанной с
ней дочерней таблицы.
Report Wizard - Мастер простого отчета, но с возможностью
задания группировки данных.
Поставим задачу разработать отчет, в котором показаны
экзаменационные оценки всех студентов за зимнюю сессию 20052006 учебного года (с 10.01.2006 по 06.02.2006) с группировкой
данных по факультетам, курсам, группам и в группе - по фамилиям
студентов.
Как обычно, создание нового объекта начинаем, нажав
кнопку
New на стандартной панели инструментов, затем выбираем Report Wizard - One-to-Many Report Wizard.
Далее на первом шаге Мастера выбираем базу Students и поля
главной таблицы базы (Spisok), которые мы хотим показать в отчете.
На втором шаге выбираем поля дочерней таблицы - Ocenki.
Третий шаг - подтверждаем, что эти таблицы связаны по
значению поля NZ.
На четвертом
шаге необходимо задать порядок сортировки
данных в отчете. Мастер позволяет задать не более трех значений
полей для сложной сортировки (с созданием соответствующего
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
86

сложного индекса). Выберем поля N_fclt, Kurs, N_grup с сортировкой в порядке возрастания (Ascending).
Пятый шаг (рис. 6.3) - задаем стиль отчета, расположение его на
листе (вертикальный лист - Portrait или горизонтальный Landscape) и суммарные параметры - расчет среднего значения (Avg)
для поля Ball.
На последнем, 6-м шаге задаем заголовок отчета, выбираем
команду Сохранить отчет и
модифицировать его в Конструкторе
отчетов - Save report and modify it in Report Designer и после
нажатия на кнопку Finish задаем имя (Spisok) и место сохранения
файлов отчета (будут созданы два файла с одинаковым именем и
расширениями *.frt и *.frx).
В окне Report Designer мы увидим отчет
Отбор данных из базы с использованием SQL-запросов
Ранее отмечалось, что для работы с данными, отобранными в
соответствии с каким-либо условием, может быть использована
команда SET FILTER TO <условие> - установить фильтр для
открытой таблицы базы данных.
Однако большими возможностями обладает так называемый
SQL-запрос - команда SELECT :, сформированная в соответствии с
правилами языка запросов SQL (Structured Query Language).
Запрос позволяет отбирать данные по
заданным сложным
условиям из нескольких таблиц различных баз данных, с размещением результатов выполнения запроса на экране, во временной
таблице (cursor), в новой таблице, в текстовом файле или в массиве
переменных. При этом возможны сложные виды упорядочения
информации и группировки данных с получением расчетных
групповых результатов.
Отбор осуществляется непосредственно из файла
на диске,
таким образом те же таблицы одновременно могут быть открыты с
какими-либо установленными фильтрами (например, в программе,
работающей с данными только за текущий месяц).
В VFP и других системах фирмы Microsoft (Word, Excel) можно
использовать Конструктор запросов, что упрощает и ускоряет
написание запросов. Кроме того, в VFP есть Мастер для разработки
запросов разного вида. Однако использование этих средств не
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
87

позволяет реализовать все возможности языка запросов. Максимальные возможности - при написании запроса в текстовом виде в
любом программном модуле в соответствии с синтаксисом команды
SELECT (полный синтаксис будет описан далее).
Принцип формирования запросов наиболее легко освоить при
использовании Мастера запросов.
Поставим задачу отобрать информацию по экзаменационным
оценкам студентов по факультету
№ 1 за 1-й семестр 2005/2006
учебного года по предмету № 1 ("Математика" в справочной таблице)
с сортировкой данных по группам, в группах - в порядке уменьшения
оценки.
Для этого выбираем на стандартной панели или в меню команду
New, далее выбираем Query и нажимаем кнопку Query Wizard. В
появившемся списке из трех пунктов: Cross-Tab Wizard, Graph
Wizard и Query Wizard выбираем
последний вариант - стандартный
запрос.
На первом шаге Мастера необходимо выбрать таблицы и поля,
которые следует включить в запрос. Если предварительно база
данных не была открыта, следует ее выбрать с помощью кнопки
рядом с полем списка Databases and tables. Выбор полей может быть
выполнен из нескольких таблиц базы.
На шаге 2 следует добавить в список
связей выражение
SPISOK.NZ = OCENKI.NZ, что Мастер сам предложит вам сделать.
На шаге 2а вам нужно ответить на вопрос, какие записи при
объединении таблиц следует включать в результаты (join conditions условия объединения):
only matching rows - отбираются только записи при их
одновременном присутствии в обеих связанных таблицах для
заданных условий отбора и связей (условие объединения Inner Join);
all rows from table SPISOK - отбираются
все записи таблицы
SPISOK, соответствующие условиям отбора, и связанные записи
другой таблицы при их наличии (Left Outer Join);
all rows from table OCENKI- отбираются все записи таблицы
OCENKI, соответствующие условиям отбора, и связанные записи
другой таблицы при их наличии (Right Outer Join);
all rows from both tables - отбираются все записи таблиц
SPISOK и OCENKI, соответствующие условиям отбора, независимо
от наличия связанных записей другой таблицы (Full Join).
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
88

Выбираем первый вариант для нашего запроса.
На шаге 3 могут быть заданы условия отбора данных
(количество условий - не более двух, в Конструкторе запросов или в
тексте запроса можно увеличить их количество). Зададим условия -
SPISOK.N_FCLT=1 and OCENKI.SEMESTR=1. В Мастере нельзя
задать больше двух условий, в Конструкторе или тексте SQLпрограммы количество условий не ограничено.
Шаг 4 - задание условий сортировки данных. Здесь можно
выбрать последовательно 3 поля таблиц, по которым следует
сортировать данные, например, n_grup, ball - упорядочить по
группам, внутри групп - по баллу в порядке уменьшения (Descending).
На шаге 4а можно задать процент или количество рассмат-
риваемых записей, здесь мы оставим без изменений условие all
records - все записи
.
На последнем шаге 5 выберем вариант Save query and modify
it in Query Designer - Сохранить запрос и модифицировать его в
Конструкторе запросов, зададим путь и имя для сохранения файла
запроса.
В результате на диске будет создан текстовый файл запроса с
расширением *.qpr (например, query_s1.qpr), который может быть
открыт как текстовый файл или в Конструкторе запросов с
отображением всех
условий запроса.
РАЗДЕЛ 5. MICROSOFT SQL SERVER
Лекция 15. Характеристика SQL Server. Язык запросов
Transact – SQL. Системные базы данных и таблицы
Общая характеристика системы
Microsoft SQL Server - одна из наиболее мощных систем работы
с базами данных в архитектуре "клиент-сервер". Особенность
системы - работа сервера только в операционных системах ряда
Microsoft Windows NT - NT Server 4.0, 2000 Server, Server 2003, при
этом клиентская часть может взаимо-действовать с сервером из
Microsoft Windows 98 и других операционных систем. Рекомендуемая
файловая система для SQL Server - NTFS, хотя возможна работа и в
системе FAT.
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
89

В своем составе система имеет средства создания баз данных,
работы с информацией баз данных, перенесения данных из других
систем и в другие системы, резервного копирования и восстановления данных, развитую систему транзакций, систему репликации
данных, реляционную подсистему для анализа, оптимизации и
выполнения запросов клиентов, систему безопасности для управления правами доступа к объектам базы данных и пр. Система не
содержит средств разработки клиентских приложений.
Установка системы
Установка системы Microsoft SQL Server выполняется с дистрибутивного диска запуском файла AUTORUN.EXE (который, в свою
очередь, запускает программу \Sql\x86\setup\setupsql.exe). При этом
начинает работать Мастер установки, который пошагово предлагает
вам выбрать параметры установки системы.
Первый шаг - выбор
компьютера для установки:
1. установить SQL Server на локальном компьютере;
2. установить на удаленном компьютере;
3. создать либо настроить виртуальный сервер.
Следующей шаг - выбор вида инсталляции
Возможные варианты:
1. создать новую инсталляцию SQL Server;
2. обновить или удалить компоненты существующей ин-
сталляции;
3. настроить виртуальный сервер;
4. создать файл с информацией для автоматической
установки
компонентов SQL Server, которая может быть выполнена позднее.
Далее программа установки попросит ввести имя пользователя и
название организации, а также предложит принять лицензионное
соглашение. После этого откроется окно Installation Definition. Оно
содержит три варианта установки программного обеспечения:
• Client Tools Only - установка сетевых библиотек и средств
администрирования SQL Server. Эта опция выбирается для компьютеров, которые будут использоваться для удаленного управления
сервером;
• Server and Client Tools - полная установка SQL Server. Эта
опция выбрана по умолчанию;
Ф КазНПУ 0703-12-09 Учебно-методический комплекс дисциплины для обучающегося
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
