- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
11.7. Создание таблиц базы данных
Работа по созданию инфсрмацш лшой системы включает два основных этапа: создание БД и создание приложения. Продемонстрируем возможности С+ + Builder по работе с БД на примере создания простой информационной системы. Эту информационную систему можно разработа гь даже без написания кода: все необходимые операции выполняются с помощью программы Database Desktop. Коне грукюра формы и Инспектора объектов.
В простейшем с.лучае БД состоит из одной таблицы. Если таблицы уже имеются, то перьый этап не выполняется. От метим, что совместно с С++ Builder постав, шется большое количество примеров приложений, в том числе и приложений БД. Фай иы таблиц для этих приложений находятся в каталоге c:\Program Files\Common Files\Borland Shared\Data. Готозые таб лицы также можно использовать для своих приложений.
Для работы с таб лицами БД при проектировании приложения удобно использовать программу Database Desktop, которая позволяет:
создават ь таблицы;
изменять структуры;
редактировать записи.
Кроме гого. с помощью Database Desktop можно выполнять и другие действия над БД (создание, редактирование и выполнение визуальных и SQL- запросов. операции с псев донимами). Отметим, что большинство рассматриваемых действий по управлению структурой таблш 1,ы можно выполнить также программно.
Процесс создания новой таблицы начинается с вызова команды File\New\Table (Файл\Новая\Табпица) и происходит в интерактивном режиме. При этом разработчик должен:
выбрать формат (тип) таблицы;
задать структуру таблицы.
В нача те создания новой таблицы в окне Create Table (Создание таблицы) выбирается ее формат. По умолчанию предлагается формат таблицы Paradox версии 7, который мы и будем использовать. Для таблиц других форматов, например dBase IV, действия по со щанию таблицы практичен Ки не отличаются.
После выбора формата таблицы появляется окно определения структуры габлицы (рис. 11.19), в котором выполняются следующие действия:
|
Field Name |
Type |
Size |
Key |
щ |
Code |
+ |
|
* |
2 |
Number |
S |
|
|
3 |
Fio |
A |
12 |
|
4 |
Address |
A |
15 |
|
held
roster
"3
TabL
gioper',. .
|
Secondary Indexes
Erase j
Г Pari Table
Save | Savers, j Cancel j Help j Рис. 11.19. Определение структуры таблицы
описание полей;
задание ключа;
задание индексов;
определение ограничений на значения полей;
определение условий (ограничений) ссылочной целостности;
задание паролей;
задание языкового драйвера;
задание таблицы для выбора значений.
В этом списке обязательным является только первое действие, т. е. каждая таблица должна иметь хотя бы одно поле. Остальные действия выполняются при необходимости. Часть действий, такие как задание ключа и паролей, производится только для таблиц опред пленных форматов, например, для таблиц Paradox-
После определения структуры таблицы ее необходимо сохранить, нажав кнопку Save As и укагав расположение таблицы на диске и ее имя. В результате на диск записывается новая таблица, первоначально пустая, при этом все необходимы,0 файлы создаются автомат ическь.
Описание полей
Центральной частью окна определения структуры таблицы является список Field roster (Список полей), в котором указываются поля таблицы. Для каждого поля задаются:
имя поля - в столбце Field Name;
тип поля - в столбце Туре;
размер поля — в столбце Size.
Имя поля вводится по правилам, установленным для выбранного формата таблиц.
Тип поля можно задать, непосредственно указав соответствующий символ, например. А для символьного или I для целочисленного поля, или выбрать его в списке, раскрываемом нажатием клавиши <пробел> или щелчком правой кнопки мыши в столбце Туре. Список содержит все типы полей, допустимые для заданного формата таблицы. В списке подчеркнуты символы, используемые для обозначения соответствующего типа, при выборе типа эти символы автоматически заносятся в столбец Туре.
Размер поля задается не всегда, необходимость его указания зависит от типа поля. Для полей определенного типа, например, автоинкрементного (+) или целочисленного (I), размер поля не задается. Для поля строкового типа размер определяет максимальное число символов, которые могут храниться в поле.
Добагление к списку полей новой строки выполняется переводом курсора вниз на несуществующую строку, в результате чего эта строка появляетс я в конце списка. Вс гаака новой строки между существующими строками с уже описанными полями выполняется нажатием клавиши <lnserl>. Новая стро ка вставляется перед строкой, в которой расположен курсор. Для удаления строки необходимо установить курсор на эту строку и нажать комбинацию клавиш <Ctrl>+<Delete>.
Ключ создается указанием его полей. Для указания ключевых полей в столбце ключа (Key) нужно установить символ *, переведя в эту позицию курсор и нажав глобую алфавитно-цифровую клавишу. При повторном нажатии клавиши отметка принадлежности поля ключу снимается. В структуре таблицы ключевые поля должны быть первыми, т. е. верхними в списке полей. Часто для ключа используют автоинкрементное поле (см. рис. 11.19).
Напомним, что для таблиц Paradox ключ также называют первичным индексом (Primary Index), а для таблиц dBase ключ не создается, и его роль выполняет один из индексов.
Для выполнения остальных действий по определению структуры таблицы используется комбинированный список Table propel ties (Свойства таблицы), содержащий следующие пункты:
Validity Checks (проверка правильности ввода значений полей) — выбирается по умолчанию;
Table Lookup (таблица выбора);
« Secondary Indexes (вторичные индексы);
Referential Integrity (ссылочная целостность):
Password Security (пароли);
Table Language (я?ык таблицы, языковой драйвер);
Dependent Tables (подчиненные таблицы).
После выбора какого-либо пункта этого списка в правой части окна определения ст руктуры таблицы по тляют< я соответствующие элементы, с по мощью которых выполняются дальнейшие действия.
Состав данного списка зависит от формат а таблицы. Так, для таблицы dBase он содержит только пункты Indexes и Table I anguage
Задание индексов
Задание индекса сводится к определению:
состава полей;
парам< тров;
имени.
Эти элементы устанавливаются и ди изменяются при выполнении опера ций создания, изменения и удаления индекса. Напомним, что для таблиц Paradox индекс называют также вторичным индексом.
Для выполнения операций, связанных с задан1 ipm индексов, необходимо выбрать пункт Secondary Indexes (Вторичные индексы) списка Table properties (Свойства таблицы), при этом под списком появляются кнопки Define (Определить) и Moaify (Изменить), список индексов и кнопка Ьгаье
(Удалить^. В списке индексов выводятся имена созданных индексов, на рис. 11.19 это индекс incM.
Создание нового индекса начинается с нажатия кнопки Define, которая всегда доступна. Она открывает окно Define Secondary Index (Задание вторичного индекса), в котором вдаются состав полей и параметры индекса (рис. 11.20).
В списке Fields окна выводятся имена всех полей таблицы, включая и те, которые недопуст имы в составе индекса, например, графическое ноле или поле комментария. В списке Indexed fields (Индексные поля) содержатся поля, которые включаются в состав создава< мого индекса. Перемещение полей между списками выполняется выделением нужного поля ( повей) и нажатием расположенных между этими списками кнопок с изображением горизонтальных стрелок. Имена полей, которые нельзя включать д состав индекса, выделяются в левом списке серым цветом. Поле не может быть повторно включено в состав индекса, если оно уже выбрано и находится в нравов списке.
Замечание.
m
Fields
Define Secondary Index
Indexed fields
Code Number
±1
21
Change ordei ij
11
idex options -
Unique
P Mai itemed
Cace
sensitive Descending
Help
OK
14
Зак
174
Изменить порядок следование полей в индексе можно с помощью кнопок с изображением вертикальных стрелок, имеющих общее название Change order (Изменить порядок). Для перемещения поля (полей) необходимо его (их) выделить и нажать нужную кнопку.
Флажки, расположенные в нижн< й части окна задания индекса, по: юоля- ют указать следующие параметры индекса:
Unique — индекс требует для состав ляютцих его полей уникальных значений;
Maintained - задается автоматическое обслуживание индекса;
Case sensit.ve — для полей строкового типа учит ывает< я регистр символов;
Descending — сортировка выполняется в порядке убывания значений.
Так как у таблиц dBase нет ключей, для них использование параметра
Unique является единственной возможностью обеспечить уникальность записей на физическом уровне (уровне организации таблицы), не прибегая к npt >граммированию.
После задания состава индексных полей и нажатия кнопки ОК появ ляется окно Save Index As, в котором нужно указать имя индекса. Для удобства обращения к индексу в его имя можно включить имена полей, указав какой-нибудь префикс, например ind. Нежелательно образовывать имя индекса только из имен полей, т. к. для таблиц Paradox подобная система именования используется при автоматическом образовании имен для обозначения ссылочной целостности между таблицами. После повторного нажатия кнопки ОК сформированный индекс добавляется к таблице, и его имя появляется в списке индексов.
Созданный индекс м< окно изменить, определив новый состав полей, параметров и имени индекса. Изменение индекса практически не отличается от его создания. После выделения индекса в списке и нажатия кнопки Modify снова открывается окно задания индекса (см. рис. 11.20). При нажатии кнопки ОК появ ляется окно сохранения индекса содержащее имя изменяемого индекса, которое можно исправить или оставить прежним.
Для удаления индекса его нужно выделить в списке индексов и нажать кнопку Erase. В результате индекс удаляется без предупр< ждающих сообщений.
Кнопки Modify и Erase до< тупны, только если индекс выбран в списке.
Задание ограничений на значения полей
Задание ог раничений на значения полей заключается в указании для полей:
требования обязательного ввода значения;
минимального значения;
максимального значения;
значения по умолчанию;
маски ввода.
Установ. [енные ограничения задают ся на физическом уровне (уровне таблицы) и действуют для любых программ, выполняющих операции с таблицей: как для программ типа Database Desktop, так и для приложений, создаваемых в С++ Builder. Дополнительно к этим ограничениям или вмес го них в приложении можно задат ь программные ограничении.
Для выполнения операций, связанных с заданием ограничений на значения полей, нужно выбрать пункт Validity Checks (Проверка значений) комбинированного списка Table propel ties (см. рис. 11.19).
Задание ссылочной целостности
Понятие ссылочной целостности относится к связанным таблицам и проявляйся в следующих вариантах взаимодействия таблиц:
запрещается изменять поле связи или удалят ь запись главной таблицы, если для нее имеются записи в подчине нной таблице;
при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).
Для выполнения операций, связанных с заданием ссылочной целостности, необходимо выбрать пункт Heferential Integrity комбинированного списка Table properties (см. рис. 11.19).
Задание паролей
Пароль позволяет задать права доступа пользователей (приложений) к таблице. Если для таблицы установлен пароль, то он будет ав гоматически запрашиваться при каждой попытке открытия таблицы.
Пароль действует на физическом урорне и его действие распространяется на все программы, выполняющие доступ к таблице: как на программы типа Database Desktop, так и на создаваемые приложения С++ Builder.
Для выполнения операций, связанных с заданьем паро 1я. нужно выбрать строку Password Security в комбинированном списке Table proper ties окна определения структуры таблицы (см. рис. 11.19).
Задание языкового драйвера
Для задания языкового драйвера нужно выбрать пункт Table Language (Язык таблицы) комбинированного списка Table properties окна определения структуры таблицы (см. рис. 11.19).
Изменение структуры таблицы
Структуру существующей таблицы можно изменить, выпо. шив команду Table\Restructure после предварительного выбора таблицы в окне программы Database Desktop. В результате открывается окно определения структуры таблицы, и дальнейшие действия не отличаются от действий, выполняемых при создании таблицы.
При изменении структуры таблицы с ней не должны работать другие приложения, в том числе С++ Builder. Поэтому предварительно необходимо закрыть С++ Builder или приложение, в котором компоненты Table связаны с перестоаиваемой таблицей. Другим вариантом является отк почение активности компонентов Table, связанных с перестраиваемой таблицей, для чего свойству Active ,эт их компонентов через Инспектор объектов устанав. тивает- ся значение false.
Переименование таблицы следует выполнять из среды программы Database Desktop, а не из среды Windows, например, с помощь.о Проводника. Для этого при работе со структурой таблицы можно нажать кнопку Save as и задать новое имя таблицы. В результате в указанном каталоге диска появятся все необходимые файлы таблицы. При этом ст а рая таб. [ица также сохраняется. Информация о названии таблицы используется внутри ее файлов, шитому простое го ремменование всех фай чоь таб. шцы приве лет к ошибке при попытке доступа к ней.
Если необходимо просто ознакомиться со структурой таблицы, то выполняется команда Table\lnfo Sti ucture. В результате появляется окно определения < труктуры таблицы, но элементы, с помощью которых в с! руктуру таблицы могут быть внесены изменения, заблокированы. Просмотр структуры возможен также для таблицы, с которой связаны другие приложения.