|
|||||||||||||||||||||||||||||||||||||||
Преподаватель. Преподаватель ⇐ ПредыдущаяСтр 3 из 3 Преподаватель
Значение поля-счётчика никогда не повторяется по определению, потому что значение этого поля оператор не вводит, его автоматически ставит сама СУБД. И теперь первичный ключ выполняет свою функцию правильно. На практике, скорее всего, будет выбран первый вариант решения проблемы. Теперь преобразуем таблицу в удобный вид (с точки зрения проектирования БД). Это будет такой вид: (нами выбран первый вариант решения проблемы) Преподаватель
Аналогично нужно поступить со всеми другими объектами, которые нами выявлены в предметной области. Обратите внимание на то, что таблицы, которые будут соответствовать процессам, почти всегда содержат составные первичные ключи или ключ-счётчик. После составления всех таблиц приступаем к следующему этапу c. определение диапазона возможных значений всех определённых нами свойств объектов (атрибутов объектов) Для выполнения этого этапа очень важно иметь надёжный источник по исследуемой предметной области, либо большой объём личных знаний в этой предметной области. Но последнее ощущение часто бывает обманчивым. Все вы студенты, но никто из вас до сего́ времени не знал, что, например, все данные о вашей успеваемости хранятся 75 лет с момента вашего поступления. Значит, лучше иметь и другие источники сведений для анализа, кроме личного опыта! Это может быть: − любая техническая литература (учебники, конспекты, специализированные журналы), − Интернет - источники, − Консультация специалиста/эксперта (преподавателя или человека, который работает в этой предметной области), − Похожая база данных на другом предприятии или в какой-либо программе, с которой вы работали и т.д. Можно использовать все источники сразу, но всегда нужно быть уверенным, что ваши сведения на 100% верны́! Что же такое диапазон возможных значений атрибутов? В нашем примере, результат может быть таким:
Определение диапазона текстовых значений является, в какой-то мере, приблизительным. Мы посчитали максимальное кол-во символов в полях нашей таблицы и добавили несколько символов на тот случай, если фамилии или имя окажутся слишком длинными. Т.е. максимальная граница текстовых полей делается «с некоторым запасом». Если мы зададим именно такие диапазоны при реализации БД, то это будет значить, что при попытке ввести ФИО длиной бо́лее 60 символов (например, 63 символа), три последних символа просто не запишутся в таблицу. Для них не будет места. Меньше, чем в 6 символов тоже невозможно записать ФИО. Если введём менее, нам будет выдано сообщение об ошибке ввода и будет предложено заново ввести данные. Шесть символов – это инициалы преподавателя, например, М.О.М. Как определить диапазон? Внимательно просмотреть документацию по предметной области и понять, какие именно по длине могут быть значения в этом поле. Для числовых значений ограничения должны быть строгими. Нужно указывать: − Положительное/отрицательное число (если не указать, то это означает любое), − Точный диапазон. Например, для дней месяца это [1; 31]. Для дней недели [1; 7]. Для оценки по предмету [2; 5]. − Целое или дробная величина. Если существует хотя бы вероятность того, что величина один раз из 10000 значений может быть дробная, нужно ставить дробный тип числа (вещественный). − Перечень всех возможных значений, если список невелик. Например, для поля «Пол_Студента» перечень: м, ж; для дней недели: Пн, Вт, Ср, Чт, Пт, Сб, Вс. Для данных типа –ДАТА-указывают минимально допустимую дату и максимально допустимую дату для конкретного случая. Например, для поступления в техникум допускаются люди не старше 50 лет, поэтому год рождения не может быть более 2012 - 50=1962. В качестве верхней границы очень хочется поставить дату 1998 год (школьникам, родившимся в 1998 году сейчас по 14 лет, а это именно тот возраст, в котором к нам примерно поступают абитуриенты. Моложе нет!). Т.е. указать: с 01.01.1962 по 01.01.1998 В этом случае, если в качестве даты рождения мы наберём 01.01.2000, программа не позволит ввести нам эти данные, укажет на ошибку ввода и попросит ввести другие данные. НО! Если наша БД будет использоваться несколько лет, то и школьники, родившиеся в 1999 и в 2000 годах, со временем получат официальное право поступать к нам в заведение, а наша база по-прежнему не будет позволять нам указывать такие года рождения. Значит, нужно это предусмотреть сразу и установить, например, с 01.01.1962 по 01.01.2010. Вообще-то, правильным будет вариант, когда программа сама будет автоматически анализировать вводимую дату рождения, сравнивать её с текущей датой и если разница между этими датами будет от 14 до 50 лет, то данные будут приниматься, в другом случае – не будут приниматься программой. Тогда обычных ограничений на это поле можно вообще не устанавливать. Этот вариант решения проблемы требует написания небольшого программного кода, что мы с вами делать не будем, поэтому просто будем ставить ограничение вводимым значениям, исходя из известных нам сведений.
Выявление диапазона возможных значений — очень важный этап в проектировании БД и один из наиболее сложных этапов именно из-за кажущейся простоты! Все результаты предпроектного анализа предметной области нужно записывать на бумаге или хранить в электронном виде, не надеясь на собственную память. На сегодня всё! Лекция завершена.
|
|||||||||||||||||||||||||||||||||||||||
|