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

Вниз

Как узнать содержание активной записи в БД?   Найти похожие ветки 

 
Almaren   (2002-12-14 14:35) [0]

Вот, я чайник, сижу и думаю: "Как узнать содержание активной записи в БД?". Может кто подскажет? Буду просто о всей души Вам благодарен!


 
vopros   (2002-12-15 10:41) [1]

Филосовский вопрос.


 
Romkin   (2002-12-15 11:53) [2]

А что такое "Активная запись"?? Ни у таблицы, ни у базы (! уж тем более) нет такого понятия.
И давайте наконец, условимся о терминах. Я, конечно, понимаю, что у нас в школе учат информатике, но как! Лучше бы не учили...
Общая терминология: реляционная база данных состоит из таблиц (отношений), которые, в свою очередь, состоят из записей (кортежей). Поэтому вопросы, подобные "Как узнать количество записей в БД" смысла не имеют, в БД Нет записей!
Записи в таблицах храняться в полном беспорядке, и порядкового номера у них нет (впрочем, также нет порядкового номера у поля записи - только имя)
Основное действие с таблицей - выбрать записи в определенном порядке из таблицы, при этом можно указать критерии, по которым некоторые записи будут отброшены... При этом записи выбираются по одной за раз, и только один раз (от первой до последней). В общем случае количество записей в выборке неизвестно, пока они все не будут получены.
Больше практически ничего не обеспечено, все остальное - проход по записям в обратном порядке, переупорядочение выбранного набора записей, обращение к записям и полям по порядковому номеру - просто дополнительный сервис, обеспечиваемый, как правило, клиентской библиотекой доступа.
В всязи с вышесказанным, прошу уточнить вопрос :-)


 
Alex_Sudakov   (2002-12-15 12:42) [3]

2Romkin:
>Записи в таблицах храняться в полном беспорядке, и порядкового >номера у них нет

Здорово. Вот только это довольно спорное утверждение - существуют индексы, ключи... Ведь не просто так правда? :)


 
Romkin   (2002-12-15 12:53) [4]

Не просто так... Первичный ключ - набор полей, однозначно идентифицирующий запись :-)) И все! В теории РСУБД вообще нет понятия индекса, и, заметь, в SQL явно индексы не применяются, как правило.
Индекс - это всего лишь способ задать порядок в выборке (но не в таблице :-))) Хотя MSSQL, например, может физически упорядочивать записи по одному индексу, это не является принципиальным, и опираться на это ни в каком случае нельзя, это просто способ ускорить работу БД.
В результате - выбор записей по порядку (ессно, он всегда есть, физически) не имеет особого смысла, обычно заказывают выбор записей по порядку нарастания/убывания каких-то полей, и какой здесь порядковый номер?! В одном случае порядок один, в другом - другой.


 
stone   (2002-12-15 13:05) [5]


> Записи в таблицах храняться в полном беспорядке

По умолчанию данные хранятся в порядке их добавления в таблицу, т.е. неупорядочено.


> Индекс - это всего лишь способ задать порядок в выборке
> (но не в таблице :-)))

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


 
Alex_Sudakov   (2002-12-15 13:05) [6]

Хорошо, с номером я был не прав, но про индексы... Индекс позволяет ФИЗИЧЕСКИ упорядочить данные в таблице, а не при выборки. Если бы было наоборот, зачем бы тогда были нужны индексы, если есть order by? :)


 
Romkin   (2002-12-15 13:12) [7]

Щаз, физически :-)) Сам подумай - есть два индекса по разным полям, по какому из них физически упорядочена таблица?
Индексы нужны для повышения производительности обработки данных, и stone прав, практически всегда так (ну немного сложнее :-), индекс, как правило, не просто список, а дерево, и, как я уже сказал, MSSQL физически упорядочивает данные по кластерному индексу, если не ошибаюсь... Но это - исключение)


 
Anatoly Podgoretsky   (2002-12-15 13:15) [8]

stone © (15.12.02 13:05)
Не совсем так, это зависит от системы, например Парадокс может вставлять записи на место удаленных, как делаю другие зависит от производителся, более того записи вообзе могут быть разбросаны по разным дискм или их части. Так что оставим это производителю, нет нужды знать как это у него там сделано.


 
stone   (2002-12-15 13:23) [9]

2 Anatoly Podgoretsky © (15.12.02 13:15)

Все что мной было сказано - относительно MSSQL


 
Romkin   (2002-12-15 13:29) [10]

Вот-вот, про конкретную СУБД можно сказать что-то, а так - на усмотрение производителя этой СУБД :-))


 
Kapusto   (2002-12-15 13:46) [11]

Для MSSQL утверждение, что при создании кластерного индекса записи лежат в заданном порядке, верно лишь на момент создания этого индекса...


 
stone   (2002-12-15 13:52) [12]


> Для MSSQL утверждение, что при создании кластерного индекса
> записи лежат в заданном порядке, верно лишь на момент создания
> этого индекса...


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



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

Форум: "Потрепаться";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
14-1877
AL2002
2002-12-12 14:48
2003.01.02
Spider-man2 хочет TNL-capable 3D card


3-1765
BorisUK
2002-12-11 15:23
2003.01.02
как в DBGride и StringGride установить фокус ввода на ячейку


14-1859
MaximatorVeter
2002-12-12 13:34
2003.01.02
Горяченькими!


1-1814
gagarkin
2002-12-20 11:21
2003.01.02
По поводу TypeLib Editor а


1-1831
delpher_gray
2002-12-15 12:31
2003.01.02
Hook и ! Как отловить русские буквы ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский