Ръководство за релации на таблици

Една от целите на доброто проектиране на бази данни е да премахнете излишъка на данни (дублираните данни). За да постигнете тази цел, трябва да разделите вашите данни в множество тематично обособени таблици, така че всеки факт да е представен само веднъж. След това трябва да предоставите на Microsoft Office Access 2007 средства, с които да може да възстановява разделената информация  – като поставите общи полета в таблици, които са свързани. За да направите обаче тази стъпка правилно, трябва първо да откриете релациите между вашите таблици и след това да зададете тези релации в базата данни на Office Access 2007.

В тази статия

Увод

Типове релации между таблици

Защо се създават релации между таблици?

За целостта на връзките

Показване на релации между таблици

Създаване на релация между таблици

Изтриване на релация между таблици

Променяне на релация между таблици

Поддържане на целостта на връзките

Увод

След като във вашата база данни сте създали таблица за всяка тема, трябва да предоставите на Office Access 2007 средства, с които да ви връща тази информация, когато ви е нужна. Можете да направите това, като поставите общи полета в таблиците, които са свързани, и дефинирате релации между таблиците. Тогава можете да създавате заявки, формуляри и отчети, които показват информация от няколко таблици едновременно. Например формулярът, показан тук, съдържа информация, извлечена от няколко таблици:

Формуляр за поръчки, показващ едновременно свързана информация от пет таблици

1. Информацията в този формуляр идва от таблицата "Клиенти"...

2. ...таблицата "Поръчки"...

3. ...таблицата "Продукти"...

4. ...и таблицата "Подробни данни за поръчки".

Името на клиента в полето Bill To е извлечено от таблицата "Клиенти", стойностите на Order ID и Order Date идват от таблицата "Поръчки", Product идва от таблицата "Продукти", а стойностите на Unit Price и Quantity идват от таблицата "Подробни данни за поръчки". Тези таблици са свързани една с друга по различни начини, за да се получи във формуляра информация от всяка от тях.

В горния пример полетата в таблиците трябва да бъдат координирани, така че да покажат информация за една и съща поръчка. Тази координация се извършва с помощта на релации между таблици. Релацията между таблиците работи чрез съответствие на данни в полета ключове – често това е поле с еднакво име в двете таблици. В повечето случаи тези съответстващи си полета са първичния ключ от едната таблица, който предоставя еднозначен идентификатор за всеки запис, и външен ключ в другата таблица. Например служителите може да бъдат асоциирани с поръчките, за които отговарят, чрез създаване на релация между полетата EmployeeID в таблиците "Служители" и "Поръчки".

EmployeeID се използва като първичен ключ в таблицата "Служители" и като външен ключ в таблицата "Поръчки".

1. EmployeeID се съдържа и в двете таблици – като първичен ключ ...

2. ... и като външен ключ.

Най-горе на страницата

Типове релации между таблици

Има три типа релации между таблици.

  • Релация "един към много"

    Да разгледаме база данни за проследяване на поръчки, съдържаща таблицата за "Клиенти" и таблицата "Поръчки". Един клиент можа да прави произволен брой поръчки. Това значи,че за всеки клиент, представен в таблицата "Клиенти", може да има много поръчки, представени в таблицата "Поръчки". Следователно релацията между таблицата "Клиенти" и таблицата "Поръчки" е релация "един към много".

    За да представите релация "един към много" в структурата на вашата база данни, вземете първичния ключ от страната "един" на релацията и го добавете като допълнително поле или полета в таблицата от страната "много" на релацията. Например в този случай трябва да добавите ново поле – полето ID от таблицата "Клиенти" – към таблицата "Поръчки" и да го наречете Customer ID. Access може след това да използва номера в Customer ID от таблицата "Поръчки", за да намери правилния клиент за всяка поръчка.

  • Релация "много към много"

    Да разгледаме релацията между таблицата "Продукти" и таблицата "Поръчки". Една поръчка може да съдържа повече от един продукт. От друга страна един продукт може да се среща в много поръчки. Следователно за всеки запис в таблицата "Поръчки" може да има много записи в таблицата "Продукти". Освен това за всеки запис в таблицата "Продукти" може да има много записи в таблицата "Поръчки". Този тип релация се нарича релация "много към много", защото за всеки продукт може да има много поръчки и за всяка поръчка може да има много продукти. Забележете, че за да откриете съществуваща релация "много към много" между таблици е важно да разглеждате и двете страни на релацията.

    За да представите релация "много към много", трябва да създадете трета таблица, често наричана свързваща таблица, която разбива релацията "много към много" на две релации "един към много". Вмъкнете първичния ключ от всяка от двете таблици в третата таблица. В резултат на това третата таблица записва всяко срещане, или екземпляр, на релацията. Например таблицата "Поръчки" и таблицата "Продукти" имат релация "много към много", която се дефинира чрез създаване две релации "един към много" към таблицата "Подробни данни за поръчки". Една поръчка може да има много продукти, а всеки продукт може да се среща в много поръчки.

  • Релация "един към един"

    В релацията "един към един" всеки запис в първата таблица може да има само един съответстващ запис във втората таблица, а всеки запис във втората таблица може да има само един съответстващ запис в първата таблица. Този тип релация не се използва често, защото обикновено информацията, свързана по този начин, се записва в една и съща таблица. Можете да използвате релация "един към един", за да разделите една таблица с много полета, да изолирате част от таблица от съображения за сигурност или да съхраните информация, която се отнася само за подмножество от главната таблица. Когато идентифицирате такава релация, двете таблици трябва да споделят общо поле.

Най-горе на страницата

Защо се създават релации между таблици?

Можете да създавате релации между таблици явно с помощта на прозореца "Релации" или с плъзгане на поле от екрана Списък на полетата. Office Access 2007 използва релациите между таблици, за да съедини таблиците, когато трябва да ги използвате в обект от база данни. Има няколко причини да създадете релациите между таблиците, преди да създадете други обекти от базата данни, например формуляри, заявки, макроси и отчети.

  • Релациите между таблиците предоставят информация при проектирането на заявки

    За да работите със записи от повече от една таблица, често се налага да създадете заявка, която съединява таблиците. Заявката работи, като търси съвпадение на стойностите в поле първичен ключ на първата таблица с поле външен ключ във втората таблица. Например, за да върнете поръчките, които съдържат всички заявки за всеки клиент, трябва да проектирате заявка, която съединява таблицата "Клиенти" с таблицата "Поръчки" на базата полето на Customer ID. В прозореца "Релации" можете ръчно да зададете полетата за съединяване. Ако обаче вече има дефинирана релация между таблиците, Office Access 2007 създава съединение по подразбиране на базата на съществуващата релация. Освен това, ако използвате някой от съветниците за заявки, Access използва информацията, която той събира от релациите между таблиците, които вече сте дефинирали, за да ви представи информирани възможности за избор и да попълни предварително настройките на свойствата с подходящи стойности по подразбиране.

  • Релациите между таблиците предоставят информация при проектирането на формуляри и отчети

    Когато проектирате формуляр или отчет, Office Access 2007 използва информацията от релациите между таблиците, които вече сте дефинирали, за да ви представи информирани възможности за избор и да попълни предварително настройките на свойствата с подходящи стойности по подразбиране.

  • Релациите между таблиците са основата, върху която можете да поддържате целостта на връзките, за да помогнете за избягване на изолирани записи във вашата база данни. Изолираният запис е запис с препратка към друг запис, който не съществува – например запис за поръчка, препращаща към запис за клиент, който не съществува.

    Когато проектирате база данни, трябва да разделите вашата информация в таблици, всяка от които има първичен ключ. След това трябва да добавите външни ключове към свързаните таблици, които препращат към тези първични ключове. Тези двойки външен ключ-първичен ключ представляват основата на релациите между таблиците и заявките към множество таблици. Затова е важно тези препратки външен ключ-първичен ключ да се поддържат синхронизирани. Целостта на връзките помага да сте уверени, че препратките са синхронизирани и зависи от релациите между таблиците.

Най-горе на страницата

За целостта на връзките

Когато проектирате база данни, трябва да разделите вашата информация в множество тематично базирани таблици, за да намалите излишъка на данни. След това трябва да предоставите на Office Access 2007 средства, с които може да връща съчетания от тези данни, като поставите общи полета в свързаните таблици. Например, за да зададете релация "един към много", трябва да вземете първичния ключ от таблицата "един" и да го добавите като допълнително поле в таблицата "много". За да върне данните обединени, Access взема стойността от таблицата "много" и търси съответната стойност в таблицата "един". По този начин стойностите в таблицата "много" препращат към съответните стойности в таблицата "един".

Да предположим, че имате релация "един към много" между таблици "Доставчици" и "Поръчки" и искате да изтриете един доставчик. Ако този доставчик има поръчки в таблицата "Поръчки", тези поръчки ще станат изолирани, когато изтриете неговия запис. Поръчката все още ще съдържа идентификатора на доставчика, но този идентификатор вече няма да е валиден, защото записът, към който препраща, вече не съществува.

Предназначението на целостта на връзките е да не допуска изолирани записи и да поддържа препратките синхронизирани, така че тази хипотетична ситуация никога да не възниква.

Можете да поддържате целостта на връзките, като я разрешите за дадена релация между таблици (за практически инструкции вж. Поддържане на целостта на връзките). Когато е разрешена, Access отказва всяка операция, която би нарушила целостта на връзките за тази релация между таблици. Това означава, че Access ще отказва както актуализиране, което променя целта на препратка, така и изтриване, което премахва целта на препратка. Възможно е обаче да ви се наложи да промените първичния ключ за един доставчик, който има поръчки в таблицата "Поръчки". В такива случаи имате нужда Access да актуализира автоматично всички засегнати редове като част от една операция. По този начин Access гарантира, че това актуализиране е завършено изцяло, така че вашата база данни да не остане в противоречиво състояние, в което някои редове са актуализирани, а други не са. По тази причина Access поддържа опцията "Каскадно актуализиране на свързаните полета". Когато поддържате целостта на връзките и изберете опцията "Каскадно актуализиране на свързаните полета" и след това актуализирате първичен ключ, Access автоматично актуализира всички полета, които препращат към първичния ключ.

Възможно е също да ви се наложи да изтриете един ред и всички свързани записи – например запис за един доставчик и всички свързани поръчки за този доставчик. По тази причина Access поддържа опцията "Каскадно изтриване на свързаните записи". Когато поддържате целостта на връзките и изберете опцията "Каскадно изтриване на свързаните записи" и след това изтриете един запис в страната на релацията с първичния ключ, Access автоматично изтрива всички записи, които препращат към този ключ.

Най-горе на страницата

Показване на релации между таблици

За да покажете релациите между таблиците, щракнете върху Релации в раздела Инструменти за бази данни. Прозорецът "Релации" се отваря и показва всички съществуващ релации. Ако още не са дефинирани релации между таблици и отваряте прозореца "Релации" за първи път, Access ви подканва да добавите таблица или заявка към прозореца.

Отваряне на прозореца "Релации"

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

  4. Ако базата данни съдържа релации, се показва прозорецът "Релации". Ако базата данни не съдържа релации и отваряте прозореца "Релации" за първи път, се показва диалоговият прозорец Показване на таблица. Щракнете върху Затвори, за да затворите диалоговия прозорец.

  5. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

    Това показва всички дефинирани релации във вашата база данни. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако не е поставена отметка в квадратчето Покажи скритите обекти в диалоговия прозорец Опции за навигация.

    За повече информация за опцията "Покажи скритите обекти" вж. статията Ръководство за навигационния екран.

Прозорец за релации

1. Първичният ключ

2. Тази линия представя релацията

3. Външният ключ

Релацията между таблиците се представя в прозореца "Релации" с релационна линия, начертана между таблиците. Релация, която не поддържа целостта на връзките, се показва като тънка линия между общите полета, поддържащи релацията. Когато изберете релацията, като щракнете върху нейната линия, линията се удебелява, за да покаже, че е избрана. Ако поддържате целостта на връзките за тази релация, линията се показва удебелена в краищата. Освен това над удебелената част на линията от страната "едно" на релацията се показва числото 1, а над удебелената част на линията от другата страна се показва символът за безкрайност ().

Когато прозорецът "Релации" е активен, можете да избирате от следните команди в лентата, част от Потребителски интерфейс Microsoft Office Fluent:

В раздела Проектиране, в групата Инструменти:

  • Редактиране на релации    Отваря диалоговия прозорец Редактиране на релации . Когато изберете релационна линия, можете да щракнете върху Редактиране на релации, за да промените релацията между таблиците. Можете също да щракнете двукратно върху релационната линия.

  • Изчистване на оформлението    Премахва всички таблици и релации от дисплея в прозореца "Релации". Забележете, че тази команда само скрива таблиците и релациите, а не ги изтрива.

  • Отчет за релациите    Създава отчет, който показва таблиците и релациите във вашата база данни. Отчетът показва само таблиците и релациите в прозореца "Релации", които не са скрити.

В раздела Проектиране, в групата Релации:

  • Показване на таблица    Отваря диалоговия прозорец Показване на таблица, така че да можете да избирате таблици и заявки за преглеждане в прозореца "Релации".

  • Скриване на таблица    Скрива избраната в прозореца "Релации" таблица.

  • Преки зависимости    Показва всички релации и свързани таблици за избраната таблица в прозореца "Релации", ако не са показани.

  • Всички зависимости    Показва в прозореца "Релации"всички релации и свързани таблици във вашата база данни. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец "Опции за навигация" е избрана опцията "Покажи скритите таблици".

    За повече информация за опцията "Покажи скритите таблици" вж. статията Ръководство за навигационния екран.

  • Затвори    Затваря прозореца "Релации". Ако сте направили промени в оформлението на прозореца "Релации", ще бъдете запитани дали искате да запишете тези промени.

Най-горе на страницата

Създаване на релация между таблици

Можете да създадете релация между таблици с помощта на прозореца "Релации" или като плъзнете поле в лист с данни от екрана Списък на полетата. Когато създавате релация между таблици, общите полета не е необходимо да имат едни и същи имена, въпреки че това е честа практика. Необходимо е тези полета да имат един и същ тип данни. Ако обаче полето с първичния ключ е поле с автоматично номериране, полето с външния ключ може да бъде числово поле, ако свойството Размер на полето на двете полета е едно и също. Можете например да съпоставите поле с автоматично номериране с числово поле, ако свойството Размер на полето на двете полета е Long Integer. Когато двете общи полета са числови полета, те трябва да имат една и съща настройка на свойството Размер на полето.

Създаване на релация между таблици с помощта на прозореца "Релации"

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

  4. Ако още не сте дефинирали релации, автоматично се появява диалоговият прозорец Показване на таблица. Ако не се покаже, в раздела Проектиране, в групата Релации щракнете върху Показване на таблица.

    Диалоговият прозорец Показване на таблица показва всички таблици и заявки в базата данни. За да видите само таблиците, щракнете върху Таблици. За да видите само заявките, щракнете върху Заявки. За да видите и таблиците, и заявките, щракнете върху И двете.

  5. Изберете една или повече таблици или заявки и след това щракнете върху Добавяне. Когато завършите добавянето на таблиците и заявките в прозореца "Релации", щракнете върху Затвори.

  6. Плъзнете поле (обикновено първичния ключ) от една таблица в общото поле (външния ключ) в друга таблица. За да плъзнете няколко полета, натиснете клавиша CTRL, щракнете върху всяко от тях и след това ги плъзнете.

    Появява се диалоговият прозорец Редактиране на релации.

  7. Проверете дали показаните имена на полета са общи полета за релацията. Ако някое име на поле е неправилно, щракнете върху него и изберете ново поле от списъка.

    За да поддържате целостта на връзките за тази релация, поставете отметка в квадратчето Поддържай целостта на връзките. За повече информация за целостта на връзките вж. разделите За целостта на връзките и Поддържане на целостта на връзките.

  8. Щракнете върху Създай.

    Между двете таблици се начертава релационна линия. Ако сте избрали квадратчето за отметка Поддържай целостта на връзките, линиите се показват удебелени в краищата си. Освен това, ако сте избрали Поддържай целостта на връзките, над удебелената част в едната страна на релационната линия се показва цифрата 1, а над удебелената част в другата страна на линията се показва символът за безкрайност (?), както е показано на следващата фигура.

Плъзгане на поле от таблица в съответстващото поле в друга таблица

Забележки: 

  • За да създадете релация "един към един"    И двете общи полета (обикновено полето за първичния ключ и полетата за външните ключове) трябва да имат уникален индекс. Това означава, че свойството Индексирано за тези полета трябва да бъде настроено на Да (без дублиране). Ако и двете полета имат уникален индекс, Access създава релация "един към един".

  • За да създадете релация "един към много"    Полето в едната страна (обикновено първичния ключ) на релацията трябва да има уникален индекс. Това означава, че свойството Индексирано за това поле трябва да бъде настроено на Да (без дублиране). Полето от страната "много" не трябва да има уникален индекс. То може да има индекс, но трябва да разрешава дублиране. Това означава, че свойството Индексирано за това поле трябва да бъде настроено или на Не, или на Да (с дублиране). Когато едното поле има уникален индекс, а другото няма, Access създава релация "един към много".

Създаване на релация между таблици с помощта на екрана "Списък на полетата"

В Office Access 2007 можете да добавите поле към съществуваща таблица, отворена в табличен изглед, като го плъзнете от екрана Списък на полетата . Екранът Списък на полетата показва полета, достъпни в свързани таблици, и полета, достъпни в други таблици в базата данни. Когато плъзнете поле от "друга" (несвързана) таблица и след това изпълните съветника за справки, автоматично се създава нова релация "един към много" между таблицата в екрана Списък на полетата и таблицата, в която плъзгате полето. Тази релация, създаден от Access, не поддържа по подразбиране целостта на връзките. За да се поддържа целостта на връзките, трябва да редактирате релацията. За повече информация вж. раздела Променяне на релация между таблици.

Отваряне на таблица в изглед на лист с данни

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В навигационния екран щракнете с десния бутон върху таблицата, в която искате да добавите полето и да създадете релацията, и щракнете върху Табличен изглед в контекстното меню.

Отваряне на екрана ''Списък на полетата''

  • В раздела Лист с данни, в групата Полета и колони щракнете върху Добавяне на съществуващи полета.

    Изображение на лентата на Access

    Показва се екранът Списък на полетата.

Екранът Списък на полетата показва всички други таблици във вашата база данни, групирани в категории. Когато работите с таблица в табличен изглед, Access показва полета в една от следните две категории в екрана Списък на полетата: Полета, достъпни в свързани таблици и Полета, достъпни в други таблици. В първата категория се съдържат всички таблици, които имат релации с таблицата, с която работите в момента. Във втората категория се съдържат всички таблици, с които вашата таблица няма релации.

Когато в екрана Списък на полетата щракнете върху знака плюс (+) до име на таблица, виждате списък на всички полета, налични в тази таблица. За да добавите поле към вашата таблица, плъзнете желаното поле от екрана Списък на полетата в таблицата, отворена в табличен изглед.

Добавяне на поле и създаване на релация от екрана "Списък на полетата"

  1. В раздела Лист с данни, в групата Полета и колони щракнете върху Добавяне на съществуващи полета.

    Изображение на лентата на Access

    Показва се екранът Списък на полетата.

  2. Под Полета, достъпни в други таблици щракнете върху знака плюс (+) до име на таблица, да покажете списъка на полетата в тази таблица.

  3. Плъзнете желаното поле от екрана Списък на полетата в таблицата, която е отворена в табличен изглед.

  4. Когато се покаже редът за вмъкване, пуснете полето на мястото му.

    Стартира съветникът за справки.

  5. Следвайте инструкциите, за да завършите съветника за справки.

    Полето се появява в таблицата, отворена в изглед на лист с данни.

Когато плъзнете поле от "друга" (несвързана) таблица и след това изпълните съветника за справки, автоматично се създава нова релация "един към много" между таблицата в екрана Списък на полетата и таблицата, в която плъзгате полето. Тази релация, създадена от Access, не поддържа по подразбиране целостта на връзките. За да се поддържа целостта на връзките, трябва да редактирате релацията. За повече информация вж. раздела Променяне на релация между таблици.

Най-горе на страницата

Изтриване на релация между таблици

За да премахнете релация между таблици, трябва да изтриете релационната линия в прозореца "Релации". Внимателно поставете курсора, така че да сочи към релационната линия, и след това щракнете върху линията. Когато се избере, релационната линия се удебелява. При избрана релационна линия натиснете DELETE. Забележете, че когато премахнете релация, премахвате също поддръжката на целостта на връзките за тази релация, ако тя е е разрешена. В резултат на това Access престава да забранява автоматично създаването на изолирани записи в страната "много" на релацията.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

Показва се прозорецът "Релации".

Ако още не сте дефинирали релации и това е първият път, когато отваряте прозореца "Релации", се показва диалоговият прозорец Показване на таблица. Ако диалоговият прозорец се покаже, щракнете върху Затвори.

  1. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

Всички таблици, които имат релации, се показват заедно с релационните линии.

  1. Щракнете върху релационната линия за релацията, която искате да изтриете. Когато се избере, релационната линия се удебелява.

  2. Натиснете клавиша DELETE.

    или

    Щракнете с десния бутон и след това щракнете върху Изтрий .

  3. Access може да покаже съобщението Наистина ли искате окончателно да изтриете избраната релация от вашата база данни?. Ако това съобщение се покаже, щракнете върху Да.

Забележка: Ако някоя от таблиците, участващи в релацията, се използва от друго лице или процес или е в отворен обект от база данни (например формуляр), няма да да можете да изтриете релацията. Преди да се опитате да премахнете релацията, трябва да затворите всички отворени обекти, които използват тези таблици.

Най-горе на страницата

Променяне на релация между таблици

Можете да промените релация между таблици, като я изберете в прозореца "Релации" и след това я редактирате. Внимателно поставете курсора, така че да сочи към релационната линия, и след това щракнете върху линията, за да я изберете. Когато е избрана, релационната линия се удебелява. Когато релационната линия е избрана, щракнете двукратно върху нея или върху Редактиране на релации в групата Инструменти в раздела Проектиране. Появява се диалоговият прозорец Редактиране на релации.

Направете промените в диалоговия прозорец "Редактиране на релации"

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

Показва се прозорецът "Релации".

Ако още не сте дефинирали релации и това е първият път, когато отваряте прозореца "Релации", се показва диалоговият прозорец Показване на таблица. Ако диалоговият прозорец се покаже, щракнете върху Затвори.

  1. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

Всички таблици, които имат релации, се показват заедно с релационните линии. Забележете, че скритите таблици (таблиците, за които е избрано квадратчето за отметка Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация е избрана опцията "Покажи скритите обекти".

За повече информация за опцията "Покажи скритите обекти" вж. статията Ръководство за навигационния екран.

  1. Щракнете върху релационната линия за релацията, която искате да промените. Когато се избере, релационната линия се удебелява.

  2. Щракнете двукратно върху релационната линия.

    или

    В раздела Проектиране, в групата Инструменти щракнете върху Редактиране на релации.

    Появява се диалоговият прозорец Редактиране на релации.

    Диалоговият прозорец "Редактиране на релации"

  3. Направете промените и щракнете върху OK.

    Диалоговият прозорец Редактиране на релации ви позволява да промените релация между таблици. По-конкретно, можете да промените таблиците или заявките от всяка страна на релацията, както и полетата от всяка страна. Можете също да зададете типа на съединенията или поддържането на целостта на връзките и да изберете каскадна опция. За повече информация за типа на съединението и начина на задаването му вж. раздела Задаване на типа на съединение. За повече информация за поддържането на целостта на връзките и избирането на каскадна опция вж. раздела Поддържане на целостта на връзките.

Задаване на типа на съединение

Когато дефинирате релация между таблици, фактите за релацията представляват информация за проектирането на вашите заявки. Ако например дефинирате релация между две таблици и след това създадете заявка, която използва и двете таблици, Access автоматично избира по подразбиране съответстващите си полета на базата на полетата, зададени в релацията. Можете да промените тези начални стойности по подразбиране във вашата заявка, но стойностите, определени от релацията, често ще се оказват правилните. Тъй като съгласуването и обединяването на данни от повече от една таблица е нещо, което често ще правите във всички, освен в най-простите бази данни, задаването на настройки по подразбиране чрез създаване на релации може да бъде ефективно и полезно.

Заявките към няколко таблици комбинират информация от повече от една таблица, като съпоставят стойностите в общи полета. Операцията, която извършва съпоставянето и комбинирането, се нарича съединение. Нека например да искате да покажете поръчки на клиенти. Създайте заявка, която съединява таблицата "Клиенти" и таблицата "Поръчки" по полето "Идентификатор на клиент". Резултатът от заявката съдържа информация за клиенти и информация за поръчки само за тези редове, за които е намерено съответствие.

Една от стойностите, което можете да зададете за всяка релация, е типът на съединението. Типът на съединението информира Access кои записи да включи в резултата от заявката. Да разгледаме например отново заявка, съединяваща таблицата "Клиенти" и таблицата "Поръчки" по общите полета "ИД на клиент". Като използва типа на съединение по подразбиране (наречен вътрешно съединение), заявката връща само редовете от "Клиенти" и редовете от "Поръчки", в които общите полета (наричани също съединени полета) са равни.

Да предположим обаче, че искате да включите всички клиенти – дори тези, които още не са направили поръчки. За тази цел трябва да промените типа на съединението от вътрешно съединение в така нареченото ляво външно съединение. Лявото външно съединение връща всички редове от таблицата от лявата страна на релацията и само тези от таблицата отдясно, за които има съответствие. Дясното външно съединение връща всички редове отдясно и само тези отляво, за които има съответствие.

Забележка: В този случай "ляво" и "дясно" се отнасят за позицията на таблиците в диалоговия прозорец Редактиране на релации, а не в прозореца "Релации".

Трябва да мислите за резултата, който най-често ще искате от заявката, съединяваща таблиците в тази релация, и в зависимост от това да зададете типа на съединението.

Задаване на типа на съединение

  1. В диалоговия прозорец Редактиране на релации щракнете върху Тип на съединение.

    Появява се диалоговият прозорец Свойства на съединението.

  2. Щракнете върху вашия избор и след това щракнете върху OK.

Следващата таблица (ако използвате таблиците "Клиенти" и "Редове") показва трите възможности за избор, които са показани в полето Свойства на съединението , типа съединение, който използват, и дали са включени всички редове или съответстващите си редове за всяка таблица.

Избор

Релационно съединение

Лява таблица

Дясна таблица

Включват се редове само когато съединените полета от двете таблици са еднакви.

Вътрешна връзка

Съответстващите си редове

Съответстващите си редове

2. Включва ВСИЧКИ записи от "Клиенти" и само тези записи от "Поръчки", в които съединените полета са равни.

Ляво външно съединение

Всички редове

Съответстващите редове

3. Включва ВСИЧКИ записи от "Поръчки" и само тези записи от "Клиенти", в които съединените полета са равни.

Дясно външно съединение

Съответстващите редове

Всички редове

Когато изберете опция 2 или опция 3, на релационната линия се показва стрелка. Тази стрелка сочи към страната на релацията, показваща само съответстващите редове.

Извършване на промени в диалоговия прозорец "Свойства на съединението"

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

Показва се прозорецът "Релации".

Ако още не сте дефинирали релации и това е първият път, когато отваряте прозореца "Релации", се показва диалоговият прозорец Показване на таблица. Ако диалоговият прозорец се покаже, щракнете върху Затвори.

  1. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

Всички таблици, които имат релации, се показват заедно с релационните линии. Забележете, че скритите таблици (таблиците, за които е избрано квадратчето за отметка Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец "Опции за навигация" е избрана опцията "Покажи скритите обекти".

За повече информация за опцията "Покажи скритите обекти" вж. статията Ръководство за навигационния екран.

  1. Щракнете върху релационната линия за релацията, която искате да промените. Когато се избере, релационната линия се удебелява.

  2. Щракнете двукратно върху релационната линия.

    или

    В раздела Проектиране, в групата Инструменти щракнете върху Редактиране на релации.

    Появява се диалоговият прозорец Редактиране на релации.

  3. Щракнете върху Тип на съединение

  4. В диалоговия прозорец Свойства на съединението щракнете върху опцията и след това щракнете върху OK.

    Диалогов прозорец "Свойства на съединението"

  5. Направете допълнителни промени в релацията и след това щракнете върху OK.

Най-горе на страницата

Поддържане на целостта на връзките

Целта на използването на целостта на връзките е да не позволява появата на изолирани записи и да запази препратките синхронизирани, така че няма записи, препращащи към други записи, които вече не съществуват. Поддържането на целостта на връзките се осъществява, като го разрешите за релация между таблици. След като е разрешено, Access отказва всяка операция, която би нарушила целостта на връзките за тази релация между таблиците. Access отказва актуализирания, които променят целта на препратка, и изтривания, които премахват целта на препратка. За да накарате Access да продължи актуализирането и изтриването на препратките, така че всички свързани редове се променят съответно, вж. раздела Задаване на каскадните опции.

Включване и изключване на целостта на връзките.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

Показва се прозорецът "Релации".

Ако още не сте дефинирали релации и това е първият път, когато отваряте прозореца "Релации", се показва диалоговият прозорец Показване на таблица. Ако диалоговият прозорец се покаже, щракнете върху Затвори.

  1. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

Всички таблици, които имат релации, се показват заедно с релационните линии. Забележете, че скритите таблици (таблиците, за които е избрано квадратчето за отметка Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация е избрана опцията "Покажи скритите обекти".

За повече информация за опцията "Покажи скритите обекти" вж. статията Ръководство за навигационния екран.

  1. Щракнете върху релационната линия за релацията, която искате да промените. Когато се избере, релационната линия се удебелява.

  2. Щракнете двукратно върху релационната линия.

    или

    В раздела Проектиране, в групата Инструменти щракнете върху Редактиране на релации.

    Появява се диалоговият прозорец Редактиране на релации.

  3. Поставете отметка в квадратчето Поддържай целостта на връзките.

  4. Направете допълнителни промени в релацията и след това щракнете върху OK.

След като разрешите поддържането на целостта на връзките, в сила са следните правила:

  • Не може да въведете стойност в полето външен ключ на свързана таблица, ако тази стойност не съществува в полето първичен ключ на първичната таблица  – това би създало изолирани записи.

  • Не може да изтриете запис от първична таблица, ако съществуват съответстващи записи в свързана таблица. Например не може да изтриете запис за служител от таблица "Служители", ако има поръчки, присвоени на този служител в таблица "Поръчки". Можете обаче да изтриете с една операция първичен запис и всички свързани записи, като поставете отметка в квадратчето Каскадно изтриване на свързаните записи.

  • Не може да промените стойност на първичен ключ в първичната таблица, защото това би създало изолирани записи. Например не може да промените номер на поръчка в таблица "Поръчки", ако има редове, съответстващи на тази поръчка в таблица "Подробни данни за поръчки". Можете обаче да актуализирате с една операция първичния запис и всички свързани записи, като поставете отметка в квадратчето Каскадно актуализиране на свързаните полета.

    Забележки: Ако имате затруднения при разрешаване на целостта на връзките, забележете, че за поддържането на целостта на връзките са необходими следните условия:

    • Общото поле от първичната таблица трябва да бъде първичен ключ или да има уникален индекс.

    • Общите полета трябва да имат един и същ тип данни. Единственото изключение е това, че поле с автоматично номериране може да бъде свързано с числово поле, чиято настройка на свойството Размер на полето е Long Integer.

    • Двете таблици трябва да се намират в една и съща база данни на Access. Целостта на връзките не може да бъде наложена за свързани таблици. Ако обаче таблиците източници са във формат за Access, можете да отворите базата данни, в която се съхраняват, и да разрешите целостта на връзките в тази база данни.

Задаване на каскадните опции

Възможни са случаи, когато имате нужда да промените стойността в страната "един" на релация. В този случай е необходимо Access да актуализира автоматично всички засегнати редове като част от единична операция. По този начин актуализирането се извършва изцяло, така че вашата база данни не остава в противоречиво състояние – с някои редове актуализирани, а други – не. Access ви помага да избегнете този проблем, като поддържа опцията "Каскадно актуализиране на свързаните полета". Когато поддържате целостта на връзките и изберете тази опция и след това актуализирате първичен ключ, Access автоматично актуализира всички полета, които препращат към първичния ключ.

Може също да се наложи да изтриете един ред и всички свързани с него записи – например запис за един доставчик и всички поръчки, свързани с него. За тази цел Access поддържа опцията "Каскадно изтриване на свързаните записи". Когато поддържате целостта на връзките и изберете опцията "Каскадно изтриване на свързаните записи", Access автоматично изтрива всички записи, които препращат към първичния ключ, когато изтриете записа, съдържащ първичния ключ.

Включване и изключване на каскадно актуализиране и/или каскадно изтриване

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

  3. В раздела Инструменти за бази данни, в групата Показване/скриване щракнете върху Релации.

Показва се прозорецът "Релации".

Ако още не сте дефинирали релации и това е първият път, когато отваряте прозореца "Релации", се показва диалоговият прозорец Показване на таблица. Ако диалоговият прозорец се покаже, щракнете върху Затвори.

  1. В раздела Проектиране, в групата Релации щракнете върху Всички релации.

Всички таблици, които имат релации, се показват заедно с релационните линии. Забележете, че скритите таблици (таблиците, за които е избрано квадратчето за отметка Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация е избрана опцията "Покажи скритите обекти".

За повече информация за опцията "Покажи скритите обекти" вж. Ръководство за навигационния екран.

  1. Щракнете върху релационната линия за релацията, която искате да промените. Когато се избере, релационната линия се удебелява.

  2. Щракнете двукратно върху релационната линия.

    или

    В раздела Проектиране, в групата Инструменти щракнете върху Редактиране на релации.

    Появява се диалоговият прозорец Редактиране на релации.

  3. Поставете отметка в квадратчето Поддържай целостта на връзките.

  4. Изберете едното или и двете квадратчета за отметка Каскадно актуализиране на свързаните полета и Каскадно изтриване на свързаните записи.

  5. Направете евентуални допълнителни промени в релацията и след това щракнете върху OK.

Забележка: Ако първичният ключ е поле за автономериране, избирането на Каскадно актуализиране на свързаните полета няма да има ефект, защото не може да промени стойността в поле с автоматично номериране.

Най-горе на страницата

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×