Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Домашнее задание по курсу «Реляционные БД».   Найти похожие ветки 

 
красотка (С)   (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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.014 c
2-1201674470
vegarulez
2008-01-30 09:27
2008.02.24
Как обойти вызов соединения при использовании:


2-1201342202
Sairex
2008-01-26 13:10
2008.02.24
Склеивание несколько файлов в один


2-1201595817
vegarulez
2008-01-29 11:36
2008.02.24
Вопрос про БД (Access). Как "сжать и восстановить" БД из под Д?


8-1174297899
San ciz
2007-03-19 12:51
2008.02.24
"Невидимое окно"


2-1201717781
вадик
2008-01-30 21:29
2008.02.24
Интерфейсы