Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.054 c
15-1201073995
vajo
2008-01-23 10:39
2008.02.24
Как на ноутбуке переустановить Виндовс?


15-1201259913
Asker
2008-01-25 14:18
2008.02.24
Сетевая утилита командной строки чтобы отправить сообщение


2-1201508246
asdfa
2008-01-28 11:17
2008.02.24
Вставить подстроку в нужную позицию


8-1173158554
OlegM
2007-03-06 08:22
2008.02.24
Склеить несколько WAV в один


15-1200776836
Kostafey
2008-01-20 00:07
2008.02.24
Хоть и не Delphi...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский