Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Вниз

Unique и уникальный индекс   Найти похожие ветки 

 
Bless   (2003-08-20 12:27) [0]

Прокомментируйте пожалуйста следующий текс(из книги "Microsoft SQL Server для профессионалов", Мамаев, Вишневский):

"Для обеспечения целостности данных в колонке можно определить ограничение целостности UNIQUE или PRIMARY KEY, а не прибегать к использованию уникальных индексов. Использование уникальных индексов только для обеспечения целостности данных является неоправданной тратой пространства в базе данных."

И на той же странице ниже:

"ВНИМАНИЕ------------------------------------------------------
При создании первичного ключа (PRIMARY KEY) или ограничения целостности UNIQUE уникальный индекс будет создан автоматически, если явно не указано другое."

Отсюда вопрос для повышения образованности:

Как и где "указать другое", чтобы при создании первичного ключа (PRIMARY KEY) или ограничения целостности UNIQUE уникальный индекс не создавался?
И каким образом тогда будет обеспечиваться уникальность новых значений, если нет индекса? Сравнением их с каждым уже существующим значением колонки?


 
Johnmen   (2003-08-20 18:19) [1]

Видимо данные товарищи не очень качественно/не полностью перевели выдернутые из западных книжек куски текста...:)))

Потому, что PK это всегда уникальный индекс. Обратное неверно.
Огр-е ссылочной цел-ти UNIQUE всегда уникальный индекс. Обратное неверно.

А фразу
"При создании первичного ключа (PRIMARY KEY) или ограничения целостности UNIQUE уникальный индекс будет создан автоматически, если явно не указано другое."
надо понимать так, что если не создан автоматически, то д.б. создан явно.


 
Sandman25   (2003-08-20 18:24) [2]

"При создании первичного ключа (PRIMARY KEY) или ограничения целостности UNIQUE уникальный индекс будет создан автоматически, если явно не указано другое".

Эту фразу так и надо понимать. Если явный уникальный индекс по данному полю (или совокупности полей) создан не был, то он будет создан автоматически, и ему будет присвоено автоматом выбираемое имя (что-то типа 150_123, в зависимости от СУБД, конечно).


 
Johnmen   (2003-08-20 23:45) [3]

>Sandman25 (20.08.03 18:24) [2]

Да-да, именно так...:)


 
Bless   (2003-08-21 12:44) [4]

Спасибо.


 
АлексейК   (2003-08-21 14:22) [5]

Ограничение целостности UNIQUE и UNIQUE INDEX понятия отличные. Хотя некая путаница есть и документации. Например
-UNIQUE INDEX представляет собой ограничение целостности UNIQUE, примененной к данным индекса и не является самостоятельным типом индекса, а всего лишь надстройкой к кластерным или некластерным индексам. Считется что уникальный индекс предоставляет более быстрый доступ к данным, чем ограничение UNIQUE но занимает дополнительное место.
-однако также написано что ограничение целостности Primary Key и UNIQUE при создании автоматически создают уникальный индекс, следовательно они должны бы и создать дополнительно кластерный или некластреный индексы.
В случае с Primary Key так и получается, создается кластерный индекс, что дает все же преимущество нежели создание просто уникального индекса, но с UNIQUE не совсем понятно (если в таблице есть уже кластерный индекс, то получается, что нужно создать некластерный индекс и ограничение на него, то есть получаем уникальный индекс).
Видимо можно сделать вывод, что при создании уникального индекса создается сам индекс и надстройка UNIQUE ограничения к его данным, а при создании ограничения надстройка создается непосредственно к данным.


 
Bless   (2003-08-26 09:58) [6]

АлексейК (21.08.03 14:22) [5]>
>Видимо можно сделать вывод, что при создании уникального индекса
>создается сам индекс и надстройка UNIQUE ограничения к его
>данным, а при создании ограничения надстройка создается
>непосредственно к данным.

Повторюсь. Как тогда создать ограничение UNIQUE не создавая индекса. Ведь он по умолчанию создается, если написать что-то вроде create table tt (x int, y int UNIQUE).



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
1-48610
MakNik
2003-09-03 13:42
2003.09.15
DBLookupComboBox1


3-48452
clickmaker
2003-08-18 16:05
2003.09.15
Репликация слиянием своими средствами


1-48559
olookin
2003-09-01 16:44
2003.09.15
Системный шрифт и проблема которую он мне создает


1-48642
AK
2003-09-02 20:47
2003.09.15
Как скопировать внутреннюю и внешнюю часть формы чужой программы?


7-48803
Шустрый
2003-06-29 14:10
2003.09.15
Выключение компа одной кнопкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский