powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
16 сообщений из 16, страница 1 из 1
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740201
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суток.
Не подскажет ли кто-нибудь, как правильно спроектировать схему для хранилища данных для нижеприведенного примера из ERwin ( прилагается картинка 3.5 кб)?
В двух словах: есть таблицы PERSONS и ORGANISATION, планируются как измерения. Есть таблица фактов.
Проблема: у обоих измерений есть дополнительные аттрибуты - в примере это LOCATION. LOCATION'ов у каждого PERSON и у каждого ORGANISATION может быть много.
Вопрос: как организовать свзять LOCATION с PERSONS и ORGANISATION? для каждого измерения отдельно? Но как тогда реализовать связь один-ко-многи, ведь для каждого PERSON ID (или ORGANISATION ID) может быть много LOCATION ID? Или вносить избыточночть в каждую таблицу измерения?
Возможно я двигаюсь в неправильном направлении. Буду признателен за полезный совет.
Спасибо.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740215
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разве эта связь не через таблицу фактов задаётся?
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740237
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
expla,

Спасибо за отклик...
Тогда получается, что надо в таблицу фактов добавлять ключи PERSON LOCATION ID и ORGANISATION LOCATION ID ?
Вот у PERSON есть, грубо говоря, LOCATIONS: Москва, Киев; у ORGANISATION - Москва, Минск. Мне надо иметь возможность формировать отчеты по фактам по LOCATION для PERSON и / или по LOCATION для ORGANISATION...
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740418
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так факт-то у вас имеет атрибут "location" или нет?
Если в Вашем примере есть факт для указанных PERSON и ORGANISATION - в отчетах каких Location-ов он должен отразиться? Москва, Киев, Минск? Или только Москва?
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740439
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

В фактах нету локейшена. Пользователь должен иметь возможность выбрать факты для PERSON с локейшн Москва для ORGANISATION например Миск. LOCATION - исключительно характеристика PERSON, ORGANISATION. Если внести локейшн в факты - фатически таблица фактов будет выступать как таблица связи между PERSON-LOCATION и ORGANISATION-LOCATION (в составном ключе фактов PERSON-LOCATION-ORGANISATION)... Я правильно понимаю?
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740443
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kbownerДоброго всем времени суток.
Есть таблица фактов.


Если мне не изменяет предчуствие мы тут начинаем иметь дело с Дата март? То есть Вы коллега строите Дименшинс? Расскажите поподробнее о Ваших бизнес задачах...
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740488
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad,

Дата март я не делаю. Просто надо денормализовать/реструктуризировать существующую реляционную схему, чтобы a) первичная задача - отчеты в cognos'е, много данных; b) возможно потом будет перенос на warehouse. В примере - упрощенная часть схемы. Таких кусков около десятка. И у многих дименшинов есть пересекающиеся (одинаковые) аттрибуты - вроде приведенного в примере LOCATION.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740501
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kbowner
Дата март я не делаю. Просто надо денормализовать/реструктуризировать существующую реляционную схему, чтобы
a) первичная задача - отчеты в cognos'е , много данных;
b) возможно потом будет перенос на warehouse . В примере - упрощенная часть схемы. Таких кусков около десятка . И у многих дименшинов есть пересекающиеся (одинаковые) аттрибуты - вроде приведенного в примере LOCATION.

Коллега - что то уж я совсем запутался. Cognos - очень любит как раз Data Mart representation of your data. Судя по вашей "неустроинности" или "неловкости" в агрегатном составлении данных Вы создаёте STAR - Schema. Это и есть реляционное представление аналитической информации. Чтобы Вам помочь - мне следовало бы навигировать Вас в область Аналитической Обработки данных.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740515
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте я задам Вам бизнес вопрос - насколько важным для ваших Когнос юзеров является группирование данных по времени? Если данные группируются по -недельно [по] -месячно [по] -квартально - не раздумывайте более ни минуты - сводИте всё к дата март.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740558
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad,

Да, по времени данные тоже будут группироваться. По дата мартам - просто на мой взгляд, по принципу построения схемы - звезда, снежинка - что дата март, что централизованное хранилище - схожи. Только в дата марте данные, дименшины - только те, что предназначены конкретному пользователю.
Мне надо сделать доступными все возможные группировки.
Реляционное представление данных - я имел в виду полностью нормализованную БД. И там не используются start, snowflake и т.д.
Т.е. для каждого отчета - Вы предлагаете создать отдельную схему (набор таблиц, представлений) - дата март? Я правильно понимаю? И при необходимости синхронизировать потом эти дата марты?
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740607
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега, для начала попробуем из определения отличий OLAP i OLTP. Нормализация характерна для ускорения ввода - изменения удаления данных при минимальном хранилище. Для ускорения поиска в большом объёме мы данные подготавливаемым индексируем, денормализуем - готовим для быстрого ПОИСКА и удобного ПРОСМОТРА. Это самое главное отличие. Постарайтесь ЭТО очень хорошо понять прежде чем начнутся ваши коренные изменения. Наличие повторяющихся аттрибутов в OLAP - вполне допустимо. Законы нормализации конечно же помагают - но ни в коем случае не определяют OLAP систему. Если Вы посмотрите большинство современных БД Дезайнерских систем - они на самом первом этапе создания дают возможность настроить систему или на "Реляционную" OLTP или "мулти-дименшинал" OLAP модель. Итак ответьть на Ваш вопрос - начните с маленькой STAR - схемки где будут [может быть] дубликаты ваших главных сущностей - Назовите их DimPerson; DimOrganisation; DimLocation; DimTime. Профактируйте всё в звёздочку ну например как это сделано вот тут

Вот там Вы и почувствуете зачем нам всё это надо.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740707
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad,

Большое спасибо за отклики, но мы, кажется, не совсем понимаем друг друга. Про нормализацию, OLAP и OLTP и все, что Вы перечислили в полседнем посте - я в курсе. Я задал в начале топика конкретный вопрос, касающийся конкретно схемы звезда (или же снежинки).
Приминительно к вашей ссылке из википедии: возьмем таблицу D_CUSTOMER. У кастомера есть аттрибуты. Допустим, КАЖДЫЙ кастомер имеет несколько имен NAME, по которым надо иметь возможность отобрать кастомера - и получить факты. В этом случае CUSTOMER_ID уже не будет уникальным PK. Я хотел узнать, как в таком случае следует организовать таблицу кастомеров.
Т.е. есть буквально десяток имен NAME: Name1, Name2, ... Name10. И есть 100 миллионов пользователей, у которых может быть по несколько из этих имен. Также есть таблица D_STORE - у нее тоже есть аттрибут NAME. Так вот для D_STORE аттрибут NAME тоже может принимать по несколько значений из этого списка Name1, Name2, ... Name10.
Вот я и хотел узнать, как обычно поступают в таком случае: трансформируют ли звезду в снежинку, добавляя консольные таблицы - в данном случае или одну консольную таблицу NAME для D_CUSTOMER и D_STORE, либо для каждого дименшина отдельно. Либо в факты выносить отдельно NAME как ключи для D_CUSTOMER и D_STORE, либо еще что-то.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740717
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега, Тема эта неоднозначна и весьма многоплановая. Она не может быть решена "в общем" Не существует также и "общепринятого" ведения дела. Вся структура OLAP систем в первую очередь зависит от данных необходимых бизнесу. Никакая логика кроме Вашей Бизнес логики не может и не должна рассматриваться. Мой Вам дружеский совет - отступите назад на 10 шагов - начните разговоры с Бизнесом. Задавайте им самые глупые вопросы но начните с очень правильного "КАК БЫ ВЫ (бизнес пиплы) ПОКАЗАЛИ МНЕ (технарю) ЧТО ВАША РАБОТА СДЕЛАНА ХОРОШО". Не смотрите ни на STAR ни на SNOWFLAKE. Смотрите и изучайте репорты которые должны быть представлены. Найдите как они сегодня выглядят и как их хотят видеть Бизнес Пиплы.

А Значит разводите каждую группу вашего Data Mart. Не важно что NAME будут "очень похожи" Обратите внимание что в OLAP не работают натуральные ключи. Все они ИРРАЦИОНАЛЬНЫ. То есть например у вас есть кастомер Vera Inber которая была когда то Mary Picford. Тот же самый физически определённый человек. И Вам (может быть) понадобится следить за ВСЕМИ ее покупками на протяжении всей траснформации с ее адресами и фамилиями. Такая возможность тоже существует, но нужна ли вам она.... Это совершенно другой уровень задач, коллега и решать его Вы сможете только с Вашим бизнесом. Не со мной. Я Вам могу только немного подсказать если Вы поставите мне конкретную задачу Бизнеса - ни в коем случае не техническую.
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740725
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати простите моё незнание терминологии Русского Языка. Тема Топика "Хранилище данных - таблицы измерения+консольные" - что имеется ввиду?

Если перевести "в лоб" - Data warehouse - Dimensional Tables + Consol... Я не совсем понял ведь Вы где то говорили не про Датамарт? Или в значении Дата Март я допустил оплошность?
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35740739
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вид Ваших табличек измерений будет - супермножество всех значений. Проиндексированных по всем (возможным) атрибутам) то есть если DimPerson - там будут все имена ваших кастомеров для которых когда либо велись какие либо бизнес операции. Ключём будет ИРРАЦИОНАЛЬНЫЙ ID - например последовательность чисел. То же будет с DimLocation - все Locations должны быть введены не зависимо какие - OrganisationLocation или PersonLocation - все будут введены и проиндексированы. Ключём опять же будет ИРРАЦИОНАЛЬНЫЙ ИДЕНТИФИКАТОР. Когда будете загружать можете добавить аттрибут LocationCode - перевести его значение по отношению к "P" - Person или "О" Organisation. Если потом появятся Location для склада ("W" - Warehouse) запросто добавите и переиндексируете. Это по поводу вашего вопроса. Теперь по поводу сути OLAP. Постарайтесь посмотреть на свою будующую систему как можно отвлечённее. Она в конце концов преднозначена для ответов на Business Questions. А Вопросы ети задаёте не Вы- пользователь. Data Mart - уменьшенная форма хранилища (Data warehouse). Необходима для ответов на локальные задачи поиска. Представьте себе универмаг - Warehouse. Отдел универмага - data mart. Задачи всего склада решаются в Warehouse. Задачи отдельного департамента - v datamart
...
Рейтинг: 0 / 0
Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
    #35741443
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за советы, с вопросом разобрался. По крайней мере, на данном этапе.
Надо было просто не забывать - и "плясать" от фактов, а не подстраиваться под существующие измерения.
Топик можно закрывать.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранилище данных - таблицы измерения+консольные - посоветуйте как и что
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]