Ключевые поля таблиц. Понятия первичного и внешнего ключа 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ключевые поля таблиц. Понятия первичного и внешнего ключа



Ключ – это столбец (может быть несколько столбцов), добавляемый к таблице и позволяющий установить связь с записями в другой таблице. Существуют ключи двух типов: первичные и вторичные или внешние. Первичный ключ – это одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице. Первичный ключ не допускает значений Null и всегда должен иметь уникальный индекс. Первичный ключ используется для связывания таблицы с внешними ключами в других таблицах. Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц. Из двух логически связанных таблиц одну называют таблицей первичного ключа или главной таблицей, а другую таблицей вторичного (внешнего) ключа или подчиненной таблицей. СУБД позволяют сопоставить родственные записи из обеих таблиц и совместно вывести их в форме, отчете или запросе. Существует три типа первичных ключей: ключевые поля счетчика (счетчик), простой ключ и составной ключ. Поле счетчика (Тип данных «Счетчик»). Тип данных поля в базе данных, в котором для каждой добавляемой в таблицу записи в поле автоматически заносится уникальное числовое значение. Простой ключ. Если поле содержит уникальные значения, такие как коды или инвентарные номера, то это поле можно определить как первичный ключ. В качестве ключа можно определить любое поле, содержащее данные, если это поле не содержит повторяющиеся значения или значения Null. Составной ключ. В случаях, когда невозможно гарантировать уникальность значений каждого поля, существует возможность создать ключ, состоящий из нескольких полей. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц многие - ко - многим. Необходимо еще раз отметить, что в поле первичного ключа должны быть только уникальные значения в каждой строке таблицы, т.е. совпадение не допускается, а в поле вторичного или внешнего ключа совпадение значений в строках таблицы допускается. Если возникают затруднения с выбором подходящего типа первичного ключа, то в качестве ключа целесообразно выбрать поле счетчика

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

Одним из важнейших достоинств реляционных баз данных состоит в том, что можно хранить логически сгруппированные данные в разных таблицах и задавать связи между ними, объединяя в единую базу. Для задания связи таблицы должны иметь поля с одинаковым типом данных. Связь между таблицами устанавливает отношение между совпадающими значениями в этих полях. Такая организация позволяет уменьшить избыточность хранимых данных, упрощает их ввод, удаление, поиск

Данные об объектах в базе связаны между собой. Эти связи принято изображать следующим образом:

A F(x)↔G(x) B

где

  • А и В – объекты;
  • F(x) – вид связи объекта А с объектом В;
  • G(x) – вид связи объекта В с объектом А.

Функции F(x) и G(x) могут принимать значения 1 – единичная и M – множественная связь. Обычно рассматривают три вида связей.

Связь один к одному (1:1):

означает, что каждому элементу объекта А может соответствовать только один элемент объекта В и наоборот, например:

  • Ректор 1↔1 Университет

Связь один ко многим (1:М):

означает, что могут существовать экземпляры объекта А, которым соответствует более одного экземпляра объекта В. Но при этом каждому экземпляру объекта В может соответствовать только один экземпляр объекта А, например:

  • Университет 1↔М Факультеты
  • Группа 1↔М Студенты.

Связь многие ко многим (M: M):

означает, что может существовать экземпляр объекта А, которому соответствует несколько экземпляров объекта В и наоборот. Например:

  • Преподаватели М↔М Дисциплины
  • Покупатели М↔М Продавцы

Характеристика видов связей таблиц

Характеристика полей связи по видам   1:1   1: M   M:1   M: M
Поле связи основной таблицы Ключ Ключ Не ключ Не ключ
Поле связи дополнительной таблицы Ключ Не ключ Ключ Не ключ

Одной записи в таблице Клиенты может соответствовать много записей в таблице Заказы.

            ОШИБКА (НЕ N, А М!)

У одной книги может быть несколько авторов, а каждого автора может быть несколько книг.

 

Т акую связь реализовать невозможно. Такая связь реализуется только при помощи третьей таблицы – таблицы связки, имеющей составной ключ

Внимание! Связь многие ко многим преобразуется в две связи один ко многим при помощи таблицы связки.

 

 

Понятие СУБД.

 

Файловые информационные системы разрабатывались на основе позадачного принципа. Суть его в том, что для каждой задачи создавался свой набор данных и разрабатывалась своя прикладная программа, которая решала поставленную задачу. Схематически это можно представить так:

Задача 1 Данные 1 Программа 1
Задача 2 Данные 2 Программа 2

При создании по этому принципу сложных информационных систем специалисты и пользователи столкнулись с проблемами, которые заложены в самой сути этого принципа, а именно:

  • избыточностьданных, поскольку данные в разных задачах могут дублироваться;
  • наличие тесной взаимосвязи между данными и прикладными программами, а значит, любое изменение в организации данных приводит к необходимости изменять программу.

Эти проблемы привели специалистов по автоматизации информационных систем к пониманию того, что нужен иной подход к организации и обработке данных, который позволил бы:

  • интегрировать все данные, относящиеся к одному проекту, так, чтобы они хранились централизованно и создавали динамически обновляемую модель предметной области;
  • максимально возможную независимость прикладных программ и данных, т.е. была логическая и физическая независимость данных. Независимость данных от программ дает возможность пользователям не заниматься вопросами представления данных на физическом уровне: размещение данных в памяти, метод доступа к ним и т.д.

Выполнение этих требований привело к созданию единой базы логически связанных данных для всех задач конкретной предметной области и разработке одной общей программы, которая позволяет создать базу и манипулировать ее данными и которая получила название СУБД – система управления базой данных. Схематически эта идея представлена так:

Задача 1

База данных

СУБД

Приложение 1
Задача 2 Приложение 2

Концепция СУБД была разработана в 1972г. в США фирмой IBM. Первые СУБД создавались для больших и мини-ЭВМ. Впоследствии были созданы СУБД и для персональных компьютеров. Система управления базами данныхэто совокупность программных и языковых средств, предназначенных для управления данными, ведения базы данных и обеспечения взаимодействия с прикладными программами (ГОСТ 20886-85).

Кроме того, в комплекс программных средств СУБД входят программы защиты от несанкционированного доступа, контроля достоверности данных и др. Таким образом, в целом система управления базой данных представляет собой универсальное программное средство, предназначенное для:

  • создания общей базы данных для множества приложений;
  • поддержания ее в актуальном режиме;
  • обеспечения эффективного доступа пользователей к содержащимся в базе данным;
  • поддержания защиты и восстановления данных, их целостности и непротиворечивости.

К причинам, вызвавшим появление СУБД, относят следующие: растущие объемы обрабатываемой информации, сложные структуры организации данных, необходимость коллективного доступа к данным, высокие требования к скорости обработки и достоверности получения результата и др.

Система управления базами данных включает в себя: средства создания базы данных, средства работы с базой данных, сервисные средства.

Средства создания базы данных – это язык описания данных, язык манипулирования данными, дополнительные средства. Связь пользователя с базой данных осуществляется двумя видами языков: языка описания данных и языка манипулирования данными. Язык описания данныхэто высокоуровневый непроцедурный язык декларативного типа, предназначенный для описания логической структуры данных. Человек-проектировщик базы использует его для перевода логической структуры базы данных в ее физическую структуру.Он содержит средства для обозначения файлов и их записей, полей записей, указания типов данных. Он позволяет указать количество записей в файле, порядок их расположения, порядок расположения полей записей, длину записей, длину полей и диапазон допустимых значений данных.

Языкманипулирования данными представляет собой совокупность конструкций, обеспечивающих выполнение основных операций по модификации данных: ввод, удаление, редактирование и выборку данных из базы. Этот язык содержит набор команд, позволяющих включать новые данные в базу, заменять старые данные новыми, удалять ненужные данные, осуществлять поиск, выборку и другие действия.

