Форум: "Базы";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
ВнизДомашнее задание по курсу «Реляционные БД». Найти похожие ветки
← →
красотка (С) (2007-10-02 21:02) [0]После очередного занятия по курсу «Реляционные БД», преподаватель дал задание построить модель некоторой БД, которая должна хранить информацию о банковских счетах и операциях поведенных по ним.
Далее он пояснил, что собственно банковский счет состоит из 20-ти знаков. Первый знак это номер раздела баланса – обычно цифра. Второй и третий разряд – это балансовый счет первого порядка. Четвертый и пятый разряд – это балансовый счет второго порядка. Разряды с 6-го по 8-ой определяют код валюты, так рубли например 810, доллары США 840, евро 978, кроме того в этих разрядах может быть указан код драгоценного метала, например АХХ, где А – символ, а ХХ число. 9-ый разряд резервное поле. 10-ый и 11-ый разряды определяют индекс банка, а 12-ый и 13-ый определяют индекс подразделения банка в котором открыт и ведется счет. Семь последних разрядов (с 14 по 20-ый) и есть собственно счет.
Операция по счету должна содержать следующую информацию: дата совершения, время совершения, номер документа на основании которого проведена операция, сумма операции, а также два признака позволяющие определить как проведена операция (налично/безналично) и проведена она по дебету счета либо по кредиту.
Кроме того, в БД должна храниться информация о наименовании раздела баланса, наименовании счетов первого порядка, наименовании валюты и ее сигнатуры (RUR, USD, EUR и т.д.), наименовании банка и подразделения банка, а также информация дате открытия и закрытия счета.
Посидев над этой задачкой получилось вот такое решение:Разделы_Баланаса (ИД_Раздела, Раздел, Наименоваие_раздела)
Счета_первого_порядка (ИД_Счета_ПП, СчетПП, Наименование_счета, ИД_Раздела)
Счета_второго_порядка (ИД_Счета_ВП, СчетВП, ИД_Счета_ПП)
Валюты (ИД_Валюты, Код_Валюты, Наименование_Валюты, Сигнатура_Валюты)
Банки (ИД_Банка, Индекс_Банка, Наименование_Банка)
Подразделения (ИД_Подразделения, Индекс_Подразделения, Наименование_Подразделения, ИД_Банка)
Полный_Счет (ИД_Счета, ИД_Счета_ВП, ИД_Валюты, Резерв, ИД_Подразделения, Счет, Дата_открытия, Дата_закрытия)
Операции (ИД_Операции, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)
Связи между таблицами по ИД_ххх. Первое поле в каждой таблице ключевое.
Вопрос в том, правильное ли решение? Какое-то громоздкое оно получилось. Т.е. м.б. нужно было просто хранить в одной табличке 20-ти значный счет и все? Кто как считает.
Я вот предполагаю, что если нужно будет сделать, ну скажем запрос для вывода реестра операций за такой-то период, с суммой от ААА до БББ, то придется собирать счет, а это будет медленно работать. А ведь он может задать такой вопрос.
← →
Desdechado © (2007-10-02 21:15) [1]Здесь не может быть вариантов "правильно" и "неправильно".
Если сможешь аргументировать преподавателю свою позицию, это будет правильно. Если же не сможешь, будет неправильно.
Чтобы аргументировать, освежи знания по нормализации данных, хотя бы 1NF-3NF.
← →
красотка (С) (2007-10-02 21:22) [2]Свой ответ я всегда могу аргументировать, в конце я же его не с потолка взял. Просто м.б. кто-то ткнет меня носом и укажет на явный косяк.
← →
имя (2007-10-02 21:34) [3]Удалено модератором
← →
красотка (С) (2007-10-03 07:12) [4]Видимо серьезные люди сюда больше не заглядывают, решение обсудить не с кем.
← →
Сергей М. © (2007-10-03 08:35) [5]
> нужно было просто хранить в одной табличке 20-ти значный
> счет и все?
Для этого ты как раз и завела справочник "Полный_Счет".
> предполагаю, что если нужно будет сделать, ну скажем запрос
> для вывода реестра операций за такой-то период, с суммой
> от ААА до БББ, то придется собирать счет
Это еще зачем ?
← →
Игорь Шевченко © (2007-10-03 09:39) [6]
> Какое-то громоздкое оно получилось
Факт громоздкое. Постановку не очень понял, но таблиц чересчур много
> Далее он пояснил, что собственно банковский счет состоит
> из 20-ти знаков. Первый знак это номер раздела баланса –
> обычно цифра. Второй и третий разряд – это балансовый счет
> первого порядка. Четвертый и пятый разряд – это балансовый
> счет второго порядка. Разряды с 6-го по 8-ой определяют
> код валюты, так рубли например 810, доллары США 840, евро
> 978, кроме того в этих разрядах может быть указан код драгоценного
> метала, например АХХ, где А – символ, а ХХ число. 9-ый разряд
> резервное поле. 10-ый и 11-ый разряды определяют индекс
> банка, а 12-ый и 13-ый определяют индекс подразделения банка
> в котором открыт и ведется счет. Семь последних разрядов
> (с 14 по 20-ый) и есть собственно счет
Это все нафига ? :)
← →
Сергей М. © (2007-10-03 10:02) [7]
> Это все нафига ?
По всей вероятности - для интерактивного кодирования/декодирования счета.
← →
Sergey13 © (2007-10-03 10:32) [8]> [0] красотка (С) (02.10.07 21:02)
1. Фотку давай.
2. Бегло посмотрел (шибко много букв) и не увидел связи операции со счетом.
← →
Сергей М. © (2007-10-03 11:01) [9]
> не увидел связи операции со счетом
Угу.
Самого главного-то во всей этой ботве и не наблюдается)
← →
Petr V. Abramov © (2007-10-03 11:09) [10]1.
> для вывода реестра операций за такой-то период, с суммой от ААА до БББ, то придется собирать счет, а это будет медленно работать.
с одной стороны, действительно будет.
с другой стороны, при нормальном оптимизаторе "собирание счета" на фоне выборки из таблицы операций видно не будет, т.к. таблица операций огромная, а счета-разделы - пара блоков.
с третье стороны, обращение к счету по номеру - операция очень частая, поэтому небольшое уменьшение производительности на ней в сумме даст "видное" увеличение общей нагрузки.
поэтому я бы или сделал сознательную избыточность, т.е. номар хранил бы полностью, или в счетах-разделах номер сделал бы ключом, тогда проблема ушла бы сама.
2.С тебя конфетка.
3. см [9] :)
← →
красотка (С) (2007-10-03 14:02) [11]Тут действительно не все верно
Операции (ИД_Операции, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)
на бумажечке у меня такОперации (ИД_Операции, ИД_Счета, Дата_операции, Время_операции, Номер_документа, Сумма_операции, Вид_операции, Тип_операции)
Всем спасибо!
Не пожалейте денег, купите себе по шоколадке "аленушка", будем Вам и конфетка и фотка!
← →
Sergey13 © (2007-10-03 14:11) [12]> [11] красотка (С) (03.10.07 14:02)
> Не пожалейте денег, купите себе по шоколадке "аленушка", будем Вам и конфетка и фотка!
И кариес. 8-)
← →
evvcom © (2007-10-03 14:44) [13]Судя по
> красотка (С) (02.10.07 21:22) [2]
> Свой ответ я всегда могу аргументировать, в конце я же его
> не с потолка взял.
покупать надо не "Аленку", а "Кузьку" :-)
← →
evvcom © (2007-10-03 14:50) [14]Не знаю, как вся эта ботва с пояснением 20-ти значного номера используется в банковском ПО, но на предприятии мне всегда было достаточно БИК банка и номера счета для идентификации рассчетного счета. По сути БИК и есть уникальный идентификатор.
← →
Сергей М. © (2007-10-03 14:52) [15]
> на бумажечке у меня так
Тады, как все это ни громоздко выглядит, справочника документов явно не хватает.
Ты же сослалась на Номер_документа, а где и каком виде этот документ фигурирует в базе ? Препод, думаю, первым делом тебе этот вопрос задаст ..
← →
Сергей М. © (2007-10-03 15:01) [16]
> evvcom © (03.10.07 14:50) [14]
> на предприятии мне всегда было достаточно БИК банка и номера
> счета для идентификации рассчетного счет
Оно и понятно - твоему предприятию нет дела до смыслового содержимого кода банковского счета и БИКа. Главное чтобы деньги туда-сюда ходили быстро и без проблем)
Это примерно как с IP-адресом - пользователи Сети вроде бы знают, что он существует и что он неким волшебным образом отождествляет "корреспондента" по инф.обмену, но вот смысловое содержимое групп разрядов в символьном представлении этого адреса пользователям до лампочки)
← →
evvcom © (2007-10-03 15:42) [17]
> твоему предприятию нет дела до смыслового содержимого кода
> банковского счета и БИКа
Ну да, так и есть. Я это все к тому, что в [0] вобщем-то не написано, что весь этот смысл надо реализовывать, написано
> Далее он пояснил
а пояснения - это так, для общего развития, необязательные к реализации
← →
Сергей М. © (2007-10-03 17:20) [18]
> evvcom © (03.10.07 15:42) [17]
Короче, судя по [0], или Красота (с) нам мозги парит или на свалке место такому "заданию")
← →
Johnmen © (2007-10-03 17:27) [19]Да-да, ведётесь вы легко..:)
> Sergey13 © (03.10.07 10:32) [8]
> Фотку давай.
Я бы сказал,
Фтопку давай.
:)))
← →
Павел Калугин © (2007-10-05 10:53) [20]постановление 205П соответствующие разделы читать
упущен ключ счета
в разных разделах правила формирования счета разные (опять же см 205П)
структура плана счета деревяннаяраздел баланса
счет первого порядка
счет ворого порядка
← →
Павел Калугин © (2007-10-05 10:57) [21]далее вопрос какой это банк. Если сбер - там больше 20ти символов и смысловая нагрузка иная
у счетов второго порядка, подразделений, филиалов и прочего есть понятие шифр
из этих шифров и составляется искомый номер, потом ключуется.
← →
Sergey13 © (2007-10-05 11:01) [22]> [20] Павел Калугин © (05.10.07 10:53)
> [21] Павел Калугин © (05.10.07 10:57)
Безусловно, все это необходимо учесть при написании домашнего задания. 8-)
← →
Павел Калугин © (2007-10-05 11:17) [23]
> Sergey13 © (05.10.07 11:01) [22]
Все это надо учесть при постановке задачи...
Тем более если препод пытается дать подобие этой постановки
← →
красотка (С) (2007-10-05 20:11) [24]205-ый правила едины для всех банков, они ж ЦБшные :-)
> упущен ключ счета
9-ый разряд резервное поле. это наверное и есть ключ счета :-)
наверное не хотел голову забивать нам :-)
кстати счета во всех банках в 20 символов, однако в сбере действительно есть кодированные счета в 25 знаков, но в балансе их как таковых нет, они собираются в 20-ти значные, т.е. за одним 20-ти значным может стоят несколько 25-ти значных.
про шифры ничего не знаю, но сберовский порядок вычисления ключа я видел, так берется счет, каждый его разряд умножается на некоторый весовой коэффициент, еще какие-то манипуляции выполняются и в итоге берется одна циферка для ключа.
← →
Petr V. Abramov © (2007-10-06 00:56) [25]> про шифры ничего не знаю, но сберовский порядок вычисления ключа я видел, так берется счет
порядок вычисления ключа вроде как ЦБ определяет, если проключевано не по нему, РКЦ-МЦИ отшибет. По крайней мере 10 лет назад было так :). Хотя сбер - банк особый :)
← →
Павел Калугин © (2007-10-08 12:42) [26]> про шифры ничего не знаю,
ну как же:) у некоторых он же ID "клиента" у некоторых ID отдельно а шифр отдельно
← →
clickmaker © (2007-10-08 13:51) [27]
> покупать надо не "Аленку", а "Кузьку" :-)
Лучше "малька" и ириску )
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.047 c