ДАТОЛОГИЧЕСКАЯ МОДЕЛЬ БД.




 

Датологическая модель является моделью логического уровня и представляет собой отображение логических связей между элементами данных безотносительно к их содержанию и среде хранения. Эта модель строится в терминах информационных единиц, допустимых в той конкретной СУБД, в среде которой мы проектируем базу данных.

Этап создания датологической модели называется датологическим проектированием. Описание логической структуры базы данных на языке СУБД называется схемой.

 
 

 

ПРОГРАММЫ

SET TALK OFF

SET DATE GERMAN

CLEAR ALL

SET DELETED ON

SET ESCAPE OFF

SET HELP OFF

SET BELL OFF

CLEAR MACROS

ON KEY

*DO Titul

CLOSE DATABASES

DELETE FILE video. idx

DELETE FILE nosit. idx

DELETE FILE post. idx

USE video

INDEX ON tip_nosit TO video COMPACT

USE nosit

INDEX ON tip_nosit TO nosit COMPACT

USE post

INDEX ON kod_post TO post COMPACT

USE video IN A INDEX video

USE nosit IN B INDEX nosit

USE post IN C INDEX post

SELECT A

SET RELATION TO tip_nosit INTO B

SET RELATION TO kod_post INTO C

ON KEY LABEL Ctrl+PgUp GO TOP

ON KEY LABEL Ctrl+PgDn GO BOTTOM

ON KEY LABEL Ctrl+Q DO EndProc WITH 1

DEFINE WINDOW MainWindow FROM 0,0 TO 24,79 IN SCREEN;

TITLE ' Справочник "ВИДЕО КИОСК" ';

DOUBLE SHADOW FILL '-' COLOR GR+/N

DEFINE WINDOW ViewWindow FROM 0,0 TO 21,77;

IN WINDOW MainWindow;

DOUBLE CLOSE FLOAT GROW ZOOM

DEFINE WINDOW HintWindow FROM 22,0 TO 22,77 IN WINDOW MainWindow;

NONE COLOR GR+/GR

DEFINE WINDOW HelpWindow FROM 5,17 TO 16,63;

TITLE ' ПОМОЩЬ ' COLOR W+/G

DEFINE WINDOW PrintWindow FROM 5,8 TO 19,67;

TITLE 'Вывод на устройство PC';

DOUBLE SHADOW COLOR GR+/GR

DEFINE WINDOW AddWindow FROM 3,13 TO 18,67;

TITLE ' Дополнение базы данных ';

FLOAT SHADOW SYSTEM COLOR SCHEME 8

DEFINE WINDOW FindWindow FROM 5,13 TO 19,70;

TITLE 'Информация о фильме' DOUBLE

SET MESSAGE WINDOW MainWindow

DEFINE MENU MainMenu BAR AT LINE 0 IN WINDOW MainWindow;

COLOR SCHEME 10

DEFINE PAD DataMenu OF MainMenu PROMPT 'ДАННЫЕ';

MESSAGE 'Работа с базами данных'

DEFINE PAD SearchMenu OF MainMenu PROMPT 'ПОИСК';

MESSAGE 'Поиск данных по ключу'

DEFINE PAD FiltrMenu OF MainMenu PROMPT 'ФИЛЬТРАЦИЯ';

MESSAGE 'Фильтр просмотра данных'

DEFINE PAD QuitMenu OF MainMenu PROMPT 'ВЫХОД';

MESSAGE 'Выход из программы'

ON SELECTION PAD DataMenu OF MainMenu ACTIVATE POPUP DataPopup

ON SELECTION PAD SearchMenu OF MainMenu ACTIVATE POPUP SearchPopup

ON SELECTION PAD FiltrMenu OF MainMenu ACTIVATE POPUP FiltrPopup

ON SELECTION PAD QuitMenu OF MainMenu ACTIVATE POPUP QuitPopup

DEFINE POPUP DataPopup FROM 1,0 IN WINDOW MainWindow COLOR SCHEME 10

DEFINE BAR 1 OF DataPopup PROMPT 'Просмотр данных';

MESSAGE 'Просмотр данных без внесения изменений'

DEFINE BAR 2 OF DataPopup PROMPT 'Редактирование данных';

MESSAGE 'Просмотр данных с возможностью изменения данных'

ON SELECTION POPUP DataPopup DO BrowseData WITH BAR()

DEFINE POPUP PrintPopup FROM 8,32;

TITLE 'Вывод данных' IN SCREEN COLOR SCHEME 10

DEFINE BAR 1 OF PrintPopup PROMPT 'На экран';

MESSAGE 'Вывод данных на экран'

DEFINE BAR 2 OF PrintPopup PROMPT 'В файл';

MESSAGE 'Вывод данных в файл'

DEFINE BAR 3 OF PrintPopup PROMPT 'На принтер';

MESSAGE 'Вывод данных на принтер'

ON SELECTION POPUP PrintPopup DO Print

DEFINE POPUP SearchPopup FROM 1,8 IN WINDOW MainWindow COLOR SCHEME 10

DEFINE BAR 1 OF SearchPopup PROMPT 'по названию фильма';

MESSAGE 'Поиск данных по названию фильма'

DEFINE BAR 2 OF SearchPopup PROMPT 'по типу';

MESSAGE 'Поиск данных по типу'

DEFINE BAR 3 OF SearchPopup PROMPT 'по коду';

MESSAGE 'Поиск данных по коду'

ON SELECTION POPUP SearchPopup DO SearchProc

DEFINE POPUP FiltrPopup FROM 1,15 IN WINDOW MainWindow COLOR SCHEME 10

DEFINE BAR 1 OF FiltrPopup PROMPT 'по названию фильма';

MESSAGE 'Фильтрация данных по названию фильма'

DEFINE BAR 2 OF FiltrPopup PROMPT 'по типу';

MESSAGE 'Фильтрация данных по типу'

DEFINE BAR 3 OF FiltrPopup PROMPT 'по коду';

MESSAGE 'Фильтрация данных по коду'

DEFINE BAR 4 OF FiltrPopup PROMPT 'по качеству';

MESSAGE 'Фильтрация данных по качеству'

ON SELECTION POPUP FiltrPopup DO FiltrProc

DEFINE POPUP QuitPopup FROM 1,27 IN WINDOW MainWindow COLOR SCHEME 10

DEFINE BAR 1 OF QuitPopup PROMPT '\<Выход в FoxPro'

DEFINE BAR 2 OF QuitPopup PROMPT 'Выход в Ms-Dos'

ON SELECTION POPUP QuitPopup DO EndProc WITH 2

ACTIVATE WINDOW MainWindow

ACTIVATE MENU MainMenu

DO EndProc WITH 1

PROCEDURE Titul

SET CURSOR OFF

DEFINE WINDOW TitleWindow FROM 0,0 TO 24,79 DOUBLE

ACTIVATE WINDOW TitleWindow

TEXT

ENDTEXT

Key=INKEY(20)

RELEASE WINDOW TitleWindow

RETURN

PROCEDURE PrintRec

? ' '

? 'Название фильма: ',A. nazv_f

? 'Тип носителя: ',A. tip_nosit

? 'Название носителя: ',B. nazv_nosit

? 'Продолжительность: ',A. prodol

? 'Качество: ',A. kachestvo

? 'Цена: ',A. zena

? 'Код поставщика: ',A. kod_post

? 'Название поставщика: ',C. nazv_post

? 'Адрес поставщика: ',C. adres_post

? 'Телефон поставщика: ',C. telef_post

? 'Жанр: ',A. janr

? 'Главный артист: ',A. gl_artist

? 'Код фильма: ',A. kod_f

RETURN

PROCEDURE Print

SET CURSOR OFF

y=BAR()

ACTIVATE WINDOW PrintWindow

DO CASE

CASE y=1

SCAN

Do PrintRec

WAIT 'Любая клавиша - Продолжить, Esc - ОТКАЗ' WINDOW

IF LASTKEY() =27

EXIT

ENDIF

ENDSCAN

CASE y=2

WAIT 'Данные записываются в файл INFO. DAT Любая клавиша - ЗАПИСЬ, Esc - ОТКАЗ' WINDOW

IF LASTKEY() #27

SET PRINTER TO info. dat ADDITIVE

SET PRINTER ON

SCAN

Do PrintRec

ENDSCAN

SET PRINTER OFF

ENDIF

CASE y=3

SET PRINTER TO LPT1

IF PRINTSTATUS()

SET PRINTER ON

SCAN

Do PrintRec

ENDSCAN

SET PRINTER OFF

ELSE

WAIT 'Принтер не готов' WINDOW NOWAIT

ENDIF

ENDCASE

DEACTIVATE WINDOW PrintWindow

DEACTIVATE POPUP

RETURN

PROCEDURE AddRec

PUSH KEY CLEAR

SET CURSOR ON

ACTIVATE WINDOW AddWindow

@ 1,1 TO 11,51

SCATTER MEMVAR BLANK

@2,2 SAY 'НАЗВАНИЕ ФИЛЬМА: ' GET m. nazv_f DEFAULT SPACE(20)

@3,2 SAY 'ТИП НОСИТЕЛЯ: ' GET m. tip_nosit PICTURE '999'

@4,2 SAY 'ПРОДОЛЖИТЕЛЬНОСТЬ: ' GET m. prodol DEFAULT SPACE(12)

