Количество таблиц и их имена
Предпочтительны краткие имена таблиц, но они должны определенно говорить о сути (теме) информации, хранящейся в этой таблице. Microsoft Access ограничивает допустимые имена таблиц и других объектов БД следующим образом: 1) имена должны содержать не более 64 символов; 2) могут включать любые комбинации букв, цифр и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (`) и прямых скобок ([ ]); 3) имя не должно начинаться с пробела и содержать управляющие символы (с кодами ASCII 00—31). Замечания: · Старайтесь не включать в имена объектов пробелы, в особенности, если предполагается часто использовать ссылки на эти имена. Вместо пробела для разделения слов можно использовать символ подчеркивания(_). · Избегайте слишком длинных имен: такие имена трудно запоминать и на них неудобно ссылаться. Проектируя структуру БД СТУДЕНТ (см. табл.1) с учетом всего выше сказанного, первоначально созданное отношение преобразуем (см. табл.2) так, чтобы фамилия, имя и отчество были отдельными атрибутами (учтем требование атомарности). Строго говоря, Атрибут АДРЕС тоже следует разбить на несколько атрибутов. Таблица 2. Отношение СТУДЕНТ
Таблица СТУДЕНТ - объектное отношение, т.к. хранит данные об экземплярах объекта СТУДЕНТ предметной области СТУДЕНЧЕСКИЙ АРХИВ. Каждый студент является экземпляром объекта СТУДЕНТ и должен быть однозначно идентифицируем, поэтому объектное отношение должно обязательно иметь первичный ключ.
Первичный ключ — это такой атрибут или набор атрибутов, который может быть использован для однозначной идентификации конкретной строки. Первичный ключ, однако, не должен иметь лишних атрибутов. Попытаемся определить, какой атрибут или совокупность атрибутов являются первичным ключом отношения СТУДЕНТ. Нетрудно заметить, что ни один из атрибутов этого отношения и даже все они, вместе взятые, не являются однозначным идентификатором конкретного студента. Разные студенты могут иметь одинаковые фамилии и инициалы, они могут родиться в один день и, тем более, обучаться на одном и том же курсе по одной специальности. Атрибут АДРЕС также не может обеспечить уникальность, если записи содержат сведения о близнецах, которые учатся вместе и вместе живут. Если же добавить в отношение Студент атрибут НОМЕР_ЗАЧЕТКИ, то он без всяких оговорок будет однозначно определять каждого студента (см. табл.3).
Таблица 3. Отношение СТУДЕНТ
Таким образом, атрибут НОМЕР_ЗАЧЕТКИ назначим ключевым. Если отношение имеет несколько потенциальных первичных ключей, то выбирают тот из них, который короче. В нашем случае первичным ключом будет НОМЕР_ЗАЧЕТКИ, другие потенциальные ключи называются возможными ключами или ключами — кандидатами. Далее атрибут СПЕЦИАЛЬНОСТЬ исключим с целью минимизации избыточности, т.к. данные о факультете и специальности можно получить по связи с номером группы.
Отношение Студент после изменений примет вид: Таблица 4. Отношение СТУДЕНТ
Для удобства в поле ГРУППА будем вводить не номер группы, а код – значение атрибута КОД_ГРУППЫ отношения ГРУППА (см. табл.5). Таблица 5. Отношение ГРУППА
В таблице ГРУППА первичным ключом можно было определить атрибут ГРУППА, но в нашем случае добавлен атрибут КОД_ГРУППЫ с учетом возможного повторения номеров групп с некоторой цикличностью, например 10 лет. Отношение СТУДЕНТ является связным относительно отношения ГРУППА. Т.е. Из отношения ГРУППА по атрибуту КОД_ГРУППЫ можно найти данные обо всех студентах, обучающихся в конкретной группе. Связное отношение содержит атрибуты, характеризующие связь между объектами. Оно обязательно содержит первичные ключи объектных отношений, участвующих в связи, а также атрибуты, которые функционально зависят от этой связи. Атрибут ГРУППА отношения СТУДЕНТ содержит значения первичного ключа КОД_ГРУППЫ отношения ГРУППА. Однако, связное отношение не обязательно содержит первичный ключ. Оно служит для того, чтобы можно было, выбрав информацию из одного отношения, использовать ее для поиска соответствующей информации в другом отношении. В нашем примере к отношению СТУДЕНТ можно построить множество связных отношений. Атрибут отношения, который является первичным ключом другого отношения, называется внешним или вторичным ключом. В нашем случае атрибут ГРУППА отношения СТУДЕНТ – внешний ключ. Реляционная модель накладывает на внешние ключи ограничение для обеспечения ссылочной целостности данных. Суть этих ограничений в том, что каждому внешнему ключу должна соответствовать строка какого — либо объектного отношения. Иначе может случиться, что внешний ключ ссылается на экземпляр объекта, о котором ничего не известно. Например, отношение СТУДЕНТ не может принять вид:
Таблица 6. Отношение СТУДЕНТ
Т.к. группы с кодом 5 в таблице ГРУППА не существует. Т.е. чтобы получить запись о Сидорове, обучающемся в некой группе с кодом «5», следует предварительно в таблицу ГРУППА внести такую запись: Таблица 7. Отношение ГРУППА
Задания для самостоятельной работы 1. Изменить отношение СТУДЕНТ в части сведений о домашнем адресе с учетом требования атомарности. 2. Построить отношение СЕССИЯ – связное с отношением СТУДЕНТ. Типы данных и типы полей Кроме имени у каждого поля существует набор свойств, часть которых задается пользователем, а часть—автоматически, как следствие "назначенных" свойств. Выбирая свойства поля, необходимо ясно представлять, какая информация будет в нем храниться, как будет формироваться и каковы ограничения на ввод, так как Access позволяет контролировать данные при вводе. Свойства поля определяются типом данных, которые будут в нем храниться. При выборе типа данных, используемых в поле, необходимо учитывать следующее: 1. Какие значения должны отображаться в поле? Например, нельзя хранить текст в поле, имеющем числовой тип данных. 2. Сколько места необходимо для хранения значений в поле. 3. Какие операции должны производиться со значениями в поле. Например, суммировать значения можно в числовых полях и в полях, имеющих валютный формат, а значения в текстовых полях и полях объектов OLE нельзя. 4. Нужна ли сортировка или индексирование поля. Сортировать и индексировать поля MЕМО, гиперссылки и объекты OLE невозможно. 5. Необходимо ли использование полей в группировке записей в запросах или отчетах? Поля MЕМО, гиперссылки и объекты OLE использовать для группировки записей нельзя.
6. Каким образом должны быть отсортированы значения в поле? В Microsoft Access определены девять типов полей: «Текстовый», «Числовой», «Денежный», «Дата/время», «Логический», «Счетчик», «Поле MEMO», «Гиперссылка», «Поле объекта OLE». В таблице 8 указаны все типы данных в Microsoft Access, их использование и размеры. Размер данных, указанный в таблице, говорит о возможном полученном объеме информации с точки зрения пользователя. Длина соответствующего поля будет иной. Так, при указании типа данных "Объект" в записи таблицы появится поле с типом "Объект", длина которого 4 байта. Но включить в БД таким образом можно рисунок, текст или другой документ размером до 1 гигабайта. Таблица 8. Типы полей, размеры, требуемые для сохранения значений, и диапазоны допустимых значений
Замечания:
· Массивы любых типов данных требуют 20 байт памяти плюс 4 байта на каждую размерность массива плюс число байт, требуемых для хранения данных. Объем памяти, требуемый для сохранения данных, рассчитывается как произведение числа элементов на размер элемента. Например, данные в одномерном массиве, который содержит четыре элемента типа Integer, требующих по 2 байта на элемент, занимают 8 байт. Вместе с 20 байтами на массив и 4 байтами на размерность общий требуемый объем составляет 32 байта. · Значение типа Variant, содержащее массив, требует 12 байт в дополнение к объему, требуемому массивом.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|