powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите плииз найти ошибки проектирования...
25 сообщений из 31, страница 1 из 2
Помогите плииз найти ошибки проектирования...
    #33601503
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кратко введу в курс дела... :)
Есть событие – цунами. Таблица TsunamiTable описывает различные цунами. Есть данные о разрушениях от цунами, они хранятся в таблице DamageTable; данные о высотах цунами, они хранятся в HeightTable; данные об экономических потерях, они хранятся в LossTable, фото данные, они хранятся в PhotoTable, текстовые описания, они хранятся в TextTable. Причем между ними реализуется связь “многие к одному”, то есть могут быть различные данные для одного конкретного цунами. Существуют также публикации (в журналах, газетах и тд и тп) – таблица BiblioTable, и международные агентства – таблица AgencyTable, которые предоставляют какую то стандартную информацию о произошедшем цунами. Различные агентства (AgencyTable) могут предоставлять различную информацию о конкретном цунами, что и реализовано с помощью переходной таблицы AddInfoTable. Аналогично в различных публикациях (BiblioTable) могут упоминаться различные цунами, что и реализовано с помощью переходной таблицы BiblioLinksTable. ID_Add, ID_Loss, ID_Dam – ссылки на наиболее достоверную информацию о цунами в таблицах AddInfoTable, LossTable, DamageTable. В таблицах есть различные поля (i_Pi, FAT, I, m и тд и тп) и ссылки на публикации в которых упоминаются эти данные (Ri_Pi, RFAT, RI, Rm и тд и тп). То есть RI является как бы внешним ключом к BiblioTable.ID. Причем как видно из схемы – связи для ссылок в виде внешних ключей не реализованы.
Поставлена задача об оптимизации структуры базы данных. Как на ваш взгляд есть ли какие-то серьезные недостатки проектирования у текущей структуры?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601517
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БЫть может я не в курсе предметной области,но разве сущность Цунами и Высота цунами не в 1:1?Высота, по-моему,это атрибут.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601533
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а вообще какова цель этой базы данных?... Какие запросы по ней будут проходить?

Честно говоря когда в каждой таблице светится ID - хочется автору снять штаны и отшлёпать. Такой ощущение что автор думает что если по каждой таблице сделал простой ПК - то довел все отношения до 3НФ. Я такое проектирование назвал бы бездарным.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601534
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное,текстовые описания тоже атрибут. К повреждениям и потерям я бы добавил ссылку на таблицу Место (наверное надо внести.,чтобы было ясно,где оно произошло)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601539
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и вообще странно:все-таки в таблицах повреждений есть ссылка на цунами или нет?Или в Цунами ссылки на них. Сделайте более ясными названия атрибутов.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33601835
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockБЫть может я не в курсе предметной области,но разве сущность Цунами и Высота цунами не в 1:1?Высота, по-моему,это атрибут.гыгыгы. вот я хоть и чел необразованный, но представляю, что одна и та же цунама в разных реионах и в разных местах этих регионов может иметь разную высоту. Вот токо табличку регионов/областей для некоторых (видимо большинства) применений возможно желательно вынести в отдельную сущность-дереце.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602014
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevena
Каких-то принципиальных недостатков у этой структуры я не вижу. Единственно, напрашивается выделение географического справочника или справочников по AreaName, RegionName.

Кроме этого, я бы уделил внимание названиям таблиц и полей. В частности повторять в имени каждой таблицы слово Table вряд ли оправданно.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602023
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321: Так как непонятно,для чего БД (курсовик или реально нужная база),то я иду по пути наибольшего упрощения, так что постарайтесь обойдусь без "гы-гы-лол" и прочее А про регионы вроде бы
ShtockНаверное,текстовые описания тоже атрибут. К повреждениям и потерям я бы добавил ссылку на таблицу Место (наверное надо внести.,чтобы было ясно,где оно произошло) писалось.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602547
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock4321: Так как...,блаблабласмотрим глазом в схему, видим, что в таблице высот одним из атрибутов является место (более точно - 2 атрибута - AreaName, RegionName), понимаем, что высота относится к месту, а не просто к цунаме, и идем со своими упрощениями (как и обидками на "гыгыгы") лесом. желательно тихо. Такие дела.
как-то так.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602682
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх,люди,где же понимание юмора...

P.S. Даже гениям свойственно ошибаться
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602737
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно, вот этот кусок вызвал желание посоветоваться
авторID_Add, ID_Loss, ID_Dam – ссылки на наиболее достоверную информацию о цунами в таблицах AddInfoTable, LossTable, DamageTable. В таблицах есть различные поля (i_Pi, FAT, I, m и тд и тп) и ссылки на публикации в которых упоминаются эти данные (Ri_Pi, RFAT, RI, Rm и тд и тп). То есть RI является как бы внешним ключом к BiblioTable.ID. Причем как видно из схемы – связи для ссылок в виде внешних ключей не реализованы. Действительно не понятно, почему ID_Add, ID_Loss, ID_Dam не обявлены как внешние ключи.
И как ссылки на публикации соотносятся с BiblioLinksTable, должна ли BiblioLinksTable являться супермножеством всех остальных RI, связанных с цунами. Как вариант - пара (MainID,RIxxx) - ссылка на BiblioLinksTable(MainID,BiblioID) - конечно если это действительно UNIQUE.

Общее замечание - объявите предметные уникальные ключи либо явно напишите схемы величин. Типа
Измерение высоты: (цунами, место, время, кто мерял, чем мерял).

Высота: (цунами, место, время) - принятая высота на основании анализа Измерений

Иначе мы Вам насоветуем...:)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602744
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gardenman: Запросы всякие разные - сортировка, поиск , удаление и вставка и тд и тп.

2 Shtock : Высоты это показания датчиков которые находятся в различных реионах и тд и тп.
Но про текстовое описание верно подметили :)
Место вводить не надо так как оно есть в таблице цунами TsunamiTable.
Сорри упущение - ссылка на цунами в различных таблицах это MainID.

2 softwarer : Насчет имен все верно - предыдущий разработчик в этом ошибся :)

2 4321 :
Еще может какие нить критические замечания?
Справочники по Area и Region - эт стопудово верно! :)

Если еще есть вопросы то задавайте ! С радостью отвечу.
Спасибо всем за текущие замечания
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602778
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про оптимизацию.
Напрашивается объединение всех файлов - тескты, фото, схемы и др. в единую таблицу. Атрибуты - описание, тип, дата, файл.
Наоборот, множественные поля Authors, KeyWords могут съесть производительность при поиске. Возможно, достойны отдельных кросс-таблиц для индексирования.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33602894
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevena
2 4321 :
Справочники по Area и Region - эт стопудово верно! :)
таки нет.таки не "справочники", а "справочник".
Географический справочник древовидной структуры. Ибо место может быть указано с произвольной точностью внутри некоторого региона (расположенного внутри некоего супер-региона).
И опять таки одного идентифекатора места вполне достаточно (он уже сам сошлется на субрегион, регион и т.п. вверх по дереву).
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33603039
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 sevena
2 4321 :
Справочники по Area и Region - эт стопудово верно! :)
таки нет.таки не "справочники", а "справочник".
Географический справочник древовидной структуры. Ибо место может быть указано с произвольной точностью внутри некоторого региона (расположенного внутри некоего супер-региона).
И опять таки одного идентифекатора места вполне достаточно (он уже сам сошлется на субрегион, регион и т.п. вверх по дереву).Опять зависит от приложения. Если один из Area, Region - географическое, а другой политико-административное деление, то может и два.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33603114
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR Если один из Area, Region - географическое, а другой политико-административное деление, то может и два.согласен, если сущности не[вполне]зависимы.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604038
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Высоты цунами характеризуются (название региона(страны), название области(остров или страна) , показания датчиков, координаты положения датчиков + ссылки на публикации, упоминающие данные показания).
Публикация характеризуется текстовыми полями такими как Авторы(просто перечисление), Ключевые слова и тд
Стандартная информация (тоже какие то числовые параметры) характеризуется тем из какого Агенства она взята, и ссылки на публикации, упоминающие эти параметры.
Таблица связей публикаций характеризуется публикациями и цунами.
То есть в каких публикациях какие цунами упоминаются. типа связь "многие к многим".
Ну а остальные это да - текстовые файлы с описаниями, фото файлы с картинками с места происшествия.

2 ModelR : Сорри - что то не пойму про обьединение фалов. В таблицах TextTable, PhotoTable хранятся имена на текстовые файлы и фото файлы соответственно. Причем картинок может быть очень много для конкретного цунами. А вот текстовое описание в 1 файле.

А про регионы и области - что можете посоветовать? Так как да там появляется некая избыточность - сам смотрел в базе данных там в основном везде повторяется Japan, Japan ...

Вот действительно непонятно с ссылками на публикации, вроде и связь на публикации о конкретном цунами реализована через промежуточную таблицу BiblioLinksTable. Но еще должны быть связи между отдельными параметрами (Ri, Rm) и публикациями. Ну вроде эта связь реализована в коде - но не как в виде внешнего ключа.
А чтобы ее реализовать нужно создать промежуточные таблицы для каждой таблицы, содержащей ссылки на публикации - так что ли?
И вот еще непонятно с ссылками на наиболее достоверную инофрмацию... Как же там быть?

ПС Надеюсь добавочная информация просветлит вас :) Если, что опять непонятно, то пишите - дополню
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604105
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sevena
>2 gardenman: Запросы всякие разные - сортировка, поиск , удаление и вставка и тд и тп.

Вы же наверно создаете базу данных не просто для того, чтобы хранить инфу о цунами. А для того чтобы ее в конце концов АНАЛИЗИРОВАТЬ. Например - анализировать частоту, скорость, высоту в разрезе - регионов времен года или еще как. Сначала ответте себе на вопрос - КАК вы собираетесь анализировать эти данные, набросайте итоговые таблицы отчетов, а потом уже выводите из них сущности.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604195
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gardenman : База данных уже написана. Вот для чего только она написана не могу понять - говорят, что надо найти оптимум между удобной системой хранения данных и быстродействием. Пока задача найти удобный способ хранения данных. То есть подкорректировать текущую структуру.

Насчет ссылок подумал и вот, что надумал - не лучше ли будет создать дополнительный столбец Ссылка в таблицах и Значение Ссылки. Так вроде можно сэкономить на памяти в таблицах. Каково ваше мнение?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604371
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вот для чего только она написана не могу понять

Да, для чего ее можно использовать в таком виде - абсолютная загадка.

> надо найти оптимум между удобной системой хранения данных и быстродействием

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

Imho было бы разумным ввести понятие точки наблюдения (с географическими координатами; точка наблюдения может представлять собой населенный пункт, а может характеризироваться только координатами). Все параметры цунами - применительно к точке наблюдения. Плюс собственно характеристики цунами (видимо, что-то типа координат эпицентра etc). Публикации, фотографии и пр. связаны с точкой наблюдения. Публикации описываются стандартным образом, их авторы - тоже.

Про территориальный (и экстерриториальный) справочник уже говорили. Если измерение характеристик цунами производится по каким-то шкалам - обязательно описать их явным образом.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604587
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaХорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Нет, в такой форме это мало что проясняет. Собственно основной вопрос проектирования структур данных - один или много ? sevena
Например, связь - Цунами . Ясно, что для данногоb]Цунами есть 0..1 достоверные экономические потери . Но остается не ясным, одни и те же достоверные экономические потери могут характеризовать разные Цунами ? Т.е. судя по диаграмме - да, а на самом деле?
Используйте нотацию Баркера для тестового описания связей. Это описание предъявляется спецам по предметной области для верификации и задается основной вопрос.
[quot sevena]
2 ModelR : Сорри - что то не пойму про обьединение фалов. В таблицах TextTable, PhotoTable хранятся имена на текстовые файлы и фото файлы соответственно. Причем картинок может быть очень много для конкретного цунами. А вот текстовое описание в 1 файле.Тогда логично предлагалось перенести его в сущность Цунами. sevena

А про регионы и области - что можете посоветовать? Так как да там появляется некая избыточность - сам смотрел в базе данных там в основном везде повторяется Japan, Japan ...Терзать заказчика. sevena

Вот действительно непонятно с ссылками на публикации, вроде и связь на публикации о конкретном цунами реализована через промежуточную таблицу BiblioLinksTable. Но еще должны быть связи между отдельными параметрами (Ri, Rm) и публикациями. Ну вроде эта связь реализована в коде - но не как в виде внешнего ключа.
А чтобы ее реализовать нужно создать промежуточные таблицы для каждой таблицы, содержащей ссылки на публикации - так что ли?
И вот еще непонятно с ссылками на наиболее достоверную инофрмацию... Как же там быть? BiblioLinksTable - суть Упоминание_Цунами_в_Публикации. Опять, допустимо ли более одного Упоминание_Цунами_в_Публикации для данной пары Цунами+Публикация? если нет, то эта пара - уникальный ключ. На него можно ссылаться, равно как и на суррогат.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604764
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНет, в такой форме это мало что проясняет.

субуго ИМХО при такой постанровке задачи основная таблица - Измерения или Survey - таблица фактов

дата - дата
место - регион
объект - цунами
значение1 - высота волны
значение2 - скрость прохождения
значение3 - объем разрушений
значениеn - whatever else
источник - ... источник информации

sevenaПоставлена задача об оптимизации структуры базы данных. Как на ваш взгляд есть ли какие-то серьезные недостатки проектирования у текущей структуры?
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33604929
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, начало 2454735 читать sevenaХорошо, распишу все явно и подробно на русском языке, как я сам понимаю.
Цунами характеризуется (Год, месяц, день, час, секунда, числовые параметры(интенсивности и тд), + ссылка на публикацию, ссылка на наиболее достоверные экономические потери, стандартную информацию, и параметры разрушений).
Нет, в такой форме это мало что проясняет. Собственно основной вопрос проектирования структур данных - один или много ?
Например, связь Достоверные экономические потери - Цунами . Из Вашего поста ясно, что для данного Цунами есть 0..1 Достоверные экономические потери . Но остается не ясным, одни и те же Достоверные экономические потери могут характеризовать разные Цунами ? Т.е. судя по диаграмме - да, а на самом деле?
Используйте нотацию Баркера для тестового описания связей. Это описание предъявляется спецам по предметной области для верификации, задается основной вопрос.
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607027
sevena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо давайте будем решать вопросы с простых вещей и в понятных обозначениях :

Цунами это
BASE RELATION TSUNAMI (TSU_ID#, ... DAMAGE_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (DAMAGE_ID#) REFERENCES DAMAGE

Разрушения это
BASE RELATION DAMAGE (DAMAGE_ID#, ... TSU_ID#)
PRIMARY KEY (DAMAGE_ID#)
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI

Получилась нехорошая циклическая связь! Как этого избежать? Можно добавить просто поля DAMAGE к TSUNAMI и считать, что как раз эти поля и есть наиболее достоверные характеристики разрушения для данного цунами - это будет верным?

2 ModelR :
Поймите правильно - есть различные Разрушения соответствующие одному Цунами . Но среди этих Разрушений выделяется одно - наиболее достоверное для данного Цунами , причем это достоверное не может соответствовать другому Цунами . Вот спрашивается как это корректно сделать? Один вариант я предложил - вот только верен ли он на ваш взгляд? :)
...
Рейтинг: 0 / 0
Помогите плииз найти ошибки проектирования...
    #33607120
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevenaПолучилась нехорошая циклическая связь! Вполне нормальная. Единственно, в логической модели лучше использовать более говорящие имена
Цунами
BASE RELATION TSUNAMI (TSU_ID#, ... MOST_RELIABLE_DAMAGE_ID#)
PRIMARY KEY (TSU_ID#)
FOREIGN KEY (MOST_RELIABLE_DAMAGE_ID#) REFERENCES DAMAGE

При желании можно усилить ограничения целостности и декларировать, что Разрушение , избранное в Цунами как наиболее достоверное, должно относиться к данному Цунами .

BASE RELATION DAMAGE (DAMAGE_ID#, ... TSU_ID#)
PRIMARY KEY (DAMAGE_ID#)
UNIQUE (DAMAGE_ID#,TSU_ID#) -- любое супермножество ключа уникально
FOREIGN KEY (TSU_ID#) REFERENCES TSUNAMI


BASE RELATION TSUNAMI
...
FOREIGN KEY (MOST_RELIABLE_DAMAGE_ID#,TSU_ID#) REFERENCES DAMAGE (DAMAGE_ID#,TSU_ID#)

sevenaМожно добавить просто поля DAMAGE к TSUNAMI и считать, что как раз эти поля и есть наиболее достоверные характеристики разрушения для данного цунами - это будет верным?ИМХО это усложнит запросы - данные о разрушениях будут в разных таблицах.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите плииз найти ошибки проектирования...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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