Создание структуры базы данных. Ввод и редактирование данных

Одним из основополагающих элементов СУБД Microsoft Access, как и вообще любой СУБД, является таблица. Именно в таблицах базы данных хранят всю свою информацию. Когда оператор заполняет форму, он тем самым заполняет данными одну или несколько таблиц. Когда же пользователь задает базе какой-нибудь вопрос, то запускается процедура обращения к некоторому сообществу таблиц.

Общеизвестно, что таблица состоит из столбцов и строк, являющихся в целом разграфленной прямоугольной областью, в которой пояснительные надписи являются наименованиями столбцов, а непосредственно сама информация располагается в строках. Однако в Microsoft Access таблица представляется в двух вариантах: непосредственно табличное представление и представление в режиме конструктора, в котором происходит настройка таблицы.

Рассмотрим процесс создания таблицы в режиме конструктора на конкретном примере. Для фирмы, торгующей компьютерной техникой, сформируем базу данных, состоящую из двух таблиц, одна из которых содержит сведения о компьютерах, другая – о заказчиках.

Запустите СУБД Microsoft Access. В первом открывшимся диалоговом окне выберите Новая база данных и нажмите кнопку OK (если же Вы уже находитесь в программе, то в меню Файл выберете Создать – База данных) (Рисунок 6).

Далее компьютер предлагает назвать Файл новой базы данных, что мы и сделаем, поместив файл с именем Продажа компьютеров в свою папку (в папку с Вашей фамилией). В появившемся окне Продажа компьютеров: база данных в его левой части выберите Таблицы, а затем, дважды щелкните в правой части окна по строке Создание таблицы в режиме конструктора.

Рис. 6. Окно открытия / создания базы данных

На экране появилось пустое окно конструирования таблицы, состоящее из двух частей (Рисунок 7). В верхней части окна вводятся имена полей, типы данных и комментарии. В нижней части вводится описание свойств поля (параметры), которыепоявляются после ввода имени поля и перехода к типу данных.

В первую строку столбца Имя поля введите с клавиатуры Код модели и нажмите Enter. В этой же строке в столбце Тип данных из списка выберете Текстовый. Следующий столбец Описание носит лишь вспомогательный характер – все, что в нем набирается, нужно Вам самим и никак ни влияет на базу данных. В нашем случае столбец Описание можно не заполнять.

Рис. 7. Окно таблицы в режиме конструктора

Переходим к заполнению нижней части таблицы – Свойства поля. Для экономии памяти компьютера и зная заведомо, что Код модели будет содержать шесть символов, в качестве Размера поля зададим с клавиатуры число 6.

Следующий пункт Формат поля указывает, в каком формате будут выводиться данные при просмотре таблицы. Например, для полей типа Дата/Время можно указывать только часы, либо часы и минуты, либо часы, минуты и секунды. В нашем случае его можно не указывать.

Строка Маска ввода существует на тот случай, когда данные должны вводиться в заранее заданной форме. Например, многие люди привыкли записывать телефонный номер, указывая в скобках междугородний код, затем несколько групп цифр, разделенных тире. Очевидно, что было бы удобнее, если бы система не заставляла оператора вводить каждый раз, кроме цифр, еще и тире. В нашем случае Маска ввода не нужна.

Следующая строка – Подпись – вообще говоря, особого смысла не имеет. То, что в ней набрано, Microsoft Access в дальнейшем использует как всплывающую подсказку для элемента управления. То есть, когда пользователь наводит курсор мыши на тот или иной элемент (например, кнопку на панели инструментов), через мгновение рядом возникает белый прямоугольник с краткой пояснительной надписью (всплывающая подсказка). Для нас эта опция не является необходимой.

Строка Значение по умолчанию служит для автоматического вывода некоторого, часто повторяющегося, заданного выражения (текстового или числового) при заполнении таблицы, как только будет создана новая запись. Естественно, что это значение можно при заполнении таблицы заменить любым другим. Для данного случая это поле опять же пропускается.

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

Чтобы система была в состоянии самостоятельно отслеживать заполнение первостепенных полей, имеет место строка Обязательное поле. Если в качестве параметра данной строки выбрано Да, то Microsoft Access не внесет в таблицу строку, одно или несколько обязательных полей которой оказались не заполнены или заполнены значением по умолчанию. Обязательное поле должно заполняться вручную! В нашей задаче поле Код модели будет обязательным. К тому же в строке Пустые строки укажите Нет.

Отдельно следует остановиться на строке Индексированное поле. Ясно, что любая база является не чем иным, как простым хранилищем какой-либо информации. А хранилище – это то, откуда что-либо время от времени берут. Сама технология СУБД возникла, прежде всего, для того, чтобы извлекать необходимые данные из хранилища с минимальными затратами. Одним из механизмов, с помощью которого подобная цель достигается, является индекс. Это как бы своего рода дополнительная метка, по которой СУБД Microsoft Access производит просмотр своего содержания. Сначала просматриваются ключевые поля, затем - индексированные, и только потом все остальные. Таким образом, если Вы предполагаете, что к данному полю возможно частое обращение, то стоит указать его как индексированное, что делается в строке Индексированное поле. Для нашей задачи в строке Индексированное поле выберем Да (совпадения не допускаются).

В Microsoft Access для хранения информации полей типа «Текстовый», «Поле MEMO» и «Гиперссылка» используется кодировка Юникод. В Юникод каждый символ представляется двумя байтами, а не одним, как в традиционных кодировках. Кодировка, в которой каждый символ представляется одним байтом, обеспечивает возможность работы только с набором, состоящим не более чем из 256 символов. Кодировка Юникод поддерживает до 65536 символов, так как каждый символ обозначается в ней двумя байтами. В результате для хранения данных полей типа «Текстовый», «Поле MEMO» и «Гиперссылка» требуется больше места, чем в предыдущих версиях Access. Этот эффект использования кодировки Юникод можно сгладить, установив свойство Сжатие Юникод поля в значение Да. Когда свойство Сжатие Юникод поля имеет значение Да, все символы, первый байт которых равен 0, будут сжиматься при сохранении и восстанавливаться при выборке. Очевидно, что для рассматриваемой нами задачи в строке Сжатие Юникод оставим значение по умолчанию Да.

Есть в Microsoft Access такое понятие, как Подстановка. Предположим, некоторая компания работает с несколькими видами валют. Понятно, что каждый раз, когда требуется такие валюты определять для каких-либо надобностей, необязательно создавать отдельные реестры. Это достаточно трудоемко, да и ресурсов машинных требует. Значительно удобнее задать в проекте всего одну таблицу, в которой будет вестись учет всех применяющихся денежных единиц, а в тех случаях, когда подобная информация понадобится в других местах, – подставлять там содержимое единого валютного реестра. В таком случае, в поле Тип элемента управления следует выбрать что-либо, кроме обычного поля ввода. Например, если выбран вариант Поле со списком, то в табличном представлении вместо обычной ячейки в соответствующем месте появится поле с выпадающим списком, из содержимого которого пользователь может выбирать конкретное значение, которое впоследствии станет заноситься в таблицу в качестве его текущего значения. Для заполнения данного поля Подстановка не используется.

Далее переходим к заполнению следующей строки столбца Имя поля – Модель. Тип данных - Текстовый. Размер поля – 20. Обязательное поле – Да. Пустые строки – Нет. Индексированное поле – Да (Допускаются совпадения). Не указанные свойства оставим без изменения.

Аналогичным образом введите следующие поля:

Оперативная память

Тип данных - Текстовый

Размер поля – 8

Значение по умолчанию – “128 Mb”

Видеопамять

Тип данных - Текстовый

Размер поля – 8

Значение по умолчанию – “64 Mb”

HDD

Тип данных - Текстовый

Размер поля – 8

Подпись – Емкость жесткого диска.

CD

Тип данных - Текстовый

Размер поля – 3

Подпись – Лазерный диск

Значение по умолчанию – “Да”

Условие на значение – “Нет” Or “Да”

Сообщение об ошибке – В поле можно ввести только “Нет” или “Да”

Монитор

Тип данных - Текстовый

Размер поля – 40

Цена

Тип данных - Числовой

Размер поля – Одинарное с плавающей точкой

Формат поля – Денежный

Число десятичных знаков – Авто

Теперь определим Ключевое поле. В Microsoft Access существует обязательное правило, в соответствии с которым любая таблица должна содержать Ключевое поле. Ключевым должно быть такое поле или их сочетание, которое однозначно описывает всю запись (то есть строку) в таблице. Обычно в этом качестве используется нумерация строк. Поэтому первым полем любой таблицы зачастую задается поле с типом «Счетчик», содержимое которого автоматически увеличивается на единицу при создании новой строки. Чтобы поле стало ключевым, в режиме конструктора, необходимо поместить курсор мыши в поле его названия и нажать мышью на изображение ключа на панели инструментов (или выберете команду Ключевое поле в меню Правка). Слева, возле данного поля, появится маленький ключик, который и символизирует, что данное поле является ключевым. Более того, без обязательного назначения одного или нескольких ключевых полей Microsoft Access не позволит вновь создаваемую таблицу сохранить.

Самостоятельно выберете в качестве ключевого – поле Код модели.

Теперь необходимо сохранить структуру таблицы на диске. Для этого выберите пункт меню Файл и далее команду Сохранить. В появившемся окне задайте имя таблицы Модели компьютеров и щелкните левой клавишей мыши по кнопке ОК. Закройте окно таблицы Модели компьютеров, щелкнув левой клавишей мыши по кнопке с изображением «крестика» в верхнем правом углу окна таблицы Модели компьютеров. Таким образом, Вами создана структура таблицы Модели компьютеров.

Осуществим ввод данных в таблицу. Выделите имя таблицы Модели компьютеров в окне базы данных и нажмите кнопку Открыть на собственной панели инструментов. Введите записи данных, находящиеся в таблице 1.

Табл. 1.

Код модели 112341 112342 112343 112344 112345 112346
Модель ATHLON 1400 DURON 950 CELERON 1100 PINTIUM 1000 CELERON 1700 PENTIUM 2200
Опера-тивная память 128 Mb 128Mb 128 Mb 128 Mb 256 Mb 256 Mb
Видеопамять 16 Mb 32 Mb 32 Mb 64 Mb 64 Mb 128 Mb
HDD 10 Gb 20 Gb 20 Gb 40 Gb 40 Gb 60 Gb
CD Нет Да Да Да Да Да
Монитор Samsung 551S LG 774FT CTX 1795 Nec FE750+ Sony G220P Samsung 191S
Цена (руб.) 12550 14500 17000 19700 24500 32850

Задание. Самостоятельно создайте вторую таблицу, которая будет содержать сведения о заказчиках. Используйте режим конструктора и приведенные ниже данные.

Имя поля Тип данных Описание
Номер заказа Текстовый  

 

Свойства поля

Общие  
Размер поля 4
Обязательное поле Да
Пустые строки Нет
Индексированное поле Да (Совпадения не допускаются)

 

Код модели Текстовый  

Размер поля: 6

Обязательное поле: Да

Пустые строки: Нет

Индексированное поле: Да(Допускаются совпадения)

Заказчик Текстовый  

Размер поля: 20

Индексированное поле: Да(Допускаются совпадения)

Обращение Текстовый  

Размер поля: 8

Значение по умолчанию: “Господин”

Условие на значение: "Господин" Or "Госпожа"

Сообщение об ошибке: Допускается только два обращения “Господин” или “Госпожа”

ФИО Текстовый  

Размер поля: 30

Подпись: Фамилия, Имя, Отчество

Индексированное поле: Да (Допускаются совпадения)

Индекс Текстовый  

Размер поля: 6

Маска ввода: 000000

Город Текстовый  

Размер поля: 15

Адрес Текстовый  

Размер поля: 50

Телефон Текстовый  

Размер поля: 10

Маска ввода :!000\-0000

Дата заказа Дата/время  

Формат поля: Краткий формат даты

Маска ввода: 99/99/00;0;_

Количество Числовой  

Размер поля: Целое

Число десятичных знаков: 0

Скидка Числовой  

Размер поля: Одинарное с плавающей точкой

Формат поля: Процентный

Число десятичных знаков: 0

В качестве ключевого поля выберете Номер заказа. Сохраните таблицу Клиенты и заполните ее следующими данными:

Табл. 2.

Номер заказа 1001 1002
Код модели 112342 112343
Заказчик НТО "Крокус" АОО "Веста"
Обращение Господин Госпожа
ФИО Глебов Р.Г. Маева С.С.
Индекс 123765 329045
Город Москва С-Петербург
Адрес ул. Б.Мнемники, 45 ул. М.Фонтанка, 33
Телефон 196-5674 124-8799
Дата заказа 28.06.02 03.07.02
Количество 10 100
Скидка 3% 7%

Задание. Самостоятельно добавьте в данную таблицу еще семь записей (любых). Учтите, что Код модели в таблице Клиенты может повторяться, но вносить Вы должны те и только те значения, которые содержаться в таблице Модели компьютеров.

После того, как таблицы созданы, нужно установить связи между ними. Благодаря связям значительно уменьшается объем любой базы данных, особенно в тех случаях, когда информация повторяется. Удобнее всего устанавливать связи на схеме данных (Рисунок 8).

Рис. 8. Окно Схема данных базы данных Продажа компьютеров

Задание. Войдите в меню Сервис и выберите пункт Схема данных. В окне Добавление таблицы выделите Клиенты и нажмите кнопку Добавить. Затем выделите таблицу Модели компьютеров и нажмите кнопку Добавить. Закройте окно Добавление таблицы. В представленном окне Схема данных подведите указатель мыши к полю Код модели в таблице Модели компьютеров, нажмите левую клавишу мыши и, удерживая ее в нажатом положении, переместите его на поле Код модели в таблице Клиенты, затем отпустите кнопку мыши. На экране появится диалоговое окно Связи. Установите флажок Обеспечение целостности данных и Каскадное обновление связанных полей, нажмите кнопку Создать. Таблицы связаны друг с другом (Рисунок 8).

Замечание. 1) Связь один-ко-многим означает, что, одной записи в таблице Модели компьютеров соответствует несколько записей в таблице Клиенты. При этом таблицу Модели компьютеров принято называть главной, а таблицу Клиентыподчиненной. 2) Обеспечение целостности данных означает систему правил, используемых для поддержания связей между записями в связанных таблицах, а также защиту от случайного удаления или изменения связанных данных. При установке соответствующего флажка работа с данными будет подчинена следующим правилам: а) невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в связанном поле главной таблицы; однако можно ввести пустое значение, показывающее, что для данной записи связь отсутствует; б) не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице; в) невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с подчиненной. 3) Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей позволяют преодолеть указанные в пункте 2) ограничения, сохраняя при этом целостность данных. При изменении ключевого поля или удалении записей в главной таблице будут проверяться соответствующие записи в подчиненной таблице и обновляться внешние ключи или удаляться записи соответственно.

Закройте окно Схема данных. Теперь данные из одной таблицы будут доступны данным из связанной с ней таблицы.

Табл. 3.

Имя поля Тип данных Размер поля Формат поля Обязательное поле Индексированное поле
Номер Текстовый 5   Да Да (Совпадения не допускаются)
Фамилия Текстовый 15   Да Да (Допускаются совпадения)
Имя Текстовый 10      
Отчество Текстовый 15      
Пол Текстовый 7      
Дата рождения Дата/ время   Краткий формат    
Факультет Текстовый 30     Да (Допускаются совпадения)
Группа Текстовый 3   Да Да (Допускаются совпадения)

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

Замечание. 1) Все свойства полей таблицы Студенты, не указанные в таблице 3, заполняются или не заполняются по Вашему усмотрению (согласно логике структуры заполняемых данных).

Замечание. 2) Например, для заполнения поля Пол будут использоваться только два слова: мужской и женский. Поэтому, можно в свойствах данного поля в режиме конструктора определить Подстановку. Для этого предварительно необходимо создать таблицу Справочник полов, в единственное поле Пол которой поместить только две записи: Мужской и Женский. Затем в свойствах поля Пол таблицы Студенты в качестве подстановки выбрать Тип элемента управленияПоле со списком, Тип источника строкТаблица или запрос, Источник строк – таблица Справочник полов. Теперь при заполнении таблицы Студенты в поле Пол будет высвечиваться кнопочка , при нажатии на которую Вы и будете выбирать из всплывающего списка либо Мужской, либо Женский. 3) Аналогично пункту 2 используйте подстановку для заполнения полей Факультет (Рисунок 9) и Группа с учетом того, что будут вводиться только перечисленные данные: Факультет – Экономический, Математический, Физический, Юридический; Группы – 11, 12, 21, 22, 31, 32. 4) Не забудьте определять ключевые поля!

Задание. Заполните таблицу Студенты десятью произвольными записями с учетом свойств полей.

Задание. 1) Самостоятельно создайте таблицу Преподаватели, которая имеет следующие поля: Табельный номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Ученая степень (Кандидат наук, Доктор наук, нет), Ученое звание (Доцент, Профессор, нет), Факультет (Экономический, Математический, Физический, Юридический). 2) Заполните её десятью записями. Используйте таблицы-справочники для подстановки. 3) Установите связи между таблицами Студенты и Преподаватели.

Рис. 9. Свойства поля Факультет: подстановка таблицы-справочника Список факультетов в таблицу Студенты

Задание. Самостоятельно добавьте в таблицы базы данных Продажа компьютеров подстановки (там, где это необходимо).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: