КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
План заняття. 1. Характеристика поняття зв’язана таблиця
1. Характеристика поняття зв’язана таблиця 2. Характеристика властивостей зв’язаних таблиць
В Delphi существует возможность создавать приложения, обеспечивающие работу с двумя взаимосвязанными таблицами, одна из которых является главной, а другая подчиненной. При этом в подчиненной таблице в каждый момент времени отображаются только те записи, которые соответствуют текущей записи главной таблицы. Наиболее распространенным типом связи двух таблиц является связь один-ко-многим, то есть когда одной записи главной таблицы могут соответствовать несколько записей подчиненной. Кроме этого существует также связь один-к-одному и многие-ко-многим, однако эти типы связи используются относительно редко. Нижеперечисленные свойства подчиненной таблицы используются для установки связи между двумя таблицами. Свойство MasterSource (тип TDataSource) содержит ссылку на источник данных, связанный с главной таблицей. Таким образом, это свойство служит для выбора главной таблицы и обеспечивает ее связь с используемой таблицей, которая выступает в роли подчиненной. Свойство MasterFields (тип String) задает список полей, в соответствии со значениями которых будет осуществляться связь между двумя таблицами. При вызове данного свойства через Инспектор объектов вызывается диалоговое окно Field Link Designer, в пределах которого устанавливается связь между полями главной и подчиненной таблицы (см. рис. 14.5). Как видно из рис. 14.5, в верхней части представленного диалогового окна расположен разворачивающийся список Available Indexes, позволяющий выбрать необходимый индекс подчиненной таблицы, на основе которого будет формироваться связь с главной таблицей. Ниже в диалоговом окне расположены два списка: слева - поля, входящие в выбранный индекс подчиненной таблицы Detail Fields; справа - поля главной таблицы Master Fields. Проектировщик приложения выбирает одно поле в левом списке и одно в правом, а затем нажимает кнопку Add, размещенную в центре окна. Результат, отражающий связь между полями двух таблиц, помещается в список Joined Fields, расположенный в нижней части диалогового окна. Результатом установления такой связи будет отображение в подчиненной таблице только тех полей, значения которых совпадают со значением связанного поля текущей записи главной таблицы. Например, если связь между двумя таблицами установлена по полям, содержащим фамилию, имя и отчество студентов (Name -для главной таблицы, Fio - для подчиненной таблицы), и при этом поле Name текущей записи главной таблицы в настоящий момент времени содержит значение «Васильев В.А.», то в подчиненной таблице будут отображаться только те записи, у которых поле Fio имеет значение «Васильев В.А.». Подобным образом путем поочередного связывания двух таблиц может устанавливаться одновременная связь между тремя и более таблицами. Транзакции. В данном разделе представляется целесообразным упомянуть о таком понятии, как "транзакция". Под транзакцией понимается некое комплексное воздействие на БД, переводящее ее из одного целостного состояния в другое. Воздействие заключается в изменении данных в таблицах БД. Механизм транзакции обеспечивает сохранение смысловой целостности и достоверности информации, содержащейся в таблицах БД. Данный механизм, как правило, используется при работе с несколькими таблицами. Суть его состоит в том, что, если одно из изменений, вносимых в БД в рамках транзакции, завершается неуспешно, должен быть произведен возврат (так называемый откат) к состоянию БД, имевшему место до начала транзакции. Таким образом, либо одновременно подтверждаются все внесенные в БД изменения, либо не подтверждается ни одно из них. Поясним на примере, о чем идет речь. Допустим, в магазине имеется БД, в которую входят три таблицы, хранящие информацию о продаже товаров. В первой таблице Prodaga.db содержится подробная информация по каждой продаже, такая, как дата продажи, количество проданных единиц товара, номер накладной и т.п. Вторая таблица Tovars. db содержит сведения о продаже каждого товара за некоторый период времени, например за текущий год. В третьей таблице Clients. db хранится информация о продаже товаров каждому покупателю за тот же период времени. Транзакция, связанная с продажей того или иного товара, будет состоять из такого набора операций: 1) добавление записи в таблицу Prodaga. db; 2)поиск (или добавление) в таблице Tovars. db записи, соответствующей проданному товару, и увеличение общего объема продаж товара данного вида; 3)поиск (добавление) в таблице Clients. db записи, относящейся к сделавшему покупку покупателю и увеличение общей суммы совершенных им покупок. Предположим, что на одном из шагов произошла ошибка. Например, первый и второй шаги были выполнены успешно, а на третьем шаге случилась ошибка, и он не был завершен. Возникает ситуация, когда две таблицы изменены и содержат корректные данные, а третья таблица не была изменена и, следовательно, содержащаяся в ней информация неверна. Таким образом, это ведет к нарушению смысловой целостности БД. Возможность предупреждать возникновение подобных нарушений и обеспечивает механизм транзакций, который в такой ситуации производит возвращение всей БД к исходному состоянию, отменяя все внесенные изменения. Для реализации механизма транзакций необходимо.воспользо-ваться следующими методами компонента Database. Метод StartTransaction начинает транзакцию. Сразу вслед за данным методом в программе должны располагаться операторы, составляющие транзакцию. При выполнении операций должна производиться обработка возникающих исключительных ситуаций для выявления ошибок и отката транзакции в случае необходимости. Метод Commit утверждает транзакцию в случае, если не возникло никаких исключительных ситуаций. Результатом выполнения данного метода является вступление в силу всех внесенных изменений. Метод Rollback при возникновении исключительных ситуаций производит отмену данной транзакции и действий всех операций в ее рамках (откат транзакции). В самом общем виде программная реализация механизма транзакции будет выглядеть следующим образом: // Начало транзакции Databasel.StartTransaction; try {Составляющие транзакцию операции по изменению таблиц БД} // Операции выполнены успешно. // Утверждение транзакции Databasel. Commit; except // Возникла исключительная ситуация. // Откат транзакции Databasel.Rollback; end; Применение механизма транзакций возможно как к связанным, так и к несвязанным таблицам. Кроме этого в транзакцию могут быть включены операции, выполняемые над отдельными таблицями. Контрольні питання 1. Надати характеристику поняття зв’язана таблиця 2. Розглянути властивості зв’язаних таблиць АУДИТОРНЕ ЗАНЯТТЯ ЗМІСТОВИЙ МОДУЛЬ 6: ПРОГРАМУВАННЯ З ГРАФАМИ. ВІЗУАЛЬНІ КОМПОНЕНТИ. БАЗИ ДАНИХ ТЕМА 6.7: НАВІГАЦІЯ ПО НАБОРУ ДАНИХ. МОВА SQL. СТВОРЕННЯ ДОВІДКОВОЇ СИСТЕМИ Лекція №58 – Робота з таблицями та індексами
Дата добавления: 2014-12-25; Просмотров: 331; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |