Таблицы БД и связи между ними
Введение в базы данных
Базами данных (БД) называют электронные хранилища информации, доступ к которым осуществляется с одного или нескольких компьютеров. Обычно БД создается для хранения и доступа к данным, содержащим сведения о некоторой предметной области, то есть некоторой области человеческой деятельности или области реального мира.
Типы СУБД
Системы управления базами данных (СУБД) — это программные средства, предназначенные для создания, наполнения, обновления и удаления баз данных. Различают три основных вида СУБД: промышленные универсального назначения, промышленные специального назначения и разрабатываемые для конкретного заказчика.
Специализированные СУБД создаются для управления базами данных конкретного назначения — бухгалтерские, складские, банковские и т. д.
Универсальные СУБД не имеют четко очерченных рамок применения, они рассчитаны «на все случаи жизни» и, как следствие, достаточно сложны и требуют от пользователя специальных знаний.
Заказные СУБД в максимальной степени учитывают специфику работы.
По своей архитектуре СУБД делятся на одно-, двух- и трехзвенные (рис. 1.1). В однозвенной архитектуре используется единственное звено (клиент), обеспечивающее необходимую логику управления данными и их визуализацию. В двухзвен-ной архитектуре значительную часть логики управления данными берет на себя сервер БД, в то время как клиент в основном занят отображением данных в удобном для пользователя виде. В трехзвенных СУБД используется промежуточное звено — сервер приложений, являющееся посредником между клиентом и сервером БД. Сервер приложений призван полностью избавить клиента от каких бы то ни было забот по управлению данными и обеспечению связи с сервером БД.
Рис. 1.1. Архитектура СУБД: однозвенная (слева); двухзвенная (в центре); трехзвенная (справа)
В зависимости от местоположения отдельных частей СУБД различают локальные и сетевые СУБД.
Все части локальной СУБД размещаются на компьютере пользователя базы данных. Чтобы с одной и той же БД одновременно могло работать несколько пользователей, каждый пользовательский компьютер должен иметь свою копию локальной БД. Существенной проблемой СУБД такого типа является синхронизация копий данных, именно поэтому для решения задач, требующих совместной работы нескольких пользователей, локальные СУБД фактически не применяются.
К сетевым относятся файл-серверные, клиент-серверные и распределенные СУБД. Непременным атрибутом этих систем является сеть, обеспечивающая аппаратную связь компьютеров и делающая возможной корпоративную работу множества пользователей с одними и теми же данными.
В файл-серверных СУБД все данные обычно размещаются в одном или нескольких каталогах достаточно мощной машины, специально выделенной для этих целей и постоянно подключенной к сети. Такой компьютер называется файл-сервером — отсюда название СУБД.
Клиент-серверные (двухзвенные) системы значительно снижают нагрузку на сеть, так как клиент общается с данными через специализированного посредника — сервер базы данных, который размещается на машине с данными. Сервер БД принимает запрос от клиента, отыскивает в данных нужную запись и передает ее клиенту. Таким образом, по сети передаются относительно короткий запрос и единственная нужная запись, даже если соответствующий файл с данными содержит сотни тысяч записей. Запрос к серверу формируется на специальном языке структурированных запросов (Structured Query Language, SQL), поэтому часто серверы БД называются SQL-серверами. К ним относятся, например, Microsoft SQL Server производства корпорации Microsoft, Sybase SQL Server корпорации Sybase, Oracle производства одноименной корпорации1, DB2 корпорации IBM и т. д. SQL-сервером является также и сервер InterBase корпорации Borland, который поставляется вместе с Delphi 7 Studio в комплектациях Enterprise и Architect.
Распределенные СУБД могут содержать несколько десятков и сотен серверов БД. Обычно такие СУБД работают на предприятиях государственного масштаба. К ним относятся подразделения Министерства обороны и Министерства внутренних дел.
Таблицы БД и связи между ними
Единицей хранящейся в БД информации является таблица. Каждая таблица представляет собой совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы — атрибутам (признакам, характеристикам, параметрам) этого объекта, события, явления. Пример таблицы, в которой содержатся сведения о продаже книг со склада. В терминах БД столбцы таблицы называются полями, а ее строки — записями.
Дата Название книги | Покупатель | Отпущено | |
10.12.99 Borland С++ Builder 4 10.12.99 Delphi 5. Учебный курс 12.12.99 В сетях Всемирной паутины | Магазин № 1 Магазин № 1 Дом книги | ||
Между отдельными таблицами БД могут существовать связи. Например, информация о покупателе в предыдущей таблице может дополняться в другой таблице. | |||
Покупатель | Адрес | Телефон | |
Магазин № 1 107005, Москва, 2-я Бауманская ул., 12 Дом книги 105066, Москва, Измайловский б-р, 18/11 | 273-00-14 165-18-99 | ||
Базы данных, между отдельными таблицами которых существуют связи, называются реляционными (от relation — связь, отношение).
Связанные отношениями таблицы взаимодействуют по принципу главная {master) — детальная (detail)*. В нашем примере таблица отпуска товаров — главная, а таблица покупателей — детальная. Главную таблицу часто называют родительской, а детальную — дочерней. Одна и та же таблица может быть главной по отношению к одной таблице БД и дочерней по отношению к другой.
Связи между таблицами базы данных
В БД существуют три типа отношений между различными множествами объектов :
n один к одному,
n один ко многим,
n многие ко многим.
Отношение «один к одному» означает, что между множествами существует однозначное соответствие. Например, такое отношение можно наблюдать между множеством автомобилей и множеством номерных знаков. Отношение «один к одному» не вызывает избыточности, поэтому связанные таким отношением множества целесообразно объединять в одну таблицу.
Отношение «один ко многим» рассмотрено в приведенном примере. Здесь один покупатель может сделать несколько заказов, но у одного заказа существует лишь один покупатель. Отношение «один ко многим» вызывает избыточность информации. Она устраняется организацией отдельной таблицы для каждого множества объектов (Таблица Покупателей и Таблица Заказов).
Отношение «многие ко многим» самое сложное и распространенное. Рассмотрим его на примере компаний и товаров. С одной стороны, компания может производить несколько видов товаров. С другой стороны, один вид товара может производиться несколькими конкурирующими компаниями. В задачах «многие ко многим» проблема избыточности данных проявляется наиболее остро. Она решается организацией третьей таблицы, кодирующей связи между записями информационных таблиц. Например, первая таблица содержит информацию о товарах, вторая – о компаниях, третья – связывает коды компаний с кодами товаров.