Введение в microsoft access (835789), страница 2
Текст из файла (страница 2)
Таблица «Ученики»Рис. 3.13Окно базы данныхбудет соответствовать таблица. При этом записи соответствует строка таблицы, а полю – столбец. На логическомуровне удобно считать, что данные хранятся в таблицах ирасполагаются в памяти компьютера последовательно: запись за записью, поле за полем. Все записи таблицы имеют одинаковую длину (в байтах), что позволяет избежатьлишних ссылок и обеспечивает быстрый доступ к нужнойзаписи.
Аналогично одноименные поля в записях имеютодинаковую длину и принадлежат к одному типу данных.Что такое тип данных, знают все, кому приходилось иметьдело хоть с одним из языков программирования. Типы14ГЛАВА 1. СУЩНОСТИ, ТАБЛИЦЫ И ЗАПРОСЫданных, которые может предложить нам Access, мы разберем по ходу создания таблиц.Длясозданиятаблицыщелкнемпопунктуверхнегоменю «Создание», затем по пиктограмме «Конструктортаблиц».
На экране появится окно конструктора (рис. 4).Рис. 4.Конструктор таблицВ этом окне мы можем создавать и редактировать структуру таблицы. Окно разбито на три колонки: «Имя поля»,«Тип данных» и «Описание». Первые две колонки заполняются обязательно, в колонку «Описание» вы можете заносить любую информацию, поясняющую содержание ееполей.
Мы оставим заполнение этой колонки на усмотрение читателя. Ниже слева расположены свойства полей,которые вы можете изменять по мере необходимости.§ 1.2. Таблица «Ученики»15Поля отражают выделенные нами в предыдущем пунктесвойства сущностей. Первая таблица будет хранить данные о сущности «Ученик».1. ID_ученик.Мы добавили одно, не предусмотренноеранее, поле «ID_ученик» (см. рис.
4). Во второй колонкеразвернем меню и выберем тип данных «Счетчик». Полетипа «Счетчик» в процессе работы с таблицей заполняетсяавтоматически и хранит код записи. Если не менять принятые по умолчанию свойства поля, то для первой записизначение «ID_ученик» будет 1 и далее для каждой следующей записи будет увеличиваться на 1.
Таким образом,никогда не появится двух записей с одинаковым кодом.Зачем нужно это поле, скоро будет понятно.2. ФИ.На следующей строке зададим поле «ФИ», хра-нящее фамилию и имя ученика (рис. 5). Тип данных выберем текстовый. Здесь требуется внести некоторые уточнения в свойства поля. Размер поля по умолчанию может оказаться слишком большим.
Установим 40. В строке«Обязательное поле» установим «ДА». Это значит, что система откажется сохранять запись, в которой не заполненоэто поле. Действительно, иначе запись просто бесполезна.Может возникнуть вопрос: а не сделать ли все поля обязательными? Не стоит! Часто, создавая запись, вводят невсе данные, и остальные поля заполняются в дальнейшем16ГЛАВА 1. СУЩНОСТИ, ТАБЛИЦЫ И ЗАПРОСЫРис. 5.Первые два поля таблицыпо мере поступления новой информации. Зададим следующие пять полей (рис.6).3.
ДР. Поле хранит дату рождения. Выберем тип данных«Дата/время». Он позволяет хранить не только день, месяц и год, но и часы, минуты и секунды. Пожалуй, этослишком! В разделе «Свойства поля» уточним формат.Для этого в строке «Формат поля» установим значение«Длинный формат даты».§ 1.2. Таблица «Ученики»Рис. 6.17Все поля4. Класс. В четвертую строку таблицы конструктора введем имя поля «Класс».
Выберем тип поля «Числовой».Здесь тип также нуждается в уточнении. По умолчаниюразмер поля – «Длинное целое». Это число, принадлежащее интервалу от−2 147483 648до+2 147 483 647.Такихклассов не бывает! Откроем в строке «Размер поля» менюи выберем пункт «Байт». Если бы мы этого не сделали, ничего страшного не случилось бы. Однако, если вы хотитестать программистом, вы должны воспитать в себе привычку экономить память. Уместно использовать еще односвойство числового поля – «Условие на значение». Запишем в этой строке:>= 1 <= 11.Это значит, номеркласса должен находиться на интервале от 1 до 11.
Если18ГЛАВА 1. СУЩНОСТИ, ТАБЛИЦЫ И ЗАПРОСЫвы попробуете ввести какое-либо иное значение, системавыдаст сообщение об ошибке.5. Буква.Класс полностью определяется номером и бук-вой. Может возникнуть вопрос: почему бы нам сразуне задать символьное поле и писать просто 9а, 10б и т. д.?Но тогда мы не смогли бы делать выборки по всем 9-м,10-м и прочим классам. Поэтому оставим для буквы отдельное текстовое поле, которое так и назовем – «Буква».Длину этого поля можно установить равной 1. Тут естьподводные камни.
Сравните два значения поля: «a» и «а».Вы скажете, что они совпадают. А вот и нет! В первомвведена английская «а», а во втором – русская. Для системы это разные символы, поскольку им соответствуютразные коды. Такие ситуации непременно возникнут призаполнении базы данных, и у нас будут появляться «лишние» классы. Чтобы избежать подобных неприятностей,в строке поля «Буква» развернем меню и выберем типданных «Мастер подстановок». На самом деле это никакойне тип данных, а механизм, который позволяет выбиратьзначение поля из списка. При нажатии на «Мастер подстановок» начнется диалог с «мастером».
Установим переключатель в положение «Будет введен фиксированныйнабор...» (рис.7) . «Далее». Введем все возможные зна-чения поля «Буква» (рис.8). «Далее». Мастер попросит§ 1.2. Таблица «Ученики»Рис. 7.19Выбор фиксированного набора значенийРис. 8.Фиксированный набор значенийзадать имя поля. Оставим прежнее – «Буква».
«Готово».6. Телефон.Для номера телефона выберем тип данных«Текстовый». Размер поля – 12. Как показано на рис.9,установим маску ввода, т. е. набор символов, задающийформат вводимой информации. Символ «#» означает, чтона первом месте в текстовой строке могут стоять «+», «−»,20ГЛАВА 1. СУЩНОСТИ, ТАБЛИЦЫ И ЗАПРОСЫРис. 9.Формат номера телефонацифра или пробел; символ «9» – на этом месте может стоять только цифра или пробел; перед символами, которыене вводятся, но должны стоять на фиксированных местах,ставится знак «∖».7. Комментарии.Выберем тип данных «Поле MEMO».Последнее означает, что поле может хранить текстовуюстроку произвольной длины.
Сейчас читатель имеет полное право возмутиться. Ведь выше было сказано, что каждое поле таблицы имеет фиксированную длину. На самомделе поле MEMO хранит только ссылку на текстовую строку, а сама строка располагается вне таблицы. Поэтому поля MEMO нежелательно использовать для поиска и сортировки. Переход на строку происходит по ссылке, а значит,эти операции будут выполняться гораздо медленнее.Похоже, мы сформировали структуру таблицы, однако упустили один важный момент. Если сейчас закрыть окноконструктора с сохранением результата, система напомнитнам, что мы не задалиключевое поле.За нами остает-ся право проигнорировать напоминание, но, как правило,§ 1.2. Таблица «Ученики»21ключевое поле лучше все-таки иметь.
Ключевым называют поле, которое однозначно идентифицирует запись.В принципе, ключевым можно сделать любое поле. Но,если, например, мы возьмем в качестве ключевого поле«ФИ», система откажется сохранить запись об ИвановеВане, когда в таблице есть уже один Иванов Ваня. Заметим, в школе не так уж редко встречаются ученики с совпадающими фамилиями и именами.
Ключом может бытьи совокупность полей. Однако последнее не всегда решает проблему. Так, в базе данных большой больницы могут встретиться два Иванова Ивана Ивановича с совпадающими датами рождения. А перепутать двух больныхмы уж точно не имеем права. Вот почему создают специальные поля с кодом записи. Мы с этой целью добавилик полям, хранящим данные о сущности, поле «ID_ученик».Оно дает каждому ученику уникальный код.
Cделаем егоключевым.Дляэтогоустановимуказательнастроке«ID_ученик» и щелкнем по изображению ключа с подписью «Ключевое поле» в левом верхнем углу окна базыданных. Слева от имени поля «ID_ученик» появится изображение ключика. Если теперь читатель еще раз взглянет на рис. 6 (с. 17), он заметит, что мы заранее сделалиэто поле ключевым. Но мы оставили разговор о ключевыхполях «на десерт».22ГЛАВА 1. СУЩНОСТИ, ТАБЛИЦЫ И ЗАПРОСЫЗакроем окно конструктора, т. е. нажмем на крестикв правом верхнем его углу. Появится диалоговое окно«Сохранить изменения макета или структуры объекта?».Ответим: «ДА». В следующем окне нам предложат датьимявтаблице.области«ВсеНазовемобъектыее«Ученики».Access»появиласьСлеваперваятаблица с присвоенным нами именем.
Если в дальнейшему нас возникнет необходимость отредактировать структуру таблицы (например, добавить еще одно поле), мы можем щелкнуть правой клавишей мышки по имени таблицыи в открывшемся меню выбрать пункт «Конструктор». Наэкране появится окно конструктора.В процессе разработки приложения нужен реальный илипохожий на реальный набор данных. Щелчком по имени«Ученики» в области «Все объекты Access» откроем таблицу для заполнения. Мы ввели 20 записей (рис. 10).