Форум: "Потрепаться";
Текущий архив: 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.004 c