
- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Лабораторная работа №12
Тема: Администрирование БД. Создание доменов и таблиц.
Цель работы: Научится администрировать БД и создавать домены и таблицы в среде Inter Base.
Время работы: 2 учебных часа.
Правила по ТБ: Общие.
Оборудование рабочего места: Практикум, ПК.
Программное обеспечение: Windows, MS Office, InterBase
Вопросы входного контроля:
Дайте определение понятию запрос
Дайте определение понятию вложенный запрос.
Напишите синтаксис SELECT-запроса.
Напишите синтаксис вложенного SELECT-запроса.
Перечислите операторы манипулирования данными.
Напишите синтаксис каждого оператора манипулирования данными.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Установка Interbase 7.5
Лучше использовать Interbase 7.5. Потому что удобно использовать последние версии программных продуктов, так как в новых версиях появляется много интересных фишек и исправлена добрая куча ошибок, замеченных в предыдущих версиях ПО.
Рисунок
12.1 – Установка IB 7.5.
Кликаем на кнопку ‘Next’, выбираем тип установки ‘Server and Client’ и еще несколько раз жмнм на ‘Next’.
Вот и вся установка!
Теперь в Пуске появился новый пункт меню:
Пуск – Программы – Interbase 7.5 Developer Edition.
Все, теперь можно приступать к запуску Interbase, для этого запустим IBConsole:
Пуск – Программы – Interbase 7.5 Developer Edition – IBConsole.
После запуска появится окно, изображенное на рисунке 12.2.
Рисунок
12.2 – Окно приложения InterBase
Нам нужно зарегистрировать сервер Interbase, для этого отрываем меню “Server” и выбираем “Register …”, появится окошко, заполняем его так чтобы получилось что-то вроде этого (рисунок 12.3):
Рисунок
12.3 – Регистрация сервера
Мы будем создавать базу на своем компьютере, поэтому выбираем Local Server. В поле Description введем описание нашего сервера. В поле Login Information – вводим логин и пароль админа базы данных, по умолчанию он будет (не знаю почему, но введите именно эти данные, потом можно будет добавлять и удалять пользователей):
User Name: SYSDBA
Password: masterkey
Жмем "Ok" – сервер зарегистрирован!
Обязательно создайте папку, где Вы хотите сохранить свою базу данных (вся Ваша база будет состоять из одного GDB-файла!).
Теперь создадим базу данных – выбираем пункт меню “Database” – “CREATE Database …” Появится следующее окно (рисунок 12.4):
Рисунок 12.4 – Окно создания базы данных
Указываем название файла базы данных и его месторасположение, в одной из строк списка Files.
Список Default Character Set не трогаем! Если на Вашем компьютере используется русский язык (то есть в настройках винды указано что Вы в России), то русские буквы будут поддерживаться Вашей базой.
В поле Alias вводим произвольный псевдоним.
Жмем ОК, база создана, окно IBConsole стала такой (рисунок 12.5):
Рисунок
12.5 – Окно базы данных
Interbase версии 7.5 позволяет манипулировать данными с помощью гуя, но мы все будем делать через утилиту Interactive SQL, так как с интерфейсом я думаю Вы и так разберетесь, а вот основные команды SQL Вам пригодятся.
Запускаем утилиту Interactive SQL, выбрав в меню Tools – Interactive SQL, появится окошко (рисунок 12.6):
Рисунок
12.6 – Окно Interactive SQL
Постановка задачи
Представьте, что к Вам пришел умный дядька и просит Вас написать ему программу, которая организует прозрачность работы автомойки (на самом деле компания не имеет принципиального значение, ну у нас пусть будет автомойка :). А что такое прозрачность? Прозрачность в данном контексте означает то, что есть система, которая хранит все операции автомойки и позволяет следить за бизнесом.
Вы не торопясь подумали над этой затеей и решили, что в Вашей базе данных будут следующие таблицы:
Таблица (справочник) ПЕРСОНАЛ (PERSONAL)
Название |
Описание |
Тип данных |
PERSONALID |
Поле – счетчик |
Число |
FIO |
Фамилия Имя Отчество сотрудника |
Текст (40) |
DATA_BD |
Дата рождения сотрудника |
Дата |
TEL |
Номер телефона |
Текст (20), текст лучше массива цифр, сам поймешь на практике |
Таблица ГРАФИК РАБОТЫ (GRAFWORK)
Название |
Описание |
Тип данных |
WORKID |
Поле – счетчик |
Число |
PERSONALKOD |
Вторичный ключ, для связи с таблицей «ПЕРСОНАЛ» |
Число |
NOTE |
Описание графика работы |
Текст (150) |
DATA |
Дата занесения записи в таблицу |
Дата |
Таблица КЛИЕНТЫ (CLIENT)
Название |
Описание |
Тип данных |
CLIENTID |
Поле – счетчик |
Число |
FIO |
Фамилия Имя Отчество клиента |
Текст (40) |
DATA_BD |
Дата рождения клиента |
Дата |
TEL |
Номер телефона |
Текст (20) |
Таблица АВТОМОБИЛИ (CAR)
Название |
Описание |
Тип данных |
CARID |
Поле – счетчик |
Число |
CLIENTKOD |
Вторичный ключ, для связи с таблицей «КЛИЕНТЫ» |
Число |
MARK |
Марка автомобиля |
Текст (30) |
NUMCAR |
Номер автомобиля |
Текст (10) |
NOTE |
Примечание |
Текст (150) |
Таблица ОПЕРАЦИИ (OPERATION)
Название |
Описание |
Тип данных |
OPERID |
Поле – счетчик |
Число |
PERSONALKOD |
Вторичный ключ, для связи с таблицей «ПЕРСОНАЛ» |
Число |
CLIENTKOD |
Вторичный ключ, для связи с таблицей «КЛИЕНТЫ» |
Число |
DATA |
Дата совершения операции |
Дата |
NOTE |
Примечание |
Текст (150) |
Таблица СЕРВИСЫ (TSERVICE)
Название |
Описание |
Тип данных |
TSERVICEID |
Поле – счетчик |
Число |
OPERKOD |
Вторичный ключ, для связи с таблицей «ОПЕРАЦИИ» |
Число |
SERVICEKOD |
Вторичный ключ, для связи со справочником «УСЛУГИ» |
Число |
Таблица (справочник) УСЛУГИ (SERVICE)
Название |
Описание |
Тип данных |
SERVICEID |
Поле – счетчик |
Число |
NAME |
Название услуги |
Текст (30) |
COST |
Цена услуги |
Число (4 цифры для целой части, 2 цифры – дробной) |
По поводу двух последних таблиц: в SERVICE мы заносим все услуги предоставляемые автомойкой, а TSERVICE необходима для связи справочника УСЛУГИ (SERVICE) с таблицей ОПЕРАЦИИ (OPERATION). Дело в том, что клиент может заказать несколько услуг, и чтобы они все принадлежали одной операции нужна таблица TSERVICE.
Если что-то не понятно, перечитайте выше изложенный текст. Если Вы уже это сделали и не раз, тогда читайте дальше – скоро все встанет на свои места!
Чтобы вообще все стало понятно, посмотрите диаграмму (рисунок 12.7), на которой изображены все семь таблиц и показаны связи между ними.
Рисунок 12.7 – ER-диаграмма.
Приведенная диаграмма выполнена в нотации IDEF1X (Integration Definition for Function Modeling), разработанной Т.Рэмей.
В этой нотации:
- поля, определяющие первичный ключ, размещаются наверху списка и отделяются от других полей горизонтальной чертой;
- связи таблиц типа «один-ко-многим» изображают линиями, которые на одном конце заканчиваются кружком. Связь «один-ко-многим» на примере таблиц «CLIENT» и «CAR» означает, что у одного клиента может быть несколько автомобилей, т.е. запись о данном клиенте в «CLIENT» одна, а в «CAR» может быть несколько записей, относящихся к данному клиенту!
- связи таблиц типа «один-к-одному» изображают линиями. Это жесткие связи таблиц, то есть любой одной записи из первой таблице соответствует одна определенная запись из второй. Как ты уже заметил, в нашей диаграмме таких связей нет, они могли быть, если б мы разбили таблицу «PERSONAL» на две, выделив в отдельную таблицу список дат рождения, но это крайне дурацкая затея :) а потому она отметается!
Наша диаграмма еще с 1976 года стала называться ER-диаграммой (Entity-Relationship, сущность-связь) – стандартный способ детализации хранилищ данных.
С постановкой задачи разобрались! Теперь за практику!
Определение типов данных таблиц
Назначая типы данных полям таблиц, можно использовать свои типы – домены. Это удобно, если имеются одинаковые поля в нескольких таблицах. Кроме того, использование доменов гарантирует реализацию соединения таблиц, а значит, поддержку ссылочной целостности.
Введите в окне Interactive SQL следующий SQL-скрипт:
CREATE DOMAIN dnDB AS DATE
CHECK (VALUE <= 'TODAY');
commit;
Эти строки означают, что мы создаем домен с именем "dnDB", тип данных: дата и накладываем ограничения: значение должно быть меньше либо равно сегодняшней дате.
Команда commit завершает транзакцию, которую неявно стартует утилита Interactive SQL. Противоположная ей команда rollback, которая позволяет делать откат, то есть если Вы удалите запись из таблицы, то можете ее вернуть, написав в окне Interactive SQL:
rollback;
и нажав CTRL+E.
Ну, это так к слову…
Должно получиться вот так (рисунок 12.8):
Рисунок 12.8 – Написанный SQL-скрипт в окне Interactive SQL
Теперь нажмите кнопку либо сочетание клавиш: CTRL+E. Если ошибок нет, тогда у Вас в базе появится свеженький домен :)
Продолжим создавать наши домены.
Теперь пишите следующий код:
CREATE DOMAIN dnData AS DATE
NOT NULL;
commit;
CREATE DOMAIN dnFIO AS CHAR(40);
commit;
CREATE DOMAIN dnTEL AS CHAR(20);
commit;
CREATE DOMAIN dnNum AS INT
CHECK (VALUE > 0)
NOT NULL;
commit;
CREATE DOMAIN dnNOTE AS CHAR(150);
commit;
CREATE DOMAIN dnNAME AS CHAR(30);
commit;
CREATE DOMAIN dnNumCar AS CHAR(10);
commit;
CREATE DOMAIN dnCost AS NUMERIC(4, 2)
CHECK (VALUE > 0)
NOT NULL;
commit;
Жмите CTRL+E, у Вас должны создаться 9 доменов (рисунок 12.9)
Рисунок
12.9 – Домены к базе данных
Создание таблиц
Введите в окне Interactive SQL следующий код:
CREATE TABLE Personal
(
PersonalID dnNum,
FIO dnFIO,
DATA_BD dnDB,
TEL dnTEL,
PRIMARY KEY (PersonalID)
); commit;
CREATE TABLE – команда создания таблицы, после команды указывается название таблицы, дальше в скобках указываются параметры таблицы, потом скобка закрывается и обязательно ставится точка с запятой.
В скобках у нас указаны четыре поля. После имени поля указывается его тип, то есть домен.
Командой PRIMARY KEY определяем первичный ключ.
Жмите кнопку «Высокого напряжения»
-
третья справа, вуаля, таблица создана.
Не останавливаемся на достигнутом, создаем еще 6 таблиц:
CREATE TABLE Client
(
ClientID dnNum,
FIO dnFIO,
DATA_BD dnDB,
TEL dnTEL,
PRIMARY KEY (ClientID)
); commit;
CREATE TABLE GrafWork
(
WorkID dnNum,
PersonalKod dnNum,
NOTe dnNOTE,
Data dnDATA,
PRIMARY KEY (WorkID),
FOREIGN KEY (PersonalKod) REFERENCES Personal (PersonalID)
); commit;
CREATE TABLE Car
(
CarID dnNum,
ClientKod dnNum,
Mark dnNAME,
NumCar dnNUMCAR,
NOTe dnNOTE,
PRIMARY KEY (CarID),
FOREIGN KEY (ClientKod) REFERENCES Client (ClientID)
); commit;
CREATE TABLE Service
(
ServiceID dnNum,
Name dnNAME,
Cost dnCOST,
PRIMARY KEY (ServiceID)
); commit;
CREATE TABLE Operation
(
OperID dnNum,
PersonalKod dnNum,
ClientKod dnNum,
Data dnDATA,
NOTe dnNOTE,
PRIMARY KEY (OperID),
FOREIGN KEY (PersonalKod) REFERENCES Personal (PersonalID),
FOREIGN KEY (ClientKod) REFERENCES Client (ClientID)
); commit;
CREATE TABLE TService
(
TServiceID dnNum,
OperKod dnNum,
ServiceKod dnNum,
PRIMARY KEY (TServiceID),
FOREIGN KEY (OperKod) REFERENCES Operation (OperID),
FOREIGN KEY (ServiceKod) REFERENCES Service (ServiceID)
); commit;
Команда "FOREIGN KEY (PersonalKod) REFERENCES Personal (PersonalID)" связывает таблицу GRAFWORK и PERSONAL.
Чтобы разобраться со всеми связями обратись к ER-диаграмме, на самом деле, здесь все просто.
Жмите CTRL+E, у Вас должны создаться 7 таблиц (рисунок 12.10):
Рисунок 12.10 – Таблица базы данных
СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Изучить теоретические сведения.
Создать базу данных, как рассказано выше, следуя все описанным шагам.
Проверить работу всего проекта.
Продемонстрировать преподавателю работу разработанного образца проекта.
Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.
Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.
Вопросы выходного контроля:
Расскажите, как установить и настроить Inter Base.
Расскажите, как создать домен и для чего они используются
Напишите синтаксис создания доменов.
Расскажите, как создать таблицу
Напишите синтаксис создания таблицы.
Дайте определение понятию первичный ключ и как его указать в Inter Base.
Дайте определение понятию вторичный ключ и как его указать в Inter Base.