Дополнительные средстваэто обычно визуальные средства, используемые для удобства и упрощения работы с базой, а также программа отладчик, предназначенная для тестирования приложений в процессе их разработки.

Средства работы с базой данных позволяют создавать удобный интерфейс, а также необходимую конфигурацию экранного представления вводимой и выводимой информации: окна, свет, цветность и т.п. Они состоят из средств конфигурации и средств операций с данными.

Сервисные средства позволяют использовать другие системы в процессе проектирования и работы с базой, например, можно взять информацию из Microsoft Word или Microsoft Excel и перенести ее в Microsoft Access.

СУБД позволяет решать широкий класс экономических задач, в том числе и те, что решает табличный процессор, но обратное не всегда справедливо, так как СУБД обладает в этом смысле более широкими возможностями. Поэтому при решении любой задачи надо вначале рассмотреть возможность ее решения более простыми средствами (типа Excel) и лишь в сложных случаях пользоваться СУБД.

Существует следующие принципиальные отличия между системами управления реляционными базами данных и табличными процессорами:

1. Все реляционные базы данных разрабатываются с целью обеспечения эффективной обработки больших объемов информации, намного превышающих те, которые ориентированы на электронные таблицы. Реляционные базы данных минимизируют общий объем базы данных. Для этого таблицы, содержащие повторяющиеся данные, разбиваются на несколько связанных таблиц.

2. Реляционная база данных может легко связать несколько таблиц так, что для пользователя они будут представляться единой таблицей. Реализовать такую возможность в системах управления электронными таблицами сложно, а иногда просто невозможно.

3. Когда имеется необходимость в использовании одних и тех же данных разными специалистами и их вводом и анализом занимаются разные люди. Если данные находятся в электронной таблице, то вносить изменение может только один человек, что касается базы данных, то взаимодействовать с ней могут несколько пользователей одновременно, модифицируя содержимое одной и той же таблицы.

4. Если необходимо обеспечить защиту данных от несанкционированного доступа, контролировать их значения, поддерживать целостность данных, то это можно сделать только средствами СУБД.

Архитектура СУБД.

Современные СУБД различаются по своим характеристикам и выполняемым ими функциям. Однако практически во всех из них логически можно выделить три компоненты:

  • подсистему средств проектирования,
  • подсистему средств обработки
  • ядро.

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

Подсистема обработки обеспечивает работу с компонентами, созданными с помощью средств проектирования. Это – процессор форм, процессор запросов, генератор отчетов, средства обработки, основанные на процедурных языках. Так, в Access в имеется компонент, реализующий построение формы и связывающий элементы формы с данными таблиц.

· Ядросистемы выполняет функцию посредника между подсистемами проектирования и обработки и данными. Ядро СУБД получает запросы от двух других компонентов, выраженные в терминах таблиц, строк и столбцов, и преобразует эти запросы в команды операционной системы, выполняющие запись и чтение данных с физического устройства. Кроме того, ядро участвует в управлении транзакциями, блокировке, резервном копировании и вос

· Функции этих трех компонентов в СУБД взаимосвязаны, и для обеспечения корректной работы СУБД они должны взаимодействовать друг с другом и с операционной системой по соответствующим протоколам. Взаимодействие этих компонент позволяет СУБД управлять базой данных; вести разработку, отладку и выполнение прикладных программ и выполнять ряд вспомогательных операций (сервис).

 

22.Функциональные возможности СУБД

 

Функциональные возможности СУБД были сформулированы Э. Коддом в 1982 году в виде восьми основных функций.

1. Хранение, извлечение и обновление данных – это самая фундаментальная функция СУБД.

2. Наличие доступного конечным пользователям каталога, в котором хранится описание элементов данных. Ключевой особенностью идеологии ANSI/SPARC является наличие интегрированного системного каталога с данными о схемах, пользователях, приложениях и т.д. Он называется еще словарем данных и является хранилищем информации, описывающей данные в базе, то есть это данные о данных, или метаданные. Обычно в этом каталоге хранятся такие сведения: имена, типы и размеры элементов данных; имена связей; накладываемые на данные ограничения поддержки целостности; имена санкционированных пользователей; статистические данные и др.

3. Поддержка механизма транзакций. Транзакция представляет собой набор действий, выполняемых отдельным пользователем или прикладной программой для доступа или изменения содержимого базы. Если во время выполнения транзакции произошел сбой, то база данных попадает в противоречивое состояние, так как некоторые изменения будут внесены, а другие – нет. Поэтому все частичные изменения должны быть отменены для возвращения базы в непротиворечивое состояние. Механизм транзакций гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них.
Примерами транзакций может служить добавление в базу данных сведений о новом сотруднике, обновление сведений о зарплате некоторого сотрудника, удаление сведений о сотруднике. Если во время выполнения транзакции произойдет сбой, например из-за выхода из строя компьютера, база данных попадает в противоречивое состояние, поскольку некоторые изменения уже будут внесены, а остальные еще нет. Поэтому все частичные изменения должны быть отменены для возвращения базы данных в прежнее, непротиворечивое состояние. СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них.

4. Поддержка механизма, гарантирующего корректное обновление данных при параллельном выполнении операций обновления многими пользователями. Параллельный доступ сравнительно просто организовать, если все пользователи выполняют только чтение данных, поскольку в этом случае они не могут помешать друг другу. Однако, когда два или больше пользователей одновременно получают доступ к базе данных на обновление, легко может возникнуть конфликт с нежелательными последствиями.

5. Поддержка средств восстановления базы при ее повреждении или разрушении. Сбой может произойти в результате выхода из строя системы или запоминающего устройства, ошибки аппаратного или программного обеспечения, которые могут привести к останову СУБД. Кроме того, пользователь может обнаружить ошибку во время выполнения транзакции и потребовать ее отмены. Во всех этих случаях СУБД должна иметь механизм восстановления базы данных и возврата ее к непротиворечивому состоянию.

6. Гарантия доступа к базе только санкционированным пользователям. Обеспечение безопасности данных за счет их шифрования, защиты паролем, разграничения уровней доступа.

7. Способность к интеграции с коммуникационным программным обеспечением для осуществления обмена данными с терминалами, за которыми работают пользователи.

8. Обеспечение целостности данных, т.е. наличие средств, позволяющих удостовериться, что содержимое базы всегда остается полным и корректным. Целостность базы данных означает, что в базе содержится полная, непротиворечивая и адекватно отражающая предметную область информация: объекты базы данных и их взаимосвязи. Поддержание целостности включает проверку и восстановление в случае обнаружения противоречий в базе данных. Целостное состояние базы описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные, например, диапазон возможных ограничений атрибутов.

Производительностьсовременных СУБД оценивается по следующим параметрам:

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

На производительность СУБД оказывают влияние и такие факторы, как:

  • СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие СУБД;
  • производительность собственных прикладных программ существенно зависит от правильного проектирования и построения базы данных.

Классификация СУБД.

Основой разработки и функционирования любой СУБД является модель данных, в которой находит отражение предметная область. Поэтому основным признаком классификации СУБД является тип поддерживаемой моделиданных. Согласно этому признаку СУБД делят на иерархические, сетевые, реляционные и др.

В 1970г. Э. Кодд опубликовал статью о реляционной модели данных. Определение реляционной СУБД дано в монографии К.Дейта «Руководство по реляционной СУБД DB2». Пер. с англ.-М.:Финансы и статистика, 1988.С-320: «… будем называть систему реляционной, если она поддерживает, по крайней мере, реляционные базы данных, т.е. базы данных, которые могут восприниматься пользователем как таблицы, и только как таблицы; операции селекции, проекции и соединения реляционной алгебры, не требуя при этом, чтобы каким-либо образом были предопределены физические пути доступа для поддержки этих операций». Первые коммерческие реляционные СУБД появились в начале 80-х годов ХХ века. Это были разработки компаний IBM, Oracle Corporation, General Technology Inc. и др.

