CBRR1347 (651573), страница 10
Текст из файла (страница 10)
Рисунок 7.2. Диаграмма потоков данных (взаимосвязь таблиц)
7.6. Создание SQL сценария
После того как таблицы созданы и определена их связь необходимо составить SQL сценарий для создания базы данных.
7.6.1. Создание базы данных
Перед созданием базы данных ее необходимо спроектировать. Этап проектирования базы данных включает в себя планирование ограничений файлов и включение файлов а новую базу данных. Этап создания состоит в выполнении этого плана с помощью команды SQL CREATE DATABASE и некоторых сценариев.
Основные задачи включают в себя следующее:
-
Определение соответствующих значений в команде CREATE DATABASE. для параметров ограничений файлов.
-
Планирование размера и расположения файлов начальных данных табличной области SYSTEM новой базы данных.
-
Планирование для новой базы данных размера и расположения групп и членов журнала транзакций.
-
Определение набора символов для хранения информации базы данных.
-
Создание файла параметров инициализации и спецификации имен управляющих файлов базы данных.
Сценарий с файлами инициализации базы данных приведены в ПРИЛОЖЕНИИ 3.
7.6.2. Создание таблиц
Таблицы создаются с помощью оператора SQL CREATE TABLE.
Фрагмент из ПРИЛОЖЕНИЯ 4:
CREATE TABLE ACTIVITY
(
ACTIVITY_ID NUMBER(7) NOT NULL,
ACTIVITY_CHAR VARCHAR2(50) NULL
);
Полный сценарий приведен в ПРИЛОЖЕНИИ 4.
7.6.3. Создание индексов
Индексы облегчают поиск и сортировку данных. Индексы создаются с помощью оператора SQL CREATE INDEX. Фрагмент из ПРИЛОЖЕНИЯ 4:
CREATE UNIQUE INDEX IPKACTIVITY ON ACTIVITY
(
ACTIVITY_ID ASC
);
7.6.4. Определение первичных ключей
Добавление определения первичного ключа к существующей таблице:
ALTER TABLE ACTIVITY
ADD ( PRIMARY KEY (ACTIVITY_ID) ) ;
Полный сценарий приведен в ПРИЛОЖЕНИИ 4.
7.6.5. Определение вторичных ключей
Добавление определения вторичного ключа к существующей таблице:
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (ACTIVITY_ID)
REFERENCES ACTIVITY ) ;
Полный сценарий приведен в ПРИЛОЖЕНИИ 4.
7.6.6. Создание триггеров
Триггер - это скомпилированная программа SQL, которая выполняется, когда в таблице происходит данное событие. С триггером, как правило, связываются три самых распространенных события: вставка, удаление и обновление строки.
CREATE TRIGGER IU_STUDY BEFORE INSERT OR UPDATE ON GO.STUDY
FOR EACH ROW
BEGIN
IF INSERTING THEN
SELECT GOBASEUSER_ID INTO :NEW.NAMEADD_ID
FROM GO.ORAUSER
WHERE ORAUSER_ID=UID;
:NEW.DATEADD := SYSDATE;
END IF;
SELECT GOBASEUSER_ID INTO :NEW.NAMEINS_ID
FROM GO.ORAUSER
WHERE ORAUSER_ID=UID;
:NEW.DATEINS := SYSDATE;
END;
Полный сценарий приведен в ПРИЛОЖЕНИИ 4.
В частности в данной программе с помощью триггеров выполняется автоматическая регистрация вводимых данных (кто вел, когда).
7.6.7. Создание последовательностей
С помощью последовательностей генерируются уникальные целые числа. Последовательные номера используются для автоматической генерации основных ключей.
CREATE SEQUENCE S_STUDY
Полный сценарий приведен в ПРИЛОЖЕНИИ 4.
7.7.Выбор типа создаваемого приложения
Существует два варианта - системы обработки транзакций и системы поддержки решений. Как правило, системы поддержки решений используются управленческим персоналом компаний для обзора некоторой части данных, а системы обработки транзакций отвечают за ввод и обработку этих данных. Таким образом, приложениям поддержки решений необходим уровень доступа к данным только в режиме чтения, а системы обработки транзакций должны иметь возможность как читать, так и записывать данные. Это фундаментальное различие между двумя типами приложений лежит в основе выбора типа приложения.
Система GOBASE - это приложение обработки транзакций. Поскольку пользователи должны иметь возможность добавлять, изменять и удалять данные, данная система выпадает из разряда приложений поддержки решений. Но, с другой стороны, некоторая информация, полученная с помощью этого приложения, по всей видимости, будет использоваться при принятии решений, т.е. данная система - это в некотором роде гибрид. Однако основное направление ее как приложение - это обработка транзакций.
7.8. Соглашение о название компонентов в программе GOBASE
Соглашение о название компонентов Таблица 7.3
| Компонент | Аббревиатура | Компонент | Аббревиатура | |
| AutoObject | ao | QRDBText | qt | |
| BatchMove | bm | QRDetailLink | qd | |
| Bevel | be | QRGroup | qg | |
| BiGauge | bg | QRLabel | ql | |
| BiPict | bp | QRMemo | qm | |
| Biswitch | bs | QRPreview | qp | |
| BitBtn | bb | QRShape | qh | |
| Button | bu | QRSysData | qs | |
| Calendar | ca | Query | qu | |
| ChartFX | ch | QuickReport | qr | |
| CheckBox | ck | RadioButton | rb | |
| ColorDialog | c_ | RadioGroup | rg | |
| ColorGrid | сg | ReplaceDialog | r_ | |
| ComboBox | cb | Report | rp | |
| Database | db | RichEdit | re | |
| DataModule, DBMemo | dm | SaveDialog | s_ | |
| DataSource | ds | ScrollBar | sa | |
| DBCheckBox | dk | ScrollBox | sx | |
| DBComboBox | dc | Session | se | |
| DBEdit | de | SpeedButton | sb | |
| DBGrid | gr | SpinButton | su | |
| DBImage | di | SpinEdit | sd | |
| DBListBox | di | StatusBar | st | |
| DBLookupComboBox, DBLookupCombo | lc | FindDialog | n_ | |
| DBLookupListBox, DBLookupList | ll | Font Dialog | f_ | |
| DBNavigator | na | Form | fm | |
| DBRadioGroup | dg | Gauge | ga | |
| DBText | te | Graphics Server | gs | |
| DdeClientConv | cc | GroupBox | gs | |
| DdeCI lent Item | ci | Header | he | |
| DdeServerConv | sc | HeaderControi | hc | |
| DdeServerItem | si | HotKey | hk | |
| DirectoryListBox | dy | IBEventAierter | ie | |
| DirectoryOutline | do | Image | im | |
| DrawGrid | dr | Image List | il | |
| DriveCoitiboBox | rc | Label | la | |
| Edit | ed | ListBox | lb | |
| FileListBox | fl | ListView | lv | |
| FilterComboBox | fc | MainMenu | mm | |
| MaskEdit | md | StoredProc | sp | |
| MediaPlayer | mp | StringGrid | sg | |
| Memo | me | TabbedNotebook | tn | |
| Notebook | nb | TabControi | tc | |
| OleContainer | ol | Table | ta | |
| OpenDialog | od | TabSet | ts | |
| OutLine | ou | Thread | th | |
| PageControl | pc | Timer | ti | |
| PaintBox | pb | TrackBar | tb | |
| Panel | pa | TreeView | tv | |
| PopupMenu | pu | UpdateSQL | us | |
| PrintDialog | p_ | UpDown | ud | |
| PrinterSetupDialog | i_ | VCFirstImpression | vf | |
| ProgressBar | pr | VCFormulaOne | vo | |
| QRBand | qb | VCSpeller | vs | |
| QRDBCalc | qc | |||
Имена типов в программе начинаются с большой буквы T. Пример: TBaseForm















