Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Разработка структуры базы данных




Типы данных в различных СУБД

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

Как правило, все СУБД позволяют работать с данными следующих типов:

· текстовые (символьные) – позволяют хранить любые символы (буквы, цифры, знаки и т.п.)

· числовые – используются для хранения и обработки числовой информации. Как правило имеется несколько разновидностей этого типа (целые разной длины и с плавающей запятой разной точности)

· денежные (децимальные) – применяются для хранения неокругляемых чисел. Используются обычно для хранения финансовых величин для исключения ошибки округления

· дата и/или время – позволяют хранить показатели даты и/или времени в различном представлении. В отличие от текстовых, с данными такого типа можно выполнять вычисления, например, чтобы определить, сколько времени (в секундах, минутах, часах, днях, годах и п.д.) прошло между двумя событиями.

· логические - используются для хранения данных типа да/нет (истина/ложь, 1/0).

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

· примечания – применяются для хранения фрагментов текстовой информации непредсказуемого размера.

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

В СУБД MS Access, например, используются следующие типы данных:

· Числовой (целые числа и с плавающей запятой)

· Денежный

· Текстовый – размер от 1 до 255 байт

· Дата/время

· Логический – одно из двух возможных значений (истина или ложь)

· Поле Memo – для записи данных размер которых заранее не известен или более 255 знаков

· Объект OLE – для хранения документов, созданных в других приложениях

· Гиперссылка – для хранения адресов данных, расположенных, как правило, в сети

· Счетчик – автоматически назначаемое числовое поле с неповторяющимися значениями.

Вопросы для самоконтроля:

1. С какими типами данных позволяют работать СУБД?

2. Какие типы данных используются в СУБД MS Access?

3. Дайте характеристику логическому типу данных.

Рассмотрим разработку структуры базы данных на конкретном примере.

1. Постановка задачи.

Требуется создать базу данных, позволяющую учитывать пропуски занятий студентами.

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

База должна работать в СУБД MS Access.

2. Сначала нужно определить состав таблиц. Учитывая то, что в каждой таблице должна храниться информация об объектах определенного вида, исходя из постановки задачи, можно предложить три таблицы: СТУДЕНТЫ, ПРЕДМЕТЫ и ПРОПУСКИ.

3. Далее следует для каждой таблицы составить примерный перечень полей, который в дальнейшем может быть уточнен. В таблице СТУДЕНТЫ в поле Армия предполагается вводить одно из трех значений "Служил", "Не служил" "Освобожден(а)".

Примерный состав таблиц приведен ниже.

Таблица 2. Поля трех таблиц

СТУДЕНТЫ ПРЕДМЕТЫ ПРОПУСКИ
Номер зачетки Название предмета ФИО
ФИО   Название предмета
Год рождения   Дата
Курс   Кол-во часов пропущено
Армия    
Пол    

4. Далее необходимо указать ключи в таблицах.

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

В предложенной структуре таблицы ПРОПУСКИ ни одно поле самостоятельным ключом быть не может, т.к. данные во всех полях могут повторяться. Кроме того, не исключено наличие студентов с одинаковыми ФИО, что при использовании приведенной структуры вызовет путаницу. Кроме того, при вводе данных о каждом пропуске придется полностью вводить ФИО и название предмета, которое может быть довольно длинным.

В связи с изложенными обстоятельствами предлагается в таблицу ПРЕДМЕТЫ добавить поле Код предмета и сделать его ключевым. В таблице ПРОПУСКИ вместо ФИО использовать Номер зачетки, а вместо Названия предмета - Код предмета. Структура таблиц с проведенными изменениями приведена ниже. Ключевые поля выделены жирным курсивом.

 

Таблица 3. Поля таблиц с ключами

СТУДЕНТЫ ПРЕДМЕТЫ ПРОПУСКИ
Номер зачетки Код предмета Номер зачетки
ФИО Название предмета Код предмета
Год рождения   Дата
Курс   Кол-во часов пропущено
Армия    
Пол    

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

5. Далее необходимо назначить названия полей в таблицах. В Access, как и в других СУБД, есть некоторые ограничения для имен полей.

Рекомендации по назначению имен полей в Access:

· имена полей желательно назначать осмысленными;

· имя не должно начинаться с цифры или пробела;

· в именах не допускаются символы! " %: / * - + = \ #? > < ' { } [ ] () ^ & |;

· имена не должны совпадать с именами встроенных функций (SIN, COS, DATE и др.);

· в пределах одной таблицы не может быть одинаковых имен, при этом заглавные и строчные буквы не различаются;

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

Из приведенных в таблицах названий в качестве имени поля нельзя использовать "Кол-во часов пропущено", т.к. знак "-" недопустим. Назовем это поле "Количество".

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

Таблица 4. Таблицы с атрибутами

ПРЕДМЕТЫ СТУДЕНТЫ ПРОПУСКИ
Имя поля Тип поля Размер   Имя поля Тип поля Размер   Имя поля Тип поля Размер  
Код предмета Счетчик Длинное целое Номер зачетки Текст   Код предмета Число Длинное целое
Предмет Текст   ФИО Текст   Номер зачетки Текст  
      Год рождения Число Целое Дата Дата  
      Курс Число Байт Количество Число Байт
      Армия Текст    
      Пол Текст    

Вопросы для самоконтроля:

1. В какой таблице назначен тройной ключ?

2. Исходя из какого факта в этой таблице назначен тройной ключ?

3. Какие существуют ограничения для имен полей в СУБД MS Access?




Поделиться с друзьями:


Дата добавления: 2014-11-06; Просмотров: 1341; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.