Работа важная шо писец. George W. Anderson, Danielle Laroccasap in 24 Hours
![]()
|
ТАБЛИЦА 3.1. Базы данных, поддерживаемые SAP Партнер Веб-сайт Microsoft SQL Server www.microsoft.com www.mysgl.com MySQL MaxDB www.mysgl.com IBM DB2 (различные версии) www.ibm.com Oracle www.oracle.com Важно отметить, что не все разработчики баз данных и не все версии продуктов поддерживаются SAP. SAP стремится работать с лидерами рынка, периодически добавляя и удаляя поддержку продуктов для определенных производителей. При этом они не только ограничивают количество специфических настроек баз дан- ных, но также обеспечивают IT-специалистам гибкость и возможность выбора, предоставляют ключи для успешного решения задач по разворачиванию и под- держке SAP-решений. Phone Book Table Name Address Phone Bailey Workman 101 Pine Street, Willford, NY 11011 555-555-9878 Patricia Spencer 86 Apple Court, Friendly, NY 23465 555-555-6321 Jeanette Williams 3003 11th Street, New York, NY 14454 555-555-7785 Timothy James 2 Waterview Way, Wantagh, NY 11202 555-555-1479 Nicole Kaupp 23 Fresdale Rd, Freeport, NY 11256 555-555-0036 База данных = табли- цы, поля и строки Таблицы Поля (колонки) Записи (строки) ЧАС 3. Основы базы данных 35 Система управления реляционной базой данных (RDBMS) База данных SAP содержит буквально тысячи таблиц, в которых хранится ин- формация. Некоторые продукты, такие как ECC и R/3, содержат более 30 000 таблиц, тогда как другие продукты, такие как CRM, могут содержать немногим более 10 000 таблиц. Несмотря на количество этих таблиц, все они связаны друг с другом через установленные отношения. Эта связь многочисленных таблиц че- рез отношения образует то, что известно как система управления реляционной базой данных [Relational Database Management System (RDBMS)]. Очень важное преимущество этой системы в том, что она исключает избыточ- ность. Для лучшего понимания этого давайте посмотрим на концепцию этой сис- темы, используя пример с телефонной книгой. В этом примере телефонная книга представляет собой таблицу, которая хранит имена, адреса и телефонные номе- ра всех жителей вашего города. Представим, что у вас есть еще одна книга того же города, в которой хранятся адреса электронной почты и веб-сайты вместе с другими данными. Теперь у вас есть две таблицы, которые хранят довольно много одной и той же информации, и в то же время вторая таблица содержит инфор- мацию, которой нет в первой. Допустим, вы хотите создать отчет, который будет содержать все имена и номе- ра телефонов из первой таблицы, и включить в него адреса электронной почты, извлекая их из второй таблицы. Эти данные хранятся в двух разных таблицах и, следовательно, возникает проблема, поскольку если вы перенесете всю инфор- мацию из второй таблицы в первую, то получится две таблицы, хранящие одну и ту же информацию. Кроме того, будет существовать избыточность и, следовательно, трата ресурсов, что также сделает данную структуру громоздкой для поддержки. Допустим, что чей-то физический адрес изменился, что происходит довольно часто; в этом слу- чае вам необходимо будет изменить данные в обеих таблицах. Использование системы управления реляционной базой данных (RDBMS) решает данную про- блему, так как таблицы и, следовательно, их дискретные данные связаны друг с другом посредством специальных отношений внутри базы данных. Например, обе таблицы содержат столбец (или поле), содержащий имя человека. Следова- тельно, в системе управления реляционной базой данных (RDBMS) эти две таб- лицы могут быть связаны по этому или любому другому полю, общему для обеих таблиц (см. рис. 3.2). Первичный ключ В системе управления реляционной базой данных (RDBMS) все таблицы базы данных должны содержать уникальное поле, которое индивидуально отличает каждую конкретную запись от всех других записей в базе данных. Это уникальное поле называется первичным ключом (primary key) и состоит из одного или более полей, которые делают каждую запись в базе данных уникальной. SAP за 24 часа 36 Рис. 3.2. Использование системы управления реляционной базой данных (RDBMS) для связи таблиц на примере телефонной книги В качестве примера первичного ключа будет использоваться функциональная об- ласть SAP R/3 Human Resources (Управление персоналом). Модуль Human Resources хранит данные обо всех сотрудниках компании. Некоторые из сотрудников будут иметь один и тот же номер отдела, другие – одно и то же название занимаемой должности, а третьи – одинаковую заработную плату. Это значит, что ни одна из этих характеристик не будет идеальным кандидатом на первичный ключ. Для того, чтобы уникально идентифицировать каждого сотрудника в компании, находящей- ся на территории США, в качестве первичного ключа могло бы быть использовано поле, содержащее номер социального страхования (Social Security number) со- трудника, – по той причине, что этот номер действительно является уникальным и мог бы послужить идеальным кандидатом на первичный ключ в таблице, содержа- щей информацию обо всех сотрудниках вашей компании. На рис. 3.3 приводится пример двух различных таблиц и их уникальные первичные ключи. Phone Book Table Name Address Phone Bailey Workman 101 Pine Street, Willford, NY 11011 555-555-9878 Patricia Spencer 86 Apple Court, Friendly, NY 23465 555-555-6321 Jeanette Williams 3003 11th Street, New York, NY 14454 555-555-7785 Timothy James 2 Waterview Way, Wantagh, NY 11202 555-555-1479 Nicole Kaupp 23 Fresdale Rd, Freeport, NY 11256 555-555-0036 Report Based on Relationship Between 2 Tables Name Email Address Phone Bailey Workman Bworkman@Zucker.com 555-555-9878 Patricia Spencer Spenie@prodigy.inc 555-555-6321 Jeanette Williams LMT@Infotype.com 555-555-7785 Timothy James Tsig@Pat.com 555-555-1479 Nicole Kaupp Kaupp.Nicole@Airline.com 555-555-0036 Internet Directory Table Name Email Address Bailey Workman Bworkman@Zucker.com Patricia Spencer Spenie@prodigy.inc Jeanette Williams LMT@Infotype.com Timothy James Tsig@Pat.com Nicole Kaupp Kaupp.Nicole@Airline.com Both Tables Contain a Name Field. Based on This Relationship, a Report Can Be Created with Output from both Tables RELATIONSHIP Отношение Обе таблицы содер- жат поле «Имя» На основании этого отношения отчет может быть создан выво- дом данных из обеих таблиц Отчет, основанный на отноше- нии между двумя таблицами Рис. 3.3. Первичный ключ в таблице сотрудников и таблице отделов Dept# Department 10002 Information Technology 10003 Shipping and Receiving 10004 Mail Room 10005 Returns Processing 10006 Human Resources Employee Name Social Security # Phone Dept# Bailey Workman 555-555-9878 10002 Patricia Spencer 555-555-6321 10002 Jeanette Williams 555-555-7785 10003 Timothy James 555-555-1479 10004 Nicole Kaupp 708-88-9639 030-74-8520 020-87-8852 000-56-9636 000-56-9636 555-555-0036 10005 Поле первичного ключа Таблица сотрудников. Таблица отделов. Две разные таблицы, каждая из которых – с уникальным первич- ным ключом ЧАС 3. Основы базы данных 37 Внешний ключ Вы используете поле первичного ключа в одной таблице для связи ее с другими таблицами. Поле общего канала взаимодействия в другой таблице, как правило, не является первичным ключом в этой таблице; такое поле называется внешним ключом (foreign key). Давайте снова используем пример с модулем Human Resources (Управление персоналом). Имеется таблица сотрудников, в которой хранятся основные дан- ные о сотрудниках, с первичным ключом, определенным как «Номер социаль- ного страхования»; и имеется таблица отделов, в которой записаны номера и названия отделов, и первичным ключом для этой таблицы является номер отдела (см. рис. 3.3). В этих двух таблицах присутствует общее поле «Номер отдела». В таблице сотрудников номер отдела является внешним ключом, соединяющим ее с таблицей отделов (см. рис. 3.4). Рис. 3.4. Номера отделов в таблице сотрудников сверяются с проверочной табли- цей путем использования отношения по внешнему ключу Внешний ключ используется для установления согласованности между табли- цами. Пример такой согласованности может быть следующим: допустим, вы не хотите, чтобы сотрудник был внесен в систему с номером отдела, которого в настоящее время не существует в хранящей номера отделов таблице базы дан- ных. Использование отношения по внешнему ключу служит для проверки того, что вводимый номер существует в таблице отделов, как показано на рис. 3.4, и запрета ввода любых записей, которых не существует в таблице отделов. В этом случае все данные в ваших таблицах будут согласованы. Нарушение проверочной таблицы Ваша база данных SAP не будет принимать данные в какое-либо поле, содержа- щее внешний ключ к проверочной таблице, если вводимые данные отсутствуют в проверочной таблице (см. рис. 3.5). Dept# Department 10002 Information Technology 10003 Shipping and Receiving 10004 Mail Room 10005 Returns Processing 10006 Human Resources Employee Name Social Security # Phone Dept# Bailey Workman 555-555-9878 10002 Patricia Spencer 555-555-6321 10002 Jeanette Williams 555-555-7785 10003 Timothy James 555-555-1479 10004 Nicole Kaupp 708-88-9639 030-74-8520 020-87-8852 000-56-9636 000-56-9636 555-555-0036 10005 Поле первичного ключа Поле первичного ключа Проверочная таблица Таблица отделов Запись в таблице внешнего ключа (таблица сотрудников) ссылается на запись в проверочной таблице (таб- лица отделов) Таблица внешнего ключа Таблица сотрудников Поле внешнего ключа SAP за 24 часа 38 Рис. 3.5. На экране персональных данных персонала в поле «Семейное положение» будут приниматься только те элементы списка, которые содержатся в про- верочной таблице В этом примере необходимо ввести данные о семейном положении сотрудника. Возможные значения в проверочной таблице выведены в маленьком окне. Если вы вводите значение, которого нет среди существующих элементов списка про- верочной таблицы, то вы получите сообщение о нарушении проверочной табли- цы, похожее на то, которое изображено на рис. 3.6. Рис. 3.6. Сообщение о нарушении проверочной таблицы появляется при вводе в поле данных, которых не существует в проверочной таблице для этого поля Сообщение об ошибке будет появляться всякий раз, когда вы вводите значение, которого не существует среди элементов списка проверочной таблицы. Понятия/концепции базы данных SAP-система содержит много типов конструкций и структур в рамках R/3 (или другого SAP-компонента) Data Dictionary (DDIC) [R/3 Словарь данных]. Боль- Существующие элементы списка для поля «Семей- ное положение» в проверочной таблице ЧАС 3. Основы базы данных 39 шинство из этих конструктивных элементов имеют тенденцию становиться весь- ма специализированными с технической точки зрения. Тем не менее, в часе 17 «Словарь данных ABAP и репозитарий» будет дан обзор многих этих структурных компонентов и связанных с ними понятий. Темы, рассматриваемые далее, дают представление о том, как в целом разрабатываются различные элементы базы данных с нацеленностью, в конечном итоге, на увеличение производительности и расширяемости системы. Индексы базы данных Индексы базы данных используются для увеличения скорости получения данных из таблиц (см. рис. 3.7). Наилучшим образом индекс может быть описан как ко- пия таблицы базы данных, уменьшенная до поля ключа. Данные в этой уменьшен- ной копии отсортированы согласно нескольким предопределенным критериям, позволяющим обеспечить быстрый доступ к данным. Не все поля из скопирован- ной таблицы существуют в индексе, а индекс содержит указатель на соответству- ющую запись в фактической таблице. Рис. 3.7. Индексы базы данных SAP используются для увеличения скорости получе- ния данных из таблиц в базе данных Кстати В часе 17 будет предоставлена более подробная информация о базах данных и таблицах, и мы сможем ознакомимся с SAP Data Dictionary (Словарь данных SAP). Прозрачные таблицы SAP использует еще одну концепцию под названием «прозрачные таблицы», которые представляют собой таблицы базы данных SAP, в которых данные со- держатся только во время рабочего цикла. Прозрачная таблица создается авто- матически в базе данных, когда таблица активируется в словаре данных ABAP/4 (ABAP/4 Data Dictionary). Эта прозрачная таблица содержит такое же имя, как и таблица базы данных в словаре ABAP/4 (ABAP/4 Dictionary). Каждое из ее полей содержит такое же имя, как и его дубликат в базе данных, хотя последователь- ность полей может меняться. Изменяющаяся последовательность полей дает возможность вставлять новые поля в таблицу без необходимости ее конверти- рования; все это позволяет ускорить доступ к данным во время рабочего цикла. Индекс. Таблица. Индекс. Табица сотрудников. Доступ осуществляется к индексу и указатель используется для определения расположения фактической записи в таблице SAP за 24 часа 40 Кстати Концепция прозрачных таблиц является довольно специфичной с тех- нической точки зрения и в большей степени относится к вашим ABAP/4- программистам. Данное понятие рассматривается здесь только для того, чтобы дать базовое представление об этом термине. Структуры базы данных Структуры базы данных (Database Structures) – еще один достаточно важный тех- нический термин. Вам необходимо запомнить, что структуры базы данных – это группа внутренних полей, которые логически сочетаются друг с другом. Струк- туры активируются и определяются в словаре данных ABAP/4 (ABAP/4 Data Dic- tionary) и содержат только временные данные – во время выполнения программ. Структуры отличаются от таблиц базы данных на основании следующих трех кри- териев: Структура не содержит и не отражает связанных таблиц словаря данных АВАР/4 (ABAP/4 Data Dictionary). Структуры не содержат первичных ключей. Структуры не имеют никаких технических свойств, таких как класс, размер, категория или спецификации буферизации. Резюме Набор SAP-приложений основывается на системе управления реляционными базами данных (RDBMS). Сервер баз данных является основным хранилищем для всех программ и данных, где данные содержатся в виде таблиц баз данных и индексов. В этом часе вы изучили структуру базы данных и узнали, из чего она состоит. Понятия, раскрытые в этом часе, являются ключом к пониманию внут- реннего функционирования SAP-системы и основой для нескольких следующих часов. Вопрос – ответ В Будет ли бизнес-логика, сконфигурированная в SAP-системе, функ- ционировать таким же образом, независимо от используемой базы данных (например, Oracle, DB2, SQL Server и т. д.)? О SAP-бизнес-логика сконфигурирована в системных функциях вне зависимос- ти от торговой марки или версии базы данных, которая хранит и управляет данными. Несомненно, что конкретная марка или версия базы данных долж- на, в первую очередь, поддерживаться процессом инсталляции программно- го обеспечения SAP. В Позволит ли SAP-система создать новую запись, которая имеет тот же первичный ключ, что и еще одна запись? О Нет. SAP-система не допускает создания новой записи с первичным ключом, который уже существует. |