Вопросы и ответы | 

Alexnder Konash
Скажите, можно ли в MS Access задать условие на значение в ячейке1 таблицы1 >= значения в ячейке2 таблицы2 явным образом?
на фразу типа [tablename1].[cellname1]>=[tablename2].[cellname2] ругется и говорит, что неверно задано значение ячейки.
Александр Беликов
Александр Беликов | Репутация: 102 (Кандидат) 10 декабря 2008 в 17:18

Значений [tablename2].[cellname2] может быть больше одного (несколько записей), так что на мой взгляд так сделать нельзя...

Константин Иванов
Константин Иванов | Репутация: 608 (Специалист) 10 декабря 2008 в 21:22

При проектировании БД нельзя. Хотя бы по той причине что описана ниже. Но если будет писаться клиент к БД то подобные вещи можно учесть при внесении данных из клиента

Александр Дишин
Вводимые в БД записи отличаются от введенных 1-2 полями. Как избежать повторного ввода информации? БД на MS SQL Serv.
Хотелось бы при вводе новой записи иметь возможность просматривать уже введенные и выбирать в качестве шаблона ту, которая максимально соответствует вводимой.
Олег Ботвинников
Олег Ботвинников | Репутация: 101 (Кандидат) 6 ноября 2008 в 13:10

Судя по вопросу, речь идет о записях таблицы БД. Для избежания избыточности хранения информации "классики" рекомендуют привести БД хотя бы к 3, 4-й нормальной форме. Т. есть оптимизировать БД.

Константин Иванов
Константин Иванов | Репутация: 608 (Специалист) 6 ноября 2008 в 20:30

Bowsar прав. Полностью использовать шаблоны проблемно, но можно отдельные поля выводить в специальные таблицы. Получается некое подобие справочников. Т.е. мы вносим допустим информацию о рейсах самолетов. В подобной таблице город прибывания может часто повторяться. Чтобы не писать его постоянно можно вынести города в отдельную таблицу. А при внесении данных о авиарейсах выбирать из этой таблицы.
Таблицы в этом случае будут связываться по главому ключу (PR) и вторичному ключу (FK). Главный ключ будет в таблице Городов и позволит однозначно идентифицировать запись о городе. А вторичный ключ будет в таблице рейсов и будет служить ссылкой на таблицу городов.
Подробнее советую почитать в основах БД. Удачи!

Юлия Лысенко
Юрий Жиромский
Юрий Жиромский | Репутация: 821 (Специалист) 14 октября 2008 в 11:21

Немного странный вопрос для темы "Законодательство и право" с тегом "история". Ну да ладно.
Базу данных (БД) можно представить себе как некое хранилище упорядоченной информации, как например, таблица. Для обращения к информации, содержащейся в БД используют системы управления БД (СУБД), которые с помощью специальных языков запросов (например SQL) могут находить, изменять и прочими способами работать с информацией.
Можно выделить несколько типов БД:
- иерархические;
- сетевые;
- реляционные;
- объектно-ориентированные;
- гибридные;
Исторически, первыми появились иерархические, основанные на древовидной структуре хранения информации (как например, расположение файлов на жестком/гибком/любом диске компьютера). Основным их недостатком является невозможность реализовать отношения "многие-ко-многим" (т.е. ситуацию, когда многие записи взаимосвязаны между собой) и ситуацию, когда у записи несколько предков.
Далее по ходу истории появились сетевые БД, в которых основным изменением стала поддержка отношений "многие-ко-многим". Такое название связано с тем, что в графическом представлении такие БД похожи на сеть.
После сетевых БД появились реляционные. В них пристутствуют явные указатели на предков и потомков, а запросы к данным из таких таблиц также возвращают таблицы, даже если содержат одну строку. В общем, реляционной БД называется такая БД, в которой все данные представлены в виде таблиц, а операции представляют собой операции над таблицами.
Объектно-ориентированные БД были созданы для удобства работы с применением объектно-ориентированного подхода, т.к. данные в них хранятся в виде объектов. Гибридные же БД совмещают в себе возможности как реляционных, так и объектно-ориентированных БД.
Более подробно о БД можно узнать, например, из курса http://www.intuit.ru/department/database/rdbintro/.