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

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

Забележка: Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

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

В тази статия

Въведение

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

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

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

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

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

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

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

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

Въведение

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

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

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

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

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

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

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

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

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

1. "ИД_служител" се съдържа и в двете таблици – като първичен ключ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Щракнете върху Файл и след това върху Отвори.

  2. Изберете и отворете базата данни.

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

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

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

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

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

Когато прозорецът "Релации" е активен, можете да избирате от следните команди в лентата:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Щракнете върху Файл и след това върху Отвори.

  2. Изберете и отворете базата данни.

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

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

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

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

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

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

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

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

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

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

    Забележки: 

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

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

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

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

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

  1. В раздела Файл щракнете върху Отвори.

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

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

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

  • Натиснете ALT+F8.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    –или–

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Избор

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

Лява таблица

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×