Автор работы: Пользователь скрыл имя, 25 Марта 2011 в 19:27, курсовая работа
В данной работе разрабатывается база данных по теме «Вкладчики и вклады Сбербанка».
Курсовая работа содержит пояснительную записку на 10 стр. и 4 приложения на 4 стр.
Рассматривается предметная область, связанная с банком; проектируется собственно база данных методом сущность-связь, детали которого рассматриваются в подробностях применительно к теме; построенная модель реализуется на SQL.
Введение……………………………...……………………………………….….4
§ 1. Проектирование базы данных…………………………….....................5
1.1 Предметная область..........................................................................5
1.2 Метод сущность-связь......................................................................5
1.3 Выделение сущностей.......................................................................5
1.4 Построение ER-диаграмм.................................................................6
1.5 Построение предварительных отношений.......................................9
1.6 Построение конечных отношений...................................................11
1.7 Конечная диаграмма базы данных.................................................14
Заключение……………………………………………………………………..15
Список используемой литературы………………………………………….16
Приложения…………………………………………………………………….17
Вкладчик по приходу в банк заполняет заявление, где указывает Имя и данные паспорта. Ему открывают счет (отношение Вклад), за которым закреплен какой-то номер. На этот счет вкладчик вносит денежные средства определенной купюры. С банком оговариваются вид вклада и проценты.
Далее, если вкладчик захочет сделать какую-либо операцию с вкладом (отношение Вклад_Операция), то ему нужно представить номер счета и выбрать операцию из списка (операции).
Архив должен хранить данные о закрытых вкладах. То есть о таких вкладах, к которым применена операция Закрытие. А в полученной диаграмме Архив связан с отношениями Операции и Вклад.
Более
рационально представить зависимость
Архива от отношения Вклад_Операция,
поскольку в этом случае будет
возможность отслеживать вклады, к которым
применена операция Закрытие и которые
должны поместиться в архив.
1.6 Построение конечных отношений
На основании
приведенных рассуждений
Теперь рассмотрим каждое отношение в отдельности и укажем все атрибуты, их типы и возможные ограничения. Плюс укажем английские эквиваленты.
Вкладчики (Investors).
ФИО (InvestorName) – это строковый тип переменной длины VARCHAR. Для его размещения должно хватить 50 символов, поскольку не так уж много имен, количество символов в котором превосходит 50. А тип переменной длины, поскольку размер типа будет определятся при вводе данных.
Данные паспорта (PasportSN) (первичный ключ) – возьмем Российский стандарт паспорта серия и номер. Серия состоит из 4 цифр, а номер – из 6. Плюс можно добавит пробел, чтобы разделить серию и номер. Для его хранения воспользуемся типом данных CHAR с количеством символов равным 11 (6+4+1).
Номер телефона (PhoneNumber) – тип данных CHAR. Все телефоны имеют федеральный формат номера, а именно: 8-9ХХ-ХХХ-ХХ-ХХ.
Считаем количество символов и получаем 15. Причем номер телефона должен быть уникальным для каждого вкладчика.
Вклады (Investments).
Рассмотрим таблицу, содержащую информацию о видах вклада:
У Сбербанка вообще много видов вкладов. Однако из всего множества были выбраны основные, так как другие предваряются словами «Плюс», «Универсал» и др.
Теперь можно формировать информацию о типах данных.
Номер Счета (AccountNumber) (первичный ключ) – выберем формат номера счета, состоящий из 6 символов. Тогда для его размещения хватит типа INT.
Вид Вклада (Type) – тип VARCHAR. Количество символов будет равняться максимальному количеству символов вида вклада. Как видно из таблицы это 7 символов.
Вкладываемая сумма (InvSum) – тип данных INT. В таблице указано, от какой суммы возможен вклад.
Проценты (Per_Cents) – проценты вклада тип вещественный FLOAT.
Валюта вклада (Currency) – тип данных VARCHAR с количеством символов, равным 6.
Дата открытия вклада (OpenningDate) – тип данных DATETIME
Данные
паспорта (PasportSN) – VARCHAR (11) - внешний ключ,
ссылающийся на отношение Вклады.
Операции (Operations).
Идентификатор операции (OID) (первичный ключ) – тип данных INT, причем этот атрибут должен быть автоинкрементируем, то есть увеличиваться на 1 с каждой новой вставкой данных.
Название
операции (Operation) – тип данных VARCHAR. В базе
данных будут использоваться следующий
операции о вкладам: пополнение (Replenishment),
снятие (Withdrawals), закрытие (Closure) и перевод
средств на другой счет (Transfer). Считаем
количество символов у всех названий операций
и получаем 13.
Вклад_Операция (Investment_Operation)
Идентификатор (IOID) (первичный ключ) – автоинкрементируемый атрибут типа INT.
Оперируемая сумма (OperatedSum) – тип данных INT.
Счет места назначения (DestAccount) – тип данных INT, как и в поле AccountNumber.
Дата совершения операции (OpDate) – тип DATETIME.
Номер счета (AccountNumber) (внешний ключ на отношение Вклады) – тип INT.
Номер Операции (OID) (внешний ключ на таблицу Операции) – тип INT.
Архив (Archive)
Идентификатор архива (AID) (первичный ключ) – автоинкрементируемый атрибут типа INT.
Идентификатор (IOID) (внешний ключ на отношение Вклад_Операция)
Данные паспорта (PasportSN) (внешний ключ на отношение Вкладчики) –тип VARCHAR (11)
Дата
закрытия (DateOfClosure) – тип DATETIME.
1.7 Конечная диаграмма базы данных
Теперь обобщая все сказанное выше средствами языка запросов SQL, скрипты которого приведены в приложениях, создаем диаграмму базы данных:
Заключение
Таким
образом, была построена модель базы
данных Сбербанка по вкладчикам и
вкладам. Метод сущность-связь был
рассмотрен в конкретной предметной
области, учтены возникающие спорные
моменты, детально описаны степени
связи и классы принадлежности, подробно
расписаны атрибуты, их типы данных, английские
эквиваленты и накладываемые ограничения.
Список
используемой литературы
Роберт Виейра «Программирование баз данных».
Используемые интернет ресурсы:
http://www.info-system.ru/
Приложения
Рассмотрим реализацию базы данных на языке SQL
Приложение №1 Построение отношений.
CREATE TABLE Investors
(
IDInvestor INT NOT NULL IDENTITY,
InvestorName VARCHAR (50) NOT NULL,
PasportSN CHAR (11) NOT NULL,
PhoneNumber CHAR (15) NOT NULL,
PRIMARY KEY (PasportSN),
UNIQUE (PhoneNumber)
)
CREATE TABLE Investments
(
IDInvestment INT NOT NULL IDENTITY,
AccountNumber INT NOT NULL,
Type VARCHAR (7) NOT NULL,
InvSum INT,
Per_Cents FLOAT NOT NULL,
Currency VARCHAR (6) NOT NULL,
OpenningDate DATETIME,
PasportSN CHAR (11) NOT NULL,
PRIMARY KEY (AccountNumber),
FOREIGN KEY (PasportSN) REFERENCES Investors(PasportSN)
)
CREATE TABLE Operations
(
OID INT NOT NULL IDENTITY,
Operation VARCHAR (15) NOT NULL,
PRIMARY KEY (OID)
)
CREATE TABLE Investment_Operation
(
IOID INT NOT NULL IDENTITY,
AccountNumber INT NOT NULL,
OID INT NOT NULL,
OperateSum INT,
DestAccount INT NOT NULL,
OpDate DATETIME,
PRIMARY KEY (IOID),
FOREIGN KEY (AccountNumber) REFERENCES Investments(AccountNumber),
FOREIGN KEY (OID) REFERENCES Operations(OID)
)
CREATE TABLE Archive
(
AID INT NOT NULL IDENTITY,
IOID INT NOT NULL,
PasportSN CHAR (11) NOT NULL,
DateOfClosure DATETIME,
PRIMARY KEY (AID),
FOREIGN KEY (IOID) REFERENCES Investment_Operation(IOID),
FOREIGN KEY (PasportSN) REFERENCES Investors(PasportSN)
)
Приложение №2. Заполнение базы данных первичными данными
Заполняем вкладчиков
INSERT INTO Investors(InvestorName,
VALUES ('John McCallister','6705 123876','8-922-420-52-58')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('John Peter Rys Davis', '6708 321546', '8-933-675-23-43')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('Ivan Safin', '6758 121543', '8-732-875-23-43')
INSERT INTO Investors(InvestorName, PasportSN, PhoneNumber)
VALUES ('Dimitriy Ozerov', '5691 324567', '8-922-320-65-64')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('Alecsey Ivanyakov', '6103 391456', '8-546-234-13-11')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('Andrey Verbickiy', '6870 345656', '8-970-231-11-21')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('Ryslan Golov', '6310
342187', '8-980-514-22-36')
INSERT INTO Investors (InvestorName, PasportSN, PhoneNumber)
VALUES ('Andreas Alson', '5416 867412', '8-950-310-16-17')
Заполняем вклады
INSERT INTO Investments(AccountNumber,
VALUES (623613,'Deposit',10000,9.5,'
INSERT INTO Investments(AccountNumber,
VALUES (571234,'Demand',80,0.1,'Euro'
INSERT INTO Investments(AccountNumber,
VALUES (417232,'Pension',1000,9.5,'
INSERT INTO Investments(AccountNumber,
VALUES (254178,'Term',5000,2.1,'
INSERT INTO Investments(AccountNumber,
VALUES (712345,'Demand',10000,0.25,'
INSERT INTO
Investments(AccountNumber,
VALUES (322145,'Pension',5000,0.25,'
INSERT INTO
Investments(AccountNumber,
INSERT INTO
VALUES (812345,'Deposit',15000,8.25,'
INSERT INTO
Investments(AccountNumber,
VALUES (325091,'Deposit',50000,5.75,'
Заполняем Операции
INSERT INTO Operations(Operation)
VALUES ('Closure')
INSERT INTO Operations(Operation)
VALUES ('Withdrawals')
INSERT INTO Operations(Operation)
VALUES ('Transfer')
INSERT INTO Operations(Operation)
VALUES ('Replenishment')
Заполняем Вклад_Операция
INSERT INTO Investment_Operation(OID,
VALUES (2,254178,100,254178,'02.10.