Реляционные СУБД просты в использовании, повышают производительность программистов при разработке прикладных программ, хорошо приспособлены для работы в архитектуре клиент-сервер, позволяют параллельную обработку базы данных, хорошо приспособлены к графическим пользовательским интерфейсам. Скоростные характеристики этих СУБД поддерживаются специальными средствами ускоренного доступа к информации – индексированием баз данных.

Реляционные СУБД продолжают совершенствоваться, предоставляя пользователю возможность решать все более сложные задачи. Однако реляционные СУБД не являются последним словом в развитии СУБД. Сегодня уже речь идет об объектно-ориентированных, объектно-реляционных, многомерных и других моделях.

По степени универсальности различают два класса СУБД: системы общего назначения и специализированные системы.

  • Системы общего назначенияэто сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных любой предметной области, т.е. они не ориентированы на конкретную предметную область или на информационные потребности конкретной группы пользователей и имеют мощные средства настройки на различные области.
  • Специализированные СУБД создаются в тех случаях, когда СУБД общего назначения не могут эффективно организовать работу с конкретной базой данных или затрачивают на это слишком много времени. Примером специализированной СУБД может быть система IMBASE, используемая для автоматизации проектных и конструкторских разработок.

По режиму работы современные СУБД делят на однопользовательские (настольные) и многопользовательские. Настольные обычно обеспечивают возможность создания персональных баз данных и недорогих приложений, работающих с ними.

Следующим шагом в развитии настольных СУБД было появление их сетевых многопользовательских версий, которые обеспечивали одновременную работу нескольких пользователей с централизованной базой, размещаемой на сервере сети. По каждому запросу пользователя к базе все данные из нее пересылаются на его компьютер. В результате на компьютере пользователя создается локальная копия базы данных. Затем СУБД пользователя выполняет запрос. На сервере может располагаться также и СУБД, которая в этом случае запускается с компьютера пользователя.

Наиболее эффективная работа с централизованной базой данных обеспечивается при архитектуре клиент-сервер. На сервере сети размещается база и устанавливается мощная серверная СУБД – сервер баз данных, представляющий собой программный комплекс, обеспечивающий хранение больших объёмов информации, ее обработку и предоставление пользователям в сетевом режиме.

На компьютере-клиенте приложение формирует запрос к базе. Серверная СУБД обеспечивает интерпретацию запроса, его выполнение, формирование результата запроса и пересылку его по сети на клиентский компьютер, который интерпретирует его необходимым образом и предоставляет пользователю. Клиентское приложение может также посылать запрос на обновление базы – и серверная СУБД вносит необходимые изменения.

В архитектуре клиент-сервер функции клиентского приложения и серверной СУБД разделены. В этом случае уменьшается сетевой трафик, так как через сеть передаются только результаты запросов. Груз файловых операций ложится в основном на сервер, который мощнее клиентов и поэтому способен быстрее обслуживать запросы. Как следствие этого, уменьшается потребность клиентских приложений в оперативной памяти. Поскольку серверы способны хранить большое количество данных, то на компьютерах-клиентах освобождается значительный объём дискового пространства для других приложений. Существенно повышается степень безопасности базы данных, так как правила целостности данных определяются в серверной СУБД и являются едиными для всех приложений, использующих эту базу.

На рынке серверных СУБД лидируют следующие СУБД: Oracle 8, Microsoft SQL Server 2000, Informix, Sybase, DB2.

По способу распределения данных выделяют централизованные и децентрализованные СУБД.

Централизованная СУБДэто такая, когда база данных находится на одном сервере. Децентрализованная – осуществляет работу с базой данных, разбитых на несколько, физически распределенных по сети.

Имеются и другие признаки классификации:



Поделиться:


Последнее изменение этой страницы: 2022-09-03; просмотров: 83; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.64.128 (0.035 с.)