@5,2 SAY 'КАЧЕСТВО: ' GET m. kachestvo DEFAULT SPACE(18)

@6,2 SAY 'ЦЕНА: ' GET m. zena

@7,2 SAY 'КОД ПОСТАВЩИКА: ' GET m. kod_post PICTURE '999'

@8,2 SAY 'ЖАНР: ' GET m. janr DEFAULT SPACE(15)

@9,2 SAY 'ГЛАВНЫЙ АРТИСТ: ' GET m. gl_artist DEFAULT SPACE(17)

@10,2 SAY 'КОД ФИЛЬМА: ' GET m. kod_f PICTURE '999'

@12,14 GET choice FUNCTION '*th \! Добавить; \? Выход' DEFAULT 2 SIZE 1,10,6

READ CYCLE MODAL

IF choice=1

APPEND BLANK

GATHER MEMVAR

ENDIF

DEACTIVATE WINDOW AddWindow

ENDIF

POP KEY

RETURN

FUNCTION Refresh

SHOW GETS OFF

RETURN

FUNCTION PopShow

@ 12,3 SAY VideoArray(FocKlub) SIZE 1,36

RETURN

PROCEDURE DelRec

WAIT 'Вы действительно хотите удалить запись? (ДА-любая клавиша, НЕТ-ESC)? ' WINDOW

IF LASTKEY() #27

POP KEY

DELETE

PACK

DO BrowseData WITH 2

ENDIF

RETURN

PROCEDURE Help

PUSH KEY CLEAR

SET CURSOR OFF

ACTIVATE WINDOW HelpWindow

TEXT

^N - дополнение базы новой записью

^D - удаление текущей записи

^P - вывод/печать всех записей

--------------------------------------------

^PgUp - переход в начало базы

^PgDn - переход в конец базы

--------------------------------------------

^Q - выход из окна редактирования

(внесенная информация сохраняется)

Esc - то же, но информация не сохраняется

ENDTEXT

WAIT ''

DEACTIVATE WINDOW HelpWindow

SET CURSOR ON

POP KEY

RETURN

FUNCTION Hlp

SET CURSOR OFF

@ 0,0 FILL TO 0,77 COLOR GR/GR

Hint=''

DO CASE

CASE VARREAD() ='Nazvan_f'

Hint='Название фильма'

CASE VARREAD() ='Tip_nosit'

Hint='Тип носитель'

CASE VARREAD() ='Prodol'

Hint='Продолжительность'

CASE VARREAD() ='Kachestvo'

Hint='Качество'

CASE VARREAD() ='Zena'

Hint='Цена'

CASE VARREAD() ='Kod_post'

Hint='Код поставщика'

CASE VARREAD() ='Janr'

Hint='Жанр'

CASE VARREAD() ='Gl_artist'

Hint='Главный артист'

CASE VARREAD() ='Kod_f'

Hint='Код фильма'

ENDCASE

@0,(78-LEN(Hint)) /2 SAY Hint

RETURN

PROCEDURE BrowseData

PARAMETER y

DO CASE

CASE BAR() =1. OR. y=1

TitleStr='БАЗА ДАННЫХ'

STR1='NOAPPEND NODELETE NOMODIFY'

CASE BAR() =2. OR. y=2

PUSH KEY

ON KEY LABEL Ctrl+N DO AddRec

ON KEY LABEL Ctrl+D DO DelRec

ON KEY LABEL Ctrl+P ACTIVATE POPUP PrintPopup

ON KEY LABEL F1 DO Help

TitleStr='F1 - Вызов окна помощи РЕДАКТИРОВАНИЕ '

STR1=''

ENDCASE

ACTIVATE WINDOW HintWindow

GO TOP

BROWSE TITLE TitleStr;

FIELDS A. nazv_f: H='Название фильма': W=Hlp(),;

A. tip_nosit: H='Тип носителя': W=Hlp(),;

B. nazv_nosit: H='Название носителя': R: W=Hlp(),;

A. prodol: H='Продолжительность': W=Hlp(),;

A. kachestvo: H='Качество': W=Hlp(),;

A. zena: H='Цена': W=Hlp(),;

A. kod_post: H='Код поставщика': W=Hlp(),;

C. nazv_post: H='Название поставщика': R: W=Hlp(),;

C. adres_post: H='Адрес поставщика': R: W=Hlp(),;

C. telef_post: H='Телефон поставщика': R: W=Hlp(),;

A. janr: H='Жанр': W=Hlp(),;

A. gl_artist: H='Главный артист': W=Hlp(),;

A. kod_f: H='Код фильма': W=Hlp();

WINDOW ViewWindow &STR1 COLOR GR+/N

DO CASE

CASE BAR() =1. OR. y=1

SET FILTER TO

CASE BAR() =1. OR. y=2

POP KEY

ENDCASE

DEACTIVATE WINDOW HintWindow

DEACTIVATE POPUP

RETURN

PROCEDURE SearchProc

SET CURSOR ON

y=BAR()

str=PROMPT()

DEFINE WINDOW SearchWindow FROM 7,20 TO 12,60;

TITLE 'Поиск '+ str

ACTIVATE WINDOW SearchWindow

@ 1,1 SAY 'Укажите ключ: '

DO CASE

CASE y=1

@ 1,15 GET a DEFAULT SPACE(20)

CASE y=2

@ 1,15 GET a DEFAULT SPACE(3)

CASE y=3

@ 1,15 GET a PICTURE '999' DEFAULT 0

ENDCASE

@3,11 GET choice FUNCTION '*th \! Поиск; \? Выход' DEFAULT 2 SIZE 1,7,4

READ CYCLE

RELEASE WINDOW SearchWindow

SET CURSOR OFF

IF choice=1

ACTIVATE WINDOW FindWindow

IF y=1. OR. y=2

a=Zag(ALLTRIM(a),. f)

ENDIF

IsFind=. F.

Find=. F.

SCAN

DO CASE

CASE y=1

Find=Zag(ALLTRIM(A. nazv_f),. f) =a

CASE y=2

Find=A. tip_nosit=a

CASE y=3

Find=A. kod_post=a

ENDCASE

IF Find

IsFind=. T.

? 'Название фильма: ',A. nazv_f

? 'Тип носителя: ',A. tip_nosit

? 'Название носителя: ',B. nazv_nosit

? 'Продолжительность: ',A. prodol

? 'Качество: ',A. kachestvo

? 'Цена: ',A. zena

? 'Код поставщика: ',A. kod_post

? 'Название поставщика: ',C. nazv_post

? 'Адрес поставщика: ',C. adres_post

? 'Телефон поставщика: ',C. telef_post

? 'Жанр: ',A. janr

? 'Главный артист: ',A. gl_artist

? 'Код фильма: ',A. kod_f

WAIT 'Продолжить поиск? (ДА - любая клавища, НЕТ - ESC) ' WINDOW

IF LASTKEY() =27

EXIT

ENDIF

ENDIF

ENDSCAN

IF! IsFind

WAIT 'ПОИСК НЕ УДАЧНЫЙ' WINDOW

ENDIF

DEACTIVATE WINDOW FindWindow

ENDIF

DEACTIVATE POPUP SearchPopup

RETURN

PROCEDURE FiltrProc

SET CURSOR ON

y=BAR()

str=PROMPT()

DEFINE WINDOW FiltrWindow FROM 7,20 TO 12,60;

TITLE 'Фильтрация '+ str

ACTIVATE WINDOW FiltrWindow

@ 1,1 SAY 'Укажите ключ: '

DO CASE

CASE y=1

@ 1,15 GET a DEFAULT SPACE(20)

CASE y=2

@ 1,15 GET a DEFAULT SPACE(3)

CASE y=3

@ 1,15 GET a PICTURE '999' DEFAULT 0

CASE y=4

@ 1,15 GET a DEFAULT SPACE(18)

ENDCASE

@3,11 GET choice FUNCTION '*th \! Фильтр; \? Выход' DEFAULT 2 SIZE 1,6,4

READ CYCLE

DEACTIVATE WINDOW FiltrWindow

SET CURSOR OFF

IF choice=1

DO CASE

CASE y=1

SET FILTER TO a. nazv_f=alltrim(a)

CASE y=2

SET FILTER TO a. tip_nosit=a

CASE y=3

SET FILTER TO a. kod_post=a

CASE y=4

SET FILTER TO a. kachestvo=alltrim(a)

ENDCASE

DO BrowseData WITH 1

ENDIF

RETURN

FUNCTION Zag

PARAMETER p,k

PUSH KEY clear

s='абвгдежзийклмнопрстуфхцчшщыьъэюя'

z='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ'

IF k

REPLACE &p WITH CHRTRAN(&p,s,z)

ELSE

POP KEY

RETURN CHRTRAN(p,s,z)

ENDIF

POP KEY

RETURN

PROCEDURE EndProc

PARAMETER y

DO CASE

CASE BAR() =1. OR. y=1

ON KEY

SET HELP ON

SET RELATION TO

SET FILTER TO

DEACTIVATE WINDOW ALL

DEACTIVATE MENU

DEACTIVATE POPUP

CLEAR ALL

CANCEL

CASE BAR() =2. OR. y=2

QUIT

ENDCASE

POP KEY

CLOSE DATABASES

RETURN

 


Список использованной литературы

 

1. Четвериков В.Н, Ревунков Г.И., Самохволов Э.Н. Базы и банки данных.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: