Теория и практика построения баз данных (1088289), страница 12
Текст из файла (страница 12)
Другие процессоры подсистемы обработки предназначены для выполнения запросов и вывода отчетов. Кроме того, в подсистеме обработки имеется компонент, обрабатывающий запросы прикладных программ на чтение и запись данных в базу. Хотя это не показано на рис. 2.1, СУБД должны также предоставлять интерфейс для стандартных языков программирования, таких как С++ и )ауа. Дальнейшую информацию об этом вы подучите из глав 15 и 16. Ядро СУБД Третий компонент СУБД вЂ” это ее ядро (слВМ5 епдгпе), которое выполняет функцию посредника между подсистемой средств проектирования и обработки и данными.
Ядро СУБД получает запросы от двух других компонентов, выраженные в терминах таблиц, строк и столбцов, и преобразует этп запросы в команды операционной системы, выполняющие запись и чтение данных с физического носителя. Кроме того, ядро СУБД участвует в управлении транзакциями, блокировке, резервном копировании и восстановлении. Как будет показано в главе 11, действия с базой данных должны выполняться как единое целое. Например, при обработке заказа изменения в таблицах КЛИЕНТ, ЗАКАЗ и СКЛАД должны производиться согласованно: либо выполняются все, либо не выполняется нн одно. Ядро СУБД помогает координировать действия, с тем чтобы либо выполнялись все действия в группе, либо не выполнялись пи одного.
Мссгово(с предоставляет два различных ядра для Ассезз 2002: )ес Бпйгпе и 5О1. 5егчег. Ядро )ес Впй!пе используется для небольших персональных и коллективных баз данных. Ядро 5О1 5егуег, представляюпсее собой независимый продукт Мгсгозо(с, предназначено для крупных баз данных уровня отдела и небольших ! В апглпйскалг языка подсистема обработки абазпачаеггя термином гип-г!те зийгузгет, На сладу«« путать ага с пахажпм гермппам гип-!!те ртдисг, который имеет паскалька друга« значение, Эглгм терминам пака«врыв производители абазпачают урезавпый варнав« кал~плактаппгг СУБД, куда вхаляг падспстема абрабаткп и ядро, па пе вхадпг падспстема средств праекгяраваяня. Такой вариант позволяет лвгяь запускать гагапае приложение, Назначение гаках прадукгав в гам, чтобы свпзпгь стоимость прплажеивя для капечпага пользователя. Обычно СУБД баз палспсгемы средств разрабагкп стоит палшага дешевле, чсм палаапеапая СУБД, а нвагда и вовсе бесплатна Саада»ах«льва, палпут версию продукта покупает галька разработчик, а канечнг«е пальзаватслп покупают сокращенную версию.
пли среднего размера организационных баз данных. Когда вы создаете базу данных с помощью встроенных в Ассевз 2002 средств генерации таблиц (такие базы данных хранятся вместе с эо%х.гпбЬ), вы используете )ес Епйтпе. Создавая проект Ассеэв 2002 (с во%к.абр), вы тем самым создаете прикладной интерфейс для ядра 5(11. 5егуег. Создание базы данных Схема базы данных (с(асаЪазе зсЬеше) определяет структуру базы данных, ее таблиц, связей и доменов, а также деловой регламент. Схема базы данных — это проект, основа, на которой строятся база данных и ее приложения.
Пример схемы базы данных Чтобы уяснить себе, что такое схема базы данных и зачем она нужна, рассмотрим пример. Колледж Н)КЫ)пе — небольшой колледж свободных искусств на Среднем Западе США. Отдел студенческого досуга колледжа финансирует локальные спортивные секции, но испытывает проблемы с учетом спортивного инвентаря, выданного капитанам различных команд. Схема базы данных для системы учета спортинвентаря будет содержать следующие компоненты. Таблицы База данных имеет две таблицы'. САРТА1й (Сарга1пйа где, РЬопе5Сгееь С)СУ 5СаСе 21Р), содержащую сведения о капитанах, и 1тем (Ооапс(су, Оезсп рс)оп, Оасе1п, ОасеОос), содержащую данные об инвентаре.
Здесь перед скобками даны имена таблиц, а в скобках указываются имена столбцов. Ни СарСалпйагпе (нмя капитана), ни Оевспрйоп (описание) не обязаны быть уникальными, поскольку вполне может быть два капитана по имени Мэри Смит, и уж наверняка имеется много инвентаря под названием «футбольные мячи». Чтобы обеспечить однозначную идентификацию каждой строки (важность этого будет объяснена в последующих главах), мы добавим в каждую из этих таблиц столбец с уникальным номером, как показано ниже: САРТА1й(САРТА1й 10, СарСа1пйагпе, Рйопе, 5СгееС, Сйу, 5Саге, 21Р) ПЕМ(ПЕМ 10, Ооаптсгу, Оезспрбоп, Оате1п, ОатеОщ) Связи Две представленные здесь таблицы имеют следующие связи.
одна строка таблицы САРТА1й связана с несколькими строками таблицы 1ТЕМ, но одна строка таблицы 1ТЕМ связана с одной и только одной строкой таблицы САРТА1й. Такая связь обозначается 1:)л1 и произносится «однн к Н» или «один ко многим». Обозначение ! Как будет показана в главах 3 — 7, наиболее важной и сложной задачей пра разработке баз данных является праекп!раввине структуры «аблая. Начав зтаг примера уже готовых табляп, мы апустилп большую часть проекта. 60 Глава 2.
Введение в разработку баз данных Создание базы данных б1 1:Х следует понимать так, что одна строка в первой таблице связана с несколькими строками во второй таблице. По тем обозначениям таблиц, которые даны выше, невозможно сказать, какая строка таблицы САРТА1М связана с какими строками таблицы!ТЕМ. Поэтому, чтобы обозначить их связь, мы добавим в таблицу 1ТЕМ столбец САРТА1й 10.
Полная структура двух таблиц выглядит следуюшнм образом: САРТА1М(САРТА1М 10, Сар!агпйапге, РЬопе, 5!гееб Сйу, 5тате, 21Р) !ТЕМ(!ТЕМ 10, Опа«6!у, Оезспрбоп, Оате1п, ОатеОпб САРТА1М 10) При такой структуре легко определить, какому капитану был выдан данный инвентарь. Например, чтобы узнать, кому был выдан инвентарь за номером 1234, в соответствуюпгей строке таблицы 1ТЕМ мы найдем значение САРТА1М 10.
По этому номеру мы сможем определить имя и номер телефона данного капитана. Домены Домен' (йоша!и) — это множество значений, которые может принимать столбец. Рассмотрилг домены для столбцов таблицы 1ТЕМ. Предположим, что 1ТЕМ 10 н ОвапСМу (колггчество) — целые числа, Оеэспрбоп — текст с максимальной длиной 25 символов, Оате1п н Оа!еОпт (датьг выдачи и возврата) имеют тип «дата>, а САРТА1М 10 также является целым числом. Кроме задания физического формата, нам также необходимо решить, будут ли какие-либо нз доменов уникальными для данной таблицы. В нашем примере мы хотим, чтобы столбец 1ТЕМ 10 был уникальным, поэтому необходимо указать это в определении домена. Поскольку капитану может быть выдано более одной едишщы инвентаря, столбец САРТА1М 10 не является уникальным для таблицы 1ТЕМ.
Необходимо также задать домены для столбцов таблицы САРТА1М. САРТА1М 10 является целым числом, а все остальные столбцы — это текстовые поля различной длины. САРТА1М 10 должен быть уникальным для таблнпы САРТА1М. Деловой регламент Последний элемент схемы базы данных — это деловой регламент (Ьпзгпеэз гв!ез), представляющий собой ограничения на возможные действия пользователя, которые необходимо отразить в базе данных н ее приложениях. Примером делового регламента для колледжа Нгпй!гпе может служить следующий набор правил: !. Чтобы капитан мог получить па руки какой-либо инвентарь, у него должен быть местный телефон. 2.
Нн за одним капитаном не должно числиться более селш футбольных мячей. 3. По окончании каждого семестра капитаны обязаны возвратить весь инвентарь в течение пяти дней. 4. Капитан не может получить на руки новый инвентарь, если у него имеется задолженность по ранее взятому инвентарю. 1 Это определен«с значительно упрощено, с тем ч гобы скоппентрироватлся на компонентах системы баан данных. Более полное обсужлегпге доменов происходят в главе 4.
Деловой регламент является важной частью схемы, поскольку он задает такие ограничения на возможные значения данных, которые должны выполняться в любом случае, независимо от того, каким образом изменения достигают ядра СУБД. Не важно, что является источником запроса на изменение данных— пользователь формы, запрос на обновление/чтение или прикладная программа: СУБД должна позаботиться о том, чтобы этн изменения не нарушили никаких правил. К сожалениго, реализация делового регламента осуществляется в различных СУБД по-разному.
В Ассезз 2002 некоторые правила могут задаваться в схеме и выполняться автоматически. В таких продуктах, как БО1 Бегл ег и Огас!е, деловой регламент реализуется с помощью так называемых хранимых процедур (зтогей ргосейпгез). В некоторых случаях СУБД оказывается неспособной реализовать выполнение требуемых правил, н их приходится закладывать в прикладные программы. Мы обсудим эту тему более подробно в главе 1О. Создание таблиц Следующим шагом после разработки схемы базы данных является создание таблиц.
Для этого попользуются специализированные средства, предоставляемые СУБД. На рис. 2А показан вид окна, используемого МгсгозоТг Ассезз прп создании таблицы 1ТЕМ. Имя каждого столбца создаваемой таблицы указывается в столбце ПеЫ йап1е (Илгя поля), а тнп данных задается в столбце Оата Туре !Тип данных). В столбце Оелспрбоп (Описание), не обязательном к заполнению, даются описания столбцов таблицы и комментарии. Дополнительные данные по каждому столб«у — количество символов, формат, заголовок и прочее — указываются в полях ввода группы ВеЫ Ргорегбез (Свогйгства поля), расположенной в нижней части окна. На рнс. 2.2 фокус ввода находится на столбце 1ТЕМ 10. Обратите внимание, что свойство !пдехео (Индексггруется) в нижней части окна установлено в значение Уел (Мо Оврйсатез), что означает, что для столбца 1ТЕМ 10 должен быть создан индекс нз уникальных значений.