|
Вопрос по теории баз данных
|
|
|
|
AEVI700 |
Понедельник, 27 Мая 2002, 21:34
|
Участник
Профиль
Группа: Гость форума
Сообщений: 3
Регистрация: 14.05.2002
Из: Россия, МО, Сергиев Посад
Пользователь №: 2180
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Люди, кто знает, подскажите! Такой лоховской вопрос: может ли считаться оптимальной база данных, в которой есть пустые ячейки в неключевых атрибутах?
|
|
|
|
|
Админ |
Понедельник, 27 Мая 2002, 22:22
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
Встречный вопрос: А что ты понимаешь под "оптимальной" базой данных? Та которая построена правильно (согласно всем "нормальным формам") или та, которая обеспечивает большую скорость работы, но нарушает, например 3-ю нормальную форму. Вообще как ты себе представляешь БД без пустых ячеек. Если, например у тебя есть таблица рабочих: первичный ключ - табельный номер, альтернативный - ФИО и № паспорта, и кроме того есть поле - № сотового телефона. Так как быть с рабочими у которых нет сотовых? Или их не вносить или придется оставлять поле пустым (если конечно ты его не объявишь как NOT NULL). Поэтому наличие пустых полей в таблицах вполне естественно. На мой взгляд привести БД к оптимальности достаточно сложно во-первых из-за того, что брать за критерий оптимальности. Если скорость, то вообще это долгий процесс, т.к. правильно построеная БД еще не факт, что будет быстро работать, т.к. смотря для чего она предназначена: если к ней в основном делаются select-запросы, то тут можно построить по соответствующим полям индексы (для увеличения скорости выбора), если больше запросов на изменение данных (insert, delete, update) то - индексы придется удалять, т.к. это замедляет работу.
[ Май 27, 2002: Сообщение отредактировано: Админ ]
|
|
|
|
|
|
Вторник, 28 Мая 2002, 15:29
|
Профиль
Группа:
Сообщений:
Регистрация: --
Пользователь №:
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
Предупреждение: (0%)
|
Вся трудность в том, что тр<censored>ется привести таблицы к BCNF. А по поводу того примера, что привел admin - разбить таблицу рабочих на 2, где во второй будет ФИО и номера сотовых, а в первой все остальное. Тогда пустых ячеек быть не должно. Сегодня спросил у препода, как ему нужно и меня послали переделывать БД, чтобы не было пустых ячеек, так что сижу, парюсь...
|
|
|
|
|
Beerkoff |
Четверг, 30 Мая 2002, 16:46
|
Администрация
Профиль
Группа: WinCity Team
Сообщений: 895
Регистрация: 04.02.2001
Из: Санкт-Петербург
Пользователь №: 26
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: ASUS Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
полная тупость твоего преподавателя! конечно могут быть пустые поля что в этом некорректного? просто для некоторых полей, таких например, как фамилия в свойствах поля нужно ставить атрибут, что это поле не может быть пустым если ты хочешь в случае, что в пустом поле например было записано "нет данных", то тебе это поле нужно делать текстовым и вносить это значение в значение по умолчанию я так понимаю этот вопрос
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|